ghc-hetmet.git
20 years ago[project @ 2003-07-09 12:51:37 by simonpj]
simonpj [Wed, 9 Jul 2003 12:51:37 +0000 (12:51 +0000)]
[project @ 2003-07-09 12:51:37 by simonpj]
Remove redundant Var.hi-boot

20 years ago[project @ 2003-07-09 11:08:03 by simonpj]
simonpj [Wed, 9 Jul 2003 11:08:03 +0000 (11:08 +0000)]
[project @ 2003-07-09 11:08:03 by simonpj]
---------------------------------------
Wibble to GHCi constraint simplification
---------------------------------------

The new GHCi constraint-simplification story, with defaulting for
Show, Eq, Ord, should only apply to command-line expressions, not
to modules loaded by GHCi.

Hence new variant, TcSimplify.tcSimplifyInteractive

20 years ago[project @ 2003-07-09 11:06:31 by simonpj]
simonpj [Wed, 9 Jul 2003 11:06:32 +0000 (11:06 +0000)]
[project @ 2003-07-09 11:06:31 by simonpj]
--------------------------
Fix two External-Core bugs
--------------------------

1.  An inadvertent "let x = ...x..." bug in TcRnDriver

2.  Adjust the new -main-is story, so that the root module is called
":Main" instead of "$Main".
    This means that the z-encoded module name is "ZCMain" rather than "zdMain",
    which in keeps the External-Core lexer happy.  And is more consistent generally.

3.  Make the renamer happy to see definitions from modules other than the "home" one,
    when doing External Core.  In the main module, there'll be a definition for
    ZCMain.main.

20 years ago[project @ 2003-07-03 16:22:16 by simonpj]
simonpj [Thu, 3 Jul 2003 16:22:17 +0000 (16:22 +0000)]
[project @ 2003-07-03 16:22:16 by simonpj]
-----------------------
Type defaulting in GHCi
-----------------------

[Merge to stable branch, I think.]

