ghc-base.git
20 years ago[project @ 2004-01-05 17:44:30 by ross]
ross [Mon, 5 Jan 2004 17:44:30 +0000 (17:44 +0000)]
[project @ 2004-01-05 17:44:30 by ross]
Make runST(U)Array work with Hugs.  This includes explicitly using
unsafeFreezeSTArray rather than unsafeFreeze, to avoid relying on rules.

20 years ago[project @ 2004-01-05 16:47:09 by ross]
ross [Mon, 5 Jan 2004 16:47:09 +0000 (16:47 +0000)]
[project @ 2004-01-05 16:47:09 by ross]
Change the drawing of trees so that long labels work better.
The new drawings are narrower but a little longer than before.

20 years ago[project @ 2004-01-05 16:03:34 by simonmar]
simonmar [Mon, 5 Jan 2004 16:03:34 +0000 (16:03 +0000)]
[project @ 2004-01-05 16:03:34 by simonmar]
Add runSTArray and runSTUArray, as suggested by John Meacham.
runSTUArray showed up an interesting deficiency in the type system
(see comments for details).

20 years ago[project @ 2004-01-05 10:07:52 by ross]
ross [Mon, 5 Jan 2004 10:07:52 +0000 (10:07 +0000)]
[project @ 2004-01-05 10:07:52 by ross]
doc tidy-ups

20 years ago[project @ 2004-01-05 10:07:25 by ross]
ross [Mon, 5 Jan 2004 10:07:25 +0000 (10:07 +0000)]
[project @ 2004-01-05 10:07:25 by ross]
doc tweak

20 years ago[project @ 2004-01-02 19:03:14 by panne]
panne [Fri, 2 Jan 2004 19:03:14 +0000 (19:03 +0000)]
[project @ 2004-01-02 19:03:14 by panne]
Annual copyright update

20 years ago[project @ 2003-12-29 17:16:42 by panne]
panne [Mon, 29 Dec 2003 17:16:42 +0000 (17:16 +0000)]
[project @ 2003-12-29 17:16:42 by panne]
Updated my email address

20 years ago[project @ 2003-12-23 13:58:17 by simonmar]
simonmar [Tue, 23 Dec 2003 13:58:18 +0000 (13:58 +0000)]
[project @ 2003-12-23 13:58:17 by simonmar]
- Fix up mingw build after changes to hGetBuf etc.
  I don't think that hGetBufNonBlocking works correctly on Windows,
  because there doesn't seem to be a non-blocking read primitive.  I
  haven't tested it, however.

- Clean up Unix versions of the low-level read/write functions in
  Handle.hs.  Now that these aren't used on Windows, they can be
  made simpler.

20 years ago[project @ 2003-12-23 12:35:34 by simonmar]
simonmar [Tue, 23 Dec 2003 12:35:34 +0000 (12:35 +0000)]
[project @ 2003-12-23 12:35:34 by simonmar]
Fix yet another bug in hGetBuf/hGetBufNonBlocking

20 years ago[project @ 2003-12-22 12:41:52 by simonmar]
simonmar [Mon, 22 Dec 2003 12:41:52 +0000 (12:41 +0000)]
[project @ 2003-12-22 12:41:52 by simonmar]
add fillReadBufferWithoutBlocking (required for fixed
hGetBufNonBlocking implementation in IO.hs rev. 1.20)

20 years ago[project @ 2003-12-22 12:23:35 by simonmar]
simonmar [Mon, 22 Dec 2003 12:23:35 +0000 (12:23 +0000)]
[project @ 2003-12-22 12:23:35 by simonmar]
- Fix hGetBuf & hGetBufNonBlocking.  There were various bugs in these
  two functions, so I did a complete rewrite (again).  They are quite
  hard to get right it seems, so I've put together a test case
  (shortly to be added to the test suite).

- Change to the semantics of hWaitForInput: when given a negative
  time argument, this function will wait indefinitely for input to
  arrive.  It will wait in a thread-friendly way, unlike when the
  time argument is positive.  The docs now admit that hWaitForInput
  is buggy when given a positive time value.

  hWaitForInput h (-1) is now the approved way to wait for input
  before calling hGetBufNonBlocking.

MERGE TO STABLE (hGetBuf is broken in 6.2).

20 years ago[project @ 2003-12-22 10:56:42 by simonmar]
simonmar [Mon, 22 Dec 2003 10:56:42 +0000 (10:56 +0000)]
[project @ 2003-12-22 10:56:42 by simonmar]
performGC should really do a major GC - this was broken at some point.

20 years ago[project @ 2003-12-17 17:15:12 by sof]
sof [Wed, 17 Dec 2003 17:15:12 +0000 (17:15 +0000)]
[project @ 2003-12-17 17:15:12 by sof]
merge rev. 1.13.2.1

20 years ago[project @ 2003-12-17 17:13:47 by sof]
sof [Wed, 17 Dec 2003 17:13:47 +0000 (17:13 +0000)]
[project @ 2003-12-17 17:13:47 by sof]
merge rev 1.48.2.4

20 years ago[project @ 2003-12-16 16:54:42 by simonmar]
simonmar [Tue, 16 Dec 2003 16:54:42 +0000 (16:54 +0000)]
[project @ 2003-12-16 16:54:42 by simonmar]
Add Show instance for Set

20 years ago[project @ 2003-12-16 16:54:12 by simonmar]
simonmar [Tue, 16 Dec 2003 16:54:12 +0000 (16:54 +0000)]
[project @ 2003-12-16 16:54:12 by simonmar]
Add Show instance for FiniteMap

20 years ago[project @ 2003-12-15 17:59:05 by panne]
panne [Mon, 15 Dec 2003 17:59:05 +0000 (17:59 +0000)]
[project @ 2003-12-15 17:59:05 by panne]
Fixed #ifdefs for Cygwin

