Back to flin
flin

El error del alternador de tema

De cinco a siete sesiones persiguiendo un error del alternador de tema que finalmente requirió cero cambios en el compilador -- una lección en encontrar la solución más simple.

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

Algunos errores resisten las soluciones elegantes. Los abordas con ideas arquitectónicas, modificaciones del compilador y mejoras del runtime. Implementas soluciones complejas. No funcionan. Pruebas diferentes enfoques. También fallan. Y luego, después de cinco a siete sesiones de complejidad creciente, descubres que la corrección son dos líneas de código que no usan nada más que APIs web estándar.

La corrección final modificó exactamente dos líneas de código en un archivo. Cero cambios en el compilador. Cero cambios en la VM. Cero cambios en el renderizador.

La solución usó el encadenamiento de asignaciones de JavaScript con la API DOM existente del navegador:

flinclick={document.body.firstElementChild.dataset.theme = theme = "dark"}

Esta expresión única hace tres cosas: establece theme = "dark" (variable del runtime FLIN), devuelve "dark" (valor de la expresión de asignación), y asigna "dark" al atributo DOM.

La lección: a veces las restricciones del lenguaje te guían hacia mejores soluciones. La restricción de FLIN de "no hay punto y coma en expresiones" nos forzó a alejarnos de los manejadores de múltiples sentencias y hacia el encadenamiento de asignaciones -- que es en realidad una solución más elegante.


Esta es la Parte 165 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: - [164] Corrección de la resolución de funciones de biblioteca - [165] El error del alternador de tema (estás aquí) - [166] El error del método .get() de entidades

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles