simonmar [Wed, 4 Feb 2004 15:12:41 +0000 (15:12 +0000)]
[project @ 2004-02-04 15:12:41 by simonmar]
Remove $(SCRIPT_OBJS) from $(MOSTLY_CLEAN_FILES) (added in
prev. commit). It turns out that we put actual sources in
$(SCRIPT_OBJS) in several places, so it does not consist of entirely
re-buildable things.
simonmar [Wed, 4 Feb 2004 10:00:43 +0000 (10:00 +0000)]
[project @ 2004-02-04 10:00:43 by simonmar]
Use parsec package when bootstrapping.
simonpj [Tue, 3 Feb 2004 16:46:33 +0000 (16:46 +0000)]
[project @ 2004-02-03 16:46:33 by simonpj]
Add comments about Template Haskell
simonmar [Tue, 3 Feb 2004 10:50:46 +0000 (10:50 +0000)]
[project @ 2004-02-03 10:50:46 by simonmar]
Go back to using $(OBJS) to build $(HS_PROG).
simonmar [Tue, 3 Feb 2004 10:49:17 +0000 (10:49 +0000)]
[project @ 2004-02-03 10:49:17 by simonmar]
Remove $(SCRIPT_OBJS) from $(OBJS) - it can't be serving any useful
purpose there.
simonmar [Mon, 2 Feb 2004 10:49:20 +0000 (10:49 +0000)]
[project @ 2004-02-02 10:49:20 by simonmar]
Accept '-}' at the end of a LINE pragma, in addition to '#-}', for
compatibility with GHC <= 4.08(!).
simonmar [Mon, 2 Feb 2004 10:07:37 +0000 (10:07 +0000)]
[project @ 2004-02-02 10:07:37 by simonmar]
Fix build
dons [Sun, 1 Feb 2004 23:43:02 +0000 (23:43 +0000)]
[project @ 2004-02-01 23:43:02 by dons]
typo in comment only: 'Browing' -> 'Browsing'
simonmar [Fri, 30 Jan 2004 09:35:20 +0000 (09:35 +0000)]
[project @ 2004-01-30 09:35:20 by simonmar]
On second thoughts, just use $(HS_OBJS) and $(C_OBJS) in the HS_PROG
rule. We don't want SCRIPT_OBJS in there too.
igloo [Wed, 28 Jan 2004 17:26:48 +0000 (17:26 +0000)]
[project @ 2004-01-28 17:26:48 by igloo]
Import getPrimRepSize, isFloatingRep, typePrimRep for alpha.
simonmar [Wed, 28 Jan 2004 10:27:26 +0000 (10:27 +0000)]
[project @ 2004-01-28 10:27:26 by simonmar]
Build $(HS_PROG) from $(OBJS), not $(HS_OBJS). In general a Haskell
program might have C bits too, and we don't want to have to hack this
into the Makefile each time.
simonmar [Wed, 28 Jan 2004 10:22:27 +0000 (10:22 +0000)]
[project @ 2004-01-28 10:22:27 by simonmar]
Don't add C_OBJS to HS_OBJS.
simonpj [Wed, 28 Jan 2004 10:04:25 +0000 (10:04 +0000)]
[project @ 2004-01-28 10:04:25 by simonpj]
---------------------------------------
Fix the WinME/98/95 double-backslash bug
---------------------------------------
Merge to stable branch, at least
once we are sure it's right
Backslashes should not be escaped in command-line arguments for rawSystem,
on Win32. This only actually causes failures on WinME/98/95, and we can't
test that since we don't have it. But this fix seems right regardless.
There are extensive new comments in libraries/base/System/Cmd.hs which
describe the issues.
simonmar [Tue, 27 Jan 2004 14:41:22 +0000 (14:41 +0000)]
[project @ 2004-01-27 14:41:22 by simonmar]
error message sorting wibble
simonpj [Tue, 27 Jan 2004 09:16:27 +0000 (09:16 +0000)]
[project @ 2004-01-27 09:16:27 by simonpj]
Comments only
simonmar [Mon, 26 Jan 2004 11:47:16 +0000 (11:47 +0000)]
[project @ 2004-01-26 11:47:16 by simonmar]
GHC 5.x is required for bootstrapping GHC these days.
simonmar [Mon, 26 Jan 2004 10:04:42 +0000 (10:04 +0000)]
[project @ 2004-01-26 10:04:42 by simonmar]
Fix error message printing
simonmar [Mon, 26 Jan 2004 09:56:30 +0000 (09:56 +0000)]
[project @ 2004-01-26 09:56:29 by simonmar]
unbreak the build
simonmar [Fri, 23 Jan 2004 14:30:34 +0000 (14:30 +0000)]
[project @ 2004-01-23 14:30:34 by simonmar]
For building GHC as a package, we need package.conf.in.
simonmar [Fri, 23 Jan 2004 13:55:30 +0000 (13:55 +0000)]
[project @ 2004-01-23 13:55:28 by simonmar]
Some small steps in the direction of making GHC useable as a library:
- The ErrMsg type is now richer: we keep the location info and the
PrintUnqualified separate until the message is printed out, and
messages have a short summary and "extra info", where the extra
info is used for things like the context info in the typechecker
(stuff that you don't normally want to see in a more visual setting,
where the context is obvious because you're looking at the code).
- hscMain now takes an extra argument of type (Messages -> IO ()),
which says what to do with the error messages. In normal usage,
we just pass ErrUtils.printErrorsAndWarnings, but eg. a development
environment will want to do something different. The direction we
need to head in is for hscMain to *never* do any output to
stdout/stderr except via abstractions like this.
simonmar [Fri, 23 Jan 2004 13:46:49 +0000 (13:46 +0000)]
[project @ 2004-01-23 13:46:49 by simonmar]
typo
simonmar [Fri, 23 Jan 2004 13:44:52 +0000 (13:44 +0000)]
[project @ 2004-01-23 13:44:52 by simonmar]
Changes to support building GHC as a package(!!)
simonmar [Fri, 23 Jan 2004 13:42:40 +0000 (13:42 +0000)]
[project @ 2004-01-23 13:42:40 by simonmar]
Small simplification
simonmar [Fri, 23 Jan 2004 13:37:40 +0000 (13:37 +0000)]
[project @ 2004-01-23 13:37:40 by simonmar]
Some tweaks for standalone packages
ross [Thu, 15 Jan 2004 18:04:47 +0000 (18:04 +0000)]
[project @ 2004-01-15 18:04:45 by ross]
The haskell-src package is no longer needed for bootstrapping.
igloo [Thu, 15 Jan 2004 14:43:25 +0000 (14:43 +0000)]
[project @ 2004-01-15 14:43:17 by igloo]
Split Template Haskell out to its own package and update docs and tests.
simonpj [Mon, 12 Jan 2004 15:47:53 +0000 (15:47 +0000)]
[project @ 2004-01-12 15:47:50 by simonpj]
Wibble to kind inference; add zipWithM, zipWithM_ and use them
simonpj [Mon, 12 Jan 2004 14:36:31 +0000 (14:36 +0000)]
[project @ 2004-01-12 14:36:28 by simonpj]
Wibbles to exporting types abstractly
simonpj [Mon, 12 Jan 2004 12:13:26 +0000 (12:13 +0000)]
[project @ 2004-01-12 12:13:26 by simonpj]
Use PolyAlt when we dont know constructors
simonpj [Mon, 12 Jan 2004 10:02:51 +0000 (10:02 +0000)]
[project @ 2004-01-12 10:02:51 by simonpj]
Elaborate depreceated-pragma docs
panne [Sun, 11 Jan 2004 14:43:14 +0000 (14:43 +0000)]
[project @ 2004-01-11 14:43:14 by panne]
Fixed the previous commit: All lists of Strings in package configuration files
were split at commas to allow list-based variables, but this broke perfectly
sensible things like
["-Wl,-rpath,/usr/lib/jvm-bridge/lib/"]
into
["-Wl","-rpath","/usr/lib/jvm-bridge/lib/"]
which is plainly wrong. Now we do this *only* when a variable occurs on its own,
like:
["${deps}","foo"] => ["base","haskell98","network","foo"]
I have slight doubts about this obscure feature, but Sigbjorn seems to want
it...
Merge to STABLE
simonmar [Fri, 9 Jan 2004 12:43:37 +0000 (12:43 +0000)]
[project @ 2004-01-09 12:43:37 by simonmar]
Interesting - I'm not sure why the .lhs -> .raw-hs rule had an
explicit -cpp option in it, but the .hs -> .raw-hs rule didn't.
Remove it.
simonmar [Fri, 9 Jan 2004 12:42:15 +0000 (12:42 +0000)]
[project @ 2004-01-09 12:42:15 by simonmar]
Use gcc's -P option to avoid CPP #line droppings in the .hs -> .raw-hs rule.
simonmar [Fri, 9 Jan 2004 12:41:13 +0000 (12:41 +0000)]
[project @ 2004-01-09 12:41:12 by simonmar]
Add (missing?) -pgmdll option. Remove duplicate -pgmP option.
simonmar [Fri, 9 Jan 2004 12:37:27 +0000 (12:37 +0000)]
[project @ 2004-01-09 12:37:27 by simonmar]
Comment previous commit.
simonmar [Fri, 9 Jan 2004 12:36:54 +0000 (12:36 +0000)]
[project @ 2004-01-09 12:36:54 by simonmar]
ooh, I didn't know about gcc's -P option. Use it instead of hacky sed
script in .pp suffix rule.
simonmar [Fri, 9 Jan 2004 12:09:23 +0000 (12:09 +0000)]
[project @ 2004-01-09 12:09:23 by simonmar]
Remove extra space in 'Not in scope' error message.
simonmar [Thu, 8 Jan 2004 15:26:44 +0000 (15:26 +0000)]
[project @ 2004-01-08 15:26:44 by simonmar]
delayzh: Round *up* to nearest tick, not down
simonpj [Thu, 8 Jan 2004 11:53:29 +0000 (11:53 +0000)]
[project @ 2004-01-08 11:53:29 by simonpj]
---------------------------------------
Fix a long-standing CSE bug with unboxed tuples
---------------------------------------
Merge to stable
Consider
case f x of
(# a,b #) -> if a>0
then f x -- CSE opportunity
else (# b,a #)
GHC 6.2's CSE pass wrongly optimised this to:
case f x of t
(# a,b #) -> if a>0 then
t -- WRONG
else (# b,a #)
(Wrong because we aren't allowed to mention a case binder for
an unboxed-tuple case.)
This commit fixes the problem.
simonmar [Thu, 8 Jan 2004 10:45:33 +0000 (10:45 +0000)]
[project @ 2004-01-08 10:45:33 by simonmar]
Fix warning message about missing Main module to refer to take into
account the -main-is flag.
simonmar [Thu, 8 Jan 2004 10:34:02 +0000 (10:34 +0000)]
[project @ 2004-01-08 10:34:02 by simonmar]
If a -main-is flag was given, with a module name, use *that* module
name rather than Main when deciding whether to link in batch mode or
not.
MERGE TO STABLE
panne [Tue, 6 Jan 2004 18:50:22 +0000 (18:50 +0000)]
[project @ 2004-01-06 18:50:22 by panne]
Removed unused macros
panne [Tue, 6 Jan 2004 18:39:13 +0000 (18:39 +0000)]
[project @ 2004-01-06 18:39:12 by panne]
Cleaned up libm detection
panne [Tue, 6 Jan 2004 17:20:52 +0000 (17:20 +0000)]
[project @ 2004-01-06 17:20:51 by panne]
Use new FP_CHECK_FUNC macro instead of the slightly obscure FPTOOLS_TRY_LINK_NOWARN
simonmar [Tue, 6 Jan 2004 10:45:22 +0000 (10:45 +0000)]
[project @ 2004-01-06 10:45:22 by simonmar]
Replace -ddump-all and -ddump-most with -v5 and -v4 respectively.
simonmar [Mon, 5 Jan 2004 17:32:35 +0000 (17:32 +0000)]
[project @ 2004-01-05 17:32:35 by simonmar]
Instead of grabbing the handle to the executable by calling
dlopen(NULL,...), use RTLD_DEFAULT as the handle to lookup symbols if
it is available. It seems that RTLD_DEFAULT may be required on
certain systems, although I'm not sure it is available everywhere, so
I've left the old code as fallback in case it isn't available.
igloo [Mon, 5 Jan 2004 15:15:27 +0000 (15:15 +0000)]
[project @ 2004-01-05 15:15:26 by igloo]
Use pprint rather than show . ppr to get String representations of TH
datastructures. Also moved pprint out of the class as we never want to
override it.
simonmar [Mon, 5 Jan 2004 14:54:06 +0000 (14:54 +0000)]
[project @ 2004-01-05 14:54:06 by simonmar]
Fix bug in genOutputFilenameFunc: the -keep-blah-files options weren't
being considered for the final phase. Upshot: -keep-hc-files wasn't
working in --make mode (see driver060 & driver061 tests).
MERGE TO STABLE
simonpj [Mon, 5 Jan 2004 12:11:44 +0000 (12:11 +0000)]
[project @ 2004-01-05 12:11:42 by simonpj]
---------------------------------------
Don't expose constructors as vigorously
---------------------------------------
GHC used to expose the constructors of a data type in the interface file,
even if (a) we were not optimising, and (b) the constructors are not exported.
In practice this isn't really necessary, and it's bad because it forces too
much recompilation. I've been meaning to fix this for some while.
Now the data cons are hidden, even in the interface file, if both (a) and (b)
are true. That means less interface file wobbling.
Mind you, the interface file still changes, because the to/from functions for
generic type classes change their types. But provided you don't use them, you'll
get "compilation not required".
We could play the same game for classes (by hiding their class ops) but that'd
mean we'd have to change the data type for IfaceClassDecl, and I can't be
bothered to do that today. It's unusual to have a class which exports none
of its methods anyway.
On the way, I changed the representation of tcg_exports and mg_exports (from
Avails to NameSet), but that should be externally invisible.
simonpj [Mon, 5 Jan 2004 10:41:05 +0000 (10:41 +0000)]
[project @ 2004-01-05 10:41:04 by simonpj]
Fix globaliseId wibble which was killing ghci
simonpj [Mon, 5 Jan 2004 10:40:41 +0000 (10:40 +0000)]
[project @ 2004-01-05 10:40:41 by simonpj]
Trim imports
simonpj [Mon, 5 Jan 2004 09:35:39 +0000 (09:35 +0000)]
[project @ 2004-01-05 09:35:39 by simonpj]
Buglet in desugaring instance declarations
simonpj [Mon, 5 Jan 2004 09:35:00 +0000 (09:35 +0000)]
[project @ 2004-01-05 09:35:00 by simonpj]
Pretty-print wibbles following Ians changes to TH libs
simonpj [Mon, 5 Jan 2004 08:20:40 +0000 (08:20 +0000)]
[project @ 2004-01-05 08:20:39 by simonpj]
Dont report deprecations arising from uses in the export list
igloo [Sun, 4 Jan 2004 01:48:07 +0000 (01:48 +0000)]
[project @ 2004-01-04 01:48:04 by igloo]
Split the pretty-printer out - pprint will now give you pretty much
anything you are likely to want to pretty-print as a String. For a Doc
you need (to_HPJ_Doc . ppr), which could be made nicer if it is widely
used.
Also took the opportunity to do a bit of module renaming and fixed the
odd typo here and there.
simonpj [Wed, 31 Dec 2003 16:55:17 +0000 (16:55 +0000)]
[project @ 2003-12-31 16:55:17 by simonpj]
point to bash, not sh
simonpj [Wed, 31 Dec 2003 08:23:27 +0000 (08:23 +0000)]
[project @ 2003-12-31 08:23:25 by simonpj]
-----------------------------
Improve deprecation reporting
-----------------------------
[PS: the 1.31 commit of basicTypes/RdrName.lhs
also belongs in this commit.]
Up to now, deprecated functions are only reported when imported
from the module defining them, but not when re-exporting. This
seems wrong -- often a "root" module gathers exports from sub-modules.
It turned out that there was a structural problem: the deprectaions
were getting put in the GlobalRdrEnv, and it simply doesn't have
the defining-module's interface to hand.
So this commit removes gre_deprec from GRE, and moves deprecation
reporting from the individual occurrences (RnEnv.lookupGreRn) to
RnNames.reportUnusedNames. In many ways this is a better place for it,
because there we get a global view of the entire module. For example,
repeated use of a single deprecated thing will only give rise to one
warning instead of multiple warnings.
So here's what we now get:
Foo.hs:3:0:
Warning: Deprecated use of Variable `withObject'
(imported from Foreign.Marshal, but defined in Foreign.Marshal.Utils)
use `with' instead
simonpj [Wed, 31 Dec 2003 08:22:36 +0000 (08:22 +0000)]
[project @ 2003-12-31 08:21:52 by simonpj]
Trim imports
simonpj [Tue, 30 Dec 2003 20:51:24 +0000 (20:51 +0000)]
[project @ 2003-12-30 20:51:24 by simonpj]
Fix imports
simonpj [Tue, 30 Dec 2003 20:24:21 +0000 (20:24 +0000)]
[project @ 2003-12-30 20:24:21 by simonpj]
Typo
simonpj [Tue, 30 Dec 2003 16:29:27 +0000 (16:29 +0000)]
[project @ 2003-12-30 16:29:17 by simonpj]
----------------------------
Re-do kind inference (again)
----------------------------
[WARNING: interface file binary representation has
(as usual) changed slightly; recompile your libraries!]
Inspired by the lambda-cube, for some time GHC has used
type Kind = Type
That is, kinds were represented by the same data type as types.
But GHC also supports unboxed types and unboxed tuples, and these
complicate the kind system by requiring a sub-kind relationship.
Notably, an unboxed tuple is acceptable as the *result* of a
function but not as an *argument*. So we have the following setup:
?
/ \
/ \
?? (#)
/ \
* #
where * [LiftedTypeKind] means a lifted type
# [UnliftedTypeKind] means an unlifted type
(#) [UbxTupleKind] means unboxed tuple
?? [ArgTypeKind] is the lub of *,#
? [OpenTypeKind] means any type at all
In particular:
error :: forall a:?. String -> a
(->) :: ?? -> ? -> *
(\(x::t) -> ...) Here t::?? (i.e. not unboxed tuple)
All this has beome rather difficult to accommodate with Kind=Type, so this
commit splits the two.
* Kind is a distinct type, defined in types/Kind.lhs
* IfaceType.IfaceKind disappears: we just re-use Kind.Kind
* TcUnify.unifyKind is a distinct unifier for kinds
* TyCon no longer needs KindCon and SuperKindCon variants
* TcUnify.zapExpectedType takes an expected Kind now, so that
in TcPat.tcMonoPatBndr we can express that the bound variable
must have an argTypeKind (??).
The big change is really that kind inference is much more systematic and
well behaved. In particular, a kind variable can unify only with a
"simple kind", which is built from * and (->). This deals neatly
with awkward questions about how we can combine sub-kinding with type
inference.
Lots of small consequential changes, especially to the kind-checking
plumbing in TcTyClsDecls. (We played a bit fast and loose before, and
now we have to be more honest, in particular about how kind inference
works for type synonyms. They can have kinds like (* -> #), so
This cures two long-standing SourceForge bugs
* 753777 (tcfail115.hs), which used erroneously to pass,
but crashed in the code generator
type T a = Int -> (# Int, Int #)
f :: T a -> T a
f t = \x -> case t x of r -> r
* 753780 (tc167.hs), which used erroneously to fail
f :: (->) Int# Int#
Still, the result is not entirely satisfactory. In particular
* The error message from tcfail115 is pretty obscure
* SourceForge bug 807249 (Instance match failure on openTypeKind)
is not fixed. Alas.
simonpj [Tue, 30 Dec 2003 14:05:47 +0000 (14:05 +0000)]
[project @ 2003-12-30 14:05:46 by simonpj]
Import trimming
panne [Sun, 28 Dec 2003 13:09:43 +0000 (13:09 +0000)]
[project @ 2003-12-28 13:09:43 by panne]
Added prototype for initAdjustor
panne [Sun, 28 Dec 2003 13:02:46 +0000 (13:02 +0000)]
[project @ 2003-12-28 13:02:46 by panne]
Warning police + a little cleanup of #ifdefs relating to execPage. Added two
TODOs on the way (an adjustor spanning two pages + calling initAdjustor at RTS
startup). Note that execPage is still disabled (why?).
simonmar [Tue, 23 Dec 2003 10:10:53 +0000 (10:10 +0000)]
[project @ 2003-12-23 10:10:53 by simonmar]
Add performMajorGC
simonmar [Mon, 22 Dec 2003 16:27:10 +0000 (16:27 +0000)]
[project @ 2003-12-22 16:27:10 by simonmar]
Fix threaded RTS problem that is currently causing the conc007 test to
loop indefinitely. Comment from the source regarding this change:
/* Major bogosity:
*
* In the threaded RTS, we can't set the virtual timer because the
* thread which has the virtual timer might be sitting waiting for a
* capability, and the virtual timer only ticks in CPU time.
*
* So, possible solutions:
*
* (1) tick in realtime. Not very good, because this ticker is used for
* profiling, and this will give us unreliable time profiling
* results. Furthermore, this requires picking a single OS thread
* to be the timekeeper, which is a bad idea because the thread in
* question might just be making a temporary call into Haskell land.
*
* (2) save/restore the virtual timer around excursions into STG land.
* Sounds great, but I tried it and the resolution of the virtual timer
* isn't good enough (on Linux) - most of our excursions fall
* within the timer's resolution and we never make any progress.
*
* (3) have a virtual timer in every OS thread. Might be reasonable,
* because most of the time there is only ever one of these
* threads running, so it approximates a single virtual timer.
* But still quite bogus (and I got crashes when I tried this).
*
* For now, we're using (1), but this needs a better solution. --SDM
*/
simonmar [Fri, 19 Dec 2003 10:41:14 +0000 (10:41 +0000)]
[project @ 2003-12-19 10:41:14 by simonmar]
Fix DEBUG & !RTS_SUPPORTS_THREADS build (bogus assertion failure)
simonpj [Fri, 19 Dec 2003 10:39:54 +0000 (10:39 +0000)]
[project @ 2003-12-19 10:39:54 by simonpj]
Accept unboxed tuples in type signatures
simonpj [Fri, 19 Dec 2003 10:34:52 +0000 (10:34 +0000)]
[project @ 2003-12-19 10:34:51 by simonpj]
---------------------------------------
Precise locations for duplicate imports
---------------------------------------
As a displacment activity I added reporting for duplicate imports
And more precise locations for the imports themselves. For example:
module T where
import Maybe (isJust,isJust)
import Maybe (isJust)
gives
Foo.hs:
Warning: `isJust' is imported more than once:
imported from Maybe at Foo.hs:4:16-21
imported from Maybe at Foo.hs:3:23-28
imported from Maybe at Foo.hs:3:16-21
panne [Thu, 18 Dec 2003 21:37:56 +0000 (21:37 +0000)]
[project @ 2003-12-18 21:37:56 by panne]
Patch from Andres Loeh: Generate the *.raw-hs files with the inplace
GHC, otherwise one runs into a "fixed-point" problem where only
documentation known to the bootstrapping GHC could be built.
panne [Thu, 18 Dec 2003 21:34:31 +0000 (21:34 +0000)]
[project @ 2003-12-18 21:34:31 by panne]
Synched with latest changes in Hugs' aclocal.m4 (wglGetProcAddress
fiddling)
simonmar [Thu, 18 Dec 2003 13:29:23 +0000 (13:29 +0000)]
[project @ 2003-12-18 13:29:23 by simonmar]
Optimisation in awaitEvent(): reset the abandonRequestWait() signal if
it isn't needed (compensates for not using PulseEvent() in
abandonRequestWait(), see AsyncIO.c for details).
Code cleanup in awaitEvent(): don't test the various exit conditions twice.
simonmar [Thu, 18 Dec 2003 13:27:27 +0000 (13:27 +0000)]
[project @ 2003-12-18 13:27:27 by simonmar]
Fix some threaded RTS bugs:
- in awaitRequests(), it was possible to return immediately even
though wait was set to rtsTrue. This lead to a busy wait loop,
so I've disabled that case (see code for details).
- using PulseEvent in abandonRequestWait() wasn't the right thing,
because it exposed a race condition. Again, see the comment in
the code for details.
simonmar [Thu, 18 Dec 2003 12:24:59 +0000 (12:24 +0000)]
[project @ 2003-12-18 12:24:59 by simonmar]
Add missing 'continue' after 'passCapability'
simonmar [Thu, 18 Dec 2003 10:46:49 +0000 (10:46 +0000)]
[project @ 2003-12-18 10:46:49 by simonmar]
- make --disable-foo work for each of the --enable options
- tidyup: use AC_HELP_STRING everywhere
simonmar [Thu, 18 Dec 2003 09:55:17 +0000 (09:55 +0000)]
[project @ 2003-12-18 09:55:17 by simonmar]
no_glu is spelled no_GLU, and similarly for no_GLUT
simonmar [Thu, 18 Dec 2003 09:32:07 +0000 (09:32 +0000)]
[project @ 2003-12-18 09:32:07 by simonmar]
Undo part of previous merge: the HEAD doesn't export saved_termios (it
is accessed by functions in RtsStartup instead).
sof [Wed, 17 Dec 2003 17:29:28 +0000 (17:29 +0000)]
[project @ 2003-12-17 17:29:28 by sof]
merge rev. 1.106.2.3
sof [Wed, 17 Dec 2003 17:18:27 +0000 (17:18 +0000)]
[project @ 2003-12-17 17:18:27 by sof]
merge rev. 1.128.2.11
simonmar [Wed, 17 Dec 2003 12:17:18 +0000 (12:17 +0000)]
[project @ 2003-12-17 12:17:18 by simonmar]
Fix up following changes to the Capability API. (strange, I'm *sure*
I tested this stuff...)
simonpj [Wed, 17 Dec 2003 11:43:13 +0000 (11:43 +0000)]
[project @ 2003-12-17 11:43:13 by simonpj]
---------------------------------
Gate in a few more instance decls
---------------------------------
When we have
instance T a where...
we need to suck in the instance decl rather more aggressively than we
were. (A case I hadn't thought of because it only happens with
undecideable instances.)
simonpj [Wed, 17 Dec 2003 11:29:42 +0000 (11:29 +0000)]
[project @ 2003-12-17 11:29:40 by simonpj]
-----------------------------------------------------
Fix a subtle loop in the context-reduction machinery
----------------------------------------------------
This bug was provoked by a recent change: when trying to prove
a constraint C, TcSimplify.reduce now adds C to the database before
trying to prove C, thus building recursive dictionaries.
Two bugs
a) If we add C's superclasses (which we were) we can now build a
bogusly-recursive dictionary (see Note [SUPERCLASS-LOOP]).
Solution: in reduce, add C only (via addIrred NoSCs) and then
later use addWanted to add its definition plus SCs.
b) Since we can have recursive definitions, the superclass-loop
handling machinery (findAllDeps) must carry its visited-set
with it (which it was not doing before)
The main file is TcSimplify; but I modified a bunch of others to
take advantage of new function extendVarSetList
panne [Wed, 17 Dec 2003 08:38:14 +0000 (08:38 +0000)]
[project @ 2003-12-17 08:38:14 by panne]
To get wglGetProcAddress on Windows, we have to link with
opengl32.dll, too, even when we are using Cygwin with X11.
simonpj [Tue, 16 Dec 2003 16:25:16 +0000 (16:25 +0000)]
[project @ 2003-12-16 16:24:55 by simonpj]
--------------------
Towards type splices
--------------------
Starts the move to supporting type splices, by making
HsExpr.HsSplice a separate type of its own, and adding
HsSpliceTy constructor to HsType.
simonpj [Tue, 16 Dec 2003 16:24:42 +0000 (16:24 +0000)]
[project @ 2003-12-16 16:24:42 by simonpj]
Trim exports
simonpj [Tue, 16 Dec 2003 16:24:24 +0000 (16:24 +0000)]
[project @ 2003-12-16 16:24:24 by simonpj]
Typo in comment
simonpj [Tue, 16 Dec 2003 16:23:25 +0000 (16:23 +0000)]
[project @ 2003-12-16 16:23:25 by simonpj]
Fix newtype deriving for Enum
simonpj [Tue, 16 Dec 2003 16:21:42 +0000 (16:21 +0000)]
[project @ 2003-12-16 16:21:42 by simonpj]
Remove unused parameter to groupAvails
simonpj [Tue, 16 Dec 2003 16:19:29 +0000 (16:19 +0000)]
[project @ 2003-12-16 16:19:29 by simonpj]
Dont report bindings beginning with _ as unused
simonpj [Tue, 16 Dec 2003 16:19:04 +0000 (16:19 +0000)]
[project @ 2003-12-16 16:19:04 by simonpj]
Rule selection test was exactly backwards
simonpj [Tue, 16 Dec 2003 16:18:08 +0000 (16:18 +0000)]
[project @ 2003-12-16 16:18:08 by simonpj]
Clarify newtype deriving documentation
simonpj [Tue, 16 Dec 2003 16:17:49 +0000 (16:17 +0000)]
[project @ 2003-12-16 16:17:49 by simonpj]
Clarify warn-unused-bindings documention
simonpj [Tue, 16 Dec 2003 14:27:31 +0000 (14:27 +0000)]
[project @ 2003-12-16 14:27:31 by simonpj]
comments only
simonmar [Tue, 16 Dec 2003 13:27:32 +0000 (13:27 +0000)]
[project @ 2003-12-16 13:27:31 by simonmar]
Clean up Capability API
~~~~~~~~~~~~~~~~~~~~~~~
- yieldToReturningWorker() is now yieldCapability(), and performs all
kinds of yielding (both to returning workers and passing to other
OS threads). yieldCapabiltiy() does *not* re-acquire a capability.
- waitForWorkCapabilty() is now waitForCapability().
- releaseCapbility() also releases the capability when passing to
another OS thread. It is the only way to release a capability (apart
from yieldCapability(), which calls releaseCapability() internally).
- passCapability() and passCapabilityToWorker() now do not release the
capability. They just set a flag to indicate where the capabiliy
should go when it it next released.
Other cleanups:
- Removed all the SMP stuff from Schedule.c. It had extensive bitrot,
and was just obfuscating the code. If it is ever needed again,
it can be resurrected from CVS.
- Removed some other dead code in Schedule.c, in an attempt to make
this file more manageable.
simonmar [Tue, 16 Dec 2003 13:19:13 +0000 (13:19 +0000)]
[project @ 2003-12-16 13:19:01 by simonmar]
ANSIfy
simonmar [Mon, 15 Dec 2003 16:45:23 +0000 (16:45 +0000)]
[project @ 2003-12-15 16:45:23 by simonmar]
Add assertion.
simonmar [Mon, 15 Dec 2003 16:43:45 +0000 (16:43 +0000)]
[project @ 2003-12-15 16:43:45 by simonmar]
Debugging output wibble
simonmar [Mon, 15 Dec 2003 16:23:54 +0000 (16:23 +0000)]
[project @ 2003-12-15 16:23:54 by simonmar]
Fix a deadlock: an OS thread returning from a C call could enter
grabReturnCapability, grabbing the capability that was in the process
of being passed to another thread via passCapability. This leads to a
deadlock shortly afterward, because the passCapability flag is still
set, so a normal worker won't pick up the capability when it is
released.
Fix (not sure if this is the best fix, though): don't grab the
capability in grabReturnCapability() if passCapabilty is set.
simonmar [Mon, 15 Dec 2003 14:31:48 +0000 (14:31 +0000)]
[project @ 2003-12-15 14:31:48 by simonmar]
Fix locking bug in awaitEvent(): in one code path it could return with
sched_lock unlocked.
simonmar [Mon, 15 Dec 2003 14:28:39 +0000 (14:28 +0000)]
[project @ 2003-12-15 14:28:39 by simonmar]
Fix bogosity in implementation of ACQUIRE_LOCK/RELEASE_LOCK on Win32.
These functions were essentially doing nothing, due to a missing
dereference on the argument.
I've rewritten them as inlines (to catch type errors) and added some
checking of the return values, which should help catch errors like
this in the future.