20 years ago[project @ 2003-12-12 18:29:26 by sof]
sof [Fri, 12 Dec 2003 18:29:26 +0000 (18:29 +0000)]
[project @ 2003-12-12 18:29:26 by sof]
showIntAtBase:
  - implementation uses quotRem [where the remainder isn't always
    non-negative -- ditto for divMod, so there's no trivial fix],
    negative bases aren't supported; catch this.
  - separate argument validity checking from actual digitisation.

20 years ago[project @ 2003-12-06 17:48:49 by ralf]
ralf [Sat, 6 Dec 2003 17:48:49 +0000 (17:48 +0000)]
[project @ 2003-12-06 17:48:49 by ralf]
Added Data instances for triples and quadruples.

20 years ago[project @ 2003-12-04 18:25:51 by panne]
panne [Thu, 4 Dec 2003 18:25:51 +0000 (18:25 +0000)]
[project @ 2003-12-04 18:25:51 by panne]
Synched #ifdefs, but only 90% sure if I got it right...

20 years ago[project @ 2003-11-28 11:08:54 by simonmar]
simonmar [Fri, 28 Nov 2003 11:08:54 +0000 (11:08 +0000)]
[project @ 2003-11-28 11:08:54 by simonmar]
Doc wibble

20 years ago[project @ 2003-11-26 10:00:09 by simonmar]
simonmar [Wed, 26 Nov 2003 10:00:09 +0000 (10:00 +0000)]
[project @ 2003-11-26 10:00:09 by simonmar]
oops, revert accidental commit

20 years ago[project @ 2003-11-26 09:55:22 by simonmar]
simonmar [Wed, 26 Nov 2003 09:55:26 +0000 (09:55 +0000)]
[project @ 2003-11-26 09:55:22 by simonmar]
Declare some libraries to be "stable".

20 years ago[project @ 2003-11-23 22:19:35 by ralf]
ralf [Sun, 23 Nov 2003 22:19:35 +0000 (22:19 +0000)]
[project @ 2003-11-23 22:19:35 by ralf]
Added the missing Data instance for Either.

20 years ago[project @ 2003-11-23 12:25:02 by ralf]
ralf [Sun, 23 Nov 2003 12:25:03 +0000 (12:25 +0000)]
[project @ 2003-11-23 12:25:02 by ralf]
Refactored some alias for generic builders and readers.
Worked out some interested stuff for reification of type structures.

20 years ago[project @ 2003-11-23 12:23:49 by ralf]
ralf [Sun, 23 Nov 2003 12:23:49 +0000 (12:23 +0000)]
[project @ 2003-11-23 12:23:49 by ralf]
Added some trivial observers for type representations.

20 years ago[project @ 2003-11-21 16:24:44 by sof]
sof [Fri, 21 Nov 2003 16:24:44 +0000 (16:24 +0000)]
[project @ 2003-11-21 16:24:44 by sof]
code tidyup

21 years ago[project @ 2003-11-15 22:31:16 by panne]
panne [Sat, 15 Nov 2003 22:31:16 +0000 (22:31 +0000)]
[project @ 2003-11-15 22:31:16 by panne]
Decouple packages a bit more again: The prologue of the combined index is now
generated via shell magic from the package prologues. As a nice side effect,
some autoconf magic is gone, so configure.ac is effectively empty now (but not
for long... :-)

21 years ago[project @ 2003-11-13 19:23:12 by panne]
panne [Thu, 13 Nov 2003 19:23:12 +0000 (19:23 +0000)]
[project @ 2003-11-13 19:23:12 by panne]
Markup fix

21 years ago[project @ 2003-11-13 14:43:58 by ross]
ross [Thu, 13 Nov 2003 14:43:58 +0000 (14:43 +0000)]
[project @ 2003-11-13 14:43:58 by ross]
Hugs-only tweak

21 years ago[project @ 2003-11-11 11:50:52 by simonmar]
simonmar [Tue, 11 Nov 2003 11:50:53 +0000 (11:50 +0000)]
[project @ 2003-11-11 11:50:52 by simonmar]
Convert to use Haddock 0.6's combined contents/index functionality for
the hierarchical library docs.

HEADS UP: you need Haddock 0.6 in order to run 'make html' in
fptools/libraries now.

21 years ago[project @ 2003-11-10 15:55:13 by sof]
sof [Mon, 10 Nov 2003 15:55:13 +0000 (15:55 +0000)]
[project @ 2003-11-10 15:55:13 by sof]
ALL_DIRS: added Control/Parallel

21 years ago[project @ 2003-11-10 15:54:55 by sof]
sof [Mon, 10 Nov 2003 15:54:55 +0000 (15:54 +0000)]
[project @ 2003-11-10 15:54:55 by sof]
brought into the hier-lib world; stripped away outdated code & comments

21 years ago[project @ 2003-11-10 15:32:43 by simonmar]
simonmar [Mon, 10 Nov 2003 15:32:43 +0000 (15:32 +0000)]
[project @ 2003-11-10 15:32:43 by simonmar]
Change the documentation title from "Haskell Core Libraries" to "Haskell Hierarchical Libraries".

21 years ago[project @ 2003-11-06 17:34:00 by simonmar]
simonmar [Thu, 6 Nov 2003 17:34:00 +0000 (17:34 +0000)]
[project @ 2003-11-06 17:34:00 by simonmar]
Doc wibbles

21 years ago[project @ 2003-11-06 12:50:22 by ross]
ross [Thu, 6 Nov 2003 12:50:24 +0000 (12:50 +0000)]
[project @ 2003-11-06 12:50:22 by ross]
import Prelude if haddocking

21 years ago[project @ 2003-11-05 15:05:12 by ross]
ross [Wed, 5 Nov 2003 15:05:12 +0000 (15:05 +0000)]
[project @ 2003-11-05 15:05:12 by ross]
doc updates for mallocForeignPtr and friends

21 years ago[project @ 2003-11-05 10:43:10 by simonmar]
simonmar [Wed, 5 Nov 2003 10:43:10 +0000 (10:43 +0000)]
[project @ 2003-11-05 10:43:10 by simonmar]
Better documentation for unsafeThaw, unsafeFreeze.

21 years ago[project @ 2003-11-05 09:58:01 by simonmar]
simonmar [Wed, 5 Nov 2003 09:58:01 +0000 (09:58 +0000)]
[project @ 2003-11-05 09:58:01 by simonmar]
Fix a memory leak in __hscore_readdir() which meant that one struct
dirent was leaked at the end of each directory read.

Bug-reported-by: David Roundy <droundy@abridgegame.org>
What-a-great-system: Valgrind

21 years ago[project @ 2003-11-04 21:59:23 by ross]
ross [Tue, 4 Nov 2003 21:59:23 +0000 (21:59 +0000)]
[project @ 2003-11-04 21:59:23 by ross]
Hugs only: add finalizers with environments, as per the latest FFI draft.

21 years ago[project @ 2003-11-02 17:52:09 by ralf]
ralf [Sun, 2 Nov 2003 17:52:09 +0000 (17:52 +0000)]
[project @ 2003-11-02 17:52:09 by ralf]
Minor extension to enable rebuild of Strafunski.

21 years ago[project @ 2003-11-02 16:30:16 by panne]
panne [Sun, 2 Nov 2003 16:30:16 +0000 (16:30 +0000)]
[project @ 2003-11-02 16:30:16 by panne]
* Added workaround for broken sigemptyset
* Use #if, not #ifdef for feature tests
* Nuked CVS keyword

21 years ago[project @ 2003-11-02 00:06:23 by panne]
panne [Sun, 2 Nov 2003 00:06:23 +0000 (00:06 +0000)]
[project @ 2003-11-02 00:06:23 by panne]
Added an extremely ugly workaround for the broken sigfillset macro on
OpenBSD, which misses a cast. Is there a better way?

Probably merge to STABLE.

21 years ago[project @ 2003-10-30 18:51:26 by sof]
sof [Thu, 30 Oct 2003 18:51:26 +0000 (18:51 +0000)]
[project @ 2003-10-30 18:51:26 by sof]
drop uses of __MINGW32__, no longer needed

21 years ago[project @ 2003-10-27 12:09:44 by stolz]
stolz [Mon, 27 Oct 2003 12:09:44 +0000 (12:09 +0000)]
[project @ 2003-10-27 12:09:44 by stolz]
Avoid setting O_NONBLOCK when already set.

21 years ago[project @ 2003-10-27 09:56:11 by ross]
ross [Mon, 27 Oct 2003 09:56:11 +0000 (09:56 +0000)]
[project @ 2003-10-27 09:56:11 by ross]
unswap UNBLOCK/SETMASK (merge to STABLE)

21 years ago[project @ 2003-10-21 14:32:43 by sof]
sof [Tue, 21 Oct 2003 14:32:44 +0000 (14:32 +0000)]
[project @ 2003-10-21 14:32:43 by sof]
appease the GHC bigwigs

21 years ago[project @ 2003-10-21 14:00:20 by simonmar]
simonmar [Tue, 21 Oct 2003 14:00:20 +0000 (14:00 +0000)]
[project @ 2003-10-21 14:00:20 by simonmar]
oops, revert parts of previous commit that weren't supposed to be included.

21 years ago[project @ 2003-10-21 13:57:39 by simonmar]
simonmar [Tue, 21 Oct 2003 13:57:39 +0000 (13:57 +0000)]
[project @ 2003-10-21 13:57:39 by simonmar]
Fix bug in hGetBufNonBlocking that meant it would sometimes block.

21 years ago[project @ 2003-10-21 13:31:44 by simonmar]
simonmar [Tue, 21 Oct 2003 13:31:44 +0000 (13:31 +0000)]
[project @ 2003-10-21 13:31:44 by simonmar]
- Add _LE duals of the _GE functions
- Add minFM and maxFM

From: George Russell <ger@tzi.de>

21 years ago[project @ 2003-10-21 13:27:13 by simonmar]
simonmar [Tue, 21 Oct 2003 13:27:13 +0000 (13:27 +0000)]
[project @ 2003-10-21 13:27:13 by simonmar]
Make peekArray0 run in constant stack-space by testing the length of
the array first, then calling peekArray (which works backwards from
the end so it can be tail-recursive).

21 years ago[project @ 2003-10-21 13:24:31 by simonmar]
simonmar [Tue, 21 Oct 2003 13:24:31 +0000 (13:24 +0000)]
[project @ 2003-10-21 13:24:31 by simonmar]
Make the GHC implementation of peekCString run in constant stack-space
by checking the length of the array first and then working backwards
from the end.  Interestingly, this version is faster than the original.

21 years ago[project @ 2003-10-20 20:00:25 by panne]
panne [Mon, 20 Oct 2003 20:00:25 +0000 (20:00 +0000)]
[project @ 2003-10-20 20:00:25 by panne]
Again: Fixed previous commit. Our QA department must really be on an
extended vacation...   :-]

