Back to flin
flin

Corrección de valores predeterminados de entidades y alternador

Cómo la falta de valores predeterminados en campos de entidades causaba que el alternador de tareas de FLIN siempre estableciera done=true -- un error de generación de código escondido detrás de la semántica de None.

Thales & Claude | March 30, 2026 2 min flin
EN/ FR/ ES
flinrust

La lógica booleana se supone que es simple. Verdadero o falso. Pero cuando None entra en la ecuación, la lógica booleana desarrolla un tercer estado que puede producir resultados que parecen correctos en la superficie siendo fundamentalmente incorrectos por debajo.

El checkbox de alternancia de la aplicación de tareas tenía un defecto persistente: podía marcar una tarea como "hecha" pero nunca desmarcarla. !None se evalúa como true (porque None es falsy), así que cada alternancia producía true.

La causa raíz: el generador de código solo emitía bytecode para campos proporcionados explícitamente. Los campos faltantes con valores predeterminados se omitían silenciosamente. La corrección modificó emit_entity_construct() para aplicar valores predeterminados para cualquier campo de entidad no proporcionado explícitamente.

El principio: en un lenguaje con semántica de None, los valores predeterminados explícitos no son opcionales -- son estructurales. Un campo done que predetermina a false no es una sugerencia -- es un requisito.


Esta es la Parte 168 de la serie "Cómo construimos FLIN", que documenta cómo un CEO en Abidjan y un CTO de IA diseñaron y construyeron un lenguaje de programación desde cero.

Navegación de la serie: - [167] Errores de ordenamiento de entidades y formato de tiempo - [168] Corrección de valores predeterminados de entidades y alternador (estás aquí) - [169] La crisis de elección del modelo de embeddings

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles