1. 18 Jun, 2011 4 commits
  2. 15 Dec, 2010 1 commit
  3. 12 Nov, 2010 1 commit
  4. 09 Sep, 2010 1 commit
  5. 30 Mar, 2010 1 commit
  6. 27 Feb, 2010 1 commit
  7. 31 Dec, 2009 1 commit
    • Simon Marlow's avatar
      Rolling back: Make FastString thread-safe. · 479b0241
      Simon Marlow authored
          
      This patch was the cause of the compile-time performance regression in
      #3796.  My guess is that it is due to the use of unsafePerformIO which
      traverses the stack up to the first update frame, and perhaps we have
      a deep stack when reading the dictionary from a .hi file.  In any
      case, since we're not relying on thread safety for FastStrings, I
      think the safest thing to do is back this out until we can investigate
      further.
      479b0241
  8. 24 Aug, 2009 1 commit
    • Thomas Schilling's avatar
      Make FastString thread-safe. · 738f7078
      Thomas Schilling authored
        
      This is needed both for per-session parallelism and for allowing
      multiple concurrent sessions in the same process.  With the help of
      atomicModifyIORef and unsafePerformIO it is also quite fast--an MVar
      would most likely be slower.  On a full compilation of Cabal's head
      branch it was about 1-2 percent slower, but then overall compilation
      times varied by about 4 percent, so I think it's worth it.
      738f7078
  9. 29 May, 2009 1 commit
  10. 24 Apr, 2009 1 commit
  11. 31 Jul, 2008 1 commit
  12. 16 Jul, 2008 1 commit
  13. 10 Jul, 2008 1 commit
  14. 20 Jun, 2008 1 commit
  15. 22 Apr, 2008 1 commit
  16. 12 Apr, 2008 1 commit
  17. 29 Mar, 2008 1 commit
  18. 18 Feb, 2008 2 commits
  19. 17 Jan, 2008 1 commit
    • Isaac Dupree's avatar
      lots of portability changes (#1405) · 206b4dec
      Isaac Dupree authored
      re-recording to avoid new conflicts was too hard, so I just put it
      all in one big patch :-(  (besides, some of the changes depended on
      each other.)  Here are what the component patches were:
      
      Fri Dec 28 11:02:55 EST 2007  Isaac Dupree <id@isaac.cedarswampstudios.org>
        * document BreakArray better
      
      Fri Dec 28 11:39:22 EST 2007  Isaac Dupree <id@isaac.cedarswampstudios.org>
        * properly ifdef BreakArray for GHCI
      
      Fri Jan  4 13:50:41 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
        * change ifs on __GLASGOW_HASKELL__ to account for... (#1405)
        for it not being defined. I assume it being undefined implies
        a compiler with relatively modern libraries but without most
        unportable glasgow extensions.
      
      Fri Jan  4 14:21:21 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
        * MyEither-->EitherString to allow Haskell98 instance
      
      Fri Jan  4 16:13:29 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
        * re-portabilize Pretty, and corresponding changes
      
      Fri Jan  4 17:19:55 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
        * Augment FastTypes to be much more complete
      
      Fri Jan  4 20:14:19 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
        * use FastFunctions, cleanup FastString slightly
      
      Fri Jan  4 21:00:22 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
        * Massive de-"#", mostly Int# --> FastInt (#1405)
      
      Fri Jan  4 21:02:49 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
        * miscellaneous unnecessary-extension-removal
      
      Sat Jan  5 19:30:13 EST 2008  Isaac Dupree <id@isaac.cedarswampstudios.org>
        * add FastFunctions
      206b4dec
  20. 04 Sep, 2007 1 commit
  21. 03 Sep, 2007 1 commit
  22. 01 Sep, 2007 1 commit
  23. 10 Aug, 2007 1 commit
  24. 07 Aug, 2007 1 commit
  25. 06 Aug, 2007 1 commit
  26. 07 Aug, 2007 1 commit
  27. 05 Jun, 2007 1 commit
    • Isaac Dupree's avatar
      remove #if branches for pre-ghc-6.0 · 9f589efb
      Isaac Dupree authored
      I skipped utils/hsc2hs/Main.hs since its ifs also involved
      checking for old versions of nhc98 (I don't want to figure that out),
      but removed everything else I found relating to building with pre-6.0
      9f589efb
  28. 09 May, 2007 1 commit
  29. 07 Apr, 2006 1 commit
    • Simon Marlow's avatar
      Reorganisation of the source tree · 0065d5ab
      Simon Marlow authored
      Most of the other users of the fptools build system have migrated to
      Cabal, and with the move to darcs we can now flatten the source tree
      without losing history, so here goes.
      
      The main change is that the ghc/ subdir is gone, and most of what it
      contained is now at the top level.  The build system now makes no
      pretense at being multi-project, it is just the GHC build system.
      
      No doubt this will break many things, and there will be a period of
      instability while we fix the dependencies.  A straightforward build
      should work, but I haven't yet fixed binary/source distributions.
      Changes to the Building Guide will follow, too.
      0065d5ab
  30. 09 Feb, 2006 1 commit
  31. 08 Feb, 2006 1 commit
  32. 10 Jan, 2006 1 commit
  33. 09 Jan, 2006 1 commit
    • simonmar's avatar
      [project @ 2006-01-09 13:25:50 by simonmar] · 5d8f5e00
      simonmar authored
      Fix up to compile with GHC 5.04.x again.
      
      Also includes a fix for a memory error I discovered along the way:
      should fix the "scavenge_one" crash in the stage2 build of recent
      HEADs.
      5d8f5e00
  34. 06 Jan, 2006 1 commit
    • simonmar's avatar
      [project @ 2006-01-06 16:30:17 by simonmar] · 9d7da331
      simonmar authored
      Add support for UTF-8 source files
      
      GHC finally has support for full Unicode in source files.  Source
      files are now assumed to be UTF-8 encoded, and the full range of
      Unicode characters can be used, with classifications recognised using
      the implementation from Data.Char.  This incedentally means that only
      the stage2 compiler will recognise Unicode in source files, because I
      was too lazy to port the unicode classifier code into libcompat.
      
      Additionally, the following synonyms for keywords are now recognised:
      
        forall symbol 	(U+2200)	forall
        right arrow   	(U+2192)	->
        left arrow   		(U+2190)	<-
        horizontal ellipsis 	(U+22EF)	..
      
      there are probably more things we could add here.
      
      This will break some source files if Latin-1 characters are being used.
      In most cases this should result in a UTF-8 decoding error.  Later on
      if we want to support more encodings (perhaps with a pragma to specify
      the encoding), I plan to do it by recoding into UTF-8 before parsing.
      
      Internally, there were some pretty big changes:
      
        - FastStrings are now stored in UTF-8
      
        - Z-encoding has been moved right to the back end.  Previously we
          used to Z-encode every identifier on the way in for simplicity,
          and only decode when we needed to show something to the user.
          Instead, we now keep every string in its UTF-8 encoding, and
          Z-encode right before printing it out.  To avoid Z-encoding the
          same string multiple times, the Z-encoding is cached inside the
          FastString the first time it is requested.
      
          This speeds up the compiler - I've measured some definite
          improvement in parsing at least, and I expect compilations overall
          to be faster too.  It also cleans up a lot of cruft from the
          OccName interface.  Z-encoding is nicely hidden inside the
          Outputable instance for Names & OccNames now.
      
        - StringBuffers are UTF-8 too, and are now represented as
          ForeignPtrs.
      
        - I've put together some test cases, not by any means exhaustive,
          but there are some interesting UTF-8 decoding error cases that
          aren't obvious.  Also, take a look at unicode001.hs for a demo.
      9d7da331
  35. 12 Aug, 2005 2 commits
    • simonpj's avatar
      [project @ 2005-08-12 14:43:04 by simonpj] · fc0c93a9
      simonpj authored
      Fix typos
      fc0c93a9
    • simonmar's avatar
      [project @ 2005-08-12 12:36:59 by simonmar] · 0066307c
      simonmar authored
      Use a better string hash: the previous one only took into account 3
      characters from the string (0, N/2, N), leading to some bad collisions
      with lots of similar strings (eg. local names generated by the
      compiler).  Worse, it had a bug in the N==2 case, which meant that it
      ignored one of the characters in the string completely.
      
      We now traverse the whole string, using the algorithm from Data.Hash
      which seems to work reasonably well.
      
      For good measure, I quadrupled the size of the hash table too, from
      1000 to 4000 entries.
      0066307c