cvs commit: hugs98/src Makefile.in MkDepend.in array.c builtin.c iomonad.c observe.c prelude.h printer.c stmonad.c hugs98/src/unix convert_libraries hugs98/src/bcc32 Makefile hugs98/src/djgpp2 Makefile hugs98/src/dotnet Makefile hugs98/src/msc Makefile ...

ross@glass.cse.ogi.edu ross@glass.cse.ogi.edu
Mon, 12 May 2003 01:48:17 -0700


ross        2003/05/12 01:48:16 PDT

  Modified files:
    src                  Makefile.in MkDepend.in array.c builtin.c 
                         iomonad.c observe.c prelude.h printer.c 
    src/unix             convert_libraries 
    src/bcc32            Makefile 
    src/djgpp2           Makefile 
    src/dotnet           Makefile 
    src/msc              Makefile 
    src/winhugs          Makefile 
    libraries/Hugs       IOExts.hs LazyST.hs Memo.hs ST.hs 
  Removed files:
    src                  stmonad.c 
  Log:
  Change the representation of the strict ST monad to
  
  	newtype ST s a = ST (forall r. (a -> r) -> r)
  
  which is a generalization of the new representation of IO monad:
  
  	newtype IO a = IO ((a -> IOResult) -> IOResult)
  
  This simplifies conversion between these monads, and enables them to
  share monad and state primitives, so that stmonad.c is no longer required
  (except for a couple of primitives to support Hugs.Memo, which have
  moved to iomonad.c).
  
  The lazy ST monad has the same representation as before, but is now
  defined in Hugs.LazyST, with conversions to and from the strict ST monad.
  We now use the fptools/libraries definitions of the operations on this
  monad, using the corresponding operations on the strict monad and these
  conversions.  The resulting interface matches that of GHC.
  
  Revision  Changes    Path
  1.56      +1 -1      hugs98/src/Makefile.in
  1.4       +38 -39    hugs98/src/MkDepend.in
  1.8       +2 -58     hugs98/src/array.c
  1.59      +2 -13     hugs98/src/builtin.c
  1.49      +60 -2     hugs98/src/iomonad.c
  1.2       +2 -2      hugs98/src/observe.c
  1.45      +2 -4      hugs98/src/prelude.h
  1.10      +3 -3      hugs98/src/printer.c
  1.69      +2 -2      hugs98/src/unix/convert_libraries
  1.11      +2 -2      hugs98/src/bcc32/Makefile
  1.10      +2 -2      hugs98/src/djgpp2/Makefile
  1.10      +39 -40    hugs98/src/dotnet/Makefile
  1.35      +39 -40    hugs98/src/msc/Makefile
  1.24      +39 -40    hugs98/src/winhugs/Makefile
  1.14      +0 -4      hugs98/libraries/Hugs/IOExts.hs
  1.8       +25 -98    hugs98/libraries/Hugs/LazyST.hs
  1.3       +4 -11     hugs98/libraries/Hugs/Memo.hs
  1.10      +43 -40    hugs98/libraries/Hugs/ST.hs