Hi David,
David Fang <[email protected]> skribis:
>> Can you try this (in a UTF-8 terminal):
>>
>> (use-modules (ice-9 i18n))
>> (setlocale LC_ALL "tr_TR.UTF-8")
>> (char-locale-upcase #\i)
[...]
> scheme@(guile-user)> (use-modules (ice-9 i18n))
> scheme@(guile-user)> (setlocale LC_ALL "tr_TR.UTF-8")
> $1 = "tr_TR.UTF-8"
> scheme@(guile-user)> (char-locale-upcase #\i)
> $2 = #\I
> scheme@(guile-user)>
>
> Does that look right?
No, it should be İ, so it means that this version of Darwin has invalid
Turkish locale data.
Can show what %host-type is on your system? I’ll add an exception to
skip these tests on this platform.
>>> FAIL: net-db.test: getaddrinfo: wrong service name
>>
>> Can you try this:
>>
>> (getaddrinfo "127.0.0.1" "does-not-exist" AI_NUMERICHOST)
>
> scheme@(guile-user)> (getaddrinfo "127.0.0.1" "does-not-exist"
> AI_NUMERICHOST)
> ERROR: In procedure getaddrinfo:
> ERROR: In procedure getaddrinfo: No address associated with nodename
Can you apply this patch, run ‘./check-guile net-db.test’, and report
back?
diff --git a/test-suite/tests/net-db.test b/test-suite/tests/net-db.test
index 89ebb1b..8b14a92 100644
--- a/test-suite/tests/net-db.test
+++ b/test-suite/tests/net-db.test
@@ -102,5 +102,7 @@
;; According to POSIX, both error codes are valid (glibc 2.11
;; chooses `EAI_SERVICE'; Darwin chooses `EAI_NONAME'.)
(and (or (= errcode EAI_SERVICE)
- (= errcode EAI_NONAME))
+ (= errcode EAI_NONAME)
+ (and (defined? 'EAI_NODATA)
+ (= errcode EAI_NODATA)))
(string? (gai-strerror errcode))))))))
> Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
>
>
>>> ERROR: regexp.test: regexp-quote: regexp/extended: (char 254 #\þ
>>> "þ") -
>>> arguments: ((regular-expression-syntax "make-regexp" "empty
>>> (sub)expression" #f ("þ")))
>>
>> Hm?
>>
>>> FAIL: regexp.test: regexp-quote: regexp/extended: (string "aX" 254
>>> #\þ "aþ" "aþ")
>>> FAIL: regexp.test: regexp-quote: regexp/extended: string of all chars
>>
>> Can you try:
>>
>> (setlocale LC_ALL "en_US.ISO-8859-1") ;; or some other ISO-8859-1 locale
>> (let* ((s (string (integer->char 254)))
>> (q (regexp-quote s)))
>> (regexp-exec (make-regexp q regexp/extended) s))
[...]
> scheme@(guile-user)> (setlocale LC_ALL "en_US.ISO8859-1")
> $1 = "en_US.ISO8859-1"
> scheme@(guile-user)> (let* ((s (string (integer->char 254))) (q
> (regexp-quote s))) (regexp-exec (make-regexp q regexp/extended) s))
> ERROR: In procedure make-regexp:
> ERROR: In procedure make-regexp: empty (sub)expression
This looks like a bug of Darwin’s regcomp that’s likely to be solved by
using Gnulib’s ‘regex’ module. If you don’t mind, I’ll provide you
with a new tarball to test when we’re done with the other issues.
Thanks for your patient investigation!
Ludo’.