Larva 0.8.0
Antril 0.8.0 y la cadena de herramientas Larva, con instaladores para Windows, Linux y macOS, una biblioteca estándar que se distribuye compilada, paquetes de lenguaje firmados, el gestor de paquetes Hive y soporte para VS Code.
Larva 0.8.0 es la cadena de herramientas del lenguaje Antril, junto con Antril 0.8.0, su paquete de lenguaje. Esta página enumera lo que contiene la versión, área por área, con enlaces a la documentación. Para instalarla, visita la página de descargas o ejecuta el instalador de una línea para tu sistema (consulta Instalación más abajo).
Lo más destacado
- Instaladores para Windows, Linux y macOS. El asistente de instalación de Windows, un zip portátil y, como novedad en esta versión, archivos
.tar.gzconinstall.shpara Linux y macOS. Los instaladores funcionan para el usuario actual, sin permisos de administrador. - Instalación en una línea desde www.antril.org, con
install.ps1en Windows einstall.shen Linux y macOS. - La biblioteca estándar se distribuye compilada. System.Core se instala como
System.Core.dll, una biblioteca de Larva, en lugar de archivos fuente que se compilaban la primera vez que se usaban. - Los lenguajes son paquetes firmados. Antril vive en
Languages/Antril, con el hash de cada archivo en su manifiesto y el manifiesto firmado.larva languagesverifica cada paquete de lenguaje instalado. - Un registro de lenguajes, nuevo y todavía en evolución:
larva languages install,publishy más, con paquetes firmados por su autor y por antril.org. - Hive viene integrado en
larva: paquetes firmados, rangos de versiones,hive.locky un registro de paquetes público en www.antril.org con cuentas y tokens de API. - Memoria por proyecto.
gc: default,refcount,arenaomanualen.queen, y las bibliotecas compiladas para otro modo se enlazan como su propio dominio de GC. - Cuatro back ends: LLVM, el back end x86-64 propio de Larva, WebAssembly y la VM de IL.
- VS Code: las extensiones de Antril y Larva, con un servidor de lenguaje que además verifica los préstamos mientras escribes.
Qué trae la 0.8.0
El lenguaje Antril
- Tipos primitivos de
i8ai256, deu8au256y def16af256, además deiptr/uptr,stryany. Un tipo sin?nunca contienenull. Consulta Fundamentos. - Clases con secciones de acceso (
public:,private:,internal:,inherited:,friendly:,file:), tiposvalue, clases base y finales, interfaces con cuerpos predeterminados, propiedades, clases estáticas y destructores. Consulta Tipos. - Registros que se comparan por contenido y se copian con
with. Tuplas de cualquier cantidad de elementos. Enums sobre enteros,stro unvalue, ybitflag enums. Consulta Registros y Enums. - Una sola palabra clave,
loop, para todo tipo de bucle, yswitchcon patrones de constante, comparación, rango, tipo, propiedad y posición. Consulta Control de flujo. - Tipos de función (
func<A> : R) y lambdas que capturan, iteradores conyield, genéricos con restricciones comoT : number,T : new()yT : op +(T, T) : T, y genéricos variádicos (T...constatic loop). Consulta Funciones y genéricos. - Operadores definidos por el usuario, incluidos símbolos nuevos con su propia precedencia, y bloques de extensión (
ext,static ext,ext<T : …>con restricciones). Consulta Operadores y Bloques de extensión. - Declaraciones
exception, contry,catchyfinally. Consulta Errores y excepciones. async/awaitsobreTaskyTask<T>, y clases reactivas con camposreactive, valorescomputed, bloqueseffecty métodosreacts. Consulta Código asíncrono y reactivo.- Destructores en todos los modos de memoria, bloques
region { }, referencias&T/&mut Tverificadas por el verificador de préstamos (offde forma predeterminada,warnoenforce), punteros en códigounsafe,unsafe: denypor proyecto y búferes fijos, incluidofixed T[]guardado dentro del objeto de una clasefinal. Consulta Memoria. - Llamadas directas a C con
[Import], disposición de structs de C, punteros a funciones y exportaciones. Consulta Interoperabilidad con C. - La referencia del lenguaje completa, incluido cada diagnóstico.
Larva
larva newcon las plantillasConsole-AppyLibrary. Las plantillas se guardan como HIR de Larva, y cada lenguaje las escribe como su propio código fuente. Consulta new.larva runcompila el proyecto actual solo cuando algo cambió, y luego lo ejecuta. Consulta run.larva buildcon--check,--dll,--target native|wasm|wasm-llvm,--backend llvm|x64, de-O0a-O3,--borrowcheck,--cpuy--timings. Consulta build.larva libcompila código fuente en una biblioteca de Larva: un.dllque contiene código de Larva compilado. Consulta lib.larva configdefine valores predeterminados para toda la máquina: modo de GC, back end, destino, optimización, CPU, reflexión, verificador de préstamos, código inseguro, genéricos, acceso predeterminado y registros de Hive. Consulta config.- Archivos de proyecto
.queencon los chunksPROJ,BUILD,DEPS,SOURCES,FILES,RESOURCESyHIVE, y recursos incrustados en el programa (System.Resources). Consulta Archivos de proyecto. larva types,larva showylarva searchexploran la biblioteca estándar, las bibliotecas y tu propio código fuente, en Antril o como HIR (--lang hir). Consulta Explorar código.larva bindescribe una biblioteca de Larva para un.dllo.sonativo, a partir de un encabezado de C (preprocesado con clang cuando está instalado) o de una descripción.bind. Los perfiles de bindings escritos en Antril (--profile) deciden cada nombre. Consulta Bindings nativos.- Paquetes de lenguaje:
larva languagesenumera y verifica los paquetes instalados, ylarva languages keyypacklos firman. Los paquetes del registro de lenguajes, que es nuevo, se instalan conlarva languages install. Consulta Paquetes de lenguaje y El registro de lenguajes. - Back ends: LLVM (el predeterminado, con optimización), el back end x86-64 propio de Larva (más rápido para compilar), WebAssembly mediante LLVM (
--target wasm-llvm) o mediante el back end propio de Larva (--target wasm), y la VM de IL para módulos.lvm(larva run,dis,link,native). Consulta Arquitectura. - Memoria: un recolector de basura generacional por trazado con una zona joven (nursery) de copia en paralelo, conteo de referencias, arenas y memoria manual. Una dependencia cuyo
gc:difiere del del programa se enlaza como su propio dominio de GC, y el texto y los bytes cruzan entre dominios conSystem.Exchange. Consulta Recolección de basura y Dominios de GC.
Biblioteca estándar
- System.Core está escrita en Antril y se instala compilada, como
System.Core.dll. Explórala en el explorador de la biblioteca. - Colecciones, texto,
Mathsobre todos los tipos numéricos (exacta con enteros y conf128/f256),Random,DateTime, reflexión yResourcesenSystem. - Archivos, carpetas, rutas y flujos en
System.IO. JSON (JsonValue) y expresiones regulares (Regex) enSystem.Text. - TCP y
HttpClient.GetenSystem.Net.ProcessyStopwatchenSystem.Diagnostics. - Hilos, bloqueos, operaciones atómicas y
ParallelenSystem.Threading. Tareas enSystem.Threading.Tasks.System.Reactive. System.Bindings.dll, contra la que se escriben los perfiles de bindings.
Consulta la descripción general de System.Core.
Hive
larva hive add,install,restore,info,list,verifyytrustpara usar paquetes, ykey,packypublishpara crearlos. Consulta Usar paquetes y Publicar paquetes.- Paquetes con nombre
Author/Name, con rangos de versiones (@1.2,@^1.2,@>=1.2) y unhive.lockque fija el hash, la clave y el registro de cada versión. - Paquetes firmados con ECDSA P-256. Cada archivo tiene su hash en el manifiesto. Las claves de firma se recuerdan en la primera instalación, y nada de un paquete se ejecuta al instalarlo.
- Paquetes compilados y de código fuente, y paquetes que envuelven una biblioteca compilada en otro lugar, como un binding nativo.
- Registros de paquetes en la web, en cualquier servidor HTTPS estático o en una carpeta. El registro público es
https://www.antril.org/hive-api, con cuentas, autores y tokens de API. Consulta La API del registro y Cuentas, tokens y autores.
Editores
- Antril para VS Code: resaltado de sintaxis, fragmentos de código, iconos de archivo y colores semánticos para archivos
.ant. Instala Larva junto con ella. - Larva para VS Code ejecuta
larva lsppara cada lenguaje instalado. Ofrece errores mientras escribes (verificador de préstamos incluido), autocompletado, información al pasar el cursor, navegación hacia tipos de biblioteca descompilados y soporte para.queen. Agrega los comandos New Project from a Template, Run, Check, Build Native Executable, Build WebAssembly, Bind a Native Library, Generate Bindings from the Profile Open, List a Native Library's Exports, Show Type (decompiled) y Restart Language Server. Consulta VS Code. larva lspfunciona con cualquier editor que hable el Language Server Protocol. Consulta El servidor de lenguaje.
Instalación
| Archivo | Sistema |
|---|---|
LarvaSetup-0.8.0-win-x64.exe |
Windows x64: el asistente de instalación, o --silent desde una terminal. |
Larva-0.8.0-win-x64.zip |
Windows x64, portátil: descomprime y ejecuta larva.exe. No se agrega nada al PATH. |
Larva-0.8.0-<os>-<arch>.tar.gz |
Linux x64 y macOS arm64: descomprime y ejecuta install.sh. |
O en una sola línea:
irm https://www.antril.org/install.ps1 | iex
curl -fsSL https://www.antril.org/install.sh | sh
Las opciones se pasan a install.sh, por ejemplo curl -fsSL https://www.antril.org/install.sh | sh -s -- --no-path.
- El asistente de instalación instala en
%LOCALAPPDATA%\Programs\Larva. Puede agregar Larva a tuPATH, registrarla en Configuración > Aplicaciones, hacer dehttps://www.antril.org/hive-apiel registro de paquetes predeterminado y mostrar los archivos de Larva con sus iconos. Cada una de estas opciones se puede desactivar (--no-path,--no-registry,--no-hive,--no-types).--uninstalldesinstala Larva. install.shinstala en~/.local/share/larva(en macOS,~/Library/Application Support/Larva) y deja un comandolarvaen~/.local/bin. Acepta--prefix,--no-path,--no-hive,--no-typesy--uninstall.- En Windows, instalar sobre una versión anterior elimina solo los archivos que instaló esa versión. Todo lo demás que haya en la carpeta se deja intacto.
- Herramientas opcionales: las herramientas de compilación de MSVC para ejecutables nativos en Windows, clang para preprocesar encabezados de C en
larva bind, y Node.js para ejecutar compilaciones de WebAssembly fuera de un navegador.
Consulta Instalar Larva y Los instaladores.
Limitaciones conocidas
- Los paquetes para Linux y macOS son nuevos y están menos probados que el instalador de Windows. Por favor, informa los problemas en el foro.
- Los ejecutables nativos se enlazan con las herramientas de MSVC. Las compilaciones nativas en Linux y macOS todavía no están terminadas.
gc: customse acepta, pero todavía no hay una interfaz para que un proyecto defina su propio recolector. Esos proyectos se compilan con el recolector por trazado.- El back end de WebAssembly propio de Larva (
--target wasm) genera módulos inválidos para algunos programas y no admite enteros de 256 bits. Usa--target wasm-llvm. Mainno puede recibir argumentos de texto, yMain() : i32imprime su resultado en lugar de terminar con él como código de salida.larva buildcompila el programa completo cada vez. Está prevista una caché incremental por ensamblado.- Todavía no se pueden retirar versiones de Hive (yank) en www.antril.org.
Consulta Lo que todavía no está implementado.
Archivos y sumas de verificación
Los archivos de esta versión no se publican aquí.