Re: Fran and HGL broken with Feb 2001 Hugs
Alastair wrote:
As you and others have found, my HGL and Conal's Fran both depend on internal details of Hugs which were changed in the latest release.
Dear all (and especially Hugs maintainers), 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. 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? It is just too risky to hope that all library authors will test their (in some cases several years old) libraries whenever any of the Haskell implementations gets updated, so this would better be automated (as, I believe, it is for GHC). It cannot be the task of the Hugs maintainers to fix the libraries in the test suite if they break due to a change to Hugs internals (*), but neither should a new release of Hugs come out with all those widely used libraries broken. In other words, new releases of Hugs could be tested against the suite and any problems encountered could be fixed "behind the scenes" before the releases reach the general public. In the worst case, if no easy fixes can be found, a decision would have to be made between breaking all those popular libraries and not introducing some potentially useful new features. In case anyone wonders: here in Canterbury, as soon as the first of us found only one of those libraries broken, a warning went round not to use the new Hugs for the time being, and that early adopter had to try and restore his old Hugs environment..(**) No-one here is using the new release! And I know of other fp places following the same cautious approach, waiting for the situation to stabilize instead of risking their research and teaching (!!!) environments. Just some thoughts of a Hugs+libraries fan, Claus (*) Btw, what was the rationale for that change? Was it really necessary? (**) no, it wasn't me, but I agree. I needed to have a look at the new built-in Observe stuff, and I had been hoping for the new FFI stuff, but not at the risk of so seriously upsetting my Hugs enviroment, so I only downloaded the source release and kept my old Hugs installation.
Dear all (and especially Hugs maintainers),
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. 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?
Amen to that! Of course, there is the problem of what are the standard libraries... At this point Alastair's "HGL" has now been ported to both Windows and Linux, and to both Hugs and GHC, so it may in fact be ready for prime time. -Paul
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.
participants (3)
-
Alastair Reid -
C.Reinke -
Paul Hudak