scsh status

6 views
Skip to first unread message

Roderic Morris

unread,
Jul 12, 2009, 2:48:37 AM7/12/09
to Edwin
Hey everyone, I've been looking into what exactly needs to be done to
port scsh to the latest scheme48. This'll give us some nice things like
Unicode, 64bit support, a new GC, and a system that's actually actively
developed (granted very slowly atm).

>From what I've seen, it might actually be possible to treat scsh
(particularly, the code in the scsh folder at the top of the
distribution) as a library instead of having to maintain the entire
scheme48 distribution in parallel. The development repo at s48.org
http://www.s48.org/cgi-bin/hgwebdir.cgi/s48 has had a command added
since the 1.8 release called ,set-reader. I was able to package scsh's
reader into a module, load it, set the config package's reader to it,
and load the interface and package definitions for scsh, even with the
non standard symbols.

Obviously, even with that, things aren't quite working yet. Scsh is
using packages that have changed since the version of scheme48 that it
was built on, and the ffi has changed quite a bit. In fact, there are
two in the development repository; the version from s48 1.8, and a new
one that's been added sine that release.

As far as the new ffi, it's a good deal different from the one in the
s48 scsh was built on, and even s48 1.8's. Moreover, all the functions
on both the C and scheme side have a 2 appended to them. I got in touch
with Marcus Crestani, one of the current s48 maintainers and the one who
wrote the ffi, and he explained the new system to me and pointed me to a
paper he wrote on it http://www.schemeworkshop.org/2008/paper6.pdf. It
looks a lot nicer than the older ones in terms of safety and usability,
so I think we should probably port the C code to use it. My only concern
with it is that the names look like they'll be changed soon, but I've
asked him what exactly he plans to do, and I'll let yall know what he
says.

As far as the deprecated packages, I've gone through some of them, and
almost all of them seem easy to change and have just been renamed in
later versions. There is one particular case that I've come across that
might be hard to solve though. Scsh actually changes the thread data
structure a bit, and uses one of those changes to implement the
thread-fluids package (scheme/rts/thread-fluids.scm in the scsh
distribution). There doesn't seem to be an analog to it in any vanilla
s48 version. From the description I've read for some of its functions in
the scsh manual though (section 9.5), the functionality it gives can
probably be implemented on top of s48's threads.

I'm still trying to be cautious about all this, but it looks like it
might work. Let me know if there's anything I'm missing that could make
having scsh as a library impossible. Otherwise, I'll try to have a repo
up soon with the code I've got so far.

-Roderic

Roderic Morris

unread,
Jul 13, 2009, 11:07:36 AM7/13/09
to edwin-...@googlegroups.com
Some corrections: thread-fluids is actually in
scheme/big/thread-fluid.scm. Also, Marcus got back to me, and advised
that we use the new ffi, even with the current naming. It won't change
till the 2.x series of s48, and removing the appended 2s can be done
automatically when the time comes anyway.

-Roderic

Reply all
Reply to author
Forward
0 new messages