Nikodemus Siivola <tsiivola@...> writes:
> On Fri, 18 Jun 2004, Christophe Rhodes wrote:
>
>> Is anyone out there interested in a little bit of work? Attached is a
>> tacky implementation of a single-stepper, extremely lightly tested (to
>> the point that I haven't even tried to see if it builds).
>
> This is exceedingly funky!
>
> By tacky, do you mean the insertion of the signalling forms, or something
> else?
That's basically what I mean. It doesn't have the inherent cleverness
of the cmucl-style stepper: working out which assembly instructions
are at code section boundaries; replacing those instructions with
trapping ones; handling the trap and performing the displaced
instruction on continuing. On the other hand, it does have the virtue
of standing a chance of being maintainable...
>> TODO:
>> * make it only step onto forms that were in some sense present in the
>> original source;
>
> For general-purpose use that would probably be better, but I think
> there is educational value in seeing the non-original forms. Maybe
> another bit of policy based control, eg. debug-internals (which
> could conceivably be used elsewhere as well)?
Possibly.
>> * possibly other stuff that I haven't thought of;
>
> Intermediate values would be nice. ;-)
Yes, Andreas mentioned this on IRC too. It's a SMOP, but not so S,
because displaying intermediate values goes something like
`(let ((values (multiple-value-list ,before-form)))
(signal 'step-condition :after-form ',after-form
:before-form ',before-form
:values values)
(values-list values))
but that's an implicit PROGN, so will go through IR1-CONVERT-PROGN...
Patches welcome :-)
Cheers,
Christophe
--
http://www-jcsu.jesus.cam.ac.uk/~csr21/ +44 1223 510 299/+44 7729 383 757
(set-pprint-dispatch 'number (lambda (s o) (declare (special b)) (format s b)))
(defvar b "~&Just another Lisp hacker~%") (pprint #36rJesusCollegeCambridge)

Dear SBCL developers,
in search for a SBCL replacement for CMUCL's MP:QUEUE class,
I made the SB-THREAD:WAITQUEUE structure behave in a FIFO way
rather than LIFO, as far as activating waiting threads goes.
The patch modifies file src/code/target-thread.lisp,
and adds a small implementation of FIFO queues as a defstruct.
I tried not to do anything obviously stupid,
but then again there may be subtleties that evade me.
I didn't test the patch thoroughly yet
(will hopefully put it to good use with bknr next week),
but I tried tests/threads.impure.lisp and it looked like it work.
Feedback welcome.
[ Fran=E7ois-Ren=E9 =D0VB Rideau | Reflection&Cybernethics | http://fare.=
tunes.org ]
[ TUNES project for a Free Reflective Computing System | http://tunes.o=
rg ]
A flea and a fly in a flue
were imprisoned, so what could they do?
Said the fly: "let us flee!".
Said the flea: "let us fly!".
So they flew thru a flaw in the flue...

> Actually, it was taken from Paul Foley's implementation for cmucl that
> will be in the next cmucl release. It's a little bit more complete and
> has a small test suite, though.
Ok. Good to know.
> > Why not putting it as a separate
> > library on common-lisp.net so that it can be ported to different
> > implementation? I think it will be a good start.
>
> Putting a tarball and cvs archive somewhere does not an open source
> project make, unfortunately ... The code as it stands is very
> implementation-dependent and has deep and intimate knowledge of (and
> way too much copied code from) sbcl's fd-streams. I think porting to
> an unrelated CL compiler should be done before any sort of project
> creation, to see how much of the code can be reused.
>
> Don't let me discourage you too much -- I just think that for this type
> of project the web page should come after the running code. ;)
I see. I understand. I hope other implementation will provide
SIMPLE-STREAMS.
--
Frederic Brunel T: +33 557 773 000
Software Architect http://www.in-fusio.com

On 22. Jun 2004, at 11:38, Frederic Brunel wrote:
> Hi all,
>
> I guess that the SIMPLE-STREAMS implementation which comes with SBCL
> contribs in the only open-source one.
Actually, it was taken from Paul Foley's implementation for cmucl that
will be in the next cmucl release. It's a little bit more complete and
has a small test suite, though.
> Why not putting it as a separate
> library on common-lisp.net so that it can be ported to different
> implementation? I think it will be a good start.
Putting a tarball and cvs archive somewhere does not an open source
project make, unfortunately ... The code as it stands is very
implementation-dependent and has deep and intimate knowledge of (and
way too much copied code from) sbcl's fd-streams. I think porting to
an unrelated CL compiler should be done before any sort of project
creation, to see how much of the code can be reused.
Don't let me discourage you too much -- I just think that for this type
of project the web page should come after the running code. ;)
Greetings,
Rudi

On Tue, 22 Jun 2004, Frederic Brunel wrote:
> I guess that the SIMPLE-STREAMS implementation which comes with SBCL
> contribs in the only open-source one. Why not putting it as a separate
> library on common-lisp.net so that it can be ported to different
> implementation? I think it will be a good start.
Historically: The sb-simple-streams contrib is based on the CMUCL
version developed by Paul Foley.
Practically: Simple streams need to be fairly intimate with the underlying
implementation, so maintaining multiple implementations in a single tree
is probably pretty far from optimal.
Cheers,
-- Nikodemus "Not as clumsy or random as a C++ or Java.
An elegant weapon for a more civilized time."

On Fri, 18 Jun 2004, Christophe Rhodes wrote:
> Is anyone out there interested in a little bit of work? Attached is a
> tacky implementation of a single-stepper, extremely lightly tested (to
> the point that I haven't even tried to see if it builds).
This is exceedingly funky!
By tacky, do you mean the insertion of the signalling forms, or something
else?
> TODO:
> * make it only step onto forms that were in some sense present in the
> original source;
For general-purpose use that would probably be better, but I think
there is educational value in seeing the non-original forms. Maybe
another bit of policy based control, eg. debug-internals (which
could conceivably be used elsewhere as well)?
> * possibly other stuff that I haven't thought of;
Intermediate values would be nice. ;-)
Cheers,
-- Nikodemus "Not as clumsy or random as a C++ or Java.
An elegant weapon for a more civilized time."

Hi all,
I guess that the SIMPLE-STREAMS implementation which comes with SBCL
contribs in the only open-source one. Why not putting it as a separate
library on common-lisp.net so that it can be ported to different
implementation? I think it will be a good start.
What do you think?
--
Frederic Brunel T: +33 557 773 000
Software Architect http://www.in-fusio.com