| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
Clean up the error handling a bit; the exception type is moved to
Panic, and a new exception for panics has been added.
|
|
|
|
| |
Cleanup, debug, of upsweep-avoidance stuff.
|
|
|
|
|
| |
First shot at avoiding starting upsweep at the bottom. Still a bit
flaky; needs cleaning up.
|
|
|
|
|
| |
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.
|
|
|
|
| |
rename filterNameEnv-->filterNameMap to avoid clash with Name.filterNameEnv.
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
| |
Unused imports and suchlike
|
|
|
|
|
|
| |
: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".
|
|
|
|
|
| |
- :type now prints names unqualified when possible.
- :module is implemented
|
|
|
|
| |
compiling-with-4.08.1 wibbles
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Message wibbles.
|
|
|
|
|
|
|
| |
* :t works !!! (but it's a bit excessive about qualifying everything
at the moment).
* lots of other things work.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
make ":l hello" load hello.hs if it exists.
|
|
|
|
| |
Clean up CM's messages a bit.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Allow the root of the module tree to have a filename which is
different from its module name. The argument to cmLoadModule is now a
filename.
|
|
|
|
|
|
|
|
|
|
| |
When renaming, typechecking an expression from the user
interface, we may suck in declarations from interface
files (e.g. the Prelude). This commit takes account of that.
To do so, I did some significant restructuring in TcModule,
with consequential changes and tidy ups elsewhere in the type
checker. I think there should be fewer lines in total than before.
|
|
|
|
| |
Delete dead code resulting from redoing of source-up-to-date logic.
|
|
|
|
| |
Redo the source-up-to-date logic (in CompManager.upsweep_mod).
|
|
|
|
|
|
| |
* (CompManager) recompile if in interactive mode and no old linkable exists
* (HscMain) don't write interface files in interactive mode
* (everywhere) switch arg order to unJust for PAP purposes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Results of today's hacking:
- We can now execute expressions from the GHCi prompt. However,
a problem with the typechecker environment means that identifiers
from outside the current module aren't resolved :-(
- loading up a multi-module program in the interpreter seems to
work. Interpreting is kinda slow (ok, very slow), but I'm hoping
it'll get better when I compile the interpreter w/ optimisation.
- :set sort of works - you can do ":set -dshow-passes", for example
- lots of bugfixes, etc.
|
|
|
|
|
|
|
| |
Facilitate handling the situation where name of module /= name of file.
This is handled in CompManager.summarise, which can inspect the source
to see what the _real_ module name is, and act accordingly.
All a bit messy -- needs a rethink.
|
|
|
|
|
|
|
|
|
|
| |
Filter the HST and HIT passed to compile to only contain the downwards
closure of the module being compiled. This means that the instance-env
construction machinery cannot pick up out-of-scope instances from HST.
Don't know if it's necessary to filter HIT -- perhaps not.
Instance env construction still doesn't work right, due to duplicates
being picked up from interface files.
|
|
|
|
| |
Make file up-to-dateness checking work in batch mode.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
WOOHOO! GHCi interprets "Hello World":
_____ __ __ ____ _________________________________________________
(| || || (| |) GHC Interactive, version 5.00
|| __ ||___|| || () For Haskell 98.
|| |) ||---|| || || http://www.haskell.org/ghc
|| || || || || (| Bug reports to: glasgow-haskell-bugs@haskell.org
(|___|| || || (|__|) \\______________________________________________________
Loading package std ... resolving ... done.
Prelude> :l Main
cmLoadModule: downsweep begins
getSummary: Main
after tsort:
NONREC
ModSummary { ms_mod = Main, ms_imps = [] ms_srcimps = [] }
CHECKING OLD IFACE for hs = Just "./Main.hs", hspp = Just "/tmp/ghc25011.hspp"
COMPILATION IS REQUIRED
UPSWEEP COMPLETELY SUCCESSFUL
CmLink.link: linkables are ...
LinkableM Main [Trees [Main.main = letP stg_cIM = (@PP Native PrelShow.$fShow[] Native PrelShow.$fShowChar)
in
letP stg_cIL = (@IP Native PrelBase.unpackCString# 141613256#)
in
(@PP (@PP Native PrelIO.print stg_cIM) stg_cIL)]]
Main.main
CmLink.link: done
Prelude> Main.main
Run expression: Main.main
evalI:
141613256#
"Hello, world!"
done.
|
|
|
|
|
|
| |
* Move along the source-changed checkery.
* Make the driver put object files in the right place when using CM.
* Don't do hscNoRecomp in one-shot mode.
|
|
|
|
|
|
| |
Moving things around a bit to avoid cycles.
Further progress on interactive linker.
|
|
|
|
| |
Current state of the interactive system; can load packages (in theory).
|
|
|
|
|
|
| |
Overhaul of CM, reducing the complexity of recursive module machinery.
Also, don't compute package dependencies at all, and don't pass them
to the linker.
|
|
|
|
| |
Fix up the Batch vs Interactive plumbing.
|
|
|
|
| |
Fixes to do with CM and module cycles. Also to do with OPTIONS pragmas.
|
|
|
|
| |
Stop the world in the Approved Manner if the finder can't find a module.
|
|
|
|
| |
Only do batch linking if the upsweep succeeds and someone exports Main.main.
|
|
|
|
|
|
| |
First shot at batch linking. Does not attempt linking if upsweep
was not completely successful. Always attempts linking if upsweep
successful, even if there's no 'main' to be found anywhere.
|
|
|
|
| |
First shot at wiring up 'ghc --make'.
|
|
|
|
| |
fix heavy-handed merge-o :(
|
|
|
|
| |
Compiles most of the Prelude; versioning still not good
|
|
|
|
| |
Fixes for compiling w/ 4.08.1
|
|
|
|
| |
small fixes
|
|
|
|
| |
Fix compilation with 4.08.1
|
|
|
|
| |
Finally get CompManager to compile. Also rm some redundant imports.
|
|
Cleaning up the configuration/build process.
- New build.mk option: GhcWithInterpreter. It has reasonable
defaults, and shouldn't need to be overriden (you get the interpreter
if you're bootstrapping with ghc 4.09+ on an ELF architecture, at
the moment).
- compilation manager now lives in compiler/compMan. compiler/ghci
contains only interpreter-related files.
- WithGhcHc has gone, it now defaults to $(GHC). This is so that
we can reliably determine the version of $(GHC) using the stuff that
configure tells us. configure gets a new --with-ghc option so you
can specify which ghc to use.
|