scsh-users
[Top] [All Lists]

Porting scsh & RScheme

To: scsh@martigny.ai.mit.edu
Subject: Porting scsh & RScheme
From: shivers@ai.mit.edu (Olin Shivers)
Date: 06 Nov 1995 01:30:36 GMT
Organization: Artificial Intelligence Lab, MIT
Reply-to: shivers@ai.mit.edu
   From: Donovan Kolbly <donovan@tkg.com>
   Newsgroups: alt.lang.scheme.scsh,comp.lang.scheme
   Date: Sun, 5 Nov 1995 14:50:13 -0600
   Organization: Real/Time Communications - Bob Gustwick and Associates

   > - There's a nice system being developed by Paul Wilson and another 
   >   guy down in Texas, I forget the name, That has potential.

   That would be me, and the system would be RScheme.  Wow, nice to know
   Olin even knows I exist, even if he doesn't know my name!

Of course I do; RScheme looks very exciting.

   Actually, I am impressed enough with scsh that I want my OS interface
   to be more like its than what RScheme has now: a bunch of little hacks
   to permit me to do the occassional real piece of work I need to do.

   I briefly looked at porting scsh to RScheme, but scsh seemed to be
   sufficiently tied to S48's multilayer architecture to make a quick
   port impossible.  RScheme still has a fairly crude scheme/C interface
   -- nothing as sophisticated as S48!

A port would have the following hurdles:
- low-level C interfaces not R4RS
- low-level macro hacks not R4RS
- Record structures and exceptions

What you have going for you is two things:
- higher-level code already carefully written.
  This is actually a fair amount of code.

- design work already done.
  Scsh represents a ton of design work, wandering around the
  Unix definition, finding out what is portable, how to represent
  it in a Scheme-like way, how to tie everything together, the
  consistent naming schemes. It took me several *years* to do this --
  and I've been hacking Unix for sixteen years and Scheme for fourteen.
  I thought I knew Unix pretty well when I started; I was wrong.

  As another example, I would say the design of the awk macro and
  the field-reader parser library represents about two full-time weeks 
  of my life.

   I'd be happy
   to support an effort to put the scsh interface in RScheme 0.7 (devoting
   my copious spare time to the task :-))

I would be very happy to see such a thing happen.

I would also love to tackle the following problem: Sit down, learn the Win32
API. Throw out scsh, and replay the same design game for Win32.  Now you have
a nice scripting language and programming environment for the world's dominant
OS.  Then study Unix scsh and the new system, and design a set of Scheme
libraries that abstract these two interfaces. Now if you program within these
abstractions, your code will be totally portable across Windows and Unix.
Some guys at DEC SRC did this with Modula-3, actually. I saw their design;
it was pretty nice.

It's a shame Modula-3 never successfully transited out into the real
world. I'm hoping most of its good ideas will survive in Java form.
        -Olin



<Prev in Thread] Current Thread [Next in Thread>