- 04 Oct, 2001 2 commits
- 03 Oct, 2001 12 commits
-
-
simonpj authored
Add comments, and nuke strictness info in CoreTidy if totally boring
-
rrt authored
Dear Sigbjorn, next time you turn an if...endif into an if...else..endif remember to check the sense of the test. Sometimes, it needs to be reversed (there was in this case a hint in the surrounding code). Love, Reuben.
-
simonpj authored
wibbles only
-
simonpj authored
--------------------- Clear up infelicities --------------------- CorePrep, CoreUtils, SimplUtils LiberateCase (wibbles only) * Previously CorePrep was floating LocalIds to top level, which breaks the invariant that after CorePrep all top level Ids are GlobalIds. But it didn't really need to, and this pass makes it so. It's much tidier now. * Make CorePrep do eta expansion on partial applications x = foldr f y ==> x = \ys -> foldr f y ys (This used to be done in the simplifier, but now the simplifier only eta expands where there is at least one lambda already.) * Omit CoreUtils.etaReduce. (Never called.) * Improve CoreUtils.etaExpand, so that it doesn't add gratuitous beta redexes.
-
simonpj authored
---------------------------------------------- Output curried functions for data constructors ---------------------------------------------- (incomplete) The idea here is to output code for the *curried* version of the worker of a data constructor, so that the worker can be treated as a first-class citizen elsewhere in the compiler. In particular, it doesn't need to be a "hasNoBinding" thing, which are the subject of a number of nasty hacks. These changes only do the business for the code gen route via AbstractC. Remaining to do: the byte code generator. Idea: move the byte-code gen to STG code, and inject the curried data-constructor workers at the STG stage. I hope the changes here won't make anything stop working. For now, constructor workers remain "hasNoBinding" things. CgConTbls, CodeGen, CoreTidy, CoreToStg
-
simonmar authored
Tidy up ghc/includes/Constants and related things. Now all the constants that the compiler needs to know, such as header size, update frame size, info table size and so on are generated automatically into a header file, DeriviedConstants.h, by a small C program in the same way as NativeDefs.h. The C code in the RTS is expected to use sizeof() directly (it already does). Also tidied up the constants in MachDeps.h - all the constants representing the sizes of various types are named SIZEOF_<foo>, to match the constants defined in config.h. PrelStorable.lhs now doesn't contain any special knowledge about GHC's conventions as regards the size of certain types, this is all in MachDeps.h.
-
simonpj authored
------------------------------------------- Don't bomb out on inlining big constructors ------------------------------------------- The unfolder bombs out if the expression get too big; no point in computing its exact size when it's vast. But for *constructors* applied to a lot of args, it's worth keeping going, because we get a big *disount* too $fFooInt = :CFoo a1 a2 a3 ... a50 We want to keep the inlining for $fFooInt in interface files, so that importing guys can do the selection. Solution: only bomb out when size-discount gets too big.
-
rrt authored
This file shouldn't be in the repository any more (there's a PrelGHC.hi-boot.pp). Why is it only me that notices these phantom leftovers? Why don't they cause problems for other people?
-
sewardj authored
In the interactive FFI, handle f-i'd fns which return char.
-
rrt authored
Remove import of unDosifyPath, and the comment saying that it is used.
-
simonmar authored
minor wibble: use Maybe.isJust rather than maybeToBool
-
simonmar authored
Don't print the "compilation IS NOT required" in quiet mode (-v0).
-
- 02 Oct, 2001 5 commits
-
-
sof authored
field: robustify - give a parse error (rather than p-match failure) if LHS isn't known.
-
simonpj authored
Wibble in eqString
-
sewardj authored
Fix spurious sp increment in RET_{VEC_}_SMALL printing code. MERGE TO STABLE
-
simonpj authored
Dont try to float unboxed things to top level
-
simonmar authored
Add a FAQ entry about using getContents in GHCi.
-
- 01 Oct, 2001 19 commits
-
-
simonpj authored
ILX ifdefery
-
rrt authored
Various updates to track the state of GHC and ILX.
-
rrt authored
Track reality a bit.
-
rrt authored
Implement -keep-il-file.
-
rrt authored
Implement -keep-il-file
-
rrt authored
Add -keep-il-file.
-
rrt authored
PrelGHC.dll -> PrelGHC.i_o, and a few other corrections to follow changes to ILX.
-
rrt authored
Reflect reality ever-so-slightly better.
-
rrt authored
Remove unused import.
-
rrt authored
Removed unused imports.
-
rrt authored
Get rid of \rs at the end of lines in prescripts and postscripts to work around Windows dodginess.
-
simonmar authored
Export run_queue_hd to the dynamic linker; TkHaskell has a grotesque hack which requires it.
-
simonmar authored
Allow default RTS options to be specified by linking in an object file which defines the symbol `ghc_rts_opts' to point to a string of RTS options. This is preferred to using defaultsHook(), if possible. Perhaps we could remove defaultsHook(). (won't work with DLL's; if we ever ressurrect them we'll have to deal with this somehow).
-
simonmar authored
Actually bomb out with an error message if the maximum heap size is smaller than the minimum allocation area size.
-
simonmar authored
Fix a bug in the heap size calculation, where a negative result wasn't noticed because we're working with unsigned types. We now explicitly test that the heap has enough room for the minimum allocation area size, otherwise a heap overflow is reported.
-
simonpj authored
--------------------------- Match rules before inlining --------------------------- This commit fulfils a long-standing wish by Manuel that RULES matching occurs before inlining. So if a RULE matches, it'll get used, even if the function can also be inlined. It's a bit dodgy to actually rely on this, because maybe the rule doesn't match *yet* but will do after a bit more transformation. But it does help with things like class operations. Class ops are simply selectors which pick a method out of a dictionary, so they are inlined rather vigorously. But we might want a RULE for a class method (e.g. (==) [Char] = eqString), and such rules would practically never fire if inlining took priority.
-
simonpj authored
Stuff to make a RULE work for eqString "foo" "foo" = True (etc.) The rule is of course a BuiltinRule in PrelRules
-
simonpj authored
Add a rule for equality on strings
-
simonpj authored
Fix a long-standing lossage of rules attached to class operations (A one-line fix to SimplCore.updateBinders.)
-
- 28 Sep, 2001 2 commits
-
-
sof authored
Rename 'doDiscard' to 'lexPragma', and make it EOF-resistant. As was, it would run off the end of a StringBuffer (and SIGSEGV, most likely) if a pragma wasn't properly closed.
-
sof authored
Provide finer-grained control for turning off mk/target.mk's 'all', 'boot' and 'install' rules. i.e., instead of having the variable NO_ALL_TARGETS control the defnition of rules for all three, NO_ALL_TARGET, NO_BOOT_TARGET, and NO_INSTALL_TARGET lets you individually control which ones you don't want. Sub-projects (GC and HDirect, for example) have the need to turn off the 'boot' rule, which is what motivated this change.
-