[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
guile 1.5.6 make check failures on netbsd 1.5.3ish
From: |
Greg Troxel |
Subject: |
guile 1.5.6 make check failures on netbsd 1.5.3ish |
Date: |
25 Apr 2002 08:21:05 -0400 |
> With this patch, guile 1.5.6 builds and make check gives (on an
> i386):
>
> Testing /home/gdt/QUIST-current/guile/pre-inst-guile ...
> with GUILE_LOAD_PATH=/home/gdt/QUIST-current/guile/test-suite
> ERROR: regexp.test: regexp-substitute/global: ("" "" ""): port is string
port - arguments: ((regular-expression-syntax "make-regexp" "empty
(sub)expression" #f #f))
> ERROR: regexp.test: regexp-substitute/global: ("" "" ""): port is #f -
arguments: ((regular-expression-syntax "make-regexp" "empty (sub)expression" #f
#f))
> ERROR: srfi-19.test: SRFI date/time library: #<procedure time-utc->date
(time . tz-offset)> respects local DST if no TZ-OFFSET given - arguments:
((system-error "putenv" "~A" ("No such file or directory") (2)))
> FAIL: syncase.test: (ice-9 syncase) loads
Could you try to investigate this?
I get the same failures on FreeBSD 4.5ish (same guile sources).
Trying to do the srfi-19 test in parts by hand, it fails because
(putenv "TZ")
fails. putenv with a name=value arg works.
Reading the sources, it appears that in posix.c, plain "putenv" is called.
The man pages on FreeBSD and NetBSD indicate that putenv requires an =
in the argument. The NetBSD sources are quite clear about this
requirement:
if ((equal = strchr(p, '=')) == NULL) {
(void)free(p);
return (-1);
}
I don't know if POSIX etc. specifies putenv, but it would seem that
one should call unsetenv for the case of no "=". (I found it very
counterintuitive that putenv with a string and no = would be
equivalent to unsetenv, but that could just be me.)
For the regexp tests, the problem seems to be this:
guile> (make-regexp "")
<unnamed port>:6:1: In procedure make-regexp in expression (make-regexp ""):
<unnamed port>:6:1: empty (sub)expression
ABORT: (regular-expression-syntax)
NetBSD man pages claim that regcomp (in libc) complies with IEEE Std
1003.2-1992 (``POSIX.2'') and lists the following error code:
REG_EMPTY empty (sub)expression
So, we need a POSIX lawyer to tell us whether NetBSD's (and FreeBSD's)
regcomp is wrong, or whether it is a bug in the guile test to expect
regcomp on the empty string to succeed without error.
Greg Troxel <address@hidden>