Vi riporto alcune ulteriori informazioni sulla questione LuaTeX / librerie scritte da Luigi che ha acconsentito che le pubblicassi sul forum:
Come potete leggere, la questione tecnica non è così rosa e fiori…
> Incredibile.
…che funzioni ?
Beh ….si.
Il nocciolo è questo: sotto linux si usa dlopen
e le shared object libraries (*.so) hanno un complesso meccanismo per
la risoluzione dei simboli (le funzioni, le costanti etc che la libreria esporta).
Cfr man ld.so
Ora, la gestione dei conflitti dei simboli è … non gestita.
Se due simboli vanno in conflitto allora seg.fault e buona notte al secchio.
Ad esempio: metti che luatex carichi luasql il quale a sua volta chiami save_png pensando che sia di libpng1
A sua volta luatex ha al suo interno libpng, ma è libpng1.1 in cui esiste sempre save_png
ma evolve in modo doverso da libpng1.
ld.so allora dice a luasql di usare save_png di libpng1.1 e voilà, al
99% dei casi corruzione della pagina di memoria del processo luatex (segmentation fault) e aborto. Se avevi una transazione in corso nel db, saluti e baci (beh no, postgres è robusto: ma se usi sqlite c’è il rischio di corrompere il database).
Per complicare le cose, *non* è detto il lua usato come riferimento (gli header) da luasql
sia lo stesso lua di luatex (fino ad oggi si, lo è) per cui in teoria se le cose con la 0.65 funzionano magari con la 0.70 no, e con la 0.71 si ancora, e così via.
Insomma per certe cose è meglio valutare se ricorrere ad un processo
esterno tramite \write18 (che funziona sempre).
Ora sotto Windows le cose cambiano e sotto Mac cambiano ancora.
Quindi vedi bene il guazzabuglio.
> Spero che alla fine LuaTeX sia abbastanza stabile sulle maggiori
> distribuzioni, proprio perché eseguire query dirette da database apre
> le porte ad applicazioni molto potenti ed utili.
purtroppo no. alla fine è una questione di sistema operativo: prima o
poi le librerie devono essere aggiornate.
È tutto,
evidentemente non è così semplice far impallidire la stampa unione di Word…