Fran and HGL broken with Feb 2001 Hugs

Alastair Reid reid@cs.utah.edu
Mon, 2 Apr 2001 11:34:46 -0600


Dear Claus [and others],

> it is not too nice if libraries have to depend on internal details of the Hugs
> distribution, but I assume they wouldn't if their author's had known any way
> around this.

I'm afraid the problem with the HGL is my fault.

Back when I was the Hugs maintainer, and both the HGL and Fran were part
 of the Hugs distribution, it was easy to keep them in sync and, when I added
 experimental features to Hugs (like exception handling), decisions about
 where to place the experimental code were based on issues like how many
 people might come to depend on that feature rather than maintainability.

And now that I maintain the HGL in my spare time, I can't always find the
 time to test it, work on bug reports, etc. as promptly as I'd like.
 In particular, the latest release of Hugs came shortly after a meeting with
 my current source of funding, coincided exactly with the first public
 release of my current project (Knit: a component definition and linking language
 for low-level systems code written in C and assembly language), and came
 shortly before a trip to Yale to work on a different aspect of the HGL,
 a short climbing vacation in Las Vegas and a paper deadline for a conference.
 
> And, given that several very popular libraries were affected seriously by
> the latest release of Hugs, may I suggest that those libraries are
> added to the test-suite for Hugs? 

I sympathise with the idea of having a central test suite for all the important
 Hugs libraries but there's a lot of things needing done with Hugs and, if I
 remember correctly, the current funding for Hugs maintenance is about to run
 out so I think I'd like to see Johan concentrate on the things that require
 central control like:

o Coordinating bug fixes and enhancements.
  (This requires a small number (ideally one) of people with a global view of all
  development watching out for conflicts, worrying about basic software engineering
  issues like portability, maintainability, etc.)

o Bringing Hugs and GHC back into line with each other.
  GHC's copies of the Hugs-GHC libraries have moved on a lot in the last few years
  whilst Hugs' have just held ground.  There's now a very active library development
  mailing list at haskell.org and it looks like the GHC and NHC folk are about to
  make massive changes to the libraries.  Hugs should be part of this.  This 
  will take some basic infrastructure to base the Hugs libraries on the same codebase
  as the {G,N}HC folk are using, some negotiating over library aesthetics, some
  negotiating when Hugs can't support a library design but could support a slightly
  different design, etc.

[There are probably other tasks which require/benefit from having a single central 
 coordinator.]

On the other hand, I think testing is a task which distributes very well.

It used to be the case that people on hugs-bugs would snatch up new beta releases and
 very quickly start sending in bug reports.

These days, I don't see that same level of support from the Hugs community.
 
Of course, if someone wanted to volunteer for the task of setting up a central 
 test suite including all libraries considered useful or important by the
 community, I'm sure there'd be no objection from the current Hugs maintainer.

> (*) Btw, what was the rationale for that change? Was it really necessary?

There was a bug in the existing implementation of concurrency.

--
Alastair Reid

ps The real heart of the HGL problem (beyond the error message currently
reported) is an awkward interaction between the implementation of concurrency and
exception handling (in the sense of "imprecise exceptions" like pattern match failure
not IOErrors).  (And, again, this is my fault since I'm the one who added both
features to Hugs...)  A fix for this has now been committed to the CVS repository and 
is being alpha-tested as you read this message.