| With regard to this, I would like to suggest the addition of a new
| command (:v) which could give the version number to the user. The problem
| is that the startup banner is lost after some interactions and sometimes,
| you want to know the version number of the system you are running without
| exiting.
|
| Is it possible?

It is possible, indeed quite easy, but I am hesitant for two reasons:

 - Why should anybody need to run so many versions of Hugs that they
   can't remember which they are using?  Probably because there are
   several different versions of Hugs at the moment, each offering
   different sets of features like modules or type system extensions,
   but not both.  The best way to fix this is to unify all these
   features in a single release so that nobody will ever need multiple
   versions on the same machine, and hence nobody will need a :v
   command.  This `unified' version of Hugs will be available very
   soon now!

 - Is a command the best way to provide this functionality?  For
   example, if there was a standard library with a signature:

    module Haskell where      -- Possible values:
     systemName     :: String --  "Hugs", "GHC", "hbc", "nhc", "qhc",...
     haskellVersion :: Int    --  3, 14, 98, 99, 2000, 2, ...
     releaseDate    :: Date   --  ...
     version        :: String --  some combination of the above

   then programs would be able to inspect and test which version of
   Haskell they were using at run-time, and a user could just evaluate
   Haskell.version in a Hugs session to find out which version they
   were using.  Something like this might also form the basis for a
   conditional compilation mechanism, although that needs more thought
   and more careful design.

In short, I hope that :v won't be necessary in the future, and if it
is, then there are a number of alternatives to consider, and I wouldn't
want to rush in to any of them right now.

All the best,
Mark


Reply via email to