Google Groups Home
Help | Sign in
Message from discussion Wraith Scheme 1.30 released (for Macintosh); does parallel processing
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
Jay Reynolds Freeman  
View profile
 More options Dec 4 2007, 1:46 pm
Newsgroups: comp.lang.scheme
From: Jay Reynolds Freeman <Jay_Reynolds_Free...@mac.com>
Date: Tue, 4 Dec 2007 10:46:29 -0800 (PST)
Local: Tues, Dec 4 2007 1:46 pm
Subject: Re: Wraith Scheme 1.30 released (for Macintosh); does parallel processing
On Dec 4, 6:32 am, jadam...@partners.org (Joel J. Adamson) wrote:

> No, but could it help make it readable?  Perhaps others are better able
> to spot the difficult parts.

  I haven't run out of difficult parts that I can find all by
myself ...

> Sure, it's your responsibility, but if there's someone out there who's
> willing to help you, then that leaves you as an administrator while
> they're coding, and that delegation may be helpful so you can do more
> coding on other things.

  Admin is no problem at present, not enough users, and (terrible
secret)
  I rather enjoy documenting the code I have written.  Besides, that
  helps *me* remember what it does.

> "Open source" and Free Software are two different things: making the
> source code available doesn't necessarily make it Open Source, i.e. mean
> that you have to be open to suggestions or accept changes by other
> people.

  Interesting distinction, well stated; I hadn't thought of it that
  way.  But in either case, I suspect the source has to be at a
reasonable
  level of organization and documentation before it is useful to
provide it,
  and Wraith Scheme isn't there yet.

  BTW, the reason why not is basically historical.  Wraith Scheme is
  a direct descendent of Pixie Scheme, which I wrote on a Mac II in
the
  late 1980s, for Macs.  The open-source momement was in its infancy
then,
  and I couldn't have gone open easily if it had been, for I had no
  Internet access at home where my computer was.  But the real thing
driving
  the organization was that Pixie Scheme was nearly as big as Wraith
Scheme,
  and a full compile on a Mac II took a LONG time.  So I developed the
  program as scores of small files and used Apple's "make" lookalike
to
  build only the ones newly touched.  (Nowadays I habitually rebuild
the whole
  thing all at once, which takes under a minute on my Macbook.)  Lots
of
  small files is a bewildering organization to step into as a newcomer
  to the code (I have been there), kind of like the mazes in "Colossal
  Cave" aka "Adventure".  Also, although the code is designed in what
  I believe I can describe as good object-oriented style, it was not
written
  in an OO language -- Apple's C++ was not out yet -- it was written
  in pre-ANSI-standard C.  (Since ported to C++, and most of the port
  was tightening up the code so that it compiled with no errors or
  warnings even when the compiler was set to show all possible
  warnings.  Ah, self-discipline... ) (Much of the new stuff that I
  have added as enhancements to Wraith Scheme is class-based, and
  the Mac GUI stuff is in Objective C, which is a decent OO language
  although I have some objections to it on technical grounds.)

  Furthermore, much of the code is written using an internal macro
  language that I developed.  The heart of the Wraith Scheme
interpreter
  is a virtual machine based on Henderson's SECD machine stuff
(reference
  in the Wraith Scheme documentation).  I implemented that in C for
  Pixie Scheme, then wrote the Scheme primitives in what looks like
  assembler for the virtual machine.  That code looks like this:

                MOVE( something, R )  ;; R is the VM's accumulator
                PUSH
                MOVE( something else, R )
                ADD
                CONTINUE

  (That was rudimentary code for an add.)  When I compile, the
  C preprocessor expands that stuff into calls to C routines that
  manipulate data structures (like the SECD VM stack) that are not
  directly visible in the "assembler".  So to document the code, I
  would have to document the details of the VM, and of the language,
  and any reader would have to learn them.  I intend to do that, but
  what with the recent parallel enhancement, the VM is still somewhat
  a moving target.

  Excuse my blathering, it is fun to talk about this stuff.

  And anyone still reading is probably a likely victim \\\\\\
  candidate to be involved in open-sourcing Wraith Scheme if and
  when I do so, so send me EMail and I will put your name on a
  little list ...  (I am betting no one will send EMail!)

  -- Jay Reynolds Freeman
  Jay_Reynolds_Free...@mac.com
  http://web.mac.com/jay_reynolds_freeman


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2008 Google