Web Analytics

gig

⭐ 117 stars Spanish by schurhammer

gig

Gig es un compilador de gleam escrito en gleam.

Cómo usar

Compilar y ejecutar un archivo de ejemplo:

# clone the repository
git clone https://github.com/schurhammer/gig
cd gig

compile a sample

gleam run samples/hello_world.gleam

run the sample

samples/hello_world.exe

Compilar gig:

# compile gig into a binary
gleam run src/gig.gleam --gc --release

compile a sample using the gig binary

src/gig.exe samples/hello_world.gleam

run the sample

samples/hello_world.exe

Compila tu proyecto usando el binario gig:

# you should be in your project root
cd 

copy patch directory (adjust file paths to match your system)

cp -r ../gig/patch patch

ensure dependencies are downloaded

gleam deps download

compile your main module

gig src/
.gleam

run your main module

src/
.exe

Compila tu proyecto usando gig como dependencia de ruta

# you should be in your project root
cd 

copy patch directory (adjust file paths to match your system)

cp -r ../gig/patch patch

ensure dependencies are downloaded

gleam deps download

compile your project using gig as a path dependency

gleam run -m gig src/
.gleam

run your main module

src/
.exe

Banderas opcionales:

> [!IMPORTANTE]
En el caso probable de que encuentres desbordamientos de pila, aumenta el tamaño de tu pila. Estos suelen aparecer como fallos de segmentación.
>
> ulimit -s unlimited
``

Dependencias Requeridas:

  • Compilador C (clang parece funcionar mejor)
  • Boehm GC es necesario para --gc (también llamado libgc)

Biblioteca Estándar

Dado que gran parte de la biblioteca estándar está implementada con llamadas @external, no todas las funciones están disponibles en este momento. Algunas funciones ya han sido reimplementadas con parches, ver el directorio patch. El compilador mostrará una advertencia si se usa una función no implementada, y se usará un "todo" como cuerpo de la función.

Sistema de Parches

Dado que gig es un proyecto de terceros, la mayoría de las bibliotecas gleam en el ecosistema probablemente no lo soporten. Para estas situaciones tenemos un sistema de parches que te permite sobrescribir algunos módulos que de otro modo no funcionarían. Para hacer esto simplemente crea un módulo llamado x.patch.gleam donde x es el nombre del módulo que deseas parchear. El parche se fusionará con el módulo original, por lo que solo necesitas implementar las funciones que están rotas. Los parches pueden colocarse en el directorio patch o en cualquiera de los directorios de código fuente.

Para mejor soporte del lenguaje c en tu editor, puedes agregar un archivo .clangd y compile_flags.txt a tu proyecto.

.clangd: CompileFlags: Add: [-Ipatch] ` compile_flags.txt: (archivo vacío)

FFI

Puedes usar la anotación @external(c, "", "function_name") para definir funciones C, similar al FFI en gleam normal. Después de esto, ejecuta el compilador con la opción --headers para generar un archivo de encabezado con las declaraciones de funciones y tipos requeridas para implementar la función externa. Tu archivo de implementación en C debe #include el archivo de encabezado y debe llamarse de la misma manera que el archivo de encabezado. Preferiblemente, tus funciones deberían tener un espacio de nombres, por ejemplo, module_name_function_name()`.

Lista de características / tareas pendientes

Básicos

Funciones

Control de flujo

Otros tipos de datos

Características avanzadas

Contribuyendo

No estoy aceptando contribuciones de código en este momento. Sin embargo, siéntase libre de crear problemas, sugerencias o discusiones.

--- Tranlated By Open Ai Tx | Last indexed: 2025-12-11 ---