Skip to content

Releases: CerebroCanibalus/Falcato

v0.8.0-beta.1 — LSP completo + LibEst + Skills

Choose a tag to compare

@CerebroCanibalus CerebroCanibalus released this 04 Sep 00:58

Falcato 0.8.0-beta.1 — Release Notes

Fecha: 2026-09-03
Tipo: Pre-release

🎯 Resumen

0.8.0 es la actualización que rediseña y mejora brutalmente el lenguaje. Agrupa los problemas de diseño abiertos más importantes y las lecciones de Go. Es el "gofmt + stdlib + rediseño" que lleva a Falcato de "Rust con artículos" a "lenguaje de plataforma para LLMs".

✅ Nuevas Features

LSP (Language Server Protocol)

  • 153 builtins en autocompletado (antes: 15)
  • 22 snippets de template (si, para, fn, estructural, etc.)
  • Métodos por tipo después de . (Texto: 17, Vector: 9, Diccionario: 5)
  • Variantes de enum después de Enum.
  • Inlay hints — muestra tipos inferidos
  • Rename symbol — renombrado seguro
  • Call hierarchy — prevenir + incoming + outgoing
  • Code lens — "▶ Ejecutar" / "🧪 Test" en cada función
  • Format document — formateo automático (4 espacios)
  • Cross-file — resolución de imports usar

LibEst (Librería Estándar)

  • 20 módulos, 169 funciones
  • 12 dominios: núcleo, colecciones, archivo, red, tiempo, proceso, sistema, matemáticas, visual, compat
  • Builtins Rust: texto (22), HTTP (2), JSON (4), TCP (10), TLS (5), archivo (8), tiempo (5), vector (15), diccionario (10), conjunto (7), opción/resultado (4), visual (31)

Skills

  • SKILL.md — gramática completa (339 líneas)
  • builtins.md — 153 builtins con firmas
  • libEst.md — 169 funciones por módulo
  • patterns.md — patrones y arquitecturas (505 líneas)
  • errores.md — códigos de error y fixes

🔧 Mejoras

  • Namespace :: funcional en parser + semántico + codegen
  • Coerción polimórfica 42→Entero64/Natural
  • Profiling reloj_mono_ns+perfil_*
  • Cross-file verifica a.fc b.fc

📊 Métricas

Métrica Valor
Builtins 153
Funciones stdlib 169
Archivos LSP 1
Líneas LSP ~2500
Skills 5 archivos
Tests 54/54 + 19 unitest
Ejemplos 76/83 compilan

🚀 Próximos pasos (0.8.0 estable)

  • P-005: Reducir builtins (mover a Falcato puro)
  • P-009: Documentar artículos el/la/un
  • P-014: Warning de Resultado no manejado
  • P-017: Regla unificadora de API
  • falcato formatea CLI
  • Stdlib HTTP+JSON en Falcato puro
  • Modernizers (falcato arregla)

📝 Notas

  • Windows only por ahora (target x86_64-pc-windows-msvc)
  • 109 warnings en release (no bloqueantes)
  • Dependencies: Cranelift 0.112, tower-lsp 0.20, tokio 1.x, serde_json 1.0

Descarga: cargo install falcato --beta
Repo: https://github.com/CerebroCanibalus/falcato

0.7.6 - 2026-08-22

Choose a tag to compare

@github-actions github-actions released this 22 Aug 07:25

Release Notes

🔧 ARREGLOS

  • F-013 profundo — literales grandes en structs/binarias (truncamiento I32): compilar_expresion_con_tipo_esperado promueve literales al tipo_esperado antes de iconst. Fin del 123456789012345 → 2249056121 en G {id: 123...}, g.id = 987..., el d: Entero64 = 123... + 456.... Verificado test_F013_struct.fc 3/3 OK. conversion.rs como_entero64 ya emitía I64 directo para literales.
  • F-014 sub-caso campo→campo Caja {t: p.t}: InicializacionStruct expresión y Asignacion Campo ahora deep-copy Texto también cuando el origen es p.t (field→field), no solo literales. test_f014_completo.fc 6/6 OK sin double-free.
  • F-019 archivo_listar(\"literal\") ruta larga: archivo_listar con Palabra literal ahora strlen+malloc+memcpy + free del temporal tras la llamada (igual que archivo_leer F-016). Fin del descriptor fantasma en rutas largas.
  • F-020 "{f(x)}" vacío silencioso: imprimir_linea("{presupuesto_restante(p)}") ya no imprime restante= vacío. Ahora diagnostica [S080] Interpolación con llamada no soportada. Usa variable temporal: el tmp = f(x) ; "{tmp}" y falla con [C009] en vez de LNK2019 mudo.
  • F-021 a > 0 infiere Booleano: Binaria con > < >= <= == != Y O siempre retorna Tipo::Booleano en codegen/tipos.rs y semantic/tipos.rs. Fin del T011 disconcordancia espurio en si a > 0 con a: Entero32. test_F021.fc → F-021 OK.
  • perfil_marca(\"literal\") Palabra→Texto: verificación Tipo::Texto else conversión Palabra igual que otros builtins. test_perfil_literal.fc 3 marcas OK.

🧹 MANTENIMIENTO

  • AGENTS.md comprimido (~23554 tokens → ~1/3): fases 100% eliminadas, Roadmap real (R7.7/R9/R8) + Mejoras 0.7.6 + Gotchas operativos (exe zombie, build.bat VsDevCmd, BOM .ps1).

🧪 VERIFICACIÓN

  • cargo test --lib: 47 passed
  • build.bat 01:15 release+debug OK, cargo check sin E0599
  • test_F013_struct.fc / test_f014_completo.fc / test_F019b.fc / test_F021.fc OK; test_F020.fc diagnostica [S080] como diseñado

Install falcato 0.7.6

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/CerebroCanibalus/falcato/releases/download/v0.7.6/falcato-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/CerebroCanibalus/falcato/releases/download/v0.7.6/falcato-installer.ps1 | iex"

Download falcato 0.7.6

File Platform Checksum
falcato-x86_64-pc-windows-msvc.zip x64 Windows checksum
falcato-x86_64-pc-windows-msvc.msi x64 Windows checksum
falcato-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
falcato-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

0.7.5 - 2026-08-21

Choose a tag to compare

@github-actions github-actions released this 22 Aug 04:21

Release Notes

➕ ADICIONES

  • Coerción entera y literales polimórficos (F-013): los literales como 42 ahora adoptan el tipo esperado por el contexto — Entero64, Natural32, etc. — sin necesidad de como_* cuando hay widening seguro. 42 largo / 42 natural largo / 42 corto / 3.14 preciso son azúcar: desugarean a como_entero64(42) etc. Widening seguro (Entero8→16→32→64, Natural→Entero ancho, F32→F64) es implícito; narrowing sigue exigiendo como_* explícito con check de rango en compile-time.

  • Profiling nativo agnóstico al idioma: reloj_mono_ns() -> Entero64 (monotónico, QueryPerformanceCounter / clock_gettime) + perfil_inicio(), perfil_marca(Palabra), perfil_reporte() para medir sin FFI manual. Nivel 0 mide tiempo, Nivel 1 reporta tabla de deltas ordenada.

  • Verificación cross-file (F-008): falcato verifica ops.fc main.fc y falcato compila a.fc b.fc comparten símbolos públicos entre archivos. Fin del falso [M002] no encontrada cuando la función existe en otro archivo del mismo build.

🔧 ARREGLOS

  • F-009 -> Vacio ya no panica: Vacio en retorno de función mapea a void en Cranelift. Antes el codegen paniqueaba No se puede compilar tipo Nombre 'Vacio'.

  • F-014 heap Texto en structs: el c: Caja = Caja { hola: \"hola\" } y r.campo = \"x\" ahora copian profundo el descriptor (malloc+memcpy) en vez de aliasing. Fix para test_caja_texto y vector_agregar<Texto> con realloc.

  • F-016 archivo_listar con Palabra: archivo_listar(\"dir\") literal Palabra se convierte a Texto descriptor (strlen+malloc+memcpy) antes del runtime. Fin del crash por descriptor inválido.

  • F-017 aritmética Entero8: b - 48 donde b: Entero8 ya no emite isub I8 inválido; promociona a I32 (widening) y usa isub I32. Incluye fix entero_a_texto/flotante_a_texto genéricos (sextend/uextend/fpromote por signo/ancho).

  • Bloqueo msvcrt.lib (LNK1104): build con build.bat (VsDevCmd) y fix de target/release/falcato.exe bloqueado por proceso zombie (taskkill). Documentado en AGENTS.md como Gotcha.

🧪 VERIFICACIÓN

  • cargo test: 54/54 verde (lib+bin), 47 lib verde
  • falcato verifica ops.fc main_test.fc: ambos verificado: sin errores (F-008)
  • falcato compila ops.fc main_test.fc --salida prueba_f008.exe && ./prueba_f008.exe → 42
  • test_caja_texto, test_clonar, test_vacio, test_archivo_listar, test_f017 todos OK
  • build.bat release+debug sin Verifier errors

Install falcato 0.7.5

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/CerebroCanibalus/falcato/releases/download/v0.7.5/falcato-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/CerebroCanibalus/falcato/releases/download/v0.7.5/falcato-installer.ps1 | iex"

Download falcato 0.7.5

File Platform Checksum
falcato-x86_64-pc-windows-msvc.zip x64 Windows checksum
falcato-x86_64-pc-windows-msvc.msi x64 Windows checksum
falcato-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
falcato-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

0.7.4 - 2026-08-21

Choose a tag to compare

@github-actions github-actions released this 21 Aug 06:56

Release Notes

➕ ADICIONES

  • sino pues / sino po — else-if en español natural (firma chilena):
    cadenas de condicionales sin anidar. sino pues es la forma canónica,
    sino po el guiño chileno, y sino si se mantiene como alias de
    migración. Todas desugarean al mismo AST (sino { si ... }) — cero
    costo en runtime, cadenas de cualquier profundidad soportadas.

    si nota > 90 { imprimir_linea("A"); }
    sino pues nota > 80 { imprimir_linea("B"); }
    sino po nota > 70 { imprimir_linea("C"); }
    sino si nota > 60 { imprimir_linea("D"); }
    sino { imprimir_linea("F"); }
    
  • Aliases estruct y &muta/&cambia: estructural/estructura
    aceptan ahora estruct para quien teclea rápido; &mut acepta
    &muta y &cambia — referencias mutables con nombre en español.
    Las formas viejas siguen funcionando (aliases ocultos, cero ruptura).

  • Builtins de memoria debug (memoria_usada, memoria_volcar,
    memoria_rastrear, memoria_canario_verificar)
    : lente graduable
    sobre el heap. Con --depurar-memoria=0..3 el binario instrumenta
    allocs/frees por niveles: 1 Guardián (doble-free/free inválido/leaks),
    2 Cirujano (canarios + cuarentena), 3 Enfermizo (hexdump + timeline).
    Sin flag = cero costo.

  • Depuración de crashes (3.1): los prints ya no se pierden cuando el
    programa crashea (flush tras cada imprimir_linea); panic handler
    auto-instalado que imprime [FALCATO PANIC] con código de excepción;
    si el codegen salta una función, error duro [C009] con archivo:línea
    en vez de LNK2019 mudo del linker.

🔧 ARREGLOS

  • 3.4 — API unificada Texto (F-002/F-003): archivo_leer/escribir/ existe, tcp_conectar y dns_resolver aceptan ahora Texto dinámico
    además del literal Palabra. Fin de la inconsistencia donde la mitad
    de los builtins pedía un tipo y la otra mitad otro. Coerción implícita:
    el código viejo con literales compila sin cambios.

  • 3.8 — retornar Struct { ... }: el parser de retornar acepta
    struct literals igual que una declaración. Antes solo el x: T = T{}
    funcionaba y retornar T{} daba error de sintaxis.

  • F-010/S003 — escritura a través de referencia mutable: r.x = 99
    con r: &muta Punto ahora funciona (lectura y escritura), tanto con
    refs locales como pasando &muta T a funciones. Antes era error
    "tipo no-struct" o función silenciosamente ausente del binario.

  • F-012 — escapes desconocidos en literales: "D:\Cid\build" ahora
    produce [S008] escape desconocido en literal de texto (ej: \C). Usa \\ para barra invertida con archivo:línea en compile-time. Antes
    generaba basura silenciosa en runtime lejos del origen.

✅ VERIFICACIÓN

  • cargo test --release: 47 lib + 54 bin verde
  • pruebas/unitest/: 12/12 ejecutan + 6/6 negativos fallan como deben
  • Cadena sino pues/po/si de 4 niveles: compila, corre, rama correcta
  • Escritura vía &muta (local + parámetro de función): verificada
  • archivo_io.fc con ruta Palabra (viejo) y Texto (nuevo): ambos OK

Install falcato 0.7.4

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/CerebroCanibalus/falcato/releases/download/v0.7.4/falcato-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/CerebroCanibalus/falcato/releases/download/v0.7.4/falcato-installer.ps1 | iex"

Download falcato 0.7.4

File Platform Checksum
falcato-x86_64-pc-windows-msvc.zip x64 Windows checksum
falcato-x86_64-pc-windows-msvc.msi x64 Windows checksum
falcato-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
falcato-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

0.7.3 - 2026-08-19

Choose a tag to compare

@github-actions github-actions released this 22 Aug 04:21

Release Notes

➕ ADICIONES

  • Aliases sin tilde para keywords con tilde (ergonomía de typing):
    las 9 keywords con tilde aceptan ahora también su forma sin tilde como
    alias equivalente. La forma canónica en docs sigue siendo con tilde,
    pero el parser acepta cualquiera — un hispanohablante que tipea rápido
    ya no se encuentra con errores inesperados por omitir tildes.

    Inventario:

    • función ↔ funcion (alias preexistente)
    • está ↔ esta
    • enumeración ↔ enumeracion
    • módulo ↔ modulo
    • región ↔ region (alias preexistente)
    • EnteroMínimo ↔ EnteroMinimo
    • NaturalMínimo ↔ NaturalMinimo
    • Lógico ↔ Logico
    • Vacío ↔ Vacio

    Logos es case-sensitive: Logico (sin tilde, mayúscula inicial) es
    alias de Lógico; logico (todo minúscula) sigue siendo un
    identificador válido. Misma convención que el resto de CamelCase.

    Nota: el modulo: Entero32 o el vacio: Entero32 ahora emiten error
    de "palabra reservada" — comportamiento idéntico al que ya tenía
    el Módulo o el Vacío con tilde. Consistente con todas las
    keywords.

🔧 ARREGLOS

  • F-007 (resuelto): Vacio (sin tilde) ahora compila en lugar de
    panicar el codegen con "tipo Nombre 'Vacio' sin resolver". Archivos
    de Cid (json_reparador.fc, http.fc) que escribían Vacio ya no
    necesitan el fix manual sed 's/-> Vacio/-> Vacío/g'.

  • Ejemplo apodo_tipos.fc: la variable el minimo se renombró a
    el minimo_val para no chocar con el nuevo alias EnteroMinimo.
    Cambio trivial: el ejemplo sigue demostrando lo mismo (apodos + tipos
    naturales + tamaños como adjetivos).

✅ VERIFICACIÓN

  • cargo test: 54/54 verde
  • pruebas/unitest/: 19 archivos (incluido nuevo unitest_aliases_sin_tilde.fc, 6/6 verde)
  • Ejemplos: 76/83 compilan (7 intencionales)
  • apodo_tipos.fc: ✅ compila y ejecuta correctamente con minimo_val
  • Caso F-007 (Cid json_reparador.fc con Vacio sin tilde): ✅ ya no panica

Install falcato 0.7.3

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/CerebroCanibalus/falcato/releases/download/v0.7.3/falcato-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/CerebroCanibalus/falcato/releases/download/v0.7.3/falcato-installer.ps1 | iex"

Download falcato 0.7.3

File Platform Checksum
falcato-x86_64-pc-windows-msvc.zip x64 Windows checksum
falcato-x86_64-pc-windows-msvc.msi x64 Windows checksum
falcato-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
falcato-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

0.7.2 - 2026-08-19

Choose a tag to compare

@github-actions github-actions released this 22 Aug 04:21

Release Notes

🔧 ARREGLOS

  • F-006 — Análisis semántico en dos pasadas (BLOQUEANTE): el analizador
    semántico ahora recolecta firmas en una primera pasada y analiza cuerpos
    en una segunda. Esto resuelve falsos positivos de [T001] y [T011] cuando
    una función llama a otra declarada más abajo (forward reference). Antes
    del fix, la inferencia de tipos caía en el default Entero32 y producía
    errores espurios como "balance_ok es Entero32 pero se declaró Booleano".

    Ejemplo que antes fallaba y ahora compila:

    función usa_validar(la t: Texto) -> Booleano {
        el r: Booleano = _validar(t);  // _validar declarada abajo
        retornar r;
    }
    función _validar(la t: Texto) -> Booleano { retornar verdadero; }
    

    Cubre también forward references de structs, enums, rasgos, apodos y
    métodos de impl
    (no solo funciones). Patrón estándar de compiladores
    modernos (Rust, Go, Zig).

  • Detección de shadowing (warnings T031-T035): declaraciones duplicadas
    de funciones, structs, enums, rasgos o apodos ahora emiten un warning con
    span, en vez de sobrescribirse silenciosamente. Antes, json_reparador.fc
    tenía _jr_copiar y _jr_es_igual duplicadas (líneas 163/119 y 253/123)
    y la última definición ganaba sin avisar — bomba de tiempo silenciosa.

    Los warnings no bloquean la compilación. Códigos:

    • T031 Función duplicada
    • T032 Struct duplicado
    • T033 Enum duplicado
    • T034 Rasgo duplicado
    • T035 Apodo duplicado

    Salida --json ahora incluye el campo warnings: [...].

🐛 BUGS DESCUBIERTOS (no resueltos en este release)

  • F-007 — Vacio vs Vacío en archivos de Cid: el lexer solo reconoce
    Vacío (con tilde) como tipo Tipo::Vacio. Varios archivos de Cid
    (json_reparador.fc, http.fc) escriben Vacio (sin tilde), que el
    parser acepta como Tipo::Nombre("Vacio") pero el codegen panicea con
    "No se puede compilar tipo Nombre 'Vacio' sin resolver". Es bug del
    archivo, no del compiler. Fix recomendado: en Cid, sed s/-> Vacio/-> Vacío/g.

✅ VERIFICACIÓN

  • cargo test: 54/54 verde
  • pruebas/unitest/: 18 archivos (incluido nuevo unitest_forward_refs.fc)
  • Ejemplos: 76/83 compilan (7 intencionales)
  • Caso del reporte (Cid json_reparador.fc): ✅ verifica sin errores
    (2 warnings T031 por duplicados que el código silenciaba — fix recomendado)

Install falcato 0.7.2

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/CerebroCanibalus/falcato/releases/download/v0.7.2/falcato-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/CerebroCanibalus/falcato/releases/download/v0.7.2/falcato-installer.ps1 | iex"

Download falcato 0.7.2

File Platform Checksum
falcato-x86_64-pc-windows-msvc.zip x64 Windows checksum
falcato-x86_64-pc-windows-msvc.msi x64 Windows checksum
falcato-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
falcato-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

0.7.1 - 2026-08-19

Choose a tag to compare

@github-actions github-actions released this 20 Aug 00:13

Release Notes

🔧 ARREGLOS

  • Reorganización de módulos: división de archivos monolíticos en submódulos manejables para reducir deuda técnica.
    • semantic.rs (4316 LOC) → semantic/ con 5 submódulos (mod.rs, tipos.rs, sentencias.rs, funciones.rs, ownership.rs).
    • codegen/builtins.rs (3684 LOC) → codegen/builtins/ con 12 submódulos (io.rs, tcp.rs, canal.rs, texto.rs, conversion.rs, archivo.rs, math.rs, vector.rs, diccionario.rs, proceso.rs, sistema.rs, tls.rs).
  • Keywords eliminadas: tipo y entonces removidas del lexer y LSP (nunca usadas en parser/semantic).

Install falcato 0.7.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/CerebroCanibalus/falcato/releases/download/v0.7.1/falcato-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/CerebroCanibalus/falcato/releases/download/v0.7.1/falcato-installer.ps1 | iex"

Download falcato 0.7.1

File Platform Checksum
falcato-x86_64-pc-windows-msvc.zip x64 Windows checksum
falcato-x86_64-pc-windows-msvc.msi x64 Windows checksum
falcato-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
falcato-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

0.7.0 - 2026-08-18 — "¡Fuese!"

Choose a tag to compare

@github-actions github-actions released this 18 Aug 22:32

Release Notes

➕ ADICIONES

  • Aritmética consciente: el subjuntivo aritmético llega al lenguaje.
    • a + b fuese → checked (overflow → Resultado.Error, no crash).
    • un x = a + b → Option (overflow → Nada, sin desbordamiento → Algo(valor)).
    • romper / continuar en bucles.
    • Notación científica en literales (6.674e-11).
    • Impresión flotante con %.17g (round-trip exacto).
  • 20 primitivas nativas para Cid (5 fases):
    • Strings dinámicos (texto_agregar_texto, texto_poner_byte, texto_puntero, texto_desde_bytes).
    • Conversión número↔texto (entero_a_texto, flotante_a_texto, booleano_a_texto).
    • Archivos avanzados + entorno (archivo_agregar, archivo_borrar, archivo_listar, entorno_obtener, etc.).
    • TUI + TLS/HTTPS (terminal_dimensiones, tls_conectar/escribir/leer/cerrar).
  • Trigonometría completa: builtins libm (seno, coseno, tangente, arcseno, arctangente, exp, log, etc.), sufijos de precisión (_preciso, _rapido, _aprox), seno_2pi/coseno_2pi con polinomios minimax en Cranelift, efecto vectorizable, fase nativa para osciladores.
  • Conversión numérica completa: como_entero8/16/32/64 + como_flotante32/64 — familia unificada.
  • Structs entre archivos: retorno y parámetros de struct cross-file.
  • Diccionario con tipos compuestos: Diccionario<Texto, Vector<Texto>> funciona.

🔧 ARREGLOS

  • 10 fixes macOS (Issue #5): linker POSIX, CLOCK_MONOTONIC, PTHREAD_MUTEX_SIZE, globales Mach-O, CallConv::AppleAarch64, nanosleep, printf variádica, closures firma, canal_cerrar.
  • Aritmética flotante completa: dispatch por tipo en operaciones binarias.
  • Drop automático: free al final de scope para heap owned (Texto, Vector, Diccionario, Conjunto).
  • Diccionario: 4 bugs — SSA dominance, cap=0 → crash, strings internados, structs por tipo no por tamaño.
  • vector_obtener bounds check: fuera de rango → 0 definido.
  • entero_a_texto acepta Entero32 con sextend automático.
  • Unitest de codebase: suite 12/12 verde.

Install falcato 0.7.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/CerebroCanibalus/falcato/releases/download/v0.7.0/falcato-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/CerebroCanibalus/falcato/releases/download/v0.7.0/falcato-installer.ps1 | iex"

Download falcato 0.7.0

File Platform Checksum
falcato-x86_64-pc-windows-msvc.zip x64 Windows checksum
falcato-x86_64-pc-windows-msvc.msi x64 Windows checksum
falcato-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
falcato-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

Falcato v0.6.1 — Argumentos a tope

Choose a tag to compare

@github-actions github-actions released this 08 Aug 23:07

🦅 Falcato v0.6.1 — Argumentos a tope

Lenguaje de programación de sistemas iberohablante, construido sobre Cranelift.

Este release completa el ciclo de argumentos de línea de comandos, de la forma cruda a la elegante. Además trae arreglos vitales del núcleo del lenguaje.


➕ ADICIONES

Librería args_avanzados — subcomandos, repetición y posicionales

Pura .fc, sin tocar el compilador. Se compila junto a tu app:

falcato compila app.fc librerias/args_avanzados.fc --salida app.exe
Función Qué hace
args_subcomando(argv) Primer token sin -- (ej: correr)
args_obtener(argv, "--x") Valor de una etiqueta (default manual si falta)
args_todos(argv, "--x") Repetición → [a, b, c]
args_tiene(argv, "--x") ¿Existe la etiqueta?
args_posicionales(argv) Tokens sin -- tras la primera etiqueta
args_cuenta(argv) Nº de argumentos crudos

Contrato de memoria: todas devuelven copias independientes — el caller libera; nunca se comparten descriptores con argv (evita double-free).

Etiquetas tipadas — parseo automático en principal

estructural Saludo {
    el nombre: Texto,     // requerido
    un cuenta: Entero32,  // opcional
    la saludo: Texto,     // inmutable/validado
}

función principal(el args: Saludo) -> Entero32 {
    imprimir_linea("hola, {args.nombre}");
    retornar 0;
}

El compilador genera el parseo --etiqueta valor, validación de tipos y --ayuda automático — todo en español.

Conversión de texto a número

texto_a_entero, texto_a_natural, texto_a_flotante, texto_a_booleano — parsean un Texto al tipo numérico correspondiente (útil para CLIs y configs).


🔧 ARREGLOS

Bug Fix
Diccionario<K,V> / Conjunto<T> no resolvían tipos concretos Parser + sustitución de genéricos corregidos
texto_nuevo() imprimía (null) Ahora crea un buffer vacío real con terminador nulo
vector_agregar<Texto> crasheaba (escritura fuera de heap) Separadas las responsabilidades de descriptor
vector_obtener<Texto> rompía el verifier de Cranelift Índice siempre extendido a I64
Interpolación no soportaba acceso a campo ({args.nombre}) Ahora compila el acceso a campo real

📥 Instalación

Windows (PowerShell):

powershell -ExecutionPolicy Bypass -c "irm https://github.com/CerebroCanibalus/falcato/releases/download/v0.6.1/falcato-installer.ps1 | iex"

Unix (shell):

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/CerebroCanibalus/falcato/releases/download/v0.6.1/falcato-installer.sh | sh

Instalador MSI: descarga falcato-x86_64-pc-windows-msvc.msi y ejecútalo.


📦 Archivos

Archivo Plataforma Checksum
falcato-x86_64-pc-windows-msvc.zip 🪟 x64 Windows sha256
falcato-x86_64-pc-windows-msvc.msi 🪟 x64 Windows (MSI) sha256
falcato-x86_64-unknown-linux-gnu.tar.xz 🐧 x64 Linux (glibc) sha256
falcato-x86_64-unknown-linux-musl.tar.xz 🐧 x64 Linux (estático) sha256

📚 Recursos


Falcato. Poder. Eficiencia. Rapidez. 🇪🇸

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 08 Aug 05:37

Install falcato 0.5.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/CerebroCanibalus/falcato/releases/download/v0.5.0/falcato-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/CerebroCanibalus/falcato/releases/download/v0.5.0/falcato-installer.ps1 | iex"

Download falcato 0.5.0

File Platform Checksum
falcato-x86_64-pc-windows-msvc.zip x64 Windows checksum
falcato-x86_64-pc-windows-msvc.msi x64 Windows checksum
falcato-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
falcato-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum