Catnip Catnip

version 0.0.6

Né comme langage de script embarquable pour Python.

Catnip vise un équilibre entre simplicité d'usage, expressivité et performances. Minimal en surface, solide sous le capot.

Catnip REPL v0.0.6
Type /help for help, /exit to quit
0.1 + 0.2
0.30000000000000004
# tout est conforme

Officieusement : un rite désespéré pour calmer les entités multidimensionnelles qui vivent dans les coins du code.

Si tu sens ta conscience boucler sans condition d'arrêt, c'est une feature.

Respire. Reprends ton café froid. Ce n'est pas encore classé "incident".

Turfu

Prerelease MAIS les spécifications sont figées.

  • guide de performances prod-like

Repos

Bonus

Le langage est prouvé avec Coq. Voir : COQ_PROOFS

Transparence maximale : Tree-sitter n'est pas formellement prouvé ici, et Cranelift non plus.

On a donc des preuves solides, et un petit pacte avec le dieu des parseurs.

Par conséquent l'usage de Catnip est déconseillé dans les contextes safety-critical, alors si on ne scripte pas un Airbus, un missile, ou une centrale nucléaire, c'est OK.


Origine

  • INTRODUCTION - Ambition, sources d'inspiration et philosophie de Catnip
  • CHANGELOG - Changements par rapport à la prerelease précédente

Primitives

Démarrage express. tuto/

Interface

Guide utilisateur user/

Embedding (Catnip comme DSL) :

Standalone et REPL :

Apprendre et utiliser Catnip.

  • CLI - Options ligne de commande (scripts et REPL)
  • REPL - Mode interactif pour exploration
  • MODULE_LOADING - Charger des modules Python

Structure

Spécification lang/

Référence complète de la syntaxe et des concepts du langage.

  • SYNTAX - Syntaxe de base, séparateurs, conventions et annexes
  • TYPES - Types de données : nombres, chaînes, f-strings, booléens, collections
  • EXPRESSIONS - Expressions multilignes, opérateurs, attributs, indexation et slicing
  • CONTROL_FLOW - Structures de contrôle (if, while, for, break, continue)
  • FUNCTIONS - Fonctions, lambdas, décorateurs, appels terminaux et fonctions intégrées
  • STRUCTURES - Structures, méthodes, traits, héritage et abstractions
  • PATTERN_MATCHING - Référence complète du filtrage par motifs (pattern matching)
  • BROADCAST - Notation vectorielle sur collections
  • SCOPES_AND_VARIABLES - Portée des variables et closures
  • PRAGMAS - Pragmas (TCO, JIT, ND-recursion, modules)
  • TURING_COMPLETENESS - Socle formel et complétude de Turing
  • COQ_PROOFS - Référentiel des preuves Coq
  • GLOSSARY - Termes techniques

Matière

Exemples examples/

Écosystème

Exemples thématiques utilisant les libs Python. codex/

Cœur

Doc développeur dev/

Architecture interne et contribution au projet.

  • ARCHITECTURE - Pipeline, parsing, analyse sémantique
  • VM - Machine virtuelle Rust et NaN-boxing
  • OPTIMIZATIONS - Passes d'optimisation, TCO, JIT
  • EXTENDING - Ajouter opcodes et opérations

Outillage

Outils tools/

Outils de développement et utilitaires pour Catnip.