- 21 Mar, 2001 2 commits
-
-
sewardj authored
Implement tagToEnum# for the bytecode system. Blargh. We spot tail-calls tagToEnum# <type> arg and emit code to push the arg, then do a bytecode test-sequence to determine what value it is, push the relevant constructor, and merge control flow again, at a label which does the normal tail-call sequence: slide the constructor down to the sequel and enter it. Blargyle, or as some would say, barferama.
-
sewardj authored
RTS support for the ugly tagToEnum# hack. Actually a very general thing -- just a bytecode unconditional jump, so we can do more general control-flow in BCOs.
-
- 20 Mar, 2001 18 commits
-
-
panne authored
SuSE's Version 7.1 once again broke DocBook, so as a last resort we use a home-made CATALOG. >:-(
-
simonmar authored
play quoting games to hopefully get this to build with both ghc-4.08.2 and ghc-4.11+.
-
simonmar authored
- add index terms - elaborate the description of the 'it' variable
-
simonmar authored
markup fix.
-
simonmar authored
Split the primitives section out into a separate file, and add a paragraph discouraging its use.
-
simonmar authored
- update documentation for SPECIALISE pragma - change upper-case markup to lower-case
-
simonmar authored
put the GHCi chapter before the "using GHC" chapter.
-
simonmar authored
update (no -optCrts -Rgc-timing, -no-link-chk)
-
simonmar authored
update (no more -optCrts)
-
simonmar authored
remove unnecessary parens
-
sewardj authored
Document new profiling options.
-
simonpj authored
------------------------------------- Be less keen about inlining primops ------------------------------------- Marcin pointed out that it's bad to take let x = a +# (b *# c) in x + f x + g x and inline x to get (a +# (b *# c)) + f (a +# (b *# c)) + g (a +# (b *# c)) Yet that's just what we were doing. The offending clause is in PrimOp.primOpIsCheap, which regards some primop applications as 'cheap' (and hence freely duplicable). For now, I've made it return False. Let's see what that does.
-
simonpj authored
Fix orphan calculation (again)
-
simonmar authored
add note about installing DocBook toolchain on FreeBSD
-
simonmar authored
a couple of micro-optimisations
-
simonmar authored
fix and elaborate the documentation for <literal>extra_libraries</literal>
-
simonmar authored
GHCi test update
-
simonmar authored
put the NUL terminator in the right place in stringToStringBuffer.
-
- 19 Mar, 2001 13 commits
-
-
sewardj authored
Don't create an installation-time Makefile (target binary-dist).
-
sewardj authored
Basic support for the simplified installation story.
-
simonpj authored
Comments only
-
simonpj authored
--------------------------------------------- Be more eager to inline for an applied coerce --------------------------------------------- Given this: (coerce T f) x y SimplUtils.interestingCallContext was returning False (uninteresting call context). This is wrong: it's a very intersting context. Darn those coerces! They are scheduled for destruction, but meanwhile, this makes matters a bit better.
-
simonpj authored
------------------------------------------------------- Be more careful about floating out from INLINE pragmas ------------------------------------------------------- Given this: x = __inline__ (f (g y)) we were floating the (g y) out as a MFE, thus: lvl = g y x = __inline__ (f lvl) This is bad. The (g y) redex gets outside the __inline__ envelope, and may never get inlined. The solution involved a bit of fiddling in SetLevels.
-
simonmar authored
Fix a problem with the 'it' variable in GHCi. New bindings for 'it' were getting confused with old bindings, because we always used the same 'it' name. Now, we generate a new unique for 'it' each time around. Also, make sure that any existing variables shadowed by new command-line bindings are correctly removed from the environments to avoid space leaks.
-
simonpj authored
------------------------------------ Be more gung-ho about INLINE pragmas ------------------------------------ When we see {-# INLINE f #-} f = g $ h should we inline f inside a lambda? Previously we said 'no' because f looks like a redex, but that's a great mistake sometimes. So this commit is more gung-ho: if you say INLINE that's what you get. The changes are to exprIsDupable and exprIsCheap.
-
simonmar authored
exprIsAtom shouldn't return True for an SCC.
-
simonpj authored
------------------------------- PS to: Improve orphan-module resolution ------------------------------- {This comment got missed out of the previous commit.} I also moved mkFinalIface from HscMain to MkIface, where it is much tidier. (This is related, because it's mkFinalIface that now sets mi_orphan.)
-
simonpj authored
Reorder the calls to tcSimplifyTop and tcCheckMain in TcModule. We must to tcCheckMain first, else we get a bogus complaint when compiling main = return () (Something about ambiguous monad.)
-
simonpj authored
------------------------------- Improve orphan-module resolution ------------------------------- Consider the following rule (and there are lots of these in the Prelude): fromIntegral T = fromIntegral_T where T is defined in the module being compiled. is an orphan. Of course it isn't, an declaring it an orphan would make the whole module an orphan module, which is bad. This commit arranges to determine orphan rules, and the orphan-hood of a module, much later than before. (Before mi_orphan was set by the renamer, now it is set by MkIface.)
-
simonpj authored
Update NOTES
-
simonmar authored
PutFullMVar went away
-
- 16 Mar, 2001 7 commits
-
-
qrczak authored
Use strerror instead of our own errno descriptions.
-
simonmar authored
Re-instate filtering of the CAF refs for recursive bindings. This may be the cause of GC being real slow on a bootstrapped compiler right now.
-
sewardj authored
prelude/PrimOp_HC_OPTS += -H80m at least until we figure out why ghc-5.0 is leaking space so badly.
-
simonmar authored
remove 4 old primops
-
simonmar authored
wibbles
-
simonmar authored
add -package lang
-
simonmar authored
remove bogus import
-