Interprètes d'appel de queue : quatre ans de progrès

2025-02-20

Il y a quatre ans, un article sur la rédaction d'interprètes ultrarapides utilisant les appels de queue et l'attribut `musttail` a suscité un intérêt considérable. Aujourd'hui, cette technique est adoptée dans Python 3.14, LuaJIT Remake et d'autres, offrant des gains de performances significatifs. L'article explore la prise en charge de `musttail` par GCC et Clang, l'impact potentiel de la proposition « return goto » de la norme C sur les interprètes d'appel de queue et détaille les rôles des attributs `preserve_none` et `preserve_most` dans l'optimisation des interprètes d'appel de queue. Il se conclut par un résumé des progrès passionnants dans le développement de compilateurs et d'interprètes de langages de programmation.

Lire plus
Développement appel de queue interpréteur

Rust Sans Panique : Rust Peut-il Remplacer C pour la Programmation Système Bas Niveau ?

2025-02-03

Cet article explore la faisabilité d'utiliser Rust pour remplacer C dans la programmation système bas niveau, en se concentrant spécifiquement sur une bibliothèque Protocol Buffers appelée upb. L'auteur doutait initialement de la capacité de Rust à égaler C en termes de performance et de taille de code, mais il a découvert une technique appelée "Rust Sans Panique". Cela implique d'éviter l'utilisation de `panic!()`. L'article approfondit les principes, les avantages et les défis de Rust Sans Panique, notamment la taille du code, les sorties irrécupérables et la surcharge d'exécution. Il montre comment écrire du code Rust Sans Panique en utilisant des techniques telles que l'utilisation de la bibliothèque libc, des options d'optimisation et `std::hint::assert_unchecked`, en soulignant la conservation des vérifications de dépassement de capacité en mode débogage pour des vérifications de cohérence supplémentaires. Bien que cette technique exige un travail méticuleux et puisse nécessiter d'éviter la majeure partie de la bibliothèque standard, elle promet d'offrir les performances et la taille de code d'une bibliothèque C tout en conservant les garanties de sécurité de Rust.

Lire plus
Développement Programmation Système