igloo [Wed, 3 Nov 2004 01:10:59 +0000 (01:10 +0000)]
[project @ 2004-11-03 01:10:53 by igloo]
Implement TH ForallC constructor.
wolfgang [Wed, 27 Oct 2004 15:06:22 +0000 (15:06 +0000)]
[project @ 2004-10-27 15:06:22 by wolfgang]
Mac OS X: Explicitly align symbol stub sections in Mach-O files; Apple's as
doesn't seem to do that in all cases.
ross [Tue, 26 Oct 2004 17:48:39 +0000 (17:48 +0000)]
[project @ 2004-10-26 17:48:39 by ross]
bind acosDouble to acos(), rather than asin()
simonmar [Mon, 25 Oct 2004 09:23:08 +0000 (09:23 +0000)]
[project @ 2004-10-25 09:23:08 by simonmar]
Minor changes for VS/Haskell
panne [Sun, 24 Oct 2004 11:35:49 +0000 (11:35 +0000)]
[project @ 2004-10-24 11:35:49 by panne]
Updated the DocBook story
panne [Sat, 23 Oct 2004 19:15:45 +0000 (19:15 +0000)]
[project @ 2004-10-23 19:15:45 by panne]
Workaround for some hhc problems
panne [Sat, 23 Oct 2004 11:58:18 +0000 (11:58 +0000)]
[project @ 2004-10-23 11:58:18 by panne]
Added build dependency on mesaglut-devel (provided by freeglut-devel, too).
simonmar [Wed, 20 Oct 2004 14:25:34 +0000 (14:25 +0000)]
[project @ 2004-10-20 14:25:34 by simonmar]
compile: temporarily add the directory containing the .hs file to the
include path. This matches what compiling in one-shot mode does, and
fixes a bug whereby the _stub.h file couldn't be found when compiling
with --make.
simonpj [Wed, 20 Oct 2004 13:34:27 +0000 (13:34 +0000)]
[project @ 2004-10-20 13:34:04 by simonpj]
---------------------------------
Fix a bug in usage recording
---------------------------------
As a result of the new stuff on hi-boot-file consistency checking, I
accidentally caused Foo.hi to record a usage line for module Foo, and
this in turn caused rather nasty bad things to happen. In particular,
there were occasional crashes of form
ghc-6.3: panic! (the `impossible' happened, GHC version 6.3.
20041017):
forkM Constructor Var.TcTyVar{d r1B9}
At least I think that's why the crash happened.
Anyway, it was certainly a bug, and this commit fixes it. The main
payload of this fix is in Desugar.lhs; the rest is comments and
tidying.
simonmar [Wed, 20 Oct 2004 11:16:08 +0000 (11:16 +0000)]
[project @ 2004-10-20 11:16:08 by simonmar]
Fix braino in pprAsmCLbl
simonmar [Tue, 19 Oct 2004 08:52:33 +0000 (08:52 +0000)]
[project @ 2004-10-19 08:52:33 by simonmar]
GhcWithNativeCodeGen=NO for Sparc, until the old Sparc native codegen
is updated (not likely to happen soon).
igloo [Mon, 18 Oct 2004 18:27:36 +0000 (18:27 +0000)]
[project @ 2004-10-18 18:27:36 by igloo]
Remove -static flags for alpha and hppa.
Turns out mips(el) on Linux is more complicated than first appeared, so
leaving it be for now.
igloo [Mon, 18 Oct 2004 18:25:06 +0000 (18:25 +0000)]
[project @ 2004-10-18 18:24:59 by igloo]
Implement -fwarn-incomplete-record-updates
simonmar [Mon, 18 Oct 2004 15:38:27 +0000 (15:38 +0000)]
[project @ 2004-10-18 15:38:27 by simonmar]
Fix a source location bug (by deleting a line of code!)
desrt [Mon, 18 Oct 2004 12:40:37 +0000 (12:40 +0000)]
[project @ 2004-10-18 12:40:37 by desrt]
the splitter now supports linux/powerpc
simonmar [Mon, 18 Oct 2004 11:51:22 +0000 (11:51 +0000)]
[project @ 2004-10-18 11:51:22 by simonmar]
Put the '@' suffix on stdcall ForeignLabels on Windows only.
simonmar [Mon, 18 Oct 2004 11:46:46 +0000 (11:46 +0000)]
[project @ 2004-10-18 11:46:46 by simonmar]
ccallConvAttribute: use __attribute__((__stdcall__)) rather than
__stdcall (the latter is Win32-specific).
simonmar [Mon, 18 Oct 2004 11:38:41 +0000 (11:38 +0000)]
[project @ 2004-10-18 11:38:41 by simonmar]
Make foreign import stdcall "dynamic" work via-C (we'd forgotten to
add the __stdcall qualifier to the type cast for the function).
simonmar [Mon, 18 Oct 2004 08:54:06 +0000 (08:54 +0000)]
[project @ 2004-10-18 08:54:06 by simonmar]
Here's the 6.2.2 announcement
desrt [Mon, 18 Oct 2004 02:16:34 +0000 (02:16 +0000)]
[project @ 2004-10-18 02:16:34 by desrt]
trivial changes to correct a build-breaker that only affects linux/powerpc
simonmar [Fri, 15 Oct 2004 15:29:00 +0000 (15:29 +0000)]
[project @ 2004-10-15 15:28:48 by simonmar]
Add a SrcSpan to the DataCon in a ConPatOut.
simonmar [Fri, 15 Oct 2004 07:48:29 +0000 (07:48 +0000)]
[project @ 2004-10-15 07:48:29 by simonmar]
Declare rtsSupportsBoundThreads() here.
This change should have gone through with the threaded RTS I/O changes
yesterday.
simonmar [Thu, 14 Oct 2004 14:58:51 +0000 (14:58 +0000)]
[project @ 2004-10-14 14:58:37 by simonmar]
Threaded RTS improvements:
- Unix only: implement waitRead#, waitWrite# and delay# in Haskell,
by having a single Haskell thread (the IO manager) performing a blocking
select() operation. Threads communicate with the IO manager
via channels. This is faster than doing the select() in the RTS,
because we only restart the select() when a new request arrives,
rather than each time around the scheduler.
On Windows we just make blocking IO calls, we don't have a fancy IO
manager (yet).
- Simplify the scheduler for the threaded RTS, now that we don't have
to wait for IO in the scheduler loop.
- Remove detectBlackHoles(), which isn't used now (not sure how long
this has been unused for... perhaps it was needed back when main threads
used to be GC roots, so we had to check for blackholes manually rather
than relying on the GC.)
Signals aren't quite right in the threaded RTS. In fact, they're
slightly worse than before, because the thread receiving signals might
be blocked in a C call - previously there always be another thread
stuck in awaitEvent() that would notice the signal, but that's not
true now. I can't see an easy fix yet.
simonmar [Wed, 13 Oct 2004 08:48:47 +0000 (08:48 +0000)]
[project @ 2004-10-13 08:48:47 by simonmar]
Undo part of previous commit, a little testing code sneaked in and
broke all the GHCi tests.
sof [Tue, 12 Oct 2004 16:33:01 +0000 (16:33 +0000)]
[project @ 2004-10-12 16:33:00 by sof]
Had enough of 'make boot' completely rebuilding gmp/ each time around.
simonpj [Mon, 11 Oct 2004 16:16:23 +0000 (16:16 +0000)]
[project @ 2004-10-11 16:16:20 by simonpj]
---------------------------------
Add lists to valid derivable methods
---------------------------------
(It'd be nice to merge this into the stable
branch. It is an increase in functionality, but
it's quite separate from everything else.)
Lists are useful in derivable type classes. E.g. methods like
class Shrinkable a where
op :: a -> [a]
This commit adds them, to join functions and tuples.
simonpj [Mon, 11 Oct 2004 16:13:31 +0000 (16:13 +0000)]
[project @ 2004-10-11 16:13:31 by simonpj]
Remove dead code tcSplitMethodTy
simonpj [Mon, 11 Oct 2004 16:12:58 +0000 (16:12 +0000)]
[project @ 2004-10-11 16:12:58 by simonpj]
---------------------------------
Fix bug in derivable type classes
---------------------------------
MERGE TO STABLE (if poss)
The test for not-supported method types for derivable type classes
was broken. This fixes it.
simonmar [Mon, 11 Oct 2004 14:44:38 +0000 (14:44 +0000)]
[project @ 2004-10-11 14:44:36 by simonmar]
Fixes to readline detection and use.
VS: ----------------------------------------------------------------------
simonmar [Mon, 11 Oct 2004 14:25:46 +0000 (14:25 +0000)]
[project @ 2004-10-11 14:25:44 by simonmar]
Detect whether $(GHC) supports the readline package.
simonpj [Mon, 11 Oct 2004 12:45:51 +0000 (12:45 +0000)]
[project @ 2004-10-11 12:45:51 by simonpj]
Improve error message
simonpj [Mon, 11 Oct 2004 12:44:23 +0000 (12:44 +0000)]
[project @ 2004-10-11 12:44:23 by simonpj]
Fix typo; fixes simpl007
simonmar [Mon, 11 Oct 2004 10:54:57 +0000 (10:54 +0000)]
[project @ 2004-10-11 10:54:57 by simonmar]
genericRaise() hack needed on FreeBSD too.
panne [Sat, 9 Oct 2004 13:21:15 +0000 (13:21 +0000)]
[project @ 2004-10-09 13:21:15 by panne]
Fixed some links
panne [Fri, 8 Oct 2004 17:32:06 +0000 (17:32 +0000)]
[project @ 2004-10-08 17:32:06 by panne]
Fixed typo
simonmar [Fri, 8 Oct 2004 14:13:27 +0000 (14:13 +0000)]
[project @ 2004-10-08 14:13:27 by simonmar]
Comments only
simonpj [Fri, 8 Oct 2004 13:58:56 +0000 (13:58 +0000)]
[project @ 2004-10-08 13:58:49 by simonpj]
------------------------------------------------------
Fix an interaction between zonking of Insts and GADTs
------------------------------------------------------
Insts float outwards, perhaps out of the scope of a type-refining GADT case.
So we have to make sure they are fully zonked wrt the type refinement.
tcSimplifyCheck does this, but there were two omissions
a) the tcInstStupidTheta in TcPat.tcConPat didn't get zonked
b) a Dict and Lit Inst contained an Id that wasn't zonked, to save work
To fix (b), Insts have a little less cached info; the Name is held instead
of the Id, so that the Id doesn't need to be zonked.
One test in typecheck/should_compile/tc182
simonmar [Fri, 8 Oct 2004 12:16:04 +0000 (12:16 +0000)]
[project @ 2004-10-08 12:16:04 by simonmar]
FreeBSD needs -optl-pthread for the threaded way
simonpj [Fri, 8 Oct 2004 11:37:46 +0000 (11:37 +0000)]
[project @ 2004-10-08 11:37:46 by simonpj]
HsNoBang should simply be omitted; fixes a TH_spliceDecl2 test
simonpj [Fri, 8 Oct 2004 11:36:29 +0000 (11:36 +0000)]
[project @ 2004-10-08 11:36:26 by simonpj]
Fix missing case for algTyConRhs; fixes test ghci011
simonpj [Fri, 8 Oct 2004 11:35:26 +0000 (11:35 +0000)]
[project @ 2004-10-08 11:35:26 by simonpj]
Complain about GADTs if not -fglasgow-exts
ross [Fri, 8 Oct 2004 10:16:14 +0000 (10:16 +0000)]
[project @ 2004-10-08 10:16:14 by ross]
Make the sed command turning '#define PACKAGE_FOO "blah"' into
'/* #undef PACKAGE_FOO */' more portable, though a tad less precise.
The use of \| deep inside the pattern is a GNU extension (from sed 2.05).
dons [Fri, 8 Oct 2004 07:23:40 +0000 (07:23 +0000)]
[project @ 2004-10-08 07:23:40 by dons]
For platforms with no PIC method defined, use
LabelAccessStyle of AccessDirectly, in howToAccessLabel.
This seems to keep the ncg working on OpenBSD.
Is this the correct default, Wolfgang?
dons [Fri, 8 Oct 2004 03:09:19 +0000 (03:09 +0000)]
[project @ 2004-10-08 03:09:19 by dons]
Add missing final #else case for howToAccessLabel.
simonpj [Thu, 7 Oct 2004 16:08:42 +0000 (16:08 +0000)]
[project @ 2004-10-07 16:08:36 by simonpj]
Wibbles to hi-boot files and newtypes
wolfgang [Thu, 7 Oct 2004 15:54:42 +0000 (15:54 +0000)]
[project @ 2004-10-07 15:54:03 by wolfgang]
Position Independent Code and Dynamic Linking Support, Part 1
This commit allows generation of position independent code (PIC) that fully supports dynamic linking on Mac OS X and PowerPC Linux.
Other platforms are not yet supported, and there is no support for actually linking or using dynamic libraries - so if you use the -fPIC or -dynamic code generation flags, you have to type your (platform-specific) linker command lines yourself.
nativeGen/PositionIndependentCode.hs:
New file. Look here for some more comments on how this works.
cmm/CLabel.hs:
Add support for DynamicLinkerLabels and PIC base labels - for use inside the NCG.
needsCDecl: Case alternative labels now need C decls, see the codeGen/CgInfoTbls.hs below for details
cmm/Cmm.hs:
Add CmmPicBaseReg (used in NCG),
and CmmLabelDiffOff (used in NCG and for offsets in info tables)
cmm/CmmParse.y:
support offsets in info tables
cmm/PprC.hs:
support CmmLabelDiffOff
Case alternative labels now need C decls (see the codeGen/CgInfoTbls.hs for details), so we need to pprDataExterns for info tables.
cmm/PprCmm.hs:
support CmmLabelDiffOff
codeGen/CgInfoTbls.hs:
no longer store absolute addresses in info tables, instead, we store offsets.
Also, for vectored return points, emit the alternatives _after_ the vector table. This is to work around a limitation in Apple's as, which refuses to handle label differences where one label is at the end of a section. Emitting alternatives after vector info tables makes sure this never happens in GHC generated code. Case alternatives now require prototypes in hc code, though (see changes in PprC.hs, CLabel.hs).
main/CmdLineOpts.lhs:
Add a new option, -fPIC.
main/DriverFlags.hs:
Pass the correct options for PIC to gcc, depending on the platform. Only for powerpc for now.
nativeGen/AsmCodeGen.hs:
Many changes...
Mac OS X-specific management of import stubs is no longer, it's now part of a general mechanism to handle such things for all platforms that need it (Darwin [both ppc and x86], Linux on ppc, and some platforms we don't support).
Move cmmToCmm into its own monad which can accumulate a list of imported symbols. Make it call cmmMakeDynamicReference at the right places.
nativeGen/MachCodeGen.hs:
nativeGen/MachInstrs.hs:
nativeGen/MachRegs.lhs:
nativeGen/PprMach.hs:
nativeGen/RegAllocInfo.hs:
Too many changes to enumerate here, PowerPC specific.
nativeGen/NCGMonad.hs:
NatM still tracks imported symbols, as more labels can be created during code generation (float literals, jump tables; on some platforms all data access has to go through the dynamic linking mechanism).
driver/mangler/ghc-asm.lprl:
Mangle absolute addresses in info tables to offsets.
Correctly pass through GCC-generated PIC for Mac OS X and powerpc linux.
includes/Cmm.h:
includes/InfoTables.h:
includes/Storage.h:
includes/mkDerivedConstants.c:
rts/GC.c:
rts/GCCompact.c:
rts/HeapStackCheck.cmm:
rts/Printer.c:
rts/RetainerProfile.c:
rts/Sanity.c:
Adapt to the fact that info tables now contain offsets.
rts/Linker.c:
Mac-specific: change machoInitSymbolsWithoutUnderscore to support PIC.
mthomas [Thu, 7 Oct 2004 06:38:20 +0000 (06:38 +0000)]
[project @ 2004-10-07 06:38:20 by mthomas]
Check for shell scripts first - they don't exist on my Windows nightly build.
dons [Thu, 7 Oct 2004 03:19:51 +0000 (03:19 +0000)]
[project @ 2004-10-07 03:19:51 by dons]
Need suffix.mk, otherwise .hc bootstrapping dies in ghc/compiler, with
"No rule to make target Foo.o" error.
panne [Wed, 6 Oct 2004 06:14:29 +0000 (06:14 +0000)]
[project @ 2004-10-06 06:14:29 by panne]
Use XML mode, not SGML
dons [Wed, 6 Oct 2004 00:56:59 +0000 (00:56 +0000)]
[project @ 2004-10-06 00:56:59 by dons]
Use >> append onto build.mk, so that build scripts can add extra vars
to build.mk.
Replace grep \(a\|b\) with [ab]. \| is an extended regex, whereas the
[] class is a basic RE -- so it works with BSD grep.
simonmar [Tue, 5 Oct 2004 13:56:32 +0000 (13:56 +0000)]
[project @ 2004-10-05 13:56:31 by simonmar]
Document -ferror-spans
simonpj [Tue, 5 Oct 2004 07:46:41 +0000 (07:46 +0000)]
[project @ 2004-10-05 07:46:41 by simonpj]
Report bogus strictness annotation on newtype
simonpj [Mon, 4 Oct 2004 15:51:04 +0000 (15:51 +0000)]
[project @ 2004-10-04 15:51:00 by simonpj]
------------------------------------
Part-fix an awkward interaction
between case-of-case and GADTs
------------------------------------
Consider
data T a where
MkT :: a -> b -> T a
f = /\a. \(w::a).
case (case ...) of
MkT a' b (p::a') (q::b) -> [p,w]
The danger is that we'll make a join point
j a' p = [p,w]
and that's ill-typed, because (p::a') but (w::a).
Solution so far: don't abstract over a', because the type refinement
maps [a' -> a] . Ultimately that won't work when real refinement goes on.
Then we must abstract over any refined free variables. Hmm. Maybe we
could just abstract over *all* free variables, thereby lambda-lifting
the join point? We should try this.
simonpj [Mon, 4 Oct 2004 09:35:08 +0000 (09:35 +0000)]
[project @ 2004-10-04 09:35:08 by simonpj]
Sort decls in cycle for error message
simonpj [Mon, 4 Oct 2004 09:28:08 +0000 (09:28 +0000)]
[project @ 2004-10-04 09:28:00 by simonpj]
Better reporting of duplicate top-level defns
simonpj [Mon, 4 Oct 2004 09:27:32 +0000 (09:27 +0000)]
[project @ 2004-10-04 09:27:32 by simonpj]
Make combineSrcSpans commutative
simonpj [Mon, 4 Oct 2004 09:11:14 +0000 (09:11 +0000)]
[project @ 2004-10-04 09:11:09 by simonpj]
Improve error locations for binding conflicts
dons [Mon, 4 Oct 2004 05:54:05 +0000 (05:54 +0000)]
[project @ 2004-10-04 05:54:04 by dons]
Warning police. Move prototype of genericRaise into RtsExternal.h, so
the libraries can see it.
wolfgang [Mon, 4 Oct 2004 03:37:22 +0000 (03:37 +0000)]
[project @ 2004-10-04 03:37:22 by wolfgang]
Mac OS X:
Make the Linker deal properly with object files that lack a symbol table or
a dynamic symbol table.
Objects that don't import any symbols don't get a dynamic symbol table,
which caused GHCi to crash.
MERGE TO STABLE
panne [Sun, 3 Oct 2004 17:13:34 +0000 (17:13 +0000)]
[project @ 2004-10-03 17:13:34 by panne]
Warning police (added missing #include)
panne [Sun, 3 Oct 2004 16:50:53 +0000 (16:50 +0000)]
[project @ 2004-10-03 16:50:53 by panne]
Warning police (bring 'raise' into scope)
panne [Sun, 3 Oct 2004 16:50:01 +0000 (16:50 +0000)]
[project @ 2004-10-03 16:50:01 by panne]
Synched with latest GHC #include changes: Add '.' to the #include path manually.
panne [Sun, 3 Oct 2004 16:37:42 +0000 (16:37 +0000)]
[project @ 2004-10-03 16:37:42 by panne]
Warning police
panne [Sun, 3 Oct 2004 16:28:06 +0000 (16:28 +0000)]
[project @ 2004-10-03 16:28:02 by panne]
Improved #include path handling:
* Don't use '-I-', it breaks a lot of system headers, e.g.
#include <GL/glut.h>
fails (when using freeglut), because /usr/include/GL/glut.h contains
#include "freeglut_std.h"
but /usr/include/GL/freeglut_std.h will not be found. It is a bit
debatable if the header is broken and should use
#include "GL/freeglut_std.h"
instead. Anyway, a grep through the SuSE 9.1 system headers shows that
there seems to be no real common practice, so let's play safe and don't
use '-I-'.
* Don't use '-I .', #include stub headers "locally" instead, e.g. use
#include "Concurrent_stub.h"
instead of
#include "Control/Concurrent_stub.h"
Note that "Control" is still in the #include path, because the *.hc file
is normally in /tmp and the stub header is in the directory where *.hs
is. We could remove this path element, too, if the stub header would be
copied to the directory of the *.hc file during compilation. SimonM?
ross [Sun, 3 Oct 2004 16:17:15 +0000 (16:17 +0000)]
[project @ 2004-10-03 16:17:08 by ross]
spelling
dons [Sun, 3 Oct 2004 02:04:29 +0000 (02:04 +0000)]
[project @ 2004-10-03 02:04:29 by dons]
Make sure genericRaise symbol is defined on all platforms, so Linker.c
won't complain, even if they don't actually use it.
wolfgang [Sat, 2 Oct 2004 15:12:49 +0000 (15:12 +0000)]
[project @ 2004-10-02 15:12:48 by wolfgang]
Deal with Apple's broken cpp 3.3 (you know, the one that inserts useless
#pragma lines into it's output) by filtering it's output through
grep -v.
This shouldn't be a problem for other platforms, and it's much simpler
than to make the parsers for ghc-pkg, genprimopcode and happy ignore
those lines.
MERGE TO STABLE
dons [Sat, 2 Oct 2004 07:32:29 +0000 (07:32 +0000)]
[project @ 2004-10-02 07:32:25 by dons]
When linking against libpthreads, raise(3) can behave strangely on
some platforms (OpenBSD at least, maybe other BSDs, not Linux). So use
pthread_kill() to generate signals when running the threaded rts,
instead of raise(), when System.Posix.Signals.raiseSignal is called.
raiseSignal will call genericRaise, in the rts, which knows which
function to use.
panne [Fri, 1 Oct 2004 19:23:47 +0000 (19:23 +0000)]
[project @ 2004-10-01 19:23:47 by panne]
Layout rule again...
simonpj [Fri, 1 Oct 2004 16:39:39 +0000 (16:39 +0000)]
[project @ 2004-10-01 16:39:26 by simonpj]
Allow kind signatures in GADT data type declarations
simonpj [Fri, 1 Oct 2004 16:04:23 +0000 (16:04 +0000)]
[project @ 2004-10-01 16:04:23 by simonpj]
First-cut documentation for GADTs
simonpj [Fri, 1 Oct 2004 16:03:58 +0000 (16:03 +0000)]
[project @ 2004-10-01 16:03:58 by simonpj]
A bit more about hi-boot
simonpj [Fri, 1 Oct 2004 14:25:12 +0000 (14:25 +0000)]
[project @ 2004-10-01 14:25:12 by simonpj]
Comments only
ross [Fri, 1 Oct 2004 13:46:07 +0000 (13:46 +0000)]
[project @ 2004-10-01 13:46:07 by ross]
fix dummy ASSERTM2 macro
simonpj [Fri, 1 Oct 2004 13:42:57 +0000 (13:42 +0000)]
[project @ 2004-10-01 13:42:04 by simonpj]
------------------------------------
Simplify the treatment of newtypes
Complete hi-boot file consistency checking
------------------------------------
In the representation of types, newtypes used to have a special constructor
all to themselves, very like TyConApp, called NewTcApp. The trouble is
that means we have to *know* when a newtype is a newtype, and in an hi-boot
context we may not -- the data type might be declared as
data T
in the hi-boot file, but as
newtype T = ...
in the source file. In GHCi, which accumulates stuff from multiple compiles,
this makes a difference.
So I've nuked NewTcApp. Newtypes are represented using TyConApps again. This
turned out to reduce the total amount of code, and simplify the Type data type,
which is all to the good.
This commit also fixes a few things in the hi-boot consistency checking
stuff.
simonpj [Fri, 1 Oct 2004 11:12:30 +0000 (11:12 +0000)]
[project @ 2004-10-01 11:12:30 by simonpj]
Remove bogus defn in hi-boot
simonpj [Fri, 1 Oct 2004 10:09:36 +0000 (10:09 +0000)]
[project @ 2004-10-01 10:08:49 by simonpj]
-----------------------------------
Do simple checking on hi-boot files
-----------------------------------
This commit arranges that, when compiling A.hs, we compare
the types we infer with those in A.hi-boot, if the latter
exists. (Or, more accurately, if anything A.hs imports in
turn imports A.hi-boot, directly or indirectly.)
This has been on the to-do list forever.
simonpj [Fri, 1 Oct 2004 09:49:14 +0000 (09:49 +0000)]
[project @ 2004-10-01 09:49:14 by simonpj]
Generate in the @size suffix for a stdcall symbol properly.
wolfgang [Fri, 1 Oct 2004 03:52:57 +0000 (03:52 +0000)]
[project @ 2004-10-01 03:52:57 by wolfgang]
Replace \? by \{0,1\} in the sed regular expressions, as the former
does not work with Mac OS X's (= BSD's) sed.
I'm a bit confused by the situation here:
According to Mac OS X man pages, the latter syntax is part of the
POSIX 1003.2 standard for basic regular expressions, while the former
is not. According to the manpage installed with my Gentoo linux, neither
is in the POSIX standard.
However, GNU sed accepts both \? and \{0,1\}, while Mac OS X's sed accepts
only \{0,1\}.
panne [Thu, 30 Sep 2004 21:00:57 +0000 (21:00 +0000)]
[project @ 2004-09-30 21:00:57 by panne]
Stylistic changes
panne [Thu, 30 Sep 2004 20:56:49 +0000 (20:56 +0000)]
[project @ 2004-09-30 20:56:49 by panne]
Get all project info from configure.ac
panne [Thu, 30 Sep 2004 19:24:53 +0000 (19:24 +0000)]
[project @ 2004-09-30 19:24:53 by panne]
Make it compile with a GHC 6.x. The layout rule seems to be a mystery
even for one of the "fathers" of Haskell... :-}
simonpj [Thu, 30 Sep 2004 14:45:41 +0000 (14:45 +0000)]
[project @ 2004-09-30 14:45:41 by simonpj]
Add HsPat.hi-boot
simonpj [Thu, 30 Sep 2004 10:40:21 +0000 (10:40 +0000)]
[project @ 2004-09-30 10:35:15 by simonpj]
------------------------------------
Add Generalised Algebraic Data Types
------------------------------------
This rather big commit adds support for GADTs. For example,
data Term a where
Lit :: Int -> Term Int
App :: Term (a->b) -> Term a -> Term b
If :: Term Bool -> Term a -> Term a
..etc..
eval :: Term a -> a
eval (Lit i) = i
eval (App a b) = eval a (eval b)
eval (If p q r) | eval p = eval q
| otherwise = eval r
Lots and lots of of related changes throughout the compiler to make
this fit nicely.
One important change, only loosely related to GADTs, is that skolem
constants in the typechecker are genuinely immutable and constant, so
we often get better error messages from the type checker. See
TcType.TcTyVarDetails.
There's a new module types/Unify.lhs, which has purely-functional
unification and matching for Type. This is used both in the typechecker
(for type refinement of GADTs) and in Core Lint (also for type refinement).
simonmar [Thu, 30 Sep 2004 10:31:58 +0000 (10:31 +0000)]
[project @ 2004-09-30 10:31:58 by simonmar]
Add -I- after the include paths when running gcc. This prevents
accidental shadowing of system includes by putting a file called
eg. stdint.h in the current directory.
krasimir [Thu, 30 Sep 2004 05:54:18 +0000 (05:54 +0000)]
[project @ 2004-09-30 05:54:18 by krasimir]
absCSyn directory doesn't exists in the HEAD
dons [Thu, 30 Sep 2004 03:05:21 +0000 (03:05 +0000)]
[project @ 2004-09-30 03:05:21 by dons]
Look for getpwnam, getpwuid.
wolfgang [Wed, 29 Sep 2004 16:51:16 +0000 (16:51 +0000)]
[project @ 2004-09-29 16:51:16 by wolfgang]
Mac OS X:
Fix a serious bug in the linker's handling of Mach-O's
GENERIC_RELOC_VANILLA relocations.
MERGE TO STABLE
simonpj [Wed, 29 Sep 2004 13:46:17 +0000 (13:46 +0000)]
[project @ 2004-09-29 13:46:17 by simonpj]
Remove unused defnition
ross [Wed, 29 Sep 2004 09:49:21 +0000 (09:49 +0000)]
[project @ 2004-09-29 09:49:21 by ross]
revise the description of rebindable syntax to match what it seems to do
simonmar [Tue, 28 Sep 2004 15:08:58 +0000 (15:08 +0000)]
[project @ 2004-09-28 15:08:58 by simonmar]
rts_evalStableIO: set rtsApiCapability to NULL *before* calling
scheduleWaitThread, matching the way the other eval_* functions do
this.
The previous way lead to a suble race condition:
- thread A calls rts_evalIO, enters scheduleWaitThread()
(rtsApiCapability == NULL).
- thread B calls rts_evalStableIO, creates a main thread and enters
scheduleWaitThread() (rtsApiCapability == &MainCapability)
- thread A exits scheduleWaitThread, sees that rtsApiCapability is
non-NULL, and calls releaseCapability() on it. This is bogus,
because thread A doesn't actually hold the capability, and we've
done a double-release.
This scenario leads to assertion failures in a debug threaded RTS, and
probably crashes in a non-debug threaded RTS.
MERGE TO STABLE
simonmar [Tue, 28 Sep 2004 13:15:19 +0000 (13:15 +0000)]
[project @ 2004-09-28 13:15:19 by simonmar]
Avoid some warnings from gcc by appending an 'LL' suffix to 64-bit
integers on a 32-bit platform.
Suggested by: Sven Panne <Sven.Panne@aedion.de>
simonmar [Tue, 28 Sep 2004 11:40:26 +0000 (11:40 +0000)]
[project @ 2004-09-28 11:40:26 by simonmar]
oops, revert version number to 6.3 again
simonmar [Tue, 28 Sep 2004 09:00:56 +0000 (09:00 +0000)]
[project @ 2004-09-28 09:00:56 by simonmar]
Ignore RULES pragmas unless we're in -fglasgow-exts mode.
wolfgang [Mon, 27 Sep 2004 17:43:47 +0000 (17:43 +0000)]
[project @ 2004-09-27 17:43:47 by wolfgang]
Mac OS X: Fix an incorrect ASSERT
Merge to STABLE
wolfgang [Mon, 27 Sep 2004 15:55:28 +0000 (15:55 +0000)]
[project @ 2004-09-27 15:55:25 by wolfgang]
GHCi support for PowerPC Linux, courtesy of Ryan Lortie <desrt@desrt.ca>.
MERGE TO STABLE
simonmar [Mon, 27 Sep 2004 13:49:26 +0000 (13:49 +0000)]
[project @ 2004-09-27 13:49:26 by simonmar]
A few updates to the local Emacs variables in these files. For some
reason, I can't get Emacs' PSGML mode to work with the new XML files
(although I thought I had it working before... strange).
simonmar [Mon, 27 Sep 2004 11:48:29 +0000 (11:48 +0000)]
[project @ 2004-09-27 11:48:29 by simonmar]
sed-magic for ProjectVersionInt: make it work for version numbers with
patchlevel components (ToDo: ProjectPatchLevel still isn't set
properly in version.mk, this has to be updated by hand).
simonmar [Mon, 27 Sep 2004 11:35:59 +0000 (11:35 +0000)]
[project @ 2004-09-27 11:35:59 by simonmar]
export errMsgContext
wolfgang [Fri, 24 Sep 2004 16:29:33 +0000 (16:29 +0000)]
[project @ 2004-09-24 16:29:33 by wolfgang]
PowerPC/Mac OS X:
Improve epilogue mangling.
This became necesssary because the new CG may "fall through" for cases in
a switch that are known to never happen, so GCC generates the epilogue code
again. With the previous CG, GCC never generated any epilog code, because
every function ended with an unconditional tail jump.