ghc-base.git
20 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.

20 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.

20 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.

20 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.

20 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.

20 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

20 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)

20 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

20 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.

20 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.

20 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

20 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

20 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).

20 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.

20 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

20 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)

20 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 '/'.

20 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

20 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.

20 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.

20 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.

20 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

20 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

20 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

20 years ago[project @ 2003-09-05 17:36:40 by ross]
ross [Fri, 5 Sep 2003 17:36:42 +0000 (17:36 +0000)]
[project @ 2003-09-05 17:36:40 by ross]
minimal docs

20 years ago[project @ 2003-09-05 15:06:48 by ross]
ross [Fri, 5 Sep 2003 15:06:48 +0000 (15:06 +0000)]
[project @ 2003-09-05 15:06:48 by ross]
doc tweaks

20 years ago[project @ 2003-09-03 10:49:19 by simonmar]
simonmar [Wed, 3 Sep 2003 10:49:19 +0000 (10:49 +0000)]
[project @ 2003-09-03 10:49:19 by simonmar]
inputReady(): the time calculation for select() was wrong, forgetting
to multiply the milliseconds value by 1000 to get microseconds.

20 years ago[project @ 2003-09-02 16:07:08 by ross]
ross [Tue, 2 Sep 2003 16:07:11 +0000 (16:07 +0000)]
[project @ 2003-09-02 16:07:08 by ross]
Deal with systems on which PATH_MAX is undefined, e.g. systems with
unlimited path length, like the Hurd (also faulty installations of gcc
on Solaris).  In fact getCurrentDirectory only needs a long path size
to use as a first approximation, so give it that.

20 years ago[project @ 2003-09-02 15:31:02 by malcolm]
malcolm [Tue, 2 Sep 2003 15:31:02 +0000 (15:31 +0000)]
[project @ 2003-09-02 15:31:02 by malcolm]
For nhc98, take the corrected (thanks to Ross Paterson) version of
fixIO from NHC.IOExtras.

20 years ago[project @ 2003-09-01 09:12:02 by ross]
ross [Mon, 1 Sep 2003 09:12:07 +0000 (09:12 +0000)]
[project @ 2003-09-01 09:12:02 by ross]
H98 docs for Data.List

20 years ago[project @ 2003-08-31 18:41:28 by ross]
ross [Sun, 31 Aug 2003 18:41:30 +0000 (18:41 +0000)]
[project @ 2003-08-31 18:41:28 by ross]
doc tweaks

20 years ago[project @ 2003-08-30 23:01:48 by ross]
ross [Sat, 30 Aug 2003 23:01:50 +0000 (23:01 +0000)]
[project @ 2003-08-30 23:01:48 by ross]
minor haddock fixes

20 years ago[project @ 2003-08-30 22:55:42 by ross]
ross [Sat, 30 Aug 2003 22:55:42 +0000 (22:55 +0000)]
[project @ 2003-08-30 22:55:42 by ross]
docs for System.Environment & System.Exit

20 years ago[project @ 2003-08-30 12:26:56 by ross]
ross [Sat, 30 Aug 2003 12:26:58 +0000 (12:26 +0000)]
[project @ 2003-08-30 12:26:56 by ross]
docs for System.IO.Error

20 years ago[project @ 2003-08-27 11:03:44 by simonmar]
simonmar [Wed, 27 Aug 2003 11:03:44 +0000 (11:03 +0000)]
[project @ 2003-08-27 11:03:44 by simonmar]
isSpace should only recognise Latin-1 whitespace characters, according
to the report.

Perhaps we should have isUniSpace, too?

20 years ago[project @ 2003-08-27 08:41:07 by simonmar]
simonmar [Wed, 27 Aug 2003 08:41:07 +0000 (08:41 +0000)]
[project @ 2003-08-27 08:41:07 by simonmar]
Remove duplicate type signature

20 years ago[project @ 2003-08-26 20:41:46 by ross]
ross [Tue, 26 Aug 2003 20:41:46 +0000 (20:41 +0000)]
[project @ 2003-08-26 20:41:46 by ross]
Hugs only: remove unused argument from toClockTimePrim

20 years ago[project @ 2003-08-26 10:39:55 by ross]
ross [Tue, 26 Aug 2003 10:39:57 +0000 (10:39 +0000)]
[project @ 2003-08-26 10:39:55 by ross]
Document Data.Char from the H98 Report.

Note that the new implementations of isSpace and isDigit are inconsistent
with this documentation -- maybe two versions of them are needed?

