From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 10 16:58:47 2012 Received: (at submit) by debbugs.gnu.org; 10 Jan 2012 21:58:47 +0000 Received: from localhost ([127.0.0.1]:52902 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RkjiQ-0007hO-2l for submit@debbugs.gnu.org; Tue, 10 Jan 2012 16:58:46 -0500 Received: from eggs.gnu.org ([140.186.70.92]:51391) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RkjiL-0007hG-Ss for submit@debbugs.gnu.org; Tue, 10 Jan 2012 16:58:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rkjhz-0001cX-0N for submit@debbugs.gnu.org; Tue, 10 Jan 2012 16:58:20 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,HTML_MESSAGE, MIME_HTML_MOSTLY,RCVD_IN_DNSWL_NONE,T_DKIM_INVALID,T_RP_MATCHES_RCVD, T_TVD_MIME_NO_HEADERS autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([140.186.70.17]:38983) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rkjhy-0001cT-Uv for submit@debbugs.gnu.org; Tue, 10 Jan 2012 16:58:18 -0500 Received: from eggs.gnu.org ([140.186.70.92]:58275) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rkjhx-00058d-GJ for bug-guile@gnu.org; Tue, 10 Jan 2012 16:58:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rkjhv-0001cH-4D for bug-guile@gnu.org; Tue, 10 Jan 2012 16:58:17 -0500 Received: from a-pb-sasl-sd.pobox.com ([74.115.168.62]:60665 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rkjhu-0001cC-SK for bug-guile@gnu.org; Tue, 10 Jan 2012 16:58:15 -0500 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 198408E6E; Tue, 10 Jan 2012 16:58:14 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:date:message-id:mime-version:content-type; s=sasl; bh=U Wp8hdM2S+YZkHEcUF7uTgIS7Uw=; b=l4jV15D+BNCuJQ7iWW4BdydcTDfOBmqUK YbM9mQoiU8fGeb4vf94bezmyh2xKhZyGf5dfYN94T2AN3UgK8ez9xRpispMfGPB5 J8IV6ndWy1rQ2A2IIDvbdnhInxzEatQpIVQoaqFUns3QN8SladkGSZa1jGe9gUsF WJ36kl+QI4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:date:message-id:mime-version:content-type; q=dns; s= sasl; b=E9W71DnOVO6tk8gm7RTrJNWYmR9YJo1qMgXmYbcG1T6iTtVSlIeVgHr2 RLq0jPOdSMuj78j4may5cJ+Mo7P2e+lH4hTJOA6wEiAsZxHCv6ihX0hT6t4UulzI Vgxwam/BjF8CjnTIEpwa9AloB3gc4VKd8HsG7ngxSizNcgWRhHU= Received: from a-pb-sasl-sd.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 125998E6D; Tue, 10 Jan 2012 16:58:14 -0500 (EST) Received: from badger (unknown [90.164.198.39]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTPSA id 077048E6C; Tue, 10 Jan 2012 16:58:11 -0500 (EST) From: Andy Wingo To: bug-guile@gnu.org Subject: Building guile 2.x under mingw + msys Date: Tue, 10 Jan 2012 22:58:05 +0100 Message-ID: <87ty43dxua.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Pobox-Relay-ID: 30927ADC-3BD6-11E1-A9EB-65B1DE995924-02397024!a-pb-sasl-sd.pobox.com X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.17 X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: submit Cc: commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.0 (---) --=-=-= Content-Type: message/rfc822 Content-Disposition: inline Return-Path: Received: from compute2.internal (compute2.nyi.mail.srv.osa [10.202.2.42]) by sloti19d5p4 (Cyrus git2.5+0-git-fastmail-7595) with LMTPA; Tue, 03 Jan 2012 10:47:09 -0500 X-Sieve: CMU Sieve 2.4 X-Spam-score: 0.0 X-Spam-hits: BAYES_00 -1.9, FREEMAIL_FROM 0.001, HTML_MESSAGE 0.001, RCVD_IN_DNSWL_MED -2.3, BAYES_USED global, SA_VERSION 3.3.1 X-Spam-source: IP='140.186.70.17', Host='lists.gnu.org', Country='US', FromHeader='com', MailFrom='com' X-Spam-charsets: plain='ISO-8859-1', html='ISO-8859-1' X-Resolved-to: wingo@fastmail.fm X-Delivered-to: wingo@fastmail.fm X-Mail-from: SRS0=xkfH=7O=gnu.org=guile-user-bounces+wingo=pobox.com@bounce2.pobox.com Received: from mx1.nyi.mail.srv.osa ([10.202.2.200]) by compute2.internal (LMTPProxy); Tue, 03 Jan 2012 10:47:09 -0500 Received: from indigo.pobox.com (indigo.pobox.com [74.115.168.42]) by mx1.nyi.mail.srv.osa (Postfix) with ESMTP id A5A744C010B for ; Tue, 3 Jan 2012 10:47:07 -0500 (EST) Received: from indigo.pobox.com (localhost [127.0.0.1]) by indigo.pobox.com (Postfix) with ESMTP id 9668020067A for ; Tue, 3 Jan 2012 10:47:05 -0500 (EST) X-Remote-Delivered-To: wingo@pobox.com X-Pobox-Orig-Sender: X-Pobox-Delivery-ID: 2FAFD092-3622-11E1-8803-CB6508DB95CA-02397024!indigo.pobox.com x-pobox-client-address: 140.186.70.17 x-pobox-client-name: lists.gnu.org Received: from lists.gnu.org (lists.gnu.org [140.186.70.17]) by indigo.pobox.com (Postfix) with ESMTP id E910B20025D for ; Tue, 3 Jan 2012 10:47:04 -0500 (EST) Received: from localhost ([::1]:53279 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ri6Zs-0003QH-S8 for wingo@pobox.com; Tue, 03 Jan 2012 10:47:04 -0500 Received: from eggs.gnu.org ([140.186.70.92]:57507) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ri6Zn-0003GE-75 for guile-user@gnu.org; Tue, 03 Jan 2012 10:47:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ri6Zl-0000N1-BF for guile-user@gnu.org; Tue, 03 Jan 2012 10:46:59 -0500 Received: from mail-gx0-f169.google.com ([209.85.161.169]:57044) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ri6Zl-0000Mr-6f for guile-user@gnu.org; Tue, 03 Jan 2012 10:46:57 -0500 Received: by ggni2 with SMTP id i2so11680790ggn.0 for ; Tue, 03 Jan 2012 07:46:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=MThelL/dxbPE4jLEwwNtEtYhxv9nnXMl4lMYwzOjk0Y=; b=bcUPabtCWJQG9il8BWECYE/kv9DurYnUnvbem/cK6NWqgboU/WNqzPzVEWTPF38dz3 dqX2KFE4vWaLGo5l27HNMTgTBivWNICyxpqWsyV0WctHUO9QYlnzrDfRWzX2KZjH7K3v SdSU9I7UFixDtU3XvkDdmAsvKXELllRu34aAo= Received: by 10.50.217.168 with SMTP id oz8mr62908674igc.24.1325605615864; Tue, 03 Jan 2012 07:46:55 -0800 (PST) Received: by 10.50.94.225 with HTTP; Tue, 3 Jan 2012 07:46:55 -0800 (PST) Date: Tue, 3 Jan 2012 16:46:55 +0100 Message-ID: Subject: Building guile 2.x under mingw + msys From: Commander Sirow To: guile-user@gnu.org X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 209.85.161.169 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+wingo=pobox.com@gnu.org Sender: guile-user-bounces+wingo=pobox.com@gnu.org X-Pobox-Pass: guile-user-bounces+wingo=pobox.com@gnu.org is whitelisted X-Truedomain-Domain: googlemail.com X-Truedomain-SPF: Pass X-Truedomain-DKIM: Pass (TrueDKIM) X-Truedomain-ID: 721BA6800FAD10B87DCAC02FFCF62DE9 X-Truedomain: M-Accepted (DKIM matches From) MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="===-=-=" --===-=-= Content-Type: text/plain; charset=iso-8859-1 Hi there, so I've been trying to build guile 2.0.3 from source with mingw (gcc 4.6.2) + msys. So far I've been making progress by going with ./configure --without-threads --disable-shared Add: - - - - - - - - #ifndef HAVE_STRUCT_TIMESPEC #define HAVE_STRUCT_TIMESPEC 1 struct timespec { long tv_sec; long tv_nsec; }; #endif /* HAVE_STRUCT_TIMESPEC */ - - - - - - - - to libguile/threads.c, because pthread.h does not seem to set the timespec struct. I'm using Pthreads-w32 which does have this struct in its pthread.h, but for some weird reason id does not define the struct (dereferencing pointer to imcomplete type). And add: - - - - - - - - #ifdef __MINGW32__ static void setenv (char const *name, char const *value, int overwrite) { (void) overwrite; int len = strlen (value) + strlen (value) + 2; char *str = malloc (len); sprintf (str, "%s=%s", name, value); putenv (str); } #endif /* __MINGW32__ */ - - - - - - - - to libguile/dynl.c because Windows does only have putenv and not setenv. Commented out: - - - - - - - - _GL_FUNCDECL_SYS (getnameinfo, int, (const struct sockaddr *restrict sa, socklen_t salen, char *restrict node, socklen_t nodelen, char *restrict service, socklen_t servicelen, int flags) _GL_ARG_NONNULL ((1))); - - - - - - - - and - - - - - - - - _GL_FUNCDECL_SYS (getaddrinfo, int, (const char *restrict nodename, const char *restrict servname, const struct addrinfo *restrict hints, struct addrinfo **restrict res) _GL_ARG_NONNULL ((4))); - - - - - - - - and - - - - - - - - _GL_FUNCDECL_SYS (inet_ntop, const char *, (int af, const void *restrict src, char *restrict dst, socklen_t cnt) _GL_ARG_NONNULL ((2, 3))); - - - - - - - - and - - - - - - - - _GL_FUNCDECL_SYS (inet_pton, int, (int af, const char *restrict src, void *restrict dst) _GL_ARG_NONNULL ((2, 3))); - - - - - - - - in lib/netdb.h and /lib/arpa/inet.h because those are given by winsock2.h (Was getting compiler errors otherwise). Added: - - - - - - - - #include #include #include #include #include #include #include #include #include #include - - - - - - - - to libguile/net_db.c because I got missing AI_* and EAI_* defines. (winsock2.h would probably have been enough, but I wanted to be sure) After that compilation went fine up until (and past) generating guile-procedures.texi: - - - - - - - - make[3]: Entering directory `/home/Commander/guile-2.0.3/libguile' GEN guile-procedures.texi Throw without catch before boot: Throw to key system-error with args ("canonicalize-path" "~A" ("No such file or directory") (2))Aborting. This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. make[3]: *** [guile-procedures.texi] Error 1 make[3]: Leaving directory `/home/Commander/guile-2.0.3/libguile' make[2]: *** [all] Error 2 make[2]: Leaving directory `/home/Commander/guile-2.0.3/libguile' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/Commander/guile-2.0.3' make: *** [all] Error 2 - - - - - - - - When "This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information." occurs the application crashes. When calling guile.exe directly I get: - - - - - - - - $ guile Throw without catch before boot: Throw to key misc-error with args ("primitive-load-path" "Unable to find file ~S in load path" ("ice-9/boot-9") #f)Aborting. This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. - - - - - - - - and the same crash occures. I'm currently a bit out of ideas what to do next, eg. if the error/exception throw is causing guile to crash or if there is something wrong with what I modified inside the source causing this. PS: I get the same behavior when configuring with: ./configure --without-threads --disable-shared scm_cv_struct_timespec=no ac_cv_type_struct_addrinfo=no --===-=-= Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Hi there,

so I've been trying to build guile 2.0.3 from source w= ith mingw (gcc 4.6.2) + msys.

So far I've been making progress = by going with
./configure --without-threads --disable-shared

Add:=
- - - - - - - -
#ifndef HAVE_STRUCT_TIMESPEC
#define HAVE_STRUCT_TIME= SPEC 1
struct timespec {
=A0=A0=A0=A0=A0=A0=A0 long tv_sec;
=A0=A0= =A0=A0=A0=A0=A0 long tv_nsec;
};
#endif /* HAVE_STRUCT_TIMESPEC */- - - - - - - -
to libguile/threads.c, because pthread.h does not seem = to set the timespec struct. I'm using Pthreads-w32 which does have this= struct in its pthread.h, but for some weird reason id does not define the = struct (dereferencing pointer to imcomplete type).

And add:
- - - - - - - -
#ifdef __MINGW32__
static void
set= env (char const *name, char const *value, int overwrite)
{
=A0 (void)= overwrite;
=A0 int len =3D strlen (value) + strlen (value) + 2;
=A0 = char *str =3D malloc (len);
=A0 sprintf (str, "%s=3D%s", name, value);
=A0 putenv (str);}
#endif /* __MINGW32__ */
- - - - - - - -
to libguile/dynl.c be= cause Windows does only have putenv and not setenv.

Commented out: - - - - - - - -
_GL_FUNCDECL_SYS (getnameinfo, int,
=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (const struct sockaddr *restrict sa, s= ocklen_t salen,
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 c= har *restrict node, socklen_t nodelen,
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0 char *restrict service, socklen_t servicelen,
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 int flags)
=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 _GL_ARG_NONNULL ((1)));
- = - - - - - - -
and
- - - - - - - -
_GL_FUNCDECL_SYS (getaddrinfo, i= nt,
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (const char *res= trict nodename,
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 c= onst char *restrict servname,
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 const struct addrinf= o *restrict hints,
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0 struct addrinfo **restrict res)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 _GL_ARG_NONNULL ((4)));
- - - - - - - -
and
- - - = - - - - -
_GL_FUNCDECL_SYS (inet_ntop, const char *,
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (int af, const void *re= strict src,
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 char = *restrict dst, socklen_t cnt)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0 _GL_ARG_NONNULL ((2, 3)));
- - - - - - - -
and
- - - - -= - - -
_GL_FUNCDECL_SYS (inet_pton, int,
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (int af, const char *re= strict src, void *restrict dst)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0 _GL_ARG_NONNULL ((2, 3)));
- - - - - - - -
in lib/netdb.= h and /lib/arpa/inet.h because those are given by winsock2.h (Was getting c= ompiler errors otherwise).

Added:
- - - - - - - -
#include <sys/types.h>
#include &= lt;sys/socket.h>
#include <netdb.h>
#include <ws2tcpip.h&= gt;
#include <arpa/inet.h>
#include <errno.h>
#include= <netinet/in.h>
#include <signal.h>
#include <winsock.h>
#include <win= sock2.h>
- - - - - - - -
to libguile/net_db.c because I got missin= g AI_* and EAI_* defines. (winsock2.h would probably have been enough, but = I wanted to be sure)

After that compilation went fine up until (and past) generating guile-p= rocedures.texi:
- - - - - - - -
make[3]: Entering directory `/home/Co= mmander/guile-2.0.3/libguile'
=A0 GEN=A0=A0=A0 guile-procedures.texi=
Throw without catch before boot:
Throw to key system-error with args (&q= uot;canonicalize-path" "~A" ("No such file or
direct= ory") (2))Aborting.

This application has requested the Runtime = to terminate it in an unusual way.
Please contact the application's support team for more information.
= make[3]: *** [guile-procedures.texi] Error 1
make[3]: Leaving directory = `/home/Commander/guile-2.0.3/libguile'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/Commander/guile-2.0.3/libguile'
ma= ke[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/Com= mander/guile-2.0.3'
make: *** [all] Error 2
- - - - - - - -
When "This application has requested the Runtime to terminate it in an= unusual way.
Please contact the application's support team for more information.&quo= t; occurs the application crashes.

When calling guile.exe directly = I get:
- - - - - - - -
$ guile
Throw without catch before boot:
Throw to key misc-error with args ("primitive-load-path" "Un= able to find file ~S
=A0in load path" ("ice-9/boot-9") #f= )Aborting.

This application has requested the Runtime to terminate i= t in an unusual way.
Please contact the application's support team for more information.
= - - - - - - - -
and the same crash occures.

I'm currently a b= it out of ideas what to do next, eg. if the error/exception throw is causin= g guile to crash or if there is something wrong with what I modified inside= the source causing this.


PS: I get the same behavior when configuring with:
./configure -= -without-threads --disable-shared scm_cv_struct_timespec=3Dno ac_cv_type_st= ruct_addrinfo=3Dno
--===-=-=-- --=-=-= -- http://wingolog.org/ --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 10 17:01:12 2012 Received: (at 10474) by debbugs.gnu.org; 10 Jan 2012 22:01:13 +0000 Received: from localhost ([127.0.0.1]:52910 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rkjki-0007m6-Ip for submit@debbugs.gnu.org; Tue, 10 Jan 2012 17:01:11 -0500 Received: from a-pb-sasl-sd.pobox.com ([74.115.168.62]:62281 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rkjkc-0007lv-Am for 10474@debbugs.gnu.org; Tue, 10 Jan 2012 17:01:06 -0500 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 4F5E78EA4; Tue, 10 Jan 2012 17:00:40 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; s=sasl; bh=n4r1zpQnIB2C SbxvfDlKZpdVxIk=; b=eG6hwXhWV8Hr5pQIYVbZ9DFj2Gls8+O1T2ZZATDISKH0 +uu8I4Wy2b2awJonqF3rRorbRNXLY3tJyVPFLvE0YJurMvmV2HH06H5n1VINdY2R gF6yxyKh3b+kM4rKYIvlolpf4xdkcenqJA6h0AsODLfhLHtJK/VS+EwK27QMupo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; q=dns; s=sasl; b=h89+lx qYpk13KKgcxz5xYh9W/FAUDrZB4jDp4gkTx/brYHUgVW9ZSXZECVo92N8QrvW15f 6id7wP7sigDLUqX2h2ubnx/C1/IPnDptEq4qtthz0sX7ACAanoLe70jfA0Ue2vnI e2J44YIeTxgs8sp1lPkqLU2AFCDoLYZvheAj4= Received: from a-pb-sasl-sd.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 488DD8EA2; Tue, 10 Jan 2012 17:00:40 -0500 (EST) Received: from badger (unknown [90.164.198.39]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTPSA id 9D4D78EA0; Tue, 10 Jan 2012 17:00:39 -0500 (EST) From: Andy Wingo To: Commander Sirow Subject: Re: Building guile 2.x under mingw + msys References: Date: Tue, 10 Jan 2012 23:00:35 +0100 In-Reply-To: (Commander Sirow's message of "Tue, 3 Jan 2012 16:46:55 +0100") Message-ID: <87pqerdxq4.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Pobox-Relay-ID: 888EE130-3BD6-11E1-A46A-65B1DE995924-02397024!a-pb-sasl-sd.pobox.com X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 10474 Cc: guile-user@gnu.org, 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) Hi Commander Sirow, On Tue 03 Jan 2012 16:46, Commander Sirow = writes: > so I've been trying to build guile 2.0.3 from source with mingw (gcc 4.6.= 2) + msys. Thanks for the report! There are enough things to track down here that I opened a bug report, and put you on the Cc. On Tue 03 Jan 2012 16:46, Commander Sirow = writes: > make[3]: Entering directory `/home/Commander/guile-2.0.3/libguile' > =C2=A0 GEN=C2=A0=C2=A0=C2=A0 guile-procedures.texi > Throw without catch before boot: > Throw to key system-error with args ("canonicalize-path" "~A" ("No such f= ile or > directory") (2))Aborting. AIUI the canonicalize_path binding that gnulib provides for mingw ends up shelling out to `rm' and other commands. They claim that it is reasonable to install these on a mingw system; I don't know. But is it possible that you don't have these files? See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/25451/focus=3D25466. > Throw to key misc-error with args ("primitive-load-path" "Unable to find = file ~S > =C2=A0in load path" ("ice-9/boot-9") #f)Aborting. Let's deal with the first one first. Regards, Andy --=20 http://wingolog.org/ From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 17 03:10:29 2012 Received: (at 10474) by debbugs.gnu.org; 17 Jan 2012 08:10:29 +0000 Received: from localhost ([127.0.0.1]:32829 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rn47h-0001Av-8r for submit@debbugs.gnu.org; Tue, 17 Jan 2012 03:10:29 -0500 Received: from mtaout20.012.net.il ([80.179.55.166]:43244) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rn47e-0001Al-1w for 10474@debbugs.gnu.org; Tue, 17 Jan 2012 03:10:27 -0500 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0LXX00C00NY74O00@a-mtaout20.012.net.il> for 10474@debbugs.gnu.org; Tue, 17 Jan 2012 10:09:12 +0200 (IST) Received: from HOME-C4E4A596F7 ([84.229.115.9]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0LXX00BRFNZA5SB0@a-mtaout20.012.net.il>; Tue, 17 Jan 2012 10:09:11 +0200 (IST) Date: Tue, 17 Jan 2012 10:09:21 +0200 From: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys In-reply-to: <87pqerdxq4.fsf@pobox.com> To: Andy Wingo Message-id: <83ehuy698u.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: QUOTED-PRINTABLE X-012-Sender: halo1@inter.net.il References: <87pqerdxq4.fsf@pobox.com> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 10474 Cc: 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) [I removed guile-user@gnu.org from the CC list; let me know if that i= s not TRT.] > Date: Tue, 10 Jan 2012 23:00:35 +0100 > Cc: guile-user@gnu.org, 10474@debbugs.gnu.org >=20 > > so I've been trying to build guile 2.0.3 from source with mingw (= gcc 4.6.2) + msys. >=20 > Thanks for the report! I have a similar, although slightly different in details, experience. (I will post the details as soon as the saga is finished for me and I have all it figured out ;-) > > make[3]: Entering directory `/home/Commander/guile-2.0.3/libguile= ' > > =C2=A0 GEN=C2=A0=C2=A0=C2=A0 guile-procedures.texi > > Throw without catch before boot: > > Throw to key system-error with args ("canonicalize-path" "~A" ("N= o such file or > > directory") (2))Aborting. >=20 > AIUI the canonicalize_path binding that gnulib provides for mingw e= nds > up shelling out to `rm' and other commands. I don't think this is true; at least I don't see any such shelling ou= t in lib/canonicalize-lgpl.c, which I believe is the module you allude to. The problem, AFAIK, is entirely different and quite mundane: canonicalize_file_name simply does not support Windows-style D:/foo/bar file names, nor does it support backslashes as separators in file names. My evidence is that I added an fprintf to canonicalize-path where it calls canonicalize_file_name, and the file name passed to it was entirely reasonable, something like D:\path\to\guile-2.03/module/ice-9/boot-9.scm (or some such, I'm writing this from my faulty memory). I think I know how to fix canonicalize_file_name, and I will send a tentative patch later, perhaps even today, when I have it working and get past this abort. From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 17 13:16:07 2012 Received: (at 10474) by debbugs.gnu.org; 17 Jan 2012 18:16:07 +0000 Received: from localhost ([127.0.0.1]:33815 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RnDZm-0008OI-Ps for submit@debbugs.gnu.org; Tue, 17 Jan 2012 13:16:07 -0500 Received: from mtaout22.012.net.il ([80.179.55.172]:63676) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RnDZi-0008Nq-Nw for 10474@debbugs.gnu.org; Tue, 17 Jan 2012 13:16:04 -0500 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0LXY00D00FZG0B00@a-mtaout22.012.net.il> for 10474@debbugs.gnu.org; Tue, 17 Jan 2012 20:14:49 +0200 (IST) Received: from HOME-C4E4A596F7 ([84.229.115.9]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0LXY00CT4G0NI070@a-mtaout22.012.net.il>; Tue, 17 Jan 2012 20:14:49 +0200 (IST) Date: Tue, 17 Jan 2012 20:14:58 +0200 From: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys In-reply-to: <83ehuy698u.fsf@gnu.org> X-012-Sender: halo1@inter.net.il To: wingo@pobox.com, commander.sirow@googlemail.com Message-id: <8362ga5h7h.fsf@gnu.org> References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 10474 Cc: 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > Date: Tue, 17 Jan 2012 10:09:21 +0200 > From: Eli Zaretskii > CC: commander.sirow@googlemail.com, 10474@debbugs.gnu.org > > The problem, AFAIK, is entirely different and quite mundane: > canonicalize_file_name simply does not support Windows-style > D:/foo/bar file names, nor does it support backslashes as separators > in file names. > > My evidence is that I added an fprintf to canonicalize-path where it > calls canonicalize_file_name, and the file name passed to it was > entirely reasonable, something like > > D:\path\to\guile-2.03/module/ice-9/boot-9.scm > > (or some such, I'm writing this from my faulty memory). > > I think I know how to fix canonicalize_file_name, and I will send a > tentative patch later, perhaps even today, when I have it working and > get past this abort. The patch to fix canonicalize_file_name is below. It gets me through the "GEN guile-procedures.texi" step. The next failure is this: GEN guile-procedures.texi Backtrace: In unknown file: ?: 3 [boot-closure #t # ...] ?: 2 [catch-closure] ?: 1 [primitive-eval ((@ # %) (begin # # #))] ?: 0 [primitive-load-path "d:\\usr\\eli\\utils\\guile-2.0.3\\libguile/d:/usr/eli/utils/guile-2.0.3/meta/guild"] ERROR: In procedure primitive-load-path: ERROR: In procedure canonicalize-path: No such file or directory which again looks like failure to treat d:/foo/bar file names as absolute. Some random poking around reveals this in ice-9/boot-9.scm: (define (absolute-path? path) (string-prefix? "/" path)) which looks a likely culprit. Changing it to recognize d:/foo/bar absolute file names indeed solves this problem. (I'm too embarrassed to show the changes I did for that, as I know nothing about Scheme, and my code is too ugly to go into upstream. I don't even know how to condition the change on the underlying platform being MS-Windows.) The next problem is here: GUILEC ice-9/eval.go Backtrace: In unknown file: ?: 5 [boot-closure #t # ...] ?: 4 [catch-closure] ?: 3 [primitive-eval ((@ # %) (begin # # #))] ?: 2 [chmod # 438] ?: 1 [boot-closure system-error "chmod" ...] ?: 0 [delete-file "ice-9/eval.go.9IiPxC"] ERROR: In procedure delete-file: ERROR: In procedure delete-file: Permission denied This happens because Guile calls fchmod, which is #define'd to -1 on MinGW. Solution: #define it to zero, since chmod is mostly a no-op on Windows anyway. This passes the eval.go step (and then fails while compiling psyntax-pp.go; to be continued...). As an aside, if this kind of operation is a frequent one, I'd suggest to change the caller so that it never uses fchmod on MS-Windows, because this function cannot be implemented there, except on the latest versions (Windows 7 etc.). Use chmod instead, even if that is less efficient. Btw, why doesn't the backtrace show file names, but says "unknown file"? Is this expected during the build, or is there another bug to look for? If the latter, any hints as to where to look for the reason(s)? Here's the patch for canonicalize-lgpl.c to make it Windows-friendly. I will send it to the gnulib developers as well. --- lib/canonicalize-lgpl.c~0 2011-10-22 16:19:34.000000000 +0200 +++ lib/canonicalize-lgpl.c 2012-01-17 13:10:52.608428500 +0200 @@ -51,6 +51,7 @@ # define __realpath realpath # include "pathmax.h" # include "malloca.h" +# include "dosname.h" # if HAVE_GETCWD # if IN_RELOCWRAPPER /* When building the relocatable program wrapper, use the system's getcwd @@ -101,6 +102,7 @@ __realpath (const char *name, char *reso const char *start, *end, *rpath_limit; long int path_max; int num_links = 0; + size_t prefix_len; if (name == NULL) { @@ -143,7 +145,11 @@ __realpath (const char *name, char *reso rpath = resolved; rpath_limit = rpath + path_max; - if (name[0] != '/') + /* This is always zero for Posix hosts, but can be 2 for MS-Windows + and MS-DOS X:/foo/bar file names. */ + prefix_len = FILE_SYSTEM_PREFIX_LEN (name); + + if (!IS_ABSOLUTE_FILE_NAME (name)) { if (!__getcwd (rpath, path_max)) { @@ -154,13 +160,19 @@ __realpath (const char *name, char *reso } else { - rpath[0] = '/'; - dest = rpath + 1; - if (DOUBLE_SLASH_IS_DISTINCT_ROOT && name[1] == '/') + dest = rpath; + if (prefix_len) + { + memcpy (rpath, name, prefix_len); + dest += prefix_len; + } + *dest++ = '/'; + if (DOUBLE_SLASH_IS_DISTINCT_ROOT && ISSLASH (name[1]) + && !prefix_len) *dest++ = '/'; } - for (start = end = name; *start; start = end) + for (start = end = name + prefix_len; *start; start = end) { #ifdef _LIBC struct stat64 st; @@ -170,11 +182,11 @@ __realpath (const char *name, char *reso int n; /* Skip sequence of multiple path-separators. */ - while (*start == '/') + while (ISSLASH (*start)) ++start; /* Find end of path component. */ - for (end = start; *end && *end != '/'; ++end) + for (end = start; *end && !ISSLASH (*end); ++end) /* Nothing. */; if (end - start == 0) @@ -184,7 +196,7 @@ __realpath (const char *name, char *reso else if (end - start == 2 && start[0] == '.' && start[1] == '.') { /* Back up to previous component, ignore if at root already. */ - if (dest > rpath + 1) + if (dest > rpath + prefix_len + 1) while ((--dest)[-1] != '/'); if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rpath + 1 && *dest == '/') @@ -205,7 +217,7 @@ __realpath (const char *name, char *reso if (resolved) { __set_errno (ENAMETOOLONG); - if (dest > rpath + 1) + if (dest > rpath + prefix_len + 1) dest--; *dest = '\0'; goto error; @@ -295,17 +307,25 @@ __realpath (const char *name, char *reso memmove (&extra_buf[n], end, len + 1); name = end = memcpy (extra_buf, buf, n); - if (buf[0] == '/') + if (IS_ABSOLUTE_FILE_NAME (buf)) { - dest = rpath + 1; /* It's an absolute symlink */ - if (DOUBLE_SLASH_IS_DISTINCT_ROOT && buf[1] == '/') + size_t pfxlen = FILE_SYSTEM_PREFIX_LEN (buf); + + if (pfxlen) + memcpy (rpath, buf, pfxlen); + dest = rpath + pfxlen; /* It's an absolute symlink. */ + *dest++ = '/'; + if (DOUBLE_SLASH_IS_DISTINCT_ROOT && ISSLASH (buf[1]) + && pfxlen == 0) *dest++ = '/'; + /* Install the new prefix to be in effect hereafter. */ + prefix_len = pfxlen; } else { /* Back up to previous component, ignore if at root already: */ - if (dest > rpath + 1) + if (dest > rpath + prefix_len + 1) while ((--dest)[-1] != '/'); if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rpath + 1 && *dest == '/') @@ -319,7 +339,7 @@ __realpath (const char *name, char *reso } } } - if (dest > rpath + 1 && dest[-1] == '/') + if (dest > rpath + prefix_len + 1 && dest[-1] == '/') --dest; if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rpath + 1 && *dest == '/') dest++; From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 18 18:56:50 2012 Received: (at 10474) by debbugs.gnu.org; 18 Jan 2012 23:56:50 +0000 Received: from localhost ([127.0.0.1]:34849 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RnfN4-0001H0-0G for submit@debbugs.gnu.org; Wed, 18 Jan 2012 18:56:50 -0500 Received: from mail4-relais-sop.national.inria.fr ([192.134.164.105]:10675) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RnfN1-0001Gm-PI for 10474@debbugs.gnu.org; Wed, 18 Jan 2012 18:56:49 -0500 X-IronPort-AV: E=Sophos;i="4.71,532,1320620400"; d="scan'208";a="127977860" Received: from reverse-83.fdn.fr (HELO pluto) ([80.67.176.83]) by mail4-relais-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES128-SHA; 19 Jan 2012 00:55:32 +0100 From: ludo@gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) To: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 30 =?iso-8859-1?Q?Niv=F4se?= an 220 de la =?iso-8859-1?Q?R=E9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu Date: Thu, 19 Jan 2012 00:55:31 +0100 In-Reply-To: <8362ga5h7h.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 17 Jan 2012 20:14:58 +0200") Message-ID: <87r4ywpnv0.fsf@gnu.org> User-Agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -6.2 (------) X-Debbugs-Envelope-To: 10474 Cc: wingo@pobox.com, 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.2 (------) Hi Eli, Eli Zaretskii skribis: > The patch to fix canonicalize_file_name is below. Can you send this one to bug-gnulib@gnu.org? (All the code under lib/ comes from Gnulib.) (The rest of your investigation is interesting!) Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 18 23:06:00 2012 Received: (at 10474) by debbugs.gnu.org; 19 Jan 2012 04:06:00 +0000 Received: from localhost ([127.0.0.1]:35008 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RnjGB-0000Ib-Px for submit@debbugs.gnu.org; Wed, 18 Jan 2012 23:05:59 -0500 Received: from mtaout22.012.net.il ([80.179.55.172]:61626) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RnjG9-0000IR-Cu for 10474@debbugs.gnu.org; Wed, 18 Jan 2012 23:05:58 -0500 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0LY100D001V24P00@a-mtaout22.012.net.il> for 10474@debbugs.gnu.org; Thu, 19 Jan 2012 06:03:50 +0200 (IST) Received: from HOME-C4E4A596F7 ([84.229.115.9]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0LY100CU81YDV460@a-mtaout22.012.net.il>; Thu, 19 Jan 2012 06:03:50 +0200 (IST) Date: Thu, 19 Jan 2012 06:04:01 +0200 From: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys In-reply-to: <87r4ywpnv0.fsf@gnu.org> To: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Message-id: <83r4yw49u6.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: QUOTED-PRINTABLE X-012-Sender: halo1@inter.net.il References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 10474 Cc: wingo@pobox.com, 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: ludo@gnu.org (Ludovic Court=C3=A8s) > Cc: 10474@debbugs.gnu.org, wingo@pobox.com, commander.sirow@googlem= ail.com > Date: Thu, 19 Jan 2012 00:55:31 +0100 >=20 > Hi Eli, >=20 > Eli Zaretskii skribis: >=20 > > The patch to fix canonicalize_file_name is below. >=20 > Can you send this one to bug-gnulib@gnu.org? I already did, as promised in my message. > (The rest of your investigation is interesting!) I have more, will publish it today, probably. From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 19 12:36:29 2012 Received: (at 10474) by debbugs.gnu.org; 19 Jan 2012 17:36:29 +0000 Received: from localhost ([127.0.0.1]:35619 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RnvuW-0007Gg-Fa for submit@debbugs.gnu.org; Thu, 19 Jan 2012 12:36:29 -0500 Received: from mtaout22.012.net.il ([80.179.55.172]:54915) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RnvuT-0007GR-NB for 10474@debbugs.gnu.org; Thu, 19 Jan 2012 12:36:27 -0500 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0LY2002003HS6B00@a-mtaout22.012.net.il> for 10474@debbugs.gnu.org; Thu, 19 Jan 2012 19:35:07 +0200 (IST) Received: from HOME-C4E4A596F7 ([84.229.115.9]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0LY2001X43IG5TD0@a-mtaout22.012.net.il>; Thu, 19 Jan 2012 19:35:07 +0200 (IST) Date: Thu, 19 Jan 2012 19:35:04 +0200 From: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys In-reply-to: <87r4ywpnv0.fsf@gnu.org> To: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Message-id: <83obtz4muv.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: QUOTED-PRINTABLE X-012-Sender: halo1@inter.net.il References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 10474 Cc: wingo@pobox.com, 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: ludo@gnu.org (Ludovic Court=C3=A8s) > Cc: 10474@debbugs.gnu.org, wingo@pobox.com, commander.sirow@googlem= ail.com > Date: Thu, 19 Jan 2012 00:55:31 +0100 >=20 > Can you send this one to bug-gnulib@gnu.org? (All the code under l= ib/ > comes from Gnulib.) For the record, my report to bug-gnulib is here: http://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00253.html > (The rest of your investigation is interesting!) Here's some more ;-) In the last episode, we stopped here: GUILEC ice-9/psyntax-pp.go Throw without catch before boot: Throw to key system-error with args ("make_objcode_from_file" "~= A" ("No error") (0))Aborting. It turns out that this happens because Guile reads and writes objcode= s =66rom/to *.go files in text mode. My solution was to use binary mod= e in writing in mkstemp.c: fd =3D open (template, O_RDWR|O_BINARY|O_CREAT|O_EXCL, 0600); and in reading in objcodes.c:load-objcode: fd =3D open (c_file, O_RDONLY | O_BINARY | O_CLOEXEC); While the latter change looks as TRT in all cases, the former does not: there's no guarantee that mkstemp! will be used only for outputting *.go files. It is probably best to have a wrapper around mkstemp!, and use only that for writing to *.go files in compile.scm. Next obstacle: Abort while compiling ice-9/poll.scm: In ice-9/eval.scm: 389: 19 [eval # #] 350: 18 [eval # #] 434: 17 [lp (#) ("")] In system/base/compile.scm: 148: 16 [compile-file "ice-9/poll.scm" #:output-file ...] 43: 15 [call-once #] In ice-9/boot-9.scm: 184: 14 [with-throw-handler #t ...] In system/base/compile.scm: 59: 13 [#] 151: 12 [# #] 200: 11 [read-and-compile # #:from ...= ] 212: 10 [lp (#) # #] 178: 9 [lp (#) (eval-when= # #) ...] In ice-9/boot-9.scm: 2095: 8 [save-module-excursion #] In language/scheme/compile-tree-il.scm: 31: 7 [#] In ./ice-9/psyntax.scm: 1011: 6 [chi-top-sequence ((eval-when # #)) () ((top)) ...] 898: 5 [scan ((eval-when # #)) () ((top)) ...] 269: 4 [scan ((load-extension # "scm_init_poll")) () ((top)) ..= .] In unknown file: =09?: 3 [load-extension "libguile-2.0" "scm_init_poll"] In ice-9/boot-9.scm: 115: 2 [# misc-error ...] In unknown file: =09?: 1 [delete-file "ice-9/poll.go.LORZMf"] In ice-9/boot-9.scm: 119: 0 [# system-error ...] ice-9/boot-9.scm:119:20: In procedure #: ice-9/boot-9.scm:119:20: In procedure delete-file: Permission de= nied make[2]: *** [ice-9/poll.go] Error 1 This happens because poll.scm does this: (eval-when (eval load compile) (load-extension (string-append "libguile-" (effective-version)= ) =09=09 "scm_init_poll")) while scm_init_poll has this snippet: static void scm_init_poll (void) { #if HAVE_POLL scm_c_define_gsubr ("primitive-poll", 4, 0, 0, scm_primitive_p= oll); #else scm_misc_error ("%init-poll", "`poll' unavailable on this plat= form", SCM_EOL); #endif Since Windows doesn't HAVE_POLL, scm_misc_error throws an error. It doesn't sound wise to fail the entire build procedure due to `poll= ' being unavailable (AFAIK, not only MS-Windows lacks that library function). Maybe poll.scm should be compiled, or maybe it should do some clever tricks around load-extension to avoid throwing an error a= t compile time. I'm not a Guile or Scheme person, so I cannot suggest = a good solution. As a workaround, I used "make -k" to allow the build to continue past this point. There's another problem in the above backtrace: The form that catches the thrown error cannot delete the temporary file ice-9/poll.go.LORZMf, because it tries to delete a file that is still open. Changing call-with-output-file/atomic to close the temporary file before deletion, like this: (define* (call-with-output-file/atomic filename proc #:optional = reference) (let* ((template (string-append filename ".XXXXXX")) =09 (tmp (mkstemp! template))) =09 (call-once =09 (lambda () =09 (with-throw-handler #t =09 (lambda () =09=09(proc tmp) =09=09(chmod tmp (logand #o0666 (lognot (umask)))) =09=09(close-port tmp) =09=09(rename-file template filename)) =09 (lambda args =09=09(close-port tmp) ;; <<<<<<<<<<<<<<<<<<<<<<<<<<< =09=09(delete-file template))))))) solves the problem, and we can now see the correct backtrace: Backtrace: In ice-9/eval.scm: 389: 19 [eval # #] 350: 18 [eval # #] 389: 17 [eval # #] 350: 16 [eval # #] 434: 15 [lp (#) ("")] In system/base/compile.scm: 149: 14 [compile-file "ice-9/poll.scm" #:output-file ...] 43: 13 [call-once #] In ice-9/boot-9.scm: 184: 12 [with-throw-handler #t ...] In system/base/compile.scm: 59: 11 [#] 152: 10 [# #] 201: 9 [read-and-compile # #:from ...] 213: 8 [lp (#) # #] 179: 7 [lp (#) (eval-when= # #) ...] In ice-9/boot-9.scm: 2095: 6 [save-module-excursion #] In language/scheme/compile-tree-il.scm: 31: 5 [#] In ./ice-9/psyntax.scm: 1011: 4 [chi-top-sequence ((eval-when # #)) () ((top)) ...] 898: 3 [scan ((eval-when # #)) () ((top)) ...] 269: 2 [scan ((load-extension # "scm_init_poll")) () ((top)) ..= .] In unknown file: =09?: 1 [load-extension "libguile-2.0" "scm_init_poll"] In ice-9/boot-9.scm: 119: 0 [# misc-error ...] ice-9/boot-9.scm:119:20: In procedure #: ice-9/boot-9.scm:119:20: In procedure %init-poll: `poll' unavail= able on this platform The build still stops, but now we have a human-readable description o= f the reason. The problem in poll.scm causes another failure while compiling web/server/http.scm: GUILEC web/server/http.go Backtrace: In system/base/compile.scm: 152: 19 [# #] 201: 18 [read-and-compile # #:fro= m ...] 213: 17 [lp () #f #] 179: 16 [lp (#) (define-m= odule # # ...) ...] In ice-9/boot-9.scm: 2095: 15 [save-module-excursion #] In language/scheme/compile-tree-il.scm: 31: 14 [#] In ./ice-9/psyntax.scm: 1011: 13 [chi-top-sequence ((define-module # # # ...)) () ((top)= ) ...] 898: 12 [scan ((define-module (web server http) #:use-module ..= .)) () ...] 269: 11 [scan ((#(syntax-object let # ...) (#) (# #) ...)) () .= ..] In ice-9/eval.scm: 374: 10 [eval # ()] In ice-9/boot-9.scm: 2651: 9 [define-module* (web server http) #:filename ...] 2626: 8 [resolve-imports ((# # #) (#) (#) (#) ...)] 2564: 7 [resolve-interface (ice-9 poll) #:select ...] 2489: 6 [# # ...] 2756: 5 [try-module-autoload (ice-9 poll) #f] 2095: 4 [save-module-excursion #] 2767: 3 [#] In unknown file: =09?: 2 [primitive-load-path "ice-9/poll" #f] =09?: 1 [load-extension "libguile-2.0" "scm_init_poll"] In ice-9/boot-9.scm: 119: 0 [# misc-error ...] ice-9/boot-9.scm:119:20: In procedure #: ice-9/boot-9.scm:119:20: In procedure %init-poll: `poll' unavail= able on this platform make[2]: *** [web/server/http.go] Error 1 Other than that, the build finally succeeds! P.S. I found a couple of other possible places that don't support Windows file names: ice-9/boot-9.scm: (define* (load-in-vicinity dir path #:optional reader) (define (canonical->suffix canon) =09 (cond =09 ((string-prefix? "/" canon) canon) =09 ((and (> (string-length canon) 2) =09=09(eqv? (string-ref canon 1) #\:)) =09 ;; Paths like C:... transform to /C... =09 (string-append "/" (substring canon 0 1) (substring canon 2))) =09 (else canon))) system/base/compile.scm: (define (canonical->suffix canon) =09 (cond =09 ((string-prefix? "/" canon) canon) =09 ((and (> (string-length canon) 2) =09=09(eqv? (string-ref canon 1) #\:)) =09 ;; Paths like C:... transform to /C... =09 (string-append "/" (substring canon 0 1) (substring canon 2))) =09 (else canon))) I don't understand the "Paths like C:... transform to /C..." part. Does that assume Cygwin? Because the "transformed" file names will not work in the native Windows build, which is what MinGW produces. P.P.S. I have still a few non-fatal warnings to investigate and perhaps report, if they turn out to be real problems. And then there's a test suite. Stay tuned. From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 21 06:09:19 2012 Received: (at 10474) by debbugs.gnu.org; 21 Jan 2012 11:09:19 +0000 Received: from localhost ([127.0.0.1]:38560 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RoYow-00065h-Pj for submit@debbugs.gnu.org; Sat, 21 Jan 2012 06:09:19 -0500 Received: from mtaout22.012.net.il ([80.179.55.172]:33668) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RoYou-00065Q-B5 for 10474@debbugs.gnu.org; Sat, 21 Jan 2012 06:09:18 -0500 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0LY500200APCBD00@a-mtaout22.012.net.il> for 10474@debbugs.gnu.org; Sat, 21 Jan 2012 13:09:08 +0200 (IST) Received: from HOME-C4E4A596F7 ([77.124.116.75]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0LY5001XXAZ6KE90@a-mtaout22.012.net.il>; Sat, 21 Jan 2012 13:09:08 +0200 (IST) Date: Sat, 21 Jan 2012 13:09:08 +0200 From: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys In-reply-to: <83obtz4muv.fsf@gnu.org> X-012-Sender: halo1@inter.net.il To: ludo@gnu.org Message-id: <83r4yt2tyj.fsf@gnu.org> References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83obtz4muv.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 10474 Cc: 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > Date: Thu, 19 Jan 2012 19:35:04 +0200 > From: Eli Zaretskii > Cc: 10474@debbugs.gnu.org, commander.sirow@googlemail.com > > > (The rest of your investigation is interesting!) > > Here's some more ;-) As promised, still more issues below. 1. Compilation warnings in deprecation.c: SNARF deprecation.x deprecation.c:40:1: warning: "vsnprintf" redefined In file included from deprecation.c:25: ../lib/stdio.h:1605:1: warning: this is the location of the previous definition This is because deprecation.c does this: /* Windows defines. */ #ifdef __MINGW32__ #define vsnprintf _vsnprintf #endif but lib/stdio.h already did the same. My solution was to add an "#ifdef vsnprintf" condition to deprecation.c to avoid redefinition. 2. Compilation warning in expand.c: SNARF expand.x expand.c:52:1: warning: "VOID" redefined In file included from d:/usr/include/windef.h:253, from d:/usr/include/windows.h:48, from d:/usr/include/winsock2.h:22, from ../libguile/iselect.h:36, from ../libguile/threads.h:30, from ../libguile/gc.h:29, from ../libguile/_scm.h:75, from expand.c:27: d:/usr/include/winnt.h:75:1: warning: this is the location of the previous definition expand.c:54:1: warning: "CONST" redefined In file included from d:/usr/include/windows.h:48, from d:/usr/include/winsock2.h:22, from ../libguile/iselect.h:36, from ../libguile/threads.h:30, from ../libguile/gc.h:29, from ../libguile/_scm.h:75, from expand.c:27: d:/usr/include/windef.h:39:1: warning: this is the location of the previous definition This is because expand.c does: #define VOID(src) \ SCM_MAKE_EXPANDED_VOID(src) #define CONST(src, exp) \ SCM_MAKE_EXPANDED_CONST(src, exp) and Windows headers have their own definitions for VOID and CONST. My solution was to add this to expand.c: #ifdef VOID #undef VOID #endif #ifdef CONST #undef CONST #endif However, I really suggest that expand.c uses some less ubiquitous symbol names, like SCM_CONST and SCM_VOID. 3. Compilation warning in filesys.c: SNARF filesys.x filesys.c:119:1: warning: "mkdir" redefined In file included from ../lib/sys/stat.h:47, from filesys.c:92: ../lib/sys/stat.h:808:1: warning: this is the location of the previous definition This is because filesys.c does this: /* Some more definitions for the native Windows port. */ #ifdef __MINGW32__ # define mkdir(path, mode) mkdir (path) But gnulib already redirected `mkdir' to its replacement function. My solution: don't define if already redirected. To that end, I added the following condition before the above #define: /* When configured to use the gnulib replacement, don't redefine mkdir, as it is already redirected to the replacement, see lib/sys/stat.h. */ # if !GNULIB_defined_rpl_mkdir I'm not sure using GNULIB_defined_rpl_mkdir is TRT here, but I didn't find a better way. 4. Missing setenv needed by dynl.c: CC dynl.lo dynl.c: In function `augment_env': dynl.c:141: warning: implicit declaration of function `setenv' Solution: add a setenv implementation. However, I think Guile would be better off using a more portable putenv instead. 5. Compilation error in net_db.c: CC net_db.lo net_db.c:460: error: `AI_ALL' undeclared here (not in a function) net_db.c:460: error: bit-field `_gl_verify_error_if_negative' width not an integer constant net_db.c:482: warning: "struct addrinfo" declared inside parameter list net_db.c:482: warning: its scope is only this definition or declaration, which is probably not what you want net_db.c: In function `scm_from_addrinfo': net_db.c:490: error: dereferencing pointer to incomplete type net_db.c:491: error: dereferencing pointer to incomplete type net_db.c:492: error: dereferencing pointer to incomplete type net_db.c:493: error: dereferencing pointer to incomplete type net_db.c:494: error: dereferencing pointer to incomplete type net_db.c:494: error: dereferencing pointer to incomplete type net_db.c:496: error: dereferencing pointer to incomplete type net_db.c:496: error: dereferencing pointer to incomplete type net_db.c: In function `scm_getaddrinfo': net_db.c:614: error: storage size of 'c_hints' isn't known net_db.c:657: warning: implicit declaration of function `getaddrinfo' net_db.c:665: error: dereferencing pointer to incomplete type net_db.c:665: warning: left-hand operand of comma expression has no effect net_db.c:668: warning: implicit declaration of function `freeaddrinfo' net_db.c:614: warning: unused variable `c_hints' net_db.c: At top level: net_db.c:680: error: `EAI_BADFLAGS' undeclared here (not in a function) net_db.c:680: error: bit-field `_gl_verify_error_if_negative' width not an integer constant net_db.c: In function `scm_gai_strerror': net_db.c:744: warning: implicit declaration of function `gai_strerror' net_db.c:744: warning: passing arg 1 of `scm_from_locale_string' makes pointer from integer without a cast In file included from net_db.c:755: ../libguile/net_db.x: In function `scm_init_net_db': ../libguile/net_db.x:17: error: `AI_PASSIVE' undeclared (first use in this function) ../libguile/net_db.x:17: error: (Each undeclared identifier is reported only once ../libguile/net_db.x:17: error: for each function it appears in.) ../libguile/net_db.x:18: error: `AI_CANONNAME' undeclared (first use in this function) ../libguile/net_db.x:19: error: `AI_NUMERICHOST' undeclared (first use in this function) ../libguile/net_db.x:20: error: `AI_NUMERICSERV' undeclared (first use in this function) ../libguile/net_db.x:21: error: `AI_V4MAPPED' undeclared (first use in this function) ../libguile/net_db.x:23: error: `AI_ADDRCONFIG' undeclared (first use in this function) ../libguile/net_db.x:27: error: `EAI_NONAME' undeclared (first use in this function) ../libguile/net_db.x:28: error: `EAI_AGAIN' undeclared (first use in this function) ../libguile/net_db.x:29: error: `EAI_FAIL' undeclared (first use in this function) ../libguile/net_db.x:30: error: `EAI_FAMILY' undeclared (first use in this function) ../libguile/net_db.x:31: error: `EAI_SOCKTYPE' undeclared (first use in this function) ../libguile/net_db.x:32: error: `EAI_SERVICE' undeclared (first use in this function) ../libguile/net_db.x:33: error: `EAI_MEMORY' undeclared (first use in this function) ../libguile/net_db.x:34: error: `EAI_SYSTEM' undeclared (first use in this function) ../libguile/net_db.x:35: error: `EAI_OVERFLOW' undeclared (first use in this function) net_db.c: In function `scm_getaddrinfo': net_db.c:663: warning: value computed is not used make[3]: *** [net_db.lo] Error 1 The reason is that this condition in net_db.c: #ifdef HAVE_WINSOCK2_H #include #else #include #include #include #include #endif is inappropriate when gnulib was used to wrap Windows socket functions. When gnulib _is_ used, the missing macros are already defined by lib/sys/socket.h. Therefore, I modified the condition to: #if HAVE_WINSOCK2_H && !GNULIB_TEST_SOCKET #include # if HAVE_WS2TCPIP_H # include # endif #else #include #include #include #include #endif using GNULIB_TEST_SOCKET as evidence that gnulib is being used. I'm not sure GNULIB_TEST_SOCKET is TRT, but I saw no better candidate. Maybe gnulib should provide us with a better macro. 6. Compilation warnings in socket.c: CC socket.lo socket.c: In function `scm_inet_ntop': socket.c:349: warning: implicit declaration of function `inet_ntop' socket.c:349: warning: assignment makes pointer from integer without a cast socket.c:357: warning: assignment makes pointer from integer without a cast socket.c: In function `scm_inet_pton': socket.c:397: warning: implicit declaration of function `inet_pton' This is again because gnulib headers are not included although available, due to exclusive test of HAVE_WINSOCK2_H. Solution: change this in socket.c: #ifdef HAVE_WINSOCK2_H to say this: #if HAVE_WINSOCK2_H && !GNULIB_TEST_SOCKET The same caveat about GNULIB_TEST_SOCKET applies here. This completes the description of problems I needed to overcome for building Guile with MinGW+MSYS. You may notice that my report is slightly different from Commander Sirow's report that started this bug report, where we cover the same turf: . I didn't need to define a `struct timespec', probably because I don't have Pthreads-w32 installed, and so pthread.h did not get included in my build. . I solved the problems in net_db.c differently (see above), and I believe more correctly. From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 24 07:28:20 2012 Received: (at 10474) by debbugs.gnu.org; 24 Jan 2012 12:28:20 +0000 Received: from localhost ([127.0.0.1]:41416 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RpfU3-0005iL-8g for submit@debbugs.gnu.org; Tue, 24 Jan 2012 07:28:19 -0500 Received: from fencepost.gnu.org ([140.186.70.10]:38177 ident=Debian-exim) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RpfTz-0005iB-5D for 10474@debbugs.gnu.org; Tue, 24 Jan 2012 07:28:17 -0500 Received: from eliz by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1RpfTc-0005lr-GD; Tue, 24 Jan 2012 07:27:52 -0500 Date: Tue, 24 Jan 2012 07:27:52 -0500 Message-Id: From: Eli Zaretskii To: ludo@gnu.org In-reply-to: <83r4yt2tyj.fsf@gnu.org> (message from Eli Zaretskii on Sat, 21 Jan 2012 13:09:08 +0200) Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83obtz4muv.fsf@gnu.org> <83r4yt2tyj.fsf@gnu.org> X-Spam-Score: -4.2 (----) X-Debbugs-Envelope-To: 10474 Cc: 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -4.2 (----) > Date: Sat, 21 Jan 2012 13:09:08 +0200 > From: Eli Zaretskii > Cc: 10474@debbugs.gnu.org, commander.sirow@googlemail.com > > This completes the description of problems I needed to overcome for > building Guile with MinGW+MSYS. Well, it turns out there's more to tell: 1. First, I forgot to tell before that I needed to configure with CPPFLAGS='-D_WIN32_WINNT=0x0501' ./configure ... because if I don't use CPPFLAGS='-D_WIN32_WINNT=0x0501, the configure script claims various network-related functions, like getaddrinfo and getnameinfo) are not available, which is a lie. 2. Warning messages from guile-snarf-docs: ./guile-snarf-docs -o memoize.doc memoize.c -- -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -Id:/usr/include -D_WIN32_WINNT=0x0501 -I/d/usr/include -Id:/usr/include -g -O2 memoize.c:479:***Mismatching FUNC_NAME. Should be: `#define FUNC_NAME s_"@prompt"' ./guile-snarf-docs -o pairs.doc pairs.c -- -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. -I../lib -I../lib -Id:/usr/include -D_WIN32_WINNT=0x0501 -I/d/usr/include -Id:/usr/include -g -O2 pairs.c:147:***Missing or erroneous `#define FUNC_NAME s_scm_cdr' pairs.c:150:***Missing or erroneous #undef for scm_car: pairs.c:155:***Missing or erroneous `#define FUNC_NAME s_scm_cddr' pairs.c:158:***Missing or erroneous #undef for scm_cdar: pairs.c:163:***Missing or erroneous `#define FUNC_NAME s_scm_cadr' pairs.c:166:***Missing or erroneous #undef for scm_caar: pairs.c:171:***Missing or erroneous `#define FUNC_NAME s_scm_cdddr' pairs.c:174:***Missing or erroneous #undef for scm_cddar: pairs.c:179:***Missing or erroneous `#define FUNC_NAME s_scm_cdadr' pairs.c:182:***Missing or erroneous #undef for scm_cdaar: pairs.c:187:***Missing or erroneous `#define FUNC_NAME s_scm_caddr' pairs.c:190:***Missing or erroneous #undef for scm_cadar: pairs.c:195:***Missing or erroneous `#define FUNC_NAME s_scm_caadr' pairs.c:198:***Missing or erroneous #undef for scm_caaar: pairs.c:203:***Missing or erroneous `#define FUNC_NAME s_scm_cddddr' pairs.c:206:***Missing or erroneous #undef for scm_cdddar: pairs.c:211:***Missing or erroneous `#define FUNC_NAME s_scm_cddadr' pairs.c:214:***Missing or erroneous #undef for scm_cddaar: pairs.c:219:***Missing or erroneous `#define FUNC_NAME s_scm_cdaddr' pairs.c:222:***Missing or erroneous #undef for scm_cdadar: pairs.c:227:***Missing or erroneous `#define FUNC_NAME s_scm_cdaadr' pairs.c:230:***Missing or erroneous #undef for scm_cdaaar: pairs.c:235:***Missing or erroneous `#define FUNC_NAME s_scm_cadddr' pairs.c:238:***Missing or erroneous #undef for scm_caddar: pairs.c:243:***Missing or erroneous `#define FUNC_NAME s_scm_cadadr' pairs.c:246:***Missing or erroneous #undef for scm_cadaar: pairs.c:251:***Missing or erroneous `#define FUNC_NAME s_scm_caaddr' pairs.c:254:***Missing or erroneous #undef for scm_caadar: pairs.c:259:***Missing or erroneous `#define FUNC_NAME s_scm_caaadr' pairs.c:262:***Missing or erroneous #undef for scm_caaaar: These come from the guile-func-name-check Awk script, because the offending functions indeed lack the usual "#define FUNC_NAME" and "#undef FUNC_NAME" directives. Are these problems real? If not, I'd suggest to modify the Awk script to not emit them: people might get alarmed without a good reason. 3. Error messages from makeinfo: rm -f guile-procedures.txt makeinfo --force -o guile-procedures.txt guile-procedures.texi || test -f guile-procedures.txt d:\usr\eli\utils\guile-2.0.3\libguile//guile-procedures.texi:10720: Cross reference to nonexistent node `Backslash Escapes' (perhaps incorrect sectioning?). d:\usr\eli\utils\guile-2.0.3\libguile//guile-procedures.texi:10415: Cross reference to nonexistent node `Network Address Conversion' (perhaps incorrect sectioning?). and many more similar errors. This is because guile-procedures.texi is not a complete Texinfo source. Since this command just generates a plain-text document, I suggest to add --no-validate to makeinfo command-line switches. 4. Error in "make install-strip": make install-data-hook make[5]: Entering directory `/d/usr/eli/utils/guile-2.0.3/meta' cd /d/usr/test/bin && rm -f guile-tools.exe && \ cp -p guild.exe guile-tools.exe cp: cannot stat `guild.exe': No such file or directory make[5]: *** [install-data-hook] Error 1 This happens because meta/Makefile.am has this: # What we now call `guild' used to be known as `guile-tools'. install-data-hook: cd $(DESTDIR)$(bindir) && rm -f guile-tools$(EXEEXT) && \ $(LN_S) guild$(EXEEXT) guile-tools$(EXEEXT) The $(EXEEXT) part should be removed. 5. Invoking the installed guile.exe aborts: D:\usr\test>guile Backtrace: In ice-9/boot-9.scm: 162: 7 [catch #t # ...] 170: 6 [#] In unknown file: ?: 5 [catch-closure] In ice-9/boot-9.scm: 62: 4 [call-with-prompt prompt0 ...] In ice-9/top-repl.scm: 33: 3 [# #] 76: 2 [#] In system/repl/repl.scm: 135: 1 [start-repl scheme #:debug #f] In system/repl/common.scm: 139: 0 [make-repl scheme #f] system/repl/common.scm:139:25: In procedure make-repl: system/repl/common.scm:139:25: In procedure module-lookup: Unbound variable: times This happens because HAVE_TIMES is not defined, as Windows doesn't have `times' and the corresponding gnulib module was not imported to Guile. Like the problems with poll.scm, it sounds unwise to call at startup procedures that depend on optional features which may not exist on the underlying platform. If guile.exe depends on some of these features, it should fail to build if they don't exist. I solved this by copy/pasting gnulib's times.c into stime.c. 6. I noticed that changes in C sources do not trigger recompilation of the *.scm files. Should they? 7. guile.exe aborts again at startup: D:\usr\test>guile GNU Guile 2.0.3 Copyright (C) 1995-2011 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. While reading expression: ERROR: In procedure fport_input_waiting: Not fully implemented on this platform Backtrace: In ice-9/boot-9.scm: 162: 10 [catch #t # ...] 170: 9 [#] In unknown file: ?: 8 [catch-closure] In ice-9/boot-9.scm: 62: 7 [call-with-prompt prompt0 ...] In ice-9/top-repl.scm: 33: 6 [# #] 76: 5 [#] In system/repl/repl.scm: 153: 4 [run-repl #] 158: 3 [#] 125: 2 [# misc-error ...] 102: 1 [flush-all-input] In unknown file: ?: 0 [char-ready? #] ERROR: In procedure char-ready?: ERROR: In procedure fport_input_waiting: Not fully implemented on this platform This is because Windows has neither `poll' nor `select' nor FIONREAD, which are the 3 mechanisms supported by fport_input_waiting. I solved it by adding this to fports.c: #elif defined (__MINGW32__) DWORD input_events; if (!GetNumberOfConsoleInputEvents (_get_osfhandle (fdes), &input_events)) scm_syserror ("fport_input_waiting"); return (int) input_events; and also the necessary definition of struct tms needed by stime.c. But really the gnulib `select' module should be imported into Guile, because the above will DTRT only for keyboard input ports. This, finally, allows to start up guile.exe and type several simple commands. HTH From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 25 16:12:43 2012 Received: (at 10474) by debbugs.gnu.org; 25 Jan 2012 21:12:43 +0000 Received: from localhost ([127.0.0.1]:43936 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RqA94-0007bD-GU for submit@debbugs.gnu.org; Wed, 25 Jan 2012 16:12:43 -0500 Received: from mail1-relais-roc.national.inria.fr ([192.134.164.82]:12870) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RqA91-0007b0-V8 for 10474@debbugs.gnu.org; Wed, 25 Jan 2012 16:12:41 -0500 X-IronPort-AV: E=Sophos;i="4.71,570,1320620400"; d="scan'208";a="141437857" Received: from reverse-83.fdn.fr (HELO pluto) ([80.67.176.83]) by mail1-relais-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES128-SHA; 25 Jan 2012 22:12:05 +0100 From: ludo@gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) To: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83obtz4muv.fsf@gnu.org> <83r4yt2tyj.fsf@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 6 =?iso-8859-1?Q?Pluvi=F4se?= an 220 de la =?iso-8859-1?Q?R=E9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu Date: Wed, 25 Jan 2012 22:12:04 +0100 In-Reply-To: <83r4yt2tyj.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 21 Jan 2012 13:09:08 +0200") Message-ID: <87k44ffpwb.fsf@gnu.org> User-Agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -6.2 (------) X-Debbugs-Envelope-To: 10474 Cc: 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.2 (------) Hi Eli, Thanks for doing all the hard work! I=E2=80=99m willing to apply your changes, but could you send them in =E2= =80=98git format-patch=E2=80=99 format, with a log in GNU ChangeLog style, to make it easier? In prevision of the of an increased contribution rate ;-), could you assign copyright to the FSF? At first sight, these patches may be applicable without copyright assignment, but that=E2=80=99s the limit, I th= ink. Eli Zaretskii skribis: > 1. Compilation warnings in deprecation.c: > > SNARF deprecation.x > deprecation.c:40:1: warning: "vsnprintf" redefined > In file included from deprecation.c:25: > ../lib/stdio.h:1605:1: warning: this is the location of the previous= definition > > This is because deprecation.c does this: > > /* Windows defines. */ > #ifdef __MINGW32__ > #define vsnprintf _vsnprintf > #endif > > but lib/stdio.h already did the same. My solution was to add an > "#ifdef vsnprintf" condition to deprecation.c to avoid redefinition. > > 2. Compilation warning in expand.c: > > SNARF expand.x > expand.c:52:1: warning: "VOID" redefined > In file included from d:/usr/include/windef.h:253, > from d:/usr/include/windows.h:48, > from d:/usr/include/winsock2.h:22, > from ../libguile/iselect.h:36, > from ../libguile/threads.h:30, > from ../libguile/gc.h:29, > from ../libguile/_scm.h:75, > from expand.c:27: > d:/usr/include/winnt.h:75:1: warning: this is the location of the pr= evious definition > expand.c:54:1: warning: "CONST" redefined > In file included from d:/usr/include/windows.h:48, > from d:/usr/include/winsock2.h:22, > from ../libguile/iselect.h:36, > from ../libguile/threads.h:30, > from ../libguile/gc.h:29, > from ../libguile/_scm.h:75, > from expand.c:27: > d:/usr/include/windef.h:39:1: warning: this is the location of the p= revious definition > > This is because expand.c does: > > #define VOID(src) \ > SCM_MAKE_EXPANDED_VOID(src) > #define CONST(src, exp) \ > SCM_MAKE_EXPANDED_CONST(src, exp) > > and Windows headers have their own definitions for VOID and CONST. > > My solution was to add this to expand.c: > > #ifdef VOID > #undef VOID > #endif > #ifdef CONST > #undef CONST > #endif > > However, I really suggest that expand.c uses some less ubiquitous > symbol names, like SCM_CONST and SCM_VOID. > > 3. Compilation warning in filesys.c: > > SNARF filesys.x > filesys.c:119:1: warning: "mkdir" redefined > In file included from ../lib/sys/stat.h:47, > from filesys.c:92: > ../lib/sys/stat.h:808:1: warning: this is the location of the previo= us definition > > This is because filesys.c does this: > > /* Some more definitions for the native Windows port. */ > #ifdef __MINGW32__ > # define mkdir(path, mode) mkdir (path) > > But gnulib already redirected `mkdir' to its replacement function. My > solution: don't define if already redirected. To that end, I added > the following condition before the above #define: > > /* When configured to use the gnulib replacement, don't redefine > mkdir, as it is already redirected to the replacement, see > lib/sys/stat.h. */ > # if !GNULIB_defined_rpl_mkdir > > I'm not sure using GNULIB_defined_rpl_mkdir is TRT here, but I didn't > find a better way. Strangely enough, the cross-build to MinGW32 at is not showing any of these. Any idea why? That=E2=80=99s with MinGW 3.18. > 4. Missing setenv needed by dynl.c: > > CC dynl.lo > dynl.c: In function `augment_env': > dynl.c:141: warning: implicit declaration of function `setenv' > > Solution: add a setenv implementation. However, I think Guile would > be better off using a more portable putenv instead. I=E2=80=99ll try Gnulib=E2=80=99s setenv module. > 5. Compilation error in net_db.c: [...] > is inappropriate when gnulib was used to wrap Windows socket > functions. When gnulib _is_ used, the missing macros are already > defined by lib/sys/socket.h. Therefore, I modified the condition to: > > #if HAVE_WINSOCK2_H && !GNULIB_TEST_SOCKET > #include > # if HAVE_WS2TCPIP_H > # include > # endif > #else > #include > #include > #include > #include > #endif > > using GNULIB_TEST_SOCKET as evidence that gnulib is being used. I'm > not sure GNULIB_TEST_SOCKET is TRT, but I saw no better candidate. > Maybe gnulib should provide us with a better macro. This seems to be the right thing, according to gnulib-common.m4: --8<---------------cut here---------------start------------->8--- # gl_MODULE_INDICATOR_FOR_TESTS([modulename]) # defines a C macro indicating the presence of the given module # in lib or tests. This is useful to determine whether the module # should be tested. # | Value | Value | # | in lib/ | in tests/ | # --------------------------------------------+---------+-----------+ # Module present among main modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module present among tests-related modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module not present at all: | 0 | 0 | # --------------------------------------------+---------+-----------+ AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], [ AC_DEFINE([GNULIB_TEST_]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1], [Define to 1 when the gnulib module $1 should be tested.]) ]) --8<---------------cut here---------------end--------------->8--- Thanks! Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 26 00:38:24 2012 Received: (at 10474) by debbugs.gnu.org; 26 Jan 2012 05:38:25 +0000 Received: from localhost ([127.0.0.1]:44859 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RqI2P-0005Zu-Hz for submit@debbugs.gnu.org; Thu, 26 Jan 2012 00:38:22 -0500 Received: from fencepost.gnu.org ([140.186.70.10]:60205 ident=Debian-exim) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RqI2L-0005Zm-JV for 10474@debbugs.gnu.org; Thu, 26 Jan 2012 00:38:19 -0500 Received: from eliz by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1RqI1q-0006SD-FR; Thu, 26 Jan 2012 00:37:46 -0500 Date: Thu, 26 Jan 2012 00:37:46 -0500 Message-Id: From: Eli Zaretskii To: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) In-reply-to: <87k44ffpwb.fsf@gnu.org> (ludo@gnu.org) Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83obtz4muv.fsf@gnu.org> <83r4yt2tyj.fsf@gnu.org> <87k44ffpwb.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -4.2 (----) X-Debbugs-Envelope-To: 10474 Cc: 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -4.2 (----) > From: ludo@gnu.org (Ludovic Courtès) > Cc: 10474@debbugs.gnu.org, commander.sirow@googlemail.com > Date: Wed, 25 Jan 2012 22:12:04 +0100 > > Thanks for doing all the hard work! Thanks for developing Guile. > I’m willing to apply your changes, but could you send them in ‘git > format-patch’ format, with a log in GNU ChangeLog style, to make it > easier? I can certainly add ChangeLog entries, but `git format-patch' would be harder. I don't have git installed on my development machine (git is a bit of PITA on Windows). What's wrong with "diff -u"? I can divide the diffs into separate chunks of related changes, so it will be easier for you to produce separate commits, if that's what you want from `git format-patch'. If there's another reason for your request, please tell what that is and I will try to make your job easier as much as I can. But installing git and cloning the Guile repo just to submit these changes is something I'd like to avoid if possible. > In prevision of the of an increased contribution rate ;-), could you > assign copyright to the FSF? Will do. > Strangely enough, the cross-build to MinGW32 at > is not showing any of > these. Any idea why? That’s with MinGW 3.18. I have exactly zero experience with the cross-build MinGW environment. My MinGW installation is 3.14, FWIW. > > is inappropriate when gnulib was used to wrap Windows socket > > functions. When gnulib _is_ used, the missing macros are already > > defined by lib/sys/socket.h. Therefore, I modified the condition to: > > > > #if HAVE_WINSOCK2_H && !GNULIB_TEST_SOCKET > > #include > > # if HAVE_WS2TCPIP_H > > # include > > # endif > > #else > > #include > > #include > > #include > > #include > > #endif > > > > using GNULIB_TEST_SOCKET as evidence that gnulib is being used. I'm > > not sure GNULIB_TEST_SOCKET is TRT, but I saw no better candidate. > > Maybe gnulib should provide us with a better macro. > > This seems to be the right thing, according to gnulib-common.m4: OK. From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 29 13:31:06 2012 Received: (at 10474) by debbugs.gnu.org; 29 Jan 2012 18:31:06 +0000 Received: from localhost ([127.0.0.1]:44062 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RrZWs-0006Rq-6H for submit@debbugs.gnu.org; Sun, 29 Jan 2012 13:31:06 -0500 Received: from mail1-relais-roc.national.inria.fr ([192.134.164.82]:44520) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RrZWq-0006RM-A4 for 10474@debbugs.gnu.org; Sun, 29 Jan 2012 13:31:05 -0500 X-IronPort-AV: E=Sophos;i="4.71,588,1320620400"; d="scan'208";a="141935365" Received: from reverse-83.fdn.fr (HELO pluto) ([80.67.176.83]) by mail1-relais-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES128-SHA; 29 Jan 2012 19:30:52 +0100 From: ludo@gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) To: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83obtz4muv.fsf@gnu.org> <83r4yt2tyj.fsf@gnu.org> <87k44ffpwb.fsf@gnu.org> Date: Sun, 29 Jan 2012 19:30:50 +0100 In-Reply-To: (Eli Zaretskii's message of "Thu, 26 Jan 2012 00:37:46 -0500") Message-ID: <87d3a2pdid.fsf@gnu.org> User-Agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -6.2 (------) X-Debbugs-Envelope-To: 10474 Cc: 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.2 (------) Hi Eli, Sorry for the late reply. Eli Zaretskii skribis: > I can certainly add ChangeLog entries, but `git format-patch' would be > harder. I don't have git installed on my development machine (git is > a bit of PITA on Windows). What's wrong with "diff -u"? It=E2=80=99s OK, but lacks commit meta-data (author, log, etc.), so it=E2= =80=99s less convenient to apply. But that=E2=80=99s fine, if you prefer this way. Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 29 14:19:23 2012 Received: (at 10474) by debbugs.gnu.org; 29 Jan 2012 19:19:23 +0000 Received: from localhost ([127.0.0.1]:44080 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RraHb-0007ZJ-5Y for submit@debbugs.gnu.org; Sun, 29 Jan 2012 14:19:23 -0500 Received: from mtaout22.012.net.il ([80.179.55.172]:61544) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RraHY-0007Z1-Gh for 10474@debbugs.gnu.org; Sun, 29 Jan 2012 14:19:21 -0500 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0LYK00200QZ3HV00@a-mtaout22.012.net.il> for 10474@debbugs.gnu.org; Sun, 29 Jan 2012 21:19:08 +0200 (IST) Received: from HOME-C4E4A596F7 ([84.228.102.195]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0LYK002WDQZVAR50@a-mtaout22.012.net.il>; Sun, 29 Jan 2012 21:19:08 +0200 (IST) Date: Sun, 29 Jan 2012 21:17:07 +0200 From: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys In-reply-to: <87d3a2pdid.fsf@gnu.org> To: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Message-id: <83bopms4i4.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: QUOTED-PRINTABLE X-012-Sender: halo1@inter.net.il References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83obtz4muv.fsf@gnu.org> <83r4yt2tyj.fsf@gnu.org> <87k44ffpwb.fsf@gnu.org> <87d3a2pdid.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 10474 Cc: 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: ludo@gnu.org (Ludovic Court=C3=A8s) > Cc: 10474@debbugs.gnu.org, commander.sirow@googlemail.com > Date: Sun, 29 Jan 2012 19:30:50 +0100 >=20 > > I can certainly add ChangeLog entries, but `git format-patch' wou= ld be > > harder. I don't have git installed on my development machine (gi= t is > > a bit of PITA on Windows). What's wrong with "diff -u"? >=20 > It=E2=80=99s OK, but lacks commit meta-data (author, log, etc.), so= it=E2=80=99s less > convenient to apply. Is there a way to produce a text file with this information that you could then submit to git instead of typing it by hand? If so, I can make such a file. From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 29 17:56:42 2012 Received: (at 10474) by debbugs.gnu.org; 29 Jan 2012 22:56:43 +0000 Received: from localhost ([127.0.0.1]:44207 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rrdfu-0004Ke-7J for submit@debbugs.gnu.org; Sun, 29 Jan 2012 17:56:42 -0500 Received: from mail4-relais-sop.national.inria.fr ([192.134.164.105]:32942) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rrdfr-0004KQ-A3 for 10474@debbugs.gnu.org; Sun, 29 Jan 2012 17:56:40 -0500 X-IronPort-AV: E=Sophos;i="4.71,589,1320620400"; d="scan'208";a="129313462" Received: from reverse-83.fdn.fr (HELO pluto) ([80.67.176.83]) by mail4-relais-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES128-SHA; 29 Jan 2012 23:56:25 +0100 From: ludo@gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) To: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83obtz4muv.fsf@gnu.org> <83r4yt2tyj.fsf@gnu.org> <87k44ffpwb.fsf@gnu.org> <87d3a2pdid.fsf@gnu.org> <83bopms4i4.fsf@gnu.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 10 =?iso-8859-1?Q?Pluvi=F4se?= an 220 de la =?iso-8859-1?Q?R=E9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu Date: Sun, 29 Jan 2012 23:56:24 +0100 In-Reply-To: <83bopms4i4.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 29 Jan 2012 21:17:07 +0200") Message-ID: <87y5sqm82v.fsf@gnu.org> User-Agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -6.2 (------) X-Debbugs-Envelope-To: 10474 Cc: 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.2 (------) Eli Zaretskii skribis: >> From: ludo@gnu.org (Ludovic Court=C3=A8s) >> Cc: 10474@debbugs.gnu.org, commander.sirow@googlemail.com >> Date: Sun, 29 Jan 2012 19:30:50 +0100 >>=20 >> > I can certainly add ChangeLog entries, but `git format-patch' would be >> > harder. I don't have git installed on my development machine (git is >> > a bit of PITA on Windows). What's wrong with "diff -u"? >>=20 >> It=E2=80=99s OK, but lacks commit meta-data (author, log, etc.), so it= =E2=80=99s less >> convenient to apply. > > Is there a way to produce a text file with this information that you > could then submit to git instead of typing it by hand? Don=E2=80=99t bother. ;-) Just send the diffs with ChangeLog entries, and we=E2=80=99ll put it all together. Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 01 19:59:57 2012 Received: (at 10474) by debbugs.gnu.org; 2 Feb 2012 00:59:57 +0000 Received: from localhost ([127.0.0.1]:49677 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rsl1o-0008Ul-UP for submit@debbugs.gnu.org; Wed, 01 Feb 2012 19:59:57 -0500 Received: from a-pb-sasl-sd.pobox.com ([74.115.168.62]:61353 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rsl1i-0008UZ-Ed for 10474@debbugs.gnu.org; Wed, 01 Feb 2012 19:59:54 -0500 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id E978F83AA; Wed, 1 Feb 2012 19:59:25 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=IRs00QQwsk+qBAfKMRsQJBzysf4=; b=Y0X0GS LeyMTxRTwmQOZcR7rDQg8T1oJa+LyjG0lghFegfkm5u5ixj6bLCBDH6w5wkmjiM5 2hDtp1abjKTXUyckIk4JMt83IEcQxk39iis7cQ7SabNDdZbT5ggvgcFX6MOw6LXP Ze6rbwX+OJ1Lohxd7gWmIsznlu5fiH/m2h+iI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=JfUP7SkrxadQHR26cBs8mN2h1x9nAaIK fMz2f+ivUSTfGy1pZuWiV3hZWTI8Y6uIczmVQWuWNHgavNXje1QEhJGrG4dETy0M qj/CE7adzhInoPM4x9JbFGXeJJaNdGavAkRzkRw0+2uOkr/xFZVtNkUzfOmP9V5n qXTL8O/Koz4= Received: from a-pb-sasl-sd.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id E16FC83A9; Wed, 1 Feb 2012 19:59:25 -0500 (EST) Received: from badger (unknown [90.164.198.39]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTPSA id 482CC83A8; Wed, 1 Feb 2012 19:59:25 -0500 (EST) From: Andy Wingo To: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> Date: Thu, 02 Feb 2012 01:59:21 +0100 In-Reply-To: <83r4yw49u6.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 19 Jan 2012 06:04:01 +0200") Message-ID: <87y5smnj86.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Pobox-Relay-ID: 26A1DEE0-4D39-11E1-B2B0-65B1DE995924-02397024!a-pb-sasl-sd.pobox.com X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 10474 Cc: Ludovic =?utf-8?Q?Court=C3=A8s?= , 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) Hi Eli, Ludovic said it already, but it bears repeating: thank you very much for this investigation! I would like to take this task off his back, assuming he's OK with it: the release process was terribly long, and Ludo deserves a rest ;) I will assume that the canonicalize_file_name issues will get resolved eventually in gnulib, once your assignment completes. I will go through the rest of the issues. One thing: Ludo mentions that he had success with a cross-compiled MinGW 3.18 (IIRC?). You were trying with 3.14. Apparently there are 3.19 and 3.20 releases out. Do you know if this is important? I am ignorant regarding MinGW, unfortunately. I'll follow up on your other issues and patches. Andy -- http://wingolog.org/ From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 01 22:55:39 2012 Received: (at 10474) by debbugs.gnu.org; 2 Feb 2012 03:55:39 +0000 Received: from localhost ([127.0.0.1]:49803 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rsnlr-000553-3n for submit@debbugs.gnu.org; Wed, 01 Feb 2012 22:55:39 -0500 Received: from mtaout20.012.net.il ([80.179.55.166]:46787) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rsnln-00054o-In for 10474@debbugs.gnu.org; Wed, 01 Feb 2012 22:55:37 -0500 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0LYQ00300YPV9700@a-mtaout20.012.net.il> for 10474@debbugs.gnu.org; Thu, 02 Feb 2012 05:55:04 +0200 (IST) Received: from HOME-C4E4A596F7 ([84.228.223.7]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0LYQ00328YVR7150@a-mtaout20.012.net.il>; Thu, 02 Feb 2012 05:55:04 +0200 (IST) Date: Thu, 02 Feb 2012 05:53:07 +0200 From: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys In-reply-to: <87y5smnj86.fsf@pobox.com> To: Andy Wingo Message-id: <83r4ydq4bg.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: QUOTED-PRINTABLE X-012-Sender: halo1@inter.net.il References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 10474 Cc: ludo@gnu.org, 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Andy Wingo > Cc: ludo@gnu.org (Ludovic Court=C3=A8s), 10474@debbugs.gnu.org, > commander.sirow@googlemail.com > Date: Thu, 02 Feb 2012 01:59:21 +0100 >=20 > I would like to take this task off his back, assuming he's OK with = it: > the release process was terribly long, and Ludo deserves a rest ;) Thank you. > One thing: Ludo mentions that he had success with a cross-compiled = MinGW > 3.18 (IIRC?). You were trying with 3.14. Apparently there are 3.1= 9 and > 3.20 releases out. Do you know if this is important? I don't think it is. I think the reason for the difference is that Ludo used a cross-compiled environment, whereas I did it on MS-Windows. > I'll follow up on your other issues and patches. I will try to send the patches with ChangeLog entries in a day or two= . From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 02 11:40:17 2012 Received: (at 10474) by debbugs.gnu.org; 2 Feb 2012 16:40:17 +0000 Received: from localhost ([127.0.0.1]:51034 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rszhp-0000hT-2W for submit@debbugs.gnu.org; Thu, 02 Feb 2012 11:40:17 -0500 Received: from xanadu.aquilenet.fr ([88.191.123.111]:60558) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rszhm-0000hL-CX for 10474@debbugs.gnu.org; Thu, 02 Feb 2012 11:40:15 -0500 Received: from localhost (xanadu.aquilenet.fr [127.0.0.1]) by xanadu.aquilenet.fr (Postfix) with ESMTP id E845C2B1; Thu, 2 Feb 2012 17:39:44 +0100 (CET) Received: from xanadu.aquilenet.fr ([127.0.0.1]) by localhost (xanadu.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2IWGfj0OKCSK; Thu, 2 Feb 2012 17:39:44 +0100 (CET) Received: from pluto (unknown [193.50.110.167]) by xanadu.aquilenet.fr (Postfix) with ESMTPSA id 73AB7236; Thu, 2 Feb 2012 17:39:44 +0100 (CET) From: ludo@gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) To: Andy Wingo Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 14 =?iso-8859-1?Q?Pluvi=F4se?= an 220 de la =?iso-8859-1?Q?R=E9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu Date: Thu, 02 Feb 2012 17:39:44 +0100 In-Reply-To: <87y5smnj86.fsf@pobox.com> (Andy Wingo's message of "Thu, 02 Feb 2012 01:59:21 +0100") Message-ID: <87r4ydkx4f.fsf@gnu.org> User-Agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.93 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 10474 Cc: Eli Zaretskii , 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) Hi! Andy Wingo skribis: > I would like to take this task off his back, assuming he's OK with it: > the release process was terribly long, and Ludo deserves a rest ;) Thank you. :-) > One thing: Ludo mentions that he had success with a cross-compiled MinGW > 3.18 (IIRC?). That=E2=80=99s on Hydra, and MinGW has since been upgraded to 3.20 there. = Note that it=E2=80=99s a =E2=80=98--disable-networking=E2=80=99 build too, which= is easier. Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 02 12:17:32 2012 Received: (at 10474) by debbugs.gnu.org; 2 Feb 2012 17:17:32 +0000 Received: from localhost ([127.0.0.1]:51088 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rt0Hr-0001cr-Q8 for submit@debbugs.gnu.org; Thu, 02 Feb 2012 12:17:32 -0500 Received: from mtaout23.012.net.il ([80.179.55.175]:35505) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rt0Hq-0001ce-Ae for 10474@debbugs.gnu.org; Thu, 02 Feb 2012 12:17:31 -0500 Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0LYR00L00ZA27P00@a-mtaout23.012.net.il> for 10474@debbugs.gnu.org; Thu, 02 Feb 2012 19:16:35 +0200 (IST) Received: from HOME-C4E4A596F7 ([77.124.37.111]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0LYR00LFXZZM8120@a-mtaout23.012.net.il>; Thu, 02 Feb 2012 19:16:35 +0200 (IST) Date: Thu, 02 Feb 2012 19:14:38 +0200 From: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys In-reply-to: <87r4ydkx4f.fsf@gnu.org> To: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Message-id: <83haz9p37l.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: QUOTED-PRINTABLE X-012-Sender: halo1@inter.net.il References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <87r4ydkx4f.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 10474 Cc: wingo@pobox.com, 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: ludo@gnu.org (Ludovic Court=C3=A8s) > Cc: Eli Zaretskii , 10474@debbugs.gnu.org, commande= r.sirow@googlemail.com > Date: Thu, 02 Feb 2012 17:39:44 +0100 >=20 > Note that it=E2=80=99s a =E2=80=98--disable-networking=E2=80=99 bui= ld too, which is easier. That might just explain at least some of the problems that I hit, but Ludo didn't. As you can see in my reports, quite a few of them were related to network code in some way. From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 02 12:37:24 2012 Received: (at 10474) by debbugs.gnu.org; 2 Feb 2012 17:37:24 +0000 Received: from localhost ([127.0.0.1]:51109 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rt0b5-00026N-FC for submit@debbugs.gnu.org; Thu, 02 Feb 2012 12:37:24 -0500 Received: from mtaout22.012.net.il ([80.179.55.172]:56677) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rt0b2-000268-Kq for 10474@debbugs.gnu.org; Thu, 02 Feb 2012 12:37:22 -0500 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0LYS005000URRI00@a-mtaout22.012.net.il> for 10474@debbugs.gnu.org; Thu, 02 Feb 2012 19:36:46 +0200 (IST) Received: from HOME-C4E4A596F7 ([77.124.37.111]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0LYS004590X9HBD0@a-mtaout22.012.net.il>; Thu, 02 Feb 2012 19:36:46 +0200 (IST) Date: Thu, 02 Feb 2012 19:34:49 +0200 From: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys In-reply-to: <87y5smnj86.fsf@pobox.com> To: Andy Wingo Message-id: <83ehudp29y.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: QUOTED-PRINTABLE X-012-Sender: halo1@inter.net.il References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 10474 Cc: ludo@gnu.org, 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Andy Wingo > Cc: ludo@gnu.org (Ludovic Court=C3=A8s), 10474@debbugs.gnu.org, > commander.sirow@googlemail.com > Date: Thu, 02 Feb 2012 01:59:21 +0100 >=20 > I will assume that the canonicalize_file_name issues will get resol= ved > eventually in gnulib, once your assignment completes. I will go > through the rest of the issues. As promised, the diffs that I suggest to install to take care of the problems I bumped into are at the end of this message. For your convenience, I grouped the changes into several related groups, in case you'd like to make them separate commits. Each group is preceded by a short description (a candidate for a commit log message) and ChangeLog entries for the changes. In addition to the diffs, there are a few other changes for which I don't show my changes, because they were ad-hoc and not very clean. Instead, I describe what I think should be the "right" solutions for them: . lib/canonicalize-lgpl.c -- does not support Windows absolute file names. Will be fixed in gnulib. . libguile/dynl.c -- lacks setenv. Gnulib's setenv should be used. . libguile/expand.c -- Defines CONST and VOID. Should define SCM_CONST and SCM_VOID (or some other, less ubiquitous, symbols) instead. . libguile/fports.c -- Doesn't implement fport_input_waiting when neither poll nor select nor FIONREAD are available, without which interactive guile won't start. Should use the gnulib select module. . libguile/socket.c -- Lacks implementation of `times' for MS-Windows, without which guile.exe aborts during startup. Should use the gnulib times module. . module/ice-9/boot-9.scm -- absolute-path? does not support Windows file names with drive letters. Windows absolute file names match the regex "\([a-zA-Z]:\)?[\\/]". I don't know Scheme well enough to write this in a clean way, sorry... Here are the diffs: =09Fix startup of guile.exe on MS-Windows. =09* module/system/base/compile.scm (call-with-output-file/atomic): =09Call close-port before deleting the temporary file name, otherwise =09deletion fails on MS-Windows (cannot delete a file that is still =09open). =09* libguile/load.c (scm_init_load_path) [__MINGW32__]: Convert =09backslashes to forward slashes in values of GUILE_LOAD_PATH and =09GUILE_LOAD_COMPILED_PATH. --- module/system/base/compile.scm~0=092011-10-08 01:49:48.000000000 = +0200 +++ module/system/base/compile.scm=092012-01-19 16:49:26.528084600 +0= 200 @@ -61,6 +61,7 @@ (close-port tmp) (rename-file template filename)) (lambda args +=09 (close-port tmp) (delete-file template))))))) =20 (define (ensure-language x) --- libguile/load.c~0=092011-10-08 01:49:48.000000000 +0200 +++ libguile/load.c=092012-01-17 16:47:19.325381400 +0200 @@ -310,10 +309,36 @@ scm_init_load_path () } =20 env =3D getenv ("GUILE_LOAD_PATH"); +#ifdef __MINGW32__ + if (env) + { + char *p =3D env; + + while (*p) +=09{ +=09 if (*p =3D=3D '\\') +=09 *p =3D '/'; +=09 p++; +=09} + } +#endif if (env) path =3D scm_parse_path (scm_from_locale_string (env), path); =20 env =3D getenv ("GUILE_LOAD_COMPILED_PATH"); +#ifdef __MINGW32__ + if (env) + { + char *p =3D env; + + while (*p) +=09{ +=09 if (*p =3D=3D '\\') +=09 *p =3D '/'; +=09 p++; +=09} + } +#endif if (env) cpath =3D scm_parse_path (scm_from_locale_string (env), cpath); =20 =09Avoid compiler warnings on MS-Windows. =09* libguile/print.c (display_string_using_iconv): Cast 2nd arg of =09`iconv' to `const char **', to avoid compiler warnings. =09* libguile/ports.c (get_iconv_codepoint): Cast 2nd arg of `iconv' =09to `const char **', to avoid compiler warnings. =09* libguile/deprecation.c (vsnprintf) [__MINGW32__]: Don't redefine =09if already defined. Avoids compiler warnings. =09* libguile/filesys.c (mkdir) [__MINGW32__]: Don't redefine if =09GNULIB_defined_rpl_mkdir is defined, meaning that the gnulib =09replacement is being used. =09(fchmod) [__MINGW32__]: Define to zero, to avoid gratuitous failur= es =09of many file operations on MS-Windows. --- libguile/print.c~0=092011-10-08 01:49:48.000000000 +0200 +++ libguile/print.c=092012-01-15 15:10:51.450848400 +0200 @@ -899,7 +899,7 @@ display_string_using_iconv (const void * output =3D encoded_output; output_left =3D sizeof (encoded_output); =20 - done =3D iconv (pt->output_cd, &input, &input_left, + done =3D iconv (pt->output_cd, (const char **)&input, &input_l= eft, =09=09 &output, &output_left); =20 output_len =3D sizeof (encoded_output) - output_left; --- libguile/ports.c~0=092011-10-08 01:49:48.000000000 +0200 +++ libguile/ports.c=092012-01-15 15:11:11.856706600 +0200 @@ -1305,7 +1305,7 @@ get_iconv_codepoint (SCM port, scm_t_wch input_left =3D bytes_consumed + 1; output_left =3D sizeof (utf8_buf); =20 - done =3D iconv (pt->input_cd, &input, &input_left, + done =3D iconv (pt->input_cd, (const char **)&input, &input_le= ft, =09=09 &output, &output_left); if (done =3D=3D (size_t) -1) =09{ --- libguile/deprecation.c~0=092011-07-07 02:49:59.000000000 +0300 +++ libguile/deprecation.c=092012-01-15 14:48:55.966092400 +0200 @@ -36,7 +36,7 @@ =20 =20 /* Windows defines. */ -#ifdef __MINGW32__ +#if defined (__MINGW32__) && !defined (vsnprintf) #define vsnprintf _vsnprintf #endif =20 --- libguile/filesys.c~0=092011-10-08 01:49:48.000000000 +0200 +++ libguile/filesys.c=092012-01-18 08:29:49.629722000 +0200 @@ -116,11 +116,24 @@ =20 /* Some more definitions for the native Windows port. */ #ifdef __MINGW32__ -# define mkdir(path, mode) mkdir (path) +/* When configured to use the gnulib replacement, don't redefine + mkdir, as it is already redirected to the replacement, see + lib/sys/stat.h. */ +# if !GNULIB_defined_rpl_mkdir +# define mkdir(path, mode) mkdir (path) +# endif # define fsync(fd) _commit (fd) -# define fchmod(fd, mode) (-1) +# define fchmod(fd, mode) (0) #endif /* __MINGW32__ */ =20 +#ifndef O_BINARY +# ifdef _O_BINARY +# define O_BINARY _O_BINARY +# else +# define O_BINARY 0 +# endif +#endif + /* dirfd() returns the file descriptor underlying a "DIR*" directory= stream. Found on MacOS X for instance. The following definition is for S= olaris 10, it's probably not right elsewhere, but that's ok, it shouldn'= t be =20 =09Read and write *.go files and copy files in binary mode on =09MS-Windows. =09* libguile/objcodes.c (O_BINARY): Define on all platforms. =09(make_objcode_from_file): Zero out errno before calling full_read, =09to make sure the value after the call reflects errors inside =09full_read. =09(scm_load_objcode): Open objcode files in binary mode, so that =09*.go files are read verbatim on MS-Windows. =09* libguile/mkstemp.c (O_BINARY): Define for all platforms. =09(mkstemp): Open the temporary file in binary mode, so that =09compiled *.go files are written verbatim on MS-Windows. =09* libguile/filesys.c (O_BINARY): Define for all platforms. =09(scm_copy_file): Use O_BINARY in the call to open_or_open64. --- libguile/objcodes.c~0=092011-10-08 01:49:48.000000000 +0200 +++ libguile/objcodes.c=092012-01-18 08:47:46.857202700 +0200 @@ -39,6 +39,14 @@ #include "programs.h" #include "objcodes.h" =20 +#ifndef O_BINARY +# ifdef _O_BINARY +# define O_BINARY _O_BINARY +# else +# define O_BINARY 0 +# endif +#endif + /* SCM_OBJCODE_COOKIE, defined in _scm.h, is a magic value prepended to objcode on disk but not in memory. =20 @@ -169,9 +177,10 @@ make_objcode_from_file (int fd) { SCM bv =3D scm_c_make_bytevector (st.st_size - sizeof cookie); =20 + errno =3D 0; if (full_read (fd, cookie, sizeof cookie) !=3D sizeof cookie - || full_read (fd, SCM_BYTEVECTOR_CONTENTS (bv), - SCM_BYTEVECTOR_LENGTH (bv)) !=3D SCM_BYTEVECTO= R_LENGTH (bv)) +=09|| full_read (fd, SCM_BYTEVECTOR_CONTENTS (bv), +=09=09 SCM_BYTEVECTOR_LENGTH (bv)) !=3D SCM_BYTEVECTOR_LENGTH (= bv)) { int errno_save =3D errno; (void) close (fd); @@ -295,7 +304,7 @@ SCM_DEFINE (scm_load_objcode, "load-objc SCM_VALIDATE_STRING (1, file); =20 c_file =3D scm_to_locale_string (file); - fd =3D open (c_file, O_RDONLY | O_CLOEXEC); + fd =3D open (c_file, O_RDONLY | O_BINARY | O_CLOEXEC); free (c_file); if (fd < 0) SCM_SYSERROR; =20 --- libguile/mkstemp.c~0=092010-12-08 11:07:02.000000000 +0200 +++ libguile/mkstemp.c=092012-01-18 08:46:36.123280400 +0200 @@ -43,6 +43,14 @@ #include #endif =20 +#ifndef O_BINARY +# ifdef _O_BINARY +# define O_BINARY _O_BINARY +# else +# define O_BINARY 0 +# endif +#endif + #ifndef TMP_MAX #define TMP_MAX 16384 #endif @@ -112,7 +120,7 @@ mkstemp (template) v /=3D 62; XXXXXX[5] =3D letters[v % 62]; =20 - fd =3D open (template, O_RDWR|O_CREAT|O_EXCL, 0600); + fd =3D open (template, O_RDWR|O_BINARY|O_CREAT|O_EXCL, 0600); if (fd >=3D 0) =09/* The file does not exist. */ =09return fd; --- libguile/filesys.c~0=092011-10-08 01:49:48.000000000 +0200 +++ libguile/filesys.c=092012-01-18 08:29:49.629722000 +0200 @@ -1118,7 +1131,7 @@ SCM_DEFINE (scm_copy_file, "copy-file",=20 c_newfile =3D scm_to_locale_string (newfile); scm_dynwind_free (c_newfile); =20 - oldfd =3D open_or_open64 (c_oldfile, O_RDONLY); + oldfd =3D open_or_open64 (c_oldfile, O_RDONLY | O_BINARY); if (oldfd =3D=3D -1) SCM_SYSERROR; =20 @@ -1131,7 +1144,7 @@ SCM_DEFINE (scm_copy_file, "copy-file",=20 goto err_close_oldfd; =20 /* use POSIX flags instead of 07777?. */ - newfd =3D open_or_open64 (c_newfile, O_WRONLY | O_CREAT | O_TRUNC, + newfd =3D open_or_open64 (c_newfile, O_WRONLY | O_BINARY | O_CREAT= | O_TRUNC, oldstat.st_mode & 07777); if (newfd =3D=3D -1) { =09Fix compilation warnings and errors on MS-Windows when =09compiling network-related code due to missing macros and =09prototypes. =09* libguile/net_db.c [HAVE_WINSOCK2_H]: Add !GNULIB_TEST_SOCKET to =09the condition, to include sys/socket.h and netdb.h when gnulib's =09socket module is being used. Fixes compiler warnings and errors =09on MS-Windows. =09* libguile/socket.c: Likewise. --- libguile/net_db.c~0=092011-07-07 02:49:59.000000000 +0300 +++ libguile/net_db.c=092012-01-15 16:22:56.366898100 +0200 @@ -49,8 +49,11 @@ =20 #include =20 -#ifdef HAVE_WINSOCK2_H +#if HAVE_WINSOCK2_H && !GNULIB_TEST_SOCKET #include +# if HAVE_WS2TCPIP_H +# include +# endif #else #include #include --- libguile/socket.c~0=092011-10-08 01:49:48.000000000 +0200 +++ libguile/socket.c=092012-01-15 16:40:46.891296700 +0200 @@ -58,7 +58,7 @@ #include #endif #include -#ifdef HAVE_WINSOCK2_H +#if HAVE_WINSOCK2_H && !GNULIB_TEST_SOCKET #include #else #include From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 11 13:25:46 2012 Received: (at 10474) by debbugs.gnu.org; 11 Sep 2012 17:25:46 +0000 Received: from localhost ([127.0.0.1]:54999 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TBUDZ-0002Ta-M9 for submit@debbugs.gnu.org; Tue, 11 Sep 2012 13:25:46 -0400 Received: from mail-lpp01m010-f44.google.com ([209.85.215.44]:64863) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TBU6K-0002I5-W5 for 10474@debbugs.gnu.org; Tue, 11 Sep 2012 13:18:17 -0400 Received: by lahm15 with SMTP id m15so516411lah.3 for <10474@debbugs.gnu.org>; Tue, 11 Sep 2012 10:17:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject :x-enigmail-version:content-type:content-transfer-encoding; bh=zdbSHfI6tojRQ4MwM0nOa4VgJGlruSJZsRuOkOYuV7M=; b=Fs7SbtW59oTaJQqe/IbhqYEbx7sdV9ti4ujMH5rJwDhkP7umRrsGAK6sgogC4/0+C+ SkPgIFHH2o78Lgt04F7ka7gJ5oqgWyManzI9fwKKPLXdtRjQM/pkA4U2k6Xpbia0LSkq e834lUlpBrztkC+kB5Dt/kWMYvuT1Mou89J//CTZyUHgegDKs0xnhpI4yO2kS9VzdSLz xglkdgpAh5LB60Y2v+mE29oBZYeTY+nOvKKbAaUAWGq3JjI47IEtXj0DICdz5PtuHuOC aGI+yJP/2aEw4GjquF9UVg+UBMbC2z+vW07EkLzlofhFUfERNgfm5BYa4cyIvz/charM LrMA== Received: by 10.112.38.67 with SMTP id e3mr6363014lbk.98.1347383854466; Tue, 11 Sep 2012 10:17:34 -0700 (PDT) Received: from [192.168.4.39] (broadband-95-84-200-156.nationalcablenetworks.ru. [95.84.200.156]) by mx.google.com with ESMTPS id hj19sm15283527lab.13.2012.09.11.10.17.31 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 11 Sep 2012 10:17:32 -0700 (PDT) Message-ID: <504F7212.6060509@gmail.com> Date: Tue, 11 Sep 2012 21:17:06 +0400 From: LRN User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/18.0 Thunderbird/18.0a1 MIME-Version: 1.0 To: 10474@debbugs.gnu.org Subject: Progress X-Enigmail-Version: 1.5a1pre Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 10474 X-Mailman-Approved-At: Tue, 11 Sep 2012 13:25:42 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.3 (--) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Any progress on this? I've tried 2.0.6, and it's still a mess. Compiled with a few hacks (disabled networking and posix, copied getpid definition to random.c), but it still fails with Throw to key system-error with args ("canonicalize-path" "~A" ("No such file or directory") (2))Aborting. during guile-procedures.texi generation -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (MingW32) Comment: Using GnuPG with Mozilla - http://www.enigmail.net/ iQEcBAEBAgAGBQJQT3IPAAoJEOs4Jb6SI2CwE0cH/iG6XZHQYyCHoc7xx/gF6m/8 xPgxt50CqaA1gjbDLep83jFNlheHGv7XYuP8GwIw8xy5Y5meNf3sAqMHqhNB0ZXb sL4xJY2DtVxWZ6NoCetsNkjsOCXqJqjo2KP6c/GibO9Hb8q6HC/SiUxa2ncsprQX C5oxxZI0cM85VRhLUINb+GYHhVbDnKPTzajsz32OohblRVt1QdjwpI6BoGFK0We9 ceQthNDnv4WvR2NYon4Aa1ZScCENa34KDU/2IlJojMqTbkRYYwNc0Ft3zKCZiswm JQZrkRm9BXv8SyTglda85o4Wu9s72MKIzSn9fanNdBY2AIbq8+K65vXyiznxWHA= =xf+h -----END PGP SIGNATURE----- From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 12 13:03:17 2012 Received: (at 10474) by debbugs.gnu.org; 12 Sep 2012 17:03:17 +0000 Received: from localhost ([127.0.0.1]:57387 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TBqLN-0005nd-HX for submit@debbugs.gnu.org; Wed, 12 Sep 2012 13:03:17 -0400 Received: from world.peace.net ([96.39.62.75]:42059) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TBqLK-0005nV-UC for 10474@debbugs.gnu.org; Wed, 12 Sep 2012 13:03:16 -0400 Received: from bdc03pnrt1-v92.tch.harvard.edu ([134.174.21.5] helo=[172.18.136.143]) by world.peace.net with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from ) id 1TBqKQ-0001gt-B4; Wed, 12 Sep 2012 13:02:18 -0400 Message-ID: <5050C016.9080609@netris.org> Date: Wed, 12 Sep 2012 13:02:14 -0400 From: Mark H Weaver User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.6esrpre) Gecko/20120817 Icedove/10.0.6 MIME-Version: 1.0 To: LRN Subject: Re: bug#10474: Progress References: <87ty43dxua.fsf@pobox.com> <504F7212.6060509@gmail.com> In-Reply-To: <504F7212.6060509@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 10474 Cc: 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) On 09/11/2012 01:17 PM, LRN wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Any progress on this? I've tried 2.0.6, and it's still a mess. > Compiled with a few hacks (disabled networking and posix, copied > getpid definition to random.c), but it still fails with > Throw to key system-error with args ("canonicalize-path" "~A" ("No > such file or directory") (2))Aborting. > during guile-procedures.texi generation Any progress on what? You haven't provided enough context for me to know what problem you are referring to. Thanks, Mark From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 12 17:23:25 2012 Received: (at 10474) by debbugs.gnu.org; 12 Sep 2012 21:23:25 +0000 Received: from localhost ([127.0.0.1]:57964 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TBuP6-0007oc-Qy for submit@debbugs.gnu.org; Wed, 12 Sep 2012 17:23:25 -0400 Received: from mail-lb0-f172.google.com ([209.85.217.172]:44211) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TBuP1-0007oR-4J for 10474@debbugs.gnu.org; Wed, 12 Sep 2012 17:23:21 -0400 Received: by lbky2 with SMTP id y2so1571988lbk.3 for <10474@debbugs.gnu.org>; Wed, 12 Sep 2012 14:22:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:x-enigmail-version:content-type :content-transfer-encoding; bh=Tyk9L2BNbraXyHXXzZ3+IpYQ25uM8wj95Z/rijpj5Vk=; b=t4D+j82kdZ79RMLOWQ2EolIR43LelhSa2ENn4KsAo9xCA+mnpUmGHdjJ2rYNUz1wd4 s9JrjhCFhJ3AKRpWmQMpadzrZOywQyEbrrqf/4wUD+dw6vHAAoNFsZ8GhkTmmCIukYAB mXFWUa8vR6OBFB4XtOcp9Lyirqd+xXLDwxy/JuubdB6IxwzLrwl3gRlcKOIqt07CqduR dOU/66Fef/K4JKQ1izWpAjxBEPAGOHJ4D400azAkTHvCcnhNeDc1NEjpOBlwl3IRgGhg kPXL70upOiV4SAGwaRz14HrGx9wacV0jyI9AMtdsE0vQnr/J3LgKOQM6pbqbbHMjtYAI aqlQ== Received: by 10.112.101.33 with SMTP id fd1mr150826lbb.33.1347484950152; Wed, 12 Sep 2012 14:22:30 -0700 (PDT) Received: from [192.168.4.39] (broadband-95-84-200-156.nationalcablenetworks.ru. [95.84.200.156]) by mx.google.com with ESMTPS id b1sm5531114lbi.2.2012.09.12.14.22.27 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 12 Sep 2012 14:22:28 -0700 (PDT) Message-ID: <5050FD10.1040204@gmail.com> Date: Thu, 13 Sep 2012 01:22:24 +0400 From: LRN User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/18.0 Thunderbird/18.0a1 MIME-Version: 1.0 To: 10474@debbugs.gnu.org Subject: Re: bug#10474: Progress References: <87ty43dxua.fsf@pobox.com> <504F7212.6060509@gmail.com> <5050C016.9080609@netris.org> In-Reply-To: <5050C016.9080609@netris.org> X-Enigmail-Version: 1.5a1pre Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 10474 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.3 (--) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 12.09.2012 21:02, Mark H Weaver wrote: > On 09/11/2012 01:17 PM, LRN wrote: >> Any progress on this? I've tried 2.0.6, and it's still a mess. >> Compiled with a few hacks (disabled networking and posix, copied >> getpid definition to random.c), but it still fails with Throw to >> key system-error with args ("canonicalize-path" "~A" ("No such >> file or directory") (2))Aborting. during guile-procedures.texi >> generation > > Any progress on what? You haven't provided enough context for me > to know what problem you are referring to. > I've sent this message to 10474 at debbugs.gnu.org Which means that it's related to bug #10474 [1] on debbugs.gnu.org. By the way, your reply has the following subject line: "Re: bug#10474: Progress". Probably put there by the list master. [1] http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10474+ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (MingW32) Comment: Using GnuPG with Mozilla - http://www.enigmail.net/ iQEcBAEBAgAGBQJQUP0PAAoJEOs4Jb6SI2CwrZQIANOUEpz5gxpR4OgWDBLcBCVQ ylXa/4eCPI+loMMcUFO3lv01k8FwtrncexFScS3djSC5siWz7lgegxRzyhWImqZ9 aXxZpG2V3Zw7lLHKeJ4Y3qujOn9J4uoacKywulf1TDPayh6dlVvP/+MZHoPLJup/ kpeVJPKHdw0opYGH2XNVC4TGnDOAl3g1oRBkHAPpHO2jgF4WVS/2pWsAVYucikiK Hhdk3lupcR1Rk5uetOOrZASqZdm1g7Cu5atB8MigD+OjJL7ERHA9pZzrby+RedHh MiQWipA+4Ou5tvnnaYZET0mn+we4wO8+FkJHHe43LfHdrOvMCVAfqai/cF2+LRo= =SWgn -----END PGP SIGNATURE----- From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 18 13:11:53 2013 Received: (at 10474) by debbugs.gnu.org; 18 Feb 2013 18:11:53 +0000 Received: from localhost ([127.0.0.1]:35001 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7VBu-0000r0-2k for submit@debbugs.gnu.org; Mon, 18 Feb 2013 13:11:51 -0500 Received: from a-pb-sasl-quonix.pobox.com ([208.72.237.25]:61813 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7VBq-0000qq-JQ for 10474@debbugs.gnu.org; Mon, 18 Feb 2013 13:11:48 -0500 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id E5CA3C623; Mon, 18 Feb 2013 13:10:44 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=2U+j8+Ja32bo2gfMfc3iIrjlDHI=; b=JKqD1G uFnABNYK+Lws3iblH/4iHXxqDEUZUCPlsHasZJWKXqevMWL9sCuGR7MuxkQYnk3Q 7noXoJaypSYWwwxcDKiy7jXcM/IrwjWMueqYagwtJ6kT5SfLIsxhmUigw+focvzv DpYzOClBbh9gOhDneNMChwoHH+kgjHI6Mmugc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=ChbbRm2M0114CnF2/ymyArNhoMFdk8TQ KSugfyPjUhYj1k4YwUatHXLUCDdqBGrEA28MxoD9oXFdfHHBi8292FLq3Nxo9DTV COe5LtPxfhmQ0tZucMLISGkkPItR4SoY7CSd9IH/ml6nP2kP1qL/rvS1PRdc9Vb1 XYaxFx2FtGc= Received: from a-pb-sasl-quonix.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id DE424C622; Mon, 18 Feb 2013 13:10:44 -0500 (EST) Received: from badger (unknown [88.160.190.192]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id 51435C621; Mon, 18 Feb 2013 13:10:44 -0500 (EST) From: Andy Wingo To: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> Date: Mon, 18 Feb 2013 19:10:41 +0100 In-Reply-To: <83ehudp29y.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 02 Feb 2012 19:34:49 +0200") Message-ID: <87wqu58pcu.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: 833312E2-79F6-11E2-8BFC-9A5B0E5B5709-02397024!a-pb-sasl-quonix.pobox.com X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 10474 Cc: ludo@gnu.org, 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.4 (--) Hi Eli, I'm terribly sorry for the delay here. I realize you've probably paged out all of these patches from memory, but I would like to pick up the loose ends. On Thu 02 Feb 2012 18:34, Eli Zaretskii writes: > . lib/canonicalize-lgpl.c -- does not support Windows absolute file > names. Will be fixed in gnulib. I see you got this into gnulib in November (http://lists.gnu.org/archive/html/bug-gnulib/2012-11/msg00090.html). I just updated our Gnulib so we have it now. Thanks! > . libguile/dynl.c -- lacks setenv. Gnulib's setenv should be used. This change was made in Guile on 25 January 2012. > . libguile/expand.c -- Defines CONST and VOID. Should define > SCM_CONST and SCM_VOID (or some other, less > ubiquitous, symbols) instead. Fixed in Guile on July 6 2012. > . libguile/fports.c -- Doesn't implement fport_input_waiting when > neither poll nor select nor FIONREAD are > available, without which interactive guile > won't start. Should use the gnulib select > module. Just added the module; thanks. > . libguile/socket.c -- Lacks implementation of `times' for > MS-Windows, without which guile.exe aborts > during startup. Should use the gnulib times > module. Added; thanks. I'll deal with the patches in a separate mail. Cheers, Andy -- http://wingolog.org/ From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 18 14:57:47 2013 Received: (at 10474) by debbugs.gnu.org; 18 Feb 2013 19:57:47 +0000 Received: from localhost ([127.0.0.1]:35180 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7WqQ-0005GQ-OU for submit@debbugs.gnu.org; Mon, 18 Feb 2013 14:57:47 -0500 Received: from mtaout23.012.net.il ([80.179.55.175]:62392) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7WqN-0005GE-Qj for 10474@debbugs.gnu.org; Mon, 18 Feb 2013 14:57:45 -0500 Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0MIF00H00LYJAQ00@a-mtaout23.012.net.il> for 10474@debbugs.gnu.org; Mon, 18 Feb 2013 21:56:27 +0200 (IST) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MIF00HKNM225F80@a-mtaout23.012.net.il>; Mon, 18 Feb 2013 21:56:27 +0200 (IST) Date: Mon, 18 Feb 2013 21:56:35 +0200 From: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys In-reply-to: <87wqu58pcu.fsf@pobox.com> X-012-Sender: halo1@inter.net.il To: Andy Wingo Message-id: <83vc9ppf9o.fsf@gnu.org> References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> <87wqu58pcu.fsf@pobox.com> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 10474 Cc: ludo@gnu.org, 10474@debbugs.gnu.org, commander.sirow@googlemail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Andy Wingo > Cc: ludo@gnu.org, 10474@debbugs.gnu.org, commander.sirow@googlemail.com > Date: Mon, 18 Feb 2013 19:10:41 +0100 > > I'm terribly sorry for the delay here. I realize you've probably paged > out all of these patches from memory, but I would like to pick up the > loose ends. Thanks. > On Thu 02 Feb 2012 18:34, Eli Zaretskii writes: > > > . lib/canonicalize-lgpl.c -- does not support Windows absolute file > > names. Will be fixed in gnulib. > > I see you got this into gnulib in November > (http://lists.gnu.org/archive/html/bug-gnulib/2012-11/msg00090.html). > I just updated our Gnulib so we have it now. Thanks! > > > . libguile/dynl.c -- lacks setenv. Gnulib's setenv should be used. > > This change was made in Guile on 25 January 2012. > > > . libguile/expand.c -- Defines CONST and VOID. Should define > > SCM_CONST and SCM_VOID (or some other, less > > ubiquitous, symbols) instead. > > Fixed in Guile on July 6 2012. > > > . libguile/fports.c -- Doesn't implement fport_input_waiting when > > neither poll nor select nor FIONREAD are > > available, without which interactive guile > > won't start. Should use the gnulib select > > module. > > Just added the module; thanks. > > > . libguile/socket.c -- Lacks implementation of `times' for > > MS-Windows, without which guile.exe aborts > > during startup. Should use the gnulib times > > module. > > Added; thanks. Thanks again. Glad Guile is now more friendly to MinGW. From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 19 05:45:48 2013 Received: (at 10474) by debbugs.gnu.org; 19 Feb 2013 10:45:48 +0000 Received: from localhost ([127.0.0.1]:36070 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7khn-0005DP-Jo for submit@debbugs.gnu.org; Tue, 19 Feb 2013 05:45:48 -0500 Received: from a-pb-sasl-quonix.pobox.com ([208.72.237.25]:52018 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7khk-0005DG-DB for 10474@debbugs.gnu.org; Tue, 19 Feb 2013 05:45:46 -0500 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 327C0A1EF; Tue, 19 Feb 2013 05:44:39 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=6Czwtra/gMJj0h/GZtoRvyPWWog=; b=Llty5Y 39ESi+XG0wt04/gGCj6LrOeXHu03BC5spuuIfsRPpeXVZmBZBLqdgfF5oO46hAYJ nNm84HQ846nVUp9NuJZJhsdMnpOfJzmube8tV3UC/JWk5SQbB3FNSMS6GbvGUCq4 rXQl6WsEHq0Y31Yntet8NtIsIUCdDb6J5Z/ow= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=jDIwXJoIYMcxEy35NYJDuyZh+cXJrCzk FOjOZthzLZNxzJ1AfTx4FxETO3uHTwx7rlGjOhRq1b5Mil0ucqR5ZP7XrME23SN9 nz7wqBGSwcBDjXKthD6yDm8SFMZXqEkJ4XGMscuWxqj9NhFfOkMwfJvlOUAYjhdu FPgRzXzeeEw= Received: from a-pb-sasl-quonix.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 2B385A1EE; Tue, 19 Feb 2013 05:44:39 -0500 (EST) Received: from badger (unknown [88.160.190.192]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id 5B404A1EA; Tue, 19 Feb 2013 05:44:38 -0500 (EST) From: Andy Wingo To: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> Date: Tue, 19 Feb 2013 11:44:35 +0100 In-Reply-To: <83ehudp29y.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 02 Feb 2012 19:34:49 +0200") Message-ID: <87sj4s7fcc.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Pobox-Relay-ID: 5BDB1150-7A81-11E2-97D6-BB980E5B5709-02397024!a-pb-sasl-quonix.pobox.com X-Spam-Score: -2.4 (--) X-Debbugs-Envelope-To: 10474 Cc: ludo@gnu.org, 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.4 (--) --=-=-= Content-Type: text/plain On Thu 02 Feb 2012 18:34, Eli Zaretskii writes: > . module/ice-9/boot-9.scm -- absolute-path? does not support Windows > file names with drive letters. Windows > absolute file names match the regex > "\([a-zA-Z]:\)?[\\/]". I don't know > Scheme well enough to write this in a > clean way, sorry... Ludo, what do you think about the attached patch? Eli, is it correct and sufficient to fix path handling? Andy --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-better-handling-of-windows-path-conventions.patch >From 965bda2befddb84101cfebb8a4a36f93ac3c248c Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 19 Feb 2013 11:41:44 +0100 Subject: [PATCH] better handling of windows path conventions * libguile/filesys.c (scm_system_path_convention): New function. Exported to Scheme only. * module/ice-9/boot-9.scm (path-separator?, absolute-path?): New predicates. (path-separator-string): New global variable. (in-vicinity): Use the new procedures. (load-user-init, try-module-autoload): Use path-separator-string. (load-in-vicinity): Update canonical->suffix. A Racket-style `reroot-path' would be nice. * module/ice-9/psyntax.scm (include): Use global `absolute-path?'. --- libguile/filesys.c | 20 ++++++++++- module/ice-9/boot-9.scm | 90 +++++++++++++++++++++++++++++++++++++++------- module/ice-9/psyntax.scm | 3 -- 3 files changed, 96 insertions(+), 17 deletions(-) diff --git a/libguile/filesys.c b/libguile/filesys.c index 9c39307..d48a655 100644 --- a/libguile/filesys.c +++ b/libguile/filesys.c @@ -1,5 +1,5 @@ /* Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2006, - * 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + * 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -1434,6 +1434,24 @@ SCM_DEFINE (scm_mkstemp, "mkstemp!", 1, 0, 0, SCM scm_dot_string; +#ifdef __MINGW32__ +SCM_SYMBOL (sym_path_convention, "windows"); +#else +SCM_SYMBOL (sym_path_convention, "posix"); +#endif + +SCM_INTERNAL SCM scm_system_path_convention (void); + +SCM_DEFINE (scm_system_path_convention, "system-path-convention", 0, 0, 0, + (void), + "Return either @code{posix} or @code{windows}, depending on\n" + "what kind of system this Guile is running on.") +#define FUNC_NAME s_scm_system_path_convention +{ + return sym_path_convention; +} +#undef FUNC_NAME + SCM_DEFINE (scm_dirname, "dirname", 1, 0, 0, (SCM filename), "Return the directory name component of the file name\n" diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm index 31d4523..18178b5 100644 --- a/module/ice-9/boot-9.scm +++ b/module/ice-9/boot-9.scm @@ -296,6 +296,12 @@ If there is no handler at all, Guile prints an error and then exits." (apply f (car l1) (map car rest)) (lp (cdr l1) (map cdr rest)))))))) +;; Temporary definition used in the include-from-path expansion; +;; replaced later. + +(define (absolute-path? path) + #t) + ;;; {and-map and or-map} ;;; ;;; (and-map fn lst) is like (and (fn (car lst)) (fn (cadr lst)) (fn...) ...) @@ -1411,16 +1417,70 @@ VALUE." ;;; {Load Paths} ;;; +(let-syntax ((compile-time-case + (lambda (stx) + (syntax-case stx () + ((_ exp clauses ...) + (let ((val (primitive-eval (syntax->datum #'exp)))) + (let next-clause ((clauses #'(clauses ...))) + (syntax-case clauses (else) + (() + (syntax-violation 'compile-time-case + "all clauses failed to match" stx)) + (((else form ...)) + #'(begin form ...)) + ((((k ...) form ...) clauses ...) + (if (memv val (syntax->datum #'(k ...))) + #'(begin form ...) + (next-clause #'(clauses ...)))))))))))) + ;; emacs: (put 'compile-time-case 'scheme-indent-function 1) + (compile-time-case (system-path-convention) + ((posix) + (define (path-separator? c) + (char=? c #\/)) + + (define path-separator-string "/") + + (define (absolute-path? path) + (string-prefix? "/" path))) + + ((windows) + (define (path-separator? c) + (or (char=? c #\/) + (char=? c #\\))) + + (define path-separator-string "\\") + + (define (absolute-path? path) + (define (unc-path?) + ;; Universal Naming Convention (UNC) paths start with \\, and + ;; are always absolute. + (string-prefix? "\\\\" path)) + (define (has-drive-specifier?) + (and (>= (string-length path) 2) + (let ((drive (string-ref path 0))) + (or (char<=? #\a drive #\z) + (char<=? #\A drive #\Z))) + (eqv? (string-ref path 1) #\:))) + (define (path-separator-at-index? idx) + (and (> (string-length path) idx) + (case (string-ref path idx) + ((#\\ #\/) #t) + (else #f)))) + (or (unc-path?) + (if (has-drive-specifier?) + (path-separator-at-index? 2) + (path-separator-at-index? 0))))))) + (define (in-vicinity vicinity file) (let ((tail (let ((len (string-length vicinity))) (if (zero? len) #f (string-ref vicinity (- len 1)))))) (string-append vicinity - (if (or (not tail) - (eq? tail #\/)) + (if (or (not tail) (path-separator? tail)) "" - "/") + path-separator-string) file))) @@ -1440,7 +1500,7 @@ VALUE." (define (load-user-init) (let* ((home (or (getenv "HOME") (false-if-exception (passwd:dir (getpwuid (getuid)))) - "/")) ;; fallback for cygwin etc. + path-separator-string)) ;; fallback for cygwin etc. (init-file (in-vicinity home ".guile"))) (if (file-exists? init-file) (primitive-load init-file)))) @@ -2777,7 +2837,8 @@ but it fails to load." (dir-hint-module-name (reverse (cdr reverse-name))) (dir-hint (apply string-append (map (lambda (elt) - (string-append (symbol->string elt) "/")) + (string-append (symbol->string elt) + path-separator-string)) dir-hint-module-name)))) (resolve-module dir-hint-module-name #f) (and (not (autoload-done-or-in-progress? dir-hint name)) @@ -3635,11 +3696,17 @@ reading PATH with READER." (define (canonical->suffix canon) (cond - ((string-prefix? "/" canon) canon) - ((and (> (string-length canon) 2) - (eqv? (string-ref canon 1) #\:)) - ;; Paths like C:... transform to /C... - (string-append "/" (substring canon 0 1) (substring canon 2))) + ((and (not (string-null? canon)) + (path-separator? (string-ref canon 0))) + canon) + ((and (eq? (system-path-convention) 'windows) + (absolute-path? canon)) + ;; An absolute path that doesn't start with a path separator starts with a + ;; drive component. Transform the drive component to a path element: + ;; c:\foo -> \c\foo. + (string-append path-separator-string + (substring canon 0 1) + (substring canon 2))) (else canon))) (define compiled-extension @@ -3723,9 +3790,6 @@ reading PATH with READER." (warn-about-exception k args) #f))) - (define (absolute-path? path) - (string-prefix? "/" path)) - (define (sans-extension file) (let ((dot (string-rindex file #\.))) (if dot diff --git a/module/ice-9/psyntax.scm b/module/ice-9/psyntax.scm index 565c911..2e71aab 100644 --- a/module/ice-9/psyntax.scm +++ b/module/ice-9/psyntax.scm @@ -2929,9 +2929,6 @@ (define-syntax include (lambda (x) - (define (absolute-path? path) - (string-prefix? "/" path)) - (define read-file (lambda (fn dir k) (let ((p (open-input-file -- 1.7.10.4 --=-=-= Content-Type: text/plain -- http://wingolog.org/ --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 19 07:56:47 2013 Received: (at 10474) by debbugs.gnu.org; 19 Feb 2013 12:56:47 +0000 Received: from localhost ([127.0.0.1]:36137 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7mkZ-0001Ux-04 for submit@debbugs.gnu.org; Tue, 19 Feb 2013 07:56:47 -0500 Received: from xanadu.aquilenet.fr ([88.191.123.111]:52042) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7mkW-0001Uo-1I for 10474@debbugs.gnu.org; Tue, 19 Feb 2013 07:56:46 -0500 Received: from localhost (localhost [127.0.0.1]) by xanadu.aquilenet.fr (Postfix) with ESMTP id 21FB8BFAA; Tue, 19 Feb 2013 13:55:38 +0100 (CET) Received: from xanadu.aquilenet.fr ([127.0.0.1]) by localhost (xanadu.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZAUv8SNjqAWZ; Tue, 19 Feb 2013 13:55:38 +0100 (CET) Received: from pluto (unknown [193.50.110.200]) by xanadu.aquilenet.fr (Postfix) with ESMTPSA id CA4C8986F; Tue, 19 Feb 2013 13:55:37 +0100 (CET) From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) To: Andy Wingo Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> <87sj4s7fcc.fsf@pobox.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 1 =?utf-8?Q?Vent=C3=B4se?= an 221 de la =?utf-8?Q?R?= =?utf-8?Q?=C3=A9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu Date: Tue, 19 Feb 2013 13:55:36 +0100 In-Reply-To: <87sj4s7fcc.fsf@pobox.com> (Andy Wingo's message of "Tue, 19 Feb 2013 11:44:35 +0100") Message-ID: <87liak4g53.fsf@gnu.org> User-Agent: Gnus/5.130005 (Ma Gnus v0.5) Emacs/24.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.5 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Andy Wingo skribis: > +(let-syntax ((compile-time-case > + (lambda (stx) > + (syntax-case stx () > + ((_ exp clauses ...) > + (let ((val (primitive-eval (syntax->datum #'exp)))) > + (let next-clause ((clauses #'(clauses ...))) > + (syntax-case clauses (else) > + (() > + (syntax-violation 'compile-time-case > + "all clauses failed to match" stx)) > + (((else form ...)) > + #'(begin form ...)) > + ((((k ...) form ...) clauses ...) > + (if (memv val (syntax->datum #'(k ...))) > + #'(begin form ...) > + (next-clause #'(clauses ...)))))))))))) > + ; ; emacs: (put 'compile-time-case 'scheme-indent-function 1) > + (compile-time-case (system-path-convention) > + ((posix) > + (define (path-separator? c) > + (char=? c #\/)) > + > + (define path-separator-string "/") > + > + (define (absolute-path? path) > + (string-prefix? "/" path))) [...] Content analysis details: (1.5 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.7 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.8 BAYES_50 BODY: Bayes spam probability is 40 to 60% [score: 0.4333] X-Debbugs-Envelope-To: 10474 Cc: Eli Zaretskii , 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: 0.7 (/) Andy Wingo skribis: > +(let-syntax ((compile-time-case > + (lambda (stx) > + (syntax-case stx () > + ((_ exp clauses ...) > + (let ((val (primitive-eval (syntax->datum #'exp)))) > + (let next-clause ((clauses #'(clauses ...))) > + (syntax-case clauses (else) > + (() > + (syntax-violation 'compile-time-case > + "all clauses failed to match= " stx)) > + (((else form ...)) > + #'(begin form ...)) > + ((((k ...) form ...) clauses ...) > + (if (memv val (syntax->datum #'(k ...))) > + #'(begin form ...) > + (next-clause #'(clauses ...)))))))))))) > + ;; emacs: (put 'compile-time-case 'scheme-indent-function 1) > + (compile-time-case (system-path-convention) > + ((posix) > + (define (path-separator? c) > + (char=3D? c #\/)) > + > + (define path-separator-string "/") > + > + (define (absolute-path? path) > + (string-prefix? "/" path))) I think we must stick to GNU conventions=E2=80=93i.e., write =E2=80=9Cfile = name=E2=80=9D when speaking of the name of a file, as above, and =E2=80=9Cpath=E2=80=9D when s= peaking of a search path. This is important here because sooner or later someone will ask about =E2=80=9Cpath separators=E2=80=9D (semicolon vs. colon), not to be confused= with file name or directory separators. WDYT? (Yes, there are counter-examples in Guile code, but that=E2=80=99s no excus= e. ;-)) > + ((windows) > + (define (path-separator? c) > + (or (char=3D? c #\/) > + (char=3D? c #\\))) > + > + (define path-separator-string "\\") > + > + (define (absolute-path? path) > + (define (unc-path?) > + ;; Universal Naming Convention (UNC) paths start with \\, and > + ;; are always absolute. > + (string-prefix? "\\\\" path)) What about adding here a link to a page that describes =E2=80=9CUNC=E2=80= =9D? Otherwise, looks good to me, and it=E2=80=99s great that progress is made on that front! Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 19 08:41:07 2013 Received: (at 10474) by debbugs.gnu.org; 19 Feb 2013 13:41:07 +0000 Received: from localhost ([127.0.0.1]:36209 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7nRT-0002YP-5p for submit@debbugs.gnu.org; Tue, 19 Feb 2013 08:41:07 -0500 Received: from a-pb-sasl-quonix.pobox.com ([208.72.237.25]:61737 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7nRQ-0002YH-Ma for 10474@debbugs.gnu.org; Tue, 19 Feb 2013 08:41:05 -0500 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 66A70AE92; Tue, 19 Feb 2013 08:39:58 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; s=sasl; bh=G+LIMS/Lf9T3 T62XdB1nZsaH0oc=; b=NIWv0g632IdJy5nca3QUwia5VtOP7kS+3G95lAlYz49D BQiXImUiq/+iuXok8ES3eiCKR9xW60+O9hSidSjGJ4OwYAxRkKLJJxuFrqyhL9sW X2t3JuGo+WNUTZZ4wXAArrjozstEipvWc/Hx4qMnsPUs4Er+PCuVvJz/9ioT5SE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; q=dns; s=sasl; b=RAM60z By+8JU1XdFqgaP+8QtZhdhq5IidIjgHBUHqNQbFrYBcMxQOfIeaKe7hxvZP9Z4cU ZJVTooL9pQ3vKyTLg420pA5RYRBd7baWKNx1/AVKEiSE6f9nFyB4Hd1CwqeITr7R T39fRvyOiuSzL+Pc8fJckgkCNBP9sns65VH90= Received: from a-pb-sasl-quonix.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 5F57BAE91; Tue, 19 Feb 2013 08:39:58 -0500 (EST) Received: from badger (unknown [88.160.190.192]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id ABBE0AE90; Tue, 19 Feb 2013 08:39:57 -0500 (EST) From: Andy Wingo To: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> <87sj4s7fcc.fsf@pobox.com> <87liak4g53.fsf@gnu.org> Date: Tue, 19 Feb 2013 14:39:54 +0100 In-Reply-To: <87liak4g53.fsf@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Tue, 19 Feb 2013 13:55:36 +0100") Message-ID: <874nh85snp.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Pobox-Relay-ID: D9E1FFE2-7A99-11E2-897B-BB980E5B5709-02397024!a-pb-sasl-quonix.pobox.com X-Spam-Score: -1.1 (-) X-Debbugs-Envelope-To: 10474 Cc: Eli Zaretskii , 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.5 (--) Hi, On Tue 19 Feb 2013 13:55, ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Andy Wingo skribis: > >> + (compile-time-case (system-path-convention) >> + ((posix) >> + (define (path-separator? c) >> + (char=3D? c #\/)) >> + >> + (define path-separator-string "/") >> + >> + (define (absolute-path? path) >> + (string-prefix? "/" path))) > > I think we must stick to GNU conventions=E2=80=93i.e., write =E2=80=9Cfil= e name=E2=80=9D when > speaking of the name of a file, as above, and =E2=80=9Cpath=E2=80=9D when= speaking of a > search path. > > This is important here because sooner or later someone will ask about > =E2=80=9Cpath separators=E2=80=9D (semicolon vs. colon), not to be confus= ed with file > name or directory separators. > > WDYT? I'm fine with this. I'll go for these names, and let someone else fix it up if they care enough: system-file-name-convention file-name-separator? file-name-separator-string absolute-file-name? > What about adding here a link to a page that describes =E2=80=9CUNC=E2=80= =9D? http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=3Dvs.85)= .aspx#fully_qualified_vs._relative_paths is the link; will include it. Thanks, Andy --=20 http://wingolog.org/ From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 19 10:48:14 2013 Received: (at 10474) by debbugs.gnu.org; 19 Feb 2013 15:48:14 +0000 Received: from localhost ([127.0.0.1]:37041 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7pQU-000675-Bh for submit@debbugs.gnu.org; Tue, 19 Feb 2013 10:48:14 -0500 Received: from a-pb-sasl-quonix.pobox.com ([208.72.237.25]:49260 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7pQS-00066x-Fn for 10474@debbugs.gnu.org; Tue, 19 Feb 2013 10:48:13 -0500 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 155A09B0C; Tue, 19 Feb 2013 10:47:06 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=xztCjxn4QbilNzv+YcoQTgynzk4=; b=c/bjAU HbyQxwAnG5rLp0T759ZNaABJ9UNPts0pflH4VwQkDvgOeBMRhLBeRIVZ0ws4COhv Rr9NMGcvInaowzH/PE7PTzDVA8+Mc7KIrBXmg0sRe5Hw9kCCrPANZCvDvGp+m2rm 20+KvYLci+b4Jm1s1vtVJq5UN1mDZAK7tIzQU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=kZysupJ4/z6y9VFiBH6sLr/qA9hI++go LVI3EphuNsOT6eL2QQh0428n1uLSE1wiR6c77NepPmWdjIjsGYLNyfG8ESyLXraD +O/fKVv/32D5OrTVge+0ZMli0pmvXSgetOqZCwAqtNUhWE0awrUS/Fy6/dO4LjRp QQnA15XObiA= Received: from a-pb-sasl-quonix.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 0B0359B0B; Tue, 19 Feb 2013 10:47:06 -0500 (EST) Received: from badger (unknown [88.160.190.192]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id 65C8C9B0A; Tue, 19 Feb 2013 10:47:05 -0500 (EST) From: Andy Wingo To: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> Date: Tue, 19 Feb 2013 16:47:02 +0100 In-Reply-To: <83ehudp29y.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 02 Feb 2012 19:34:49 +0200") Message-ID: <87fw0s2tmx.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: 9C56F4A4-7AAB-11E2-93DC-BB980E5B5709-02397024!a-pb-sasl-quonix.pobox.com X-Spam-Score: -2.5 (--) X-Debbugs-Envelope-To: 10474 Cc: ludo@gnu.org, 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.5 (--) Hi Eli, On Thu 02 Feb 2012 18:34, Eli Zaretskii writes: > . module/ice-9/boot-9.scm -- absolute-path? does not support Windows > file names with drive letters. Windows > absolute file names match the regex > "\([a-zA-Z]:\)?[\\/]". I don't know > Scheme well enough to write this in a > clean way, sorry... I pushed a fix that recognizes drive components and UNC file names as absolute, and that attempts to allow for (and prefer) backslash as a file name separator on Windows systems. > Fix startup of guile.exe on MS-Windows. > > * module/system/base/compile.scm (call-with-output-file/atomic): > Call close-port before deleting the temporary file name, otherwise > deletion fails on MS-Windows (cannot delete a file that is still > open). Applied, thanks. > * libguile/load.c (scm_init_load_path) [__MINGW32__]: Convert > backslashes to forward slashes in values of GUILE_LOAD_PATH and > GUILE_LOAD_COMPILED_PATH. Is this necessary now that backslash is recognized as a file name separator? I did not apply this part yet. Still working on the rest. Thanks, Andy -- http://wingolog.org/ From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 19 12:55:25 2013 Received: (at 10474) by debbugs.gnu.org; 19 Feb 2013 17:55:25 +0000 Received: from localhost ([127.0.0.1]:37267 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7rPZ-0000pE-05 for submit@debbugs.gnu.org; Tue, 19 Feb 2013 12:55:25 -0500 Received: from mtaout21.012.net.il ([80.179.55.169]:57105) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7rPW-0000p5-Ex for 10474@debbugs.gnu.org; Tue, 19 Feb 2013 12:55:23 -0500 Received: from conversion-daemon.a-mtaout21.012.net.il by a-mtaout21.012.net.il (HyperSendmail v2007.08) id <0MIH00300A8KDH00@a-mtaout21.012.net.il> for 10474@debbugs.gnu.org; Tue, 19 Feb 2013 19:53:48 +0200 (IST) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout21.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MIH0037XB1MC660@a-mtaout21.012.net.il>; Tue, 19 Feb 2013 19:53:46 +0200 (IST) Date: Tue, 19 Feb 2013 19:53:57 +0200 From: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys In-reply-to: <87sj4s7fcc.fsf@pobox.com> X-012-Sender: halo1@inter.net.il To: Andy Wingo Message-id: <83bobgp4ui.fsf@gnu.org> References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> <87sj4s7fcc.fsf@pobox.com> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 10474 Cc: ludo@gnu.org, 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Andy Wingo > Cc: ludo@gnu.org, 10474@debbugs.gnu.org > Date: Tue, 19 Feb 2013 11:44:35 +0100 > > > . module/ice-9/boot-9.scm -- absolute-path? does not support Windows > > file names with drive letters. Windows > > absolute file names match the regex > > "\([a-zA-Z]:\)?[\\/]". I don't know > > Scheme well enough to write this in a > > clean way, sorry... > > Ludo, what do you think about the attached patch? Eli, is it correct > and sufficient to fix path handling? Yes, I think so. I have a couple of comments, though: > + (define (unc-path?) > + ;; Universal Naming Convention (UNC) paths start with \\, and > + ;; are always absolute. > + (string-prefix? "\\\\" path)) A UNC file name can also begin with 2 slashes, as in "//foo/bar/". In general, Windows system calls treat both kinds of slashes identically. > (define (canonical->suffix canon) > (cond > - ((string-prefix? "/" canon) canon) > - ((and (> (string-length canon) 2) > - (eqv? (string-ref canon 1) #\:)) > - ;; Paths like C:... transform to /C... > - (string-append "/" (substring canon 0 1) (substring canon 2))) > + ((and (not (string-null? canon)) > + (path-separator? (string-ref canon 0))) > + canon) > + ((and (eq? (system-path-convention) 'windows) > + (absolute-path? canon)) > + ;; An absolute path that doesn't start with a path separator starts with a > + ;; drive component. Transform the drive component to a path element: > + ;; c:\foo -> \c\foo. Why is this transformation needed? Native Windows system calls will not understand "/c/foo" syntax. What is this about? (I know it was in the original code, but I didn't understand it then, either.) From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 19 13:01:19 2013 Received: (at 10474) by debbugs.gnu.org; 19 Feb 2013 18:01:19 +0000 Received: from localhost ([127.0.0.1]:37283 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7rVH-0000ya-As for submit@debbugs.gnu.org; Tue, 19 Feb 2013 13:01:19 -0500 Received: from mtaout20.012.net.il ([80.179.55.166]:64257) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7rVE-0000yO-NJ for 10474@debbugs.gnu.org; Tue, 19 Feb 2013 13:01:17 -0500 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0MIH00600BC3HU00@a-mtaout20.012.net.il> for 10474@debbugs.gnu.org; Tue, 19 Feb 2013 20:00:08 +0200 (IST) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MIH006OCBC8CW30@a-mtaout20.012.net.il>; Tue, 19 Feb 2013 20:00:08 +0200 (IST) Date: Tue, 19 Feb 2013 20:00:19 +0200 From: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys In-reply-to: <87fw0s2tmx.fsf@pobox.com> X-012-Sender: halo1@inter.net.il To: Andy Wingo Message-id: <83a9r0p4jw.fsf@gnu.org> References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> <87fw0s2tmx.fsf@pobox.com> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 10474 Cc: ludo@gnu.org, 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Andy Wingo > Cc: ludo@gnu.org, 10474@debbugs.gnu.org, > Date: Tue, 19 Feb 2013 16:47:02 +0100 > > Hi Eli, > > On Thu 02 Feb 2012 18:34, Eli Zaretskii writes: > > > . module/ice-9/boot-9.scm -- absolute-path? does not support Windows > > file names with drive letters. Windows > > absolute file names match the regex > > "\([a-zA-Z]:\)?[\\/]". I don't know > > Scheme well enough to write this in a > > clean way, sorry... > > I pushed a fix that recognizes drive components and UNC file names as > absolute, and that attempts to allow for (and prefer) backslash as a > file name separator on Windows systems. Thanks. > > * libguile/load.c (scm_init_load_path) [__MINGW32__]: Convert > > backslashes to forward slashes in values of GUILE_LOAD_PATH and > > GUILE_LOAD_COMPILED_PATH. > > Is this necessary now that backslash is recognized as a file name > separator? Possibly. But are you sure there's no more references to '/' alone in C code (as opposed to in Scheme)? > Still working on the rest. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 19 16:40:37 2013 Received: (at 10474) by debbugs.gnu.org; 19 Feb 2013 21:40:37 +0000 Received: from localhost ([127.0.0.1]:37472 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7uvU-00086Q-60 for submit@debbugs.gnu.org; Tue, 19 Feb 2013 16:40:37 -0500 Received: from a-pb-sasl-quonix.pobox.com ([208.72.237.25]:62971 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7uv7-00085s-4P for 10474@debbugs.gnu.org; Tue, 19 Feb 2013 16:40:29 -0500 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 53BF7CE7D; Tue, 19 Feb 2013 16:39:05 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=/+O7e1/ny1BI+pqSztzr+yWtgYU=; b=aawbGQ vGfArPw0m5KD64cO4ZDrCZUUiFFUkhMkJV492QSoGR7n8rGWT6hKbPY8cAXxMLWS 2m2N3+TErJ0OKrg/IuiN8jO4/IhGpJy1A7Qw+w0S38FS6JXnNfg937vnZpz6Tq7r 22LOgbUHFHUL5Ph0/DC2etHHwHhMOKlluTfcE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=UEfnzXRTqrwNL2nuZKortwUJEK+tFDKE qmxrX3vhBa3mmqlV/veSHIpyeK3IhW6z8/owgbmg3MtqN3sy4QG1Gv7TaieZW5Ny pYm5qmsgA58alSIP+FV+NleqH0vofQI33lJTV+B+mFbzpGbVrS22d1dnScJQGJIh l0upNmgQ8FA= Received: from a-pb-sasl-quonix.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 45D1FCE7B; Tue, 19 Feb 2013 16:39:05 -0500 (EST) Received: from badger (unknown [88.160.190.192]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id 9797ECE7A; Tue, 19 Feb 2013 16:39:04 -0500 (EST) From: Andy Wingo To: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> Date: Tue, 19 Feb 2013 22:39:01 +0100 In-Reply-To: <83ehudp29y.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 02 Feb 2012 19:34:49 +0200") Message-ID: <87y5ekx9u2.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: C85D50A8-7ADC-11E2-9EC5-BB980E5B5709-02397024!a-pb-sasl-quonix.pobox.com X-Spam-Score: -2.5 (--) X-Debbugs-Envelope-To: 10474 Cc: ludo@gnu.org, 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.5 (--) Hi Eli, Sorry for the large number of mails. You sent this patch: On Thu 02 Feb 2012 18:34, Eli Zaretskii writes: > Avoid compiler warnings on MS-Windows. > > * libguile/print.c (display_string_using_iconv): Cast 2nd arg of > `iconv' to `const char **', to avoid compiler warnings. > > * libguile/ports.c (get_iconv_codepoint): Cast 2nd arg of `iconv' > to `const char **', to avoid compiler warnings. > > > --- libguile/print.c~0 2011-10-08 01:49:48.000000000 +0200 > +++ libguile/print.c 2012-01-15 15:10:51.450848400 +0200 > @@ -899,7 +899,7 @@ display_string_using_iconv (const void * > output = encoded_output; > output_left = sizeof (encoded_output); > > - done = iconv (pt->output_cd, &input, &input_left, > + done = iconv (pt->output_cd, (const char **)&input, &input_left, > &output, &output_left); > > output_len = sizeof (encoded_output) - output_left; > > > --- libguile/ports.c~0 2011-10-08 01:49:48.000000000 +0200 > +++ libguile/ports.c 2012-01-15 15:11:11.856706600 +0200 > @@ -1305,7 +1305,7 @@ get_iconv_codepoint (SCM port, scm_t_wch > input_left = bytes_consumed + 1; > output_left = sizeof (utf8_buf); > > - done = iconv (pt->input_cd, &input, &input_left, > + done = iconv (pt->input_cd, (const char **)&input, &input_left, > &output, &output_left); > if (done == (size_t) -1) > { > However iconv is specified (http://pubs.opengroup.org/onlinepubs/009695399/functions/iconv.html) to take a char** as the first argument. Don't we end up using a GNU iconv on mingw32 anyway? > * libguile/deprecation.c (vsnprintf) [__MINGW32__]: Don't redefine > if already defined. Avoids compiler warnings. > > --- libguile/deprecation.c~0 2011-07-07 02:49:59.000000000 +0300 > +++ libguile/deprecation.c 2012-01-15 14:48:55.966092400 +0200 > @@ -36,7 +36,7 @@ > > > /* Windows defines. */ > -#ifdef __MINGW32__ > +#if defined (__MINGW32__) && !defined (vsnprintf) > #define vsnprintf _vsnprintf > #endif It seems that gnulib handles this already, and this block is no longer present in Guile source (since last January). > * libguile/filesys.c (mkdir) [__MINGW32__]: Don't redefine if > GNULIB_defined_rpl_mkdir is defined, meaning that the gnulib > replacement is being used. > (fchmod) [__MINGW32__]: Define to zero, to avoid gratuitous failures > of many file operations on MS-Windows. > > --- libguile/filesys.c~0 2011-10-08 01:49:48.000000000 +0200 > +++ libguile/filesys.c 2012-01-18 08:29:49.629722000 +0200 > @@ -116,11 +116,24 @@ > > /* Some more definitions for the native Windows port. */ > #ifdef __MINGW32__ > -# define mkdir(path, mode) mkdir (path) > +/* When configured to use the gnulib replacement, don't redefine > + mkdir, as it is already redirected to the replacement, see > + lib/sys/stat.h. */ > +# if !GNULIB_defined_rpl_mkdir > +# define mkdir(path, mode) mkdir (path) > +# endif > # define fsync(fd) _commit (fd) > -# define fchmod(fd, mode) (-1) > +# define fchmod(fd, mode) (0) > #endif /* __MINGW32__ */ Likewise, this block is no longer present in Guile; we depend on Gnulib for mkdir, and we have an explicit check for fchmod. > +#ifndef O_BINARY > +# ifdef _O_BINARY > +# define O_BINARY _O_BINARY > +# else > +# define O_BINARY 0 > +# endif > +#endif > + I assume this won't be needed for filesys.c, as it does not use O_BINARY (any more?). > Read and write *.go files and copy files in binary mode on > MS-Windows. > > * libguile/objcodes.c (O_BINARY): Define on all platforms. Gnulib's fcntl.h defines O_BINARY on all platforms already, so this should be fixed already. > (make_objcode_from_file): Zero out errno before calling full_read, > to make sure the value after the call reflects errors inside > full_read. This seems like a bug to me, that the behavior of full_read can depend on the incoming errno. I mailed bug-gnulib and put you on copy to see what they would say. > (scm_load_objcode): Open objcode files in binary mode, so that > *.go files are read verbatim on MS-Windows. Applied, thanks. > * libguile/mkstemp.c (O_BINARY): Define for all platforms. > (mkstemp): Open the temporary file in binary mode, so that > compiled *.go files are written verbatim on MS-Windows. Hummmmmmm. It's true that the only user of mkstemp in Guile is the compilation code. OTOH it's a public interface, and this change might affect someone. OTOH MinGW is not well-served currently and probably there are ~0 active users. Any other thoughts here? > * libguile/filesys.c (O_BINARY): Define for all platforms. > (scm_copy_file): Use O_BINARY in the call to open_or_open64. Applied, thanks. > Fix compilation warnings and errors on MS-Windows when > compiling network-related code due to missing macros and > prototypes. > > * libguile/net_db.c [HAVE_WINSOCK2_H]: Add !GNULIB_TEST_SOCKET to > the condition, to include sys/socket.h and netdb.h when gnulib's > socket module is being used. Fixes compiler warnings and errors > on MS-Windows. > > * libguile/socket.c: Likewise. > > > --- libguile/net_db.c~0 2011-07-07 02:49:59.000000000 +0300 > +++ libguile/net_db.c 2012-01-15 16:22:56.366898100 +0200 > @@ -49,8 +49,11 @@ > > #include > > -#ifdef HAVE_WINSOCK2_H > +#if HAVE_WINSOCK2_H && !GNULIB_TEST_SOCKET > #include > +# if HAVE_WS2TCPIP_H > +# include > +# endif > #else > #include > #include Surely we should just rely on Gnulib here and not include the winsock headers. In what condition would these headers be included otherwise? A visual studio build or something? Regards, Andy -- http://wingolog.org/ From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 19 16:45:53 2013 Received: (at 10474) by debbugs.gnu.org; 19 Feb 2013 21:45:53 +0000 Received: from localhost ([127.0.0.1]:37476 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7v0a-0008Dr-V0 for submit@debbugs.gnu.org; Tue, 19 Feb 2013 16:45:53 -0500 Received: from a-pb-sasl-quonix.pobox.com ([208.72.237.25]:45728 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U7v0Y-0008Dj-Ip for 10474@debbugs.gnu.org; Tue, 19 Feb 2013 16:45:51 -0500 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 18DFFCEE5; Tue, 19 Feb 2013 16:44:43 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=30H9LZHAUD7vWC6FHccPYf/FAq0=; b=Srfxdv Qb27ZN36NUQFstY2h/65nFuMyzsMiN4Jngpi2PvTtVzcVtIfjlYzTwBccffJC3L8 ql8byrr43uR7nFaM516YNpTbUAXGZPUaWS7TL+D+CRcE+x9U5YN9I+gq0KFa2TKs rai8hS6uyUYn7CuyYL8BcfiJjnKBXbqn+jgPs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=FSu10xCajb+iAq9zDhPKb9e96gF7z5/M MKAO1EZcRhgTK25/hzSOjMh1MvNeeXMDvaTO0TlDk5tfHDx8dIQdzqT0U9mmvEgF qfP8sBy3vcxZGgjDHgLA00AtRdEx9OJhE4muhwFlFdtft+pypI93SRUuBoIUPmMp olHgYYZK4Jo= Received: from a-pb-sasl-quonix.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 0EE7FCEE4; Tue, 19 Feb 2013 16:44:43 -0500 (EST) Received: from badger (unknown [88.160.190.192]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id 69895CEE3; Tue, 19 Feb 2013 16:44:42 -0500 (EST) From: Andy Wingo To: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> <87sj4s7fcc.fsf@pobox.com> <83bobgp4ui.fsf@gnu.org> Date: Tue, 19 Feb 2013 22:44:39 +0100 In-Reply-To: <83bobgp4ui.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 19 Feb 2013 19:53:57 +0200") Message-ID: <87liakx9ko.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: 91B74396-7ADD-11E2-9C6F-BB980E5B5709-02397024!a-pb-sasl-quonix.pobox.com X-Spam-Score: -2.5 (--) X-Debbugs-Envelope-To: 10474 Cc: ludo@gnu.org, 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.5 (--) Hi, On Tue 19 Feb 2013 18:53, Eli Zaretskii writes: >> + (define (unc-path?) >> + ;; Universal Naming Convention (UNC) paths start with \\, and >> + ;; are always absolute. >> + (string-prefix? "\\\\" path)) > > A UNC file name can also begin with 2 slashes, as in "//foo/bar/". In > general, Windows system calls treat both kinds of slashes identically. Interesting, thanks. >> (define (canonical->suffix canon) >> (cond >> - ((string-prefix? "/" canon) canon) >> - ((and (> (string-length canon) 2) >> - (eqv? (string-ref canon 1) #\:)) >> - ;; Paths like C:... transform to /C... >> - (string-append "/" (substring canon 0 1) (substring canon 2))) >> + ((and (not (string-null? canon)) >> + (path-separator? (string-ref canon 0))) >> + canon) >> + ((and (eq? (system-path-convention) 'windows) >> + (absolute-path? canon)) >> + ;; An absolute path that doesn't start with a path separator starts with a >> + ;; drive component. Transform the drive component to a path element: >> + ;; c:\foo -> \c\foo. > > Why is this transformation needed? Native Windows system calls will > not understand "/c/foo" syntax. What is this about? (I know it was > in the original code, but I didn't understand it then, either.) Auto-compiling /foo/bar/baz.scm produces $HOME/.cache/guile/2.0/ccache/foo/bar/baz.go. This turns the drive component into a path element on Windows so compiling C:/foo.scm caches $HOME/.cache/guile/2.0/ccache/c/foo.go. Andy -- http://wingolog.org/ From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 20 14:16:03 2013 Received: (at 10474) by debbugs.gnu.org; 20 Feb 2013 19:16:03 +0000 Received: from localhost ([127.0.0.1]:40489 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U8F97-000796-Mq for submit@debbugs.gnu.org; Wed, 20 Feb 2013 14:16:02 -0500 Received: from mtaout23.012.net.il ([80.179.55.175]:44452) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U8F95-00078z-Tm for 10474@debbugs.gnu.org; Wed, 20 Feb 2013 14:16:01 -0500 Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0MIJ00G008288X00@a-mtaout23.012.net.il> for 10474@debbugs.gnu.org; Wed, 20 Feb 2013 21:14:46 +0200 (IST) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MIJ00GW19GK8590@a-mtaout23.012.net.il>; Wed, 20 Feb 2013 21:14:44 +0200 (IST) Date: Wed, 20 Feb 2013 21:14:58 +0200 From: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys In-reply-to: <87y5ekx9u2.fsf@pobox.com> X-012-Sender: halo1@inter.net.il To: Andy Wingo Message-id: <83ip5mokzx.fsf@gnu.org> References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> <87y5ekx9u2.fsf@pobox.com> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 10474 Cc: ludo@gnu.org, 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Andy Wingo > Cc: ludo@gnu.org, 10474@debbugs.gnu.org > Date: Tue, 19 Feb 2013 22:39:01 +0100 > > Sorry for the large number of mails. Don't worry about that. > > Avoid compiler warnings on MS-Windows. > > > > * libguile/print.c (display_string_using_iconv): Cast 2nd arg of > > `iconv' to `const char **', to avoid compiler warnings. > > > > * libguile/ports.c (get_iconv_codepoint): Cast 2nd arg of `iconv' > > to `const char **', to avoid compiler warnings. > > > > > > --- libguile/print.c~0 2011-10-08 01:49:48.000000000 +0200 > > +++ libguile/print.c 2012-01-15 15:10:51.450848400 +0200 > > @@ -899,7 +899,7 @@ display_string_using_iconv (const void * > > output = encoded_output; > > output_left = sizeof (encoded_output); > > > > - done = iconv (pt->output_cd, &input, &input_left, > > + done = iconv (pt->output_cd, (const char **)&input, &input_left, > > &output, &output_left); > > > > output_len = sizeof (encoded_output) - output_left; > > > > > > --- libguile/ports.c~0 2011-10-08 01:49:48.000000000 +0200 > > +++ libguile/ports.c 2012-01-15 15:11:11.856706600 +0200 > > @@ -1305,7 +1305,7 @@ get_iconv_codepoint (SCM port, scm_t_wch > > input_left = bytes_consumed + 1; > > output_left = sizeof (utf8_buf); > > > > - done = iconv (pt->input_cd, &input, &input_left, > > + done = iconv (pt->input_cd, (const char **)&input, &input_left, > > &output, &output_left); > > if (done == (size_t) -1) > > { > > > > However iconv is specified > (http://pubs.opengroup.org/onlinepubs/009695399/functions/iconv.html) to > take a char** as the first argument. Don't we end up using a GNU iconv > on mingw32 anyway? Yes, we do use GNU iconv. However, the version of iconv.h (from GNU iconv version 1.13, I think) that I have declares the function like this: extern size_t iconv (iconv_t cd, const char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft); > > (make_objcode_from_file): Zero out errno before calling full_read, > > to make sure the value after the call reflects errors inside > > full_read. > > This seems like a bug to me, that the behavior of full_read can depend > on the incoming errno. I mailed bug-gnulib and put you on copy to see > what they would say. As I wrote there, I suggest to add some application-level diagnostics in this case, something like "premature end of file". > > * libguile/mkstemp.c (O_BINARY): Define for all platforms. > > (mkstemp): Open the temporary file in binary mode, so that > > compiled *.go files are written verbatim on MS-Windows. > > Hummmmmmm. It's true that the only user of mkstemp in Guile is the > compilation code. OTOH it's a public interface, and this change might > affect someone. OTOH MinGW is not well-served currently and probably > there are ~0 active users. Any other thoughts here? An alternative would be to provide a public interface to switch an existing file descriptor to binary mode, and then use it from the code that calls mkstemp to output what will eventually become a *.go file. > > * libguile/net_db.c [HAVE_WINSOCK2_H]: Add !GNULIB_TEST_SOCKET to > > the condition, to include sys/socket.h and netdb.h when gnulib's > > socket module is being used. Fixes compiler warnings and errors > > on MS-Windows. > > > > * libguile/socket.c: Likewise. > > > > > > --- libguile/net_db.c~0 2011-07-07 02:49:59.000000000 +0300 > > +++ libguile/net_db.c 2012-01-15 16:22:56.366898100 +0200 > > @@ -49,8 +49,11 @@ > > > > #include > > > > -#ifdef HAVE_WINSOCK2_H > > +#if HAVE_WINSOCK2_H && !GNULIB_TEST_SOCKET > > #include > > +# if HAVE_WS2TCPIP_H > > +# include > > +# endif > > #else > > #include > > #include > > Surely we should just rely on Gnulib here and not include the winsock > headers. In what condition would these headers be included otherwise? > A visual studio build or something? Sorry, I have no idea. If relying on gnulib is OK for non-MinGW Windows platforms (if there are such), then it's fine with me. From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 20 14:17:28 2013 Received: (at 10474) by debbugs.gnu.org; 20 Feb 2013 19:17:28 +0000 Received: from localhost ([127.0.0.1]:40493 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U8FAW-0007Bb-5M for submit@debbugs.gnu.org; Wed, 20 Feb 2013 14:17:28 -0500 Received: from mtaout22.012.net.il ([80.179.55.172]:55632) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U8FAU-0007BU-7x for 10474@debbugs.gnu.org; Wed, 20 Feb 2013 14:17:27 -0500 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0MIJ006009DT9300@a-mtaout22.012.net.il> for 10474@debbugs.gnu.org; Wed, 20 Feb 2013 21:16:12 +0200 (IST) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MIJ003LR9IXZAN1@a-mtaout22.012.net.il>; Wed, 20 Feb 2013 21:16:09 +0200 (IST) Date: Wed, 20 Feb 2013 21:16:23 +0200 From: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys In-reply-to: <87liakx9ko.fsf@pobox.com> X-012-Sender: halo1@inter.net.il To: Andy Wingo Message-id: <83hal6okxk.fsf@gnu.org> References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> <87sj4s7fcc.fsf@pobox.com> <83bobgp4ui.fsf@gnu.org> <87liakx9ko.fsf@pobox.com> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 10474 Cc: ludo@gnu.org, 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Andy Wingo > Cc: ludo@gnu.org, 10474@debbugs.gnu.org > Date: Tue, 19 Feb 2013 22:44:39 +0100 > > >> (define (canonical->suffix canon) > >> (cond > >> - ((string-prefix? "/" canon) canon) > >> - ((and (> (string-length canon) 2) > >> - (eqv? (string-ref canon 1) #\:)) > >> - ;; Paths like C:... transform to /C... > >> - (string-append "/" (substring canon 0 1) (substring canon 2))) > >> + ((and (not (string-null? canon)) > >> + (path-separator? (string-ref canon 0))) > >> + canon) > >> + ((and (eq? (system-path-convention) 'windows) > >> + (absolute-path? canon)) > >> + ;; An absolute path that doesn't start with a path separator starts with a > >> + ;; drive component. Transform the drive component to a path element: > >> + ;; c:\foo -> \c\foo. > > > > Why is this transformation needed? Native Windows system calls will > > not understand "/c/foo" syntax. What is this about? (I know it was > > in the original code, but I didn't understand it then, either.) > > Auto-compiling /foo/bar/baz.scm produces > $HOME/.cache/guile/2.0/ccache/foo/bar/baz.go. This turns the drive > component into a path element on Windows so compiling C:/foo.scm caches > $HOME/.cache/guile/2.0/ccache/c/foo.go. Thanks, I see the light now. Perhaps consider adding a comment there pointing to this use of the transformation. From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 20 16:58:42 2013 Received: (at 10474) by debbugs.gnu.org; 20 Feb 2013 21:58:42 +0000 Received: from localhost ([127.0.0.1]:40674 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U8HgX-0002k9-TG for submit@debbugs.gnu.org; Wed, 20 Feb 2013 16:58:42 -0500 Received: from a-pb-sasl-quonix.pobox.com ([208.72.237.25]:42960 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U8HgU-0002k1-Vp for 10474@debbugs.gnu.org; Wed, 20 Feb 2013 16:58:41 -0500 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 689C8CE27; Wed, 20 Feb 2013 16:57:25 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=vQ8hDMTb9n0JWWg4GX+cG6oZXoc=; b=OLDbJS tXr9HdjozAKlntybnXiGc5R8hJrQosKUCGJ+HaG3vOqFrYgoMJLoXZUe+0jSn0K3 AZ8fqXCyprDDWSF/ry2+5FpE+qgwXqLb0so5lnktyJhQS0mD7EG6yrCURmg24MC0 oDmUgiPMHy9OeapaesIpt1fedvwXX4oYEI9js= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=gLZMc0+rI++V9LSlJ/dLyPyZ1dgHD6bx 7gDPBXxHYIWXGxwpGWr6uwPDZM44WDKXj3r13vIy9kQSPxsHmn1ixKNX0b6yg04O JAOBI9ZYg1R2caxe1dmkb1LwpFUGAv1Ims08IjswuuNTqL6o8XebhoM4iNrG/IEy bbY7I05iM/o= Received: from a-pb-sasl-quonix.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 5FEA0CE26; Wed, 20 Feb 2013 16:57:25 -0500 (EST) Received: from badger (unknown [88.160.190.192]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id AF1C6CE25; Wed, 20 Feb 2013 16:57:24 -0500 (EST) From: Andy Wingo To: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> <87y5ekx9u2.fsf@pobox.com> <83ip5mokzx.fsf@gnu.org> Date: Wed, 20 Feb 2013 22:57:18 +0100 In-Reply-To: <83ip5mokzx.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 20 Feb 2013 21:14:58 +0200") Message-ID: <87y5eisl6p.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: 827DB650-7BA8-11E2-8FA0-1C2F0E5B5709-02397024!a-pb-sasl-quonix.pobox.com X-Spam-Score: -2.5 (--) X-Debbugs-Envelope-To: 10474 Cc: ludo@gnu.org, 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.5 (--) Hi Eli, On Wed 20 Feb 2013 20:14, Eli Zaretskii writes: >> > Avoid compiler warnings on MS-Windows. >> > >> > * libguile/print.c (display_string_using_iconv): Cast 2nd arg of >> > `iconv' to `const char **', to avoid compiler warnings. >> > >> > * libguile/ports.c (get_iconv_codepoint): Cast 2nd arg of `iconv' >> > to `const char **', to avoid compiler warnings. >> > >> > >> > --- libguile/print.c~0 2011-10-08 01:49:48.000000000 +0200 >> > +++ libguile/print.c 2012-01-15 15:10:51.450848400 +0200 >> > @@ -899,7 +899,7 @@ display_string_using_iconv (const void * >> > output = encoded_output; >> > output_left = sizeof (encoded_output); >> > >> > - done = iconv (pt->output_cd, &input, &input_left, >> > + done = iconv (pt->output_cd, (const char **)&input, &input_left, >> > &output, &output_left); >> > >> > output_len = sizeof (encoded_output) - output_left; >> > >> > >> > --- libguile/ports.c~0 2011-10-08 01:49:48.000000000 +0200 >> > +++ libguile/ports.c 2012-01-15 15:11:11.856706600 +0200 >> > @@ -1305,7 +1305,7 @@ get_iconv_codepoint (SCM port, scm_t_wch >> > input_left = bytes_consumed + 1; >> > output_left = sizeof (utf8_buf); >> > >> > - done = iconv (pt->input_cd, &input, &input_left, >> > + done = iconv (pt->input_cd, (const char **)&input, &input_left, >> > &output, &output_left); >> > if (done == (size_t) -1) >> > { >> > >> >> However iconv is specified >> (http://pubs.opengroup.org/onlinepubs/009695399/functions/iconv.html) to >> take a char** as the first argument. Don't we end up using a GNU iconv >> on mingw32 anyway? > > Yes, we do use GNU iconv. However, the version of iconv.h (from GNU > iconv version 1.13, I think) that I have declares the function like > this: > > extern size_t iconv (iconv_t cd, const char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft); In these files, `input' is a char*. So &input should be a char**. Shouldn't that cast to const char** without a warning? >> > * libguile/mkstemp.c (O_BINARY): Define for all platforms. >> > (mkstemp): Open the temporary file in binary mode, so that >> > compiled *.go files are written verbatim on MS-Windows. >> >> Hummmmmmm. It's true that the only user of mkstemp in Guile is the >> compilation code. OTOH it's a public interface, and this change might >> affect someone. OTOH MinGW is not well-served currently and probably >> there are ~0 active users. Any other thoughts here? > > An alternative would be to provide a public interface to switch an > existing file descriptor to binary mode, and then use it from the code > that calls mkstemp to output what will eventually become a *.go file. You know, given that temporary files are for writing more than for reading, it makes sense to just add the O_BINARY flag and be done with it. I'll do that. >> > * libguile/net_db.c [HAVE_WINSOCK2_H]: Add !GNULIB_TEST_SOCKET to >> > the condition, to include sys/socket.h and netdb.h when gnulib's >> > socket module is being used. Fixes compiler warnings and errors >> > on MS-Windows. >> > >> > * libguile/socket.c: Likewise. >> > >> > >> > --- libguile/net_db.c~0 2011-07-07 02:49:59.000000000 +0300 >> > +++ libguile/net_db.c 2012-01-15 16:22:56.366898100 +0200 >> > @@ -49,8 +49,11 @@ >> > >> > #include >> > >> > -#ifdef HAVE_WINSOCK2_H >> > +#if HAVE_WINSOCK2_H && !GNULIB_TEST_SOCKET >> > #include >> > +# if HAVE_WS2TCPIP_H >> > +# include >> > +# endif >> > #else >> > #include >> > #include >> >> Surely we should just rely on Gnulib here and not include the winsock >> headers. In what condition would these headers be included otherwise? >> A visual studio build or something? > > Sorry, I have no idea. If relying on gnulib is OK for non-MinGW > Windows platforms (if there are such), then it's fine with me. I think for now this is the right thing. It seems that even visual studio builds are supported by gnulib, so the specs we code against should either be posix or gnulib abstractions. I have removed this #if block. Thanks, Andy -- http://wingolog.org/ From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 20 22:50:06 2013 Received: (at 10474) by debbugs.gnu.org; 21 Feb 2013 03:50:06 +0000 Received: from localhost ([127.0.0.1]:41014 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U8NAb-0002KZ-Hm for submit@debbugs.gnu.org; Wed, 20 Feb 2013 22:50:05 -0500 Received: from mtaout20.012.net.il ([80.179.55.166]:35381) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U8NAY-0002K2-9o for 10474@debbugs.gnu.org; Wed, 20 Feb 2013 22:50:03 -0500 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0MIJ00E00X70AS00@a-mtaout20.012.net.il> for 10474@debbugs.gnu.org; Thu, 21 Feb 2013 05:48:45 +0200 (IST) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MIJ00D8TX99UU90@a-mtaout20.012.net.il>; Thu, 21 Feb 2013 05:48:45 +0200 (IST) Date: Thu, 21 Feb 2013 05:49:00 +0200 From: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys In-reply-to: <87y5eisl6p.fsf@pobox.com> X-012-Sender: halo1@inter.net.il To: Andy Wingo Message-id: <83a9qynx77.fsf@gnu.org> References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> <87y5ekx9u2.fsf@pobox.com> <83ip5mokzx.fsf@gnu.org> <87y5eisl6p.fsf@pobox.com> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 10474 Cc: ludo@gnu.org, 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Andy Wingo > Cc: ludo@gnu.org, 10474@debbugs.gnu.org > Date: Wed, 20 Feb 2013 22:57:18 +0100 > > >> > --- libguile/ports.c~0 2011-10-08 01:49:48.000000000 +0200 > >> > +++ libguile/ports.c 2012-01-15 15:11:11.856706600 +0200 > >> > @@ -1305,7 +1305,7 @@ get_iconv_codepoint (SCM port, scm_t_wch > >> > input_left = bytes_consumed + 1; > >> > output_left = sizeof (utf8_buf); > >> > > >> > - done = iconv (pt->input_cd, &input, &input_left, > >> > + done = iconv (pt->input_cd, (const char **)&input, &input_left, > >> > &output, &output_left); > >> > if (done == (size_t) -1) > >> > { > >> > > >> > >> However iconv is specified > >> (http://pubs.opengroup.org/onlinepubs/009695399/functions/iconv.html) to > >> take a char** as the first argument. Don't we end up using a GNU iconv > >> on mingw32 anyway? > > > > Yes, we do use GNU iconv. However, the version of iconv.h (from GNU > > iconv version 1.13, I think) that I have declares the function like > > this: > > > > extern size_t iconv (iconv_t cd, const char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft); > > In these files, `input' is a char*. So &input should be a char**. > Shouldn't that cast to const char** without a warning? Maybe it's some obscure bug my compiler. If you can get away without a warning in such situations, even when the prototype does specify "const char **", then feel free to disregard these changes. They are certainly not Windows or MinGW specific. From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 21 03:20:03 2013 Received: (at 10474) by debbugs.gnu.org; 21 Feb 2013 08:20:04 +0000 Received: from localhost ([127.0.0.1]:41292 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U8RNq-000138-Up for submit@debbugs.gnu.org; Thu, 21 Feb 2013 03:20:03 -0500 Received: from a-pb-sasl-quonix.pobox.com ([208.72.237.25]:60211 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U8RNo-00012f-5M for 10474@debbugs.gnu.org; Thu, 21 Feb 2013 03:20:01 -0500 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id CEE75CC40; Thu, 21 Feb 2013 03:18:43 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=dmdZMs/eSKl+irbt162AG7QuWP4=; b=sLdFdR QVROl+c9L4M2Ju3erZb7xvZpDk6PiHg8LMLHk+2hzQO2tjI7wcGcwtvMMrar8O1M ptuNxLj1YEC+G/F00YXpCAM2cokUn3+GQVEig1d8bGEuQwBiewasav2n87WAV48s nyuitADt76rtx+/zcluV2tE/aoy/YG2E8ynmI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=kJN0zcVuAr1o7d6fj+KqBffIcf9uS+Xg VBpOjbIC1NvGYlc05j1Na/hGwscXoxBmPdwdc6R+orp19z/K2ALfZfgzHwRdBcHO lqiSybsvVvptc7haUb35Jp1+tzN9Zo+CSS4geJm9lB+XBVhxU/gEN02FXM5uCAON Bc1VvTKItSo= Received: from a-pb-sasl-quonix.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id C7DD8CC3F; Thu, 21 Feb 2013 03:18:43 -0500 (EST) Received: from badger (unknown [88.160.190.192]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id 4C3F1CC3E; Thu, 21 Feb 2013 03:18:43 -0500 (EST) From: Andy Wingo To: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> <87y5ekx9u2.fsf@pobox.com> <83ip5mokzx.fsf@gnu.org> <87y5eisl6p.fsf@pobox.com> <83a9qynx77.fsf@gnu.org> Date: Thu, 21 Feb 2013 09:18:40 +0100 In-Reply-To: <83a9qynx77.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 21 Feb 2013 05:49:00 +0200") Message-ID: <87fw0qqdun.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: 4E42833C-7BFF-11E2-9BF0-1C2F0E5B5709-02397024!a-pb-sasl-quonix.pobox.com X-Spam-Score: -1.1 (-) X-Debbugs-Envelope-To: 10474 Cc: ludo@gnu.org, 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.5 (--) On Thu 21 Feb 2013 04:49, Eli Zaretskii writes: >> > extern size_t iconv (iconv_t cd, const char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft); >> >> In these files, `input' is a char*. So &input should be a char**. >> Shouldn't that cast to const char** without a warning? > > Maybe it's some obscure bug my compiler. If you can get away without > a warning in such situations, even when the prototype does specify > "const char **", then feel free to disregard these changes. They are > certainly not Windows or MinGW specific. I'm not trying to disregard your change, but the cast really shouldn't be necessary. Adding an explicit cast to (const char**) would start causing warnings on platforms that have a posix iconv prototype, like those with GNU libc. So, very respectfully, I think I will not apply this one. Andy -- http://wingolog.org/ From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 24 07:09:58 2013 Received: (at 10474) by debbugs.gnu.org; 24 Feb 2013 12:09:58 +0000 Received: from localhost ([127.0.0.1]:46833 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U9aP0-0000Xx-5X for submit@debbugs.gnu.org; Sun, 24 Feb 2013 07:09:58 -0500 Received: from a-pb-sasl-quonix.pobox.com ([208.72.237.25]:40835 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U9aOw-0000Xo-Km for 10474@debbugs.gnu.org; Sun, 24 Feb 2013 07:09:55 -0500 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 8D6B4A590; Sun, 24 Feb 2013 07:08:20 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=Llf+qeHJGywg4ojB8R7VhxSy5ho=; b=RfQ3Fa ruuXdDoMGFrFnFOkUJB13+F3XuKfw2grkPaKVWPWFHfKT20Fl7mw2dXqG2mz8my4 xfhxR8BH4zmd8DVGwufj3xxgh1YbsvFROPw0hzdk5siaNU6ZBfR+CH5jYuXyq5PJ +/u95NhCDGNmHiJcdXyktaslBSt3Et9c9N6bs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=uTPwNV7i0GRWVMTFwFQrVj9cb2OiKr4X gEFmhWbd29wT4IgzR6U2/12xjJ7AuBVZ/vM/ycHsx01cwmMuZb5H1rjlPyVtKpr6 aY5QUs7p/WNz+R62isb1i02geuSI36hnDvI+q34HGhSxrsZ1KJtMESW5mpDJ0c34 06OewfjfYAc= Received: from a-pb-sasl-quonix.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 7EF04A58F; Sun, 24 Feb 2013 07:08:20 -0500 (EST) Received: from badger (unknown [88.160.190.192]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id 09EEDA58E; Sun, 24 Feb 2013 07:08:19 -0500 (EST) From: Andy Wingo To: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> <87sj4s7fcc.fsf@pobox.com> <83bobgp4ui.fsf@gnu.org> Date: Sun, 24 Feb 2013 13:08:17 +0100 In-Reply-To: <83bobgp4ui.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 19 Feb 2013 19:53:57 +0200") Message-ID: <874nh1j4ni.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: E11125C4-7E7A-11E2-9A7F-1C2F0E5B5709-02397024!a-pb-sasl-quonix.pobox.com X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 10474 Cc: ludo@gnu.org, 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) On Tue 19 Feb 2013 18:53, Eli Zaretskii writes: >> + (define (unc-path?) >> + ;; Universal Naming Convention (UNC) paths start with \\, and >> + ;; are always absolute. >> + (string-prefix? "\\\\" path)) > > A UNC file name can also begin with 2 slashes, as in "//foo/bar/". In > general, Windows system calls treat both kinds of slashes identically. I've fixed this, I think. Thanks for the note, Andy -- http://wingolog.org/ From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 24 08:26:50 2013 Received: (at 10474-done) by debbugs.gnu.org; 24 Feb 2013 13:26:50 +0000 Received: from localhost ([127.0.0.1]:46867 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U9bbM-00039Q-P7 for submit@debbugs.gnu.org; Sun, 24 Feb 2013 08:26:49 -0500 Received: from a-pb-sasl-quonix.pobox.com ([208.72.237.25]:35957 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U9bbH-00039G-9y for 10474-done@debbugs.gnu.org; Sun, 24 Feb 2013 08:26:46 -0500 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 5EC85A9AA; Sun, 24 Feb 2013 08:25:09 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=CQp/DQzrdESHMAKetTD2L2bgm1c=; b=RvrJ4G udACQN+TdjhVGIrcINoPeSjmuL+6Nk8gsI9uSkZTCjBP/CYQ/m8lOUxkGeaeH8zV GZ1q3oLnj9tZHQ/u8WEmPEYIoDZEeiUwDQ+plAA7wY49Nk4HvhYWCH7df0yJoaVo m1zD6C1srxg0obEPoI9oG4pwWm6i+WHistqdQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=buj6zr2gtBsje1v4DX0NBOgiLPIhq6Mz aPaAgLA8SqSzzvjzy8FEoN8071SC8lv3gDfClD5OrLX03DVvJABzRkO27LJkZCZE 4yejvF4fH91kf8XGfiv/+com5ENcosIxzAO5xHwJ4H2fRsVbs5h/uMwCNgipejDZ gPr02HWUJJQ= Received: from a-pb-sasl-quonix.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 55DB1A9A9; Sun, 24 Feb 2013 08:25:09 -0500 (EST) Received: from badger (unknown [88.160.190.192]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id CD634A9A8; Sun, 24 Feb 2013 08:25:08 -0500 (EST) From: Andy Wingo To: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> <87fw0s2tmx.fsf@pobox.com> <83a9r0p4jw.fsf@gnu.org> Date: Sun, 24 Feb 2013 14:25:06 +0100 In-Reply-To: <83a9r0p4jw.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 19 Feb 2013 20:00:19 +0200") Message-ID: <87zjythmj1.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: 9C2068AC-7E85-11E2-8931-1C2F0E5B5709-02397024!a-pb-sasl-quonix.pobox.com X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 10474-done Cc: ludo@gnu.org, 10474-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) On Tue 19 Feb 2013 19:00, Eli Zaretskii writes: >> > * libguile/load.c (scm_init_load_path) [__MINGW32__]: Convert >> > backslashes to forward slashes in values of GUILE_LOAD_PATH and >> > GUILE_LOAD_COMPILED_PATH. >> >> Is this necessary now that backslash is recognized as a file name >> separator? > > Possibly. But are you sure there's no more references to '/' alone in > C code (as opposed to in Scheme)? I am pretty sure, yes. I just pushed some patches to make sure this is the case, altering load.c's logic to be more structurally similar to boot-9.scm's and preferring backslashes on Windows. So with these last commits, hopefully native MinGW builds are supported. Would you mind testing again? Please send a new mail to bug-guile@gnu.org to track any new failures. Thanks, Andy -- http://wingolog.org/ From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 24 10:45:47 2013 Received: (at 10474) by debbugs.gnu.org; 24 Feb 2013 15:45:47 +0000 Received: from localhost ([127.0.0.1]:47702 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U9dlr-0006cJ-AD for submit@debbugs.gnu.org; Sun, 24 Feb 2013 10:45:47 -0500 Received: from mtaout20.012.net.il ([80.179.55.166]:40601) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1U9dlm-0006c8-OI for 10474@debbugs.gnu.org; Sun, 24 Feb 2013 10:45:44 -0500 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0MIQ00I00E9AQI00@a-mtaout20.012.net.il> for 10474@debbugs.gnu.org; Sun, 24 Feb 2013 17:44:06 +0200 (IST) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MIQ00I9JEDIOF30@a-mtaout20.012.net.il>; Sun, 24 Feb 2013 17:44:06 +0200 (IST) Date: Sun, 24 Feb 2013 17:43:57 +0200 From: Eli Zaretskii Subject: Re: bug#10474: Building guile 2.x under mingw + msys In-reply-to: <87zjythmj1.fsf@pobox.com> X-012-Sender: halo1@inter.net.il To: Andy Wingo Message-id: <83fw0lk98i.fsf@gnu.org> References: <87pqerdxq4.fsf@pobox.com> <83ehuy698u.fsf@gnu.org> <8362ga5h7h.fsf@gnu.org> <87r4ywpnv0.fsf@gnu.org> <83r4yw49u6.fsf@gnu.org> <87y5smnj86.fsf@pobox.com> <83ehudp29y.fsf@gnu.org> <87fw0s2tmx.fsf@pobox.com> <83a9r0p4jw.fsf@gnu.org> <87zjythmj1.fsf@pobox.com> X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: 10474 Cc: ludo@gnu.org, 10474@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Andy Wingo > Cc: ludo@gnu.org, 10474-done@debbugs.gnu.org > Date: Sun, 24 Feb 2013 14:25:06 +0100 > > So with these last commits, hopefully native MinGW builds are supported. > Would you mind testing again? Thanks, will do when I have time. From unknown Mon Jun 23 07:50:16 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 25 Mar 2013 11:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator