ghc-hetmet.git
22 years ago[project @ 2002-05-01 10:45:58 by simonmar]
simonmar [Wed, 1 May 2002 10:45:58 +0000 (10:45 +0000)]
[project @ 2002-05-01 10:45:58 by simonmar]
Mention Haddock and libraries projects.

22 years ago[project @ 2002-05-01 09:30:04 by simonmar]
simonmar [Wed, 1 May 2002 09:30:06 +0000 (09:30 +0000)]
[project @ 2002-05-01 09:30:04 by simonmar]
- When converting ModuleNames to Modules for use in the the module
  initialisation code, look them up in the IfaceTable(s) instead of
  calling findModule again.  They are guaranteed to be in either
  the HomeIfaceTable or the PackageIfaceTable after the renamer,
  so this saves some trips to the filesystem.  Also, move this
  code earlier in the compilation cycle to avoid holding on to the
  renamed syntax for too long (not sure if this makes a difference or
  not, but it definitely looked space-leakish before).

- remove Util.unJust, it is a duplicate of Maybes.expectJust

22 years ago[project @ 2002-05-01 09:10:32 by simonpj]
simonpj [Wed, 1 May 2002 09:10:32 +0000 (09:10 +0000)]
[project @ 2002-05-01 09:10:32 by simonpj]
When reading an interface file, don't discard CPR info even
if -fcpr-off is selected.  The info describes what the .o file
contains, so we can't ignore that!

22 years ago[project @ 2002-04-30 16:34:12 by simonmar]
simonmar [Tue, 30 Apr 2002 16:34:12 +0000 (16:34 +0000)]
[project @ 2002-04-30 16:34:12 by simonmar]
Add a FAQ section.  This will replace the mini-FAQ on the download
page (which we never really kept up to date), and will hopefully
accumulate all sorts of useful Q/As over time.  Please feel free to
add to it...

22 years ago[project @ 2002-04-30 16:23:47 by simonmar]
simonmar [Tue, 30 Apr 2002 16:23:47 +0000 (16:23 +0000)]
[project @ 2002-04-30 16:23:47 by simonmar]
Remove some out of date stuff and tidy up the markup.

22 years ago[project @ 2002-04-30 15:34:24 by simonmar]
simonmar [Tue, 30 Apr 2002 15:34:24 +0000 (15:34 +0000)]
[project @ 2002-04-30 15:34:24 by simonmar]
Enclose the text about the CPP/string gap problem in a section so we
can refer to it easily.

22 years ago[project @ 2002-04-30 15:11:40 by simonmar]
simonmar [Tue, 30 Apr 2002 15:11:40 +0000 (15:11 +0000)]
[project @ 2002-04-30 15:11:40 by simonmar]
Add a section entitled "How do I tell if my bug has already been reported?"

22 years ago[project @ 2002-04-30 14:40:56 by simonmar]
simonmar [Tue, 30 Apr 2002 14:40:56 +0000 (14:40 +0000)]
[project @ 2002-04-30 14:40:56 by simonmar]
Make this work with 'make -j'

22 years ago[project @ 2002-04-30 14:40:33 by simonmar]
simonmar [Tue, 30 Apr 2002 14:40:33 +0000 (14:40 +0000)]
[project @ 2002-04-30 14:40:33 by simonmar]
hsc2hs isn't needed for 'make boot' any more (we do 'make boot all' in
fptools/ghc before booting fptools/libraries).

22 years ago[project @ 2002-04-30 14:19:56 by simonmar]
simonmar [Tue, 30 Apr 2002 14:19:56 +0000 (14:19 +0000)]
[project @ 2002-04-30 14:19:56 by simonmar]
Fix for 'make -j'

22 years ago[project @ 2002-04-30 10:31:50 by simonmar]
simonmar [Tue, 30 Apr 2002 10:31:50 +0000 (10:31 +0000)]
[project @ 2002-04-30 10:31:50 by simonmar]
Mention that you can use :load without any arguments.

22 years ago[project @ 2002-04-30 09:26:14 by simonmar]
simonmar [Tue, 30 Apr 2002 09:26:14 +0000 (09:26 +0000)]
[project @ 2002-04-30 09:26:14 by simonmar]
As Matt Chapman pointed out to me, the argument to allocatePinned() is
in words, not bytes.  Fix the 8-byte alignment tweak (yet again).

22 years ago[project @ 2002-04-29 19:24:57 by panne]
panne [Mon, 29 Apr 2002 19:24:57 +0000 (19:24 +0000)]
[project @ 2002-04-29 19:24:57 by panne]
Guess what: SLIT => FSLIT    :-}

22 years ago[project @ 2002-04-29 18:42:03 by panne]
panne [Mon, 29 Apr 2002 18:42:04 +0000 (18:42 +0000)]
[project @ 2002-04-29 18:42:03 by panne]
(F)SLIT fixes, continued...

