Optimisation du Lexer de Purple Garden : Un gain de vitesse de 0 à 580 MB/s

2025-07-14

Cet article de blog détaille le processus d’optimisation du lexer du langage Purple Garden par l’auteur, qui a atteint la vitesse impressionnante de 580 MB/s. Les techniques utilisées incluent les gotos calculés, les chaînes de caractères sans copie ni allocation, une interface d’allocateur, l’internement des jetons et le hachage précalculé des mots clés, améliorant ainsi considérablement les performances du lexer. D’autres optimisations ont porté sur des améliorations architecturales et l’utilisation de mmap pour une lecture de fichiers plus rapide. Ces optimisations ont entraîné une augmentation spectaculaire de la vitesse, faisant passer le temps de traitement de dizaines de millisecondes à quelques millisecondes seulement, un véritable bond en avant en termes de vitesse.

Lire plus
Développement

Un analyseur JSON robuste et efficace en C pur

2025-03-01

Cet article détaille un analyseur JSON implémenté entièrement en C. Utilisant une approche orientée objet avec des fonctions attachées aux structures, il offre une meilleure lisibilité et maintenabilité. Priorisant la sécurité, il évite les fuites de mémoire et les erreurs de segmentation courantes. Une API propre et ergonomique est fournie, ainsi que des instructions de compilation, des exemples d'utilisation et des meilleures pratiques pour le développement C, y compris les flags du compilateur pour un code robuste. L'auteur montre l'utilisation de macros variadques pour la génération de JSON en ligne et des techniques efficaces de gestion de la mémoire.

Lire plus
Développement Analyse JSON

Surligner Bash dans Lua avec Neovim et Treesitter

2025-01-28

L'auteur a créé un outil pour synchroniser les paquets sur plusieurs machines, utilisant un fichier de configuration Lua. Pour améliorer la lisibilité et l'édition des scripts Bash intégrés dans la configuration Lua, il a utilisé Neovim et le plugin Treesitter. Treesitter, grâce à sa fonctionnalité d'injection, identifie le champ `script` dans les tables Lua et met en évidence son contenu comme du Bash basé sur une requête personnalisée. Cela améliore significativement la lisibilité et la maintenance du code. Le post détaille la configuration de Neovim et Treesitter, ainsi que la requête personnalisée pour obtenir la surbrillance Bash.

Lire plus
Développement

Intégration de Lua dans Rust pour une analyse statique SQL configurable dans sqleibniz

2024-12-19

sqleibniz, un outil d'analyse statique SQL pour le dialecte SQLite, a été amélioré avec des scripts Lua pour une meilleure configurabilité et extensibilité. L'auteur détail l'intégration en utilisant la librairie mlua dans Rust, couvrant la conversion des structures de données, les appels de fonctions Lua et la gestion des erreurs. Les scripts Lua permettent aux utilisateurs de définir des règles et des hooks personnalisés, permettant une analyse statique flexible, comme des diagnostics personnalisés et des vérifications de style. Cela améliore considérablement l'extensibilité et l'expérience utilisateur de sqleibniz.

Lire plus
Développement Analyse statique