[armedbear-devel] Binary release 0.17 (steps to be taken)

Erik Huelsmann ehuels at gmail.com
Fri Oct 23 10:04:44 UTC 2009

Hi Tobias,

On Fri, Oct 23, 2009 at 11:38 AM, Tobias C. Rittweiler <tcr at freebits.de> wrote:
> Erik Huelsmann <ehuels at gmail.com> writes:
>> I'm hoping to be able to publish binaries when releasing 0.17.
>> However, I think we're not yet completely ready to do so. We're
>> missing:
>>  * Usage descriptions in terms of an INSTALL file, or something similar
>>  * Build targets, like we have for the src archives, for
>> abcl-bin-<version>.zip and abcl-bin-<version>.tar.gz
>>  * Anything else?
>> As for the archives, I'd like them to contain many of our top-level
>> files (COPYING, README, etc) and instead of the subdirectories, I
>> think it should contain abcl.jar
>> Comments?
> Has there been any more work on the gray stream issue since last we
> talked about it? IIRC, the issue was that gray streams were not known to
> the type system to be true subtypes of STREAM, i.e. (typep
> <gray-output-stream> 'stream) returned NIL.

I did some investigations after we talked about it. In order to use
the existing code base, it would be necessary to inherit
fundamental-stream from STREAM. However, ABCL rejects that as a valid
declaration. I'm unsure about lifting that requirement, because I'm
very insecure about the side-effects of inheriting from system
classes. Do you know papers or web-articles about the subject?

Then, I checked inheriting from a structure; I did:

(defstruct b ())

(defclass s (standard-object b) ())

(b-p (make-instance 's)) --> T

So, if STREAM were a structure, it could be made to work. After that,
I didn't look into it anyfurther, because I'm somewhat stuck: you need
streams and a reader to be able to bootstrap the lisp. However,
declaring structures is really only viable in lisp.

All in all, from where I stood 2 weeks ago, it looked like this was
going to be a larger project than I originally intended. However, I'm
open to ideas which might limit the effort - apart from lifting the
restriction to inherit from system classes.

In SBCL, streams are structures. Something similar would be great for
ABCL, because things like echo and broadcast streams could be
implemented in Lisp instead of in Java.

Maybe the shortest-term solution would be to override TYPEP,
installing a GRAY-TYPEP function in the function slot of TYPEP which
returns TRUE when 'STREAM is requested and the argument is of type
FUNDAMENTAL-STREAM. However, I'm hesitant of the can of worms that may



More information about the armedbear-devel mailing list