[Ecls-list] Critical change
Juan Jose Garcia Ripoll
lisp at arrakis.es
Tue May 23 02:09:06 UTC 2006
Hi,
I have submitted a compiler fix that, though tested, might have some
problems.
The fix was born to solve problems with inlined function calls with
large number of arguments, such as the test shown below. In the mean
time it has become a drastic change in the compiler which contains
special forms for manipulating the lisp stack. These forms are now used
to handle multiple-value-call, multiple-value-prog1 and unwind-protect,
as well.
If you experience that ECL becomes very unstable or produces strange
results, you can revert to the state before changes with
cvs update -C -P -d -r ECL_PRE_COMPILER_FIX
But if this is the case, I would appreciate a detailed bug report about
what caused your problems.
Regards,
Juanjo
........
Before, following would crash ECL
(let ((form '(lambda ()
(list (list
'a0 'b0 'c0 'd0 'e0 'f0 'g0 'h0 'i0
'j0 'k0 'l0 'm0 'n0 'o0 'p0 'q0
'r0 's0 't0 'u0 'v0 'w0 'x0 'y0 'z0
'a1 'b1 'c1 'd1 'e1 'f1 'g1 'h1 'i1
'j1 'k1 'l1 'm1 'n1 'o1 'p1 'q1
'r1 's1 't1 'u1 'v1 'w1 'x1 'y1 'z1
'a2 'b2 'c2 'd2 'e2 'f2 'g2 'h2 'i2
'j2 'k2 'l2 'm2 'n2 'o2 'p2 'q2
'r2 's2 't2 'u2 'v2 'w2 'x2 'y2 'z2
'a3 'b3 'c3 'd3 'e3 'f3 'g3 'h3 'i3
'j3 'k3 'l3 'm3 'n3 'o3 'p3 'q3
'r3 's3 't3 'u3 'v3 'w3 'x3 'y3 'z3
'a4 'b4 'c4 'd4 'e4 'f4 'g4 'h4 'i4
'j4 'k4 'l4 'm4 'n4 'o4 'p4 'q4
'r4 's4 't4 'u4 'v4 'w4 'x4 'y4 'z4
'a5 'b5 'c5 'd5 'e5 'f5 'g5 'h5 'i5
'j5 'k5 'l5 'm5 'n5 'o5 'p5 'q5
'r5 's5 't5 'u5 'v5 'w5 'x5 'y5 'z5
'a6 'b6 'c6 'd6 'e6 'f6 'g6 'h6 'i6
'j6 'k6 'l6 'm6 'n6 'o6 'p6 'q6
'r6 's6 't6 'u6 'v6 'w6 'x6 'y6 'z6)))))
(equal (funcall (compile 'nil form))
(funcall (coerce form 'function))))
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20060523/56009d9b/attachment.sig>
More information about the ecl-devel
mailing list