20 years ago[project @ 2003-08-23 10:25:52 by ross]
ross [Sat, 23 Aug 2003 10:25:52 +0000 (10:25 +0000)]
[project @ 2003-08-23 10:25:52 by ross]
non-GHC only: hide functions defined in the Prelude

20 years ago[project @ 2003-08-23 00:08:02 by sof]
sof [Sat, 23 Aug 2003 00:08:02 +0000 (00:08 +0000)]
[project @ 2003-08-23 00:08:02 by sof]
[win32]renameFile:
  Try bridging between GetLastError() error values and the
  errno-based error handling code in System.Directory. As was,
  errors ended up being reported as 'no errors'.

20 years ago[project @ 2003-08-22 23:44:40 by sof]
sof [Fri, 22 Aug 2003 23:44:40 +0000 (23:44 +0000)]
[project @ 2003-08-22 23:44:40 by sof]
pin better location info on IOErrors

20 years ago[project @ 2003-08-22 22:11:03 by sof]
sof [Fri, 22 Aug 2003 22:11:03 +0000 (22:11 +0000)]
[project @ 2003-08-22 22:11:03 by sof]
[GHC only]: Added missing 'config.h' #include ; needed by getProgName

Merge to STABLE.

20 years ago[project @ 2003-08-22 08:58:30 by panne]
panne [Fri, 22 Aug 2003 08:58:31 +0000 (08:58 +0000)]
[project @ 2003-08-22 08:58:30 by panne]
Added a workaround for the Haddock problems introduced by the circular
module dependencies regarding Unicode handling.

20 years ago[project @ 2003-08-20 15:54:45 by panne]
panne [Wed, 20 Aug 2003 15:54:45 +0000 (15:54 +0000)]
[project @ 2003-08-20 15:54:45 by panne]
Nuked FPTOOLS_O_BINARY test and use FP_CHECK_CONST instead, which is
shorter and better (e.g. cross compilation).

20 years ago[project @ 2003-08-20 15:44:19 by panne]
panne [Wed, 20 Aug 2003 15:44:19 +0000 (15:44 +0000)]
[project @ 2003-08-20 15:44:19 by panne]
* Cleaned up FP_CHECK_ALIGNMENT test a bit.

* Nuked FPTOOLS_CHECK_CCONST test in favour of a more general one
  which handles cross compilation and languages different from C.

20 years ago[project @ 2003-08-20 10:22:44 by simonmar]
simonmar [Wed, 20 Aug 2003 10:22:44 +0000 (10:22 +0000)]
[project @ 2003-08-20 10:22:44 by simonmar]
Use the wide-char classifications from the C library if available.
This gives us Unicode-aware isLower, isUpper, isAlpha etc.

On Unix, you have to set your locale to something.  This is usually
done by setting the environment variable LANG, eg.

  export LANG=en

This stuff *should* also work on Windows, except that Windows uses a
16-bit wchar_t so will get it wrong for characters > '\xffff'.  However,
I figured it was better to use the system-supplied functionality
rather than trying to implement this stuff ourselves.

20 years ago[project @ 2003-08-19 16:39:13 by simonmar]
simonmar [Tue, 19 Aug 2003 16:39:14 +0000 (16:39 +0000)]
[project @ 2003-08-19 16:39:13 by simonmar]
Use the wide-char classifications from the C library if available.
This gives us Unicode-aware isLower, isUpper, isAlpha etc.

On Unix, you have to set your locale to something.  This is usually
done by setting the environment variable LANG, eg.

  export LANG=en

This stuff *should* also work on Windows, except that Windows uses a
16-bit wchar_t so will get it wrong for characters > '\xffff'.  However,
I figured it was better to use the system-supplied functionality
rather than trying to implement this stuff ourselves.

20 years ago[project @ 2003-08-19 16:34:11 by simonmar]
simonmar [Tue, 19 Aug 2003 16:34:11 +0000 (16:34 +0000)]
[project @ 2003-08-19 16:34:11 by simonmar]
Fix reversed flag in mkRegexWithOpts

20 years ago[project @ 2003-08-19 16:33:03 by simonmar]
simonmar [Tue, 19 Aug 2003 16:33:03 +0000 (16:33 +0000)]
[project @ 2003-08-19 16:33:03 by simonmar]
Fix incorrect Haddock syntax

20 years ago[project @ 2003-08-18 12:46:21 by panne]
panne [Mon, 18 Aug 2003 12:46:21 +0000 (12:46 +0000)]
[project @ 2003-08-18 12:46:21 by panne]
Revamped altzone detection. Note that we test only for successful
compilation now, not for successful linking, but this is what most
autoconf macros do.

20 years ago[project @ 2003-08-11 18:39:56 by ross]
ross [Mon, 11 Aug 2003 18:39:56 +0000 (18:39 +0000)]
[project @ 2003-08-11 18:39:56 by ross]
rename the cute presentations and use derived instances of Read and
Show, as suggested by Tomasz Zielonka.

20 years ago[project @ 2003-08-11 13:18:22 by ross]
ross [Mon, 11 Aug 2003 13:18:22 +0000 (13:18 +0000)]
[project @ 2003-08-11 13:18:22 by ross]
expose unsafeInterleaveIO to Hugs

20 years ago[project @ 2003-08-08 10:55:22 by malcolm]
malcolm [Fri, 8 Aug 2003 10:55:22 +0000 (10:55 +0000)]
[project @ 2003-08-08 10:55:22 by malcolm]
Adjust the default search path for building library packages with nhc98.

20 years ago[project @ 2003-08-05 17:25:30 by ross]
ross [Tue, 5 Aug 2003 17:25:31 +0000 (17:25 +0000)]
[project @ 2003-08-05 17:25:30 by ross]
fix some identifier links

20 years ago[project @ 2003-08-05 17:24:40 by ross]
ross [Tue, 5 Aug 2003 17:24:41 +0000 (17:24 +0000)]
[project @ 2003-08-05 17:24:40 by ross]
add type signatures for Haddock's benefit

20 years ago[project @ 2003-08-05 17:16:16 by ross]
ross [Tue, 5 Aug 2003 17:16:16 +0000 (17:16 +0000)]
[project @ 2003-08-05 17:16:16 by ross]
adjust exclusions for Hugs

20 years ago[project @ 2003-08-05 12:13:29 by panne]
panne [Tue, 5 Aug 2003 12:13:30 +0000 (12:13 +0000)]
[project @ 2003-08-05 12:13:29 by panne]
Moved QuickCheck into separate package

20 years ago[project @ 2003-08-04 18:40:47 by panne]
panne [Mon, 4 Aug 2003 18:40:47 +0000 (18:40 +0000)]
[project @ 2003-08-04 18:40:47 by panne]
Export HandlePosition

20 years ago[project @ 2003-08-04 18:20:44 by panne]
panne [Mon, 4 Aug 2003 18:20:44 +0000 (18:20 +0000)]
[project @ 2003-08-04 18:20:44 by panne]
Ooops, forgot one link in the last commit...

20 years ago[project @ 2003-08-04 18:07:49 by panne]
panne [Mon, 4 Aug 2003 18:07:50 +0000 (18:07 +0000)]
[project @ 2003-08-04 18:07:49 by panne]
Export ReadS from Text.ParserCombinators.ReadP, curing CPP trickery a bit

20 years ago[project @ 2003-08-04 17:52:33 by panne]
panne [Mon, 4 Aug 2003 17:52:33 +0000 (17:52 +0000)]
[project @ 2003-08-04 17:52:33 by panne]
Synched comments with reality

20 years ago[project @ 2003-08-04 17:30:53 by panne]
panne [Mon, 4 Aug 2003 17:30:53 +0000 (17:30 +0000)]
[project @ 2003-08-04 17:30:53 by panne]
Fixed hyperlink (at least for GHC docs :-)

20 years ago[project @ 2003-08-04 14:47:37 by panne]
panne [Mon, 4 Aug 2003 14:47:37 +0000 (14:47 +0000)]
[project @ 2003-08-04 14:47:37 by panne]
Fixed hyperlink

20 years ago[project @ 2003-08-04 14:41:55 by simonmar]
simonmar [Mon, 4 Aug 2003 14:41:55 +0000 (14:41 +0000)]
[project @ 2003-08-04 14:41:55 by simonmar]
Make a bunch of foreign imports "unsafe".

20 years ago[project @ 2003-08-04 13:49:28 by panne]
panne [Mon, 4 Aug 2003 13:49:28 +0000 (13:49 +0000)]
[project @ 2003-08-04 13:49:28 by panne]
Fixed hyperlink for exitWith

20 years ago[project @ 2003-08-04 10:05:32 by ross]
ross [Mon, 4 Aug 2003 10:05:33 +0000 (10:05 +0000)]
[project @ 2003-08-04 10:05:32 by ross]
docs copied from the report

