[Top][All Lists]

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

Re: Minimal Guile

From: Mike Gran
Subject: Re: Minimal Guile
Date: Wed, 4 Jan 2012 10:52:56 -0800 (PST)

>>  There are some theoretical corner cases where it could be useful.
>>  Don't know if these would ever occur in practice.
>>  - Systems that don't use a Unix-like filesystem heirarchy
> I also don't see how Unix-like filesystem semantics affect this
> question.
If there were a go archive, I could finally make a port to
MS-DOS because I could ignore the 8.3 filesystem limitation.  ;-)
> If this single file is to be built only during the package build
> process, and never modified after that, then it should be super-easy to
> invent your own little homebrew format.  If we assume that the library,
> executable, and go-bundle files are always distributed together, that
> also means that we're free to change the format at will.  I guess it
> could be as simple as this:
> * Concatenate all of the .go files together, making sure to align each
>   .go file on a page boundary (4 kilobytes) so that each one can be
>   individually mmapped.
> * Generate a C file that includes the entire directory of files within
>   an initialized array.  It could be as simple as an array of structs
>   with three fields: module name, start offset in the big file, and
>   length.  If you sort this array by module name before generating the
>   file, then you could use binary search to find the file.
> * Once the C file is generated, relink libguile with this file included.
>   (The first time libguile is built, it could include a stub version of
>   the C file with an empty directory, so that it knows to use the
>   traditional module-loading mechanism).
> * To allow graceful error messages in case the wrong go-bundle is used
>   with the wrong library, there should be some kind of fingerprint put
>   in both the go-bundle and the C file index.  Check the fingerprint
>   before trying to load things from the go-bundle.

That's good advice.
Thanks much,
Mike Gran

reply via email to

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