[Part 2 to this commit: add Eq and Ord, to allow

[] == []

at the prompt.

      Extend type defaulting in GHCi so that

ghci>  []
[]

      works.  Suggested by Ralf Hinze.

20 years ago[project @ 2003-07-03 15:14:56 by sof]
sof [Thu, 3 Jul 2003 15:14:59 +0000 (15:14 +0000)]
[project @ 2003-07-03 15:14:56 by sof]
New primop (mingw only),

  asyncDoProc# :: Addr# -> Addr# -> State# RealWorld-> (# State# RealWorld, Int#, Int# #)

which lets a Haskell thread hand off a pointer to external code (1st arg) for
asynchronous execution by the RTS worker thread pool. Second arg is data passed
in to the asynchronous routine. The routine is _not_ permitted to re-enter
the RTS as part of its execution.

20 years ago[project @ 2003-07-03 14:33:18 by simonpj]
simonpj [Thu, 3 Jul 2003 14:33:22 +0000 (14:33 +0000)]
[project @ 2003-07-03 14:33:18 by simonpj]
-----------------------
Type defaulting in GHCi
-----------------------

[Merge to stable branch, I think.]

Extend type defaulting in GHCi so that

ghci>  []
[]

works.  Suggested by Ralf Hinze.

20 years ago[project @ 2003-07-03 14:32:30 by simonpj]
simonpj [Thu, 3 Jul 2003 14:32:30 +0000 (14:32 +0000)]
[project @ 2003-07-03 14:32:30 by simonpj]
Add pointer to TH home page

20 years ago[project @ 2003-07-03 10:55:41 by simonpj]
simonpj [Thu, 3 Jul 2003 10:55:41 +0000 (10:55 +0000)]
[project @ 2003-07-03 10:55:41 by simonpj]
Trim more imports

20 years ago[project @ 2003-07-03 10:35:37 by simonpj]
simonpj [Thu, 3 Jul 2003 10:35:37 +0000 (10:35 +0000)]
[project @ 2003-07-03 10:35:37 by simonpj]
Dont report assert as unused; merge to stable

20 years ago[project @ 2003-07-02 19:41:20 by ross]
ross [Wed, 2 Jul 2003 19:41:43 +0000 (19:41 +0000)]
[project @ 2003-07-02 19:41:20 by ross]
import fix

20 years ago[project @ 2003-07-02 14:59:00 by simonpj]
simonpj [Wed, 2 Jul 2003 14:59:12 +0000 (14:59 +0000)]
[project @ 2003-07-02 14:59:00 by simonpj]
Some random import trimming

20 years ago[project @ 2003-07-02 13:57:10 by stolz]
stolz [Wed, 2 Jul 2003 13:57:10 +0000 (13:57 +0000)]
[project @ 2003-07-02 13:57:10 by stolz]
autoconf probably knows best about vfork()

20 years ago[project @ 2003-07-02 13:18:24 by simonpj]
simonpj [Wed, 2 Jul 2003 13:19:29 +0000 (13:19 +0000)]
[project @ 2003-07-02 13:18:24 by simonpj]
Fixes two minor bugs that I came across in the old
CgCase code generation:

1. We were generating
tmp = Sp[1]
... more uses of Sp[1]....
instead of
tmp = Sp[1]
... more uses of tmp....
in the (case v of ...prim alts...) situation

2. The cost-centre restoration wasn't right for let-no-escapes

I kept this fix separate, becuase it does change the code generated
slightly.

20 years ago[project @ 2003-07-02 13:12:33 by simonpj]
simonpj [Wed, 2 Jul 2003 13:12:39 +0000 (13:12 +0000)]
[project @ 2003-07-02 13:12:33 by simonpj]
------------------------
       Tidy up the code generator
------------------------

The code generation for 'case' expressions had grown
huge and gnarly.  This commit removes about 120 lines of
code, and makes it a lot easier to read too. I think the code
generated is identical.

Part of this was to simplify the StgCase data type, so
that it is more like the Core case: there is a simple list
of alternatives, and the DEFAULT (if present) must be the
first.  This tidies and simplifies other Stg passes.

20 years ago[project @ 2003-07-01 12:25:49 by panne]
panne [Tue, 1 Jul 2003 12:25:49 +0000 (12:25 +0000)]
[project @ 2003-07-01 12:25:49 by panne]
Mention unix package only for non-WinDoze builds.

20 years ago[project @ 2003-07-01 11:44:46 by panne]
panne [Tue, 1 Jul 2003 11:44:46 +0000 (11:44 +0000)]
[project @ 2003-07-01 11:44:46 by panne]
The starting page of the GHC Documentation contains no autoconf tricks
anymore, so keep things simple...

20 years ago[project @ 2003-07-01 11:21:57 by panne]
panne [Tue, 1 Jul 2003 11:21:59 +0000 (11:21 +0000)]
[project @ 2003-07-01 11:21:57 by panne]
Tweaked help strings for --enable-objectio and --enable-hopengl options.

20 years ago[project @ 2003-07-01 10:31:43 by simonpj]
simonpj [Tue, 1 Jul 2003 10:31:43 +0000 (10:31 +0000)]
[project @ 2003-07-01 10:31:43 by simonpj]
Wibble to printing HsSyn variables

20 years ago[project @ 2003-07-01 10:21:21 by simonmar]
simonmar [Tue, 1 Jul 2003 10:21:21 +0000 (10:21 +0000)]
[project @ 2003-07-01 10:21:21 by simonmar]
Add ancient HEP document, which might be revived.

20 years ago[project @ 2003-06-30 15:00:33 by simonmar]
simonmar [Mon, 30 Jun 2003 15:00:33 +0000 (15:00 +0000)]
[project @ 2003-06-30 15:00:33 by simonmar]
Back out previous revision, we'll tackle this a different way.

20 years ago[project @ 2003-06-30 14:40:25 by simonpj]
simonpj [Mon, 30 Jun 2003 14:40:25 +0000 (14:40 +0000)]
[project @ 2003-06-30 14:40:25 by simonpj]
Another buglet in TcRnDriver for ghci

20 years ago[project @ 2003-06-30 14:27:51 by simonpj]
simonpj [Mon, 30 Jun 2003 14:27:52 +0000 (14:27 +0000)]
[project @ 2003-06-30 14:27:51 by simonpj]
-------------------
Fix a subtle GC bug
-------------------

In GHC 6.0, the top-level definition

f = g

gets compiled as a *non-updatable* THUNK_STATIC closure.  Being non-updatable,
it gets only 1 payload field.  Alas, the static-link field for a THUNK_STATIC
goes in the 3rd payload field.  Disaster.

Solution: make such things updatable. This is probably good because it turns
f into an IND_STATIC, which gets shorted out.  (Even better would be to allocate
an IND_STATIC in the first place.)

20 years ago[project @ 2003-06-30 14:17:02 by simonmar]
simonmar [Mon, 30 Jun 2003 14:17:02 +0000 (14:17 +0000)]
[project @ 2003-06-30 14:17:02 by simonmar]
comments only.

20 years ago[project @ 2003-06-30 09:31:46 by ross]
ross [Mon, 30 Jun 2003 09:31:46 +0000 (09:31 +0000)]
[project @ 2003-06-30 09:31:46 by ross]
documentation for -farrows

20 years ago[project @ 2003-06-27 21:17:24 by simonpj]
simonpj [Fri, 27 Jun 2003 21:17:25 +0000 (21:17 +0000)]
[project @ 2003-06-27 21:17:24 by simonpj]
Heal the head

20 years ago[project @ 2003-06-27 18:28:31 by sof]
sof [Fri, 27 Jun 2003 18:28:33 +0000 (18:28 +0000)]
[project @ 2003-06-27 18:28:31 by sof]
Do as for one-shot linking and implicitly supply packages 'base' and
'haskell98' when piecing together a DLL.

Merge to STABLE.

20 years ago[project @ 2003-06-27 18:08:53 by wolfgang]
wolfgang [Fri, 27 Jun 2003 18:08:53 +0000 (18:08 +0000)]
[project @ 2003-06-27 18:08:53 by wolfgang]
PowerPC: Make it work with Apple's version of GCC 3.3

20 years ago[project @ 2003-06-27 16:53:07 by stolz]
stolz [Fri, 27 Jun 2003 16:53:07 +0000 (16:53 +0000)]
[project @ 2003-06-27 16:53:07 by stolz]
Push down CPPFLAGS, CFLAGS and LDFLAGS.

Now ./configure should pick up those flags and hopefully make life a bit
easier for packagers. Notice that some flags which work fine for 'ld'
won't work with ghc, e.g. the combination "-Wl,-E" which 'gtk-config --libs'
suggests, so you'll usually want to set only -I or -L.

> ghc -Wl,-E
ghc-6.0: unrecognised flags: -Wl,-E

http://www.haskell.org/pipermail/glasgow-haskell-users/2003-June/005243.html

20 years ago[project @ 2003-06-27 16:21:10 by stolz]
stolz [Fri, 27 Jun 2003 16:21:11 +0000 (16:21 +0000)]
[project @ 2003-06-27 16:21:10 by stolz]
From genargs.pl:
# This program generates a partial Haskell list of Strings from
# words passed via stdin suitable for use in package.conf, e.g.:
#
#   foo bar   --> "foo", "bar"
#   "foo bar" --> "foo bar"
#   foo\"bar  --> "foo\"bar"
#
# Invoking genargs.pl with -comma will print an initial comma if
# there's anything to print at all.
#
# Sample application in a Makefile:
#  HSIFIED_EXTRA_LD_OPTS= `echo "$(EXTRA_LD_OPTS)" | $(PERL) genargs.pl`
#  PACKAGE_CPP_OPTS += -DHSIFIED_EXTRA_LD_OPTS="$(HSIFIED_EXTRA_LD_OPTS)"

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