ghc-hetmet.git
20 years ago[project @ 2003-06-26 21:55:46 by sof]
sof [Thu, 26 Jun 2003 21:55:47 +0000 (21:55 +0000)]
[project @ 2003-06-26 21:55:46 by sof]
SysTools.removeTmpFiles:
  - never delete source files with a DriverPhases.haskellish_user_src_file
    file extension & loudly complain should the compiler attempt to do so.

    This is a protective measure against bugs elsewhere in the driver pipeline
    (cf., 'ghc-6.0 --make' deleting input files if specified using backward
     instead of forward slashes under win32.)

20 years ago[project @ 2003-06-26 20:58:33 by panne]
panne [Thu, 26 Jun 2003 20:58:33 +0000 (20:58 +0000)]
[project @ 2003-06-26 20:58:33 by panne]
Unbreak GHCi: Add raiseIOzh_fast to RTS_SYMBOLS

20 years ago[project @ 2003-06-26 20:49:32 by panne]
panne [Thu, 26 Jun 2003 20:49:32 +0000 (20:49 +0000)]
[project @ 2003-06-26 20:49:32 by panne]
Warning police: Added #include for strerror

20 years ago[project @ 2003-06-26 20:48:59 by panne]
panne [Thu, 26 Jun 2003 20:48:59 +0000 (20:48 +0000)]
[project @ 2003-06-26 20:48:59 by panne]
Warning police: Fixed Sym macro to generate a real function prototype

20 years ago[project @ 2003-06-26 20:47:47 by panne]
panne [Thu, 26 Jun 2003 20:47:47 +0000 (20:47 +0000)]
[project @ 2003-06-26 20:47:47 by panne]
Warning police: Added cast

20 years ago[project @ 2003-06-26 20:47:08 by panne]
panne [Thu, 26 Jun 2003 20:47:08 +0000 (20:47 +0000)]
[project @ 2003-06-26 20:47:08 by panne]
Warning police: Added newline at end of file

20 years ago[project @ 2003-06-26 12:22:59 by stolz]
stolz [Thu, 26 Jun 2003 12:22:59 +0000 (12:22 +0000)]
[project @ 2003-06-26 12:22:59 by stolz]
Warning Police: include unistd.h if available

20 years ago[project @ 2003-06-25 16:24:56 by simonpj]
simonpj [Wed, 25 Jun 2003 16:24:58 +0000 (16:24 +0000)]
[project @ 2003-06-25 16:24:56 by simonpj]
Wibbles; esp fixing the stage2 build

20 years ago[project @ 2003-06-25 08:20:20 by simonpj]
simonpj [Wed, 25 Jun 2003 08:20:22 +0000 (08:20 +0000)]
[project @ 2003-06-25 08:20:20 by simonpj]
* Remove -ffoldr-build-on
  Add -rrules-off
  Document the change

* Document -fwarn-simple-patterns more

20 years ago[project @ 2003-06-25 08:17:24 by simonpj]
simonpj [Wed, 25 Jun 2003 08:17:24 +0000 (08:17 +0000)]
[project @ 2003-06-25 08:17:24 by simonpj]
Remove dead code

20 years ago[project @ 2003-06-24 13:45:49 by stolz]
stolz [Tue, 24 Jun 2003 13:45:49 +0000 (13:45 +0000)]
[project @ 2003-06-24 13:45:49 by stolz]
Remove large chunk of duplicated documentation.

20 years ago[project @ 2003-06-24 12:56:43 by stolz]
stolz [Tue, 24 Jun 2003 12:56:44 +0000 (12:56 +0000)]
[project @ 2003-06-24 12:56:43 by stolz]
FreeBSD Threaded-RTS wibbles (-pthread in {C,LD}FLAGS)

20 years ago[project @ 2003-06-24 10:03:39 by simonmar]
simonmar [Tue, 24 Jun 2003 10:03:39 +0000 (10:03 +0000)]
[project @ 2003-06-24 10:03:39 by simonmar]
Back out previous revision, the -traditional flag is now added in the
suffix rule for .pp files (see $FPTOOLS_TOP/mk/suffix.mk).

20 years ago[project @ 2003-06-24 10:01:27 by simonmar]
simonmar [Tue, 24 Jun 2003 10:01:27 +0000 (10:01 +0000)]
[project @ 2003-06-24 10:01:27 by simonmar]
"rec" should be a keyword only when -farrows is on, not when
-fglasgow-exts is on.

20 years ago[project @ 2003-06-24 09:44:44 by ross]
ross [Tue, 24 Jun 2003 09:44:44 +0000 (09:44 +0000)]
[project @ 2003-06-24 09:44:44 by ross]
fix bug with ExprStmt, plus some cleaning up.

20 years ago[project @ 2003-06-24 09:43:23 by simonmar]
simonmar [Tue, 24 Jun 2003 09:43:23 +0000 (09:43 +0000)]
[project @ 2003-06-24 09:43:23 by simonmar]
Fix up compilation with GHC 5.02

20 years ago[project @ 2003-06-24 09:32:34 by stolz]
stolz [Tue, 24 Jun 2003 09:32:34 +0000 (09:32 +0000)]
[project @ 2003-06-24 09:32:34 by stolz]
Fix another occurence of openFileEx in stage2