22 years ago[project @ 2002-04-29 17:47:02 by panne]
panne [Mon, 29 Apr 2002 17:47:02 +0000 (17:47 +0000)]
[project @ 2002-04-29 17:47:02 by panne]
Sync with latest (F)SLIT changes

22 years ago[project @ 2002-04-29 16:17:55 by simonmar]
simonmar [Mon, 29 Apr 2002 16:17:55 +0000 (16:17 +0000)]
[project @ 2002-04-29 16:17:55 by simonmar]
- Fix bootstrapped compilation,

- Add the following RULE:

text "abc"  ==> ptext SLIT("abc")

  so most of the time there shouldn't be any need to use SLIT().
  I'll go around and apply the opposite of the above RULE once
  I've convinced myself that the RULE does what it should.

22 years ago[project @ 2002-04-29 15:41:59 by simonmar]
simonmar [Mon, 29 Apr 2002 15:41:59 +0000 (15:41 +0000)]
[project @ 2002-04-29 15:41:59 by simonmar]
Add haddock to $(AllProjects)

22 years ago[project @ 2002-04-29 14:03:38 by simonmar]
simonmar [Mon, 29 Apr 2002 14:04:11 +0000 (14:04 +0000)]
[project @ 2002-04-29 14:03:38 by simonmar]
FastString cleanup, stage 1.

The FastString type is no longer a mixture of hashed strings and
literal strings, it contains hashed strings only with O(1) comparison
(except for UnicodeStr, but that will also go away in due course).  To
create a literal instance of FastString, use FSLIT("..").

By far the most common use of the old literal version of FastString
was in the pattern

  ptext SLIT("...")

this combination still works, although it doesn't go via FastString
any more.  The next stage will be to remove the need to use this
special combination at all, using a RULE.

To convert a FastString into an SDoc, now use 'ftext' instead of
'ptext'.

I've also removed all the FAST_STRING related macros from HsVersions.h
except for SLIT and FSLIT, just use the relevant functions from
FastString instead.

22 years ago[project @ 2002-04-28 01:58:29 by sof]
sof [Sun, 28 Apr 2002 01:58:29 +0000 (01:58 +0000)]
[project @ 2002-04-28 01:58:29 by sof]
Heal HEID.

* eRROR_ID: use FSLIT() rather than SLIT() to have "error" be added to
  the FastString hash table rather than as an ext. C string; the Binary
  instance for FastString can't handle the latter, only the former.
  [any deep reasons why not?]

22 years ago[project @ 2002-04-26 22:35:54 by sof]
sof [Fri, 26 Apr 2002 22:35:55 +0000 (22:35 +0000)]
[project @ 2002-04-26 22:35:54 by sof]
When the OS thread is all out of work, shut down in a gentler
manner by calling shutdownHaskell() rather than
shutdownHaskellAndExit(). Give up the sched_mutex lock also.

22 years ago[project @ 2002-04-26 22:31:31 by sof]
sof [Fri, 26 Apr 2002 22:31:31 +0000 (22:31 +0000)]
[project @ 2002-04-26 22:31:31 by sof]
finalizeWeakPointersNow(): synchronously finalize, don't use sep. OS threads (if available.)

