panne [Fri, 21 Apr 2000 18:07:47 +0000 (18:07 +0000)]
[project @ 2000-04-21 18:07:46 by panne]
I've bitten the bullet and cleaned up the mess around Readline. There
are actually questions to answer by autoconf:
* Are the headers available for compilation?
* Are the libraries (and which) available for linking?
Note that in the second case it should be the libraries on the machine
which GHC is *installed* on, not the ones on which it was compiled.
GhcLibsWithReadline is now automagically set if the headers are found,
but this can still be overridden.
panne [Fri, 21 Apr 2000 18:05:20 +0000 (18:05 +0000)]
[project @ 2000-04-21 18:05:19 by panne]
/tmp/msg
panne [Fri, 21 Apr 2000 15:59:13 +0000 (15:59 +0000)]
[project @ 2000-04-21 15:59:13 by panne]
Bumped the maximum size of tuples from 37 to 62. If this is not
wanted, use PrelTup_HC_OPTS+=-DNO_LARGE_TUPLES in build.mk.
panne [Fri, 21 Apr 2000 15:48:38 +0000 (15:48 +0000)]
[project @ 2000-04-21 15:48:38 by panne]
Further steps towards an empty build.mk:
* GHC is now built with -O by default
* hslibs/tools now use GhcLibToolsHcOpts, again -O by default
simonpj [Fri, 21 Apr 2000 15:07:45 +0000 (15:07 +0000)]
[project @ 2000-04-21 15:07:45 by simonpj]
Add loop test
simonpj [Fri, 21 Apr 2000 14:40:49 +0000 (14:40 +0000)]
[project @ 2000-04-21 14:40:48 by simonpj]
Remove a way to make the simplifier go into an
infinite loop. This has been there for some weeks;
and George's UniForm tickled it. I'm amazed nothing
else has done so. I'll add a test.
The bad case happened when you go
let xs = 1:xs
in
foldr k z xs
Then we kept firing the foldr/cons rule.
Solution: we don't attach an unfolding *at all* to
loop breakers (Simplify.completeBinding)
simonpj [Fri, 21 Apr 2000 14:35:46 +0000 (14:35 +0000)]
[project @ 2000-04-21 14:35:46 by simonpj]
First I forgot to commit all the files for the
Java support. Then I spoke the wrong CVS command.
This commit just adds the log message!
--------------------------
Add support for Java generation, written in
a lightning day with Erik Meijer
ghc -J Foo.hs
will do the business, generating Foo.java
The code is in a new directory, javaGen/, so
you'll need to cvs update -d.
I've reorganised main/CodeOutput quite a bit; it
is now much much tidier, and will accommodate new
languages quite easily.
I've also fiddled with the flags that communicate
between the driver and hsc.
GONE: -S= -C=
NEW: -olang=xxx output language xxx
xxx can be: C, asm, java
-ofile=xxx put the output code in file xxx
BEWARE that I might have broken some of the more
cryptic stuff in ghc.lprl.
Simon
simonpj [Fri, 21 Apr 2000 12:59:13 +0000 (12:59 +0000)]
[project @ 2000-04-21 12:59:13 by simonpj]
And here is the commit for the driver
simonpj [Fri, 21 Apr 2000 12:57:54 +0000 (12:57 +0000)]
[project @ 2000-04-21 12:57:54 by simonpj]
/home/simonpj/tmp/msg
simonpj [Thu, 20 Apr 2000 16:45:16 +0000 (16:45 +0000)]
[project @ 2000-04-20 16:45:16 by simonpj]
Add support for Java generation, written in
a lightning day with Erik Meijer
ghc -J Foo.hs
will do the business, generating Foo.java
The code is in a new directory, javaGen/, so
you'll need to cvs update -d.
I've reorganised main/CodeOutput quite a bit; it
is now much much tidier, and will accommodate new
languages quite easily.
I've also fiddled with the flags that communicate
between the driver and hsc.
GONE: -S= -C=
NEW: -olang=xxx output language xxx
xxx can be: C, asm, java
-ofile=xxx put the output code in file xxx
BEWARE that I might have broken some of the more
cryptic stuff in ghc.lprl.
Simon
simonpj [Thu, 20 Apr 2000 16:31:47 +0000 (16:31 +0000)]
[project @ 2000-04-20 16:31:47 by simonpj]
Finish TcClassDecl
panne [Thu, 20 Apr 2000 16:28:39 +0000 (16:28 +0000)]
[project @ 2000-04-20 16:28:39 by panne]
To avoid potential collisions between different modules, prefix the
names of the C stubs with the module name.
panne [Thu, 20 Apr 2000 16:22:46 +0000 (16:22 +0000)]
[project @ 2000-04-20 16:22:46 by panne]
I'm not sure if the last commit of MkId.lhs was incorrect or
incomplete. Anyway, to build hsc I've commented out the now
superfluous parameter for mkDictSelId (marked with "SUP:???").
panne [Thu, 20 Apr 2000 15:49:21 +0000 (15:49 +0000)]
[project @ 2000-04-20 15:49:21 by panne]
Package util now depends on package posix, too.
NOTE: To get Readline up and working, -lreadline and one of
-lncurses/-lcurses/-ltermcap has to be inserted, too, but this has to
be autoconf-ed somehow (later...)
simonmar [Thu, 20 Apr 2000 15:48:20 +0000 (15:48 +0000)]
[project @ 2000-04-20 15:48:20 by simonmar]
Update this file to the one on the web site, and add Simon's latest
notes about using the cvs- lists for bug reports about the cvs
sources.
simonmar [Thu, 20 Apr 2000 15:34:17 +0000 (15:34 +0000)]
[project @ 2000-04-20 15:34:17 by simonmar]
Print out cost centre names as C strings (using proper escaping for
special characters etc.).
panne [Thu, 20 Apr 2000 15:22:54 +0000 (15:22 +0000)]
[project @ 2000-04-20 15:22:54 by panne]
Improved rules for stubs. Not perfect yet, but better than before.
simonmar [Thu, 20 Apr 2000 15:18:58 +0000 (15:18 +0000)]
[project @ 2000-04-20 15:18:58 by simonmar]
add pprStringInCStyle :: String -> SDoc
(we already have a FAST_STRING version but not one for plain Strings).
simonmar [Thu, 20 Apr 2000 13:20:31 +0000 (13:20 +0000)]
[project @ 2000-04-20 13:20:31 by simonmar]
Fix for initModules when unregisterised.
simonpj [Thu, 20 Apr 2000 12:50:18 +0000 (12:50 +0000)]
[project @ 2000-04-20 12:50:18 by simonpj]
Dont strip directory prefix when printing src-locs
simonpj [Thu, 20 Apr 2000 10:56:05 +0000 (10:56 +0000)]
[project @ 2000-04-20 10:56:05 by simonpj]
- Fix bug in TcExpr.tcMonoExpr (RecordUpd ...), where I hadn't
propagated the recent change (to be H98ish) that record selectors
for types with a context are overloaded:
data Eq a => T a { f1 :: a }
Here f1 :: Eq a => T a -> a
I don't like this, but Mark persuaded me that this was the
Right Thing if we are to have contexts in data decls at all
(which we should not)
simonpj [Thu, 20 Apr 2000 07:02:37 +0000 (07:02 +0000)]
[project @ 2000-04-20 07:02:37 by simonpj]
wibble
simonmar [Wed, 19 Apr 2000 16:51:08 +0000 (16:51 +0000)]
[project @ 2000-04-19 16:51:08 by simonmar]
Space leak fix from Simon P.J.
simonpj [Wed, 19 Apr 2000 16:40:53 +0000 (16:40 +0000)]
[project @ 2000-04-19 16:40:53 by simonpj]
- Fix foreign export dynamic wibble (reported by Sven)
simonpj [Wed, 19 Apr 2000 16:24:00 +0000 (16:24 +0000)]
[project @ 2000-04-19 16:24:00 by simonpj]
- Don't rm the .o file when splitting. Doing so
forces grotesque amounts of recompilation
simonpj [Wed, 19 Apr 2000 12:47:55 +0000 (12:47 +0000)]
[project @ 2000-04-19 12:47:55 by simonpj]
- Arrange that -ddump-simpl-stats works whether or
not DEBUG is defines (Ross Paterson's request)
simonmar [Wed, 19 Apr 2000 12:42:48 +0000 (12:42 +0000)]
[project @ 2000-04-19 12:42:48 by simonmar]
- generate the heap profiling into <prog>.hp, as advertised
- clean up RtsFlags a bit
simonmar [Wed, 19 Apr 2000 10:53:11 +0000 (10:53 +0000)]
[project @ 2000-04-19 10:53:11 by simonmar]
Profiling info for all the thunks herein.
simonmar [Wed, 19 Apr 2000 10:52:36 +0000 (10:52 +0000)]
[project @ 2000-04-19 10:52:36 by simonmar]
Profiling description info for PAP and AP_UPD.
simonmar [Wed, 19 Apr 2000 10:51:59 +0000 (10:51 +0000)]
[project @ 2000-04-19 10:51:59 by simonmar]
MUT_VAR needs some profiling description info.
panne [Wed, 19 Apr 2000 09:59:55 +0000 (09:59 +0000)]
[project @ 2000-04-19 09:59:55 by panne]
Corrected typo in nfib example (/ => `div`).
Added description for hp2ps's -c/-y flags.
simonmar [Wed, 19 Apr 2000 09:12:10 +0000 (09:12 +0000)]
[project @ 2000-04-19 09:12:10 by simonmar]
Fix a bug in previous commit, some .globls were getting thrown away.
simonmar [Tue, 18 Apr 2000 16:47:50 +0000 (16:47 +0000)]
[project @ 2000-04-18 16:47:50 by simonmar]
enumFrom<blah> on Ratios changed slightly recently. The current
behaviour is correct.
simonmar [Tue, 18 Apr 2000 16:44:46 +0000 (16:44 +0000)]
[project @ 2000-04-18 16:44:46 by simonmar]
Push directives over literal chunks when attempting to move them to
the following chunk on x86. Occasionally gcc generates a .glob
directive some distance before the symbol it refers to, and we were
ending up with a whole load of .glob directives attached to strings,
and duplicated in each .o file when splitting.
This change reduces the size of my libHSstd_p.a from 43M (!!!) to 9M.
I think this problem must have appeared with gcc 2.95.2, but it's a
little strange that I didn't notice it until now.
simonmar [Tue, 18 Apr 2000 16:27:23 +0000 (16:27 +0000)]
[project @ 2000-04-18 16:27:23 by simonmar]
Addr no longer exports A#.
simonmar [Tue, 18 Apr 2000 16:26:07 +0000 (16:26 +0000)]
[project @ 2000-04-18 16:25:05 by simonmar]
CCallable [Char] is no longer supported.
simonmar [Tue, 18 Apr 2000 15:06:19 +0000 (15:06 +0000)]
[project @ 2000-04-18 15:06:19 by simonmar]
give CAF_BLACKHOLEs a closure description/type (for profiling).
simonmar [Tue, 18 Apr 2000 14:54:00 +0000 (14:54 +0000)]
[project @ 2000-04-18 14:54:00 by simonmar]
Revamp this chapter for the new profiling stuff.
panne [Tue, 18 Apr 2000 11:39:07 +0000 (11:39 +0000)]
[project @ 2000-04-18 11:39:07 by panne]
Add ghcprof to file list (what about DrIFT, DtdToHaskell, Xtract and
hslibs in general?)
panne [Tue, 18 Apr 2000 11:31:56 +0000 (11:31 +0000)]
[project @ 2000-04-18 11:31:56 by panne]
Substitute libexecdir, too
simonmar [Tue, 18 Apr 2000 11:01:24 +0000 (11:01 +0000)]
[project @ 2000-04-18 11:01:24 by simonmar]
Add declarations so that emacs PSGML mode can find the DOCTYPE
declaration properly.
simonmar [Mon, 17 Apr 2000 15:49:19 +0000 (15:49 +0000)]
[project @ 2000-04-17 15:49:19 by simonmar]
Check for litlits and dll things when making top-level constrs.
sewardj [Mon, 17 Apr 2000 14:46:31 +0000 (14:46 +0000)]
[project @ 2000-04-17 14:46:31 by sewardj]
zap call to nameFromOPtr (sigh)
sewardj [Mon, 17 Apr 2000 14:42:30 +0000 (14:42 +0000)]
[project @ 2000-04-17 14:42:30 by sewardj]
Get rid of debugging junk in #ifdef USE_MINIINTERPRETER :-(
sewardj [Mon, 17 Apr 2000 14:31:19 +0000 (14:31 +0000)]
[project @ 2000-04-17 14:31:19 by sewardj]
Re-enable symbol table loading for BFD platforms.
simonmar [Mon, 17 Apr 2000 14:27:32 +0000 (14:27 +0000)]
[project @ 2000-04-17 14:27:32 by simonmar]
Add prof to SUBDIRS
sewardj [Mon, 17 Apr 2000 13:28:17 +0000 (13:28 +0000)]
[project @ 2000-04-17 13:28:17 by sewardj]
Track recent -package changes to interfaces. Also link new symbols
blockAsyncExceptionszh_fast, unblockAsyncExceptionszh_fast,
takeMaybeMVarzh_fast.
simonmar [Mon, 17 Apr 2000 12:58:40 +0000 (12:58 +0000)]
[project @ 2000-04-17 12:58:40 by simonmar]
- actually add -split-objs to SRC_HC_OPTS if $(SplitObjs) == YES and
we're building a library.
- collect together all the $(SplitObjs) stuff in one place under
the library building code (it's only relevant for libraries).
SplitObjs=YES should now work.
simonmar [Mon, 17 Apr 2000 11:57:55 +0000 (11:57 +0000)]
[project @ 2000-04-17 11:57:55 by simonmar]
- Turn SplitObjs off.
- Update a woefully out of date comment.
simonmar [Mon, 17 Apr 2000 11:39:56 +0000 (11:39 +0000)]
[project @ 2000-04-17 11:39:56 by simonmar]
Move the HC_PRE & HC_POST stuff into target.mk, so we can override
SplitObjs in the Makefile properly.
sewardj [Mon, 17 Apr 2000 11:39:23 +0000 (11:39 +0000)]
[project @ 2000-04-17 11:39:23 by sewardj]
Make :r (reload) behave more like Hugs98: try and set the current module
to what it was at the last non-failing reload.
simonmar [Mon, 17 Apr 2000 11:35:18 +0000 (11:35 +0000)]
[project @ 2000-04-17 11:35:18 by simonmar]
Add $(INSTALL_INCLUDES), we'll probably need it at some point.
sewardj [Mon, 17 Apr 2000 10:02:32 +0000 (10:02 +0000)]
[project @ 2000-04-17 10:02:32 by sewardj]
Zap an old Partainesque .gdbinit file.
panne [Sun, 16 Apr 2000 16:35:58 +0000 (16:35 +0000)]
[project @ 2000-04-16 16:35:58 by panne]
Make splitting object files the default again on non-Windoze platforms
panne [Sun, 16 Apr 2000 16:23:24 +0000 (16:23 +0000)]
[project @ 2000-04-16 16:23:24 by panne]
Fixed name of std library when not building a DLL
panne [Fri, 14 Apr 2000 16:47:43 +0000 (16:47 +0000)]
[project @ 2000-04-14 16:47:43 by panne]
Reduce number of warnings and raise chances of successful compilation
when *not* building an interpreter :-)
rrt [Fri, 14 Apr 2000 16:43:52 +0000 (16:43 +0000)]
[project @ 2000-04-14 16:43:52 by rrt]
Change package name of prelude to std.
rrt [Fri, 14 Apr 2000 16:26:53 +0000 (16:26 +0000)]
[project @ 2000-04-14 16:26:53 by rrt]
Correct an off-by-one error.
rrt [Fri, 14 Apr 2000 16:25:08 +0000 (16:25 +0000)]
[project @ 2000-04-14 16:25:08 by rrt]
Increased paranoia.
rrt [Fri, 14 Apr 2000 16:21:32 +0000 (16:21 +0000)]
[project @ 2000-04-14 16:21:32 by rrt]
Spell "flush" "flush" not "flish".
rrt [Fri, 14 Apr 2000 16:19:43 +0000 (16:19 +0000)]
[project @ 2000-04-14 16:19:43 by rrt]
Set fo->bufSize even if it's 0.
rrt [Fri, 14 Apr 2000 16:17:49 +0000 (16:17 +0000)]
[project @ 2000-04-14 16:17:49 by rrt]
Correct DLL names.
simonmar [Fri, 14 Apr 2000 16:17:47 +0000 (16:17 +0000)]
[project @ 2000-04-14 16:17:47 by simonmar]
catch exceptions around commitBuffer and free the buffer. This closes
one memory leak in the new I/O stuff, there may be another small one left.
rrt [Fri, 14 Apr 2000 16:16:13 +0000 (16:16 +0000)]
[project @ 2000-04-14 16:16:13 by rrt]
Make PrelMain build under the new packages system (less hacky than before).
rrt [Fri, 14 Apr 2000 15:55:00 +0000 (15:55 +0000)]
[project @ 2000-04-14 15:55:00 by rrt]
Fixed -split-objs and removed last vestiges of dLL_ifs.hi.
rrt [Fri, 14 Apr 2000 15:28:24 +0000 (15:28 +0000)]
[project @ 2000-04-14 15:28:24 by rrt]
Removed -fcompiling-prelude flag (now removed from compiler)
sewardj [Fri, 14 Apr 2000 15:18:07 +0000 (15:18 +0000)]
[project @ 2000-04-14 15:18:05 by sewardj]
Clean up the runtime heap before deleting modules (and, currently, after
every evaluation) so that the combined system can safely throw away
modules and info tables without creating dangling refs from the heap.
simonmar [Fri, 14 Apr 2000 15:15:48 +0000 (15:15 +0000)]
[project @ 2000-04-14 15:15:48 by simonmar]
Text => Show
sewardj [Fri, 14 Apr 2000 15:11:25 +0000 (15:11 +0000)]
[project @ 2000-04-14 15:11:25 by sewardj]
wibble
sewardj [Fri, 14 Apr 2000 15:10:20 +0000 (15:10 +0000)]
[project @ 2000-04-14 15:10:20 by sewardj]
Change NO_MACHREGS back to NO_REGS -- I misunderstood the problem.
sewardj [Fri, 14 Apr 2000 15:08:14 +0000 (15:08 +0000)]
[project @ 2000-04-14 15:08:14 by sewardj]
gcc-warning-avoiding-wibble
simonmar [Fri, 14 Apr 2000 14:15:07 +0000 (14:15 +0000)]
[project @ 2000-04-14 14:15:07 by simonmar]
back off from _POSIX_C_SOURCE=199506L to 199309L, because the former
causes a bunch of extra functions thread-related to be compiled into
each module on Solaris.
simonmar [Fri, 14 Apr 2000 14:07:43 +0000 (14:07 +0000)]
[project @ 2000-04-14 14:07:43 by simonmar]
msTime() uses non-POSIX features, so #define NON_POSIX_SOURCE.
simonmar [Fri, 14 Apr 2000 14:07:18 +0000 (14:07 +0000)]
[project @ 2000-04-14 14:07:18 by simonmar]
uncomment prototype for msTime.
simonmar [Fri, 14 Apr 2000 13:47:12 +0000 (13:47 +0000)]
[project @ 2000-04-14 13:47:12 by simonmar]
#define _POSIX_C_SOURCE 199506L
#define _ISOC9X_SOURCE
simonmar [Fri, 14 Apr 2000 12:49:39 +0000 (12:49 +0000)]
[project @ 2000-04-14 12:49:39 by simonmar]
Free the spare buffers immediately we hClose a file handle.
simonmar [Fri, 14 Apr 2000 12:46:34 +0000 (12:46 +0000)]
[project @ 2000-04-14 12:46:34 by simonmar]
Fix a bug in commitBuffer, and tweak the semantics of
commitBuffer/commitAndReleaseBuffer.
Add some comments on the algorithms used here.
simonmar [Fri, 14 Apr 2000 09:54:12 +0000 (09:54 +0000)]
[project @ 2000-04-14 09:54:12 by simonmar]
fix for interface header regexp; orphan modules weren't being recorded
as such.
simonmar [Fri, 14 Apr 2000 09:37:03 +0000 (09:37 +0000)]
[project @ 2000-04-14 09:37:03 by simonmar]
Don't bother printing the HiVersion in the __interface line (it's
added by ghc-iface later on anyway).
simonmar [Fri, 14 Apr 2000 08:58:00 +0000 (08:58 +0000)]
[project @ 2000-04-14 08:58:00 by simonmar]
Text => Show
_ByteArray => ByteArray
simonmar [Fri, 14 Apr 2000 08:55:42 +0000 (08:55 +0000)]
[project @ 2000-04-14 08:55:42 by simonmar]
fix up imports of ForeignObj(..).
simonmar [Fri, 14 Apr 2000 08:52:35 +0000 (08:52 +0000)]
[project @ 2000-04-14 08:52:35 by simonmar]
_ForeignObj ==> ForeignObj
simonmar [Fri, 14 Apr 2000 08:29:49 +0000 (08:29 +0000)]
[project @ 2000-04-14 08:29:49 by simonmar]
we should be using hPutBufFull here.
sewardj [Thu, 13 Apr 2000 23:03:12 +0000 (23:03 +0000)]
[project @ 2000-04-13 23:03:12 by sewardj]
Changed NO_REGS to NO_MACHREGS to avoid inexplicable gcc warnings when
building the rts for Hugs.
panne [Thu, 13 Apr 2000 20:41:32 +0000 (20:41 +0000)]
[project @ 2000-04-13 20:41:30 by panne]
GHC has instance amnesia again, so a bunch of funny
`import Ppr{Core,Type} ()? had to be added. Sorry,
but I need a bootstrapping GHC.
panne [Thu, 13 Apr 2000 19:44:22 +0000 (19:44 +0000)]
[project @ 2000-04-13 19:44:22 by panne]
Again: Addr is an abstract type in Addr, so import from PrelAddr instead.
Told you so...
panne [Thu, 13 Apr 2000 19:31:05 +0000 (19:31 +0000)]
[project @ 2000-04-13 19:31:05 by panne]
Bootstrapping fun:
* Addr is an abstract type in Addr, so import from PrelAddr instead
* Ignore the (recently introduced) return value of hPutBuf{,BA}
Probably more to come. No problem, as long as I don't run out of malt
first... %-)
panne [Thu, 13 Apr 2000 19:12:17 +0000 (19:12 +0000)]
[project @ 2000-04-13 19:12:17 by panne]
Ooops, forgot one -syslib => -package
panne [Thu, 13 Apr 2000 18:49:21 +0000 (18:49 +0000)]
[project @ 2000-04-13 18:49:21 by panne]
HS_cbits => HSstd_cbits
panne [Thu, 13 Apr 2000 15:37:11 +0000 (15:37 +0000)]
[project @ 2000-04-13 15:37:11 by panne]
StgStablePtr is now void*, as required by The Happy Bit Fiddlers
rrt [Thu, 13 Apr 2000 15:00:49 +0000 (15:00 +0000)]
[project @ 2000-04-13 15:00:49 by rrt]
Added details of packages.
panne [Thu, 13 Apr 2000 14:27:15 +0000 (14:27 +0000)]
[project @ 2000-04-13 14:27:15 by panne]
Removed the useless (and hard to implement) readForeignObjOffAddr#
simonmar [Thu, 13 Apr 2000 14:11:00 +0000 (14:11 +0000)]
[project @ 2000-04-13 14:11:00 by simonmar]
remove accidentally committed stuff.
simonpj [Thu, 13 Apr 2000 11:56:37 +0000 (11:56 +0000)]
[project @ 2000-04-13 11:56:35 by simonpj]
Add support for 'packages'.
* A package is a group of modules.
* A package has a name (e.g. std)
* A package is built into a single library (Unix; e.g. libHSstd.a)
or a single DLL (Windows; e.g. HSstd.dll)
* The '-package-name foo' flag tells GHC that the module being compiled
is destined for package foo.
* The '-package foo' flag tells GHC to make available modules
from package 'foo'. It replaces '-syslib foo' which is now deprecated.
* Cross-package references cost an extra indirection in Windows,
but not Unix
* GHC does not maintain detailed cross-package dependency information.
It does remember which modules in other packages the current module
depends on, but not which things within those imported things.
All of this tidies up the Prelude enormously. The Prelude and
Standard Libraries are built into a singl package called 'std'. (This
is a change; the library is now called libHSstd.a instead of libHS.a)
simonmar [Thu, 13 Apr 2000 08:58:27 +0000 (08:58 +0000)]
[project @ 2000-04-13 08:58:27 by simonmar]
Move block/unblockAsyncExceptions here, now that they're used in PrelHandle.
simonmar [Wed, 12 Apr 2000 17:33:17 +0000 (17:33 +0000)]
[project @ 2000-04-12 17:33:16 by simonmar]
This commit fixes the trace/stderr problem, and also fixes some other
problems with the I/O library.
- handles now contain a list of free buffers, which are
guaranteed to be the same size as the primary handle buffer.
- hPutStr now doesn't evaluate any part of the input string with
the handle locked. Instead, it acquires a buffer from the handle
copies characters into it, then commits the buffer. This is
better for concurrency too, because the handle is only locked
while we're actually reading/writing, not while evaluating.
- there were an even number of off-by-one errors in the I/O system
which compensated for each other. This has been fixed.
- made the I/O subsystem a little more exception-safe. It still
isn't totally exception-safe, but I can't face doing that
without a complete rewrite of this thing in Haskell.
- add hPutBufFull and hGetBufFull. The compiler probably needs to
be updated to use these too.
simonmar [Wed, 12 Apr 2000 17:12:23 +0000 (17:12 +0000)]
[project @ 2000-04-12 17:12:23 by simonmar]
add takeMaybeMVarzh_fast decl.
simonmar [Wed, 12 Apr 2000 17:11:38 +0000 (17:11 +0000)]
[project @ 2000-04-12 17:11:38 by simonmar]
add takeMaybeMVarzh_fast
simonmar [Wed, 12 Apr 2000 17:08:15 +0000 (17:08 +0000)]
[project @ 2000-04-12 17:08:15 by simonmar]
add takeMaybeMVar
simonmar [Wed, 12 Apr 2000 16:22:48 +0000 (16:22 +0000)]
[project @ 2000-04-12 16:22:48 by simonmar]
add takeMaybeMVar#