rrt [Fri, 8 Dec 2000 11:47:00 +0000 (11:47 +0000)]
[project @ 2000-12-08 11:47:00 by rrt]
config.h depends not just on fptools/mk/config.h but on
fptools/mk/config.mk, for architecture information.
simonmar [Fri, 8 Dec 2000 10:26:41 +0000 (10:26 +0000)]
[project @ 2000-12-08 10:26:41 by simonmar]
add -fno-{cse,cpr,strictness} flags.
simonmar [Fri, 8 Dec 2000 10:09:49 +0000 (10:09 +0000)]
[project @ 2000-12-08 10:09:49 by simonmar]
Don't need to set the CafInfo on non-top-level Ids, the default is
correct now.
simonmar [Fri, 8 Dec 2000 09:54:47 +0000 (09:54 +0000)]
[project @ 2000-12-08 09:54:47 by simonmar]
change the default CafInfo to NoCafRefs, to avoid PrimOps,
constructors and other random Ids from declaring that they refer to
CAFs.
simonpj [Fri, 8 Dec 2000 09:46:16 +0000 (09:46 +0000)]
[project @ 2000-12-08 09:46:16 by simonpj]
Add documentation on -fno-monomorphism-restriction
simonpj [Fri, 8 Dec 2000 09:45:42 +0000 (09:45 +0000)]
[project @ 2000-12-08 09:45:41 by simonpj]
Add -fno-monomorphism-restriction
simonpj [Fri, 8 Dec 2000 09:45:19 +0000 (09:45 +0000)]
[project @ 2000-12-08 09:45:19 by simonpj]
Comment
simonpj [Fri, 8 Dec 2000 09:44:51 +0000 (09:44 +0000)]
[project @ 2000-12-08 09:44:51 by simonpj]
Complete Simons arity/caf changes
simonmar [Fri, 8 Dec 2000 09:39:05 +0000 (09:39 +0000)]
[project @ 2000-12-08 09:39:05 by simonmar]
use $(GHC) for $(MKDEPENDHS), since $(GHC_INPLACE) isn't built yet.
There's a minor problem with this, in that if you've added any options
to GhcLibHcOpts that are specific to the new compiler, 'make boot'
won't work. bleugh.
simonmar [Thu, 7 Dec 2000 17:26:31 +0000 (17:26 +0000)]
[project @ 2000-12-07 17:26:30 by simonmar]
Figure out CafInfo during CoreTidy. This is the final piece of the
puzzle in getting the final IdInfo from the Core2Core phases, rather
than waiting for the STG code.
This simplifies the SRT phase, in that it no longer has to have a
complicated circular algorithm to figure out the CafInfo at the same
time as the SRT layout.
simonmar [Thu, 7 Dec 2000 16:39:40 +0000 (16:39 +0000)]
[project @ 2000-12-07 16:39:40 by simonmar]
touch the object file in the HscNoRecomp case (duh)
sewardj [Thu, 7 Dec 2000 14:50:29 +0000 (14:50 +0000)]
[project @ 2000-12-07 14:50:29 by sewardj]
Fix many obvious bogons and partially emerge from Wrong Stack Offset Hell.
sewardj [Thu, 7 Dec 2000 11:00:43 +0000 (11:00 +0000)]
[project @ 2000-12-07 11:00:43 by sewardj]
Minor enhancements to printing machinery to aid debugging the BC generator.
simonpj [Thu, 7 Dec 2000 10:36:03 +0000 (10:36 +0000)]
[project @ 2000-12-07 10:36:03 by simonpj]
Dont drop inline-mes quite so easily. This was leading to substWorker warnings.
simonpj [Thu, 7 Dec 2000 10:06:20 +0000 (10:06 +0000)]
[project @ 2000-12-07 10:06:20 by simonpj]
Dont warn about uses of deprecated things in its own module
simonpj [Thu, 7 Dec 2000 09:28:43 +0000 (09:28 +0000)]
[project @ 2000-12-07 09:28:42 by simonpj]
Do a better job of eta expansion.
This showed up in one of Manuel's programs, where he got code like:
$wsimpleGen
ww
(\ i :: Int ->
case i of wild1 { I# i# ->
case w of wild2 { I# e# ->
__coerce (ST RealWorld ())
(\ s# :: (State# RealWorld) ->
case writeIntArray# @ RealWorld mba# i# e# s#
of s2#1 { __DEFAULT ->
(# s2#1, () #)
})
}
})
s2#
The argument wasn't eta expanded, so it got right through to
the code generator as two separte lambdas.
Needless to say, I fiddled around with things in a vain attempt
to tidy them up. Yell if anything seems to go wrong, or perfomance
drops on any programs.
simonpj [Thu, 7 Dec 2000 09:21:25 +0000 (09:21 +0000)]
[project @ 2000-12-07 09:21:25 by simonpj]
Improve iface diffs messages
simonpj [Thu, 7 Dec 2000 09:12:33 +0000 (09:12 +0000)]
[project @ 2000-12-07 09:12:33 by simonpj]
Errors and warnings were back to front
simonpj [Thu, 7 Dec 2000 09:12:01 +0000 (09:12 +0000)]
[project @ 2000-12-07 09:12:01 by simonpj]
Add foldOL
simonpj [Thu, 7 Dec 2000 09:10:32 +0000 (09:10 +0000)]
[project @ 2000-12-07 09:10:32 by simonpj]
Be very keen to inline simple primops.
We give a discount of 1 for each arg so that (op# x y z) costs 1.
I found occasions where we had
f x y z = case op# x y z of { s -> (# s, () #) }
and f wasn't getting inlined
simonpj [Thu, 7 Dec 2000 08:29:05 +0000 (08:29 +0000)]
[project @ 2000-12-07 08:29:05 by simonpj]
Tidy up functional dependencies slightly
simonpj [Thu, 7 Dec 2000 08:28:46 +0000 (08:28 +0000)]
[project @ 2000-12-07 08:28:46 by simonpj]
wibble
simonpj [Thu, 7 Dec 2000 08:28:05 +0000 (08:28 +0000)]
[project @ 2000-12-07 08:28:05 by simonpj]
Workers get local names initially; nuke mkDerivedName
simonpj [Thu, 7 Dec 2000 08:26:48 +0000 (08:26 +0000)]
[project @ 2000-12-07 08:26:47 by simonpj]
Better handling of HsTupCon (tidy up + fix minor versioning bug)
simonpj [Thu, 7 Dec 2000 08:22:53 +0000 (08:22 +0000)]
[project @ 2000-12-07 08:22:53 by simonpj]
Tidy up the Persistent Renamer State structure a little
simonpj [Thu, 7 Dec 2000 08:20:46 +0000 (08:20 +0000)]
[project @ 2000-12-07 08:20:46 by simonpj]
Make it work even if mingw32_TARGET_OS is defined
simonpj [Thu, 7 Dec 2000 08:19:53 +0000 (08:19 +0000)]
[project @ 2000-12-07 08:19:53 by simonpj]
Fix the bogus -fwarn-unused-exports problem
simonpj [Thu, 7 Dec 2000 08:18:18 +0000 (08:18 +0000)]
[project @ 2000-12-07 08:18:18 by simonpj]
Tidy up envs a bit
simonpj [Thu, 7 Dec 2000 08:17:55 +0000 (08:17 +0000)]
[project @ 2000-12-07 08:17:55 by simonpj]
Better z-encoding for unboxed tuples
sewardj [Wed, 6 Dec 2000 17:27:17 +0000 (17:27 +0000)]
[project @ 2000-12-06 17:27:17 by sewardj]
#ifdef wibbles
sewardj [Wed, 6 Dec 2000 16:15:23 +0000 (16:15 +0000)]
[project @ 2000-12-06 16:15:23 by sewardj]
import wibble
sewardj [Wed, 6 Dec 2000 15:23:31 +0000 (15:23 +0000)]
[project @ 2000-12-06 15:23:31 by sewardj]
Tons of tedious crud which we will henceforth refer to politely as
"the bytecode assembler".
simonmar [Wed, 6 Dec 2000 15:20:24 +0000 (15:20 +0000)]
[project @ 2000-12-06 15:20:24 by simonmar]
Fix the hack that makes up a new Id for a dynamic ccall. I tried
moving this to CoreSat, but it wasn't convenient to do it there: the
modification needs to happen at the occurrence of the ccall Id rather
than a binding.
simonmar [Wed, 6 Dec 2000 14:25:13 +0000 (14:25 +0000)]
[project @ 2000-12-06 14:25:13 by simonmar]
Reinstate the gruesome hack that makes seq work.
simonmar [Wed, 6 Dec 2000 13:19:49 +0000 (13:19 +0000)]
[project @ 2000-12-06 13:19:49 by simonmar]
Re-engineer the transition from Core to STG syntax. Main changes in
this commit:
- a new pass, CoreSat, handles saturation of constructors and PrimOps,
and puts the syntax into STG-like normal form (applications to atoms
only, etc), modulo type applications and Notes.
- CoreToStg is now done at the same time as StgVarInfo. Most of the
contents of StgVarInfo.lhs have been copied into CoreToStg.lhs and
some simplifications made.
less major changes:
- globalisation of names for the purposes of object splitting is
now done by the C code generator (which is the Right Place in
principle, but it was a bit fiddly).
- CoreTidy now does cloning of local binders and collection of arity
info. The IdInfo from CoreTidy is now *almost* the final IdInfo we
put in the interface file, except for CafInfo. I'm going to move
the CafInfo collection into CoreTidy in due course too.
- and some other minor tidyups while I was in cluster-bomb commit mode.
simonmar [Wed, 6 Dec 2000 13:03:30 +0000 (13:03 +0000)]
[project @ 2000-12-06 13:03:28 by simonmar]
Re-engineer the transition from Core to STG syntax. Main changes in
this commit:
- a new pass, CoreSat, handles saturation of constructors and PrimOps,
and puts the syntax into STG-like normal form (applications to atoms
only, etc), modulo type applications and Notes.
- CoreToStg is now done at the same time as StgVarInfo. Most of the
contents of StgVarInfo.lhs have been copied into CoreToStg.lhs and
some simplifications made.
less major changes:
- globalisation of names for the purposes of object splitting is
now done by the C code generator (which is the Right Place in
principle, but it was a bit fiddly).
- CoreTidy now does cloning of local binders and collection of arity
info. The IdInfo from CoreTidy is now *almost* the final IdInfo we
put in the interface file, except for CafInfo. I'm going to move
the CafInfo collection into CoreTidy in due course too.
- and some other minor tidyups while I was in cluster-bomb commit mode.
sewardj [Wed, 6 Dec 2000 11:20:14 +0000 (11:20 +0000)]
[project @ 2000-12-06 11:20:14 by sewardj]
Handle tagging correctly (we hope :) -- don't tag up stuff to go into
constructors.
Also rearrange order of code for readability.
sewardj [Tue, 5 Dec 2000 17:30:34 +0000 (17:30 +0000)]
[project @ 2000-12-05 17:30:34 by sewardj]
Rework to be more convenient for assembly. Now each BCO is a long
sequence of insns; case-switching code is explicit, and the alts are
all concatenated. Assembly should then be doable with two simple
passes over the sequence.
rrt [Tue, 5 Dec 2000 16:59:03 +0000 (16:59 +0000)]
[project @ 2000-12-05 16:59:03 by rrt]
Correct some merged variable names which have changed from_this toThis.
simonmar [Tue, 5 Dec 2000 12:24:09 +0000 (12:24 +0000)]
[project @ 2000-12-05 12:24:09 by simonmar]
wibble
simonmar [Tue, 5 Dec 2000 12:20:55 +0000 (12:20 +0000)]
[project @ 2000-12-05 12:20:55 by simonmar]
- print "compilation IS NOT required" in one-shot mode
- don't print extra newline in verbosity==0 mode
rrt [Tue, 5 Dec 2000 12:19:49 +0000 (12:19 +0000)]
[project @ 2000-12-05 12:19:49 by rrt]
no_hs_main had become v_noHsMain, but I tried to reintroduce the old
version. Now hopefully fixed.
rrt [Tue, 5 Dec 2000 12:15:19 +0000 (12:15 +0000)]
[project @ 2000-12-05 12:15:19 by rrt]
Declare no_hs_main
sewardj [Tue, 5 Dec 2000 12:09:43 +0000 (12:09 +0000)]
[project @ 2000-12-05 12:09:43 by sewardj]
Partially fix driver breakage.
rrt [Mon, 4 Dec 2000 16:42:14 +0000 (16:42 +0000)]
[project @ 2000-12-04 16:42:14 by rrt]
Merge changes from old driver in before-ghci-branch.
sewardj [Mon, 4 Dec 2000 16:22:38 +0000 (16:22 +0000)]
[project @ 2000-12-04 16:22:38 by sewardj]
Add Outputable instances.
sewardj [Mon, 4 Dec 2000 16:02:20 +0000 (16:02 +0000)]
[project @ 2000-12-04 16:02:20 by sewardj]
First shot at the bytecode generator. It isn't yet connected to the rest
of GHCi, and doesn't have a way to assemble the bytecodes, but at least
it typechecks :-)
simonmar [Mon, 4 Dec 2000 13:46:37 +0000 (13:46 +0000)]
[project @ 2000-12-04 13:46:37 by simonmar]
change paths to match haxml->HaXml change
simonmar [Mon, 4 Dec 2000 12:31:23 +0000 (12:31 +0000)]
[project @ 2000-12-04 12:31:19 by simonmar]
merge recent changes from before-ghci-branch onto the HEAD
simonmar [Mon, 4 Dec 2000 11:29:22 +0000 (11:29 +0000)]
[project @ 2000-12-04 11:29:22 by simonmar]
bugfix for GHCi lib building
simonmar [Mon, 4 Dec 2000 11:26:14 +0000 (11:26 +0000)]
[project @ 2000-12-04 11:26:14 by simonmar]
don't conflict with new Ptr type.
simonmar [Fri, 1 Dec 2000 21:53:59 +0000 (21:53 +0000)]
[project @ 2000-12-01 21:53:59 by simonmar]
build cbits libraries correctly for GHCi.
simonpj [Fri, 1 Dec 2000 13:42:53 +0000 (13:42 +0000)]
[project @ 2000-12-01 13:42:52 by simonpj]
Towards better eta expansion
simonpj [Fri, 1 Dec 2000 12:38:47 +0000 (12:38 +0000)]
[project @ 2000-12-01 12:38:47 by simonpj]
Fix the qualified-as problem; M.as is now OK
simonpj [Fri, 1 Dec 2000 12:38:10 +0000 (12:38 +0000)]
[project @ 2000-12-01 12:38:10 by simonpj]
Add test for special Ids
cryder [Fri, 1 Dec 2000 10:33:41 +0000 (10:33 +0000)]
[project @ 2000-12-01 10:33:41 by cryder]
Initial revision
simonpj [Thu, 30 Nov 2000 15:46:02 +0000 (15:46 +0000)]
[project @ 2000-11-30 15:46:01 by simonpj]
Make the tests for -fglasgow-exts apply only to source code.
If you merely import a module that uses (say) multi-parameter
type classes internally, you shouldn't need -fglasgow-exts.
There were surprisingly few places to change.
simonpj [Thu, 30 Nov 2000 15:44:44 +0000 (15:44 +0000)]
[project @ 2000-11-30 15:44:44 by simonpj]
wibble
simonpj [Thu, 30 Nov 2000 15:44:09 +0000 (15:44 +0000)]
[project @ 2000-11-30 15:44:09 by simonpj]
Tidy export list
sewardj [Tue, 28 Nov 2000 14:41:54 +0000 (14:41 +0000)]
[project @ 2000-11-28 14:41:54 by sewardj]
Properly fix exiting from the interpreter.
simonmar [Tue, 28 Nov 2000 14:12:42 +0000 (14:12 +0000)]
[project @ 2000-11-28 14:12:42 by simonmar]
unused import
sewardj [Tue, 28 Nov 2000 13:22:50 +0000 (13:22 +0000)]
[project @ 2000-11-28 13:22:50 by sewardj]
Use ptext rather than text for doing constant data and strings.
sewardj [Tue, 28 Nov 2000 12:58:02 +0000 (12:58 +0000)]
[project @ 2000-11-28 12:58:02 by sewardj]
Just return on exit rather than doing exitWith, so tmp files get deleted.
simonpj [Tue, 28 Nov 2000 11:38:35 +0000 (11:38 +0000)]
[project @ 2000-11-28 11:38:35 by simonpj]
Trim example
sewardj [Tue, 28 Nov 2000 11:37:14 +0000 (11:37 +0000)]
[project @ 2000-11-28 11:37:14 by sewardj]
Don't try and read your own interface from disk in interactive mode.
sewardj [Tue, 28 Nov 2000 11:03:45 +0000 (11:03 +0000)]
[project @ 2000-11-28 11:03:45 by sewardj]
Cleanup, debug, of upsweep-avoidance stuff.
simonpj [Tue, 28 Nov 2000 08:25:57 +0000 (08:25 +0000)]
[project @ 2000-11-28 08:25:57 by simonpj]
Add second functional dependency test
simonpj [Tue, 28 Nov 2000 08:23:42 +0000 (08:23 +0000)]
[project @ 2000-11-28 08:23:42 by simonpj]
Add functional dependency test
sewardj [Mon, 27 Nov 2000 17:46:09 +0000 (17:46 +0000)]
[project @ 2000-11-27 17:46:09 by sewardj]
rm debug printing
sewardj [Mon, 27 Nov 2000 17:45:07 +0000 (17:45 +0000)]
[project @ 2000-11-27 17:45:07 by sewardj]
First shot at avoiding starting upsweep at the bottom. Still a bit
flaky; needs cleaning up.
sewardj [Mon, 27 Nov 2000 17:44:15 +0000 (17:44 +0000)]
[project @ 2000-11-27 17:44:15 by sewardj]
Add a couple of primops to handle derived Eq/Ord methods.
sewardj [Mon, 27 Nov 2000 17:43:45 +0000 (17:43 +0000)]
[project @ 2000-11-27 17:43:45 by sewardj]
Add a case to hsSigFVs.
simonpj [Mon, 27 Nov 2000 16:10:29 +0000 (16:10 +0000)]
[project @ 2000-11-27 16:10:29 by simonpj]
Get default methods right
simonmar [Mon, 27 Nov 2000 15:25:25 +0000 (15:25 +0000)]
[project @ 2000-11-27 15:25:25 by simonmar]
one-character wibble
simonpj [Mon, 27 Nov 2000 14:37:55 +0000 (14:37 +0000)]
[project @ 2000-11-27 14:37:55 by simonpj]
Dont print uniques in interface files; tidying should have sorted it out
sewardj [Mon, 27 Nov 2000 14:23:03 +0000 (14:23 +0000)]
[project @ 2000-11-27 14:23:03 by sewardj]
Call rnDump in closeIfaceDecls.
sewardj [Mon, 27 Nov 2000 12:52:36 +0000 (12:52 +0000)]
[project @ 2000-11-27 12:52:36 by sewardj]
Update modules and current_module in reloadModule.
sewardj [Mon, 27 Nov 2000 12:10:01 +0000 (12:10 +0000)]
[project @ 2000-11-27 12:10:01 by sewardj]
Look for "highest" module at head of list cmLoadModule returns
simonpj [Mon, 27 Nov 2000 12:04:23 +0000 (12:04 +0000)]
[project @ 2000-11-27 12:04:23 by simonpj]
Generate correct sys-names in MkIface (again)
rrt [Mon, 27 Nov 2000 12:04:00 +0000 (12:04 +0000)]
[project @ 2000-11-27 12:04:00 by rrt]
Changed LATEX2HTML to HEVEA, and added HACHA support.
simonpj [Mon, 27 Nov 2000 12:00:40 +0000 (12:00 +0000)]
[project @ 2000-11-27 12:00:40 by simonpj]
Generate correct sys-names in MkIface
sewardj [Mon, 27 Nov 2000 11:58:55 +0000 (11:58 +0000)]
[project @ 2000-11-27 11:58:55 by sewardj]
Remember to set GHCiState.target the first time.
sewardj [Mon, 27 Nov 2000 11:36:27 +0000 (11:36 +0000)]
[project @ 2000-11-27 11:36:27 by sewardj]
cmLoadModule: try and return the "highest" achieved module at the head
of the list, so that the interactive UI winds up in a plausible module.
rrt [Mon, 27 Nov 2000 11:12:04 +0000 (11:12 +0000)]
[project @ 2000-11-27 11:12:04 by rrt]
Improve hevea (.tex -> .html) rule
simonpj [Mon, 27 Nov 2000 11:04:38 +0000 (11:04 +0000)]
[project @ 2000-11-27 11:04:38 by simonpj]
Default methods are sys-binders
rrt [Mon, 27 Nov 2000 10:57:36 +0000 (10:57 +0000)]
[project @ 2000-11-27 10:57:36 by rrt]
No more vsgml.
rrt [Mon, 27 Nov 2000 10:54:35 +0000 (10:54 +0000)]
[project @ 2000-11-27 10:54:35 by rrt]
Added hevea.
rrt [Mon, 27 Nov 2000 10:53:09 +0000 (10:53 +0000)]
[project @ 2000-11-27 10:53:09 by rrt]
vsgml? What's that?
rrt [Mon, 27 Nov 2000 10:52:29 +0000 (10:52 +0000)]
[project @ 2000-11-27 10:52:29 by rrt]
Removed vsgml->sgml rule: we no longer have vsgml.
rrt [Mon, 27 Nov 2000 10:52:07 +0000 (10:52 +0000)]
[project @ 2000-11-27 10:52:07 by rrt]
Removed second copy of sgml->ps rule and added latex->html rule (for use
with HeVeA).
sewardj [Mon, 27 Nov 2000 10:51:14 +0000 (10:51 +0000)]
[project @ 2000-11-27 10:51:14 by sewardj]
Nuked. (Decided not to go this route in the end).
simonmar [Mon, 27 Nov 2000 10:48:10 +0000 (10:48 +0000)]
[project @ 2000-11-27 10:48:10 by simonmar]
rename filterNameEnv-->filterNameMap to avoid clash with Name.filterNameEnv.
simonpj [Mon, 27 Nov 2000 09:55:44 +0000 (09:55 +0000)]
[project @ 2000-11-27 09:55:43 by simonpj]
Fixes to new version machinery
simonmar [Fri, 24 Nov 2000 17:09:52 +0000 (17:09 +0000)]
[project @ 2000-11-24 17:09:52 by simonmar]
- Bug fixes to the interpreter. Now much more stable - it hasn't crashed
all day.
- Many improvements to the user interface (eg. :set +t and :set +s
work just like Hugs).
- Several wibbles & message improvements: the interpreter now informs you
when it's loading the object code for a given module.
simonpj [Fri, 24 Nov 2000 17:02:06 +0000 (17:02 +0000)]
[project @ 2000-11-24 17:02:01 by simonpj]
1. Make the new version machinery work.
I think it does now!
2. Consequence of (1): Move the generation of
default method names to one place (namely
in RdrHsSyn.mkClassOpSigDM
3. Major clean up on HsDecls.TyClDecl
These big constructors should have been records
ages ago, and they are now. At last.
simonpj [Fri, 24 Nov 2000 09:51:41 +0000 (09:51 +0000)]
[project @ 2000-11-24 09:51:38 by simonpj]
Unused imports and suchlike
simonpj [Fri, 24 Nov 2000 09:51:04 +0000 (09:51 +0000)]
[project @ 2000-11-24 09:51:03 by simonpj]
Version management
[WARNING: may not work! Don't update till I've tested it.]
This commit is a first stab at getting version management to
work properly. The main trick is to get consistent naming when
comparing old and new versions of the same module.
Some functionality has moved arond between
coreSyn/CoreTidy, which tidies up the result of
the middle end of the compiler
Main change: now responsible for figuring out which
Ids are "external" (i.e visible to importing modules),
and constructing the final IdInfo for each Id
main/MkIface, which produces the ModIface and ModDetails
for the module being compiled
Main change: CoreTidy does more, so MkIface does less
stgSyn/CoreToStg, which converts Core to STG
Main change: responsible for globalising internal
names when we are doing object code splitting
The game plan is documented at the top of CoreTidy.
simonpj [Fri, 24 Nov 2000 09:24:40 +0000 (09:24 +0000)]
[project @ 2000-11-24 09:24:40 by simonpj]
Slurp unpackCString even for interfaces
simonmar [Thu, 23 Nov 2000 14:35:01 +0000 (14:35 +0000)]
[project @ 2000-11-23 14:35:01 by simonmar]
more hacking
simonmar [Wed, 22 Nov 2000 17:51:16 +0000 (17:51 +0000)]
[project @ 2000-11-22 17:51:16 by simonmar]
Today's hacking; more things work, but StgInterp is rapidly heading
for a brick wall. Fortunately we're planning to swerve at the last
minute.