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.
sewardj [Wed, 22 Nov 2000 16:58:31 +0000 (16:58 +0000)]
[project @ 2000-11-22 16:58:31 by sewardj]
Infrastructure for the (machine-independent) assembler.
simonmar [Wed, 22 Nov 2000 15:51:48 +0000 (15:51 +0000)]
[project @ 2000-11-22 15:51:48 by simonmar]
:l now unloads the previously loaded module collection before loading
the new ones. This allows you to :l Main, :cd <somewhere-else> and :l
Main again without it saying "compilation IS NOT required".
simonmar [Wed, 22 Nov 2000 12:27:57 +0000 (12:27 +0000)]
[project @ 2000-11-22 12:27:57 by simonmar]
omit PrelMain from the GHCi library.
simonmar [Wed, 22 Nov 2000 12:22:15 +0000 (12:22 +0000)]
[project @ 2000-11-22 12:22:15 by simonmar]
remove some duplicate showPasses.
simonmar [Wed, 22 Nov 2000 12:19:29 +0000 (12:19 +0000)]
[project @ 2000-11-22 12:19:29 by simonmar]
message wibble
simonmar [Wed, 22 Nov 2000 12:14:56 +0000 (12:14 +0000)]
[project @ 2000-11-22 12:14:56 by simonmar]
add stuff for building GHCi libraries automatically.
simonmar [Wed, 22 Nov 2000 11:18:40 +0000 (11:18 +0000)]
[project @ 2000-11-22 11:18:40 by simonmar]
Fix problems with errors during renaming causing the PIT to get out of
whack.
simonmar [Wed, 22 Nov 2000 11:12:52 +0000 (11:12 +0000)]
[project @ 2000-11-22 11:12:52 by simonmar]
typos
simonmar [Wed, 22 Nov 2000 10:56:54 +0000 (10:56 +0000)]
[project @ 2000-11-22 10:56:53 by simonmar]
- :type now prints names unqualified when possible.
- :module is implemented
sewardj [Wed, 22 Nov 2000 10:13:43 +0000 (10:13 +0000)]
[project @ 2000-11-22 10:13:43 by sewardj]
Don't commit junk in the Makefile :-(
sewardj [Wed, 22 Nov 2000 10:01:45 +0000 (10:01 +0000)]
[project @ 2000-11-22 10:01:45 by sewardj]
compiling-with-4.08.1 wibbles
simonmar [Wed, 22 Nov 2000 09:24:42 +0000 (09:24 +0000)]
[project @ 2000-11-22 09:24:42 by simonmar]
message wibbles: don't print "compilation IS required" in -v0 mode.
simonmar [Tue, 21 Nov 2000 16:43:26 +0000 (16:43 +0000)]
[project @ 2000-11-21 16:42:58 by simonmar]
Bugfixes, bugfixes:
- allow compiling expressions in the context of any module we have
an interface for, including "Prelude".
- don't forget to pull in things like unpackCString# in the renamer,
we might need to use them for desugaring Strings, for example. I'm
sure there are other things we'll need to pull in too.
- :quit now works from the interpreter (!)
simonmar [Tue, 21 Nov 2000 16:34:57 +0000 (16:34 +0000)]
[project @ 2000-11-21 16:33:18 by simonmar]
Zonk the expr we return from typecheckExpr.
sewardj [Tue, 21 Nov 2000 16:31:51 +0000 (16:31 +0000)]
[project @ 2000-11-21 16:31:51 by sewardj]
Delete pci field from PersistentCMState. Now that the list of available
packages is a global variable (v_Packages), there's no point in having it
in PersistentCMState.
simonmar [Tue, 21 Nov 2000 16:30:04 +0000 (16:30 +0000)]
[project @ 2000-11-21 16:30:04 by simonmar]
merge rev. 1.9.2.6
simonmar [Tue, 21 Nov 2000 16:29:26 +0000 (16:29 +0000)]
[project @ 2000-11-21 16:29:26 by simonmar]
merge rev. 1.44.2.4
sewardj [Tue, 21 Nov 2000 16:19:15 +0000 (16:19 +0000)]
[project @ 2000-11-21 16:19:15 by sewardj]
Message wibbles.
sewardj [Tue, 21 Nov 2000 16:18:17 +0000 (16:18 +0000)]
[project @ 2000-11-21 16:18:17 by sewardj]
Only let the finder see the set of packages which will be available for
linking with, rather than all available packages.
sewardj [Tue, 21 Nov 2000 15:41:10 +0000 (15:41 +0000)]
[project @ 2000-11-21 15:41:10 by sewardj]
Add dummy import dependency to CgExpr so that booting in batch mode works.
simonmar [Tue, 21 Nov 2000 15:00:59 +0000 (15:00 +0000)]
[project @ 2000-11-21 15:00:57 by simonmar]
* :t works !!! (but it's a bit excessive about qualifying everything
at the moment).
* lots of other things work.
sewardj [Tue, 21 Nov 2000 14:43:30 +0000 (14:43 +0000)]
[project @ 2000-11-21 14:43:30 by sewardj]
Return the correct file name for .stub_[ch] files.
simonmar [Tue, 21 Nov 2000 14:36:11 +0000 (14:36 +0000)]
[project @ 2000-11-21 14:31:58 by simonmar]
Mostly verbosity changes.
GONE AWAY: -dshow-passes, -ddump-all, -ddump-most.
NEW:
-v<n>, where <n> is
0 | print errors & warnings only
1 | minimal verbosity: print "compiling M ... done." for each module.
2 | equivalent to -dshow-passes
3 | equivalent to existing "ghc -v"
4 | "ghc -v -ddump-most"
5 | "ghc -v -ddump-all"
4 & 5 are the same at the moment. -dshow-passes also prints out the
passes in the driver, and some in the compilation manager.
simonpj [Tue, 21 Nov 2000 13:13:25 +0000 (13:13 +0000)]
[project @ 2000-11-21 13:13:25 by simonpj]
In the ModIface for an interface from a .hi file, generate an environment
rrt [Tue, 21 Nov 2000 12:32:55 +0000 (12:32 +0000)]
[project @ 2000-11-21 12:32:55 by rrt]
Added rules for GreenCard.
simonmar [Tue, 21 Nov 2000 11:31:21 +0000 (11:31 +0000)]
[project @ 2000-11-21 11:31:21 by simonmar]
make ":l hello" load hello.hs if it exists.
sewardj [Tue, 21 Nov 2000 11:22:26 +0000 (11:22 +0000)]
[project @ 2000-11-21 11:22:25 by sewardj]
Clean up CM's messages a bit.
simonmar [Tue, 21 Nov 2000 10:48:20 +0000 (10:48 +0000)]
[project @ 2000-11-21 10:48:20 by simonmar]
- add default default settings for typecheckExpr
- bugfixes in the interpreter
print (1+2) now works!!
simonmar [Tue, 21 Nov 2000 10:46:01 +0000 (10:46 +0000)]
[project @ 2000-11-21 10:46:01 by simonmar]
fix some cut-n-pastos
simonpj [Tue, 21 Nov 2000 10:29:54 +0000 (10:29 +0000)]
[project @ 2000-11-21 10:29:54 by simonpj]
Fix field name checking
simonmar [Tue, 21 Nov 2000 10:00:44 +0000 (10:00 +0000)]
[project @ 2000-11-21 10:00:44 by simonmar]
add \$Id\$
sewardj [Tue, 21 Nov 2000 09:57:02 +0000 (09:57 +0000)]
[project @ 2000-11-21 09:57:02 by sewardj]
rm debugging printfs
simonmar [Tue, 21 Nov 2000 09:55:47 +0000 (09:55 +0000)]
[project @ 2000-11-21 09:55:47 by simonmar]
add missing case
simonpj [Tue, 21 Nov 2000 09:30:17 +0000 (09:30 +0000)]
[project @ 2000-11-21 09:30:16 by simonpj]
Fix renamer bugs
sewardj [Mon, 20 Nov 2000 17:42:01 +0000 (17:42 +0000)]
[project @ 2000-11-20 17:42:00 by sewardj]
Split HscResult into HscFail | HscNoRecomp | HscRecomp, and clean up
producers and consumers of such. In particular, if no recompilation
happens, the resulting iface is put into the HIT instead of being
thrown away.
Also (trivial) unify functions *ModuleInThisPackage with *HomeModule.