C Y <[EMAIL PROTECTED]> writes: > --- Stephen Wilson <[EMAIL PROTECTED]> 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 _______________________________________________ Axiom-developer mailing list Axiom-developer@nongnu.org http://lists.nongnu.org/mailman/listinfo/axiom-developer