Loment
ES

Versiones

Historial de versiones

Desde el primer Loment hasta el que se publica ahora. Cada entrada dice para qué servía esa versión en concreto — y dónde vive su registro, porque las primeras se publicaron desde otro repositorio y este no lleva sus etiquetas.

Descargar Primeros pasos

Esta es la única página del sitio que nombra versiones. En todo lo demás el enlace de descarga dice releases/latest, porque un número de versión escrito en una página es un dato con fecha de caducidad. Aquí las versiones son el tema, así que se nombran y cada una apunta a lo que realmente se publicó. Nada de esto es una promesa sobre una versión que no se ha publicado.

Antes de este repositorio

Las primeras seis versiones salieron del repositorio anterior del proyecto. Sus etiquetas no están en este, ni tampoco sus fechas, así que lo que sigue es la forma de la línea y no un registro con fechas — y aquí nada enlaza a ninguna parte, porque no hay nada a lo que enlazar.

0.1.1 — el primer Loment

Un subconjunto estricto de la sintaxis de Rust. Esa fue la restricción inicial y no un estilo: el lenguaje quedaba definido por lo que Rust ya había resuelto, así que había muy poco que discutir y un compilador que construir. Ya no pretende ser un subconjunto — el solapamiento sigue ahí, la afirmación se abandonó cuando la superficie lo rebasó.

0.1.2 Alpha — el primer autoalojado

El lenguaje empieza a escribirse en sí mismo. Lo que eso aporta no es elegancia: un compilador escrito en el lenguaje que compila es la única forma de averiguar qué es lo que el lenguaje no puede expresar.

0.1.2 pre1 — reparaciones

Los problemas que sacó a la luz el primer autoalojado. Un prelanzamiento es donde se supone que ocurre ese tipo de cosas.

0.1.2 pre2 — la base que sigue en pie

El fundamento de arranque sobre el que se construye cada versión posterior: un compilador que se reconstruye a sí mismo a partir de una semilla de arranque confirmada en el repositorio, y una comprobación de que la semilla reconstruida es igual a aquella con la que empezó.

0.1.3 Alpha — llega la idea de multisintaxis

La primera versión en la que el código fuente de otro lenguaje puede leerse como Loment. El significado es siempre el de este lenguaje; solo se toma prestada la grafía. Es el argumento fundacional del proyecto y no una función añadida encima, y por eso figura aquí y no bajo "qué más es diferente".

0.1.3.4 Alpha — el ciclo se cierra

Las cuatro etapas — analizador léxico, analizador sintáctico, comprobador y generador de código — escritas en Loment, y el resultado alcanza un punto fijo de tres etapas. Es la última de las versiones publicadas desde el repositorio anterior, y aquella contra la que se mide toda versión posterior: es la versión en la que el lenguaje y el compilador dejaron de necesitar un anfitrión para definirse.

De este repositorio

Las cuatro versiones que salieron de este repositorio antes de la que se publica ahora. Cada una es una fila y no una sección por la razón que un registro debe dar: el detalle está en la página de la versión a la que enlaza, y una historia que sigue creciendo entera deja de ser historia y se convierte en una segunda copia del archivo.

0.1.4 Pre — el primer Loment instalable

2026-09-22. Se publicó como prelanzamiento por una sola razón: para que «el repositorio tiene versiones» deje de ser una afirmación y pase a ser algo que se puede mirar. Un detalle de cómo se hizo sigue en pie — la etiqueta apunta a un commit anterior al que se usó para construir los archivos, así que los archivos de código fuente que genera GitHub son el árbol previo a esa compilación.

0.1.4 — usable

2026-09-23. El tema era ser usable, no tener más cosas: no cambió la sintaxis, y el esfuerzo se fue en sacar del camino lo último del intérprete. Su instalador de Windows no hace nada en máquinas configuradas para no buscar en el directorio actual; instala desde el zip si quieres esta versión.

0.1.4.5 — reclamación, y un runtime que es una garantía

2026-10-13. La escalera de reclamación de cuatro peldaños con una mitad adaptativa y otra generacional; no_runtime pasó de declaración a garantía; red en ambos objetivos; y la quinta dimensión, vm, llegó con su compuerta de versión cerrada. Un parche del mismo día cambió solo el instalador de Windows.

0.1.4.6 — las compuertas bajan

2026-10-17. Cuatro cosas que estaban construidas pero se mantenían fuera de una versión se volvieron alcanzables de una vez: un nivel de intérprete junto al compilador, libc y LibL, y el ajuste vm. El resto fue el mayor barrido de defectos anterior a 0.1.4.7.

0.1.4.7 — las bibliotecas se vuelven gemelas

2026-10-18. Una versión de defectos, y el titular no es una función: cada biblioteca que envía el paquete compila ahora a IR idéntico byte a byte en las dos implementaciones — 155 módulos, ninguno omitido, sin huecos conocidos, fijado por un criterio que se pone rojo cuando la lista crece. Llegar ahí destapó errores de estado silenciosos, no la divergencia que parecían desde fuera.

Nuevo

  1. Las bibliotecas enviadas son gemelas. Cada módulo del almacén se compila como raíz con ambos compiladores y el IR se compara byte a byte. La fachada std queda excluida por nombre y por criterio — no tiene funciones, y sus 127 módulos se comparan por separado.
  2. Una tabla de constantes en el compilador autoalojado. find_const ya no recorre la unidad entera por identificador, que es lo que hacía que la fachada tardara decenas de minutos en compilar.

Corregido

  1. Los errores de estado que destapó el criterio de gemelos. Un match de cuatro brazos sobrescribía el indicador gc_auto_alpha, así que una unidad que no era alpha se compilaba como alpha; las conversiones encadenadas hacían solo el primer paso; los literales decimales de 64 bits no se envolvían; las llamadas a intrínsecos no tenían tipo de retorno en la inferencia; los operandos de desplazamiento heredaban la expectativa de 64 bits externa; y los centinelas de tipo virtual se confundían con índices de token.
  2. Treinta y cinco defectos del barrido, cada uno con un criterio que se ponía rojo primero. La biblioteca estándar, diez analizadores de internet, el decodificador de la forma compacta de la VM, cuatro casos del servidor de lenguaje, JSON/CSV/rutas/formato, tres correcciones en las fronteras de nivel del runtime de la VM, y un paso de dependencias que entregaba a cada unidad el programa entero en lugar de su propio cierre.
  3. Capacidad que se agotó. La tabla de símbolos del verificador ahora aloja 5200 entradas; el cierre de la fachada std tiene 4956 nombres de nivel superior.

Lo que no trae esta versión

Nada de lo ya construido se abre en esta versión — no levanta ninguna compuerta. El intérprete sigue sin estar en el paquete: choose vm continúa siendo una declaración, y es 0.1.5 donde un artefacto podrá entregarse de verdad a un motor.