Missing headers from SharedMem.hsc
Simon Marlow
marlowsd at gmail.com
Tue Jan 13 06:13:23 EST 2009
Don Stewart wrote:
> It was also missing HsUnix.h, so the #defines weren't propagating
> anyway.
>
>
> Mon Jan 12 15:07:58 PST 2009 Don Stewart <dons at galois.com>
> * Add check for -lrt to get the shm* functions. Subst. in buildinfo
>
> Mon Jan 12 15:47:17 PST 2009 Don Stewart <dons at galois.com>
> * SharedMem.hsc wasn't including HsUnixConfig.h, so no #defines were propagating
I can't apply these here:
$ darcs apply ~/sharedmem.patch
darcs: Cannot apply this patch bundle, since we're missing:
Thu Nov 10 12:58:32 GMT 2005 simonmar
* [project @ 2005-11-10 12:58:32 by simonmar]
Some docs for System.Posix, from Bj�rn Bringert
this looks like an encoding issue, since in the history I have:
Thu Nov 10 12:58:32 GMT 2005 simonmar
* [project @ 2005-11-10 12:58:32 by simonmar]
Some docs for System.Posix, from Bj[_\f6_]rn Bringert
I tried with darcs 2.2.0rc1 and 1.0.9, same result.
Anyone know what's going on here? (for the darcs-users folks, the repo to
apply to is http://darcs.haskell.org/packages/unix).
Cheers,
Simon
-------------- next part --------------
Mon Jan 12 15:07:58 PST 2009 Don Stewart <dons at galois.com>
* Add check for -lrt to get the shm* functions. Subst. in buildinfo
Mon Jan 12 15:47:17 PST 2009 Don Stewart <dons at galois.com>
* SharedMem.hsc wasn't including HsUnixConfig.h, so no #defines were propagating
New patches:
[Add check for -lrt to get the shm* functions. Subst. in buildinfo
Don Stewart <dons at galois.com>**20090112230758] hunk ./configure.ac 30
AC_CHECK_FUNCS([nanosleep])
AC_CHECK_FUNCS([ptsname])
AC_CHECK_FUNCS([setitimer])
+
+# Avoid adding rt if absent or unneeded
+AC_CHECK_LIB(rt, shm_open, [EXTRA_LIBS="$EXTRA_LIBS rt" CFLAGS="$CFLAGS -lrt"])
+
+# needs -lrt on linux
AC_CHECK_FUNCS([shm_open shm_unlink])
FP_CHECK_CONSTS([SIGABRT SIGALRM SIGBUS SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU SIGUSR1 SIGUSR2 SIGPOLL SIGPROF SIGSYS SIGTRAP SIGURG SIGVTALRM SIGXCPU SIGXFSZ SIG_BLOCK SIG_SETMASK SIG_UNBLOCK], [
[SharedMem.hsc wasn't including HsUnixConfig.h, so no #defines were propagating
Don Stewart <dons at galois.com>**20090112234717] hunk ./System/Posix/SharedMem.hsc 26
#include <sys/mman.h>
#include <sys/fcntl.h>
+#include "HsUnix.h"
+
import System.Posix.Types
import System.Posix.Error
import Foreign.C
Context:
[Avoid using IOError internals
Ian Lynagh <igloo at earth.li>**20090104173221]
[fix pthread linkage problem for openbsd
Matthias Kilian <kili at outback.escape.de>**20081129000638
This should make my openbsd build slave happy when SplitObjs=NO.
May be useful for other BSDs and even Linux, regardless wether you
need -pthread or -lpthread. Time will tell...
]
[catch up with exception changes
Simon Marlow <marlowsd at gmail.com>**20080927135428]
[Bump version number to 2.3.1.0
Ian Lynagh <igloo at earth.li>**20080920160248]
[TAG 6.10 branch has been forked
Ian Lynagh <igloo at earth.li>**20080919123439]
[follow library changes
Ian Lynagh <igloo at earth.li>**20080903223616]
[add category field
Ross Paterson <ross at soi.city.ac.uk>**20080824003014]
[We now depend on concurrent (split off from base)
Ian Lynagh <igloo at earth.li>**20080824135158]
[Fix the build when CONST_SIGPOLL == -1
Ian Lynagh <igloo at earth.li>**20080823160346
We were defining, but not using, sigPOLL
]
[Fix warnings in the unix package
Ian Lynagh <igloo at earth.li>**20080821120138]
[move some stuff here from System.Directory, now the dependencies are reversed
Simon Marlow <marlowsd at gmail.com>**20080821144754]
[Follow extensible exceptions changes
Ian Lynagh <igloo at earth.li>**20080623193152]
[Allow C's unsetenv to return either void or int
Ian Lynagh <igloo at earth.li>**20080703190603
Fixes, and patch from donn in, trac #2352.
]
[Avoid using deprecated flags
Ian Lynagh <igloo at earth.li>**20080616145425]
[move __hscore_{mkstemp,getrlimit,setrlimit} here from base
Ross Paterson <ross at soi.city.ac.uk>**20080615224248]
[TAG 2008-05-28
Ian Lynagh <igloo at earth.li>**20080528004441]
[Add a test for #2038 (resourceLimit)
Ian Lynagh <igloo at earth.li>**20080520163012]
[Use the C wrappers for [gs]etrlimit
Ian Lynagh <igloo at earth.li>**20080520162048
This is for #2038: macros are used in the Linux .h includes to redirect
to a 64-bit version when large file support is enabled.
]
[Use the __hscore_mkstemp wrapper from the base package
Ian Lynagh <igloo at earth.li>**20080520162039
This is for #2038: macros are used in the Linux .h includes to redirect
to a 64-bit version when large file support is enabled.
]
[small doc tweak
Simon Marlow <simonmar at microsoft.com>**20080508114348]
[add AC_SYS_LARGEFILE check to configure.ac
jeremy.shaw at linspireinc.com**20080213223619
As explained in this thread:
http://www.haskell.org/pipermail/haskell-cafe/2008-February/039549.html
getSymbolicLinkStatus (and possibly other functions) return completely
bogus results. This is because hsc2hs returns the offsets for stat64,
but the library is built such that it calls the 32 bit lstat call.
I copied the AC_SYS_LARGEFILE from ghc's configure.ac. So, I believe
the library should now properly autodetect whether your system has
large file support and do the right thing more often. I suspect that
this would still be buggy if ghc was built without large file support,
but the library was built with it enabled. However, as long as
AC_SYS_LARGEFILE returns the same results for 'ghc' and 'unix', things
should be ok ?
]
[Throw a proper exception if getUserEntryForName fails to find an entry
Ian Lynagh <igloo at earth.li>**20080115020547
Fixes trac #2033.
]
[Add a test getUserEntryForName for trac #1976
Ian Lynagh <igloo at earth.li>**20080115020540]
[protect against concurrent access to the signal handlers (#1922)
Simon Marlow <simonmar at microsoft.com>**20071204110839
]
[Fix some haddock links
Ian Lynagh <igloo at earth.li>**20071126184521]
[Throw a proper exception if getGroupEntryForName fails to find an entry
Ian Lynagh <igloo at earth.li>**20071110235805
We used to get
*** Exception: getGroupEntryForName: failed (Success)
Fixes trac #1655
]
[fix framework failures
Simon Marlow <simonmar at microsoft.com>**20071029114606]
[Remove incorrect comment
Ian Lynagh <igloo at earth.li>**20071014101756]
[Specify build-type: Configure
Duncan Coutts <duncan at haskell.org>**20071018125127]
[Bump version number
Ian Lynagh <igloo at earth.li>**20071014101806]
[Support for 57600 and 115200 baudrates
pweaver at galois.com**20071016191631]
[Also guard the foreign declaration of __hsunix(grant|unlock)pt by HAVE_PTSNAME
Clemens Fruhwirth <clemens at endorphin.org>**20071016143846]
[Add basic pseudoterminal support.
Bryan O'Sullivan <bos at serpentine.com>**20070925113330]
[check for shm_open/shm_unlink (for archs like OpenBSD without them)
Don Stewart <dons at galois.com>**20070916025218]
[Add more entries to boring file
Ian Lynagh <igloo at earth.li>**20070913210721]
[Add a boring file
Ian Lynagh <igloo at earth.li>**20070913204658]
[in pPrPr_disableITimers (who made up that name?) call the RTS to disable the timer
Simon Marlow <simonmar at microsoft.com>**20070912145647
Since we switched to using timer_create() in the RTS, this function
has been failing to disables the timer interrupts. This turns out to
be the cause of the random framework failures in the test suite.
Invoking the RTS to turn off the timer signal is the right thing.
]
[TAG ghc-6.8 branched 2007-09-03
Ian Lynagh <igloo at earth.li>**20070903155840]
[Suppress some warnings
Ian Lynagh <igloo at earth.li>**20070902194033]
[Remove redundant include/Makefile
Ian Lynagh <igloo at earth.li>**20070828205715]
[add cross-referencing between posix and process modules
ijones at syntaxpolice.org**20070819073930]
[get the SIG constants for ourselves, rather than relying on HsBaseConfig.h
Ross Paterson <ross at soi.city.ac.uk>**20070819233142]
[FIX BUILD on OS X: Check for setitimer
Roman Leshchinskiy <rl at cse.unsw.edu.au>**20070814020033
Fix suggested by Ian Lynagh
]
[Remove bits left over from the old build system
Ian Lynagh <igloo at earth.li>**20070811135134]
[Move System.Posix.Signals from base
Ian Lynagh <igloo at earth.li>**20070729215617
Also adds System.Posix.Process.Internals in order to make the deps work out.
]
[Move throwErrnoPath* functions to base:Foreign.C.Error
Ian Lynagh <igloo at earth.li>**20070722002956]
[GHC.Handle no longer exports openFd
Ian Lynagh <igloo at earth.li>**20070722000926]
[disable the getLoginName test, see #1487
Simon Marlow <simonmar at microsoft.com>**20070703105224]
[Don't do "< /dev/null" when running the user001 test
Ian Lynagh <igloo at earth.li>**20070623205408
It can cause the test to fail.
]
[--configure-option and --ghc-option are now provided by Cabal
Ross Paterson <ross at soi.city.ac.uk>**20070604115617]
[Add support for named semaphores and shared memory objects
Daniel Franke <df at dfranke.us>**20070503220003]
[Remove Makefile and package.conf.in (used in the old build system)
Ian Lynagh <igloo at earth.li>**20070524142637]
[We now depend on process
Ian Lynagh <igloo at earth.li>**20070523181544]
[We now depend on directory
Ian Lynagh <igloo at earth.li>**20070519160513]
[add includes: field
Simon Marlow <simonmar at microsoft.com>**20070517095025]
[Fix calling getAllUserEntries twice (trac #1279).
Ian Lynagh <igloo at earth.li>**20070504104956
It used to return [] on all but the first call.
Patch from an unidentified guest.
]
[Make it more obvious that the forkprocess01 test is really working
Ian Lynagh <igloo at earth.li>**20070418114542]
[Follow Cabal changes in Setup.hs
Ian Lynagh <igloo at earth.li>**20070418114510]
[Handle sysconf(3) return value -1 when checking _SC_GETGR_R_SIZE_MAX and _SC_GETPW_R_SIZE_MAX.
bjorn at bringert.net**20070416214837
sysconf(3) returns -1 on failure, but this was not handled when checking _SC_GETGR_R_SIZE_MAX and _SC_GETPW_R_SIZE_MAX in System.Posix.User. This made getUserEntryForID, getUserEntryForName, getGroupEntryForID and getGroupEntryForName fail on OS X 10.4.9 on i386. Just checking that unistd.h defines _SC_GETGR_R_SIZE_MAX and _SC_GETPW_R_SIZE_MAX as was done before does not guarantee that sysconf(3) will succeed.
sysconf(3) failure is now handled by using the same default values as were already used when sysconf(3) is not available, or the parameter names are not defined.
]
[Added tests/user001.hs which tests all the get* functions in System.Posix.User.
bjorn at bringert.net**20070416220012
I added this since I noticed that getUserEntryForID, getUserEntryForName,
getGroupEntryForID and getGroupEntryForName failed on OS X 10.4.9 on i386.
]
[Fix -Wall warnings
Ian Lynagh <igloo at earth.li>**20070411005028]
[Add missing case in removePrefix
Ian Lynagh <igloo at earth.li>**20070411002604]
[parse (but don't pass on) options for ./configure
Ian Lynagh <igloo at earth.li>**20070406153756]
[make Setup suitable for building the libraries with GHC
Ian Lynagh <igloo at earth.li>**20061112214741]
[Don't use Fd/FD in foreign decls
Ian Lynagh <igloo at earth.li>**20070404155930
Using CInt makes it much easier to verify that it is right, and we won't
get caught out by possible newtype switches between CInt/Int.
]
[Fix C/Haskell type mismatches
Ian Lynagh <igloo at earth.li>**20070404003625]
[Follow type changes in base
Ian Lynagh <igloo at earth.li>**20070403195237
(of the dubiously exported c_access and c_fcntl_write)
]
[fix cut-and-pasto in error message
Simon Marlow <simonmar at microsoft.com>**20070308134418]
[add tests from GHC testsuite
Simon Marlow <simonmar at microsoft.com>**20070305145258]
[export the file-type modes, so that createDevice can be used
Simon Marlow <simonmar at microsoft.com>**20070305113316]
[Provide nanosleep if we have it, and use it to implement usleep
Simon Marlow <simonmar at microsoft.com>**20070302132818
Fixes #1156
]
[don't retry usleep() on EINTR (see #850/#1156)
Simon Marlow <simonmar at microsoft.com>**20070302114118]
[expand docs for forkProcess
Simon Marlow <simonmar at microsoft.com>**20070301151220]
[add C wrappers for lstat() and mknod(). Fixes #1086.
Simon Marlow <simonmar at microsoft.com>**20070226110311]
[README about building from darcs
Ross Paterson <ross at soi.city.ac.uk>**20070218110201]
[TAG 6.6 release
Ian Lynagh <igloo at earth.li>**20061011124740]
[fix haddock syntax
Simon Marlow <simonmar at microsoft.com>**20060908111858]
[Derive Show, Read, and Eq for UserEntry and GroupEntry
John Goerzen <jgoerzen at complete.org>**20060831145022]
[bump version to 2.0
Simon Marlow <simonmar at microsoft.com>**20060831140257]
[Fix compilation issues with new getgrent/getpwent code
John Goerzen <jgoerzen at complete.org>**20060830134517]
[Added support for getpwent/getgrent
John Goerzen <jgoerzen at complete.org>**20060830132550]
[Added some Haddock docs for UserEntry and GroupEntry
John Goerzen <jgoerzen at complete.org>**20060829185932]
[Add missing field gr_passwd to GroupEntry
John Goerzen <jgoerzen at complete.org>**20060829185536]
[Whitespace changes for better alignment in unpackUserEntry
John Goerzen <jgoerzen at complete.org>**20060829185300]
[Added pw_passwd and pw_gecos fields to UserEntry structure
John Goerzen <jgoerzen at complete.org>**20060829185051
System.Posix.User was missing pw_gecos and pw_passwd in UserEntry.
I have added them, so now the full struct passwd is represented.
]
[includes -> install-includes
Ross Paterson <ross at soi.city.ac.uk>**20060829123744]
[exclude Setup.hs from build
Ross Paterson <ross at soi.city.ac.uk>**20060824183535]
[add boilerplate Setup.hs
Ross Paterson <ross at soi.city.ac.uk>**20060824115019]
[Added more documentation to System.Posix.Files
Johan Tibell <johan.tibell at gmail.com>**20060813102350]
[fix markup (#854)
Ross Paterson <ross at soi.city.ac.uk>**20060820002322]
[change test for buildability
Ross Paterson <ross at soi.city.ac.uk>**20060819144834
Checking for dlfcn.h instead of creat() should make the Cabal build fail
more gracefully under MinGW.
]
[document args to executeFile
Simon Marlow <simonmar at microsoft.com>**20060809104559]
[fix bogosity in getEnvironmentPrim
Simon Marlow <simonmar at microsoft.com>**20060531144640]
[Track the GHC source tree reoganisation
Simon Marlow <simonmar at microsoft.com>**20060407041758]
[TAG Initial conversion from CVS complete
John Goerzen <jgoerzen at complete.org>**20060112154138]
[[project @ 2005-11-10 13:00:55 by simonmar]
simonmar**20051110130055
some Haddock docs, from Isaac Jones.
]
[[project @ 2005-11-10 12:58:32 by simonmar]
simonmar**20051110125832
Some docs for System.Posix, from Bj�rn Bringert
]
[TAG cmm-merge2
Unknown tagger**20060112152636]
[[project @ 2005-09-20 22:54:33 by ross]
ross**20050920225433
make the unix package independent.
]
[[project @ 2005-09-20 16:35:26 by ross]
ross**20050920163526
move RTLD_* tests down to unix package
]
[[project @ 2005-09-19 23:24:31 by ross]
ross**20050919232431
For compilers other than MSVC and GCC, assume inline has the C99 semantics.
]
[[project @ 2005-08-10 10:07:22 by simonmar]
simonmar**20050810100722
Fix queryFdOption
]
[[project @ 2005-08-04 02:09:36 by wolfgang]
wolfgang**20050804020936
Check for RTLD_DEFAULT in dlfcn.h and use it if it is available.
(On Mac OS X its value is -2, and using NULL instead does not work.)
MERGE TO STABLE
]
[[project @ 2005-07-21 12:54:33 by simonmar]
simonmar**20050721125433
Hack Makefiles so that 'make distclean' works even if the tree has not
been configured, or 'make distclean' has already been run.
This is to solve problems caused by 'make distclean' removing files
that it needs itself - previously we were arranging to remove certain
files right at the end of cleaning, but this is fragile. So now we
assume that e.g. the X11 library is always enabled when we're
cleaning.
]
[[project @ 2005-05-10 10:40:12 by simonmar]
simonmar**20050510104012
PATH_MAX fixes from Thomas Schwinge.
]
[TAG arity-anal-branch-point
Unknown tagger**20060112152625]
[TAG ghc-assoc-branch-point
Unknown tagger**20060112152625]
[[project @ 2005-03-23 14:34:21 by ross]
ross**20050323143421
add license files for individual packages
]
[TAG nhc98-1-18-release
Unknown tagger**20060112152623]
[[project @ 2005-03-08 16:22:05 by simonmar]
simonmar**20050308162205
Undo previous commit: it breaks when RLIM_INFINITY is defined to an
expression that CPP doesn't understand.
]
[[project @ 2005-03-08 04:45:38 by wolfgang]
wolfgang**20050308044538
Mac OS X:
Kill HaskellSupport.framework.
Instead, look for GMP.framework (a framework-version of libgmp), else look
for a normal -lgmp as usual.
The other part of HaskellSupport.framework, dlcompat, is no longer needed
(as of Mac OS X 10.3, it's included in libSystem).
It's enough to just use the normal configure tests for -ldl.
MERGE TO STABLE
]
[[project @ 2005-03-05 14:32:09 by panne]
panne**20050305143209
Warning police (for platforms where all resource limits can be
represented, i.e. RLIM_INFINITY == RLIM_SAVED_MAX == RLIM_SAVED_CUR)
]
[[project @ 2005-03-02 16:39:57 by ross]
ross**20050302163958
*Config.h files are in include/ (MERGE to STABLE)
]
[[project @ 2005-03-02 14:46:16 by simonmar]
simonmar**20050302144616
distcleaning of things generated by configure
]
[[project @ 2005-02-24 09:58:27 by simonmar]
simonmar**20050224095827
nDoc fixes from Sven Panne. Generally fixing of Haddock links, adding
some signatures, and in some cases exporting type constructors that
are mentioned in the types of exported identifiers.
]
[[project @ 2005-02-18 18:30:40 by ross]
ross**20050218183040
Rename package description fields as in InstalledPackageInfo:
options-ghc -> ghc-options
options-hugs -> hugs-options
options-nhc -> nhc-options
extra-libs -> extra-libraries
]
[[project @ 2005-02-18 15:06:47 by simonmar]
simonmar**20050218150647
Rename fields in InstalledPackageInfo for consistency with
PackageDescription & buildInfo:
extra-libs (extraLibraries) --> extra-libraries (extraLibraries)
extra-cc-opts (extraCcOpts) --> cc-options (ccOptions)
extra-ld-opts (extraLdOpts) --> ld-options (ldOptions)
extra-hugs-opts (extraHugsOpts) --> hugs-options (hugsOptions)
extra-frameworks (extraFrameworks) --> frameworks (frameworks)
]
[[project @ 2005-02-11 01:55:58 by ross]
ross**20050211015558
track syntax changes:
* add License-File and Synopsis fields
* rename Hidden-Fields as Other-Fields
These files are used only by Hugs, but are also useful as examples.
]
[[project @ 2005-02-07 12:03:44 by simonmar]
simonmar**20050207120344
Doc for handleToFd and fdToHandle
]
[TAG ghc-6-4-branch-point
Unknown tagger**20060112152610]
[[project @ 2005-01-28 13:36:36 by simonmar]
simonmar**20050128133636
Catch up with updates to platform #defines.
Generally: use _HOST_ rather than _TARGET_ (except in Cabal where we
have to retain compatibility with previous GHC versions).
]
[[project @ 2005-01-25 17:06:40 by ross]
ross**20050125170640
add Cabal package descriptions
]
[[project @ 2005-01-21 12:35:38 by simonmar]
simonmar**20050121123538
update the haddock fields (this one somehow got missed)
]
[[project @ 2005-01-20 14:22:28 by simonmar]
simonmar**20050120142228
Fill in the haddock-interfaces and haddock-html fields in the
package.conf files.
To do this I had to make some changes:
- haddock-interfaces requires the value of $(datadir). We can't
just plug this in, because $(datadir) might change at install-time
(eg. a Windows installer can be placed anywhere, as can a Unix
binary .tar.gz distribution). The current trick is for the
compiler to splice in the value of $libdir in package.conf at
runtime. So we could extend this mechanism and tell the compiler
the value of $datadir via a command-line option, but that seems
ugly.
On Windows, $datadir==$libdir, so we don't need any changes:
package.conf still uses $libdir, and a Windows installation is
independent of its absolute location. Even 'make install' on
Windows should have this property.
On Unix:
- for 'make install' and in-place execution, we just use
absolute paths in package.conf
- for a binary dist, we generate a package.conf that refers
to $libdir and $datadir, and splice in the values at
install-time (distrib/Makefile-bin.in).
- Also, I renamed $libdir to $topdir to more closely reflect its
actual meaning. This is somewhat malicious in that it will flush
out all those clients using $libdir when they really shouldn't
be :-)
]
[[project @ 2005-01-06 11:27:48 by ross]
ross**20050106112748
c_ftruncate is now in System.Posix.Internals
]
[TAG pluggable-1-branch-point
Unknown tagger**20060112152603]
[[project @ 2004-12-02 15:57:06 by ross]
ross**20041202155706
Hugs only: replace the CBITS pragma (files relative to cbits) with
CFILES (files relative to the root of the package).
]
[[project @ 2004-11-26 16:22:12 by simonmar]
simonmar**20041126162212
Further integration with the new package story. GHC now supports
pretty much everything in the package proposal.
- GHC now works in terms of PackageIds (<pkg>-<version>) rather than
just package names. You can still specify package names without
versions on the command line, as long as the name is unambiguous.
- GHC understands hidden/exposed modules in a package, and will refuse
to import a hidden module. Also, the hidden/eposed status of packages
is taken into account.
- I had to remove the old package syntax from ghc-pkg, backwards
compatibility isn't really practical.
- All the package.conf.in files have been rewritten in the new syntax,
and contain a complete list of modules in the package. I've set all
the versions to 1.0 for now - please check your package(s) and fix the
version number & other info appropriately.
- New options:
-hide-package P sets the expose flag on package P to False
-ignore-package P unregisters P for this compilation
For comparison, -package P sets the expose flag on package P
to True, and also causes P to be linked in eagerly.
-package-name is no longer officially supported. Unofficially, it's
a synonym for -ignore-package, which has more or less the same effect
as -package-name used to.
Note that a package may be hidden and yet still be linked into
the program, by virtue of being a dependency of some other package.
To completely remove a package from the compiler's internal database,
use -ignore-package.
The compiler will complain if any two packages in the
transitive closure of exposed packages contain the same
module.
You *must* use -ignore-package P when compiling modules for
package P, if package P (or an older version of P) is already
registered. The compiler will helpfully complain if you don't.
The fptools build system does this.
- Note: the Cabal library won't work yet. It still thinks GHC uses
the old package config syntax.
Internal changes/cleanups:
- The ModuleName type has gone away. Modules are now just (a
newtype of) FastStrings, and don't contain any package information.
All the package-related knowledge is in DynFlags, which is passed
down to where it is needed.
- DynFlags manipulation has been cleaned up somewhat: there are no
global variables holding DynFlags any more, instead the DynFlags
are passed around properly.
- There are a few less global variables in GHC. Lots more are
scheduled for removal.
- -i is now a dynamic flag, as are all the package-related flags (but
using them in {-# OPTIONS #-} is Officially Not Recommended).
- make -j now appears to work under fptools/libraries/. Probably
wouldn't take much to get it working for a whole build.
]
[[project @ 2004-11-18 16:39:54 by stolz]
stolz**20041118163954
Push down more feature-tests
]
[[project @ 2004-11-12 17:08:58 by stolz]
stolz**20041112170858
Fix FFI-funniness, cf.
http://www.haskell.org/pipermail/glasgow-haskell-users/2002-February/003020.html
Noticed by: George Russell (again)
]
[[project @ 2004-11-12 14:56:13 by stolz]
stolz**20041112145613
Fix previous commit:
Don't handle Solaris2-flag _POSIX_PTHREAD_SEMANTICS in configure at all
but simply #ifdef solaris2_TARGET_OS #define ... it in the header-file.
]
[[project @ 2004-11-12 13:22:56 by stolz]
stolz**20041112132256
More getpw*_r result checks
]
[[project @ 2004-11-12 12:12:53 by stolz]
stolz**20041112121253
Push some unixisms from toplvl into package:
usleep, SunOS-handling, getpw*
]
[[project @ 2004-11-05 14:59:33 by stolz]
stolz**20041105145933
Fix getpwnam_r-handling: getpwnam_r returns (always?) 0, you have
to check result* (pppw[0])!
Truss-log from querying first "root", then "" on SunOS 5.9:
<- libc:__posix_getpwnam_r() = 0
"root"
-> libc:__posix_getpwnam_r(0xff1bf8a8, 0xff1bf460, 0xff1bf490, 0x400)
<- libc:__posix_getpwnam_r() = 0
Yes, that's 0 in both cases. (I wasn't even able to elicit an ERANGE btw.)
Reported by: Peter Simons
]
[[project @ 2004-10-27 10:51:15 by simonmar]
simonmar**20041027105115
Fix bug in forkProcess: we weren't wrapping the forked IO action in
the default exception handler, so exitFailure wasn't working properly.
]
[[project @ 2004-10-15 09:42:02 by simonmar]
simonmar**20041015094202
- sleep, usleep: make thread-safe
- add Haddock comments
]
[[project @ 2004-10-09 07:51:07 by panne]
panne**20041009075107
Unbreak Hugs by moving pPrPr_disableITimers and execvpe to System.Posix.Internals
(base package) and use it from System.Posix.Process (unix package).
]
[[project @ 2004-10-08 18:35:50 by panne]
panne**20041008183550
Unbreak Hugs, 2nd try...
]
[[project @ 2004-10-08 17:48:57 by panne]
panne**20041008174857
Unbreak Hugs: execvpe.c has gone
]
[[project @ 2004-10-08 12:04:49 by ross]
ross**20041008120449
revert previous change, so now these includes don't define PACKAGE_*
]
[[project @ 2004-10-08 08:42:53 by dons]
dons**20041008084253
Tweak the PACKAGE_* #undefs in a couple of other places, too.
]
[[project @ 2004-10-06 10:13:08 by ross]
ross**20041006101308
make the evil PACKAGE_* hacks consistent
]
[[project @ 2004-09-30 03:13:23 by dons]
dons**20040930031323
Implement System.Posix.User.getUserEntryFor{ID,Name} on platforms
without reentrant versions of getpw{uid,nam}. This includes all the BSDs.
While I'm here, close getGroupEntryFor* "Result too large" bug on
OpenBSD, mentioned last year:
http://www.haskell.org/pipermail/glasgow-haskell-bugs/2003-September/003601.html
grBufSize was too small, apparently.
Thanks to Ian Lynagh for hint to do the locking.
]
[[project @ 2004-09-29 15:50:54 by simonmar]
simonmar**20040929155055
Process reorganisation: the System.Process library moves into base,
and System.Cmd is re-implemented in terms of it.
Thanks to Krasimir Angelov, we have a version of System.Process that
doesn't rely on the unix or Win32 libraries. Normally using
unix/Win32 would be the right thing, but since we want to implement
System.Cmd on top of this, and GHC uses System.Cmd, we can't introduce
a bunch of .hsc dependencies into GHC's bootstrap libraries.
So, the new version is larger, but has fewer dependencies. I imagine
it shouldn't be too hard to port to other compilers.
]
[[project @ 2004-09-22 09:14:23 by panne]
panne**20040922091423
As a temporary measure, use an ultra-evil sledgehammer method to silence the
PACKAGE_FOO clashes. The correct way of doing this would be splitting up
HsPACKAGE.h and ghcconfig.h into two parts each: One part would be generated by
autoheader and would contain the defines which are needed during package build
time only. The other part would contain all kinds of stuff which is needed for
using the given package (no PACKAGE_FOO defines here). For an example of this,
see the OpenAL package. As an additional benefit, this would keep the namespace
much cleaner, because 2nd kind of headers is typically smaller.
No time for the real thing currently, hope the current workaround works...
]
[[project @ 2004-09-18 12:50:00 by panne]
panne**20040918125000
Make autoupdate 2.52 happy, mainly by using the new formats of AC_INIT and
AC_OUTPUT. This has the nice side effect that all "packages" have now a name, a
version, a bug-report address, and a tar name, yielding better output with
"configure --help=recursive". Nuked an unused AC_STRUCT_ST_BLKSIZE test on the
way.
]
[[project @ 2004-09-15 15:55:45 by stolz]
stolz**20040915155546
Add System.Posix.Signals.Exts which re-exports S.P.Signals and adds the
two signals SIGINFO on (*BSD) and SIGWINCH (most Unices) which are not
in POSIX.
You should use cpp to test if those are defined before using them. This is
encouraged by not providing dummy-definitions on platforms which do not
offer that particular flavour.
]
[[project @ 2004-09-09 06:55:47 by panne]
panne**20040909065547
Unified the comments in (almost) empty aclocal.m4 files
]
[[project @ 2004-09-03 07:46:56 by ross]
ross**20040903074656
add empty aclocal.m4's (so we don't need aclocal)
]
[[project @ 2004-09-02 15:18:10 by ross]
ross**20040902151810
devolve some library-specific configuration
]
[[project @ 2004-08-19 11:15:51 by simonmar]
simonmar**20040819111552
Add filenames to all errors where it makes sense. I've added
System.Posix.Error with a new family of error-throwing functions,
throwErrnoPath*. This seemed to make the most sense: they don't
belong in Foreign.C.Error (C by itself has no notion of paths).
Fixes: [ 954378 ] getFileStatus does not include the file name in IO-Error
]
[[project @ 2004-08-13 13:29:11 by simonmar]
simonmar**20040813132911
Changes required be merge of backend-hacking-branch. Mostly config.h
==> ghcconfig.h.
]
[[project @ 2004-05-13 09:55:59 by stolz]
stolz**20040513095559
Inverted logic would call dlerror() after a successful dlclose() and
cause a segfault.
Noticed by: abe.egnor At gmail.com
]
[[project @ 2004-03-09 11:37:14 by simonmar]
simonmar**20040309113714
change the foreign import of waitpid to "safe", so that we can use it
in a non-blocking way with the threaded RTS.
]
[[project @ 2004-02-19 16:29:28 by stolz]
stolz**20040219162928
Remove redundant _POSIX_PTHREAD_SEMANTICS. It's defined on the command line
and also set too late/in the wrong place (after including system prototypes),
anyway.
]
[[project @ 2004-02-05 11:46:00 by ross]
ross**20040205114600
Hugs only: use the configure-set variable INLINE_ONLY instead of
`extern inline' (which works for gcc but not C99 compilers).
]
[[project @ 2003-12-15 16:57:30 by ross]
ross**20031215165730
include dirent.h to avoid warnings when compiling System.Posix.Directory
]
[[project @ 2003-12-05 10:20:25 by ross]
ross**20031205102025
solaris_TARGET_OS -> solaris2_TARGET_OS
(and tweak the #define while I'm here)
Works for Hugs, still untested for GHC, but presumably needed for STABLE.
]
[[project @ 2003-11-15 22:31:18 by panne]
panne**20031115223118
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... :-)
]
[[project @ 2003-11-10 15:32:45 by simonmar]
simonmar**20031110153245
Change the documentation title from "Haskell Core Libraries" to "Haskell Hierarchical Libraries".
]
[[project @ 2003-10-27 11:58:28 by stolz]
stolz**20031027115828
- fix typo in error message
- a bit of manual CSE for fcntl-flags
- use Data.Bits instead of brains
- make (unexported) function names a bit more consistent
]
[[project @ 2003-10-24 14:46:13 by sof]
sof**20031024144613
drop cygwin #ifdef; not an issue with current versions.
merge to stable
]
[[project @ 2003-10-24 14:38:27 by sof]
sof**20031024143827
code tidyup
merge to stable
]
[[project @ 2003-10-23 23:32:43 by sof]
sof**20031023233243
fdRead: drop superfluous array copying
merge to stable
]
[[project @ 2003-10-18 00:35:26 by ross]
ross**20031018003526
Hugs only: add handleToFd
]
[[project @ 2003-10-17 16:48:44 by ross]
ross**20031017164845
Hugs only: add most of the rest of System.Posix
(I wonder why SIG_UNBLOCK and SIG_SETMASK are switched in HsBase.h)
]
[[project @ 2003-10-01 10:57:44 by wolfgang]
wolfgang**20031001105744
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.
]
[[project @ 2003-09-24 13:42:15 by simonmar]
simonmar**20030924134215
No reason we can't support sys/mman.h: move it to the ToDo section.
]
[[project @ 2003-09-22 10:57:45 by simonmar]
simonmar**20030922105745
Untested fix for Solaris to get the right versions of getgrnam_r and
friends.
I'd appreciate it if someone with a Solaris build could test this.
]
[[project @ 2003-09-19 09:27:35 by simonmar]
simonmar**20030919092735
Kill mktemp: it causes link warnings whenever someone uses -package
unix on Linux & FreeBSD at least, and is bogus anyway.
mktemp is still used to implement mkstemp when !GLASGOW_HASKELL and
!HUGS. Why is this?
]
[[project @ 2003-09-16 13:45:02 by simonmar]
simonmar**20030916134502
fileExist should not throw an exception if the file does not exist.
]
[[project @ 2003-09-15 20:59:07 by dons]
dons**20030915205907
#ifdef's for the _PC_SYNC_IO, _PC_ASYNC_IO, _PC_FILESIZEBITS,
_PC_SYMLINK_MAX.
These 4 symbols are not universal: FreeBSD and Linux and the only
OS's that appear to have them at the moment.
]
[[project @ 2003-09-12 13:05:20 by simonmar]
simonmar**20030912130520
Implement pathconf()/fpathconf() wrappers.
]
[TAG ghc-6-2-branch-point
Unknown tagger**20060112152454]
[[project @ 2003-08-04 14:08:27 by panne]
panne**20030804140827
Export TerminalAttributes abstractly
]
[[project @ 2003-08-04 13:26:12 by panne]
panne**20030804132614
More import tweaking for Haddock
]
[[project @ 2003-08-04 13:22:05 by panne]
panne**20030804132205
Export Module (abstractly), otherwise the user is unable to write
signatures involving this type. Improves Haddock hyperlinks, too.
]
[TAG ghc-6-0-OpenGL-merge3
Unknown tagger**20060112152446]
[[project @ 2003-07-22 09:55:07 by ross]
ross**20030722095507
jiggle to make System.Posix.Directory work for Hugs
]
[[project @ 2003-07-16 13:04:55 by ross]
ross**20030716130455
Sendfile is gone
]
[[project @ 2003-06-22 09:02:15 by wolfgang]
wolfgang**20030622090215
Revert last commit (remove "network" dependency again),
as it was already fixed in a different way and I forgot to update... :-(
]
[[project @ 2003-06-21 09:14:51 by wolfgang]
wolfgang**20030621091451
Add package "network" to the list of dependencies, as it is needed by Sendfile.
Fixes a link error when starting "ghci -package unix".
]
[[project @ 2003-06-19 10:47:25 by simonmar]
simonmar**20030619104726
Remove Network.Sendfile at request of Volker Stolz. We currently have
some build problems with it (it depends on both unix and network
packages). It might come back at some point in the future.
]
[[project @ 2003-06-10 12:07:40 by simonmar]
simonmar**20030610120740
- Use the right fdToHandle
- some minor -Wall cleaning
]
[[project @ 2003-06-10 10:58:06 by simonmar]
simonmar**20030610105806
Move Network.Sendfile into the unix package to fix the build.
]
[[project @ 2003-06-06 12:49:00 by stolz]
stolz**20030606124900
Move System.Sendfile to Network.Sendfile:
- Linux can sendfile() to a fd, but BSD couldn't
- sendfile() on Linux is probably now disabled on most builds because of
the LARGEFILE issue
=> Change API to use type Socket
]
[[project @ 2003-06-06 12:41:12 by stolz]
stolz**20030606124112
Obsolete
]
[[project @ 2003-06-06 10:45:43 by stolz]
stolz**20030606104543
Haddock: Add link to 'handleToFd'
]
[[project @ 2003-06-03 14:01:38 by simonmar]
simonmar**20030603140138
Hook up System.Posix.Temp.
]
[[project @ 2003-06-03 11:31:45 by stolz]
stolz**20030603113145
waitpid() may return EINTR, so use throwErrnoifMinus1Retry
]
[[project @ 2003-06-03 08:55:13 by reid]
reid**20030603085513
cvs ignorance for splits and way=p
]
[[project @ 2003-05-28 12:36:29 by stolz]
stolz**20030528123629
Can't use sendfile() with LARGEFILES on Linux
]
[[project @ 2003-05-28 12:01:50 by stolz]
stolz**20030528120150
No longer pertinent
]
[[project @ 2003-05-27 12:59:54 by stolz]
stolz**20030527125954
/me slaps haddock with a large piece of trout.
Someone please remind me of running 'make html' before committing.
]
[[project @ 2003-05-27 12:54:18 by stolz]
stolz**20030527125418
Throw in mktemp() as well, as the non-GHC/Hugs case
was essentially that. Advantage: At least on FreeBSD
the linker will print out a warning whenever you use
mktemp().
]
[[project @ 2003-05-27 10:18:58 by ross]
ross**20030527101858
Hugs only: use fdToHandle (like GHC)
]
[[project @ 2003-05-27 10:18:16 by ross]
ross**20030527101816
Hugs only: make fdToHandle available
]
[[project @ 2003-05-27 08:59:21 by stolz]
stolz**20030527085921
Return file name as well
Suggested by: Martin Norb�ck
]
[[project @ 2003-05-27 08:20:42 by stolz]
stolz**20030527082042
Add mkstemp() wrapper, including (unsafe) fallback for non-GHCs
(fdToHandle required).
Suggested by: Martin Sj�gren
]
[[project @ 2003-05-23 18:35:55 by stolz]
stolz**20030523183555
Need flags here as well.
]
[[project @ 2003-05-23 16:36:48 by ross]
ross**20030523163648
fix type error
]
[[project @ 2003-05-23 14:31:46 by stolz]
stolz**20030523143146
No (un)setenv until SUSv3 (e.g. Solaris 2.9). (fallback untested)
]
[[project @ 2003-05-21 16:02:44 by stolz]
stolz**20030521160244
Solaris2 needs _POSIX_PTHREAD_SEMANTICS for the getpw*_r() prototypes.
Make libraries/unix/Makefile use a new variable unix_SRC_HSC2HS_OPTS
which we configure in mk/config.mk.
]
[TAG ghc-6-0-branch-point
Unknown tagger**20060112152412]
[[project @ 2003-05-21 15:07:55 by simonmar]
simonmar**20030521150755
Revert previous commit, I've fixed Haddock instead.
]
[[project @ 2003-05-21 14:58:36 by simonmar]
simonmar**20030521145836
Flatten the doc structure a bit.
]
[[project @ 2003-05-19 18:24:25 by reid]
reid**20030519182425
cvs ignorance is bliss
]
[[project @ 2003-05-18 06:47:42 by stolz]
stolz**20030518064742
- My fault, so take ownership
- Strip unnecessary #include while here
]
[[project @ 2003-05-17 00:11:30 by ross]
ross**20030517001130
Rename per-package configuration files from $(PACKAGE).conf.* to
package.conf.*, making them easier to find (since each package is
in a separate directory anyway).
]
[[project @ 2003-05-16 12:03:55 by stolz]
stolz**20030516120355
Look for 'bracket' in the right place
]
[[project @ 2003-05-16 10:14:23 by simonmar]
simonmar**20030516101423
Now that we have auto packages, it makes sense to keep all the
interfaces for hierarchical libraries in the same directory tree. So
now, instead of putting interfaces for package P in $libdir/imports/P,
we put them all in $libdir/imports.
Interfaces for old non-auto non-hierarchical packages now go in
$libdir/hslibs-imports/P for package P.
]
[[project @ 2003-05-16 08:25:30 by simonmar]
simonmar**20030516082530
Move dlfcn.h to the "supported" list.
]
[[project @ 2003-05-16 06:41:25 by stolz]
stolz**20030516064127
- move System.DL to System.Posix.DynamicLinker
- take ownership
There's a compiler warning when passing the 'const char*' result from
dlerror() to peekCString (discarded qualifier). Does an FFI-expert know
how to get rid of this warning?
]
[[project @ 2003-05-15 13:35:12 by ross]
ross**20030515133512
add the DL modules (or whatever they're called) to Hugs
]
[[project @ 2003-05-12 13:19:49 by wolfgang]
wolfgang**20030512131949
Add #ifdefs for RLIMIT_AS and RLIM_SAVED_*, which are not defined on Mac OS X.
]
[[project @ 2003-05-08 16:00:20 by ross]
ross**20030508160020
extra #include's
]
[[project @ 2003-04-11 23:42:54 by ross]
ross**20030411234254
list modules that don't yet work with Hugs.
]
[[project @ 2003-04-11 23:37:03 by ross]
ross**20030411233703
replace Word with CTcflag
]
[[project @ 2003-04-11 10:17:13 by ross]
ross**20030411101713
use System.Posix.Internals
]
[[project @ 2003-04-11 10:11:23 by ross]
ross**20030411101124
rename GHC.Posix as System.Posix.Internals
]
[[project @ 2003-04-11 10:00:07 by ross]
ross**20030411100007
move environ from C to Haskell
]
[[project @ 2003-04-11 09:43:38 by ross]
ross**20030411094338
add some standard #includes
]
[TAG galois-hbm-head
Unknown tagger**20060112152340]
[[project @ 2003-03-26 12:35:34 by simonmar]
simonmar**20030326123534
Add getrlimit()/setrlimit() suppport
]
[[project @ 2003-03-26 12:34:53 by simonmar]
simonmar**20030326123453
wibble: add a newline at the end of the file
]
[TAG before-galois-hbm
Unknown tagger**20060112152337]
[[project @ 2003-03-17 07:52:02 by stolz]
stolz**20030317075202
Do not export c_sendfile (might not exist)
]
[[project @ 2003-03-16 15:07:37 by stolz]
stolz**20030316150737
(Hopefully) Fix #ifdef'ed branch
Noticed by: Kirsten Chevalier
]
[[project @ 2003-03-09 20:19:28 by panne]
panne**20030309201930
Fixed markup confusion ("" vs. '')
]
[[project @ 2003-03-07 16:22:49 by stolz]
stolz**20030307162249
- Change Handle to Fd, so it's everybodies own fault if they forget
to call hDuplicate
- Revert size/offset to Int as lowest common denominator
- Add sendfileByName
]
[[project @ 2003-03-06 14:23:09 by stolz]
stolz**20030306142309
Monad->Control.Monad
]
[[project @ 2003-03-06 08:33:16 by stolz]
stolz**20030306083316
- Haddockify documentation for parameters
- Fix 'case vs. if' braino
]
[[project @ 2003-03-05 18:38:09 by stolz]
stolz**20030305183809
Steal 'squirt' from Haskell Web Server as fallback
]
[[project @ 2003-03-05 18:14:05 by stolz]
stolz**20030305181405
Pick up Maybe & Monad from new libraries
]
[[project @ 2003-03-03 01:51:58 by stolz]
stolz**20030303015200
Import System/DL*
]
[[project @ 2003-03-01 16:34:12 by stolz]
stolz**20030301163412
s/getEnvVar/getEnv/
]
[[project @ 2003-02-28 16:46:49 by stolz]
stolz**20030228164649
Update comments to reflect new module System.Posix.Env
]
[[project @ 2003-02-28 16:09:16 by stolz]
stolz**20030228160916
Add System.Posix.Env
]
[[project @ 2003-02-28 12:44:54 by stolz]
stolz**20030228124454
Fix 'nice': -1 is a permissible return value in a successful situation
]
[[project @ 2003-02-28 12:34:45 by stolz]
stolz**20030228123445
- Rename System.Posix.Process.forkProcess to forkProcessAll
- Move GHC.Conc.forkProcess to System.Posix with type 'Maybe ProcessID'
Prompted by: George Russel
]
[[project @ 2003-02-27 15:46:57 by stolz]
stolz**20030227154657
- Add documentation for fd{Read,Write} & createPipe
- Unbreak setFdOption which didn't set any options at all
]
[[project @ 2003-02-27 13:27:50 by stolz]
stolz**20030227132750
Move fd{Read,Write} to new layout. Use of memcpy() should bring a large
performance increase compared to the old version.
]
[[project @ 2003-02-17 11:43:55 by simonmar]
simonmar**20030217114355
Comment wibbles
]
[TAG before-speceval_2
Unknown tagger**20060112152311]
[[project @ 2003-01-17 17:01:14 by stolz]
stolz**20030117170114
- Add sendfile-API for pumping out data via sendfile(2)
Currently supported are Linux (tested) & FreeBSD (not tested yet), others
will throw a runtime error until I get around to implement a fallback.
]
[[project @ 2002-12-26 21:01:46 by panne]
panne**20021226210146
Once again: Make Haddock happy.
Running Haddock in addition to ghc (i.e. use 'make all html' instead
of plain 'make') before a commit would be nice, especially as buglets
like this break a 3 hour RPM build just before it can finish... :-(
]
[[project @ 2002-12-26 17:52:35 by wolfgang]
wolfgang**20021226175235
Mac OS X doesn't have the sysconfig constants _SC_GETPW_R_SIZE_MAX and _SC_GETGR_R_SIZE_MAX, so add a configure check
]
[[project @ 2002-12-19 13:52:55 by simonmar]
simonmar**20021219135255
Fill in some more bits in the new Unix library: specifically the
contents of PosixTTY and PosixDB (now System.Posix.Terminal and
System.Posix.User respectively).
We're now about 95% complete w.r.t. the old posix library. I've
identified the reminaing bits to do in System/Posix.hs.
]
[[project @ 2002-12-18 16:29:26 by simonmar]
simonmar**20021218162926
"Auto" packages.
The big change here is that it is no longer necessary to explicitly
say '-package X' on the command line if X is a package containing
hierarchical Haskell modules. All packages marked "auto" contribute
to the import path, so their modules are always available. At link
time, the compiler knows which packages are actually used by the
program, and it links in only those libraries needed.
There's one exception: one-shot linking. If you link a program using
ghc -o prog A.o B.o ...
then you need to explicitly add -package flags for each package
required (except base & haskell98) because the compiler has no
information about the package dependencies in this case.
Package configs have a new field: auto, which is either True or False.
Non-auto packages must be mentioned on the command-line as usual.
Non-auto packages are still required for:
- non-hierarchical libraries (to avoid polluting the module namespace)
- packages with no Haskell content
- if you want more than one version of a package, or packages
providing overlapping functionality where the user must decide
which one to use.
Doc changes to follow...
]
[[project @ 2002-12-12 13:42:48 by ross]
ross**20021212134248
Changes to the exception interface, as discussed on the libraries list.
1) Move bracket and bracket_ from GHC.Exception (and hence System.IO)
to haskell98/IO.hs. These two should now never be used (except in
all-H98 programs), and this will save users of the new libraries from
having to hide them. Use the ones in Control.Exception instead.
2) Define
type IOError = IOException -- was Exception
leaving the type of Prelude.ioError as IOError -> IO a,
but adding to Control.Exception
throwIO :: Exception -> IO a
The result is a type distinction between the variants of catch and try:
Prelude.catch :: IO a -> (IOError -> IO a) -> IO a
Control.Exception.catch :: IO a -> (Exception -> IO a) -> IO a
System.IO.Error.try :: IO a -> IO (Either IOError a)
Control.Exception.try :: IO a -> IO (Either Exception a)
These are breaking changes: the first one affects only import lists,
but the second will bite in the following situations:
- using ioError on general Exceptions: use throwIO instead.
- using throw on IOErrors: if in the IO monad, use ioError instead.
Otherwise, use throw (IOException e), but why are you throwing
IO exceptions outside of the IO monad?
Minor changes:
- System.IO.Error now exports catch and try
- moved try from GHC.Exception to System.IO.Error, because it's
portable and can be shared by Hugs.
]
[[project @ 2002-11-18 08:37:35 by stolz]
stolz**20021118083735
readlink(2) does not append a NUL character to buffer.
Noticed by: John Meacham <john at repetae.net>
]
[[project @ 2002-10-11 14:25:25 by stolz]
stolz**20021011142525
'usleep' nightmare: Sometimes return type is void, sometimes int.
]
[[project @ 2002-10-08 08:03:02 by wolfgang]
wolfgang**20021008080302
Make the new Posix bindings compile on Mac OS X.
Most notable, Mac OS X lacks
*) lchown
*) SIGPOLL
I don't know of a replacement of either, so they are just left out when
they are not detected by configure.
]
[[project @ 2002-10-05 22:35:45 by panne]
panne**20021005223545
Warning police #14: Help gcc a bit with variables which are not
obviously always used.
]
[[project @ 2002-09-14 09:35:00 by panne]
panne**20020914093500
4th attempt to get a working RPM, but again: Make Haddock happy. Is
doing a "make html" that hard before committing...? :-]
]
[[project @ 2002-09-13 09:12:12 by simonmar]
simonmar**20020913091212
- #include <sys/resource.h> to get at get/setpriority.
- #include "config.h", and protect other includes according to the
configure results.
]
[[project @ 2002-09-12 16:38:21 by simonmar]
simonmar**20020912163822
More POSIX bits... we're getting there.
]
[[project @ 2002-09-10 20:54:33 by panne]
panne**20020910205433
No prologue.txt, no -p...
]
[[project @ 2002-09-06 14:34:15 by simonmar]
simonmar**20020906143415
Partial rewrite of the POSIX library.
The main purpose of this sweep is to remove the last dependencies of
the compiler on hslibs. When I've committed the associated compiler
changes, only the 'base' package will be required to bootstrap the
compiler. Additionally to build GHCi, the 'readline' and 'unix'
packages will be required.
The new POSIX library lives mostly in libraries/unix, with a few bits
required for compiler bootstrapping in libraries/base. The 'base'
package is mostly free of hsc2hs code to make bootstrapping from HC
files easier, but the 'unix' package will use hsc2hs liberally.
The old POSIX library continues to provide more-or-less the same
interface as before, although some of the types are more correct now
(previously lots of POSIX types were just mapped to Int). The new
interface is largely the same as the old, except that some new
functionality from the latest POSIX spec has been added (eg. symbolic
links).
So far, the new POSIX library has signal support, directory/file
operations and lots of stuff from unistd.h. The module names are:
System.Posix
The main dude, exports everything
System.Posix.Types
All the POSIX types, using the same naming scheme as
Foreign.C.Types, Eg. CUid, COff, etc. Many of these types
were previously exported by GHC.Posix.
Additionally exports the "nicer" names used by the old POSIX
library for compatibility (eg. ProcessID == CPid, FileMode ==
CMode, etc.)
All reasonable instances are derived for these types.
System.Posix.Signals
Signal support, contains most of which was in PosixProcPrim before.
The RTS interface to the signal handling support has been
rationalised slightly.
System.Posix.Directory
Directory support, most were in PosixFiles before.
System.Posix.Files
File operations, most were in PosixFiles before.
System.Posix.Unistd
(for want of a better name) Miscellaneous bits that mostly come
from the unistd.h header file. PosixProcEnv before.
The rest of the library should pan out like so:
System.Posix.IO
System.Posix.Error (maybe)
System.Posix.Process
System.Posix.Terminal
(I've no doubt broken Win32 support, but I'm checking the build at the moment).
]
Patch bundle hash:
c4d4c9a6e9ae19460d5eed6dcb454f7781802c83
More information about the Libraries
mailing list