This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Tcl->Scheme v0.1


All that mucking about with Similix and partial evaluation taught me
something: never depend on other people's experimental tools.  No longer can
you get by on will, you also need luck.

So I've written it all over again.  This time it uses no outside tools and,
relatedly, it really works.  It does straight translation with a few added
tricks to deal with Tcl's interpreted nature.

It parses just about all the the Tcl syntax (which isn't much, really) and
includes a good portion of the primitives.  The ones that are missing are
mostly because they annoyed me and I was lazy.  Particularly pattern
matching.  There's otherwise no structural reason any of the primitives
couldn't be implemented.

The translated code is dog-slow, but that probably can be fixed fairly
easily.  All the variable stuff has to be redone, and I think this is a
fair bit of the problem.  But for the moment I'm concerned more with
correctness.

It also contains its own little object system, which does nothing but deal
with the notion of a value having many representations (i.e., everything is
a string, but it can also be a boolean, script, variable name, etc.)  A real
object system would, of course, be much nicer (hint hint nudge nudge), but
this does its small job in a decent enough way, I suppose.

I'd be happy for somebody(ies) to test it, criticize it, find bugs, fix
bugs, implement missing features, ask questions about it, or some subset of
those things.  You can download it at:

http://www.cs.earlham.edu/~bickiia/tcl-scheme/tcl-scheme_0.1.tar.gz

Happy scheming...

       -- Ian Bicking <bickiia@earlham.edu>