82 lines · 3.4 KB · Text
RawDownload
Using Hugs with the new hierarchical libraries Hugs98 now uses the new, hierarchical Haskell libraries (as also providedby NHC and GHC.)  This setup offers more flexibility and functionalityover the flat module structure provided by Haskell 98.  For example, theold library setup provides a module Parsec; in the new setup, its name is 	Text.ParserCombinators.Parsec but there is also a module called Parsec that merely imports andre-exports this module, so your old source code should still work.This is one major exception to this: in previous Hugs releases, thePrelude exported several names not listed in the Haskell 98 Prelude.The Prelude now complies with the Haskell 98 Report. For more details on the library transition, which affects all Haskellimplementations, see 	http://www.haskell.org/~simonmar/libraries/libraries.html The new library setup comprises the directories   {Hugs}/libraries: new hierarchical libraries, covering most of the	packages base, haskell98 and haskell-src shipped with GHC 5.04	and documented at: 	http://www.haskell.org/ghc/docs/latest/html/base/index.html	http://www.haskell.org/ghc/docs/latest/html/haskell98/index.html	http://www.haskell.org/ghc/docs/latest/html/haskell-src/index.html 	(Unlike GHC, Hugs does not use packages: all these modules are	placed in the same hierarchy.) 	This version also features a Haskell 98-compliant Prelude	(unlike the old setup).  For example, functions like isDigit	are no longer exported by the Prelude.   {Hugs}/oldlib: a collection of stub modules with the same names as	the old Hugs modules, but implemented by importing hierarchical	modules.  For example there is a module MonadReader that merely	imports and re-exports the hierarchical module Control.Monad.Reader.	This includes the old modules documented at 	http://www.haskell.org/ghc/docs/5.02.3/set/book-hslibs.html With these compatibility stubs most old code should still work.  However,you might well wish to use the new, longer module names in new code.Eventually the compatibility stubs will disappear. More details on the new setup: o Some modules require the -98 option. o the Hugs.* packages (in libraries/Hugs) provide Hugs-specific  implementations of standard features, as well as some Hugs-only  features.  Any program importing them (or modules in oldlib) will not  be portable to other implementations. o As noted above, the Prelude is now Haskell 98-compliant.  Most of the  names formerly exported are available from library modules, including  Char, Ix, Numeric and Ratio.  The Hugs-specific names may be accessed  by importing the prelude implementation module Hugs.Prelude. o Everything under hugslib is created by the  libraries/tools/convert_libraries script (so don't edit them). o To check the status of each hierarchical module, run 	make LibStatus o Some libraries are present, but Hugs does not implement all operations,  or does not provide the same semantics as GHC:    Control.Concurrent.MVar: Hugs provides only co-operative multitasking,    	which affects their behaviour.  Also finalizers are not implemented.    System.Mem.Weak: finalizers must be run explicitly. o Old versions of the Int and Word modules had lots of specific conversion  functions, which are now gone.  Use fromIntegral instead. o to see what's handled and what's not, have a look at the conversion  script libraries/tools/convert_libraries.  It's quite a kludge, but  it mostly works, though there's still plenty to do.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t