|
From: Robert D. <rob...@gm...> - 2018-06-05 04:35:15
|
On 2018-06-04, Stavros Macrakis <mac...@al...> wrote: > Maxima 5.41.0a_dirty http://maxima.sourceforge.net > using Lisp SBCL 1.3.18 > (%i1) load(drawdf); > (%o1) > E:/maxima-5.41.0a/bin/../share/maxima/5.41.0a_dirty/share/diffequations/\ > drawdf.mac > (%i2) drawdf([y,-9*sin(x)-y/5], [x,-10,10], [y,-10,10], tstep=0.05, > soln_arrows=true, point_size=0.5, > points_at([0,0], [2*%pi,0], [-2*%pi,0]), > field_degree='solns, > saddles_at([%pi,0], [-%pi,0])); > > ÿ% > fatal error encountered in SBCL pid 2684(tid 0000000001356500): > %PRIMITIVE HALT called; the party is over. Some investigation shows the trouble is caused by calls to 'translate'. In the example as shown above, there are 1336 calls to translate (as determined by 'timer' and 'timer_info'). drawdf constructs a large number of short functions (maybe one for each point in the plot? I didn't look carefully) and calls the Maxima->Lisp translator, presumably in hope of greater speed of evaluation. 1336 doesn't seem like very much. SBCL doesn't have an interpreter; all code is compiled. Maybe the SBCL compiler takes a lot of memory? Maybe the problem is not SBCL-specific -- I haven't been able to get another Lisp to run the example (takes too long). I hope someone else can try it. best Robert Dodier |