Web Analytics

gig

⭐ 117 stars French by schurhammer

gig

Gig est un compilateur gleam écrit en gleam.

Comment utiliser

Compiler et exécuter un fichier exemple :

# 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

Compiler 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

Compilez votre projet en utilisant le binaire 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

Compilez votre projet en utilisant gig comme dépendance de chemin

# 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

Options facultatives :

> [!IMPORTANT]
Dans le cas probable où vous rencontrez des dépassements de pile, augmentez la taille de votre pile. Ceux-ci se manifestent souvent par des erreurs de segmentation.
>
> ulimit -s unlimited
``

Dépendances requises :

  • Compilateur C (clang semble fonctionner le mieux)
  • Boehm GC est nécessaire pour --gc (alias libgc)

Bibliothèque standard

Puisqu’une grande partie de la bibliothèque standard est implémentée avec des appels @external, toutes les fonctions ne sont pas encore disponibles. Certaines fonctions ont déjà été réimplémentées avec des correctifs, voir le répertoire patch. Le compilateur affichera un avertissement si une fonction non implémentée est utilisée, et un "todo" sera utilisé comme corps de fonction.

Système de correctifs

Puisque gig est un projet tiers, la plupart des bibliothèques gleam existantes ne sont probablement pas compatibles avec lui. Pour ces cas, nous avons un système de correctifs qui vous permet de remplacer certains modules qui ne fonctionneraient pas autrement. Pour cela, créez simplement un module appelé x.patch.gleamx est le nom du module que vous souhaitez corriger. Le correctif sera fusionné avec le module original, donc vous n’avez qu’à implémenter les fonctions qui sont défectueuses. Les correctifs peuvent être placés dans le répertoire patch ou dans n’importe quel répertoire source.

Pour un meilleur support du langage C dans votre éditeur, vous pouvez ajouter un fichier .clangd et compile_flags.txt à votre projet.

.clangd : CompileFlags: Add: [-Ipatch] `

compile_flags.txt : (fichier vide)

FFI

Vous pouvez utiliser l'annotation @external(c, "", "function_name") pour définir des fonctions C, similaire à la FFI dans gleam normal. Après cela, lancez le compilateur avec l'option --headers pour générer un fichier d'en-tête avec les déclarations de fonctions et de types nécessaires pour implémenter la fonction externe. Votre fichier d'implémentation C doit #include le fichier d'en-tête et porter le même nom que celui-ci. De préférence, vos fonctions devraient être dans un espace de noms, par exemple module_name_function_name()`.

Liste des fonctionnalités / À faire

Bases

Fonctions

Contrôle de flux

Autres types de données

Fonctionnalités avancées

Contribution

Je n'accepte pas les contributions de code pour le moment. N'hésitez pas à créer des issues, des suggestions ou des discussions cependant.

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