- 08 Nov, 2001 15 commits
-
-
sof authored
gencode: for completeness sake only, handle CCallTypedefs
-
sof authored
ghc-inplace: single-quote -B option to avoid de-escaping those b-slashes
-
sof authored
hardtop_plat: escape those backslashes (exponentially so).
-
sof authored
Prev. commit upset world order - revert back to printing out build tree loc. first.
-
simonmar authored
minor simplification
-
simonmar authored
inputReady can be an unsafe foreign import.
-
simonmar authored
wibble
-
simonmar authored
getProgArgv can be an unsafe foreign import.
-
simonmar authored
Revert resumeThread and suspendThread to working with StgRegTable rather than Capability, and do the conversion in the functions themselves rather than in the inline code. This means I don't have to fiddle with the NCG to fix the SUSPEND_THREAD/RESUME_THREAD macros.
-
simonmar authored
Fix a bug in the previous commit, and add some more sanity checking.
-
simonmar authored
Updates to the native code generator following the changes to fix the large block allocation bug, and changes to use the new function-address cache in the register table to reduce code size. Also: I changed the pretty-printing machinery for assembly code to use Pretty rather than Outputable, since we don't make use of the styles and it should improve performance. Perhaps the same should be done for abstract C.
-
simonmar authored
Remove the heap-check-size panic, following the RTS fixes for this problem.
-
simonmar authored
Fix the large block allocation bug (Yay!) ----------------------------------------- In order to do this, I had to 1. in each heap-check failure branch, return the amount of heap actually requested, in a known location (I added another slot in StgRegTable called HpAlloc for this purpose). This is useful for other reasons - in particular it makes it possible to get accurate allocation statistics. 2. In the scheduler, if a heap check fails and we wanted more than BLOCK_SIZE_W words, then allocate a special large block and place it in the nursery. The nursery now has to be double-linked so we can insert the new block in the middle. 3. The garbage collector has to be able to deal with multiple objects in a large block. It turns out that this isn't a problem as long as the large blocks only occur in the nursery, because we always copy objects from the nursery during GC. One small change had to be made: in evacuate(), we may need to follow the link field from the block descriptor to get to the block descriptor for the head of a large block. 4. Various other parts of the storage manager had to be modified to cope with a nursery containing a mixture of block sizes. Point (3) causes a slight pessimization in the garbage collector. I don't see a way to avoid this. Point (1) causes some code bloat (a rough measurement is around 5%), so to offset this I made the following change which I'd been meaning to do for some time: - Store the values of some commonly-used absolute addresses (eg. stg_update_PAP) in the register table. This lets us use shorter instruction forms for some absolute jumps and saves some code space. - The type of Capability is no longer the same as an StgRegTable. MainRegTable renamed to MainCapability. See Regs.h for details. Other minor changes: - remove individual declarations for the heap-check-failure jump points, and declare them all in StgMiscClosures.h instead. Remove HeapStackCheck.h. Updates to the native code generator to follow.
-
simonmar authored
(addendum to the previous commit) also set bd->blocks to zero in coalesce().
-
simonmar authored
For each non-head block in a block group, set its 'blocks' field to zero (as per comments elsewhere).
-
- 07 Nov, 2001 22 commits
-
-
sof authored
When generating dependencies, look for both source files _and_ interface files. If STABLE is still a branch with a future, I'd encourage merging.
-
sof authored
Avoid using $(shell ...) functions - expensive buggers.
-
sof authored
subst new variable hardtop_plat - platform-specific version of hardtop
-
sof authored
FPTOOLS_HAPPY: have it subst default HappyOpts too
-
sof authored
made to work on Unices
-
sof authored
Cope with conditional presence of o_BINARY in PrelPosix. (Something's not quite right here - O_BINARY, a non-Posix flag, being defined by PrelPosix).
-
sof authored
Test for stddef.h
-
sof authored
Added #defines for HsBool values: - HS_BOOL_FALSE - HS_BOOL_TRUE - HS_BOOL_MIN - HS_BOOL_MAX
-
sof authored
remove extra .hsc deps; not needed
-
sof authored
bring writeErrString__() proto into scope
-
sof authored
no more
-
sof authored
Move towards having the IO implementation be plat-independent at the Haskell source code level.
-
sof authored
prev. commit didn't introduce these two files correctly - PrelIOUtils.{c,h} contain simple C wrappers to handle some aspects of OS I/O in a plat-indep. manner.
-
sof authored
cbits/PrelIOUtils.c
-
sof authored
PrelTopHandler.lhs -> PrelTopHandler.hs (CVS history for this file wasn't interesting enough for a dirty behind-the-scenes repo move).
-
simonpj authored
Wibble in zonking of rules; fixes Manuels problem
-
sof authored
Nuke feature testing for misc error code values + its corresponding CCONST_XXXX #defines.
-
sof authored
Function wrappers for misc error codes
-
sof authored
Delay committing to particular values for the misc error codes until we're *compiling* the .hc / .hs file on a target platform, i.e., no longer do this at configure-time. It ain't pretty, but it works.
-
sof authored
Wrapper functions reqd to implement Directory
-
sof authored
no longer used
-
sof authored
Directory impl which interacts with OS plat via C wrappers
-
- 06 Nov, 2001 3 commits
-
-
simonpj authored
--------------------------------------- Fix YET ANOTHER lub/both bug in DmdAnal --------------------------------------- MERGE TO 5.02 branch (it's a real bug) Two bugs actually. One showed up in a program by Jeremy Manson, and led to an "entered absent arg" error. The problem was Err `lub` U(L,A) /= U(L,A) which is what we had. It should be Err `lub` U(L,A) = U(Err `lub` L, Err `lub` A) = U(LL) The second bug was found by Peter Sestoft while staring at the code. V `lub` Defer(ds) /= U(L) It should be Lazy on the RHS. Very large sigh.
-
simonmar authored
- Make the psecs field of a ClockTime measure picoseconds rather than nanoseconds. - toClockTime was throwing away the picoseconds field of the input CalendarTime: fix this.
-
simonmar authored
Don't use a combination of '=' and ':=' to override libdir and datadir, as it appears to not have the same behaviour in all versions of GNU make.
-