- Dec 21, 1999
-
-
Simon Marlow authored
Hopefully banish bogus "Happy version 1.6 or later is required to compile GHC" messages. The new rule is: if you don't have an installed copy of Happy, but have a Happy source tree, we point the build system at the latter (and pull the version number out of happy/mk/version.mk).
-
- Dec 20, 1999
-
-
Jeff Lewis authored
Remove *uses* of unused IntAbsOp (see recent log message in prelude/PrimOp).
-
Simon Marlow authored
Remove unused IntAbsOp
-
Julian Seward authored
* Fix silly bugs in new linker, object.[ch]. * Allow modules to have arbitrary numbers of "extra" object files as well as their primary object file. Initial requirement is that Prelude needs libHS_cbits.o/.dll as well as Prelude.o module(m).object is the primary object module(m).objectExtras are the extra objects module(m).objectExtraNames :: [Text] are their names. Modify machdep.c to assume that extra objects for module M live in the same directory as M's primary object. * Stuff 130ish symbol names into the RTS symbol table, enough so that the whole Prelude can be linked. That includes symbols in the C library needed by libHS_cbits. This is very hacky and needs to be fixed properly.
-
Simon Marlow authored
3.02 hi-boot syntax wibble
-
Simon Peyton Jones authored
Forgot to remove PrelNumExtra in the last commit
-
Simon Peyton Jones authored
This commit implements a substantial re-organisation of the Prelude It also fixes a couple of small renamer bugs that were reported recently (notably, Sven pointed out that we weren't reporting unused imports properly) My original goal was to get rid of all "orphan" modules (i.e. ones with instance decls that don't belong either to a tycon or a class defined in the same module). This should reduce the number of interface files that have to be read when compiling small Haskell modules. But like most expeditions into the Prelude Swamp, it spiraled out of control. The result is quite satisfactory, though. GONE AWAY: PrelCCall, PrelNumExtra NEW: PrelReal, PrelFloat, PrelByteArr, PrelNum.hi-boot (The extra PrelNum.hi-boot is because of a tiresome thin-air Id, addr2Integer, which used to be in PrelBase.) Quite a lot of types have moved from one module to another, which entails some changes to part of the compiler (PrelInfo, PrelMods) etc, and there are a few places in the RTS includes and even in the driver that know about these home modules (alas). So the rough structure is as follows, in (linearised) dependency order [this list now appears in PrelBase.lhs] PrelGHC Has no implementation. It defines built-in things, and by importing it you bring them into scope. The source file is PrelGHC.hi-boot, which is just copied to make PrelGHC.hi Classes: CCallable, CReturnable PrelBase Classes: Eq, Ord, Functor, Monad Types: list, (), Int, Bool, Ordering, Char, String PrelTup Types: tuples, plus instances for PrelBase classes PrelShow Class: Show, plus instances for PrelBase/PrelTup types PrelEnum Class: Enum, plus instances for PrelBase/PrelTup types PrelMaybe Type: Maybe, plus instances for PrelBase classes PrelNum Class: Num, plus instances for Int Type: Integer, plus instances for all classes so far (Eq, Ord, Num, Show) Integer is needed here because it is mentioned in the signature of 'fromInteger' in class Num PrelReal Classes: Real, Integral, Fractional, RealFrac plus instances for Int, Integer Types: Ratio, Rational plus intances for classes so far Rational is needed here because it is mentioned in the signature of 'toRational' in class Real Ix Classes: Ix, plus instances for Int, Bool, Char, Integer, Ordering, tuples PrelArr Types: Array, MutableArray, MutableVar Does *not* contain any ByteArray stuff (see PrelByteArr) Arrays are used by a function in PrelFloat PrelFloat Classes: Floating, RealFloat Types: Float, Double, plus instances of all classes so far This module contains everything to do with floating point. It is a big module (900 lines) With a bit of luck, many modules can be compiled without ever reading PrelFloat.hi PrelByteArr Types: ByteArray, MutableByteArray We want this one to be after PrelFloat, because it defines arrays of unboxed floats. Other Prelude modules are much easier with fewer complex dependencies.
-
Simon Peyton Jones authored
wibble
-
Simon Peyton Jones authored
Fix a gotcha in the interface-file post processing that led to bizarre omissions from interface files when working with existential types. That's what you get for using Perl
-
- Dec 17, 1999
-
-
Julian Seward authored
Reorganised object code loader/linker to make it much more modular and cleaner. All the machinery is now in object.[ch]. This stuff is packaged up as close to a standalone library as I can reasonably get it -- in particular, it knows nothing about Hugs -- so that the linker could easily be used in some entirely different application with almost no changes, if we so desire. Minor mods to interface.c & storage.c to use the new linker API.
-
Simon Marlow authored
Add netbsd to the list of platforms supported. ToDo: add info to the User's Guide once the Shiny New Documentation is committed.
-
- Dec 16, 1999
-
-
Julian Seward authored
Add extended version of previous commit message as a comment.
-
Julian Seward authored
Further major improvements in interface processing, mostly in the handling of types. Interfaces can contain references to unboxed types, and these need to be handled carefully. The following is a summary of how the interface loader now works. It is applied to groups of interfaces simultaneously, viz, the entire Prelude at once: 1. Throw away any entity not mentioned in the export lists. 2. Delete type (not data or newtype) definitions which refer to unknown types in their right hand sides. Because Hugs doesn't know of any unboxed types, this has the side effect of removing all type defns referring to unboxed types. Repeat step 2 until a fixed point is reached. 3. Make abstract all data/newtype defns which refer to an unknown type. eg, data Word = MkW Word# becomes data Word, because Word# is unknown. Hugs is happy to know about abstract boxed Words, but not about Word#s. 4. Step 2 could delete types referred to by values, instances and classes. So filter all entities, and delete those referring to unknown types _or_ classes. This could cause other entities to become invalid, so iterate step 4 to a fixed point. After step 4, the interfaces no longer contain anything unpalatable to Hugs. 5. Steps 1-4 operate purely on the iface syntax trees. We now start creating symbol table entries. First, create a module table entry for each interface, and locate and read in the corresponding object file. 6. Traverse all interfaces. For each entity, create an entry in the name, tycon, class or instance table, and fill in relevant fields, but do not attempt to link tycon/class/instance/name uses to their symbol table entries. 7. Revisit all symbol table entries created in step 6. We should now be able to replace all references to tycons/classes/instances/ names with the relevant symbol table entries. 8. Traverse all interfaces. For each iface, examine the export lists and use it to build export lists in the module table. Do the implicit 'import Prelude' thing if necessary. Finally, resolve references in the object code for this module. I'm sure the number of passes could be reduced. For the moment, understandability is of much higher priority. Hugs can now complete stages 1 through 8 for the whole GHC Prelude, excepting doing the object linking, which needs further work.
-
- Dec 15, 1999
-
-
Simon Marlow authored
Add test displaying bug in fixity resolution on lhs of a function binding. We currently fail on this example, but at least putting it in the test suite will make sure we don't forget about it :)
-
Simon Marlow authored
Add NetBSD/x86 support.
-
- Dec 14, 1999
-
-
Simon Marlow authored
Don't set O_NONBLOCK on stdout and stderr. This is a workaround for a combination of bizarre Unix semantics and shells which don't reset the nonblocking flag after running a program.
-
- Dec 13, 1999
-
-
Simon Marlow authored
Include hslibs in a binary-dist.
-
Simon Marlow authored
Add a few minBound::Int tests.
-
Simon Marlow authored
Fix bug in abs::Integer->Integer: result was wrong for minBound::Int.
-
Simon Marlow authored
Correct off-by-one error in bounds checking when converting NoRepIntegers into the real thing. Not a bug, just a cleanup.
-
- Dec 10, 1999
-
-
Simon Marlow authored
bump version to 4.06
-
Julian Seward authored
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.
-
Simon Marlow authored
Unbreak finalization.
-
Simon Peyton Jones authored
I was too enthusiastic about removing empty usage entries from interface files. This commit fixes my errors of yesterday. Simon
-
- Dec 09, 1999
-
-
Simon Marlow authored
allow certain keywords as scc labels.
-
Simon Marlow authored
eliminate recursive defn: HC <--> WithGhcHc
-
Simon Peyton Jones authored
A bunch of small changes in the way that usage information is generated to stuff into interface files. I'm not certain anything was really wrong before, but it's tidier now, and there are slightly fewer dependencies generated. Main differences are in RnIfaces.getImportVersions I also made the check for orphan rules a bit cleverer (Rename.isOrphanDecl) so that we get fewer spurious orphan modules. Simon
-
Simon Marlow authored
Remove bogus #! lines. Obtained-from: Michael Weber <michael.weber@post.rwth-aachen.de>
-
Simon Marlow authored
cleanups & fixes Obtained-from: Michael Weber <michael.weber@post.rwth-aachen.de>
-
Simon Marlow authored
clean sgmlverb.c Obtained-from: Michael Weber <michael.weber@post.rwth-aachen.de>
-
Simon Marlow authored
recurse into libraries. Obtained-from: Michael Weber <michael.weber@post.rwth-aachen.de>
-
Simon Marlow authored
clean PrelGHC.hi in its various flavours. Obtained-from: Michael Weber <michael.weber@post.rwth-aachen.de>
-
- Dec 08, 1999
-
-
Simon Marlow authored
misc ansification and -Wall cleanup
-
Simon Marlow authored
Add Marc Van Dongen's Integer improvements. Specifically: - new primops: gcdInt#, gcdIntegerInt#, divExact#, quotInteger#, remInteger#. - new definitions of quot and rem for Integer in PrelNum (using the new quotInteger# and remInteger# primops instead of quotRemInteger#). Should be slightly faster than before. div & mod aren't likewise optimised (yet). - specialisations of gcd for Int and Integer, and lcm for Integer in PrelNum.
-
Simon Marlow authored
- add test cases for my URI library - add George Russell's tests for the TimeExts library
-
Simon Marlow authored
oops, forgot to initialize bufStart in openStdFile.
-
Simon Marlow authored
Fix bogon in rule for parser/hschooks.c
-
Simon Marlow authored
New make variable: $(WithNofibHc) which defines the Haskell compiler used to build nofib. Define $(GHC_INPLACE) in fptools/mk/config.mk.in. $(WithNofibHc) is set to $(GHC_INPLACE) by default. Fix $(MKDEPENDHS) in ghc/lib/std/Makefile.
-
Simon Marlow authored
remove cut-n-pasteo
-
- Dec 07, 1999
-
-
Simon Marlow authored
Now that $(GHC) refers to an installed haskell compiler, use $(GHC_INPLACE) to refer to the ghc in the build tree.
-