[Openmcl-devel] Unprintable CCL::IMMEDIATE : #xEB
Daniel Lyons
fusion at storytotell.org
Tue Dec 2 09:45:23 PST 2008
Hi Gary,
On Nov 30, 2008, at 11:10 PM, Gary Byers wrote:
> It's hard to respond to something like this without knowing what
> version
> of the lisp you're running. Unless you're really sure that that
> information
> is irrelevant, it's generally a good idea to include it when
> reporting a
> problem like this.
>
> My best guess is that you're running some 32-bit X86 version on
> Darwin.
> On that platform, #xeb is just a placeholder value used to reserve
> space for an outgoing stack frame in some cases; nothing's supposed
> to ever "see" that marker value. Having one of these things get
> passed around is indicative of a fairly serious bug (the compiler's
> lost track of what's on the stack, or the runtime is pushing or
> popping more than it's supposed to, or something like that.)
>
> It's been a while since I've seen that sort of bug in the x86-32
> trunk lisps, but that doesn't mean that such a bug isn't still
> there. If it is still present in the trunk, then knowing how to
> reproduce it would be helpful.
Unfortunately, I'm running the same platform (OS X 10.5, 32-bit Intel)
and I saw the same error when I was making other, much stupider
mistakes today. Namely with these:
(concatenate 'string '("a" "b" "cde"))
(coerce '("a" "b" "cd") 'string)
Under SBCL, I get the following type error:
* (concatenate 'string '("a" "b" "cde"))
debugger invoked on a TYPE-ERROR in thread #<THREAD "initial thread"
RUNNING {1192B6B9}>:
The value "a" is not of type CHARACTER.
Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
0: [ABORT] Exit debugger, returning to top level.
(SB-IMPL::OPTIMIZED-DATA-VECTOR-SET
#<unavailable argument>
#<unavailable argument>
#<unavailable argument>)
0]
But under CCL (trunk) I get this:
? (concatenate 'string '("a" "b" "cde"))
> Error: value #<Unprintable CCL::IMMEDIATE : #xEB> is not of the
expected type CCL::UVECTOR.
> While executing: CCL::%PR-INTEGER, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 >
And again under SBCL with the second call:
* (coerce '("a" "b" "cd") 'string)
debugger invoked on a TYPE-ERROR in thread #<THREAD "initial thread"
RUNNING {1192B6B9}>:
The value "a" is not of type CHARACTER.
Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
0: [ABORT] Exit debugger, returning to top level.
(SB-IMPL::OPTIMIZED-DATA-VECTOR-SET
#<unavailable argument>
#<unavailable argument>
#<unavailable argument>)
0]
And then again with CCL:
? (coerce '("a" "b" "cd") 'string)
> Error: value #<Unprintable CCL::IMMEDIATE : #xEB> is not of the
expected type CCL::UVECTOR.
> While executing: CCL::%PR-INTEGER, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1>
Hope this helps. Thanks!
—
Daniel Lyons
http://www.storytotell.org -- Tell It!
More information about the Openmcl-devel
mailing list