22 years ago[project @ 2002-04-26 16:32:03 by simonpj]
simonpj [Fri, 26 Apr 2002 16:32:04 +0000 (16:32 +0000)]
[project @ 2002-04-26 16:32:03 by simonpj]
Fix the bug that Sven found when bootstrapping:

     stgSyn/CoreToStg.lhs:1112:
         Couldn't match `#' against `*'
         When matching types `GHC.Prim.Int#' and `a'
      Expected type: GHC.Prim.Int#
             Inferred type: a
     In the application `error ("cafRefs " ++ (showSDoc (ppr id)))'

I forgot to keep eRROR_ID in the list of wiredInIds in MkId.
Fixed and commented (but not yet tested).

Simon

22 years ago[project @ 2002-04-25 18:48:02 by panne]
panne [Thu, 25 Apr 2002 18:48:02 +0000 (18:48 +0000)]
[project @ 2002-04-25 18:48:02 by panne]
Ooops, I mixed up PowerPC and SPARC ABIs: On SPARC the stack is always
double-word aligned (quad-word on PowerPC), so the "fully correct"
solution is very probably really correct. => Fixed the comment.  :-}

22 years ago[project @ 2002-04-25 18:18:56 by panne]
panne [Thu, 25 Apr 2002 18:18:56 +0000 (18:18 +0000)]
[project @ 2002-04-25 18:18:56 by panne]
Highly untested fixes for SPARC:
   * Commented on "fully correct" solution
   * Flush cache
   * Fixed freeHaskellFunctionPtr

FYI: http://www.cs.unm.edu/~maccabe/classes/341/labman/node12.html
contains a good "Dummy's Guide" to the SPARC stack frame layout.
Just if you can't dig this info up on e.g. SUN's site, because
they've hidden everything useful... :-]

22 years ago[project @ 2002-04-25 15:42:46 by sof]
sof [Thu, 25 Apr 2002 15:42:46 +0000 (15:42 +0000)]
[project @ 2002-04-25 15:42:46 by sof]
add thenIO to knownKeyNames - as was, ghci-HEAD fell over

22 years ago[project @ 2002-04-25 08:57:51 by simonmar]
simonmar [Thu, 25 Apr 2002 08:57:51 +0000 (08:57 +0000)]
[project @ 2002-04-25 08:57:51 by simonmar]
Remove a bogus ASSERT (I *knew* I should have tested that
last change properly... one bug per line, sigh).

22 years ago[project @ 2002-04-25 04:54:55 by sof]
sof [Thu, 25 Apr 2002 04:54:55 +0000 (04:54 +0000)]
[project @ 2002-04-25 04:54:55 by sof]
allocatePinned: do what the prev. commit was billed to do

22 years ago[project @ 2002-04-25 00:29:59 by ken]
ken [Thu, 25 Apr 2002 00:29:59 +0000 (00:29 +0000)]
[project @ 2002-04-25 00:29:59 by ken]
-lpthread requires -lexc on alpha-dec-osf3

22 years ago[project @ 2002-04-24 13:29:01 by simonmar]
simonmar [Wed, 24 Apr 2002 13:29:01 +0000 (13:29 +0000)]
[project @ 2002-04-24 13:29:01 by simonmar]
freeStablePtr(): Only call freeStableName() if sn->ref == 0.

From: Bernard James POPE <bjpop@cs.mu.OZ.AU>

22 years ago[project @ 2002-04-24 11:06:10 by simonpj]
simonpj [Wed, 24 Apr 2002 11:06:11 +0000 (11:06 +0000)]
[project @ 2002-04-24 11:06:10 by simonpj]
Fix an obscure corner situation in case-simplification (cg051)

22 years ago[project @ 2002-04-24 10:12:52 by simonpj]
simonpj [Wed, 24 Apr 2002 10:12:53 +0000 (10:12 +0000)]
[project @ 2002-04-24 10:12:52 by simonpj]
Do the scoped-tyvar fix right this time

22 years ago[project @ 2002-04-24 09:42:18 by simonmar]
simonmar [Wed, 24 Apr 2002 09:42:18 +0000 (09:42 +0000)]
[project @ 2002-04-24 09:42:18 by simonmar]
There's no gmp package these days

22 years ago[project @ 2002-04-23 17:33:54 by ken]
ken [Tue, 23 Apr 2002 17:33:54 +0000 (17:33 +0000)]
[project @ 2002-04-23 17:33:54 by ken]
Replace strncmp() with memcmp(), just to be safe

22 years ago[project @ 2002-04-23 17:16:01 by ken]
ken [Tue, 23 Apr 2002 17:16:01 +0000 (17:16 +0000)]
[project @ 2002-04-23 17:16:01 by ken]
#define _POSIX_C_SOURCE 199506L, so that we get pthread stuff properly on
alpha-dec-osf3.

22 years ago[project @ 2002-04-23 15:49:43 by simonmar]
simonmar [Tue, 23 Apr 2002 15:49:43 +0000 (15:49 +0000)]
[project @ 2002-04-23 15:49:43 by simonmar]
PrelPrimopWrappers -> GHC.PrimopWrappers (in debugging output)

22 years ago[project @ 2002-04-23 15:49:22 by simonmar]
simonmar [Tue, 23 Apr 2002 15:49:22 +0000 (15:49 +0000)]
[project @ 2002-04-23 15:49:22 by simonmar]
Urk, PrelPrimopWrappers is now GHCziPrimopWrappers (sigh, this should
really be done in a less fragile way).

22 years ago[project @ 2002-04-23 15:41:58 by simonmar]
simonmar [Tue, 23 Apr 2002 15:41:58 +0000 (15:41 +0000)]
[project @ 2002-04-23 15:41:58 by simonmar]
Add some folklore about Perl.

22 years ago[project @ 2002-04-23 14:20:18 by sof]
sof [Tue, 23 Apr 2002 14:20:18 +0000 (14:20 +0000)]
[project @ 2002-04-23 14:20:18 by sof]
forkProcess() mingw unused arg tweak

22 years ago[project @ 2002-04-23 11:22:12 by simonmar]
simonmar [Tue, 23 Apr 2002 11:22:12 +0000 (11:22 +0000)]
[project @ 2002-04-23 11:22:12 by simonmar]
Ensure that the *goods* in the array returned by newPinnedByteArray#
are always 8-byte aligned.

22 years ago[project @ 2002-04-23 11:21:39 by simonmar]
simonmar [Tue, 23 Apr 2002 11:21:39 +0000 (11:21 +0000)]
[project @ 2002-04-23 11:21:39 by simonmar]
Always return 8-byte aligned memory from allocatePinned().

22 years ago[project @ 2002-04-23 11:11:15 by simonmar]
simonmar [Tue, 23 Apr 2002 11:11:15 +0000 (11:11 +0000)]
[project @ 2002-04-23 11:11:15 by simonmar]
Remove unnecessary \ at the end of lines

22 years ago[project @ 2002-04-23 09:56:28 by stolz]
stolz [Tue, 23 Apr 2002 09:56:29 +0000 (09:56 +0000)]
[project @ 2002-04-23 09:56:28 by stolz]
- set thread labels to NULL after free()
- labelThread# didn't exit properly

TODO: Labels are prematurely free()d when a thread terminates. Better let
        the GC worry?

22 years ago[project @ 2002-04-23 08:55:47 by simonpj]
simonpj [Tue, 23 Apr 2002 08:55:47 +0000 (08:55 +0000)]
[project @ 2002-04-23 08:55:47 by simonpj]
Reject attempts to rebind built in syntax

22 years ago[project @ 2002-04-23 08:52:16 by simonpj]
simonpj [Tue, 23 Apr 2002 08:52:16 +0000 (08:52 +0000)]
[project @ 2002-04-23 08:52:16 by simonpj]
Without -fglasow-exts, quantify over all mentioned type vars in type sigs

22 years ago[project @ 2002-04-23 08:40:52 by simonmar]
simonmar [Tue, 23 Apr 2002 08:40:52 +0000 (08:40 +0000)]
[project @ 2002-04-23 08:40:52 by simonmar]
Need to pull in thenIO when compiling a stmt now.

22 years ago[project @ 2002-04-23 06:34:26 by sof]
sof [Tue, 23 Apr 2002 06:34:27 +0000 (06:34 +0000)]
[project @ 2002-04-23 06:34:26 by sof]
More sched_mutex related cleanup & fixes; little bit
too delicate for my liking, this.

* Revert lock assumptions for raiseAsync(); now assumed
  to run with sched_mutex held (as it mucks about with a
  TSO).
* stodgily release / acquire sched_mutex around calls
  to startSignalHandlers() (as is done in Signals.c)
* in the presence of user-installed signal handlers, the
  MT-enabled RTS failed to shutdown -- all queues empty
  causes a lone RTS worker thread to pause() waiting for
  signals. This is not the right thing to do; I (temporarily?)
  disabled this signal-wait fallback in MT mode and shut
  down instead. We need to be clearer as to what is a shutdown
  condition in MT mode.

* The use of sched_mutex to protect next_thread_id increments
  is causing headaches; disabled in non-SMP mode right now until
  I've figured out the pthreads-correct way of doing atomic
  increments.

* There's still a ^C-related problem which causes the Haskell
  handler to sometimes induce a SEGV when run. Feel free to debug :)

22 years ago[project @ 2002-04-23 06:19:06 by sof]
sof [Tue, 23 Apr 2002 06:19:06 +0000 (06:19 +0000)]
[project @ 2002-04-23 06:19:06 by sof]
Simplified yieldToReturningWorker(), no need to have OS thread yield

22 years ago[project @ 2002-04-22 16:06:35 by simonpj]
simonpj [Mon, 22 Apr 2002 16:06:37 +0000 (16:06 +0000)]
[project @ 2002-04-22 16:06:35 by simonpj]
CPR control

1.  Remove -fno-cpr, add -fcpr-off which is a simple static flag
    for switching the new CPR analysis off altogether.
    (The "-fno" machinery is rather complicated.)

2.  Rejig SimplCore a little so that the "old strictness analyser"
    runs both the old strictness analyser and the old CPR analyser,
    which makes it more like the new strictness/CPR analyser.

    (How much longer we keep the old strictness/CPR analyser in the
    compiler at all I don't know.  It's just for comparision purposes
    when we write the paper.)

22 years ago[project @ 2002-04-22 14:54:09 by simonmar]
simonmar [Mon, 22 Apr 2002 14:54:10 +0000 (14:54 +0000)]
[project @ 2002-04-22 14:54:09 by simonmar]
Define out-of-line versions of strlen and memcmp for PrimPacked, and
remove the -monly-2-regs flag.

22 years ago[project @ 2002-04-22 14:35:02 by simonmar]
simonmar [Mon, 22 Apr 2002 14:35:02 +0000 (14:35 +0000)]
[project @ 2002-04-22 14:35:02 by simonmar]
temporary fix for PrimPacked compilation problems.

22 years ago[project @ 2002-04-22 14:24:55 by simonmar]
simonmar [Mon, 22 Apr 2002 14:24:55 +0000 (14:24 +0000)]
[project @ 2002-04-22 14:24:55 by simonmar]
Doc --force.

22 years ago[project @ 2002-04-22 14:20:41 by simonmar]
simonmar [Mon, 22 Apr 2002 14:20:41 +0000 (14:20 +0000)]
[project @ 2002-04-22 14:20:41 by simonmar]
Add a --force option to ignore errors about missing directories and libraries.

22 years ago[project @ 2002-04-22 13:50:40 by simonmar]
simonmar [Mon, 22 Apr 2002 13:50:40 +0000 (13:50 +0000)]
[project @ 2002-04-22 13:50:40 by simonmar]
Note the lack of quoting support in :set.

22 years ago[project @ 2002-04-22 13:08:34 by simonmar]
simonmar [Mon, 22 Apr 2002 13:08:34 +0000 (13:08 +0000)]
[project @ 2002-04-22 13:08:34 by simonmar]
Throw out OpApp patterns where the operator is not a constructor here,
rather than later in the typechecker(!).

22 years ago[project @ 2002-04-22 11:50:21 by simonpj]
simonpj [Mon, 22 Apr 2002 11:50:21 +0000 (11:50 +0000)]
[project @ 2002-04-22 11:50:21 by simonpj]
Do forall-hoisting recursively

22 years ago[project @ 2002-04-22 04:40:25 by ken]
ken [Mon, 22 Apr 2002 04:40:25 +0000 (04:40 +0000)]
[project @ 2002-04-22 04:40:25 by ken]
Replace strncmp() with memcmp() for comparing non-zero-terminated strings.

22 years ago[project @ 2002-04-22 00:53:59 by chak]
chak [Mon, 22 Apr 2002 00:53:59 +0000 (00:53 +0000)]
[project @ 2002-04-22 00:53:59 by chak]
Added Sigbjorn to authors list

22 years ago[project @ 2002-04-19 12:37:48 by simonmar]
simonmar [Fri, 19 Apr 2002 12:37:48 +0000 (12:37 +0000)]
[project @ 2002-04-19 12:37:48 by simonmar]
Update the system requirements section to mention Alpha and
PowerPC/MacOSX lest I forget later.

22 years ago[project @ 2002-04-19 12:31:07 by simonmar]
simonmar [Fri, 19 Apr 2002 12:31:07 +0000 (12:31 +0000)]
[project @ 2002-04-19 12:31:07 by simonmar]
Improve the code that finds the text/data section boundaries on
MacOS/X, from Wolfgang Thaller.

22 years ago[project @ 2002-04-19 12:27:51 by simonmar]
simonmar [Fri, 19 Apr 2002 12:27:51 +0000 (12:27 +0000)]
[project @ 2002-04-19 12:27:51 by simonmar]
MacOS/X fixes, from Wolfgang Thaller.

22 years ago[project @ 2002-04-19 12:26:47 by simonmar]
simonmar [Fri, 19 Apr 2002 12:26:47 +0000 (12:26 +0000)]
[project @ 2002-04-19 12:26:47 by simonmar]
#include "../includes/config.h", because we use WORDS_BIGENDIAN.

(from Wolfgang Thaller)

22 years ago[project @ 2002-04-19 12:25:06 by simonmar]
simonmar [Fri, 19 Apr 2002 12:25:06 +0000 (12:25 +0000)]
[project @ 2002-04-19 12:25:06 by simonmar]
MacOS/X fixes, from Wolfgang Thaller.

22 years ago[project @ 2002-04-19 12:23:11 by simonmar]
simonmar [Fri, 19 Apr 2002 12:23:11 +0000 (12:23 +0000)]
[project @ 2002-04-19 12:23:11 by simonmar]
Update this file to not use ISO C99 labelled initializers - this means
it will compile on MacOS/X.

22 years ago[project @ 2002-04-19 10:25:00 by simonmar]
simonmar [Fri, 19 Apr 2002 10:25:00 +0000 (10:25 +0000)]
[project @ 2002-04-19 10:25:00 by simonmar]
- traverse_weak_ptr_list(): Deal with EVACUATED objects on the weak
  pointer list.

- mark_weak_ptr_list(): add an assertion.

22 years ago[project @ 2002-04-19 10:23:43 by simonmar]
simonmar [Fri, 19 Apr 2002 10:23:43 +0000 (10:23 +0000)]
[project @ 2002-04-19 10:23:43 by simonmar]
Skip over DEAD_WEAK objects when starting finalizers.

22 years ago[project @ 2002-04-19 10:22:58 by simonmar]
simonmar [Fri, 19 Apr 2002 10:22:58 +0000 (10:22 +0000)]
[project @ 2002-04-19 10:22:58 by simonmar]
Update the comment next to DEAD_WEAK

22 years ago[project @ 2002-04-19 10:15:22 by simonmar]
simonmar [Fri, 19 Apr 2002 10:15:22 +0000 (10:15 +0000)]
[project @ 2002-04-19 10:15:22 by simonmar]
A WEAK pointer gets turned into a DEAD_WEAK by the finalizeWeak#
primop.  It's important that we keep all the fields of the original
WEAK pointer when this happens, so as not to break the linked list of
weak pointers.  Hence, we give the payload size of DEAD_WEAK as 4
non-pointers instead of just 1.

22 years ago[project @ 2002-04-18 19:12:43 by ken]
ken [Thu, 18 Apr 2002 19:12:43 +0000 (19:12 +0000)]
[project @ 2002-04-18 19:12:43 by ken]
Save $gp in StgRun() on the Alpha

22 years ago[project @ 2002-04-18 12:15:56 by simonmar]
simonmar [Thu, 18 Apr 2002 12:15:56 +0000 (12:15 +0000)]
[project @ 2002-04-18 12:15:56 by simonmar]
Check the exit status of the generated C program when we run it, and
exit if it failed (partly from Axel Simon).

22 years ago[project @ 2002-04-18 11:27:59 by simonmar]
simonmar [Thu, 18 Apr 2002 11:27:59 +0000 (11:27 +0000)]
[project @ 2002-04-18 11:27:59 by simonmar]
Don't use doesFileExist on mingw32 as a replacement for checkPerms -
the argument might be a directory, in which case the result will be
False.  Just return True instead - if the file/directory doesn't
exist, the open operation will fail later.

22 years ago[project @ 2002-04-16 21:29:00 by ken]
ken [Tue, 16 Apr 2002 21:29:00 +0000 (21:29 +0000)]
[project @ 2002-04-16 21:29:00 by ken]
Use $(MAKE) rather than literal "make" when making happy-inplace

22 years ago[project @ 2002-04-13 15:06:37 by panne]
panne [Sat, 13 Apr 2002 15:06:37 +0000 (15:06 +0000)]
[project @ 2002-04-13 15:06:37 by panne]
readRational__ has vanished, cut-n-paste to the rescue!
(Is there something similar in the new Read machinery??)

22 years ago[project @ 2002-04-13 15:02:35 by panne]
panne [Sat, 13 Apr 2002 15:02:35 +0000 (15:02 +0000)]
[project @ 2002-04-13 15:02:35 by panne]
Dirty workaround for a strange error after bootstrapping:

   stgSyn/CoreToStg.lhs:1112:
       Couldn't match `#' against `*'
       When matching types `GHC.Prim.Int#' and `a'
   Expected type: GHC.Prim.Int#
           Inferred type: a
   In the application `error ("cafRefs " ++ (showSDoc (ppr id)))'

Should be fixed elsewhere, but I don't know how... :-}

22 years ago[project @ 2002-04-13 13:34:03 by sof]
sof [Sat, 13 Apr 2002 13:34:03 +0000 (13:34 +0000)]
[project @ 2002-04-13 13:34:03 by sof]
Calling-in section: clarify truth vs. fiction

22 years ago[project @ 2002-04-13 05:43:42 by sof]
sof [Sat, 13 Apr 2002 05:43:43 +0000 (05:43 +0000)]
[project @ 2002-04-13 05:43:42 by sof]
added design/impl doc describing ConcHask MT extension

22 years ago[project @ 2002-04-13 05:33:02 by sof]
sof [Sat, 13 Apr 2002 05:33:03 +0000 (05:33 +0000)]
[project @ 2002-04-13 05:33:02 by sof]
- clarified/fixed sched_mutex locking problems when
  calling raiseAsync() from withing the bowels of the Scheduler.
- we now yieldToReturningWorker() as part of the main Scheduler
  loop.
- simplified grabCapability() and waitForWorkCapability() usage.

22 years ago[project @ 2002-04-13 05:28:04 by sof]
sof [Sat, 13 Apr 2002 05:28:04 +0000 (05:28 +0000)]
[project @ 2002-04-13 05:28:04 by sof]
entry points that scheduled/created an external thread weren't correctly blocking on the TSO condition variable; now fixed.

22 years ago[project @ 2002-04-13 05:25:38 by sof]
sof [Sat, 13 Apr 2002 05:25:38 +0000 (05:25 +0000)]
[project @ 2002-04-13 05:25:38 by sof]
yieldToReturningWorker(): once yielded to a returning worker,
thread now directly waits for capability to become available
again (via waitForWorkCapability()) -- simplifies Cap. grabbing
'logic' in the Scheduler.

grabReturnCapability(): assume pMutex is held upon entry.

22 years ago[project @ 2002-04-13 05:18:07 by sof]
sof [Sat, 13 Apr 2002 05:18:07 +0000 (05:18 +0000)]
[project @ 2002-04-13 05:18:07 by sof]
fixed config of PACKAGE_CPP_OPTS in DEBUG mode

22 years ago[project @ 2002-04-13 05:17:11 by sof]
sof [Sat, 13 Apr 2002 05:17:11 +0000 (05:17 +0000)]
[project @ 2002-04-13 05:17:11 by sof]
debug versions of ACQUIRE_LOCK() and RELEASE_LOCK() macros

22 years ago[project @ 2002-04-13 05:16:25 by sof]
sof [Sat, 13 Apr 2002 05:16:25 +0000 (05:16 +0000)]
[project @ 2002-04-13 05:16:25 by sof]
GarbageCollect(): thread resurrection now assumes sched_mutex is held

22 years ago[project @ 2002-04-12 04:00:35 by sof]
sof [Fri, 12 Apr 2002 04:00:35 +0000 (04:00 +0000)]
[project @ 2002-04-12 04:00:35 by sof]
getMBlocks(): if we run into a ENOMEM situation, report blocks requested

22 years ago[project @ 2002-04-12 03:52:31 by sof]
sof [Fri, 12 Apr 2002 03:52:31 +0000 (03:52 +0000)]
[project @ 2002-04-12 03:52:31 by sof]
quibble

22 years ago[project @ 2002-04-11 12:03:29 by simonpj]
simonpj [Thu, 11 Apr 2002 12:03:45 +0000 (12:03 +0000)]
[project @ 2002-04-11 12:03:29 by simonpj]
-------------------
Mainly derived Read
-------------------

This commit is a tangle of several things that somehow got wound up
together, I'm afraid.

The main course
~~~~~~~~~~~~~~~
Replace the derived-Read machinery with Koen's cunning new parser
combinator library.   The result should be
* much smaller code sizes from derived Read
* faster execution of derived Read

WARNING: I have not thoroughly tested this stuff; I'd be glad if you did!
 All the hard work is done, but there may be a few nits.

The Read class gets two new methods, not exposed
in the H98 inteface of course:
  class Read a where
    readsPrec    :: Int -> ReadS a
    readList     :: ReadS [a]
    readPrec     :: ReadPrec a -- NEW
    readListPrec :: ReadPrec [a] -- NEW

There are the following new libraries:

  Text.ParserCombinators.ReadP Koens combinator parser
  Text.ParserCombinators.ReadPrec Ditto, but with precedences

  Text.Read.Lex An emasculated lexical analyser
that provides the functionality
of H98 'lex'

TcGenDeriv is changed to generate code that uses the new libraries.
The built-in instances of Read (List, Maybe, tuples, etc) use the new
libraries.

Other stuff
~~~~~~~~~~~
1. Some fixes the the plumbing of external-core generation. Sigbjorn
did most of the work earlier, but this commit completes the renaming and
typechecking plumbing.

2. Runtime error-generation functions, such as GHC.Err.recSelErr,
GHC.Err.recUpdErr, etc, now take an Addr#, pointing to a UTF8-encoded
C string, instead of a Haskell string.  This makes the *calls* to these
functions easier to generate, and smaller too, which is a good thing.

In particular, it means that MkId.mkRecordSelectorId doesn't need to
be passed "unpackCStringId", which was GRUESOME; and that in turn means
that tcTypeAndClassDecls doesn't need to be passed unf_env, which is
a very worthwhile cleanup.   Win/win situation.

3.  GHC now faithfully translates do-notation using ">>" for statements
with no binding, just as the report says.  While I was there I tidied
up HsDo to take a list of Ids instead of 3 (but now 4) separate Ids.
Saves a bit of code here and there.  Also introduced Inst.newMethodFromName
to package a common idiom.

22 years ago[project @ 2002-04-11 12:01:13 by simonpj]
simonpj [Thu, 11 Apr 2002 12:01:13 +0000 (12:01 +0000)]
[project @ 2002-04-11 12:01:13 by simonpj]
Add stuff about non-blocking I/O for Win32

22 years ago[project @ 2002-04-11 11:59:39 by simonmar]
simonmar [Thu, 11 Apr 2002 11:59:39 +0000 (11:59 +0000)]
[project @ 2002-04-11 11:59:39 by simonmar]
add missing file to source dist

22 years ago[project @ 2002-04-11 08:39:27 by simonmar]
simonmar [Thu, 11 Apr 2002 08:39:27 +0000 (08:39 +0000)]
[project @ 2002-04-11 08:39:27 by simonmar]
Fix some wibbles with the :m command

22 years ago[project @ 2002-04-10 13:52:49 by simonpj]
simonpj [Wed, 10 Apr 2002 13:52:49 +0000 (13:52 +0000)]
[project @ 2002-04-10 13:52:49 by simonpj]
Make the earlier context-simplification loop-detection fix work properly

22 years ago[project @ 2002-04-10 13:09:39 by simonmar]
simonmar [Wed, 10 Apr 2002 13:09:39 +0000 (13:09 +0000)]
[project @ 2002-04-10 13:09:39 by simonmar]
(from Simon P.J) Make generics work with zero-constructor datatypes.

22 years ago[project @ 2002-04-10 11:43:43 by stolz]
stolz [Wed, 10 Apr 2002 11:43:49 +0000 (11:43 +0000)]
[project @ 2002-04-10 11:43:43 by stolz]
Two new scheduler-API primops:

1) GHC.Conc.forkProcess/forkProcess# :: IO Int
   This is a low-level call to fork() to replace Posix.forkProcess().
   In a Concurrent Haskell setting, only the thread invoking forkProcess()
   is alive in the child process. Other threads will be GC'ed!
      This brings the RTS closer to pthreads, where a call to fork()
   doesn't clone any pthreads, either.
      The result is 0 for the child and the child's pid for the parent.
   The primop will barf() when used on mingw32, sorry.

2) GHC.Conc.labelThread/forkProcess# :: String -> IO ()
   Useful for scheduler debugging: If the RTS is compiled with DEBUGging
   support, this primitive assigns a name to the current thread which
   will be used in debugging output (+RTS -D1). For larger applications,
   simply numbering threads is not sufficient.
     Notice: The Haskell side of this call is always available, but if
   you are not compiling with debugging support, the actual primop will
   turn into a no-op.

22 years ago[project @ 2002-04-10 09:49:47 by simonmar]
simonmar [Wed, 10 Apr 2002 09:49:47 +0000 (09:49 +0000)]
[project @ 2002-04-10 09:49:47 by simonmar]
Don't claim that i386-unknown-cygwin32 is supported, replace it with
i386-unknown-mingw32.

(the build docs for Win32 are probably also out of date, but I didn't
touch those)

22 years ago[project @ 2002-04-10 09:41:16 by simonmar]
simonmar [Wed, 10 Apr 2002 09:41:16 +0000 (09:41 +0000)]
[project @ 2002-04-10 09:41:16 by simonmar]
Currently configure falls over if $srcdir/ghc exists and Happy >= 1.9
can't be found.  For a source distribution this is too paranoid,
because we ship the Happy-generated .hs files with the sources.  Now
we ignore a missing Happy if ghc/compiler/parser/Parser.hs exists,
which should be a reasonable heuristic.

22 years ago[project @ 2002-04-09 12:56:36 by simonmar]
simonmar [Tue, 9 Apr 2002 12:56:36 +0000 (12:56 +0000)]
[project @ 2002-04-09 12:56:36 by simonmar]
If we free a StablePtr which has no StableName attached, then just
add its entry to the free list immediately, rather than waiting for
the garbage collector to free it.

22 years ago[project @ 2002-04-09 12:55:11 by simonmar]
simonmar [Tue, 9 Apr 2002 12:55:11 +0000 (12:55 +0000)]
[project @ 2002-04-09 12:55:11 by simonmar]
- Revert rev. 1.7, i.e. go back to using malloc/free and a free list
  to manage hash list cells, because the arena method doesn't recycle
  used cells, resulting in memory leaks.

- Add a freeHashList() call which was missing in removeHashTable().

22 years ago[project @ 2002-04-09 11:00:11 by njn]
njn [Tue, 9 Apr 2002 11:00:11 +0000 (11:00 +0000)]
[project @ 2002-04-09 11:00:11 by njn]
Removed the unnecessary arg from TICK_ENT_{STATIC,DYN}_THK macros in the
"#ifdef TICKY_TICKY" case.  This meant the libraries would not compile with
way=t for SimonPJ even though they did for me...

22 years ago[project @ 2002-04-08 19:28:39 by sof]
sof [Mon, 8 Apr 2002 19:28:39 +0000 (19:28 +0000)]
[project @ 2002-04-08 19:28:39 by sof]
renameExtCore: bring locally defined names into scope before closing up

22 years ago[project @ 2002-04-08 08:25:55 by simonpj]
simonpj [Mon, 8 Apr 2002 08:25:55 +0000 (08:25 +0000)]
[project @ 2002-04-08 08:25:55 by simonpj]
Import notNull

22 years ago[project @ 2002-04-05 23:24:25 by sof]
sof [Fri, 5 Apr 2002 23:24:31 +0000 (23:24 +0000)]
[project @ 2002-04-05 23:24:25 by sof]
Friday afternoon pet peeve removal: define (Util.notNull :: [a] -> Bool) and use it

22 years ago[project @ 2002-04-05 16:43:56 by sof]
sof [Fri, 5 Apr 2002 16:43:56 +0000 (16:43 +0000)]
[project @ 2002-04-05 16:43:56 by sof]
Catch the use of non-existent output directories &
report this back to the user. By not doing this, we relied
on external tools (such as the linker or assembler) to give
good feedback about this error condition -- this wasn't
the case (cf. GAS on mingw/cygwin.)

To insert more sanity checks of the effective options
(to the batch compiler), use Main.checkOptions

22 years ago[project @ 2002-04-05 15:18:25 by sof]
sof [Fri, 5 Apr 2002 15:18:27 +0000 (15:18 +0000)]
[project @ 2002-04-05 15:18:25 by sof]
Cleaned up the way the External Core front-end was
integrated with the rest of the compiler;
guided by detailed and helpful feedback from Simon PJ.

Input files ending in ".hcr" are now assumed to contain
external core -- still working on getting the renamer
to slurp in interface files (implicitly) referred to
in the Core source.