Library Infrastructure code & help wanted

Isaac Jones ijones at syntaxpolice.org
Sun Jan 18 18:09:17 EST 2004


Greetings,

I'm looking for some help on the library infrastructure project.  The
project and its goals are explained here:

http://www.haskell.org/libraryInfrastructure/

And the code is here:

http://www.haskell.org/libraryInfrastructure/code.html

In brief, the Library Infrastructure Project is an effort to provide a
framework for developers to more effectively contribute their software
to the Haskell community.  I'm hoping to not have to implement this
entire proposal myself, and I'm very flexible about implementation
details.  I've made some concrete progress, and I just mirrored my
code repository on my web site, so now is the time to get involved!

Specifically, at the moment, I want a couple of things:

1) A version parser.  I implemented a parser which parses versions
   that are made of dates, or simple numeric versions.  I'd like it to
   do more kinds of versions, though.  Distribution.Version is
   attached.  What is this version stuff used for?  Well for one
   thing, you can use it to say something like:

     ./haskell-config --user list "MyPackage>1.2"

   where "MyPackage" is the name of a package.  This will list all of
   the user-installed packages whose versions are greater than 1.2.
   If you look at the HUnit tests at the bottom of the attached file,
   you'll get a good idea of what it does right now.  It uses Parsec.

   BTW, I understand that the Debian project has some standard version
   number parser which might give you some ideas.

2) I also would like someone to help out with the package
   configuration file IO.  Right now, it uses HaXmL, with no generated
   code.  Someone who has seen HaXmL before could give me advice about
   how my code could be better, submit patches, or rewrite it.  As
   discussed on libraries at haskell.org, I'm open to not using XML if
   someone wants to redo what I've got there (not a huge task).  This
   parsing code is in Distribution.Package.  I do want something more
   flexible than straight-up read/show.

3) Someone to make it work with in nhc & hugs.  The HaXmL page says
   that it doesn't work w/ Hugs yet (can anyone tell me why?), so
   that's one step.  Also, at least for the version of NHC I have on
   my system, Parsec is different.  So maybe we have to move away from
   Parsec, or maybe a different version thereof?  It is absolutely
   vital for this project to be completely cross-platform and
   cross-compiler, so if we have to avoid depending on such things,
   I'm very willing to change.

4) Someone to make it work with Windows.  Avoid using a filename
   that's called "Aux" ;)

ABOUT THE CODE:

It only works with GHC at the moment (see above) :(

Right now what I've got is a first stab at Distribution.Package and
haskell-config as explained in the proposal [1], though some things
may have changed.  It's hosted with Arch[2], a newish version control
system.  You can branch my code on your own machine and submit
patches.  Arch has some tools to help with patches.  I've also
provided a tarball.  Arch is cool, though.  You should try it.

The HUnit tests in some of the modules should be pretty illuminating.
The interactive help for haskell-config is pretty OK.

Get the code here:
http://www.haskell.org/libraryInfrastructure/code.html

peace,

isaac


[1] http://www.haskell.org/libraryInfrastructure/proposal/index.html
[2] http://regexps.srparish.net/www/


-------------- next part --------------
A non-text attachment was scrubbed...
Name: Version.hs
Type: application/octet-stream
Size: 15428 bytes
Desc: not available
Url : http://haskell.org/pipermail/haskell-cafe/attachments/20040118/ab866d9d/Version.obj


More information about the Haskell-Cafe mailing list