20 years ago[project @ 2003-08-01 15:56:11 by panne]
panne [Fri, 1 Aug 2003 15:56:11 +0000 (15:56 +0000)]
[project @ 2003-08-01 15:56:11 by panne]
Warning police

20 years ago[project @ 2003-08-01 10:00:48 by ross]
ross [Fri, 1 Aug 2003 10:00:49 +0000 (10:00 +0000)]
[project @ 2003-08-01 10:00:48 by ross]
Swapped argument order of `newForeignPtr' and `addForeignPtrFinalizer'
to track FFI spec.  (Maybe the Conc ones should do the same?)

This will break NHC.

20 years ago[project @ 2003-08-01 09:59:04 by ross]
ross [Fri, 1 Aug 2003 09:59:04 +0000 (09:59 +0000)]
[project @ 2003-08-01 09:59:04 by ross]
tiny doc fix

20 years ago[project @ 2003-07-31 17:45:22 by ross]
ross [Thu, 31 Jul 2003 17:45:30 +0000 (17:45 +0000)]
[project @ 2003-07-31 17:45:22 by ross]
move Parsec out of base into a package parsec (no code changes)

20 years ago[project @ 2003-07-31 10:48:50 by panne]
panne [Thu, 31 Jul 2003 10:48:51 +0000 (10:48 +0000)]
[project @ 2003-07-31 10:48:50 by panne]
Merge Foreign.C.TypesISO into Foreign.C.Types

20 years ago[project @ 2003-07-31 09:28:47 by ralf]
ralf [Thu, 31 Jul 2003 09:28:47 +0000 (09:28 +0000)]
[project @ 2003-07-31 09:28:47 by ralf]
Cosmetic changes.
Documentation of Data.Generics at
http://www.cs.vu.nl/boilerplate/
is now also again well in line with the major
revision of Data.Generics from last week.

20 years ago[project @ 2003-07-30 08:13:16 by ralf]
ralf [Wed, 30 Jul 2003 08:13:16 +0000 (08:13 +0000)]
[project @ 2003-07-30 08:13:16 by ralf]
Rolled back to newtype now that the compiler does not panic anymore
for the module Data/Generics/Text.hs.

20 years ago[project @ 2003-07-29 12:36:52 by ross]
ross [Tue, 29 Jul 2003 12:36:52 +0000 (12:36 +0000)]
[project @ 2003-07-29 12:36:52 by ross]
exclude Data.Generics.*

20 years ago[project @ 2003-07-29 12:03:13 by ross]
ross [Tue, 29 Jul 2003 12:03:17 +0000 (12:03 +0000)]
[project @ 2003-07-29 12:03:13 by ross]
trim imports

20 years ago[project @ 2003-07-28 15:03:05 by panne]
panne [Mon, 28 Jul 2003 15:03:09 +0000 (15:03 +0000)]
[project @ 2003-07-28 15:03:05 by panne]
Markup fixes

20 years ago[project @ 2003-07-28 12:11:46 by malcolm]
malcolm [Mon, 28 Jul 2003 12:11:46 +0000 (12:11 +0000)]
[project @ 2003-07-28 12:11:46 by malcolm]
Use new Data.Dynamic/Data.Typeable story in nhc98.

20 years ago[project @ 2003-07-26 12:43:58 by ralf]
ralf [Sat, 26 Jul 2003 12:44:00 +0000 (12:44 +0000)]
[project @ 2003-07-26 12:43:58 by ralf]
Renamed Data/Generics/Strings to .../Text.
Implemented generic read by using Text/ParserCombinators/ReadP.
This is now how it really should look like.
Did some more refactoring in the modules of Data/Generics.
I consider the library relatively stable by now.
Very experimental stuff is only in Data/Generics/Reify.hs

(

I was a bit too optimistic yesterday regarding the
commitibility of Data/Generics. SPJ wanted me to use
Text/ParserCombinators/ReadP for generic read what I
did, which revealed a funny compiler bug. SPJ will
probably report on this very soon.

The compiler does not panic if I turn
ReadP from a newtype into a datatype, what I have temporarily
done. I hope this is Ok for the moment.

)

20 years ago[project @ 2003-07-25 15:03:38 by simonpj]
simonpj [Fri, 25 Jul 2003 15:03:38 +0000 (15:03 +0000)]
[project @ 2003-07-25 15:03:38 by simonpj]
Wibbles to gread; Ralf to check

20 years ago[project @ 2003-07-25 14:36:38 by ralf]
ralf [Fri, 25 Jul 2003 14:36:50 +0000 (14:36 +0000)]
[project @ 2003-07-25 14:36:38 by ralf]
Data.Generics is up and running again!

