- May 09, 2000
-
-
Julian Seward authored
Add -DNO_REGS to SRC_CC_OPTS.
-
Julian Seward authored
Record details of the fptools/mk/build.mk required to build Hugs.
-
Julian Seward authored
Fix various compile-time warnings in the assembler and evaluator.
-
Reuben Thomas authored
Corrected a typo (omitted space).
-
Julian Seward authored
Undefine NO_REGS. Seems unneccessary since the driver supplies it anyway when compiling the RTS, and this duplicate defn generates a lot of warnings.
-
Julian Seward authored
Reorder tests in whatIs() to try for most common options first.
-
Reuben Thomas authored
Typo: changed ($Var) to $(Var) in test to set SplitObjs.
-
- May 08, 2000
-
-
sven.panne@aedion.de authored
Committing the Makefile, too, might be a good idea: Removed ctypes.
-
sven.panne@aedion.de authored
* Changed a backslash at EOL to the word "backslash". Using cpp in conjunction with Haskell is a real hack... * Renamed the module Ctypes to Ctype, because CTypes is (soon) a module from package lang. I'm not sure if two files differing only in their case work under "the" OS. Just to be sure...
-
Simon Marlow authored
Detect threads that are blocked on themselves (i.e. black holed), and raise NonTermination exceptions. We only do this when the system is deadlocked, so as not to introduce unnecessary overhead in the normal case.
-
sven.panne@aedion.de authored
Replaced last remnants of C in the scanner/parser with carefully tuned Haskell. TODO: Test with GHC < 3.03
-
Simon Marlow authored
change a bunch of externs into statics. This fixes a long-standing bug and should eliminate the annoying "<blah> was declared extern and later static" warnings from gcc.
-
Simon Marlow authored
Put the extern declarations *outside* the function body for a CCodeBlock. This will enable us to give "extern" declarations for variables that have scope static to the current module.
-
Reuben Thomas authored
Replaced SGML2INFO stuff (which is no longer supported) with SGML2PS (which is, and may well be useful to some).
-
sven.panne@aedion.de authored
*argl* Sorry, my usual Monday-typos...
-
sven.panne@aedion.de authored
shutdownHaskellAndExit is "safe" again
-
Simon Peyton Jones authored
Name qualification ~~~~~~~~~~~~~~~~~~ Yet another wilbble on the recent renamer fix, this time to make sure that names are printed unqualified if they should be. Sigh.
-
Simon Peyton Jones authored
Interface file reading ~~~~~~~~~~~~~~~~~~~~~~ Make interface files reading more robust. * If the old interface file is unreadable, don't fail. [bug fix] * If the old interface file mentions interfaces that are unreadable, don't fail. [bug fix] * When we can't find the interface file, print the directories we are looking in. [feature]
-
- May 02, 2000
-
-
chak@cse.unsw.edu.au. authored
Removed a last flaw and use `cvs export' instead of `cvs checkout' now.
-
- May 01, 2000
-
-
sven.panne@aedion.de authored
Adding a bunch of `unsafe's to foreign imports. TODO: Could somebody verify that declaring shutdownHaskellAndExit as unsafe is OK?
-
sven.panne@aedion.de authored
The NCG doesn't like `foreign label' yet, so addrOf_ErrorHdrHook is a C function now.
-
sven.panne@aedion.de authored
Handle sameMutVar#, sameMVar#, writeForeignObj#
-
sven.panne@aedion.de authored
Handle ThreadIdRep. Output warnings for {Word,Int}64Rep, returning a completely bogus size (for testing NCG only).
-
sven.panne@aedion.de authored
Fixed typo in comment
-
- Apr 30, 2000
-
-
chak@cse.unsw.edu.au. authored
The first version of a script that allows building rpm packages directly from CVS. It currently works for ghc only, but will be extended to cover the other fptools. It should work on all rpm-based systems, as I tried to avoid any dependency on Red Hat systems (as far as I am aware of them). In particular, the rpm build process is carried out below /tmp instead of the standard /usr/src/redhat hierarchy. By default the cvs head of the anonymous repository is built, but cvs-style -d -D, and -r options allow to built from a different repository and revision. [This version is only half tested, because the CVS head seems to not build anymore today.]
-
- Apr 29, 2000
-
-
Simon Peyton Jones authored
Wibble in recent RnEnv changes This meant that things fell over when you try to build the Prelude. Fixed now.
-
chak@cse.unsw.edu.au. authored
The file list generation needed some more tweaking, but seems to work now.
-
- Apr 28, 2000
-
-
Reuben Thomas authored
Changed HSprel.dll to HSstd.dll
-
Reuben Thomas authored
Changed HSprel.dll to HSstd.dll, as it should be.
-
sven.panne@aedion.de authored
Updated out-of-date comment about representation of StablePtr
-
sven.panne@aedion.de authored
Nuked trace message from NCG
-
sven.panne@aedion.de authored
NCG now handles writeBLAHOffAddr# primops
-
Julian Seward authored
Remove some debug printing.
-
Julian Seward authored
Handle TUPLE in substExpr().
-
Simon Peyton Jones authored
Fix a renamer bug that meant we weren't getting package information propagated properly.
-
Julian Seward authored
Time for bye-byes for QueueTemplate.h. The big reorganisation of the BCO linker makes this unnecessary.
-
- Apr 27, 2000
-
-
Julian Seward authored
A total rewrite of the BCO assembler/linker, and rationalisation of the code management and code generation phases of Hugs. Problems with the old linker: * Didn't have a clean way to insert a pointer to GHC code into a BCO. This meant CAF GC didn't work properly in combined mode. * Leaked memory. Each BCO, caf and constructor generated by Hugs had a corresponding malloc'd record used in its construction. These records existed forever. Pointers from the Hugs symbol tables into the runtime heap always went via these intermediates, for no apparent reason. * A global variable holding a list of top-level stg trees was used during code generation. It was hard to associate trees in this list with entries in the name/tycon tables. Just too many mechanisms. The New World Order is as follows: * The global code list (stgGlobals) is gone. * Each name in the name table has a .closure field. This points to the top-level code for that name. Before bytecode generation this points to a STG tree. During bytecode generation but before bytecode linking it is a MPtr pointing to a malloc'd intermediate structure (an AsmObject). After linking, it is a real live pointer into the execution heap (CPtr) which is treated as a root during GC. Because tuples do not have name table entries, tycons which are tuples also have a .closure field, which is treated identically to those of name table entries. * Each module has a code list -- a list of names and tuples. If you are a name or tuple and you have something (code, CAF or Con) which needs to wind up in the execution heap, you MUST be on your module's code list. Otherwise you won't get code generated. * Lambda lifting generates new name table entries, which of course also wind up on the code list. * The initial phase of code generation for a module m traverses m's code list. The stg trees referenced in the .closure fields are code generated, creating AsmObject (AsmBCO, AsmCAF, AsmCon) in mallocville. The .closure fields then point to these AsmObjects. Since AsmObjects can be mutually recursive, they can contain references to: * Other AsmObjects Asm_RefObject * Existing closures Asm_RefNoOp * name/tycon table entries Asm_RefHugs AsmObjects can also contain BCO insns and non-ptr words. * A second copy-and-link phase copies the AsmObjects into the execution heap, resolves the Asm_Ref* items, and frees up the malloc'd entities. * Minor cleanups in compile-time storage. There are now 3 kinds of address-y things available: CPtr/mkCPtr/cptrOf -- ptrs to Closures, probably in exec heap ie anything which the exec GC knows about MPtr/mkMPtr/mptrOf -- ptrs to mallocville, which the exec GC knows nothing about Addr/mkAddr/addrOf -- literal addresses (like literal ints) * Many hacky cases removed from codegen.c. Referencing code or data during code generation is a lot simpler, since an entity is either: a CPtr, in which case use it as is a MPtr -- stuff it into the AsmObject and the linker will fix it a name or tycon -- ditto * I've checked, using Purify that, at least in standalone mode, no longer leaks mallocd memory. Prior to this it would leak at the rate of about 300k per Prelude. * Added this comment to the top of codegen.c. Still to do: * Reinstate peephole optimisation for BCOs. * Nuke magic number headers in AsmObjects, used for debugging. * Profile and accelerate. Code generation is slower because linking is slower. Evaluation GC is slower because markHugsObjects has slowed down. * Make setCurrentModule ignore name table entries created by the lambda-lifter. * Zap various #if 0's in codegen.c/Assembler.c. * Zap CRUDE_PROFILING.
-
Julian Seward authored
Zap unused revert_dead_CAFs.
-
Julian Seward authored
Remove misleading comment about registerisation assumptions.
-
Julian Seward authored
Add CMODE to switch conveniently between combined and standalone testing.
-