axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-developer] Axiom and streams


From: Stephen Wilson
Subject: Re: [Axiom-developer] Axiom and streams
Date: 06 Aug 2007 13:10:18 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

C Y <address@hidden> writes:

> --- Stephen Wilson <address@hidden> wrote:
>  
> > A large drawback is that neither, to my knowledge, have been
> > implemented atop GCL.  I am seriously considering writing an
> > implementation.  I have a personal preference for using Simple
> > Streams as I believe it mostly succeeded in addressing issues
> > with the Gray Streams model.
> 
> Steve, I'm with Tim on this one - I will follow your lead.

OK.  Even though I have a leaning towards Simple streams, there are
many issues involved which will take time to understand.  I'll write a
few of my thoughts below.

For now, the simplest route would likely be to get Gray Streams
working under GCL.  When I wrote that I am "considering writing an
implementation" I should of said "considering porting ...".  The Gray
streams which SBCL uses (public domain) should be fairly easy to port.
I think such work would be of interest to GCL since many applications
use Gray streams.

[...]
> Concerns that pop into my head, in no particular order:
> 
> 1)  The copyright statement on the Allegro simple streams documentation
> doesn't seem to have anything that gives permission for any use, and I
> assume the Simple Streams code is present only in Allegro at the
> moment.  Would it be worthwhile to contact Franz and see if they would
> consider making the Simple Streams code part of their open source
> effort?  Re-doing a simple streams library for generic CL would require
> redoing both documentation and code, as it stands now.

SBCL also has a Simple streams implementation, but the README says it
is still alpha quality code.  Of course, some open code is better than
no code.

Unlike Gray streams, I do not think the Simple streams document was
intended to be used as a defacto `standard' which other implementers
should follow to the letter.  I view the document as a good
specification to work from in order to provide a decent library for
Axiom to use.  My inclination is to borrow from the document and
provide a library developed with Axiom in mind -- the literate
implementation I am sure would be quite different.

> 2)  Are there libraries out there using gray streams that we would be
> interesting in using and need to convert to simple streams?  If so, how
> hard would that be?

There are certainly lots of libs using Gray streams -- far more, I
think, than Simple streams.  As far as what libraries are interesting
to Axiom, and how they are to be integrated into the system, I do not
really know yet.  Porting issues too.  Its tough to make general
statements that attempt to be accurate.

On the other hand, we certainly can provide compatibility layers
between Axiom internals and other libraries when necessary.

> 3)  Would such a library implemented for GCL need to be GCL specific,
> or could it rest atop ANSI CL?

For Gray streams one needs to integrate the root of the class
hierarchy into Lisps built-in type system and redefine a handful of CL
functions as methods.  So this is not strictly portable, but the
issues are fairly minor.

Similar issues are involved with implementing Simple streams, but as
mentioned above, I think of Simple streams as motivation for an Axiom
specific library.  Even though Allegro defines the API in a way which
requires a system-level implementation I do not think we must bind
ourselves to those details.  It will take more thought and experiment,
but my hope would be to leverage a GCL Gray streams package as well as
our own extensions.  Some extensions -- for example a stream for
network connections -- demand system specific code.  But the main
point is to have a generic interface which abstracts these details
away.  We can port the interface to other Lisps if needed.

I will start on getting some preliminary work done.  Any more
questions/thoughts would be greatly appreciated.


Thanks,
Steve





reply via email to

[Prev in Thread] Current Thread [Next in Thread]