_
~ DAMOLAB - XBNF Neurotranslator ~
Il vaut mieux pomper d'arrache pied même s'il ne se passe rien que de risquer qu'il se passe quelque chose de pire en ne pompant pas [Jacques Rouxel / Shadoks]
XBNF #TAGS _./._ damolab _./._

XBNF neurotranslator v1.09


| FR | par DAMO | | 10/11/2024 16h00 | (last update 03/08/2025 09h44) | Commentaires |
#XBNF #LINUX
Nouvelle mouture de XBNF Neurotranslator : le compilateur de compilateur ultime
|


1) XBNF Neurotranslator - v1.09 - Quoi de neuf ?


  • améliorations drastiques de l'utilisation mémoire avec valgrind
    • re-écriture des héritage Flux, chaînes de caractère, ...
    • optimisation mémoire des règles avec Choice::_pos (détection des boucles)
    • fonction (VACUUM) pour purger le flux d'entré en cours d'analyse
    • séparation des fonctions de chaines de caractère : (STRING*) pour les grammaires et (STRING) plus générique
    • simplification des allocations en utilisant les std::string au lieu du type String
  • meilleur support des chaînes binaires quelquonques : \0,\xFF, ...
  • gestion des catégories : ajout d'une liste _cats_bind dans la classe Grammar
    • call_SCOPE::_scope est maintenant une grammaire
    • meilleur gestion des fonctions de parcours et initilisation (cross_*)
  • amélioration du debugger : affichage, visibilité des catégories, bug, ...
  • gestion des positions (PositionedElement) : au moment de la création new_* et non au moment des cross_init
  • les sucres syntaxiques s'écrivent maintenant :
     {! <rule>}, {? <rule>}, {| <éléments>}, {. <rule>} 
  • amélioration des tests, correction de bug, performances, ...


Pour plus de détail, voir :

1.1) Fonction VACUUM


Cette fonction permet de libérer la mémoire d'un flux d'entré dont on ne souhaite manipuler les données.

Lors de l'analyse d'un flux volumineux en entrée, un log par exemple, il n'est pas nécessaire de
revenir en arrière une fois la ligne analysée.

Le test de cette fonction (make test-dev) génère un flux d'entré avec une liste des processus (test.call_VACUUM.rb),
la grammaire test.call_VACUUM.xbnf effectue un filtrage de ces données.

XBNF est lancé avec l'option -f qui permet de produire une sortie au fil de l'eau.

samples/test.call_VACUUM.rb | xbnf -f -i - -o - samples/test.call_VACUUM.xbnf


Le script Ruby liste les process avec cette commande :
ps -eo pid,rss,size,resident,share,pmem,command


Exemple :
1738466  3568   988     - -  0.0 watch xbnf -f ...



La grammaire utilise le règle "direct" permettant de générer un résultat sans attendre la fin de l'analyse.


test-vacuum :
	(PARAM* o_loop_detection ())
	{* search vacuum *}

vacuum: (VACUUM)

search: stop (STOP)
search: {* {! "\n"} {! pattern-skip} . *} pattern-skip go-until-next-rc
search: xbnf
search: {* {! "\n"} . *} "\n"

stop: "STOP" => "=XBNF= STOPPED.\n"

xbnf: (SNAP go-until-pattern) 
	pattern 
	go-until-next-rc
		=>
	" =XBNF=" [0] " = /" [1]"/ " [2]

go-until-pattern: {* {! "\n"} {! pattern}  . *}

pattern: "xbnf -f "
pattern-skip: "/bin/sh -c"

go-until-next-rc:  (STRING-TO "\n") "\n"



1.2) Debugger

  • le "[f]oward" fonctionne mieux au début de l'analyse
  • la pile d'éxecution affiche le nombre de répétion (avec -v ou -d)


EX:
== Farest position reached:

	...
	<XBNF>:[1]| x 22
	<definition>:|
	...





1) Ressources XBNF Neurotranslator



Documentation (FR)

1.1) XBNF Sources Sourceforge


Binaires et sources
Librarie XBNF

1.2) Images dockerHub


Executable et librairies
Sources et Toolchain C++ GNU (Linux 64 bits)

1.3) DamoLab


DamoLab@Sourceforge
DamoLab@DockerHub


Nom/surnom:
Message:


revenir sur l'article
#XBNF #LINUX

Aucun commentaire.

dans
une
galaxy
lointaine
Charte du site damolab.zapto.org est motorisé par

"La force est une sorte de fluide crée par tout être vivant, une énergie qui nous entoure et nous pénètre, et qui maintient la galaxie en un tout unique."
- Obi-Wan à Luke Yoda