Collection d'outils et bibliothèques AutoLISP pour:
- exécuter du code AutoLISP depuis le shell;
- écrire et charger des macros;
- lancer des tests;
- expérimenter des structures de données;
- consulter une base de documentation locale.
Cette semaine, le dépôt a évolué sur quatre axes principaux:
- ajout du sous-projet
autolisp-doc, avec base documentaire générée, APIdocumentation/describe/apropos, tests et manuel; - refactorisation des
loader.lspautour decl-loader.lspet d'une variable globale*verbose*; - amélioration importante de
autolisp-script, en particulier pour BricsCAD sur macOS et pour le mode interactif avec fake CAD; - mise à jour des
Makefileracine et sous-projets pour mieux séparer tests, benchmarks et génération de documentation.
Le dépôt utilise deux familles de repères:
release-1.0etversion-1désignent la branche qui suit la dernière version 1.0 disponible;vM.n.pdésigne un tag figé, associé à une version précise et non modifié après coup.
Il peut donc exister, en parallèle, une branche version-1 ou release-1.0 qui avance avec la série 1.0, et des tags immuables v1.0.x qui marquent les versions publiées.
Pour éviter toute ambiguïté avec les branches, les anciens tags de suivi ont été renommés tag-version-1 et tag-release-1.0.
| Repère | Nature | Rôle |
|---|---|---|
version-1 |
branche | suit l'état courant de la série 1 |
release-1.0 |
branche | suit l'état courant de la branche de maintenance 1.0 |
tag-version-1 |
tag figé | tag de suivi associé à la branche version-1 |
tag-release-1.0 |
tag figé | tag de suivi associé à la branche release-1.0 |
v1.0.0 |
tag figé | premier jalon stable identifié pour la série 1.0 |
v1.0.10 |
tag figé | état actuel de référence de la série 1.0 dans ce dépôt |
Le tableau ci-dessous résume les changements marquants entre les tags actuellement présents. Il s'agit d'un panorama des évolutions majeures de la série 1.0, pas d'un changelog exhaustif ligne par ligne.
| De | Vers | Changement marquant |
|---|---|---|
v1.0.0 |
v1.0.10 |
Le dépôt est passé d'une base initiale à un autolisp-script bien plus complet: ajout de autolisp-misc/src/cat.lsp (alors misc/src/cat.lsp), support de --epure, unification des modes macOS, amélioration des chemins de chargement BricsCAD, ajout du reporting de version, correction du chargement AutoLISP, capture fiable de princ, puis gestion correcte de (princ) sans argument et stabilisation des sorties interactives. |
Les fichiers loader.lsp jouent le rôle d'un chargeur déclaratif minimal.
Le helper commun cl-loader.lsp fournit:
*verbose*pour activer les traces de chargement;clloadpour charger un fichier avec options;clload-filespour charger une liste de fichiers dans l'ordre;cl-path-joinpour construire les chemins de travail.
Exemple depuis la racine du dépôt:
(setq *outils-autolisp-path* "/chemin/vers/outils-autolisp")
(setq *verbose* T)
(load (strcat *outils-autolisp-path* "/loader.lsp"))Wrapper CLI pour exécuter du code AutoLISP dans BricsCAD ou AutoCAD, capturer stdout / stderr, gérer un code de retour shell et proposer un mode interactif.
Points notables:
- support explicite de BricsCAD macOS en mode
automationoubatch; - REPL interactif avec handshake fichier en mode batch;
- niveaux de verbosité
--quiet, normal et--verbose, avec annonce du moteur BricsCAD et de sa version au démarrage interactif; - backend
fake-cadpour tests automatisés sans moteur réel.
Documentation:
- manuel: autolisp-script/docs/autolisp-script.md
- spécifications: autolisp-script/docs/autolisp-script--specifications.org
Petit framework de tests AutoLISP avec suites, assertions et exécution agrégée via run-suite et run-all.
Documentation: autolisp-test/docs/autolisp-test.md
Runtime de macros pour AutoLISP: defmacro, expansion de macros, mload et support de quasiquote.
Le loader.lsp du sous-projet s'appuie maintenant sur clload et peut être piloté via *autolisp-macro-path*.
Documentation: autolisp-macro/docs/autolisp-macro.md
Couche de documentation interactive pour AutoLISP, alimentée par une base locale extraite de la documentation Autodesk.
Le sous-projet fournit notamment:
documentation;describe;apropos;apropos-list;help.
Documentation: autolisp-doc/docs/autolisp-doc--manual.org
Implémentation d'un vecteur AutoLISP indexé par arbre, utilisé comme brique de base pour d'autres structures.
Documentation: autolisp-vector/docs/autolisp-vector--manual.org
Implémentation d'une table de hashage AutoLISP construite au-dessus de autolisp-vector, avec tests et benchmarks.
Documentation: autolisp-hash-table/docs/autolisp-hash-table--manual.org
Projet de formateur / pretty-printer AutoLISP. Le dépôt contient surtout les spécifications et le plan de travail.
Documentation: autolisp-formatter/docs/autolisp-formatter--specifications.org
Prototype autour d'une implémentation defstruct pour AutoLISP.
Fichier principal: autolisp-defstruct/defstruct.lsp
Scripts utilitaires orientés documentation PDF sous Windows.
Documentation: scripts/docs/scripts.md
Depuis la racine:
make test-ci
make test-bricscad
make bench-bricscad
make docs-pdfSous macOS, make test-bricscad sépare explicitement les runs BricsCAD:
make test-bricscad-macos-batchmake test-bricscad-macos-automation-attach
La cible agrégée lance d'abord batch, puis automation attach. Le second mode suppose qu'une session BricsCAD soit déjà ouverte; pour autolisp-script, le runner interactif s'arrête et demande d'ouvrir BricsCAD avant de continuer.
En mode BricsCAD macOS batch, les source.lsp sont maintenant autorisés par défaut. Le wrapper essaie aussi de transformer une erreur fatale de bootstrap ou de load en échec propre avec journalisation et sortie explicite de BricsCAD, pour éviter une session bloquée en BOOTING.
État des cibles principales:
make test-cilance actuellementautolisp-script,autolisp-vectoretautolisp-hash-table;autolisp-doc/Makefileexpose ses propres tests viamake -C autolisp-doc test;autolisp-scriptpropose aussi un backend de vérification sans CAD réel:
make -C autolisp-script test-fakecadVérification effectuée localement sur les modifications récentes:
- comparaison avec
fabrik/develop; - revue des fichiers modifiés et ajoutés;
- validation de
autolisp-scriptviamake -C autolisp-script test-fakecad.
Cette vérification couvre les chemins de chargement loader.lsp et les scénarios fake CAD BricsCAD / AutoCAD. Elle ne remplace pas une exécution complète sur moteurs réels.
Pascal Bourguignon ext.pascal.bourguignon@reseau.sncf.fr
aka Pascal Bourguignon informatimago@gmail.com
Avec l'aide de ChatGPT/Codex.