Load gentran in wcMaxima



On 3/13/13 3:44 PM, Michel Talon wrote:
> Rasmus Debitsch wrote:
>> Hello,
>>
>> For the generation of C code for the derivaties of a function I want to use
>> gentran. But when calling load(gentran) an error shows up:
>>
>> load(gentran);
>> loadfile: failed to load
>> C:/PROGRA~2/MAXIMA~1.0-2/share/maxima/5.28.0-2/share/contrib/gentran/gentran
> .lisp
>> -- an error. To debug this try: debugmode(true);
>>
>>
>> I found some messages about loading gentran, but it seems that older
>> versions of Maxima were used. Just to be sure: Should gentran work with
>> Maxima 5.28.0-2 on Windows?
>>
>> Thanks,
>> Rasmus
> 
> I have just tried on my mac which has an old version of maxima. One can load
> gentran but only from the inside of the gentran directory. This is a bug which
> is supposed to have been corrected by Raymond Toy. As far as i am aware
> gentran will generate correct fortran (i have tried something in the test
> directory, it worked) but will not generate C code (needs some care).
> 
> 

On my Macs under Maxima-5.29.1 gentran can be loaded from any working
directory.  Unfortunately, I'm seeing an error (SBCL-1.1.5 or SBCL-1.0.58):

; file: /sw/share/maxima/5.29.1/share/contrib/gentran/vaxlsp.lisp
; in: DEFUN FRANZFORIN
;     (DESTRUCTURING-BIND
;         (MAXIMA::DOVAR (MAXIMA::X . DOLIST) MAXIMA::X MAXIMA::X MAXIMA::X
;          MAXIMA::DOEXITCOND MAXIMA::DOBODY)
;         (CDR MAXIMA::STMT)
;       (SETQ MAXIMA::TVNAME MAXIMA::TEMPVARNAME*)
;       (SETQ MAXIMA::TEMPVARNAME* 'MAXIMA::I)
;       (SETQ MAXIMA::GVAR (MAXIMA::$TEMPVAR NIL))
;       (SETQ MAXIMA::TEMPVARNAME* MAXIMA::TVNAME)
;       (SETQ MAXIMA::DOVAR (MAXIMA::FRANZEXP MAXIMA::DOVAR 0
MAXIMA::DOVAR))
;       (DO ((MAXIMA::I 1 (1+ MAXIMA::I)))
;           ((> MAXIMA::I (LENGTH DOLIST)))
;         (SETQ MAXIMA::CONDBODY (APPEND MAXIMA::CONDBODY `#)))
;       (COND (MAXIMA::DOEXITCOND `(DO (#) (#) (PROGN # # ,#)))
;             (T `(DO (#) (#) (PROGN # ,#)))))
;
; caught ERROR:
;   during macroexpansion of (DESTRUCTURING-BIND (DOVAR # X ...) (CDR
STMT) ...).
;   Use *BREAK-ON-SIGNALS* to intercept.
;
;    variable X occurs more than once


-- 
Alexander Hansen, Ph.D.
Fink User Liaison
My package updates: http://finkakh.wordpress.com/