lunedì 4 gennaio 2010

Installare una versione funzionante di Maxima in Ubuntu

Nota: il problema è ormai risolto dalla versione 10.04 di Ubuntu (Lucid Lynx) in poi. Comunque il repository di Launchpad segnalato permette di avere, in genere entro pochi giorni, l'ultima versione di Maxima e wxMaxima.


Nelle ultime versioni di Ubuntu è disponibile nei repository ufficiali una versione non funzionante del programma di calcolo simbolico e numerico Maxima. Infatti, provando a usare Maxima vi potrebbe capitare ben presto di leggere questi messaggi di errore:
(%i1) atan(x);
Universal error handler called recursively (:ERROR NIL
CONDITIONS::CLCS-UNIVERSAL-ERROR-HANDLER
""
"Couldn't protect")
Universal error handler called recursively (:ERROR NIL
CONDITIONS::CLCS-UNIVERSAL-ERROR-HANDLER
"" "Couldn't protect")
Maxima encountered a Lisp error:

Error in CONDITIONS::CLCS-UNIVERSAL-ERROR-HANDLER [or a callee]: Caught fatal error [memory may be damaged]

Automatically continuing.
To reenable the Lisp debugger set *debugger-hook* to nil.
(%i2) atan(x);
Segmentation fault

Il problema, segnalato su Launchpad nel bug 303587, può essere risolto aggiungendo il repository di blahota. Per fare ciò è sufficiente dare nel terminale il comando
sudo add-apt-repository ppa:blahota/wxmaxima
e il repository sarà anche automaticamente autenticato senza bisogno di ulteriori interazioni.

Questo non è un bug di Maxima ma solo del pacchetto precompilato presente nei repository di Ubuntu, quindi non segnalatelo sul sito di Maxima. Potreste anche provare a compilare da voi Maxima. Se avete un account su Launchpad, non aprite altre segnalazioni ma piuttosto commentate (se ne avete bisogno) il bug segnalato prima e aggiungetevi nell'elenco delle persone affette dal problema.

Nelle ultime versioni di wxMaxima viene usato `wxt' come terminale predefinito per gnuplot, che però va in crash. Un workaround per risolvere il problema può essere trovato qui.

Aggiornamento del 15/02/2010: il bug 303587 sembra che sia stato risolto (riguarda il pacchetto gcl), vedremo se in Lucid sarà presente una versione di Maxima funzionante.