20 years ago[project @ 2003-06-24 08:49:55 by stolz]
stolz [Tue, 24 Jun 2003 08:49:55 +0000 (08:49 +0000)]
[project @ 2003-06-24 08:49:55 by stolz]
- AP_UPD got renamed to AP in rev. 1.18 of ClosureTypes.h
- #if 0-out section which is a sure segfault in the colouring loop

20 years ago[project @ 2003-06-24 08:47:05 by stolz]
stolz [Tue, 24 Jun 2003 08:47:05 +0000 (08:47 +0000)]
[project @ 2003-06-24 08:47:05 by stolz]
Can't use tab stops in GTK

20 years ago[project @ 2003-06-24 08:31:35 by stolz]
stolz [Tue, 24 Jun 2003 08:31:35 +0000 (08:31 +0000)]
[project @ 2003-06-24 08:31:35 by stolz]
Make 'depend' treated GTK includes as missing when building with FrontPanel.

20 years ago[project @ 2003-06-24 08:29:13 by stolz]
stolz [Tue, 24 Jun 2003 08:29:13 +0000 (08:29 +0000)]
[project @ 2003-06-24 08:29:13 by stolz]
Eliminate warnings for ELF_*

20 years ago[project @ 2003-06-24 08:03:15 by simonpj]
simonpj [Tue, 24 Jun 2003 08:03:15 +0000 (08:03 +0000)]
[project @ 2003-06-24 08:03:15 by simonpj]
comments only

20 years ago[project @ 2003-06-24 07:58:18 by simonpj]
simonpj [Tue, 24 Jun 2003 07:58:27 +0000 (07:58 +0000)]
[project @ 2003-06-24 07:58:18 by simonpj]
----------------------------------------------
Add support for Ross Paterson's arrow notation
----------------------------------------------

Ross Paterson's ICFP'01 paper described syntax to support John Hughes's
"arrows", rather as do-notation supports monads.  Except that do-notation is
relatively modest -- you can write monads by hand without much trouble --
whereas arrow-notation is more-or-less essential for writing arrow programs.
It desugars to a massive pile of tuple construction and selection!

For some time, Ross has had a pre-processor for arrow notation, but the
resulting type error messages (reported in terms of the desugared code)
are impenetrable.  This commit integrates the syntax into GHC.  The
type error messages almost certainly still require tuning, but they should
be better than with the pre-processor.

Main syntactic changes (enabled with -farrows)

   exp ::= ... | proc pat -> cmd

   cmd ::= exp1 -<  exp2   |  exp1 >-  exp2
|  exp1 -<< exp2   |  exp1 >>- exp2
| \ pat1 .. patn -> cmd
| let decls in cmd
| if exp then cmd1 else cmd2
| do { cstmt1 .. cstmtn ; cmd }
| (| exp |) cmd1 .. cmdn
| cmd1 qop cmd2
| case exp of { calts }

   cstmt :: = let decls
 |   pat <- cmd
 |   rec { cstmt1 .. cstmtn }
 |   cmd

New keywords and symbols:
proc rec
-<   >-   -<<   >>-
(|  |)

The do-notation in cmds was not described in Ross's ICFP'01 paper; instead
it's in his chapter in The Fun of Programming (Plagrave 2003).

The four arrow-tail forms (-<) etc cover
  (a) which order the pices come in (-<  vs  >-), and
  (b) whether the locally bound variables can be used in the
arrow part (-<  vs  -<<) .
In previous presentations, the higher-order-ness (b) was inferred,
but it makes a big difference to the typing required so it seems more
consistent to be explicit.

The 'rec' form is also available in do-notation:
  * you can use 'rec' in an ordinary do, with the obvious meaning
  * using 'mdo' just says "infer the minimal recs"

Still to do
~~~~~~~~~~~
Top priority is the user manual.

The implementation still lacks an implementation of
the case form of cmd.

Implementation notes
~~~~~~~~~~~~~~~~~~~~
Cmds are parsed, and indeed renamed, as expressions.  The type checker
distinguishes the two.

20 years ago[project @ 2003-06-23 19:40:21 by sof]
sof [Mon, 23 Jun 2003 19:40:21 +0000 (19:40 +0000)]
[project @ 2003-06-23 19:40:21 by sof]
setTmpDir: canonicalise temp file paths under mingw:
  - convert backslashes into forward ones
  - drop trailing slash
  - translate /cygdrive/drive/path to drive:/path, coping with
    cygwin-centric settings for TMP or TEMP.

20 years ago[project @ 2003-06-23 11:46:40 by simonpj]
simonpj [Mon, 23 Jun 2003 11:46:40 +0000 (11:46 +0000)]
[project @ 2003-06-23 11:46:40 by simonpj]
------------------------------------------------------
Make the strictness analyser more conservative for I/O
------------------------------------------------------

Consider
do { let len = <expensive> ;
   ; when (...) (exitWith ExitSuccess)
   ; print len }

Is it safe to evaluate <expensive> before doing the 'when'?  Remember,
<expensive> might raise an exception etc as well.

Normal strictness analysis answer: yes, because either the when... diverges
or raises an exception, or the print will happen.

Correct I/O answer: no, because it's perfectly OK to terminate the program
successfully.  And don't say the 'len' could be pushed down, because (a) sometimes
it can't and (b) sometimes the compiler might float it out.

This commit adds a hack to the demand analyser, so that it treats a case that
looks like I/O (unboxed pair, real-world as first bindre) specially, by lub'ing
the returned strictness type with TopType.  A bit like adding a dummy never-taken
branch.  This seems a bit hack-oid, but it's quick and it works.  Not clear
how to do it 'right', either.

Test is in stranal/should_run/strun003.

20 years ago[project @ 2003-06-23 11:46:06 by simonpj]
simonpj [Mon, 23 Jun 2003 11:46:06 +0000 (11:46 +0000)]
[project @ 2003-06-23 11:46:06 by simonpj]
Fix previous -main-is commit

20 years ago[project @ 2003-06-23 10:35:15 by simonpj]
simonpj [Mon, 23 Jun 2003 10:35:23 +0000 (10:35 +0000)]
[project @ 2003-06-23 10:35:15 by simonpj]
-------------------
Dealing with 'main'
-------------------

1.  In GHC 6.0, a module with no "module Main ... where" header
    elicited an error "main is not in scope" if 'main' is not defined.  We
    don't want this behaviour in GHCi.  This happened because the parser
    expanded the (absent) header to "module Main( main ) where", and the
    'main' in the export list isn't.

Solution: elaborate HsModule to record whether the 'module ..." header was
given explicitly by the user or not.

2.  Add a -main-is flag, and document it, so that you can have a 'main' function
that is not Main.main.  Summary of changes

* The -main-is flag nominates what the main function is to be (see the documentation).
No -main-is flag  says that the main function is Main.main
-main-is Foo.baz says that the main function is Foo.baz
-main-is Foo says that the main function is Foo.main
-main-is baz says that the main function is Main.baz

  Let's say  you say -main-is Foo.baz

* TcRnDriver injects the extra definition
$Mian.main :: IO t
$Main.main = baz
  in the module Foo.   Note the naming, which is a bit different than before;
  previously the extra defn was for Main.$main.  The RTS invokes zdMain_main_closure.

* CodeGen injects an extra initialisation block into module Foo, thus
stginit_zdMain {
stginit_Foo
}
  That ensures that the RTS can initialise stginit_zdMain.

20 years ago[project @ 2003-06-23 10:13:03 by simonmar]
simonmar [Mon, 23 Jun 2003 10:13:03 +0000 (10:13 +0000)]
[project @ 2003-06-23 10:13:03 by simonmar]
openFileEx can't be gotten from GHC.Handle any more.

20 years ago[project @ 2003-06-20 11:14:18 by simonpj]
simonpj [Fri, 20 Jun 2003 11:14:22 +0000 (11:14 +0000)]
[project @ 2003-06-20 11:14:18 by simonpj]
------------------------------
Fix a small quantification bug
------------------------------

We were quantifying over too few type variables, because fdPredsOfInsts was
being too eager to discard predicates. This only affects rather obscure
programs.  Here's the one Iavor found:

class C a b where f :: a -> b
g x = fst (f x)

We want to get the type
    g :: forall a b c.  C a (b,c) => a -> b
but GHC 6.0 bogusly gets
    g :: forall a b.  C a (b,()) => a -> b

A test is in should_compile/tc168

20 years ago[project @ 2003-06-19 18:53:09 by sof]
sof [Thu, 19 Jun 2003 18:53:09 +0000 (18:53 +0000)]
[project @ 2003-06-19 18:53:09 by sof]
add -traditional to SRC_CPP_OPTS to silence (harmless)
'unterminated char constant' warnings when processing .pp files.