21 years ago[project @ 2003-10-20 15:56:52 by simonmar]
simonmar [Mon, 20 Oct 2003 15:56:52 +0000 (15:56 +0000)]
[project @ 2003-10-20 15:56:52 by simonmar]
Convert Unicode.hsc to a plain .hs file to fix bootstrapping problems.

21 years ago[project @ 2003-10-20 13:16:58 by simonmar]
simonmar [Mon, 20 Oct 2003 13:17:24 +0000 (13:17 +0000)]
[project @ 2003-10-20 13:16:58 by simonmar]
Comment use of $(HavePosixRegex)

21 years ago[project @ 2003-10-20 12:31:00 by ross]
ross [Mon, 20 Oct 2003 12:31:00 +0000 (12:31 +0000)]
[project @ 2003-10-20 12:31:00 by ross]
add System.Posix.Signals to Hugs

21 years ago[project @ 2003-10-17 16:48:43 by ross]
ross [Fri, 17 Oct 2003 16:48:43 +0000 (16:48 +0000)]
[project @ 2003-10-17 16:48:43 by ross]
Hugs only: add most of the rest of System.Posix

(I wonder why SIG_UNBLOCK and SIG_SETMASK are switched in HsBase.h)

21 years ago[project @ 2003-10-16 16:26:43 by ross]
ross [Thu, 16 Oct 2003 16:26:43 +0000 (16:26 +0000)]
[project @ 2003-10-16 16:26:43 by ross]
fix a couple of id references in haddock docs

