| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
Changing name of linkPreludeNames to linkPrimitiveNames (cause that
is what it does).
Adding a Hugs extension "import privileged". This will allow us
to remove the many exports from the prelude of the primitive functions
and types, but still allow us to write libraries that use it.
|
|
|
|
| |
Adding version of Makefile that looks in the new location for Prelude.hs
|
|
|
|
|
| |
Adding the latest version of the makefile
Removing Prelude.hs from the lib dir
|
|
|
|
|
|
|
|
| |
Moved Prelude.hs for STG Hugs to ghc/lib/hugs/Prelude.hs
This means that everything in the ghc/interpreter/lib directory
is generated. The new makefile for interpreter/lib will be added
shortly.
|
|
|
|
| |
Define EXTERN_SYMS_linux for Linux.
|
|
|
|
|
| |
Complete the initial implementation and debugging of the Win32 PE
(PEi386) linker.
|
|
|
|
| |
Properly fix a sprintf bug in typeInstDefn().
|
|
|
|
|
|
| |
Fixing a sprintf bug; it was clobering the symbol table.
If you used a name for a class and module, the module
was not recognised as read.
|
|
|
|
|
| |
Adding link for monadic bind. This was causing the monad fail inside
pattern matching (use inside the XML lib, for example) to fail.
|
|
|
|
| |
Adding latest version of STG Hugs libs makefile.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
typeInstDefn(), the bit which invents GHC compatible instance names:
handle multiparam type classes. This enables Hugs standalone to deal
multiparam type classes, but there's a fudge:
class Foo s m where { }
instance Foo s () where { }
GHC calls the instance $fFoos. But Hugs records type vars as offsets,
and loses the name "s" in the instance head; all it knows about
are tyvar numbers (offsets), starting from zero. So it can never
generate $fFoos here, only $fFoo0 (zero). The resulting code works
in standalone mode but will not interwork with GHC. In general tho,
multiparam type classes are not (yet) supported in combined mode;
interface.c certainly can't handle them.
It might be simplest in this case to change GHC's instance naming
defn to be the same as Hugs'.
|
|
|
|
|
| |
Adding prelude changes require for the new libs, include IOExts.
Reintroducing ptr equality into HugsSTG.
|
|
|
|
| |
Adding the Feb00 changed from Classic Hugs into STG Hugs.
|
|
|
|
|
| |
Implement ocVerifyImage and ocGetNames for Microsoft PE object format.
They compile but do not work yet. ocResolve has yet to be done.
|
|
|
|
| |
Changes needed to support foreign export (dynamic) in combined mode.
|
|
|
|
|
| |
The GHC Prelude doesn't seem to export Addr. Make it do so in combined
mode for compatibility with standalone mode.
|
|
|
|
| |
Nuke PTR_ON_HEAP and all associated ifdeffery; we always need it.
|
|
|
|
| |
primUnpackString --> hugsprimUnpackString
|
|
|
|
| |
Don't always use GMP from ghc/rts; instead consult HaveLibGmp first.
|
|
|
|
| |
Remove debugging junk accidentally left in :-(
|
|
|
|
|
|
| |
Wibbles for Win32 standalone compilation of Hugs:
-- Turn off debugging miniinterpreter
-- Change SIZEOF_INTP (which no longer exists) into SIZEOF_VOID_P
|
|
|
|
|
| |
Use the GMP library built in ghc/rts, not the system-supplied one,
since that doesn't exist on Cygwin.
|
|
|
|
| |
#ifdef wurbles to aid Win32 compilation.
|
|
|
|
|
|
|
|
|
| |
Backend interop fixes:
-- Make Hugs use the same constructor tag numbering as GHC, viz, starting
at zero.
-- Evaluator.c: when unwinding the stack on entering a constructor,
return to the scheduler if a RET_{VEC_}{SMALL|BIG} is found on the
stack.
|
|
|
|
| |
wibble
|
|
|
|
| |
cosmetic wibbles
|
|
|
|
|
|
|
| |
Remove fromDouble from class Fractional, and make it standalone.
This matches GHC. I don't think this is strictly necessary, but
Hugs refers to fromDouble during desugaring and I prefer to avoid
possible mishaps.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
-- 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.
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
startGHCClass(): set the .dsels (superclass dsels) field.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
-- Make default defaults work in combined mode
-- rename some fns in lib/Prelude.hs to match names in HugsPrel.lhs
|
|
|
|
| |
evalExp(): rts_eval_ can no longer return AllBlocked, so remove test for it.
|
|
|
|
| |
cgExpr(), case NAME: correctly handle tail call into native code
|
|
|
|
|
| |
Don't do implementCfun for [] and (:) in combined mode,
since GHC supplies implementations.
|
|
|
|
|
|
|
|
| |
Clear up confusion regarding names of tuple types.
-- (), coded as Z0T, is the unit.
-- (,), coded as Z1T, is the pair type.
-- (,,,N commas,,,) coded as ZNT, is the (N+1)-tuple type.
-- There is no 1-ary type type.
|
|
|
|
|
| |
readScripts(), combined mode: minor hack so that current eval module
is Prelude rather than PrelHugs, once the Prelude is loaded.
|
|
|
|
|
| |
Make hugsprimUnpackString :: Addr -> String available to Hugs' desugarer
in both modes.
|
|
|
|
|
| |
Link nameInd to "_indirect". Haven't a clue what this is for but it
seems necessary.
|
|
|
|
| |
Handle tuple types (,,,) --> Z3T in enZcodeThenFindText().
|
|
|
|
| |
Connect PrelBase.[] to PrelBase_ZMZN_closure, and (:) likewise.
|
|
|
|
| |
Supply correct kinds for tycons created by addWiredInBoxingTycon().
|
|
|
|
| |
Remember to set name(n).arity when n is a class method
|
|
|
|
|
|
| |
nameFromOPtr(): don't try to search object sym tables for source modules
lookupSection(): ditto, plus don't forget to also look in
module(m).objectExtras
|
|
|
|
|
|
| |
Add nameShow and namePutStr as hooks for said fns so that evaluator()
in hugs.c can refer to them in a style consistent with the way the rest
of Hugs refers to specific symbol names.
|
|
|
|
|
|
| |
startGHCInstance: allocate a name() entry for the instance builder fn,
and store the name in the instance's .builder field. Without this,
it's impossible to generate any code which uses an instance builder :-(
|
|
|
|
| |
Back out previous commit.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the missing log message for the commit by sewardj at
2000/01/10 08:23:33 PST for these files:
Some names in the standalone Prelude are referred to during desugaring
in Hugs. These functions therefore need to be supplied from the GHC
world in combined mode. Rename the relevant functions from
primXYZ to hugsprimXYZ to distinguish them, in preparation for
create of ghc/lib/std/PrelHugs.lhs.
---------------------------------------------------------------------
|
|
|
|
| |
nameRunIO --> nameRunIO_toplevel
|