Hi,
I have found another bug in the SBCL MOP implementation: It's not
possible to have anonymous classes, although both ANSI CL and AMOP
clearly state otherwise. When I call (make-instance 'standard-class) I
get an error that the type nil cannot be redefined.
Of course, the workaround is trivial, one can just gensym a name. So
this is not critical, at least in my case.
I am currently using 0.8.12 on Mac OS X.
Pascal
P.S.: If it's helpful I can dig up the relevant sections in the
HyperSpec and the MOP spec.
--
Tyler: "How's that working out for you?"
Jack: "Great."
Tyler: "Keep it up, then."

Hi!
On 23 de jul de 2004, at 12:34, Daniel Barlow wrote:
> Try SB-EXT:WITH-TIMEOUT. Using SLEEP here insstead of SOCKET-RECEIVE<
> because I'm too lazy to write a better test case
>
> CL-USER> (time (handler-case
> (sb-ext:with-timeout 5
> (sleep 10))
> (sb-ext:timeout (c) (declare (ignore c)) (format t "timed out~%"))))
> timed out
> Evaluation took:
> 4.995 seconds of real time
> [...]
>
>
> If you're using threads (side note: then you should also be using
> a 2.6 linux kernel) also check out SB-THREAD:INTERRUPT-THREAD, but
> note that it's in general a bad idea for one thread to interrupt
> another unless it's really sure that the other isn't holding locks
> or doing anything similar that could lead to deadlock
Hummm... I don't know it this solves my problem. I'm trying to
simulate a "select" here, because I need to use socket-receive to read
each packet at once. If I use the socket-make-stream feature, all the
UDP packets are joined in the stream, so I will not have a way to know
when one ends and the other starts. Of course, the protocol should be
better to allow that, but it isn't, and I can't change it! :-(
So, I was thinking about doing a thread to handle all comunications,
that would normally be stopped on the socket-receive. But if another
thread needs to send a message, it would place the message in a queue,
and somehow "wake up" the communications thread. The communications
thread would then know that it needs to check the queue and send the
messages, and go back waiting for socket-receive. Any ideas?
Also, you mention Linux 2.6. I need this to run on Linux, but also on
Mac OS X... does SBCL support threading in Mac OS X (Darwin)?
Yours
Miguel Arroz
"GUERRA E' PAZ
LIBERDADE E' ESCRAVIDAO
IGNORANCIA E' FORCA" -- 1984
Miguel Arroz - arroz@... - http://www.guiamac.com