gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fwd: Re: [Gcl-devel] Recent ansi fixes]


From: Paul F. Dietz
Subject: [Fwd: Re: [Gcl-devel] Recent ansi fixes]
Date: Thu, 23 Oct 2003 22:29:55 -0500
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624

(forgot to cc this)
--- Begin Message --- Subject: Re: [Gcl-devel] Recent ansi fixes Date: Thu, 23 Oct 2003 22:29:29 -0500 User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624
Camm Maguire wrote:

Right, strings are not (vector t), so the 'the can trigger an error
legitimately, right?  This is causing the struct-test-41/3 and
struct-test-43/3 failures.  CMUCL appears to get around this by having
'the never trigger an error, which is also permissible, but seemingly
less desirable, at least IMHO.

No, in this case you should not be signalling an error.  The -P function
in the case of struct-test-41 should return true if the object is
a (vector t) whose first element is eq to name of the structure type,
and false otherwise.


gcl apparently has to print things when compiling, which means it
inappropriately rejects unprintable objects in literal constants.

What you need to do, I think, is print some object that is a pointer
back to the address of the unprintable object in the lisp's memory.
When the reader reads this, it should be converted back to a reference
to that object.  LOAD-TIME-VALUE might be useful here?


Does this mean I can make up my own pseudo syntax, maybe using
#something-not-in-use, and instruct the reader to parse this
appropriately? Which compile bugs are you referring to below?

This pseudosyntax would just be for the internal printing needed
to implement COMPILE.  It needn't be externally visible.

The compiler bugs are in ansi-tests/compile.lsp, in the tests
that check if COMPILE coalesces literal constants (note that it
can't, unlike the file compiler; see section 3.2.4, paragraph 1.)

        Paul


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]