summaryrefslogtreecommitdiff
path: root/compiler/utils/FastString.lhs
Commit message (Collapse)AuthorAgeFilesLines
* GHC 7.4 is now required for building HEADIan Lynagh2012-07-201-4/+0
|
* Small refactoring for FastZStringsIan Lynagh2012-07-151-2/+23
|
* Define FastString on top of FastBytesIan Lynagh2012-07-151-16/+15
| | | | | | Although we currently break the abstraction a lot in the FastString operations, this is a step towards ultimately being able to replace FastBytes with ByteString.
* Rename a variable to avoid name conflicts in haddockIan Lynagh2012-07-151-1/+1
|
* Small refactoringIan Lynagh2012-07-151-4/+1
|
* Add a separate FastZString typeIan Lynagh2012-07-151-119/+49
| | | | | | | | | FastStrings are now always UTF8-encoded. There's no StringTable for FastZString, but I don't think one is needed. We only ever make a FastZString by running zEncodeFS on a FastString, and the FastStrings are shared via the FastString StringTable, so we get the same FastZString from the IORef.
* Redefine appendFS in terms of appendFBIan Lynagh2012-07-141-12/+4
| | | | | | I think the old definition had a bug, although it probably never actually bit us: It used lengthFS to work out how large the arguments where, but lengthFS returns the number of characters, not bytes.
* HsStringPrim now contains FastBytes, not FastStringIan Lynagh2012-07-141-1/+19
|
* Implement FastBytes, and use it for MachStrIan Lynagh2012-07-141-4/+71
| | | | | | | | | | | | | This is a first step on the way to refactoring the FastString type. FastBytes currently has no unique, mainly because there isn't currently a nice way to produce them in Binary. Also, we don't currently do the "Dictionary" thing with FastBytes in Binary. I'm not sure whether this is important. We can change both decisions later, but in the meantime this gets the refactoring underway.
* Remove a redundant importIan Lynagh2012-06-161-1/+0
|
* Remove a workaround for building with GHC 6.9Ian Lynagh2012-06-161-4/+0
|
* Snapshot of codegen refactoring to share with simonpjSimon Marlow2011-08-251-0/+1
|
* SafeHaskell: Make base GHC.* modules untrustedDavid Terei2011-06-171-3/+2
|
* SafeHaskell: Fix imports of base when base unsafeDavid Terei2011-06-171-1/+2
|
* SafeHaskell: Fix validation errors when Safe base used.David Terei2011-06-171-0/+5
|
* SafeHaskell: Even more fixing to work with safe baseDavid Terei2011-06-171-1/+1
|
* SafeHaskell: Update to work with safe baseDavid Terei2011-06-171-1/+1
|
* Remove code that is dead now that we need >= 6.12 to buildIan Lynagh2010-12-151-4/+0
|
* Add LANGUAGE BangPatterns to modules that use themsimonpj@microsoft.com2010-11-121-0/+1
|
* avoid Foreign.unsafePerformIORoss Paterson2010-09-091-1/+1
|
* Add Data and Typeable instances to HsSynDavid Waern2010-03-301-1/+9
| | | | | The instances (and deriving declarations) have been taken from the ghc-syb package.
* a faster appendFSich@christoph-bauer.net2010-02-271-1/+12
|
* Rolling back: Make FastString thread-safe.Simon Marlow2009-12-311-45/+84
| | | | | | | | | | 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.
* Make FastString thread-safe.Thomas Schilling2009-08-241-84/+45
| | | | | | | | | 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.
* Changes for the new IO library, mainly base-package modules moving aroundSimon Marlow2009-05-291-1/+6
|
* Require a bang pattern when unlifted types are where/let bound; #3182Ian Lynagh2009-04-241-3/+3
| | | | | For now we only get a warning, rather than an error, because the alex and happy templates don't follow the new rules yet.
* Document FastString and rename strLength to lengthLSMax Bolingbroke2008-07-311-29/+35
|
* Get building GHC itself with Cabal more-or-less workingIan Lynagh2008-07-161-0/+4
| | | | | Installing and bindist creation don't work, but they were already broken. Only tested validating with one setup.
* Move some flags from the Makefile into module pragmasIan Lynagh2008-07-101-0/+4
|
* Remove code that isn't used now that we assume that GHC >= 6.4Ian Lynagh2008-06-201-4/+0
|
* Change the last few (F)SLIT's into (f)sLit'sIan Lynagh2008-04-221-2/+2
|
* Don't use CPP for SLIT/FSLITIan Lynagh2008-04-121-7/+25
|
* Don't import FastString in HsVersions.hIan Lynagh2008-03-291-3/+0
| | | | Modules that need it import it themselves instead.
* Fix warnings in FastString, and check for empty case in head/tailIan Lynagh2008-02-181-24/+28
|
* Whitespace onlyIan Lynagh2008-02-181-125/+126
|
* lots of portability changes (#1405)Isaac Dupree2008-01-171-15/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fix CodingStyle#Warnings URLsIan Lynagh2007-09-041-1/+1
|
* Use OPTIONS rather than OPTIONS_GHC for pragmasIan Lynagh2007-09-031-2/+2
| | | | | | | Older GHCs can't parse OPTIONS_GHC. This also changes the URL referenced for the -w options from WorkingConventions#Warnings to CodingStyle#Warnings for the compiler modules.
* Add {-# OPTIONS_GHC -w #-} and some blurb to all compiler modulesIan Lynagh2007-09-011-0/+7
|
* Follow Array changes (adding numElements field)Ian Lynagh2007-08-101-4/+7
|
* more cmpFS refactoringIsaac Dupree2007-08-071-9/+11
|
* use 'compare' when using the law of trichotomyIsaac Dupree2007-08-061-6/+4
|
* NOINLINE the global FastString.string_tableIsaac Dupree2007-08-071-0/+1
|
* remove #if branches for pre-ghc-6.0Isaac Dupree2007-06-051-15/+1
| | | | | | 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
* Store the constructor name in the info table in UTF-8Simon Marlow2007-05-091-0/+10
|
* Reorganisation of the source treeSimon Marlow2006-04-071-0/+499
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.