Skip to content
Snippets Groups Projects
  1. Jan 07, 2000
  2. Jan 06, 2000
  3. Jan 05, 2000
  4. Jan 04, 2000
    • Simon Peyton Jones's avatar
      [project @ 2000-01-04 17:40:46 by simonpj] · 5ca77490
      Simon Peyton Jones authored
      This commit arranges that literal strings will fuse
      nicely, by expressing them as an application of build.
      
      * NoRepStr is now completely redundant, though I havn't removed it yet.
      
      * The unpackStr stuff moves from PrelPack to PrelBase.
      
      * There's a new form of Rule, a BuiltinRule, for rules that
        can't be expressed in Haskell.  The string-fusion rule is one
        such.  It's defined in prelude/PrelRules.lhs.
      
      * PrelRules.lhs also contains a great deal of code that
        implements constant folding.  In due course this will replace
        ConFold.lhs, but for the moment it simply duplicates it.
      5ca77490
  5. Dec 29, 1999
  6. Dec 22, 1999
  7. Dec 21, 1999
  8. Dec 20, 1999
    • Jeff Lewis's avatar
      [project @ 1999-12-20 22:21:09 by lewie] · 1c155370
      Jeff Lewis authored
      Remove *uses* of unused IntAbsOp (see recent log message in prelude/PrimOp).
      1c155370
    • Simon Marlow's avatar
      [project @ 1999-12-20 17:07:05 by simonmar] · 4f79c6ac
      Simon Marlow authored
      Remove unused IntAbsOp
      4f79c6ac
    • Julian Seward's avatar
      [project @ 1999-12-20 16:55:26 by sewardj] · 0f92da17
      Julian Seward authored
      * Fix silly bugs in new linker, object.[ch].
      
      * Allow modules to have arbitrary numbers of "extra" object files
        as well as their primary object file.  Initial requirement is
        that Prelude needs libHS_cbits.o/.dll as well as Prelude.o
        module(m).object is the primary object
        module(m).objectExtras are the extra objects
        module(m).objectExtraNames :: [Text] are their names.
        Modify machdep.c to assume that extra objects for module M
        live in the same directory as M's primary object.
      
      * Stuff 130ish symbol names into the RTS symbol table, enough
        so that the whole Prelude can be linked.  That includes symbols
        in the C library needed by libHS_cbits.  This is very hacky
        and needs to be fixed properly.
      0f92da17
    • Simon Marlow's avatar
      [project @ 1999-12-20 14:38:30 by simonmar] · 8a20e269
      Simon Marlow authored
      3.02 hi-boot syntax wibble
      8a20e269
    • Simon Peyton Jones's avatar
      [project @ 1999-12-20 10:35:47 by simonpj] · 34a4921d
      Simon Peyton Jones authored
      Forgot to remove PrelNumExtra in the last commit
      34a4921d
    • Simon Peyton Jones's avatar
      [project @ 1999-12-20 10:34:27 by simonpj] · e921b2e3
      Simon Peyton Jones 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
    • Simon Peyton Jones's avatar
      [project @ 1999-12-20 10:18:36 by simonpj] · f7989a6d
      Simon Peyton Jones authored
      wibble
      f7989a6d
    • Simon Peyton Jones's avatar
      [project @ 1999-12-20 10:12:50 by simonpj] · ed974e41
      Simon Peyton Jones authored
      Fix a gotcha in the interface-file post processing that
      led to bizarre omissions from interface files when working
      with existential types.  That's what you get for using Perl
      ed974e41
  9. Dec 17, 1999
    • Julian Seward's avatar
      [project @ 1999-12-17 16:34:08 by sewardj] · 3e47ab23
      Julian Seward authored
      Reorganised object code loader/linker to make it much more modular and
      cleaner.  All the machinery is now in object.[ch].  This stuff is
      packaged up as close to a standalone library as I can reasonably get
      it -- in particular, it knows nothing about Hugs -- so that the linker
      could easily be used in some entirely different application with
      almost no changes, if we so desire.
      
      Minor mods to interface.c & storage.c to use the new linker API.
      3e47ab23
    • Simon Marlow's avatar
      [project @ 1999-12-17 15:25:02 by simonmar] · b711838e
      Simon Marlow authored
      Add netbsd to the list of platforms supported.
      
      ToDo: add info to the User's Guide once the Shiny New Documentation is
      committed.
      b711838e
  10. Dec 16, 1999
Loading