- Jun 21, 2000
-
-
chak@cse.unsw.edu.au. authored
As suggested by SimonM, moved an overview over the three components of the FFI into the FFI document included as Chapter 7 into the GHC user guide. Open questions: * How can I make cross references to the doc in hslibs/? There are already references to hslibs sections in other parts of ghc's user guide, but they are not correctly resolved when I generate html from the sgml files. * There is now a (little) overlap with material in 6.5 (GHC Language Features: The foreign interface). I would say, we could actually leave this as it is, as 6.5 goes on to describe GHC specifics.
-
- Jun 20, 2000
-
-
Simon Marlow authored
fix -fno-asm-mangling flag
-
Julian Seward authored
Force binds with coreBindsSize after every simplifier iteration. Significantly reduces space use, especially with -O. This could probably be done more cleanly.
-
Simon Marlow authored
remove duplicates from the list of ways, so that eg. ghc -prof -prof is legal.
-
Simon Marlow authored
Don't try to finalize DEAD_WEAKs. This fix has been sitting in my tree for so long, I can't remember whether it was a real bugfix or just a cleanup, oh well.
-
Simon Marlow authored
Set the context switch flag to zero when running a new thread; the timer interrupt now initiates a context switch.
-
Simon Marlow authored
context switch on a timer interrupt.
-
Simon Marlow authored
remove ToDo about mkdependHS and -osuf.
-
Simon Marlow authored
mkdependHS doesn't understand the -o option anymore; instead it grokss ghc's -osuf option. We never really used this, and it behaves strangely when mixed with -s, but at least now it doesn't conflict with GHC's -opt<blah> options.
-
Simon Marlow authored
- print the version number as x.yy.z (i.e. replace ", patchlevel z" with ".z"), but omit the .z if z == 0. - add --numeric-version flag which prints x.yy.z without the verbage.
-
Simon Marlow authored
- fix -optCrts (was being overriden by -optC) - fix -osuf with -split-objs - fix -odir
-
- Jun 19, 2000
-
-
sven.panne@aedion.de authored
* makeForeignObj => newForeignObj * Tried to make type mapping table look less strange, but this succeeded only a little bit. Could somebody else have a look?
-
Simon Marlow authored
oops, backout accidental commit
-
chak@cse.unsw.edu.au. authored
Updated the building from .hc section. *MERGE*
-
Simon Marlow authored
Time fixes from Michael Weber <michael.weber@post.rwth-aachen.de>: * `toClockTime' previously didn't honor the `tz' field of a `CalendarTime', which led to time warping when applying => (toUTCTime (toClockTime ... (toUTCTime (toClockTime someTime) ... ))) continuously. Now it accepts at least <local>- and UTC-encoded `CalendarTime's (TODO: test, whether all timezones work) and converts them correctly to <secs from epoch>-format (which is always UTC, as one might have guessed). * `addToClockTime' now works. Previously, `tz' seconds were added(!) when used like: => addToClockTime noTimeDiff someTime which is clearly wrong. Now, the following (hopefully) always holds => someTime == (addToClockTime noTimeDiff someTime) * `diffClockTimes' works correctly, and is the dual to `addToClockTime', i.e. => diff == ((addToClockTime diff someTime) `diffClockTimes` someTime) should now hold for all diff, someTime Previously, it reports ugly diffs at {min,hour,day,...}-breaks, for example: => "2000/06/18 01:00 UTC" `diffClockTimes` "2000/06/17 23:00 UTC" == 1 day, -22 hours whereas now it emits "7200 secs". This number can be converted with `normalizeTimeDiff' to "2 hours". * added `normalizeTimeDiff', which calculates year, month, days, etc. out of an unnormalized `TimeDiff' (generated by `diffClockTimes', for example) * `formatTimeDiff': added the missing "%c" case. The format is proprietary, though... Is there a nicer one?
-
Simon Marlow authored
ignore -no-link-chk for backwards compat.
-
Simon Marlow authored
remove tests subdir
-
Simon Marlow authored
Give 'ghc -E' the traditional behaviour: the output is dumped to stdout. The new driver also generates <file>.cpp.
-
Reuben Thomas authored
Changed SUBDIRS from users_guide to set (the former doesn't build any more except as part of the latter).
-
- Jun 18, 2000
-
-
sven.panne@aedion.de authored
Added Eq and Ord instances for ArrayException
-
Simon Marlow authored
mention cvs-ghc@haskell.org
-
Simon Marlow authored
Add FreeBSD-compatible catalog. This one works on my FreeBSD 4.0 box with the following packages installed: docbook-3.1 dsssl-docbook-modular-1.52 jade-1.2.1 iso8879-1986 alternatively, installing the 'docproj' meta-package gets everything you need.
-
chak@cse.unsw.edu.au. authored
Script that automates building GHC from .hc files. ?? Shall I edit the corresponding section in building.sgml to advise the use ?? of this script (thus replacing the outdated description of the manual ?? steps - which is wrong anyway).
-
Simon Peyton Jones authored
*** MERGE WITH 4.07 *** * Fix the ambiguity check in TcMonotype.lhs so that it is not carried out for types read from interface files. Some workers may get ambiguous types but that does not matter, and should not make compilation fail. More detail in the comments with TcMonoType.tc_type_kind (the HsForAll case) * Don't create specialisations for type applications where there's a matching rule. The rule should clearly take precedence. (Bug reported by Sven.) I havn't tested this fix. * Run the occurrence analyser after tidyCore, so that occurrence info (notably dead-var info) is correct for the code generators. This should fix Erik's problem, but again I've not tested the fix. The extra call is in Main.lhs * Fix CoreToStg so that it can handle an StgLam in mkStgCase. This only shows up in a wierd case, documented in CoreToStg.mkStgCase
-
- Jun 17, 2000
-
-
chak@cse.unsw.edu.au. authored
* SGML_DOC can now hold a _list_ of sgml documentations to build * both building.sgml and ffi-art.sgml are now build in docs/ *MERGE*
-
- Jun 16, 2000
-
-
Julian Seward authored
Fix sparc bustage following latest round of NCG hacking (reg-alloc stuff). Still won't work, but at least should compile again.
-
Simon Marlow authored
instance Eq (HsDecl name pat) : add default case
-
- Jun 15, 2000
-
-
sven.panne@aedion.de authored
Quick workaround for Reuben's M$ configuration problems
-
Simon Marlow authored
sigh, fix the ordering of the phases so that splitting works again.
-
Daan Leijen authored
Added new primitives and bytecodes that support code generation for XMLambda. All additions are surrounded by #ifdef XMLAMBDA. Most important additions: - Rows (n-tuples) which are implemented on top of Frozen Mutarrays - Inj (variant sums), which is implemented using a new constructor called Inj which contains both the value and an unboxed int which represents the index.
-
Daan Leijen authored
Added definition of int64 to make it compilable with both gcc and VisualC++ Added functions to the bytecode assembler that support code generation for Xmlambda. All additions for Xmlambda are surrounded by #ifdef XMLAMBDA.
-
Daan Leijen authored
Added definition of int64 to make it compilable with both gcc and VisualC++
-
Simon Marlow authored
urk! the arity of a record selector Id didn't take into account any dictionary arguments due to the context on the datatype... (fixes bug on H/OpenGL reported by Sven)
-
Julian Seward authored
Emit slightly better x86 floating point code for comparisons, +, -, * and /, in the common case where one of the source fake FP regs is the same as the destination reg.
-
Reuben Thomas authored
Fixed typo: .hs left out of .SUFFIXES list.
-
Julian Seward authored
Major thing: new register allocator. Brief description follows. Should correctly handle code with loops in, even though we don't generate any such at the moment. A lot of comments. The previous machinery for spilling is retained, as is the idea of a fast-and-easy initial allocation attempt intended to deal with the majority of code blocks (about 60% on x86) very cheaply. Many comments explaining in detail how it works :-) The Stix inliner is now on by default. Integer code seems to run within about 1% of that -fvia-C. x86 fp code is significantly worse, up to about 30% slower, depending on the amount of fp activity. Minor thing: lazyfication of the top-level NCG plumbing, so that the NCG doesn't require any greater residency than compiling to C, just a bit more time. Created lazyThenUs and lazyMapUs for this purpose. The new allocator is somewhat, although not catastophically, slower than the old one. Fixing of the long-standing NCG space leak more than makes up for it; overall hsc run-time is down about 5%, due to significantly reduced GC time. -------------------------------------------------------------------- Instructions are numbered sequentially, starting at zero. A flow edge (FE) is a pair of insn numbers (MkFE Int Int) denoting a possible flow of control from the first insn to the second. The input to the register allocator is a list of instructions, which mention Regs. A Reg can be a RealReg -- a real machine reg -- or a VirtualReg, which carries a unique. After allocation, all the VirtualReg references will have been converted into RealRegs, and possibly some spill code will have been inserted. The heart of the register allocator works in four phases. 1. (find_flow_edges) Calculate all the FEs for the code list. Return them not as a [FE], but implicitly, as a pair of Array Int [Int], being the successor and predecessor maps for instructions. 2. (calc_liveness) Returns a FiniteMap FE RegSet. For each FE, indicates the set of registers live on that FE. Note that the set includes both RealRegs and VirtualRegs. The former appear because the code could mention fixed register usages, and we need to take them into account from the start. 3. (calc_live_range_sets) Invert the above mapping, giving a FiniteMap Reg FeSet, indicating, for each virtual and real reg mentioned in the code, which FEs it is live on. 4. (calc_vreg_to_rreg_mapping) For virtual reg, try and find an allocatable real register for it. Each real register has a "current commitment", indicating the set of FEs it is currently live on. A virtual reg v can be assigned to real reg r iff v's live-fe-set does not intersect with r's current commitment fe-set. If the assignment is made, v's live-fe-set is union'd into r's current commitment fe-set. There is also the minor restriction that v and r must be of the same register class (integer or floating). Once this mapping is established, we simply apply it to the input insns, and that's it. If no suitable real register can be found, the vreg is mapped to itself, and we deem allocation to have failed. The partially allocated code is returned. The higher echelons of the allocator (doGeneralAlloc and runRegAlloc) then cooperate to insert spill code and re-run allocation, until a successful allocation is found.
-
- Jun 14, 2000
-
-
Simon Marlow authored
add missing default case in eq_btype
-
Simon Marlow authored
isNeverInlinePrag returned False for a NOINLINE pragma, which seems wrong to me. 4.07 also has this bug, and it's why Memo is going wrong.
-
Simon Marlow authored
generate _stub.o files properly when there's a -o flag on the command line, and in the presence of -split-objs.
-
Simon Marlow authored
don't use $(WithGhcHc) to build the driver, use $(HC) instead.
-