9 points par skuldnorniern 2025-10-13 | 2 commentaires | Partager sur WhatsApp

Article de blog Releasing Lamina

Lamina est un projet de backend de compilateur qui prend en entrée du code en Intermediate Representation (IR code) et génère du code machine / des binaires.
Il a été lancé sur la base de mes études et projets autour des langages et des compilateurs menés ces 4 à 5 dernières années, et j’espère qu’il pourra servir de référence simple et intuitive pour les personnes intéressées par les compilateurs.

Plateformes actuellement prises en charge

  • macOS (aarch64)
  • Linux (x86_64)
  • WebAssembly (wasm32/64)

Plateformes prévues

  • Windows (x86_64)
  • macOS (Intel)
  • Linux (aarch64)
  • Risc-V

Dans le cas de Windows aarch64, l’auteur ne dispose pas du matériel nécessaire ; la priorité est donc faible et la prise en charge est écartée pour le moment.

État actuel

À l’heure actuelle, il n’y a pas de passe d’optimisation du compilateur, et les performances sont donc légèrement inférieures à celles de C#.
Lors de la prochaine mise à jour, une couche Machine IR devrait être implémentée, avec l’introduction de passes d’optimisation.

De plus, avant la release 0.1, la majeure partie du contenu généré avec l’IA dans les sections Testcode et codegen sera supprimée puis réécrite.

Exemple de frontend de compilateur

Repo Brainfuck-Lamina - compilateur Brainfuck simple

Fonctionnalités prévues pour la suite du développement

  • prise en charge de la génération de code GPU (pour l’utiliser ensuite comme backend d’une bibliothèque ML implémentée en interne)
  • prise en charge de la compilation JIT
  • fourniture d’une suite d’outils, dont un débogueur
  • fourniture d’un assembleur et d’un linker implémentés en interne (tout en conservant la prise en charge des utilitaires existants)

2 commentaires

 
cgl00 2025-10-13

C'est impressionnant. 😳

 
skuldnorniern 2025-10-14

C’est encore un projet très perfectible,
merci beaucoup de l’avoir regardé avec bienveillance !
J’espère pouvoir continuer à l’améliorer pour qu’il devienne une bonne ressource pour celles et ceux qui étudient les compilateurs.