new Library Infrastructure spec.

Keith Wansbrough Keith.Wansbrough at
Wed Jun 2 06:19:51 EDT 2004

> We would welcome your feedback, either as a potential library or tool
> author, or as a potential consumer, or both.  The specification isn't
> complete in every detail, but it seems better to post it before
> investing in details that may be rendered void by subsequent
> discussion.

This looks great!  A few comments:

1. In the document, Angela uses `#! runhugs' or `#! runghc' at the top
   of her Setup.lhs.  But Joe is running an nhc install.  Angela can't
   know which compiler Joe is using, and so she shouldn't have to
   specify at the top of Setup.lhs.  I propose that she write `#!
   runhs' instead, and the compiler writers all provide a `runhs'
   script (or symlink) as appropriate.

2. In section 4.1, the syntax for pkg.desc is discussed.  I think the
   simplest and least surprising syntax to use would be the RFC-2822
   email message header syntax (specifically sections 2.2 and 2.2.3).
   That is, each field is first written as

     <fieldname> ":" <fieldbody>

   ; then long lines may be "folded" by breaking them anywhere
   <whitespace> is allowed, by inserting <newline><whitespace>.

   To read this format back, first "unfold" by replacing all
   <newline><whitespace> pairs with <whitespace>; then expect
   <fieldname> ":" at the start of each line, with the remainder being


     name:   hunit
     version: 4.3
     deps:    [ foogle > 2.9
              , bargle = 2.5.1
     another-field: goes here

3. In section 3.1.3, it is unclear whether a user package (on being
   registered) may expose a module with the same name as one in an
   (already-existing) system package.

   In section 3.2, is the checking mentioned at the end of the section
   performed lazily or eagerly?  (i.e, if the program does not mention
   a module name that overlaps, is this still an error?).

5. In three places you say "setup" rather than "./Setup.lhs": s4.2.1
   bullet 1, s5.4 "setup configure" and "setup build".

   --global under 4.2.3 should repeat the rubric of --user regarding
   "This flag has no effect under --install-prefix".

   Period missing at end of s3.0 sentence.


--KW 8-)

More information about the Libraries mailing list