draw2d eps file bugs with gcl 5.22.1




On Sat, 16 Oct 2010, Edwin Woollett wrote:

< On Oct. 16, 2010, Raymond Toy wrote :
< ------------------------------------------------
< >  I don't think GCL can be configured to use a larger value for
< >   call-arguments-limit.
< -----------------------------------
< 
<  Assuming the problem is GCL, how does that explain that
< the Windows Maxima ver. 5.21.1 has no problem with my
< qdraw example, and Windows Maxima ver. 5.22.2 chokes?
< -------------------------------------------------------
< >  But I also ran this with cmucl, and as best as I can tell the call to
< >  apply in make-scene-2d is never given anything more than 6 elements long
< >   (for the example with qdraw that was posted).
< --------------------------------------------------------------
< 
< The list I am feeding draw2d in my example has 76 elements,
< as shown here:
< -------------------------------------
< 
< qdraw1 returns a list drlist to qdraw, and I inserted the
< debug code
<    _len_drlist% : length(drlist),
<            display (_len_drlist%),
< inside qdraw1.
< 
< The run then looks like
< -----
< Maxima 5.22.1 http://maxima.sourceforge.net
< using Lisp GNU Common Lisp (GCL) GCL 2.6.8 (a.k.a. GCL)
< Distributed under the GNU Public License. See the file COPYING.
< Dedicated to the memory of William Schelter.
< The function bug_report() provides bug reporting information.
<                                  2010-10-16
< 
< 
< (%i1) load(draw)$
< (%i2) load(qdraw)$
<               qdraw(...), qdensity(...), syntax: type qdraw(); 
< (%i3) qdraw(xr(-2.8,2.8),yr(-2,2),
<            line(-1.5,0,1.5,0,lw(10) ),
<             line(-1.5,0,-2,0.866,lw(10)),
<             line(1.5,0,2,0.866,lw(10) ),
<             ellipse(1.5,0,0.5,0.5,0,60 ),
<             ellipse(-1.5,0,0.5,0.5,120,60 ),
<             label(["{/Symbol=36 q}",2.1,0.3],
<              ["{/Symbol=36 q}",-2.2,0.3],
<               ["{/=36 x}",1.5,0.5],["{/=36 x}",-1.6,0.5],
<                 ["{/=36 L - 2 x}",-0.5,-0.3]   ),
<             vector([-0.8,-0.3],[-0.7,0],hl(0.2) ),
<              vector([0.8,-0.3],[0.7,0],hl(0.2) ),
<               line(-1.5,0,-1.5,-0.7,lw(2) ),
<               line(1.5,0,1.5,-0.7,lw(2) ),
<                line(-2.5,0,-1.5,0,lw(2) ),
<                line( 1.5,0,2.5,0,lw(2) ),
<             pic(eps,"c:/work5/test4"), cut(all) )$
< 
< 
<                               _len_drlist% = 76
< 
< Maxima encountered a Lisp error:
< 
< Error in APPLY [or a callee]:  Lisps arglist maximum surpassed
< 
< Automatically continuing.
< To enable the Lisp debugger set *debugger-hook* to nil.
< (%i4) ---------------------------------------------------
< 

Ok, there are two issues here. I can confirm that with cmucl both
examples are processed, but neither produces any output. So the
change that Ray noticed in draw.lisp must be responsible for this.

The fact that your examples are tripping on GCL's small value for
call-arguments-limit is an annoying red-herring.

Leo

< If you know the error is coming from an apply
< in make-scene-2d, and know that at most six
< list elements are involved, then the fact that
< my list  drlist has 76 elements may be irrelevant.
< 
< 
< A  smaller qdraw job, again designed to produce an
< eps file using 5.22.1, with a 44 element list,
< (restarting maxima)  goes through with no
< apply arg complaint, but produces an **empty**
< eps file in c:/work5/test4.eps  with 0 bytes.
< 
< So there may be more than one problem lurking
< in draw2d with ver. 5.22.1.
< 
< Here is my small (44 element)  job run:
< ------------------------------------------
< (%i1) load(draw)$
< (%i2) load(qdraw)$
<               qdraw(...), qdensity(...), syntax: type qdraw(); 
< (%i3) qdraw(xr(0,2.8),yr(0,2),
<             line(0,0,2.8,0,lw(2)),
<             line(0,0,2,2,lc(blue),lw(8) ),
<           ellipse(0,0,1,1,0,45 ),
<           arrowhead(0.707,0.707,135,0.15),
<   label(["{/=36 {/Symbol q   \\254 }  The Incline Angle}",1,0.4]),
<            cut(all),
<           pic(eps,"c:/work5/test4" ) );
<                               _len_drlist% = 44
< 
< (%o3)       [gr2d(points, points, ellipse, points, points, label)]
< ------------------------------------------------------------------
< Result:  file test4.eps with zero bytes.
< 
< 
< 
< Ted Woollett
< 
< 
< 
< 
< 
< 
< _______________________________________________
< Maxima mailing list
< Maxima at math.utexas.edu
< http://www.math.utexas.edu/mailman/listinfo/maxima
< 
< 

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.