1. 29 Dec, 1999 1 commit
  2. 20 Dec, 1999 1 commit
    • simonpj's avatar
      [project @ 1999-12-20 10:34:27 by simonpj] · e921b2e3
      simonpj authored
      This commit implements a substantial re-organisation of the Prelude
      It also fixes a couple of small renamer bugs that were reported recently
      	(notably, Sven pointed out that we weren't reporting
      	unused imports properly)
      
      My original goal was to get rid of all "orphan" modules (i.e. ones
      with instance decls that don't belong either to a tycon or a class
      defined in the same module).  This should reduce the number of
      interface files that have to be read when compiling small Haskell
      modules.
      
      But like most expeditions into the Prelude Swamp, it spiraled out
      of control.  The result is quite satisfactory, though.
      
      	GONE AWAY:	PrelCCall, PrelNumExtra
      
      	NEW:		PrelReal, PrelFloat, PrelByteArr, PrelNum.hi-boot
      
      (The extra PrelNum.hi-boot is because of a tiresome thin-air Id, addr2Integer,
      which used to be in PrelBase.)
      
      Quite a lot of types have moved from one module to another,
      which entails some changes to part of the compiler (PrelInfo, PrelMods) etc,
      and there are a few places in the RTS includes and even in the driver
      that know about these home modules (alas).
      
      So the rough structure is as follows, in (linearised) dependency order
      	[this list now appears in PrelBase.lhs]
      
      PrelGHC		Has no implementation.  It defines built-in things, and
      		by importing it you bring them into scope.
      		The source file is PrelGHC.hi-boot, which is just
      		copied to make PrelGHC.hi
      
      		Classes: CCallable, CReturnable
      
      PrelBase	Classes: Eq, Ord, Functor, Monad
      		Types:   list, (), Int, Bool, Ordering, Char, String
      
      PrelTup		Types: tuples, plus instances for PrelBase classes
      
      PrelShow	Class: Show, plus instances for PrelBase/PrelTup types
      
      PrelEnum	Class: Enum,  plus instances for PrelBase/PrelTup types
      
      PrelMaybe	Type: Maybe, plus instances for PrelBase classes
      
      PrelNum		Class: Num, plus instances for Int
      		Type:  Integer, plus instances for all classes so far (Eq, Ord, Num, Show)
      
      		Integer is needed here because it is mentioned in the signature
      		of 'fromInteger' in class Num
      
      PrelReal	Classes: Real, Integral, Fractional, RealFrac
      			 plus instances for Int, Integer
      		Types:  Ratio, Rational
      			plus intances for classes so far
      
      		Rational is needed here because it is mentioned in the signature
      		of 'toRational' in class Real
      
      Ix		Classes: Ix, plus instances for Int, Bool, Char, Integer, Ordering, tuples
      
      PrelArr		Types: Array, MutableArray, MutableVar
      
      		Does *not* contain any ByteArray stuff (see PrelByteArr)
      		Arrays are used by a function in PrelFloat
      
      PrelFloat	Classes: Floating, RealFloat
      		Types:   Float, Double, plus instances of all classes so far
      
      		This module contains everything to do with floating point.
      		It is a big module (900 lines)
      		With a bit of luck, many modules can be compiled without ever reading PrelFloat.hi
      
      PrelByteArr	Types: ByteArray, MutableByteArray
      
      		We want this one to be after PrelFloat, because it defines arrays
      		of unboxed floats.
      
      
      Other Prelude modules are much easier with fewer complex dependencies.
      e921b2e3
  3. 23 Nov, 1999 1 commit
  4. 26 Sep, 1999 1 commit
  5. 27 Aug, 1999 1 commit
    • simonpj's avatar
      [project @ 1999-08-27 11:48:08 by simonpj] · 7f2147ad
      simonpj authored
      When deciding if a module is a "library" module, allow
      	C:/
      	C:\
      as prefixes of the path, not just
      	/
      
      We need to improve this hack, but this fix makes things
      work on Windoze.
      7f2147ad
  6. 26 Aug, 1999 1 commit
    • simonmar's avatar
      [project @ 1999-08-26 15:59:06 by simonmar] · 6d8504e2
      simonmar authored
      Move the rest of the Concurrent Haskell documentation into the
      GHC/Hugs libraries document, so it now all lives in one place.  Also
      update and tidy it up somewhat.
      6d8504e2
  7. 24 Aug, 1999 2 commits
  8. 23 Aug, 1999 2 commits
  9. 27 Jul, 1999 1 commit
  10. 14 Jul, 1999 1 commit
  11. 21 May, 1999 1 commit
  12. 06 Apr, 1999 1 commit
  13. 22 Feb, 1999 1 commit
  14. 17 Feb, 1999 1 commit
  15. 04 Feb, 1999 1 commit
  16. 02 Dec, 1998 1 commit
  17. 30 Apr, 1998 1 commit
  18. 03 Feb, 1998 1 commit
  19. 02 Feb, 1998 2 commits
    • simonm's avatar
      [project @ 1998-02-02 14:52:08 by simonm] · 87fe9c34
      simonm authored
      Split -fwarn-unused-names into
      
      	-fwarn-unused-imports	 Warn about unused explicit imports. (in -W)
      	-fwarn-unused-binds	 Warn about unused bindings	     (in -W)
      	-fwarn-unused-matches    Warn about unused names in pattern matches
      				 (not as useful, relegated to -Wall)
      87fe9c34
    • simonm's avatar
      [project @ 1998-02-02 13:30:57 by simonm] · 70592f1b
      simonm authored
      add section about breaking recursion between modules.
      70592f1b
  20. 30 Jan, 1998 1 commit