The testsuite is passed 100% successful.
Much of the Data.Generics code looks better.
So the transition to a new Data class and
the deriving support is completed.

Some detailed changes:

- Rolled back type change for gmapQ.
  (We rather added gmapQl and gmapQr.)
- Renamed gmapF and other "F" to Mp like MonadPlus.
- Reconstructed gread.

20 years ago[project @ 2003-07-25 10:03:51 by simonmar]
simonmar [Fri, 25 Jul 2003 10:03:51 +0000 (10:03 +0000)]
[project @ 2003-07-25 10:03:51 by simonmar]
regcomp: don't attach the regfree finalizer if c_regcomp failed.

20 years ago[project @ 2003-07-24 16:24:21 by ralf]
ralf [Thu, 24 Jul 2003 16:24:22 +0000 (16:24 +0000)]
[project @ 2003-07-24 16:24:21 by ralf]
Addressed Ross' concerns as follows:
Included all of Data/Types.hs into Data/Typeable.hs.
It really makes sense there anyway.

20 years ago[project @ 2003-07-24 15:28:06 by simonpj]
simonpj [Thu, 24 Jul 2003 15:28:07 +0000 (15:28 +0000)]
[project @ 2003-07-24 15:28:06 by simonpj]
Minor bugs in generics

20 years ago[project @ 2003-07-24 15:13:44 by ross]
ross [Thu, 24 Jul 2003 15:13:44 +0000 (15:13 +0000)]
[project @ 2003-07-24 15:13:44 by ross]
exclude Data.Generics.* from Hugs

20 years ago[project @ 2003-07-24 14:20:23 by panne]
panne [Thu, 24 Jul 2003 14:20:23 +0000 (14:20 +0000)]
[project @ 2003-07-24 14:20:23 by panne]
Quick fix from Ross to get the Hugs builds working again. I'm not sure
what the right fix is, e.g. is moving sameType to Data.Types enough?

20 years ago[project @ 2003-07-24 13:53:20 by simonmar]
simonmar [Thu, 24 Jul 2003 13:53:20 +0000 (13:53 +0000)]
[project @ 2003-07-24 13:53:20 by simonmar]
Make pre-processing primops.txt from this directory work properly.

20 years ago[project @ 2003-07-24 12:19:57 by ralf]
ralf [Thu, 24 Jul 2003 12:20:00 +0000 (12:20 +0000)]
[project @ 2003-07-24 12:19:57 by ralf]
Major refactoring of Data/Generics.
This also affects the compiler (because of deriving issues).
This is an intermediate commit.
The library is supposed to compile fine.
But the deriving stuff for Data needs to be revised.
The testsuite for Data/Generics will not pass.
gread is broken at the moment.
So it is strongly recommended not to cvs upd for a few hours or a day.

Detailed description of changes:
- Split up Data/Dynamic into Data/Typeable and Data/Dynamic.
  (This makes clear what part is about TypeReps and cast vs.
   dynamics. The latter is not needed by Data/Generics.)
- Renamed Data/include/Dynamic.h -> Typeable.h to end confusion.
- Split up Data/Generics.hs in a set of modules.
- Revised class Data:
  - Got rid of gunfold but added fromConstr as more primtive one
  - Revised representations of constructors
  - Revised treatment of primitive types
- Revised type of gmapQ; preserved old gmapQ as gmapL
- Added a module Data/Types.hs for treatment of types as values.

This is going somewhere.

20 years ago[project @ 2003-07-24 12:05:42 by panne]
panne [Thu, 24 Jul 2003 12:05:42 +0000 (12:05 +0000)]
[project @ 2003-07-24 12:05:42 by panne]
GCC 3.3 is a bit picky about macros with a varying number of
arguments, even when they are skipped. Strange...

20 years ago[project @ 2003-07-24 10:41:38 by simonpj]
simonpj [Thu, 24 Jul 2003 10:41:38 +0000 (10:41 +0000)]
[project @ 2003-07-24 10:41:38 by simonpj]
Add more comments

20 years ago[project @ 2003-07-24 07:49:33 by simonpj]
simonpj [Thu, 24 Jul 2003 07:49:33 +0000 (07:49 +0000)]
[project @ 2003-07-24 07:49:33 by simonpj]
A gross hack to stop the pretty-printer going into an infinite loop.
What happens is that 'indent' is given a negative number, and that
made it loop.  This patch checks for the negative case, so at least
it doesn't loop -- but I don't understand why the indent ever goes negative,
so there's still something wrong here.

