- 27 Jan, 2005 2 commits
-
-
simonmar authored
bootstrapping wibble
-
simonpj authored
-------------------------------------------- Replace hi-boot files with hs-boot files -------------------------------------------- This major commit completely re-organises the way that recursive modules are dealt with. * It should have NO EFFECT if you do not use recursive modules * It is a BREAKING CHANGE if you do ====== Warning: .hi-file format has changed, so if you are ====== updating into an existing HEAD build, you'll ====== need to make clean and re-make The details: [documentation still to be done] * Recursive loops are now broken with Foo.hs-boot (or Foo.lhs-boot), not Foo.hi-boot * An hs-boot files is a proper source file. It is compiled just like a regular Haskell source file: ghc Foo.hs generates Foo.hi, Foo.o ghc Foo.hs-boot generates Foo.hi-boot, Foo.o-boot * hs-boot files are precisely a subset of Haskell. In particular: - they have the same import, export, and scoping rules - errors (such as kind errors) in hs-boot files are checked You do *not* need to mention the "original" name of something in an hs-boot file, any more than you do in any other Haskell module. * The Foo.hi-boot file generated by compiling Foo.hs-boot is a machine- generated interface file, in precisely the same format as Foo.hi * When compiling Foo.hs, its exports are checked for compatibility with Foo.hi-boot (previously generated by compiling Foo.hs-boot) * The dependency analyser (ghc -M) knows about Foo.hs-boot files, and generates appropriate dependencies. For regular source files it generates Foo.o : Foo.hs Foo.o : Baz.hi -- Foo.hs imports Baz Foo.o : Bog.hi-boot -- Foo.hs source-imports Bog For a hs-boot file it generates similar dependencies Bog.o-boot : Bog.hs-boot Bog.o-boot : Nib.hi -- Bog.hs-boto imports Nib * ghc -M is also enhanced to use the compilation manager dependency chasing, so that ghc -M Main will usually do the job. No need to enumerate all the source files. * The -c flag is no longer a "compiler mode". It simply means "omit the link step", and synonymous with -no-link.
-
- 26 Jan, 2005 10 commits
-
-
stolz authored
Automagically find docbook on FreeBSD (or anybody else who cares to store it under /usr/local/share/xsl/docbook)
-
simonmar authored
tidy up
-
simonmar authored
updates
-
simonpj authored
----------------------- Fixup to hoistForAllTys ----------------------- * hoistForAllTys moves from TcHsType to TcType hoistForAllTys was being too vigorous and breaking up type synonyms, even when it was entirely unnecessary to do so. Not only does this make error messsages less good, but it's actually wrong for Haskell 98, because we are meant to report under-applied type synonyms, and that check doesn't happen until after hoistForAllTys. This led to a very obscure bug, immortalised as tcfail129.
-
simonmar authored
Build ghc/lib (untested)
-
simonmar authored
hc-file-bundle: need to track ghc/lib too
-
simonmar authored
Common up the ghc_ge_XXX variables into config.mk, and add the ability to build ghc/lib and ghc/utils using the stage1 compiler, by saying 'make UseStage1=YES'. This is going to be useful for bootstrapping.
-
simonmar authored
Remove System.FilePath, use System.Directory.Internals for now.
-
simonmar authored
Avoid use of System.FilePath, which is going away
-
simonmar authored
fileLoop: catch InvalidArgument and behave as for EOF (i.e. terminate the session). This means that the user can close stdin to end a GHCi session, but it also means that the tests that run programs which use getContents inside GHCi won't crash because stdin has been closed.
-
- 24 Jan, 2005 1 commit
-
-
ross authored
make hsc2hs work with Hugs
-
- 23 Jan, 2005 6 commits
-
-
wolfgang authored
Distinguish between rodata and relrodata (relocatable read-only data) in the mangler. By default, use $T_HDR_rodata if $T_HDR_relrodata is not defined for a particular platform.
-
wolfgang authored
Make the NCG distinguish between the read-only data section and the "relocatable read-only data" section. Read-only data is supposed to be _really_ read-only, whereas "relrodata" can have relocations, but should not be modified by the program at runtime. For Linux, put relrodata into ".data" by default, as the dynamic linker tends to do evil things to avoid relocating things in read-only sections.
-
wolfgang authored
Darwin / Mac OS X: For builds with dynamic libraries, fix up dynamic library paths ("install names") for binaries. Otherwise, a dynamically-linked stage2 ghc would contain the path names of the build directories.
-
panne authored
In the installed package.conf, all includeDirs were empty, so no GHC/package headers were found. This commit fixes that (in a hopefully correct way).
-
krasimir authored
Use withProgName. Without it getProgName from the executed script will return "<interactive>"
-
wolfgang authored
Add support for the dead code stripping feature of recent Apple linkers. If your code is compiled using the NCG, you can now specify -optl-W,-dead_strip on the GHC command line when linking. It will have basically the same effect as using split-objs to build the libraries. Advantages over split-objs: * No evil perl script involved * Requires no special handling when building libraries Disadvantages: * The current version of Apple's linker is slow when given the -dead_strip flag. _REALLY_ slow. * Mac OS X only. This works by making the NCG emit the .subsections_via_symbols directive. Additionally, we have to add an extra label at the top of every info table, and make sure that the entry code references it (otherwise the info table will be considered part of the preceding entry code). The mangler just removes the .subsections_via_symbols directive.
-
- 22 Jan, 2005 1 commit
-
-
krasimir authored
import Foreign.Ptr and Foreign.C under Windows
-
- 21 Jan, 2005 8 commits
-
-
sof authored
win32 only: Tidy up delivery and handling of console events by having the low-level console event handler signal the RTS thread blocked waiting for I/O.
-
panne authored
* Require happy >= 1.15 for build * Build some needed PostScript docs * Merge the ghc-doc- sub-package into the ghc sub-package, it's quite unusual to find the docs for a package blah under /usr/share/doc/packages/blah-doc
-
simonmar authored
small wibble
-
simonmar authored
Begin updating the porting instructions for GHC 6.4. A few details have changed.
-
simonmar authored
Don't try to run finalizers at program exit. This turned out to be hard if not impossible to do in general, so now we don't attempt it at all. The Main.main wrapper, previously called runIO and now called runMainIO, flushes stdout and stderr before exiting. This should catch most cases where programs rely on Handles being flushed at program exit, but note that now if you simply drop a Handle in your program, there's no guarantee it'll be flushed on exit. If the punters complain enough, I suppose we could implement a global Handle table and flush them all at exit... I'd rather not do this if possible, though. Better to teach people to close their Handles properly.
-
simonmar authored
Update packages documentation (phew)
-
simonmar authored
Update the --help text
-
ross authored
repair import breakage
-
- 20 Jan, 2005 7 commits
-
-
ross authored
more precise imports (including try from System.IO.Error)
-
simonmar authored
ghc-pkg list: show hidden packages in parentheses
-
simonmar authored
Squash gcc 3.4.x warnings.
-
simonmar authored
One package.conf.in file I forgot
-
simonmar authored
Avoid a warning
-
simonmar authored
Fill in the haddock-interfaces and haddock-html fields in the package.conf files. To do this I had to make some changes: - haddock-interfaces requires the value of $(datadir). We can't just plug this in, because $(datadir) might change at install-time (eg. a Windows installer can be placed anywhere, as can a Unix binary .tar.gz distribution). The current trick is for the compiler to splice in the value of $libdir in package.conf at runtime. So we could extend this mechanism and tell the compiler the value of $datadir via a command-line option, but that seems ugly. On Windows, $datadir==$libdir, so we don't need any changes: package.conf still uses $libdir, and a Windows installation is independent of its absolute location. Even 'make install' on Windows should have this property. On Unix: - for 'make install' and in-place execution, we just use absolute paths in package.conf - for a binary dist, we generate a package.conf that refers to $libdir and $datadir, and splice in the values at install-time (distrib/Makefile-bin.in). - Also, I renamed $libdir to $topdir to more closely reflect its actual meaning. This is somewhat malicious in that it will flush out all those clients using $libdir when they really shouldn't be :-)
-
simonpj authored
Fix syntax error
-
- 19 Jan, 2005 3 commits
- 18 Jan, 2005 2 commits