Re: put library <body> at top-level Per Bothner 01 Dec 2005 19:38 UTC

Ray Blaak wrote:
>
>>> - sometimes many
>>> small libraries are best expressed in a single file,
>>
>>
>>
>> I think this is fairly rare, and not a very important use case.
>> If they're small, why should they be separate libraries?
>
>
> The organization of libraries can be done for reasons other than size:
> purpose, ownership, units of work, etc.

If you do want to reflect this organization in the lib-path, then the
point about having multiple libraries per source unit is moot.

If you want some organization that is not reflected in the lib-path,
you could have:
In toms-libraries.scm:
   (library "stack" ...)
   (library-vector "queue" ...)

In bills-libraries.scm:
   (library "math" ...)
   (library "matrix" ...)

But is this really any advantage over:
In stack.scm:
   ;; Owner: Tom
   (define stack ...)

In math.scm:
   ;; Owner: Bill
   (define (sum-sqrt ...) ...)

This does suggest a "meta" feature.  Instead of "Owner" in a comment,
one might want:

In math.scm:
   (meta 'Owner "Bill")
   (define (sum-sqrt ...) ...)

Here meta is a standard hook to add meta-information about a library.
--
	--Per Bothner
xxxxxx@bothner.com   http://per.bothner.com/