20 years ago[project @ 2003-07-23 15:39:54 by simonmar]
simonmar [Wed, 23 Jul 2003 15:39:54 +0000 (15:39 +0000)]
[project @ 2003-07-23 15:39:54 by simonmar]
GHC/PrimopWrappers.hs fix for BootingFromHc

20 years ago[project @ 2003-07-23 10:27:49 by wolfgang]
wolfgang [Wed, 23 Jul 2003 10:27:49 +0000 (10:27 +0000)]
[project @ 2003-07-23 10:27:49 by wolfgang]
Fix regular expressions for Mac OS X.

For some reason, Apple uses 64-bit offsets in regmatch_t,
so we have to use (#type regoff_t) instead of CInt.

MERGE TO STABLE.

20 years ago[project @ 2003-07-22 14:38:02 by simonpj]
simonpj [Tue, 22 Jul 2003 14:38:02 +0000 (14:38 +0000)]
[project @ 2003-07-22 14:38:02 by simonpj]
Remove out-of-date apology about mkTyConApp; merge to stable

20 years ago[project @ 2003-07-22 12:55:50 by simonmar]
simonmar [Tue, 22 Jul 2003 12:55:50 +0000 (12:55 +0000)]
[project @ 2003-07-22 12:55:50 by simonmar]
Export hShow (GHC only for now).

20 years ago[project @ 2003-07-22 09:55:05 by ross]
ross [Tue, 22 Jul 2003 09:55:06 +0000 (09:55 +0000)]
[project @ 2003-07-22 09:55:05 by ross]
jiggle to make System.Posix.Directory work for Hugs

20 years ago[project @ 2003-07-21 16:50:20 by simonmar]
simonmar [Mon, 21 Jul 2003 16:50:21 +0000 (16:50 +0000)]
[project @ 2003-07-21 16:50:20 by simonmar]
GHC's instance Show Handle is wrong, because it is impure.  This
commit makes the Show instance pure by restricting what it shows to
just the filename.

I moved the filename from the Handle__ (the mutable portion of the
Handle) to the Handle proper, to facilitate this.  This might result
in a small performance improvment because Handle__ is now slightly
smaller.

Also added:

  GHC.Handle.hShow :: Handle -> IO String

which provides the old functionality, but now in the IO monad.
Pending discussion on the libraries list, this may be exposed by
System.IO.

Also, while I was here, I did something I've been meaning to do for a
long time: change the godawful IOError Show instance.

Previously:

   illegal operation
   Action: hGetChar
   Handle: {loc=<stdin>,type=semi-closed,binary=False,buffering=block (8192)}
   Reason: handle is closed
   File: <stdin>

Now:

   <stdin>: hGetChar: illegal operation (handle is closed)

This is going to result in a bunch of test failures, but I'll deal
with those later.

20 years ago[project @ 2003-07-21 13:21:02 by malcolm]
malcolm [Mon, 21 Jul 2003 13:21:02 +0000 (13:21 +0000)]
[project @ 2003-07-21 13:21:02 by malcolm]
>  Build Control.Monad before Data.HashTable, the latter depends on the
>  former. Shouldn't the build system know about that automatically?

Yes.  The right way to fix the issue is to add a dependency between
the .o files.

20 years ago[project @ 2003-07-21 09:26:23 by simonmar]
simonmar [Mon, 21 Jul 2003 09:26:23 +0000 (09:26 +0000)]
[project @ 2003-07-21 09:26:23 by simonmar]
Fix showIntAtBase to match the report.  Its signature was previously

  showIntAtBase :: Integral a => a -> (a -> Char) -> a -> ShowS

and is now:

  showIntAtBase :: Integral a => a -> (a -> Char) -> a -> ShowS

20 years ago[project @ 2003-07-16 17:46:52 by sof]
sof [Wed, 16 Jul 2003 17:46:52 +0000 (17:46 +0000)]
[project @ 2003-07-16 17:46:52 by sof]
[win32]asyncDoProc :: FunPtr (Ptr a -> IO Int) -> Ptr a -> IO Int

20 years ago[project @ 2003-07-16 10:55:20 by simonmar]
simonmar [Wed, 16 Jul 2003 10:55:20 +0000 (10:55 +0000)]
[project @ 2003-07-16 10:55:20 by simonmar]
- Make showHex and showOct match the report (don't add leading "Ox" or
  "Oo").

- Remove showBin, which isn't specified by the report.