5b73466bd4
Auditoria del issue 0044: anota en notes: el contexto de consumo de
huerfanos que no pueden registrarse en uses_functions porque sus
consumidores no son funciones del registry:
- consumido por cpp/framework/app_base.cpp (framework no indexado)
- consumido por cpp/apps/{shaders_lab,chart_demo,text_editor_smoke}/main.cpp
- scaffolding/demo en primitives_gallery
31 huerfanas anotadas. Las que quedan en uses_functions=[] tras esto
son hojas legitimas (no llaman a nada) o realmente sin uso (lista
DEAD reportada en el issue 0044).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.9 KiB
2.9 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, params, output, notes
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | tested | tests | test_file_path | file_path | params | output | notes | |||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| shaderlab_db | function | cpp | gfx | 1.0.0 | impure | bool shaderlab_db_save_generator(GeneratorRecord& gen, std::string* err); std::vector<GeneratorRecord> shaderlab_db_list_generators(); bool shaderlab_db_get_generator(const std::string& id, GeneratorRecord& out); bool shaderlab_db_delete_generator(const std::string& id); | CRUD persistente para generators custom de shaders_lab via sqlite3. Guarda el GLSL original, el body traducido para el DAG, los DagControl y los param_defaults en una BD local (shaders_lab.db). Soporta open(:memory:) para tests. |
|
|
false | error_go_core |
|
true |
|
cpp/functions/gfx/shaderlab_db.cpp | cpp/functions/gfx/shaderlab_db.cpp |
|
Persistencia en la tabla generators de shaders_lab.db. Las listas vienen ordenadas por label. | consumido por cpp/apps/shaders_lab/main.cpp |
Schema
CREATE TABLE generators (
id TEXT PRIMARY KEY,
label TEXT NOT NULL,
description TEXT NOT NULL DEFAULT '',
source_glsl TEXT NOT NULL,
body_glsl TEXT NOT NULL,
param_count INTEGER NOT NULL,
param_defaults TEXT NOT NULL, -- CSV de floats
param_names TEXT NOT NULL, -- LF-separated strings
controls TEXT NOT NULL, -- LF-separated, fields '|': kind|label|p0|p1|p2|min|max|step
tags TEXT NOT NULL DEFAULT '',
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);
Notas
- Formato de serializacion custom (no JSON): CSV para floats, LF para strings,
|para fields de control. Sin escape de separadores; los labels no deben contener\nni|. shaderlab_db_openes idempotente: re-abrir con el mismo path es no-op.:memory:como path crea una BD temporal en memoria (usado en tests).save_generatorhace upsert (ON CONFLICT DO UPDATE). Seteacreated_atsolo si esta vacio.- Tests inline activables con
-DSHADERLAB_DB_TESTy linkando sqlite3 (amalgamation o-lsqlite3).