1. 27 Jun, 2001 1 commit
  2. 28 May, 2001 1 commit
    • simonmar's avatar
      [project @ 2001-05-28 13:57:19 by simonmar] · 2e63bea6
      simonmar authored
      When we auto-load a module because the user typed a qualified name at
      the prompt, we better not auto-load a home interface (because we won't
      have the code to go with it).
      
      So, introduce a new constructor in the WhereFrom datatype, namely
      ImportByCmdLine for these auto-imports, and make findAndReadIface fail
      if it tries to load a home interface by this route.
      
      ToDo: GHCi should *never* demand-load a home interface under any
      circumstances, but we don't have an ASSERT for this yet.
      2e63bea6
  3. 24 May, 2001 1 commit
  4. 12 Mar, 2001 1 commit
    • simonpj's avatar
      [project @ 2001-03-12 14:06:46 by simonpj] · 9fdd90b0
      simonpj authored
      ----------------
      	First cut at ILX
      	----------------
      
      This commit puts the ILX .NET code generator into the head.
      It's entirely untested, mind you.
      
      Some changes to the Module/Package strutures, mainly of a
      naming variety.  In particular:
      
      	Package	===> PackageConfig
      9fdd90b0
  5. 20 Nov, 2000 1 commit
    • sewardj's avatar
      [project @ 2000-11-20 17:42:00 by sewardj] · 96cf57e3
      sewardj authored
      Split HscResult into HscFail | HscNoRecomp | HscRecomp, and clean up
      producers and consumers of such.  In particular, if no recompilation
      happens, the resulting iface is put into the HIT instead of being
      thrown away.
      
      Also (trivial) unify functions *ModuleInThisPackage with *HomeModule.
      96cf57e3
  6. 16 Nov, 2000 1 commit
  7. 02 Nov, 2000 1 commit
  8. 30 Oct, 2000 1 commit
  9. 27 Oct, 2000 1 commit
  10. 25 Oct, 2000 1 commit
  11. 23 Oct, 2000 2 commits
  12. 19 Oct, 2000 1 commit
  13. 16 Oct, 2000 3 commits
  14. 13 Oct, 2000 1 commit
  15. 12 Oct, 2000 5 commits
  16. 11 Oct, 2000 1 commit
  17. 25 May, 2000 1 commit
    • simonpj's avatar
      [project @ 2000-05-25 12:41:14 by simonpj] · 495ef8bd
      simonpj authored
      ~~~~~~~~~~~~
      		Apr/May 2000
      		~~~~~~~~~~~~
      
      This is a pretty big commit!  It adds stuff I've been working on
      over the last month or so.  DO NOT MERGE IT WITH 4.07!
      
      Interface file formats have changed a little; you'll need
      to make clean before remaking.
      
      						Simon PJ
      
      Recompilation checking
      ~~~~~~~~~~~~~~~~~~~~~~
      Substantial improvement in recompilation checking.  The version management
      is now entirely internal to GHC.  ghc-iface.lprl is dead!
      
      The trick is to generate the new interface file in two steps:
        - first convert Types etc to HsTypes etc, and thereby
      	build a new ParsedIface
        - then compare against the parsed (but not renamed) version of the old
      	interface file
      Doing this meant adding code to convert *to* HsSyn things, and to
      compare HsSyn things for equality.  That is the main tedious bit.
      
      Another improvement is that we now track version info for
      fixities and rules, which was missing before.
      
      
      Interface file reading
      ~~~~~~~~~~~~~~~~~~~~~~
      Make interface files reading more robust.
        * If the old interface file is unreadable, don't fail. [bug fix]
      
        * If the old interface file mentions interfaces
          that are unreadable, don't fail. [bug fix]
      
        * When we can't find the interface file,
          print the directories we are looking in.  [feature]
      
      
      Type signatures
      ~~~~~~~~~~~~~~~
        * New flag -ddump-types to print type signatures
      
      
      Type pruning
      ~~~~~~~~~~~~
      When importing
      	data T = T1 A | T2 B | T3 C
      it seems excessive to import the types A, B, C as well, unless
      the constructors T1, T2 etc are used.  A,B,C might be more types,
      and importing them may mean reading more interfaces, and so on.
       So the idea is that the renamer will just import the decl
      	data T
      unless one of the constructors is used.  This turns out to be quite
      easy to implement.  The downside is that we must make sure the
      constructors are always available if they are really needed, so
      I regard this as an experimental feature.
      
      
      Elimininate ThinAir names
      ~~~~~~~~~~~~~~~~~~~~~~~~~
      Eliminate ThinAir.lhs and all its works.  It was always a hack, and now
      the desugarer carries around an environment I think we can nuke ThinAir
      altogether.
      
      As part of this, I had to move all the Prelude RdrName defns from PrelInfo
      to PrelMods --- so I renamed PrelMods as PrelNames.
      
      I also had to move the builtinRules so that they are injected by the renamer
      (rather than appearing out of the blue in SimplCore).  This is if anything simpler.
      
      Miscellaneous
      ~~~~~~~~~~~~~
      * Tidy up the data types involved in Rules
      
      * Eliminate RnEnv.better_provenance; use Name.hasBetterProv instead
      
      * Add Unique.hasKey :: Uniquable a => a -> Unique -> Bool
        It's useful in a lot of places
      
      * Fix a bug in interface file parsing for __U[!]
      495ef8bd
  18. 23 May, 2000 1 commit
    • simonpj's avatar
      [project @ 2000-05-23 11:35:36 by simonpj] · bb91427f
      simonpj authored
      *** MERGE WITH 4.07 (once I've checked it works) ***
      
      * Fix result type signatures.  Note that a consequential change is that
        an ordinary binding with a variable on the left
      	f = e
        is now treated as a FunMonoBind, not a PatMonoBind.  This makes
        a few things a bit simpler (eg rnMethodBinds)
      
      * Fix warnings for unused imports.  This meant moving where provenances
        are improved in RnNames.  Move mkExportAvails from RnEnv to RnNames.
      
      * Print module names right (small change in Module.lhs and Rename.lhs)
      
      * Remove a few unused bindings
        
      * Add a little hack to let us print info about join points that turn
        out not to be let-no-escaped.  The idea is to call them "$j" and report
        any such variables that are not let-no-escaped.
      
      * Some small things aiming towards -ddump-types (harmless but incomplete)
      bb91427f
  19. 08 May, 2000 1 commit
    • simonpj's avatar
      [project @ 2000-05-08 07:14:35 by simonpj] · cf58efc1
      simonpj authored
      Interface file reading
      ~~~~~~~~~~~~~~~~~~~~~~
      Make interface files reading more robust.  
        * If the old interface file is unreadable, don't fail. [bug fix]
      
        * If the old interface file mentions interfaces 
          that are unreadable, don't fail. [bug fix]
      
        * When we can't find the interface file, 
          print the directories we are looking in.  [feature]
      cf58efc1
  20. 28 Apr, 2000 1 commit
  21. 27 Apr, 2000 1 commit
  22. 14 Apr, 2000 1 commit
  23. 13 Apr, 2000 1 commit
    • simonpj's avatar
      [project @ 2000-04-13 11:56:35 by simonpj] · 9579283c
      simonpj authored
      Add support for 'packages'.
      
      * A package is a group of modules.
      
      * A package has a name (e.g. std)
      
      * A package is built into a single library (Unix; e.g. libHSstd.a)
                             or a single DLL     (Windows; e.g. HSstd.dll)
      
      * The '-package-name foo' flag tells GHC that the module being compiled
        is destined for package foo.
      
      * The '-package foo' flag tells GHC to make available modules
        from package 'foo'.  It replaces '-syslib foo' which is now deprecated.
      
      * Cross-package references cost an extra indirection in Windows,
        but not Unix
      
      * GHC does not maintain detailed cross-package dependency information.
        It does remember which modules in other packages the current module
        depends on, but not which things within those imported things.
      
      
      All of this tidies up the Prelude enormously.  The Prelude and
      Standard Libraries are built into a singl package called 'std'.  (This
      is a change; the library is now called libHSstd.a instead of libHS.a)
      9579283c
  24. 12 Apr, 2000 1 commit
  25. 10 Apr, 2000 1 commit
  26. 07 Apr, 2000 1 commit
    • simonpj's avatar
      [project @ 2000-04-07 15:24:15 by simonpj] · 5f990952
      simonpj authored
      * Make it so that interface files track dependencies on
        all modules except Prelude modules.
        (Was "library" modules, distinguished by a gross hack
         but that messed up StgHugs.)
      5f990952
  27. 18 Mar, 2000 1 commit
  28. 13 Jan, 2000 1 commit
    • hwloidl's avatar
      [project @ 2000-01-13 14:33:57 by hwloidl] · 1b28d4e1
      hwloidl authored
      Merged GUM-4-04 branch into the main trunk. In particular merged GUM and
      SMP code. Most of the GranSim code in GUM-4-04 still has to be carried over.
      1b28d4e1
  29. 23 Nov, 1999 1 commit
  30. 16 Sep, 1999 1 commit
  31. 15 Sep, 1999 1 commit
  32. 27 Aug, 1999 2 commits