20 years ago[project @ 2003-06-19 12:47:08 by simonmar]
simonmar [Thu, 19 Jun 2003 12:47:08 +0000 (12:47 +0000)]
[project @ 2003-06-19 12:47:08 by simonmar]
small optimisation: when evacuating a TSO, only copy the part of the
stack that is above the stack pointer and hence in use (doesn't apply
to most stacks, which are large objects and don't get copied anyhow).

20 years ago[project @ 2003-06-19 11:27:42 by simonmar]
simonmar [Thu, 19 Jun 2003 11:27:42 +0000 (11:27 +0000)]
[project @ 2003-06-19 11:27:42 by simonmar]
Remove slightly bogus -traditional flag from SRC_CPP_OPTS here.

20 years ago[project @ 2003-06-19 11:27:13 by simonmar]
simonmar [Thu, 19 Jun 2003 11:27:13 +0000 (11:27 +0000)]
[project @ 2003-06-19 11:27:13 by simonmar]
We should invoke cpp with $(RAWCPP_OPTS) when processing .pp files.

20 years ago[project @ 2003-06-19 10:42:24 by simonmar]
simonmar [Thu, 19 Jun 2003 10:42:26 +0000 (10:42 +0000)]
[project @ 2003-06-19 10:42:24 by simonmar]
Add raiseIO# primop.

This is part of ensuring that exceptions are *precise* in the IO monad
(as opposed to imprecise exceptions in the pure world).  If we allow
the strictness analyser to see the definition of throwIO:

  throwIO e = IO $ \s -> throw e

then it might re-order evaluation in the IO monad, with the result
that we get _|_ instead of an exception, or one kind of exception when
we were expecting another.  We therefore must prevent the strictness
analyser from doing these reorderings in the IO monad.  Hiding the
definition of throwIO by making it a primop solves part of the problem
(there's more to come).

See SourceForge bug #752149.

20 years ago[project @ 2003-06-19 10:35:37 by simonmar]
simonmar [Thu, 19 Jun 2003 10:35:37 +0000 (10:35 +0000)]
[project @ 2003-06-19 10:35:37 by simonmar]
Style nits only

20 years ago[project @ 2003-06-17 23:26:30 by sof]
sof [Tue, 17 Jun 2003 23:26:30 +0000 (23:26 +0000)]
[project @ 2003-06-17 23:26:30 by sof]
apply SysTools.normalisePath to all fileish_args, not just source files

20 years ago[project @ 2003-06-16 15:32:16 by simonpj]
simonpj [Mon, 16 Jun 2003 15:32:18 +0000 (15:32 +0000)]
[project @ 2003-06-16 15:32:16 by simonpj]
--------------------------
Remove some wired-in types
--------------------------

ptrTyCon, funPtrTyCon, addrTyCon, stablePtrTyCon have no business
being wired in. This commit makes them into knownKey Names, which
is much better.

20 years ago[project @ 2003-06-16 15:31:13 by simonpj]
simonpj [Mon, 16 Jun 2003 15:31:13 +0000 (15:31 +0000)]
[project @ 2003-06-16 15:31:13 by simonpj]
----------------------------------
Fix the "no interface file" bug
----------------------------------

The problem was this.

* Module A imports module B

* ghc --make A

* Remove B.hs, B.hi, and edit A so that it doesn't import B

* ghc --make A

Then GHC would fail, saying it can't find an interface file for B.
Reason: when loading A.hi (loadOldIface) it makes a Name for the
usages it finds.  To make a Name for B things, it needs B's package;
but it can't find B.hi, so it bombs instead.

Solution: don't complain if loadOldIface fails; instead behave just like
if you can't find A.hi.

Fixes a long-standing infelicity.

20 years ago[project @ 2003-06-14 16:54:24 by panne]
panne [Sat, 14 Jun 2003 16:54:24 +0000 (16:54 +0000)]
[project @ 2003-06-14 16:54:24 by panne]
Attempt to fix the nightly builds (untested):
Use our forefathers' syntax to import rawSystem

20 years ago[project @ 2003-06-13 09:27:13 by simonmar]
simonmar [Fri, 13 Jun 2003 09:27:13 +0000 (09:27 +0000)]
[project @ 2003-06-13 09:27:13 by simonmar]
Force -fvia-C when profiling or ticky-ticky is on.

20 years ago[project @ 2003-06-13 08:45:32 by simonmar]
simonmar [Fri, 13 Jun 2003 08:45:32 +0000 (08:45 +0000)]
[project @ 2003-06-13 08:45:32 by simonmar]
- add the OPTIONS pragma to the section on pragmas, with a cross-ref
  to the place it is described.

- tidy up the section on pragams: re-indent and sort the sections
  alphabetically.

20 years ago[project @ 2003-06-13 07:44:15 by simonpj]
simonpj [Fri, 13 Jun 2003 07:44:15 +0000 (07:44 +0000)]
[project @ 2003-06-13 07:44:15 by simonpj]
Clarifying remarks about libdir/bindir

20 years ago[project @ 2003-06-13 06:22:23 by simonpj]
simonpj [Fri, 13 Jun 2003 06:22:23 +0000 (06:22 +0000)]
[project @ 2003-06-13 06:22:23 by simonpj]
Add the commit message as a comment

20 years ago[project @ 2003-06-12 16:50:19 by simonpj]
simonpj [Thu, 12 Jun 2003 16:50:19 +0000 (16:50 +0000)]
[project @ 2003-06-12 16:50:19 by simonpj]
----------------------------------
Fix the no-GHC.Err problem in GHCi
----------------------------------

Merge this to the stable branch.

Pattern-match failure error-ids are wired-in, which means the
GHC.Err interface isn't loaded, which in turn confused the linker
when tried to find what package GHC.Err is from.

Now we exclude wired-in names from the free variables looked at
by the linker (in Linker.linkExpr), and make sure the base package
is loaded unconditionally (DriverState.initPackageList).

20 years ago[project @ 2003-06-12 16:25:31 by simonmar]
simonmar [Thu, 12 Jun 2003 16:25:31 +0000 (16:25 +0000)]
[project @ 2003-06-12 16:25:31 by simonmar]
Urk, don't quote/escape the command name on Windows, because the
compiler is exceedingly naughty and sometimes uses 'perl "..."' as the
command name.

20 years ago[project @ 2003-06-12 16:06:05 by simonmar]
simonmar [Thu, 12 Jun 2003 16:06:07 +0000 (16:06 +0000)]
[project @ 2003-06-12 16:06:05 by simonmar]
Change the type of System.Cmd.rawSystem:

  rawSystem :: FilePath -> [String] -> IO ExitCode

and implement it properly on both Windows & Unix.  The intended
meaning is that the program is executed with *exactly* these
arguments.

We now re-use this rawSystem in the compiler itself (using it directly
from the library if __GLASGOW_HASKELL__ >= 601).

The previous implementation of SysTools.runSomething was broken on
4.08, because Posix.executeFile was broken.  However, implementing the
new rawSystem on 4.08 is tricky, because it uses the FFI marshalling
libraries which weren't present on 4.08.  Hence, bootstrapping from
4.08 is now not possible (it was already not possible on Windows).  It
could be made possible by importing enough FFI marshalling support,
but I won't bother doing that unless/until it is needed.

20 years ago[project @ 2003-06-12 14:37:21 by simonpj]
simonpj [Thu, 12 Jun 2003 14:37:21 +0000 (14:37 +0000)]
[project @ 2003-06-12 14:37:21 by simonpj]
Comments

20 years ago[project @ 2003-06-12 14:36:59 by simonpj]
simonpj [Thu, 12 Jun 2003 14:36:59 +0000 (14:36 +0000)]
[project @ 2003-06-12 14:36:59 by simonpj]
Fix lack of deriving(Typeable) in existentials; merge to stable

20 years ago[project @ 2003-06-12 11:13:07 by simonmar]
simonmar [Thu, 12 Jun 2003 11:13:07 +0000 (11:13 +0000)]
[project @ 2003-06-12 11:13:07 by simonmar]
More intelligent test for ghc-pkg:  if there was a --with-ghc option
to configure, then we now use that as a hint for which ghc-pkg to use.

20 years ago[project @ 2003-06-12 09:48:17 by simonpj]
simonpj [Thu, 12 Jun 2003 09:48:17 +0000 (09:48 +0000)]
[project @ 2003-06-12 09:48:17 by simonpj]
Add more comments from Sigbjorn

20 years ago[project @ 2003-06-11 10:28:43 by simonmar]
simonmar [Wed, 11 Jun 2003 10:28:43 +0000 (10:28 +0000)]
[project @ 2003-06-11 10:28:43 by simonmar]
Ugh. gcc 3.3 has started turning 'static int foo = 0' into a .comm
declaration, presumably to save a few bytes in the binary.  So we must
Deal With It.

20 years ago[project @ 2003-06-11 07:23:06 by simonpj]
simonpj [Wed, 11 Jun 2003 07:23:06 +0000 (07:23 +0000)]
[project @ 2003-06-11 07:23:06 by simonpj]
Add coments

20 years ago[project @ 2003-06-10 17:58:25 by sof]
sof [Tue, 10 Jun 2003 17:58:25 +0000 (17:58 +0000)]
[project @ 2003-06-10 17:58:25 by sof]
hardtop{mingw32}: for now, stick with 'cygpath -w' instead of 'cygpath -m'

20 years ago[project @ 2003-06-10 17:54:56 by sof]
sof [Tue, 10 Jun 2003 17:54:56 +0000 (17:54 +0000)]
[project @ 2003-06-10 17:54:56 by sof]
Normalise filepaths of all source files before doing any processing
of them. This, unsurprisingly, simplifies filepath comparisons on
platforms that support multiple path syntaxes (cf., bidirectional
slashes under mingw/win32.)

This tentatively fixes Sourceforge bug #751175; assuming now bad
interactions arise, a similar change will be made on STABLE.

20 years ago[project @ 2003-06-10 17:46:06 by sof]
sof [Tue, 10 Jun 2003 17:46:06 +0000 (17:46 +0000)]
[project @ 2003-06-10 17:46:06 by sof]
- renamed unDosifyPath as normalisePath
- renamed dosifyPath as platformPath
- dropped dosifyPaths; unused.
- platformPath (ne dosifyPath): drop slicing off of /cygdrive prefixes

20 years ago[project @ 2003-06-10 13:40:11 by simonpj]
simonpj [Tue, 10 Jun 2003 13:40:12 +0000 (13:40 +0000)]
[project @ 2003-06-10 13:40:11 by simonpj]
----------------------------------
Fix the crossDllArg crash (take 2)
----------------------------------

I got this fix completely wrong, again.

The original CoreUtils.rhsIsNonUpd is now renamed again, to
CoreUtils.rhsIsStatic. Yet more comments explain its (now
simplified) working.

20 years ago[project @ 2003-06-10 13:21:26 by simonmar]
simonmar [Tue, 10 Jun 2003 13:21:26 +0000 (13:21 +0000)]
[project @ 2003-06-10 13:21:26 by simonmar]
Add some more optional space to a pattern for compatibility with GCC 3.3.

20 years ago[project @ 2003-06-10 13:01:09 by simonmar]
simonmar [Tue, 10 Jun 2003 13:01:09 +0000 (13:01 +0000)]
[project @ 2003-06-10 13:01:09 by simonmar]
Explain that the hierarchy is not cleanly divided into packages - two
people (at least) have so far been confused that System.Posix.Types is
in base but System.Posix is in unix.

20 years ago[project @ 2003-06-10 11:57:02 by simonmar]
simonmar [Tue, 10 Jun 2003 11:57:02 +0000 (11:57 +0000)]
[project @ 2003-06-10 11:57:02 by simonmar]
Tidy up the $hardtop test:

  - use cygpath -m to calculate $hardtop on Windows, rather than
    our own partial solution.  Fixes building under c:/cygwin
    on Windows.

  - remove some old stuff dealing with paths we used to use at
    Glasgow.

  - use proper AC_MSG macros instead of explicit echo.

MERGE TO STABLE

20 years ago[project @ 2003-06-09 15:37:37 by simonpj]
simonpj [Mon, 9 Jun 2003 15:37:38 +0000 (15:37 +0000)]
[project @ 2003-06-09 15:37:37 by simonpj]
-------------------------
Fix the crossDllArg crash
-------------------------

Test codeGen/should_compile/cg004 tests for this one.  The problem was
that the test for static-ness (i.e. no need to CAFify the thing) encountered
a form we didn't previously expect.  (See cg004)

This fix tidies up CoreUtils.rhsIsNonUpd, which is the original entry point,
renaming it CoreUtils.hasNoRedexes

20 years ago[project @ 2003-06-09 14:10:04 by matthewc]
matthewc [Mon, 9 Jun 2003 14:10:04 +0000 (14:10 +0000)]
[project @ 2003-06-09 14:10:04 by matthewc]
Change argument of stg_exit to int in line with definition.

20 years ago[project @ 2003-06-09 13:17:38 by matthewc]
matthewc [Mon, 9 Jun 2003 13:17:41 +0000 (13:17 +0000)]
[project @ 2003-06-09 13:17:38 by matthewc]
Update IA64 port to work with gcc 3.3.

20 years ago[project @ 2003-06-09 11:41:47 by simonmar]
simonmar [Mon, 9 Jun 2003 11:41:47 +0000 (11:41 +0000)]
[project @ 2003-06-09 11:41:47 by simonmar]
Add a TODO.

20 years ago[project @ 2003-06-09 11:40:06 by simonmar]
simonmar [Mon, 9 Jun 2003 11:40:06 +0000 (11:40 +0000)]
[project @ 2003-06-09 11:40:06 by simonmar]
Add comment.

20 years ago[project @ 2003-06-09 11:22:14 by simonpj]
simonpj [Mon, 9 Jun 2003 11:22:14 +0000 (11:22 +0000)]
[project @ 2003-06-09 11:22:14 by simonpj]
Remove duplicate infix type-con section (thanks to Ross P)

20 years ago[project @ 2003-06-08 20:33:31 by ross]
ross [Sun, 8 Jun 2003 20:33:31 +0000 (20:33 +0000)]
[project @ 2003-06-08 20:33:31 by ross]
fix more gcc 3.3 preprocessor warnings

20 years ago[project @ 2003-06-08 18:12:23 by igloo]
igloo [Sun, 8 Jun 2003 18:12:27 +0000 (18:12 +0000)]
[project @ 2003-06-08 18:12:23 by igloo]
Introduce a ListP for consistency with ListE. Splicing in something with
a list pattern now works too.

Added various list tests.

20 years ago[project @ 2003-06-07 11:20:47 by ross]
ross [Sat, 7 Jun 2003 11:20:49 +0000 (11:20 +0000)]
[project @ 2003-06-07 11:20:47 by ross]
Add $($(HcFlavour)_HAPPY_OPTS) to HAPPY_OPTS, where HcFlavour defaults to GHC.
Packages may GHC_HAPPY_OPTS if they don't want -agc with ghc.

20 years ago[project @ 2003-06-06 16:04:23 by igloo]
igloo [Fri, 6 Jun 2003 16:04:26 +0000 (16:04 +0000)]
[project @ 2003-06-06 16:04:23 by igloo]
Template Haskell Renamings as described in
http://www.haskell.org/pipermail/template-haskell/2003-May/000110.html

20 years ago[project @ 2003-06-06 15:25:08 by sof]
sof [Fri, 6 Jun 2003 15:25:08 +0000 (15:25 +0000)]
[project @ 2003-06-06 15:25:08 by sof]
upd binary mode addition

20 years ago[project @ 2003-06-06 12:35:19 by simonpj]
simonpj [Fri, 6 Jun 2003 12:35:19 +0000 (12:35 +0000)]
[project @ 2003-06-06 12:35:19 by simonpj]
Add a note about ^Z on Win32

20 years ago[project @ 2003-06-06 12:30:38 by reid]
reid [Fri, 6 Jun 2003 12:30:38 +0000 (12:30 +0000)]
[project @ 2003-06-06 12:30:38 by reid]
Add definition for comma.  Include GC_C_OBJS in BUILD_LIB

20 years ago[project @ 2003-06-06 11:18:35 by simonmar]
simonmar [Fri, 6 Jun 2003 11:18:35 +0000 (11:18 +0000)]
[project @ 2003-06-06 11:18:35 by simonmar]
unbreak GHCi

20 years ago[project @ 2003-06-06 10:43:22 by panne]
panne [Fri, 6 Jun 2003 10:43:22 +0000 (10:43 +0000)]
[project @ 2003-06-06 10:43:22 by panne]
Quick fix: Escape double quotes when quoting; affects only WinDoze
builds. While I'm there: Move quoting hell into #ifdef, so its scope
is obvious and changed an #ifndef into an #ifdef (negated conditions
are evil, at least for my small brain).

20 years ago[project @ 2003-06-06 09:43:50 by stolz]
stolz [Fri, 6 Jun 2003 09:43:50 +0000 (09:43 +0000)]
[project @ 2003-06-06 09:43:50 by stolz]
Drop unused import of System.system.

20 years ago[project @ 2003-06-05 16:50:30 by reid]
reid [Thu, 5 Jun 2003 16:50:30 +0000 (16:50 +0000)]
[project @ 2003-06-05 16:50:30 by reid]
Swap rules for building .o files by compiling and by assembling so that we compile if possible

20 years ago[project @ 2003-06-05 14:39:44 by reid]
reid [Thu, 5 Jun 2003 14:39:44 +0000 (14:39 +0000)]
[project @ 2003-06-05 14:39:44 by reid]
Put GC_C_OBJS into OBJS not STUBOBJS

20 years ago[project @ 2003-06-05 14:05:36 by reid]
reid [Thu, 5 Jun 2003 14:05:36 +0000 (14:05 +0000)]
[project @ 2003-06-05 14:05:36 by reid]
s/green-card/greencard/

20 years ago[project @ 2003-06-05 14:04:28 by stolz]
stolz [Thu, 5 Jun 2003 14:04:28 +0000 (14:04 +0000)]
[project @ 2003-06-05 14:04:28 by stolz]
Work around broken getProcessStatus in 5.04.x

20 years ago[project @ 2003-06-05 12:29:31 by reid]
reid [Thu, 5 Jun 2003 12:29:31 +0000 (12:29 +0000)]
[project @ 2003-06-05 12:29:31 by reid]
Add GC_C_OBJS to MOSTLY_CLEAN_FILES

20 years ago[project @ 2003-06-05 12:09:52 by panne]
panne [Thu, 5 Jun 2003 12:09:52 +0000 (12:09 +0000)]
[project @ 2003-06-05 12:09:52 by panne]
Attention: Tentative fix only! But at least this works much better
than before.

From the Linux man page for waitpid:

   [...]
   ERRORS
          ECHILD if  the  process specified in pid does not exist or
                 is not a child of the calling process.   (This  can
                 happen  for  one's  own  child  if  the  action for
                 SIGCHLD is set to SIG_IGN. See also the LINUX NOTES
                 section about threads.)
   [...]

Consequently, we don't ignore SIGCHLD anymore. Further changes:

   * SIGCONT is not ignored anymore, either. What was this for?

   * Don't use WUNTRACED in waitpid. Again, what was this for?

20 years ago[project @ 2003-06-05 10:11:22 by simonmar]
simonmar [Thu, 5 Jun 2003 10:11:22 +0000 (10:11 +0000)]
[project @ 2003-06-05 10:11:22 by simonmar]
- Fix a couple of bugs in yesterday's pipeline cleanup.

- Do some more tidying: share the code for filename generation between
  the two entry points to HscMain, and also share some of the other
  machinery in the Hsc phase.  This fixes some wibbles (things that
  were done in --make mode but not in one-shot, and vice-versa).

  One thing that works now is that if you say 'ghc -keep-hc-files Foo.hs',
  then it automatically switches to -fvia-C mode to generate the .hc file.

20 years ago[project @ 2003-06-04 16:52:06 by stolz]
stolz [Wed, 4 Jun 2003 16:52:07 +0000 (16:52 +0000)]
[project @ 2003-06-04 16:52:06 by stolz]
System.Cmd.system-less invocation of sub-tasks
(Sven approved reverting the OpenGL-Makefile change)

20 years ago[project @ 2003-06-04 15:47:58 by simonmar]
simonmar [Wed, 4 Jun 2003 15:47:59 +0000 (15:47 +0000)]
[project @ 2003-06-04 15:47:58 by simonmar]
Grrr, started off making a small bugfix and ended up doing a major
cleanup operartion.

Anyway, the problem was that -odir wasn't putting the object files in
the right place when the module in question has a hierarchical name.
This was due to the object filename being generated in two different
places: once by the compilation pipeline machinery, and again in the
Finder.  It now works properly when --make is used; I haven't managed
to fix it for one-shot compilations though (some replumbing is
needed).

While I was here, I cleaned up the compilation pipeline machinery
somewhat.  The previous scheme of generating a data structure
representing the phases that need to be executed before actually
executing them was wrong because the structure of the pipeline can
change while it is being executed (eg. if we see {-# OPTIONS -fasm #-}
during the CPP phase).  There were various hacks to deal with this,
but it turned out to be quite messy.

So the new story is that each compilation phase returns the name of
the next phase to execute, and also figures out which file to put its
output in.  This unfortunately means that the knowledge about what
phases are done in what order is now spread throughout the module, but
there are fewer hacks at the higher levels, and overall it seems to be
an improvement.

20 years ago[project @ 2003-06-04 15:18:29 by panne]
panne [Wed, 4 Jun 2003 15:18:30 +0000 (15:18 +0000)]
[project @ 2003-06-04 15:18:29 by panne]
Tentative fixes for Cywgin/MinGW-style pathname confusion

20 years ago[project @ 2003-06-04 15:11:17 by panne]
panne [Wed, 4 Jun 2003 15:11:17 +0000 (15:11 +0000)]
[project @ 2003-06-04 15:11:17 by panne]
Always check for X Window System, otherwise $no_x is not set to "yes"
when there is no X11. Confusing...

20 years ago[project @ 2003-06-04 12:37:09 by reid]
reid [Wed, 4 Jun 2003 12:37:09 +0000 (12:37 +0000)]
[project @ 2003-06-04 12:37:09 by reid]
All changes in this commit are standalone changes only but could usefully be used inplace as well: Don't store package.conf.installed; use a pipe to avoid problems from using stale package.confs.  Also, use PACKAGE, PACKAGE_DEPS, LIBRARY and LIBDIR settings from Makefile when installing pkg.  This requires some ugly sed hackery to overcome ghc-pkg not allowing trailing commas in a list: [a,b,c,]

20 years ago[project @ 2003-06-03 15:07:11 by panne]
panne [Tue, 3 Jun 2003 15:07:11 +0000 (15:07 +0000)]
[project @ 2003-06-03 15:07:11 by panne]
Nuked debugging output

20 years ago[project @ 2003-06-03 11:44:28 by simonpj]
simonpj [Tue, 3 Jun 2003 11:44:28 +0000 (11:44 +0000)]
[project @ 2003-06-03 11:44:28 by simonpj]
Windows ssh info

20 years ago[project @ 2003-06-03 09:41:48 by ross]
ross [Tue, 3 Jun 2003 09:41:51 +0000 (09:41 +0000)]
[project @ 2003-06-03 09:41:48 by ross]
change trailing comments on #else/#endif lines to C style to avoid
warnings from gcc 3.3's preprocessor.

20 years ago[project @ 2003-06-03 09:37:14 by ross]
ross [Tue, 3 Jun 2003 09:37:15 +0000 (09:37 +0000)]
[project @ 2003-06-03 09:37:14 by ross]
fix for gcc 3.3 preprocessor: no layout, end-of-line comments or complex
Haskell comments in macro arguments.

please merge to STABLE

20 years ago[project @ 2003-06-02 16:24:07 by sof]
sof [Mon, 2 Jun 2003 16:24:07 +0000 (16:24 +0000)]
[project @ 2003-06-02 16:24:07 by sof]
Surround copied argv entries in double quotes to avoid quoting issues
(but don't quote me on that.)

Merge to STABLE.

20 years ago[project @ 2003-06-02 16:10:19 by simonpj]
simonpj [Mon, 2 Jun 2003 16:10:19 +0000 (16:10 +0000)]
[project @ 2003-06-02 16:10:19 by simonpj]
Wibbles to tuples

20 years ago[project @ 2003-06-02 14:26:54 by simonpj]
simonpj [Mon, 2 Jun 2003 14:26:55 +0000 (14:26 +0000)]
[project @ 2003-06-02 14:26:54 by simonpj]
Wibbles to nested tuples

20 years ago[project @ 2003-06-02 13:28:08 by simonpj]
simonpj [Mon, 2 Jun 2003 13:28:09 +0000 (13:28 +0000)]
[project @ 2003-06-02 13:28:08 by simonpj]
-------------------------------------
      Fix the big-tuple-from-desugaring problem
-------------------------------------

The desugarer generates a tuple from
- mutually recursive bindings
- pattern bindings

If either bind a lot of variables, GHC can generate a big
tuple that isn't in the library, with subsequent disaster.

This commit fixes the problem, by using nested tuples.  It
does *not* fix the problem with big tuples written by the
user. And there's still a potential desugarer problem with
parallel list comprehensions that bind a lot of variables
(and parallel array comprehensions) -- but I expect they are
much much rarer.

The fix isn't fully tested yet -- I'll try to do that today.

20 years ago[project @ 2003-06-02 13:27:53 by simonpj]
simonpj [Mon, 2 Jun 2003 13:27:53 +0000 (13:27 +0000)]
[project @ 2003-06-02 13:27:53 by simonpj]
Add comments

20 years ago[project @ 2003-06-02 13:27:33 by simonpj]
simonpj [Mon, 2 Jun 2003 13:27:41 +0000 (13:27 +0000)]
[project @ 2003-06-02 13:27:33 by simonpj]
Prune imports

20 years ago[project @ 2003-06-02 13:24:49 by reid]
reid [Mon, 2 Jun 2003 13:24:49 +0000 (13:24 +0000)]
[project @ 2003-06-02 13:24:49 by reid]
GC-generated stubs go in STUBOBJS not OBJS

20 years ago[project @ 2003-06-02 08:52:28 by simonmar]
simonmar [Mon, 2 Jun 2003 08:52:28 +0000 (08:52 +0000)]
[project @ 2003-06-02 08:52:28 by simonmar]
Back out part of previous commit: the text has already changed to not
recommend using 'cvs update -Pd' any more.

20 years ago[project @ 2003-06-02 07:19:15 by stolz]
stolz [Mon, 2 Jun 2003 07:19:15 +0000 (07:19 +0000)]
[project @ 2003-06-02 07:19:15 by stolz]
- warn about running 'cvs update -Pd'
    (run into by: Peter Simons)
- suggest running 'make html' in fptools/libraries before committing
    (*cough*)
- fix speling blunders

(Could somebody validate the SGML, please? Can't do it here :/)