- 08 Nov, 2001 1 commit
-
-
simonmar authored
inputReady can be an unsafe foreign import.
-
- 07 Nov, 2001 1 commit
-
-
sof authored
Move towards having the IO implementation be plat-independent at the Haskell source code level.
-
- 18 Sep, 2001 1 commit
-
-
simonmar authored
- export hGetcBuffered, which is used by the compiler (StringBuffer) - don't export commitBuffer.
-
- 17 Sep, 2001 3 commits
-
-
simonmar authored
More small performance improvements
-
simonmar authored
Subvert GHC's full-laziness optimisation by explicitly lambda-lifting a local lambda expression to the top level, and exporting it to ensure it doesn't get inlined. Without this hack, full-laziness will float out several subexpressions, which turns out to be a pessimisation in this case. This is worth about 20% in hPutStr performance, so we now beat the old I/O library on 'cat' ;-) I'd like to MERGE TO STABLE this, but 5.02 is imminent so it might have to wait until 5.02.1.
-
simonmar authored
Fix a couple more cut-n-pastos in the line-buffered version of hPutStr. Also fill in the export list while I'm here. MERGE TO STABLE
-
- 14 Sep, 2001 1 commit
-
-
simonmar authored
oops: hPutStr wasn't flushing a line-buffered handle properly at the end of a line. MERGE TO STABLE
-
- 23 Aug, 2001 1 commit
-
-
sewardj authored
Globally-uniquify the names of some _wrap functions so that the previously-undetected global namespace clashes don't cause an assertion failure in Hash.c when compiled -DDEBUG when starting GHCi with various hslibs packages.
-
- 17 Aug, 2001 1 commit
-
-
simonmar authored
don't include <string.h> here, HsStd.h is the right place.
-
- 05 Aug, 2001 1 commit
-
-
ken authored
#include <string.h> for memcpy prototype.
-
- 04 Aug, 2001 1 commit
-
-
ken authored
Fixed assumption that int and HsInt are the same.
-
- 13 Jul, 2001 1 commit
-
-
rrt authored
Don't use relative #include paths, as these files will be compiled from inside cbits (they're now linked into the cbits library). All paths on which include files may be found must now be given with -I directives.
-
- 29 Jun, 2001 1 commit
-
-
simonmar authored
Fix a bug in hGetContents, namely that it wasn't closing the handle when the end of file was reached. Also tried to tidy the code up a bit while I was here.
-
- 22 Jun, 2001 1 commit
-
-
rrt authored
Fix paths to HsStd.h.
-
- 24 May, 2001 1 commit
-
-
simonmar authored
Make hGetContents work on DuplexHandles, and some small cleanups.
-
- 22 May, 2001 1 commit
-
-
simonmar authored
- System.exitWith now raises a (new) exception, ExitException ExitCode. - While I was there I cleaned up System.getArgs and System.getProgName, using foriegn label and removing progargs.c
-
- 21 May, 2001 1 commit
-
-
simonmar authored
minor performance improvement
-
- 18 May, 2001 1 commit
-
-
simonmar authored
I/O library rewrite ------------------- This commit replaces the old C/Haskell I/O implementation with a new Haskell-only one using the new FFI & hsc2hs. main points: - lots of code deleted: we're about 3000 lines of C lighter, but the amount of Haskell code is about the same. - performance is ok: some operations are faster, others are slower. There's still some tuning to do, though. - the new library is designed to handle read/write streams much better: a read/write stream gets a special kind of handle internally called a "DuplexHandle", which actually contains two separate handles, one for writing and one for reading. The upshot is that you can do simultaneous reading and writing to/from a socket or FIFO without any locking problems. The effect is similar to calling socketToHandle twice, except that finalization works properly (creating two separate Handles could lead to the socket being closed too early when one of the Handles is GC'd). - hConnectTo and withHandleFor are gone (no one responded to my mail on GHC users, but we can always bring 'em back if necessary). - I made a half-hearted attempt at keeping the system-specific code in one place: see PrelPosix.hsc. - I've rearranged the I/O tests and added lots more. ghc/tests/lib/IO now contains Haskell 98-only IO tests, ghc/test/lib/{IOExts, Directory, Time} now contain tests for the relevant libraries. I haven't quite finished in here yet, the IO tests work but the others don't yet. - I haven't done anything about Unicode yet, but now we can start to discuss what needs doing here. The new library is using MutableByteArrays for its buffers because that turned out to be a *lot* easier (and quicker) than malloc'd buffers - I hope this won't cause trouble for unicode translations though. WARNING: Windows users refrain from updating until we've had a chance to fix any issues that arise. Testing: the basic H98 stuff has been pretty thoroughly tested, but the new duplex handle stuff is still a little green.
-