21 years ago[project @ 2003-10-16 00:18:34 by ross]
ross [Thu, 16 Oct 2003 00:18:34 +0000 (00:18 +0000)]
[project @ 2003-10-16 00:18:34 by ross]
add withArgs and withProgName to Hugs.

No change for GHC, but does change the docs, so please merge to STABLE.

21 years ago[project @ 2003-10-13 05:23:53 by sof]
sof [Mon, 13 Oct 2003 05:23:53 +0000 (05:23 +0000)]
[project @ 2003-10-13 05:23:53 by sof]
mingw tweaks + add cbits/consUtils.c to CBITS

21 years ago[project @ 2003-10-13 05:22:59 by sof]
sof [Mon, 13 Oct 2003 05:22:59 +0000 (05:22 +0000)]
[project @ 2003-10-13 05:22:59 by sof]
support CFoo iff HTYPE_FOO_T is defined

21 years ago[project @ 2003-10-13 05:21:37 by sof]
sof [Mon, 13 Oct 2003 05:21:54 +0000 (05:21 +0000)]
[project @ 2003-10-13 05:21:37 by sof]
more mind-numbing CPP tweaking

21 years ago[project @ 2003-10-13 05:20:37 by sof]
sof [Mon, 13 Oct 2003 05:20:37 +0000 (05:20 +0000)]
[project @ 2003-10-13 05:20:37 by sof]
extra_libraries: win32 CPP tweak

21 years ago[project @ 2003-10-13 05:09:40 by sof]
sof [Mon, 13 Oct 2003 05:09:40 +0000 (05:09 +0000)]
[project @ 2003-10-13 05:09:40 by sof]
prev commit too strict wrt mingw

21 years ago[project @ 2003-10-13 03:21:20 by sof]
sof [Mon, 13 Oct 2003 03:21:20 +0000 (03:21 +0000)]
[project @ 2003-10-13 03:21:20 by sof]
cope if regex.h isn't supported by target

21 years ago[project @ 2003-10-13 03:19:48 by sof]
sof [Mon, 13 Oct 2003 03:19:48 +0000 (03:19 +0000)]
[project @ 2003-10-13 03:19:48 by sof]
make it useable with msvc + gcc-mingw

21 years ago[project @ 2003-10-09 14:01:46 by stolz]
stolz [Thu, 9 Oct 2003 14:01:46 +0000 (14:01 +0000)]
[project @ 2003-10-09 14:01:46 by stolz]
Fix flipped arguments to sigprocmask in getSignalMask.

Noticed by: Shawn P. Garbett

21 years ago[project @ 2003-10-09 13:59:33 by stolz]
stolz [Thu, 9 Oct 2003 13:59:33 +0000 (13:59 +0000)]
[project @ 2003-10-09 13:59:33 by stolz]
FreeBSD 4.X has an emtpy wctype.h, so test one of the affected
functions in Unicode.hsc if it's really there.

21 years ago[project @ 2003-10-07 16:56:33 by sof]
sof [Tue, 7 Oct 2003 16:56:33 +0000 (16:56 +0000)]
[project @ 2003-10-07 16:56:33 by sof]
peekCString{Len}: tweak GHC impls (why are these provided anyway?)
  - Do as for Foreign.Marshal.Array.peekArray and read in length-bounded
    string back-to-front.
  - force evaluation of CChar->Char conversions.

merge to STABLE.

21 years ago[project @ 2003-10-06 13:14:36 by simonpj]
simonpj [Mon, 6 Oct 2003 13:14:36 +0000 (13:14 +0000)]
[project @ 2003-10-06 13:14:36 by simonpj]
MERGE TO STABLE

Fix trivial lexing bug involving leading zeros
045.4
was lexing as an Int, with a trailing ".4"

The test is lib/Lex/lexNum

