Commit d82e38d0 authored by chak's avatar chak

[project @ 2001-01-08 12:58:45 by chak]

Revision of Marcin's QError module

* I think, there was a rough consensus that Marcin's module provides the
  right kind of interface for handling "errno"s

* Malcolm preferred an enumeration, but Marcin made a convincing argument
  that this doesn't go well with architecture-dependent variations of "errno"

* Recoded the hsc magic into autoconf magic

* In hsc files, errno constants can be accessed directly; to provide access
  for ordinary Haskell programmer, constants for a range of common symbols are
  provided (their values are determined by configure)

* Introduced an `Errno' newtype to increase type safety

* renamed the throwIfXXX functions to throwErrnoIfXXX to have the original
  names available in the language independent MarshalError

* FIXME: We need a thread local getErrno in the RTS!

(It all compiles, but is still to be tested.)
parent cf2b7f7b
dnl $Id: aclocal.m4,v 1.60 2000/11/19 18:32:56 simonmar Exp $
dnl $Id: aclocal.m4,v 1.61 2001/01/08 12:58:45 chak Exp $
dnl
dnl Extra autoconf macros for the Glasgow fptools
dnl
......@@ -526,6 +526,46 @@ AC_DEFINE(HAVE_LONG_LONG)
fi
])
dnl ** Obtain the value of a C constant.
dnl The value will be `0' if the constant is undefined.
dnl
dnl This is set up so that the argument can be a shell variable.
dnl
AC_DEFUN(FPTOOLS_CHECK_CCONST,
[
eval "def_name=CCONST_$1"
eval "cv_name=ac_cv_cconst_$1"
AC_MSG_CHECKING(value of $1)
AC_CACHE_VAL($cv_name,
[AC_TRY_RUN([#include <stdio.h>
#include <errno.h>
main()
{
FILE *f=fopen("conftestval", "w");
if (!f) exit(1);
fprintf(f, "%d\n", $1);
exit(0);
}],
eval "$cv_name=`cat conftestval`",
eval "$cv_name=0",
ifelse([$2], , , eval "$cv_name=$2"))])dnl
eval "fptools_check_cconst_result=`echo '$'{$cv_name}`"
AC_MSG_RESULT($fptools_check_cconst_result)
AC_DEFINE_UNQUOTED($def_name, $fptools_check_cconst_result)
unset fptools_check_cconst_result
])
dnl ** Invoke AC_CHECK_CCONST on each argument (which have to separate with
dnl spaces)
dnl
AC_DEFUN(FPTOOLS_CHECK_CCONSTS,
[for ac_const_name in $1
do
FPTOOLS_CHECK_CCONST($ac_const_name)dnl
done
])
dnl *** Can we open files in binary mode? ***
dnl
AC_DEFUN(FPTOOLS_O_BINARY,
......@@ -820,7 +860,7 @@ dnl The variable LIBM (which is not an output variable by default) is
dnl set to a value which is suitable for use in a Makefile (for example,
dnl in make's LOADLIBES macro) provided you AC_SUBST it first.
dnl
dnl @version 0.01 $Id: aclocal.m4,v 1.60 2000/11/19 18:32:56 simonmar Exp $
dnl @version 0.01 $Id: aclocal.m4,v 1.61 2001/01/08 12:58:45 chak Exp $
dnl @author Matthew D. Langston <langston@SLAC.Stanford.EDU>
# FPTOOLS_CHECK_LIBM - check for math library
......@@ -908,7 +948,7 @@ dnl Please note that as the ac_opengl macro and the toy example evolves,
dnl the version number increases, so you may have to adjust the above
dnl URL accordingly.
dnl
dnl @version 0.01 $Id: aclocal.m4,v 1.60 2000/11/19 18:32:56 simonmar Exp $
dnl @version 0.01 $Id: aclocal.m4,v 1.61 2001/01/08 12:58:45 chak Exp $
dnl @author Matthew D. Langston <langston@SLAC.Stanford.EDU>
AC_DEFUN(FPTOOLS_HAVE_OPENGL,
......
......@@ -716,6 +716,8 @@ FPTOOLS_CHECK_HTYPE(GLdouble)
FPTOOLS_CHECK_HTYPE(GLclampd)
fi
FPTOOLS_CHECK_CCONSTS(E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EADV EAFNOSUPPORT EAGAIN EALREADY EBADF EBADMSG EBADRPC EBUSY ECHILD ECOMM ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ EDIRTY EDOM EDQUOT EEXIST EFAULT EFBIG EFTYPE EHOSTDOWN EHOSTUNREACH EIDRM EILSEQ EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE EMULTIHOP ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODATA ENODEV ENOENT ENOEXEC ENOLCK ENOLINK ENOMEM ENOMSG ENONET ENOPROTOOPT ENOSPC ENOSR ENOSTR ENOSYS ENOTBLK ENOTCONN ENOTDIR ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE EPROCLIM EPROCUNAVAIL EPROGMISMATCH EPROGUNAVAIL EPROTO EPROTONOSUPPORT EPROTOTYPE ERANGE EREMCHG EREMOTE EROFS ERPCMISMATCH ERREMOTE ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESRMNT ESTALE ETIME ETIMEDOUT ETOOMANYREFS ETXTBSY EUSERS EWOULDBLOCK EXDEV)
dnl ** can we open files in binary mode?
FPTOOLS_O_BINARY
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment