[Haskell-cafe] How outdated is Hugs?

John Goerzen jgoerzen at complete.org
Tue Jan 27 22:41:49 EST 2009


On Tue, Jan 27, 2009 at 09:18:55PM +0000, Duncan Coutts wrote:
> > I see Hugs last source code snapshot dates back to 2006. Was there any
> > updates?
> 
> Not since then, no. However a lot of things work fine, especially if you
> use a newer Cabal version. It's equivalent in time to ghc-6.6 I think,
> and a lot of people still use that and that is the base line for
> compatibility for many projects.
> 
> Of course how well it works will depend on just what you're trying to
> do.

I have tried to maintain Hugs compatibility in all my libraries, but I
must admit I am dropping it for many, due to various problems.  It is
mainly that libraries I use from others haven't even been tried with
Hugs or have weird issues:

 * utf8-string imports an unsafe ByteString module, which doesn't
   exist in Hugs (its contents are just in regular ByteString).  Meant
   I had to drop Hugs support for HDBC-postgresql.

 * A big annoyance today: Hugs inexplicably lacks Data.Time.Format
   entirely.

 * Its regexp issues have been annoying many times in the past, if
   memory serves.

Things would be a lot better if the libraries would just be
maintained.

As I have been going through updating my libraries in the past week, I
have been wondering myself how much time to put into maintaining Hugs
libraries.  Hugs still has its place, especially on small ARM devices
like the Zaurus or N810 where ghci doesn't run.  But it takes a
community to make support viable; if the common libraries that
everyone uses don't work on Hugs, then people won't use it.

The other problem is that Hugs just doesn't support the optional
flexibility that GHC does with typeclasses.  I had to resort to code
generation to generate a ton of instances for Convertible that I could
have done in a few lines of code with GHC instead of a few hundred
with Hugs.  Though this is a rather pathological case for me.

Just to close -- I will point out that ghci doesn't work on many
platforms that Hugs does (though ghc does).  Hugs is the only
interpreter on some of these platforms.

-- John



More information about the Haskell-Cafe mailing list