| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
finishGHCModule: correctly create export list entries for non-Names
importEntity: allow TUPLE as a kind of TYCON (am dubious about this)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Major improvements in interface processing, and minor supporting
improvements to CT-storage management.
* Make the iface parser return the complete interface as a single
tree, which is processed later. Added abs syntax tags
I_INTERFACE .. I_VALUE to support this.
* Add tagged ("z") 2,3,4,5 tuples. Because they are tagged, they can't
be confused with lists, etc. Selectors zfst, zsnd ... zsel45, zsel55
check tags first. Iface processing uses z-tuples wherever it can.
* Add unap as a safe "inverse" of ap; it checks tags. So
unap(TAG1, ap(TAG2,cell)) == cell but only if TAG1==TAG2, else
assertion failure.
* In interface.c, clean up the startGHC*/endGHC* functions.
processInterfaces() is the top-level driver; it makes 4
passes over the supplied iface trees.
* Throw away iface symbols not mentioned in export lists.
* Use iface export lists to construct both the export and
eval environments for a module.
* Don't use Texts to refer to things. Instead use ConId and
VarId. Added ConId and VarId as synonyms for Cell in
storage.h.
* Add findSimpleInstance in storage.c.
|
|
|
|
|
|
|
|
|
|
| |
Add initial support for loading GHC Prelude (doesn't work yet):
* Command line flag, +c/-c to start up in combined or standalone mode.
In combined mode, looks for GHC's prelude in ghc/interpreter/GhcPrel
(pro tem).
* Parse unboxed tuple types and usage annotations in interface files.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make StgHugs use the same naming scheme as GHC does for class +
instance machinery.
Add machinery to do Z-encoding/decoding of names extracted from
interface files.
Make the ELF object loader work again. It seemed to have suffered
slight bitrot over the past couple of months. Fix various minor bugs.
Track a small change in interface file syntax.
Make Printer.c print tagged-unboxed stack sections in a decent way
now that Alastair-style stack tags have been abandoned.
|
|
|
|
| |
Merging in the various changes between Sep99 Hugs and Nov99 Hugs.
|
|
|
|
|
| |
Delete optimiser.c (the simplifier) and all supporting bits and
pieces.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is to fix the following bugs:
Reported by Description
----------------------------------------------------------------------
Various cutoff value for -c option seems too low.
Andy weirdness with :i C if C is a zero parameter class.
Ross Paterson Problem with rank 2 parameters and "Showable" class.
Jeff Stronger static checking on instances for classes with
functional dependencies.
|
|
|
|
| |
Basic #ifdeffery to make StgHugs compile out of the box on cygwin.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add foreign import/export implementations for x86 stdcall convention.
Make parser notice calling conventions on f-i and f-x declarations,
check they are supported on the platform Hugs is compiled on. Pass
them all the way through the code generator to the interpreter.
Allow f-i/f-x decls to omit the calling convention, in which case
ccall is used. Remove calling convention from all such decls
in the Prelude so it will work on any platform.
|
|
|
|
| |
Make typeVarsIn non-static since interface.c needs to see it.
|
|
|
|
|
|
|
| |
Adding diffs between Hugs98 (Jan99) and Hugs98 (Sep99)
manually to STG Hugs.
Brings in large change to typechecking sub-system.
|
|
|
|
| |
Updating all copyright messages to the same as Hugs98.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added basic support for foreign export dynamic.
Many aspects of it are still broken:
* Only supports x86-linux.
* The range of allowable types is small: Char Int Float Double
Addr and Word.
* Adjustor thunks are never freed.
* Returning Doubles or Floats doesn't work at all.
I expect to fix some of these shortly. foreign import also
needs redoing, so it can accept any number of arguments of
any type.
Also:
* Fixed setRtsFlags in Evaluator.c to make it endian-independent.
* Fixed raisePrim in Evaluator.c so things like division by zero,
array index errors, etc, throw an exception instead of
terminating StgHugs. raisePrim is renamed makeErrorCall.
|
|
|
|
|
|
|
| |
Mods to enable interworking with simple compiled code. Supports fns and
data decls. Classes, instances, primops, don't work yet.
Unregisterised, mininterpreted x86-ELF is the supported object format.
GC appears to work correctly.
|
|
|
|
|
|
|
| |
Many changes needed to support loading of GHC compiled code. The main
changes are to parser.y and interface.c to load .hi files and create
appropriate symbol table entries. Also, interface.c has the
beginnings of and ELF loader/linker in it.
|
|
|
|
|
|
|
|
|
| |
Changes to improve runtime performance of STG Hugs.
-- Reorganisation of the evaluator (Evaluator.c).
-- Changes to code emission (Assembler.c) to support peephole opts
-- An experimental simplifier (optimise.c).
-- Many supporting bug fixes and minor changes.
-- Experimental implementation of integer for standalone hugs (sainteger.c).
|
|
|
|
|
|
|
|
|
|
| |
Many improvements resulting from first attempt to run nofib suite:
-- More libraries (lib/*.hs) brought into operation
-- Prelude error handling and basic I/O improved
-- Changed bytecode immediate value fields so large constant
-- tables can be compiled
-- Fixed bugs: translation of FATBAR, negative floating point
-- literals, strict constructors, handling of CAFs
|
|
|
|
|
| |
Mods to make STG-hugs able to compile and run small examples. This
commit also includes proper implementations of seq, raise and catch.
|
|
|
|
|
| |
Preliminary results of the merge of STG hugs and 990121. These files
will compile and link, but don't work yet.
|
|
Move 4.01 onto the main trunk.
|