21 years ago[project @ 2003-10-01 11:00:20 by wolfgang]
wolfgang [Wed, 1 Oct 2003 11:00:20 +0000 (11:00 +0000)]
[project @ 2003-10-01 11:00:20 by wolfgang]
Add runInUnboundThread to the export list

21 years ago[project @ 2003-10-01 10:57:44 by wolfgang]
wolfgang [Wed, 1 Oct 2003 10:57:44 +0000 (10:57 +0000)]
[project @ 2003-10-01 10:57:44 by wolfgang]
New implementation & changed type signature of forkProcess

forkProcess now has the following type:
forkProcess :: IO () -> IO ProcessID

forkProcessAll has been removed as it is unimplementable in the threaded RTS.

forkProcess using the old type (IO (Maybe ProcessID)) was impossible to
implement correctly in the non-threaded RTS and very hard to implement
in the threaded RTS.
The new type signature allows a clean and simple implementation.

21 years ago[project @ 2003-09-26 09:26:13 by panne]
panne [Fri, 26 Sep 2003 09:26:13 +0000 (09:26 +0000)]
[project @ 2003-09-26 09:26:13 by panne]
Saving/restoring termios is only done for GHC

21 years ago[project @ 2003-09-25 15:14:44 by panne]
panne [Thu, 25 Sep 2003 15:14:44 +0000 (15:14 +0000)]
[project @ 2003-09-25 15:14:44 by panne]
To fix dynamic linking issues with Hugs, access saved_termios via
getter/setter.

21 years ago[project @ 2003-09-25 14:44:36 by sof]
sof [Thu, 25 Sep 2003 14:44:36 +0000 (14:44 +0000)]
[project @ 2003-09-25 14:44:36 by sof]
[win32]getCPUTime:
  comments + reduce fromIntegral use. No change in functionality.

21 years ago[project @ 2003-09-24 14:01:18 by simonmar]
simonmar [Wed, 24 Sep 2003 14:01:18 +0000 (14:01 +0000)]
[project @ 2003-09-24 14:01:18 by simonmar]
Add foldFM_GE, fmToList_GE, keysFM_GE, eltsFM_GE.  (contributed by
Tomasz Zielonka via George Russell).

21 years ago[project @ 2003-09-24 13:26:08 by malcolm]
malcolm [Wed, 24 Sep 2003 13:26:08 +0000 (13:26 +0000)]
[project @ 2003-09-24 13:26:08 by malcolm]
Missing dependency.

21 years ago[project @ 2003-09-24 11:36:24 by simonmar]
simonmar [Wed, 24 Sep 2003 11:36:24 +0000 (11:36 +0000)]
[project @ 2003-09-24 11:36:24 by simonmar]
Add some realToFrac rules for CFloat,CDouble and CLDouble, so that
eg. realToFrac :: CDouble -> Double turns into a no-op.

21 years ago[project @ 2003-09-24 11:06:54 by simonmar]
simonmar [Wed, 24 Sep 2003 11:06:54 +0000 (11:06 +0000)]
[project @ 2003-09-24 11:06:54 by simonmar]
Move forkOS_createThread into the RTS so its implementation can be
dependent on RTS_SUPPORTS_THREADS, which means we can provide a stub
implementation in the !RTS_SUPPORTS_THREADS case, and hence not depend
on pthread_create, which requires -lpthread.  The upshot is that GHCi
now works again when !RTS_SUPPORTS_THREADS.

21 years ago[project @ 2003-09-24 10:41:11 by simonmar]
simonmar [Wed, 24 Sep 2003 10:41:11 +0000 (10:41 +0000)]
[project @ 2003-09-24 10:41:11 by simonmar]
Add non-blocking versions of hGetBuf, hPutBuf.

21 years ago[project @ 2003-09-24 10:32:12 by simonmar]
simonmar [Wed, 24 Sep 2003 10:32:12 +0000 (10:32 +0000)]
[project @ 2003-09-24 10:32:12 by simonmar]
If we change the terminal settings as a result of hSetBuffering or
hSetEcho, then restore them again in hs_exit().  This is just good
citizenship on Unixy platforms.

We *don't* just automatically save the terminal settings and restore
them at the end, because that would prevent implementing stty-like
programs in Haskell.  This scheme is a compromise that hopefully DTRT
in most cases.

21 years ago[project @ 2003-09-23 18:59:43 by sof]
sof [Tue, 23 Sep 2003 18:59:43 +0000 (18:59 +0000)]
[project @ 2003-09-23 18:59:43 by sof]
h{Get,Put}NonBlocking: win32 impl

21 years ago[project @ 2003-09-23 17:33:12 by sof]
sof [Tue, 23 Sep 2003 17:33:12 +0000 (17:33 +0000)]
[project @ 2003-09-23 17:33:12 by sof]
createPipe, createPipeEx: commented out exports (doesn't appear to be defined anywhere)

21 years ago[project @ 2003-09-23 16:18:03 by sof]
sof [Tue, 23 Sep 2003 16:18:03 +0000 (16:18 +0000)]
[project @ 2003-09-23 16:18:03 by sof]
[win32]: make it compile

21 years ago[project @ 2003-09-23 16:13:59 by simonmar]
simonmar [Tue, 23 Sep 2003 16:13:59 +0000 (16:13 +0000)]
[project @ 2003-09-23 16:13:59 by simonmar]
Haddock fix.

21 years ago[project @ 2003-09-23 13:26:30 by simonmar]
simonmar [Tue, 23 Sep 2003 13:26:30 +0000 (13:26 +0000)]
[project @ 2003-09-23 13:26:30 by simonmar]
- Add h{Get,Put}BufNonBlocking

- optimise hGetBuf/hPutBuf so that they use the buffer more.  Lots of
  small hGetBufs will now use the read buffer, rather than repeatedly
  calling into the OS.

21 years ago[project @ 2003-09-23 13:23:58 by simonmar]
simonmar [Tue, 23 Sep 2003 13:23:58 +0000 (13:23 +0000)]
[project @ 2003-09-23 13:23:58 by simonmar]
micro-optimisation

21 years ago[project @ 2003-09-23 10:09:17 by panne]
panne [Tue, 23 Sep 2003 10:09:17 +0000 (10:09 +0000)]
[project @ 2003-09-23 10:09:17 by panne]
Unbreak Show instance for Ptr caused by the changes to showHex

merge to STABLE

21 years ago[project @ 2003-09-22 13:27:19 by wolfgang]
wolfgang [Mon, 22 Sep 2003 13:27:19 +0000 (13:27 +0000)]
[project @ 2003-09-22 13:27:19 by wolfgang]
Really make the bound threads stuff compile this time (sorry).

21 years ago[project @ 2003-09-22 11:11:54 by ross]
ross [Mon, 22 Sep 2003 11:11:54 +0000 (11:11 +0000)]
[project @ 2003-09-22 11:11:54 by ross]
cosmetic: move comments inside #ifdefs to avoid confusing people (like
Hugs users) who look at the preprocessed output.

21 years ago[project @ 2003-09-22 10:20:06 by wolfgang]
wolfgang [Mon, 22 Sep 2003 10:20:06 +0000 (10:20 +0000)]
[project @ 2003-09-22 10:20:06 by wolfgang]
fix some embarassing typos in the previous commit

21 years ago[project @ 2003-09-21 22:20:57 by wolfgang]
wolfgang [Sun, 21 Sep 2003 22:20:57 +0000 (22:20 +0000)]
[project @ 2003-09-21 22:20:57 by wolfgang]
Bound Threads
=============

Introduce a way to use foreign libraries that rely on thread local state
from multiple threads (mainly affects the threaded RTS).

See the file threads.tex in CVS at haskell-report/ffi/threads.tex
(not entirely finished yet) for a definition of this extension. A less formal
description is also found in the documentation of Control.Concurrent.

The changes mostly affect the THREADED_RTS (./configure --enable-threaded-rts),
except for saving & restoring errno on a per-TSO basis, which is also necessary
for the non-threaded RTS (a bugfix).

Detailed list of changes
------------------------

- errno is saved in the TSO object and restored when necessary:
ghc/includes/TSO.h, ghc/rts/Interpreter.c, ghc/rts/Schedule.c

- rts_mainLazyIO is no longer needed, main is no special case anymore
ghc/includes/RtsAPI.h, ghc/rts/RtsAPI.c, ghc/rts/Main.c, ghc/rts/Weak.c

- passCapability: a new function that releases the capability and "passes"
  it to a specific OS thread:
ghc/rts/Capability.h ghc/rts/Capability.c

- waitThread(), scheduleWaitThread() and schedule() get an optional
  Capability *initialCapability passed as an argument:
ghc/includes/SchedAPI.h, ghc/rts/Schedule.c, ghc/rts/RtsAPI.c

