1. 24 Sep, 2009 1 commit
  2. 18 Sep, 2009 1 commit
  3. 16 Sep, 2009 1 commit
  4. 17 Sep, 2009 2 commits
  5. 15 Sep, 2009 1 commit
  6. 11 Sep, 2009 2 commits
  7. 10 Sep, 2009 1 commit
    • Simon Marlow's avatar
      Change the representation of the package database · 930421d4
      Simon Marlow authored
       - the package DB is a directory containing one file per package
         instance (#723)
      
       - there is a binary cache of the database (#593, #2089)
      
       - the binary package is now a boot package
      
       - there is a new package, bin-package-db, containing the Binary
         instance of InstalledPackageInfo for the binary cache.
      
      Also included in this patch
      
       - Use colour in 'ghc-pkg list' to indicate broken or hidden packages
        
         Broken packages are red, hidden packages are 
        
         Colour support comes from the terminfo package, and is only used when
          - not --simple-output
          - stdout is a TTY
          - the terminal type has colour capability
      
       - Fix the bug that 'ghc-pkg list --user' shows everything as broken
      930421d4
  8. 08 Sep, 2009 1 commit
    • Simon Marlow's avatar
      Add -package-id, improve package shadowing behaviour and error messages · 03bb97e0
      Simon Marlow authored
      A few changes bundled together here:
      
       - Add -package-id flag, like -package but takes an
         InstalledPackageId as an argument (mainly for Cabal)
         (docs to follow)
      
       - Fix the shadowing behaviour: if we end up with
         two packages with the same name/version that came from
         different package databases, then one will shadow the
         other.  This may mean we have to disable other packages
         that depended on the now-shadowed package.  Lots of
         refactoring to ensure that we can get reasonable diagnostics when
         this happens
      
      <command line>: cannot satisfy -package shadowdep: 
          shadowdep-1-XXX is unusable due to missing or recursive dependencies:
            shadow-1-XXX
          (use -v for more information)
      03bb97e0
  9. 26 Aug, 2009 1 commit
  10. 29 Aug, 2009 1 commit
    • Simon Marlow's avatar
      Unify event logging and debug tracing. · a5288c55
      Simon Marlow authored
        - tracing facilities are now enabled with -DTRACING, and -DDEBUG
          additionally enables debug-tracing.  -DEVENTLOG has been
          removed.
      
        - -debug now implies -eventlog
      
        - events can be printed to stderr instead of being sent to the
          binary .eventlog file by adding +RTS -v (which is implied by the
          +RTS -Dx options).
      
        - -Dx debug messages can be sent to the binary .eventlog file
          by adding +RTS -l.  This should help debugging by reducing
          the impact of debug tracing on execution time.
      
        - Various debug messages that duplicated the information in events
          have been removed.
      a5288c55
  11. 24 Aug, 2009 2 commits
  12. 20 Aug, 2009 1 commit
  13. 21 Aug, 2009 1 commit
  14. 20 Aug, 2009 2 commits
    • simonpj@microsoft.com's avatar
      Improvements to record puns, wildcards · d64022dc
      simonpj@microsoft.com authored
      * Make C { A.a } work with punning, expanding to C { A.a = a }
      
      * Make it so that, with -fwarn-unused-matches, 
              f (C {..}) = x
        does not complain about the bindings introduced by the "..".
      
      * Make -XRecordWildCards implies -XDisambiguateRecordFields.
      
      * Overall refactoring of RnPat, which had become very crufty. 
        In particular, there is now a monad, CpsRn, private to RnPat,
        which deals with the cps-style plumbing.  This is why so many
        lines of RnPat have changed.
      
      * Refactor the treatment of renaming of record fields into two passes
      	- rnHsRecFields1, used both for patterns and expressions,
      	     which expands puns, wild-cards
        	- a local renamer in RnPat for fields in patterns
      	- a local renamer in RnExpr for fields in construction and update
        This make it all MUCH easier to understand
       
      * Improve documentation of record puns, wildcards, and disambiguation
      d64022dc
    • Simon Marlow's avatar
      Make -dynamic a proper way, so we read the .dyn_hi files · 740618f2
      Simon Marlow authored
      Also, I cleaned up some of the way-related infrastructure, removing
      two global variables.  
      
      There's more that could be done here, but it's a start.  The way flags
      probably don't need to be static any more.
      740618f2
  15. 19 Aug, 2009 1 commit
  16. 18 Aug, 2009 2 commits
  17. 17 Aug, 2009 1 commit
    • Thomas Schilling's avatar
      Make access to NameCache atomic. Sometimes needs a lock. · 9f68c348
      Thomas Schilling authored
      'readBinIface' updates the name cache in a way that is hard to use
      with atomicModifyIORef, so this patch introduces a lock for this case.
      All other updates use atomicModifyIORef.
      
      Having a single lock is quite pessimistic, so it remains to be seen
      whether this will become a problem.  In principle we only need to make
      sure that we do not load the same file concurrently (or that it's
      idempotent).  In practice we also need to ensure that concurrent reads
      do not cancel each other out (since the new NameCache may be based on
      an outdated version).
      9f68c348
  18. 16 Aug, 2009 1 commit
    • Thomas Schilling's avatar
      Make updates to the Finder caches atomic. Well, almost. · f391c6e6
      Thomas Schilling authored
      Flushing and uncaching a single module is not completely atomic since
      both caches a cleared separately.  However, flushing is only done when
      changing the working directory which shouldn't be done concurrently to
      other threads.  Uncaching is only done in 'summariseModule' which
      requires some more work to become thread-safe anyway.
      f391c6e6
  19. 09 Aug, 2009 1 commit
  20. 02 Aug, 2009 2 commits
    • Simon Marlow's avatar
      Deprecate the -#include flag · d787ad2f
      Simon Marlow authored
      d787ad2f
    • Simon Marlow's avatar
      RTS tidyup sweep, first phase · a2a67cd5
      Simon Marlow authored
      The first phase of this tidyup is focussed on the header files, and in
      particular making sure we are exposinng publicly exactly what we need
      to, and no more.
      
       - Rts.h now includes everything that the RTS exposes publicly,
         rather than a random subset of it.
      
       - Most of the public header files have moved into subdirectories, and
         many of them have been renamed.  But clients should not need to
         include any of the other headers directly, just #include the main
         public headers: Rts.h, HsFFI.h, RtsAPI.h.
      
       - All the headers needed for via-C compilation have moved into the
         stg subdirectory, which is self-contained.  Most of the headers for
         the rest of the RTS APIs have moved into the rts subdirectory.
      
       - I left MachDeps.h where it is, because it is so widely used in
         Haskell code.
       
       - I left a deprecated stub for RtsFlags.h in place.  The flag
         structures are now exposed by Rts.h.
      
       - Various internal APIs are no longer exposed by public header files.
      
       - Various bits of dead code and declarations have been removed
      
       - More gcc warnings are turned on, and the RTS code is more
         warning-clean.
      
       - More source files #include "PosixSource.h", and hence only use
         standard POSIX (1003.1c-1995) interfaces.
      
      There is a lot more tidying up still to do, this is just the first
      pass.  I also intend to standardise the names for external RTS APIs
      (e.g use the rts_ prefix consistently), and declare the internal APIs
      as hidden for shared libraries.
      a2a67cd5
  21. 03 Aug, 2009 1 commit
  22. 29 Jul, 2009 1 commit
  23. 28 Jul, 2009 1 commit
    • Simon Marlow's avatar
      Be a bit more sensible about choosing external OccNames · 4fa65a12
      Simon Marlow authored
      Instead of chr_$wchr, we now just get $wchr.  In general, when an
      OccName is system-generated, we leave it out of the final external
      name, preferring to use the name of the exported parent instead (which
      is necessarily a user-written name).
      
      Names should be no less deterministic, but should be shorter and more
      readable.
      4fa65a12
  24. 26 Jul, 2009 2 commits
  25. 25 Jul, 2009 1 commit
  26. 24 Jul, 2009 1 commit
  27. 23 Jul, 2009 4 commits
  28. 20 Jul, 2009 2 commits
    • Simon Marlow's avatar
      remove unused $(HscIfaceFileVersion) · 872bd77d
      Simon Marlow authored
      872bd77d
    • Simon Marlow's avatar
      Choose external names more predictably · fa9f1e20
      Simon Marlow authored
      Now, for a compiler-generated binding "x", if "x" is referred to by
      the exported "f", then it will be named "f_x" rather than something
      like "x23".  This means that hopefully
      
        - compilation will more often product the same results given the
          same input (the choice of names is not dependent on the
          non-deterministic order of bindings within the compiler).
      
        - less recompilation will be necessary after making changes
      
        - navigating Core might be a bit easier.
      
      unfortunately, compilation with -O still does not consistently produce
      the same ABI.  The simplifier sometimes does different things,
      apparently.
      
      Names will be longer, but I can't see a way around that.
      fa9f1e20
  29. 19 Jul, 2009 1 commit