On Fri, May 29, 2009 at 5:57 PM, Abdulaziz Ghuloum<[email protected]> wrote:
> On May 29, 2009, at 10:44 AM, Derick Eddington wrote:
>> I imagine you can add
>> non-(ikarus ---) non-(rnrs ---) libraries to Ikarus's bootfile, right?
>> (I'm also just curious about this point.)
>
> I assume you're not asking about the names of the libraries but
> rather whether I can add, say, the (match) library or (srfi :1),
> right?

Yes.  I was pretty sure any library names can be used.

> As it stands, the bootfile and the initial library set is built
> by magic in makefile.ss and the sequence of operations is tricky
> as you've noticed before.  So, if you want an additional set of
> libraries to augment the built-in set, and have them be in the
> boot file, there is more magic that needs to be done.
>
> First, the fasl reader in C which loads the boot file is pretty
> restricted compared to the fasl reader in Scheme.  Not every
> user library can be massaged to be loadable by the C loader, so,
> we *must* use the Scheme loader for these.
>
> Second, these libraries have to be built using the same boot
> file in which they are to reside (how nice).  To get around this,
> the boot file has to be built incrementally: start with the built
> in set to make bootfile0, then use bootfile0 to compile the other
> libraries (producing fasl1, fasl2, ...), then somehow augment
> bootfile0 and fasl1, fasl2, ... to make the final bootfile.
>
> Note that nothing in bootfile0 can use anything in the augmented
> set.

Thanks for the info.  I have far-off ideas of using Ikarus in new OSs
(like Genode and Coyotos, initially on their POSIX emulation layers),
so I'm interested in gradually learning more about the nature of
bootstrapping Ikarus.

> So, if that's the case, I see no point in adding these
> libraries to the boot file in the first place.  Do you have
> something specific in mind that you'd want to do?  Like are you
> thinking of application delivery in the form of ikarus + one
> giant bootfile that has everything else?

That's an ability I've been curious about.

But mostly I was just wondering if you can put your command-line
options processing library, named (something-new command-line) and
exactly as it would be for independent distribution with a compat
library, in the bootfile, because that's where it seems like it
belongs for internal use by Ikarus.  Library names don't sound like a
problem, and it sounds like it depends on whether the C FASL reader
can handle the library.

If the C FASL reader cannot handle some library, to still put it in
the bootfile, could I have the FASL of the library in a bytevector
which is in the bootfile and which the C FASL reader can handle (as
just a bytevector), and after the base libraries are ready, the Scheme
FASL reader could read the bytevector to load the library?

--
: Derick
----------------------------------------------------------------

Reply via email to