- Bound Thread scheduling (that's what this is all about):
ghc/rts/Schedule.h, ghc/rts/Schedule.c

- new Primop isCurrentThreadBound#:
ghc/compiler/prelude/primops.txt.pp, ghc/includes/PrimOps.h, ghc/rts/PrimOps.hc,
ghc/rts/Schedule.h, ghc/rts/Schedule.c

- a simple function, rtsSupportsBoundThreads, that returns true if THREADED_RTS
  is defined:
ghc/rts/Schedule.h, ghc/rts/Schedule.c

- a new implementation of forkProcess (the old implementation stays in place
  for the non-threaded case). Partially broken; works for the standard
  fork-and-exec case, but not for much else. A proper forkProcess is
  really next to impossible to implement:
ghc/rts/Schedule.c

- Library support for bound threads:
    Control.Concurrent.
      rtsSupportsBoundThreads, isCurrentThreadBound, forkOS,
      runInBoundThread, runInUnboundThread
libraries/base/Control/Concurrent.hs, libraries/base/Makefile,
libraries/base/include/HsBase.h, libraries/base/cbits/forkOS.c (new file)

21 years ago[project @ 2003-09-16 13:46:36 by simonmar]
simonmar [Tue, 16 Sep 2003 13:46:36 +0000 (13:46 +0000)]
[project @ 2003-09-16 13:46:36 by simonmar]
Don't strip the trailing slash from the filename '/'.

21 years ago[project @ 2003-09-16 13:03:37 by simonmar]
simonmar [Tue, 16 Sep 2003 13:03:37 +0000 (13:03 +0000)]
[project @ 2003-09-16 13:03:37 by simonmar]
Legacy Removal
~~~~~~~~~~~~~~

The following features have been consigned to the bit bucket:

  _ccall_
  _casm_
  ``....''  (lit-lits)
  the CCallable class
  the CReturnable class

21 years ago[project @ 2003-09-12 13:05:19 by simonmar]
simonmar [Fri, 12 Sep 2003 13:05:20 +0000 (13:05 +0000)]
[project @ 2003-09-12 13:05:19 by simonmar]
Implement pathconf()/fpathconf() wrappers.

21 years ago[project @ 2003-09-12 12:29:43 by simonmar]
simonmar [Fri, 12 Sep 2003 12:29:44 +0000 (12:29 +0000)]
[project @ 2003-09-12 12:29:43 by simonmar]
Move setChildStopFlag and queryChildStopFlag to System.Posix.Signals.

21 years ago[project @ 2003-09-10 14:45:24 by simonmar]
simonmar [Wed, 10 Sep 2003 14:45:24 +0000 (14:45 +0000)]
[project @ 2003-09-10 14:45:24 by simonmar]
Quick hack to work around the dynamic exception crashes in GHCi.  The
problem is this: the Data.Typeable library (Data.Dymamic in previous
versions of GHC) maintains an internal cache mapping type names to
unique numbers, and this cache is used for fast comparisons on
TypeReps.  In GHCi, there are actually two versions of the
Data.Typeable library loaded: one linked to GHCi itself, and the other
dynamically loaded, so there are two copies of the hash tables.

The problem is that if we have a Dynamic value generated using one set
of hash tables, it will erroneously appear to be of a different type
when the other hash tables are used.

The hack I've instigated is to use the central RTS genSym (which
already exists) to generate the unique Ids, so that the two copies of
the dynamic library will be using distinct Ids, and Dynamics from one
will never be recognisable to the other.

21 years ago[project @ 2003-09-10 11:46:58 by simonmar]
simonmar [Wed, 10 Sep 2003 11:46:58 +0000 (11:46 +0000)]
[project @ 2003-09-10 11:46:58 by simonmar]
The finalizer for a ForeignPtr created with mallocForeignPtr better
"touch#" the MutableByteArray# after running the other finalizers,
otherwise the memory might be garbage collected before we've finished
running the finalizers.

This can cause crashes if you add any extra finalizers to a ForeignPtr
created with mallocForeignPtr.

SourceForge bug: #802692

21 years ago[project @ 2003-09-08 16:23:57 by ross]
ross [Mon, 8 Sep 2003 16:23:58 +0000 (16:23 +0000)]
[project @ 2003-09-08 16:23:57 by ross]
ST doc adjustments

21 years ago[project @ 2003-09-08 14:14:37 by simonmar]
simonmar [Mon, 8 Sep 2003 14:14:37 +0000 (14:14 +0000)]
[project @ 2003-09-08 14:14:37 by simonmar]
Doc wibbles