dnl -* Autoconf -*- dnl dnl Copyright (C) 2008 Ludovic Courtès <ludo@gnu.org> dnl dnl This file is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public dnl License as published by the Free Software Foundation; either dnl version 2.1 of the License, or (at your option) any later version. dnl dnl This file is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this file; if not, write to the Free Software dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA dnl Usage: SKR_GUILE_SRFI_35_WORKS dnl dnl Fails if the implementation of `(srfi srfi-35)' doesn't correctly dnl handle condition type inheritance, which is the case with the dnl implementation provided by Guile-Lib as of version 0.1.6. AC_DEFUN([SKR_GUILE_SRFI_35_WORKS], [ AC_MSG_CHECKING([whether `(srfi srfi-35)' correctly handles condition type inheritance]) GUILE_CHECK([srfi_35_status], [(use-modules (srfi srfi-35)) (define-condition-type &foo &error foo?) (define-condition-type &bar &foo bar?) (let ((c (condition (&bar)))) (exit (and (condition? c) (error? c) (foo? c) (bar? c))))]) if test "$srfi_35_status" -eq 0; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) AC_MSG_ERROR([Your version of `(srfi srfi-35)' (possibly from Guile-Lib) doesn't work correctly, please use the one from Guile 1.8.3+.]) fi ])