- Feb 11, 2000
-
-
Simon Peyton Jones authored
Add a few functions to Outputable
-
- Feb 10, 2000
-
-
Jeff Lewis authored
Fix a couple of Implicit Param wibbles.
-
Simon Peyton Jones authored
A few comments about RnIfaces.lookupFixity
-
- Feb 09, 2000
-
-
Jeff Lewis authored
Misc. fixes to implicit parameters support.
-
Julian Seward authored
More bug fixes resulting from trying to load small programs into Hugs using the GHC Prelude: -- Better handling of kinds on class method types. It's still a kludge (I reckon) but works well enough to correctly handle methods in Monad and Functor. See comment in startGHCClass() in interface.c. -- Add hugsprimReadField and hugsprimShowField. -- Make error be exported from the Prelude. For some reason, PrelErr.hi doesn't give a signature for error, so we have to fake it by copying that of hugsprimError. -- Handle fixity declarations read from interfaces. -- Set nameListMonad so that list comprehensions can be translated.
-
- Feb 08, 2000
-
-
Julian Seward authored
-- finishGHCClass(): fill in the .number fields for members in the correct order. -- Let nullary constructors be called via their _closure labels so they don't get heap-allocated.
-
Julian Seward authored
Add hugsprimError, hugsprimCompAux.
-
Julian Seward authored
Many bug fixes for object loading: -- create class symbol table entries more correctly -- find GHC-created info tables for names which are constructors -- add debugging machinery: :d <entity> and symbol-table printers
-
- Feb 07, 2000
-
-
Simon Marlow authored
I'm utterly bemused, but it seems that someone called simonpj disabled the virtual timer in rev 1.25: + #if 0 /* tmp--SDM */ initialize_virtual_timer(TICK_MILLISECS); + #endif and tried to blame it on me by putting my name in the comment :-) (Simon - perhaps you copied this file out of my working tree and committed it by mistake or something?)
-
- Feb 04, 2000
-
-
Julian Seward authored
Remove various -fvia-Cs, leaving the minimal required set (4 of them).
-
Julian Seward authored
GSQRT, GSIN, GCOS, GTAN: if result size is float (as opposed to double), truncate the result to that length by writing it into memory and getting it back again (duh!), since that's what gcc does.
-
Jeff Lewis authored
Fix a subtle bug in overlapping instances where a generic instance is sometimes chosen rather than a more specific one. See discussion at top of InstEnv for details.
-
Julian Seward authored
startGHCClass(): set the .dsels (superclass dsels) field.
-
Simon Marlow authored
Fix bug #2 in unregisterised RTS: forceIO had the same problem as catch#. This bug has been here for a long time, not sure why we haven't noticed it before. Jules: that should get you back on the road.
-
Simon Marlow authored
Fix bug #1 in the unregisterised RTS: Now that catch# is a fully-fledged IO operation, it has to respect the return convention for IO, in particular if we don't have an R1 (eg. when unregisterised) then the return value goes on the stack. The return convention could be better, after all we use R1 when returning normal values, but I'll just fix it for now.
-
- Feb 03, 2000
-
-
Julian Seward authored
Fix x86 NCG so the compiler can compile itself `-O': -- Implement fake x86 insn GITOD/GITOF. -- Implement primops ReadMutVarOp and WriteMutVarOp. -- Pro tem, disable use of %eax as a spill temp. -- Clarify wording of Rules of the Game comment in MachCode.
-
Julian Seward authored
Remember all the classes loaded from an object file group, and call visitClass on them at the end of processInterfaces(), so that the .level numbers on the class get calculated.
-
Julian Seward authored
Add hugsprimPmFail.
-
Julian Seward authored
-- Make default defaults work in combined mode -- rename some fns in lib/Prelude.hs to match names in HugsPrel.lhs
-
- Feb 02, 2000
-
-
Julian Seward authored
trivialCode on x86 is the heart of instruction selection for expressions. It is definitely a non-trivial in complexity. To generate correct code it needs to observe preserve several delicate invariants, but didn't. -- Recorded in MachCode.lhs the "Rules of the Game"; ie what I think the required invariants are. -- Completely rewrote trivialCode (also shift_code). I think it should handle all cases correctly, and has special treatment for literal operands. -- Updated NOTES file to record issues which need to be resolved before x86 nativeGen can be considered ready for public use.
-
- Feb 01, 2000
-
-
Julian Seward authored
Export findReservedRegs for all architectures.
-
Julian Seward authored
primOpStrictness(CatchOp): catch# isn't strict in its first arg.
-
Julian Seward authored
Double the number of RESERVED_C_STACK_BYTES so as to give the native code generator up to 508 spill slots.
-
Julian Seward authored
-- Cosmetic changes in register allocator. -- Implement macro HP_GEN_SEQ_NP. -- MachCode(trivialCode, x86): because one of the operands is also the destination (on this 2-address arch), it's invalid to sequence the code to compute the operands using asmParThen [code1, code2]. since the order of assignments matters. Fixed.
-
- Jan 31, 2000
-
-
Julian Seward authored
Spilling and x86 shift-code cleanups.
-
Simon Marlow authored
Add configure target to detect when autoconf needs to be run.
-
Simon Marlow authored
Include the configure script in a src dist.
-
Julian Seward authored
Change primOpUsg(CatchOp) to reflect changed arity of catch#. Also update primOpStrictness(CatchOp).
-
Simon Marlow authored
We don't want -keep-{hc,s}-files-too on by default, and why do we need -H32M -K32M for PrelBase.lhs? Hans: I want a word with you :)
-
- Jan 30, 2000
-
-
Simon Marlow authored
Change the type of catch# to catch# :: (W# -> (# W#, a #)) -> (b -> W# -> (# W#, a #)) -> W# -> (# W# , a #) where W# == State# RealWorld. In other words, make it explicit that catch# is an IO operation and takes IO operations as arguments. The previous type was too general, and resulted in catch# having the wrong arity which could cause mis-optimisations. The down side is that we now have to pass the state token around inside the primop instead of doing it in the Haskell wrapper, and raiseAsync() also has to build a PAP(handler,exception,realworld) instead of just a PAP(handler,exception) when it invokes a handler as a result of an async exception. I also added some optimisations to (un)?blockAsyncException to not grow the stack if it can be avoided, such as when we're about to block async exceptions and there's a blockAsyncExceptions_ret stack frame on the top of the stack.
-
Simon Marlow authored
The bd->free field of a block descriptor is supposed to be set to -1 for free blocks, if we're #ifdef DEBUGging. It wasn't sometimes.
-
Simon Marlow authored
Deal with ThreadRelocated in checkTSO().
-
Simon Marlow authored
Add notes about where the IO representation is wired in to various parts of the source tree, since I'm about to add some more.
-
Simon Marlow authored
comment fixup
-
- Jan 28, 2000
-
-
Jeff Lewis authored
First pass at implicit parameters. Honest, I didn't really go in *intending* to modify every file in the typechecker... ;-) The breadth of the change is partly due to generalizing contexts so that they are not hardwired to be (Class, [Type]) pairs. See types/Type.lhs for details (look for PredType).
-
Julian Seward authored
Modifications to make x86 register spilling to work reasonably. It should work ok most of the time, although there is still a remote possibility that the allocator simply will be unable to complete spilling, and will just give up. -- Incrementally try with 0, 1, 2 and 3 spill regs, so as not to unduly restrict the supply of regs in code which doesn't need spilling. -- Remove the use of %ecx for shift values, so it is always available as the first-choice spill temporary. For code which doesn't do int division, make %edx and %eax available for spilling too. Shifts by a non-constant amount (very rare) are now done by a short test-and-jump sequence, so that %ecx is not tied up. -- x86 FP: do sin, cos, tan in-line so we get the same answers as gcc. -- Moved a little code around to remove recursive dependencies. -- Fix a subtle bug in x86 regUsage, which could cause underestimation of live ranges.
-
Simon Marlow authored
bump version to 4.07 on the main trunk.
-
Simon Marlow authored
don't use ^ in patterns, Solaris sh barfs on it.
-
Julian Seward authored
Commit all changes prior to addressing the x86 spilling situation in the register allocator. -- Fix nonsensical x86 addressing mode hacks in mangleIndexTree and getAmode. -- Make char-sized loads work properly, using MOVZBL. -- In assignIntCode, use primRep on the assign node to determine the size of data transfer, not the size of the source. -- Redo Integer primitives to be in line with current representation of Integers.
-
- Jan 27, 2000
-
-
Reuben Thomas authored
Added note about the necessity of using the Cygnus DocBook tools (rather than, e.g., SuSE).
-