- 11 Sep, 2000 9 commits
-
-
rrt authored
Implemented gettimeofday on Windows by calling GetTickCount(). This only seems to have a resolution of 1/100s, but that's just about OK for threadDelay, which only needs 50 ticks per second.
-
rrt authored
Pass --target to configure of GMP, so that building for mingwin under cygwin works properly.
-
rrt authored
Make sure windows.h is always checked for, not just when HOpenGL is present.
-
rrt authored
Revised GHC installer size downwards.
-
rrt authored
Removed Windows FAQ about -static no longer being supported (it is).
-
sewardj authored
First shot at a STG interpreter for GHCI. Translates Stg syntax into a form convenient for interpretation, and can then run that. Most of the translation stuff is there and works. The interpreter framework is there and partly filled in, and seems to work. There are still quite a lot of cases, etc, to fill in, but this should be straightforward given that the framework exists. This interpreter cannot handle (yet?) unboxed tuples, but can deal with more or less everything else, including standard unboxed Int, Double, etc, code.
-
sewardj authored
Initial primop support for the metacircular interpreter (GHCI). Only appears if you compile with -DGHCI; if not, the world is unchanged. new primops: indexPtrOffClosure# indexWordOffClosure# modified: dataToTag# -- now dereferences indirections before extracting tag new entry code mci_constr_entry and mci_constr[1..8]entry being the direct and vectored return code fragments for interpreter created constructors. Support for static constructors is not yet done. New handwritten .hc functions: mci_make_constr* being code to create various flavours of constructors from args on the stack. An interface file to describe these will follow in a later commit.
-
simonmar authored
HP-PA fixes from Eric Schweitz <schweitz@nortelnetworks.com>
-
simonpj authored
Remove redundant setNoDiscardId call from Specialise.newIdSM
-
- 10 Sep, 2000 1 commit
-
-
panne authored
First (awkward) steps towards an HOpenGL integration
-
- 08 Sep, 2000 3 commits
- 07 Sep, 2000 14 commits
-
-
simonpj authored
A list of simplifier-related stuff, triggered by looking at GHC's performance. I don't guarantee that this lot will lead to a uniform improvement over 4.08, but it it should be a bit better. More work probably required. * Make the simplifier's Stop continuation record whether the expression being simplified is the RHS of a thunk, or (say) the body of a lambda or case RHS. In the thunk case we want to be a bit keener about inlining if the type of the thunk is amenable to update in place. * Fix interestingArg, which was being too liberal, and hence doing too much inlining. * Extended CoreUtils.exprIsCheap to make two more things cheap: - case (coerce x) of ... - let x = y +# z This makes a bit more eta expansion happen. It was provoked by a program of Marcin's. * MkIface.ifaceBinds. Make sure that we emit rules for things (like class operations) that don't get a top-level binding in the interface file. Previously such rules were silently forgotten. * Move transformRhs to *after* simplification, which makes it a little easier to do, and means that the arity it computes is readily available to completeBinding. This gets much better arities. * Do coerce splitting in completeBinding. This gets good code for newtype CInt = CInt Int test:: CInt -> Int test x = case x of 1 -> 2 2 -> 4 3 -> 8 4 -> 16 _ -> 0 * Modify the meaning of "arity" so that during compilation it means "if you apply this function to fewer args, it will do virtually no work". So, for example f = coerce t (\x -> e) has arity at least 1. When a function is exported, it's arity becomes the number of exposed, top-level lambdas, which is subtly different. But that's ok. I removed CoreUtils.exprArity altogether: it looked only at the exposed lambdas. Instead, we use exprEtaExpandArity exclusively. All of this makes I/O programs work much better.
-
simonpj authored
* The simplifier used to glom together all the top-level bindings into a single Rec every time it was invoked. The reason for this is explained in SimplCore.lhs, but for at least one simple program it meant that the simplifier never got around to unravelling the recursive group into non-recursive pieces. So I've put the glomming under explicit flag control with a -fglom-binds simplifier pass. A side benefit is that because it happens less often, the (expensive) SCC algorithm runs less often.
-
simonpj authored
Omit unnecessary import
-
simonpj authored
Do the begin-pass/end-pass stuff like the other core passes
-
simonpj authored
Add comment
-
simonpj authored
Add an access function substEnvEnv
-
simonpj authored
Get the worker and wrapper in the right order
-
simonpj authored
Primitives can return ThreadId# values
-
simonpj authored
1) Fix a bad bug in Subst.lhs that made uniqAway go into an infinite loop when the 'hash code' in the in-scope set was zero. 2) Rename BasicTypes.isFragileOccInfo to isFragileOcc Add isDeadOcc to BasisTypes (2) is just a tidy-up. I have to commit it now because of (1), which is a bad bug. I hope that I've committed all the files involved in (2).
-
rrt authored
Added support for building gmp.dll again.
-
rrt authored
Gave version of RedHat in DocBook note.
-
rrt authored
Added note on how to fix RedHat 6.2 DocBook installation.
-
simonpj authored
Improve -ddump-types
-
simonpj authored
* Make the desugarer use string equality for string literal patterns longer than 1 character. And put a specialised eqString into PrelBase, with a suitable specialisation rule. This makes a huge difference to the size of the code generated by deriving(Read) notably in Time.lhs
-
- 06 Sep, 2000 10 commits
-
-
simonmar authored
revert accidental parts of previous commit
-
simonmar authored
add test for typedef-conflict with f.i.d.
-
simonmar authored
Generate a new unique to be used in the typedef for a f.i.d., rather than re-using the one from the function call, which might conflict if there are two similar calls in the same module.
-
simonmar authored
Document -unreg and unregisterised compilation. Untested since our DocBook installation is currently broken.
-
simonmar authored
When compiling code for a case where the scrutinee is a primitve comparison operator, we used to place the tag in a variable whose unique was always the same: `mkPseudoUnique1 1'. This was mostly harmless but confused the Stix inliner in the NCG into generating slightly less efficient code when the variable was used twice in a basic block. This patch fixes the problem by generating a new unique by just changing the "tag" of an existing unique, namely the case binder.
-
rrt authored
Corrected URL for release notes.
-
rrt authored
Made message for exceeding 128Mb of heap on Windows more helpful, and only abort when this limit is exceeded, not on first memory allocation!
-
simonmar authored
Add codegen test for returning MutVar#.
-
simonmar authored
Add new PrimRep, namely PrimPtrRep, as a catch-all for the various boxed primitive types that currently don't have their own PrimReps. Use this for MVar# and MutVar#. This fixes a crash in the code generator when a function returns one of these types.
-
simonmar authored
recode primOpOkForSpeculation in terms of primOpIsCheap and primOpCanFail.
-
- 05 Sep, 2000 3 commits