Currently gentran is broken for c and ratfor. Consider this
(%i3) load("gentran")$
(%i4) kill(labels);
(%o0) done
(%i1) load("gentran")$
(%i2) gentranlang(ratfor)$
(%i3) gentran(for i:1 thru 10 do s: s + i)$
Maxima encountered a Lisp error:
EVAL: undefined function RATCODE
Automatically continuing.
To enable the Lisp debugger set *debugger-hook* to nil.
(%i4) gentranlang(c)$
(%i5) gentran(for i:1 thru 10 do s: s + i)$
Maxima encountered a Lisp error:
EVAL: undefined function CCODE
Automatically continuing.
To enable the Lisp debugger set *debugger-hook* to nil.
If I try harder I hit another bug:
(%i1) load("gentran")$
(%i2) load("lspc.lisp")$
(%i3) gentranlang(c)$
(%i4) gentran(for i:1 thru 10 do s: s + i)$
Maxima encountered a Lisp error:
GET: 1 is not a symbol
Automatically continuing.
To enable the Lisp debugger set *debugger-hook* to nil.
The patch (1) loads lspc.lisp and lsprat.lisp, (2) makes a fix similar to this one
http://sourceforge.net/p/maxima/code/ci/master/tree/share/contrib/gentran/lspfor.lisp#l185
applied befor in 42ed80 for fortran.
With this patch the basic functionality of gentran is restored for c and
ratfor:
(%i1) load("gentran")$
(%i2) gentranlang(ratfor)$
(%i3) gentran(for i:1 thru 10 do s: s + i)$
DO I=1.0,10.0
S=S+I
(%i4) gentranlang(c)$
(%i5) gentran(for i:1 thru 10 do s: s + i)$
FOR (I=1;!(I>10);I=I+1)
S=S+I;
Looks good, thanks for your efforts. Sorry for the long delay, I will try to apply this patch soon.
I see this patch was already applied as commit 05a2882. Closing this item accordingly. Thanks for your work on this.