Skip to content
desmonHakPublic

About

Documentacion para la VM de mi lenguaje

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

113 Commits

Folders and files

Repository files navigation

Documentacion VM

Version VM: -.-.-


Esta documentacion fue realizada usando la aplicacion Obsidian. Recomendamos descargarla para una correcta lectura.


Licencia

Leeme para saber que puedes hacer con el codigo y la documentacion


Indice de documentos nuevos (instrucciones 0x40-0x64)

Instrucciones

Documento Instrucciones cubiertas
MODS y MODU mods, modu (0x40)
SETCC setcc (0x43)
TRYENTER y TRYLEAVE tryenter (0x44), tryleave (0x45)
Sistema de Strings strmake..strfinalize (0x46-0x54)
STATIC_FIELDS getstatic (0x60), setstatic (0x61)
FFI_RUNTIME gchandle (0x56), getpid (0x57), spawnon (0x58), loadmod (0x59), panic (0x5A), setmethdbg (0x5B), fextend (0x5C), fnarrow (0x5D), dlopen (0x62), dlsym (0x63), callni (0x64)
META_OOP defclass (0xC9), deffield (0xCA), defmethod (0xCB), findclass (0xCC), findmethod (0xCD), addadvice (0xCE), findfield (0xCF), callm (0xFD), proceed (0xFE)
SUPER_INSTRUCCIONES cmpjmp.cc (0x68), cmpjmpu.cc (0x69), decjnz (0x6A), mvtake (0x72), alu3 family (0x73-0x7B: adds3/subs3/muls3/addu3/subu3/mulu3/and3/or3/xor3), loadz (0x7C), loadzh (0x7D)

Arquitectura interna

Documento Contenido
JIT C1 baseline MachineIR, encoder x86-64 hand-rolled, selector, stackmaps, JitRegistry, auto-trigger, ABI vesta_rt
Profile-Guided Optimization Contadores runtime de branches/tipos/allocs, format .vprof, integracion con JIT (warm-start) y AOT (PGO en ejecutables)
Sistema de Cadenas FLAT/ROPE/SLICE, Compact Strings, interning, hash, GC
Convencion de Encoding Convention A vs B, guia para nuevas instrucciones
Plan AOT (Full / Embed / Bare) Tres tiers de deployment a binarios nativos, mapping IR -> codigo nativo, extensibilidad via annotations

Indice de documentos nuevos (HLL support)

Generics y monomorphization

Documento Contenido
Generics SPECIALIZE (0x3A), GenericParam, reificacion

Colecciones nativas

Documento Contenido
Collections VestaList, VestaArrayList, VestaHashMap, VestaHashSet

Sistema de paquetes

Documento Contenido
PackageSystem package.vel, resolucion de dependencias, VESTA_PKG_PATH

IR SSA

Documento Contenido
SSA IR Tipos, opcodes, formato textual, API C++, integracion HLL

Protocolo de depuracion

Documento Contenido
DebugProtocol Protocolo TCP/JSON, comandos, eventos, integracion

Lenguaje Vesta

Documentacion del lenguaje de alto nivel Vesta que compila a VestaVM bytecode.

Vision general y tipos

Documento Contenido
Vesta Vision general, pipeline, anotaciones
TiposDatos Primitivos, string, punteros, structs, arrays, Optional, Result
Enums Uniones etiquetadas y enums con valor
OptionalResult Optional<T>, Result<T,E>, ?, !! y la afirmacion de no-nulo
Operadores Precedencia, semantica y sobrecarga
ControlFlow if/while/for, match, break/continue, goto
Strings Metodos, interpolacion ${expr}, especificadores de formato, codificaciones
Matematicas Las 18 funciones de vesta_math
EstiloYFormato Lo que vm fmt garantiza, y por que

Funciones y parametros

Documento Contenido
Parametros Las doce formas de parametro por los siete contextos
DireccionParametros in / out / inout
LlamadaUniforme x.f(a) == f(x, a), el hueco _, argumentos con nombre, sobrecarga
Closures Lambdas, capturas, fn(...) frente a cfn(...)
ClosuresEnCampos Guardar una lambda en un campo y quien libera su entorno

Programacion orientada a objetos

Documento Contenido
OOP Clases, herencia, interfaces, properties, constructores, RAII
ReflexionAOP forName, getClass, getField, getMethod, invoke, @Aspect, proceed()
Generics Monomorfizacion al compilar, conceptos, especializacion

Memoria y ownership

Documento Contenido
SmartPointers unique<T>, shared<T>, move, deleters propios
BorrowChecker borrow<T> / borrow_mut<T>, las cuatro reglas, NLL, reborrow
Overlays Vistas tipadas sobre memoria binaria
DisposicionSecciones place_section, datos crudos y consultar las secciones desde el programa

Concurrencia y distribucion

Documento Contenido
Async @Async, await, spawn, rspawn, Future, msgsend/msgrecv, fibras
Sincronizacion synchronized, monitores, wait/notify

Gestion de errores

Documento Contenido
Excepciones try/catch/finally, FatalError, panic(), stack trace, RAII
RuntimeHooks @AllocatorOverride, @PanicHandler, @UnwindImpl y los demas ganchos

Metaprogramacion

Documento Contenido
Metaprogramacion comptime, introspeccion, macros
ConstructorComptime Constructor que se ejecuta al compilar y recibe la expresion sin evaluar
CompilacionCondicional @Target y las ramas por objetivo
Instrumentacion @Hook(enter/exit/unwind), selectores y @NoInstrument

Modulos y paquetes

Documento Contenido
Namespaces namespace, visibilidad, import, impl
Modulos .vxi, cache incremental, compilacion paralela
CargaDinamica loadmodule / unloadmodule y hot-reload
PackageManager vm pkg: manifiesto, lockfile, firmas, auditoria
Sandbox Capabilities sobre modulos cargados

Colecciones y FFI

Documento Contenido
Colecciones ArrayList/HashMap/HashSet/Queue/Deque/TreeMap/TreeSet/Stack como keywords
FFI extern declarativo, ffi_open/sym/call, plugins, vesta_io, vesta_math
InteropC Interop con C y ownership de structs
CallbacksNativos as_native_callback: pasar una funcion Vesta a una libreria nativa
SyscallsWindows La capa NT de std.syscall.windows

Compilacion nativa y bajo nivel

Documento Contenido
CompilacionNativa -m aot, objetivos, gc<T> opt-in, sin runtime obligatorio
InlineAsm asm { }, register("reg"), lista de operandos, @Naked
Vectorizacion Auto-vectorizacion SSE2/AVX2/AVX512 y cpu_features()
Enlazador vm --link y vm --ar
Terminal Color de 24 bits, cursor y pantalla

About

Documentacion para la VM de mi lenguaje

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors