From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mark H Weaver Newsgroups: gmane.lisp.guile.user Subject: Re: guile-2.0 on mingw: the sequel Date: Fri, 23 Aug 2013 11:13:19 -0400 Message-ID: <877gfccueo.fsf@tines.lan> References: <83vc2wj4hz.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1377270836 1986 80.91.229.3 (23 Aug 2013 15:13:56 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 23 Aug 2013 15:13:56 +0000 (UTC) Cc: "guile-user@gnu.org" To: Panicz Maciej Godek Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Fri Aug 23 17:13:58 2013 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1VCt3k-0002h1-2v for guile-user@m.gmane.org; Fri, 23 Aug 2013 17:13:56 +0200 Original-Received: from localhost ([::1]:37402 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VCt3j-0007eX-Le for guile-user@m.gmane.org; Fri, 23 Aug 2013 11:13:55 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44679) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VCt3V-0007eM-JU for guile-user@gnu.org; Fri, 23 Aug 2013 11:13:48 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VCt3Q-0001DL-03 for guile-user@gnu.org; Fri, 23 Aug 2013 11:13:41 -0400 Original-Received: from world.peace.net ([96.39.62.75]:38468) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VCt3P-0001DF-Rr; Fri, 23 Aug 2013 11:13:35 -0400 Original-Received: from 209-6-91-212.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com ([209.6.91.212] helo=tines.lan) by world.peace.net with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1VCt3H-0006kc-L4; Fri, 23 Aug 2013 11:13:27 -0400 In-Reply-To: (Panicz Maciej Godek's message of "Fri, 23 Aug 2013 11:29:27 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 96.39.62.75 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+guile-user=m.gmane.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:10676 Archived-At: Panicz Maciej Godek writes: > 2013/8/23 Eli Zaretskii > > > > I managed to go through the compilation process, > > and (after modifying meta/Makefile.am according to Eli's > > patch) to make install. > > > This compilation process includes compiling all the Scheme files > that > come with Guile. Since you say it succeeded, I don't understand > what > you say later, see below. Do you see a lot of *.go files in the > directory where you built Guile? > > When I enter the build directory and type > $ find ./ -name '*.go' > it seems that every .scm file from `modules' directory has its .go > counterpart, Note that setting GUILE_LOAD_PATH is not enough. You must also set GUILE_LOAD_COMPILED_PATH to include the top directory where the .go files are installed. Specifically, both of these should point to a directory that contains "ice-9", so that $GUILE_LOAD_PATH/ice-9/boot-9.scm exists, and so does $GUILE_LOAD_COMPILED_PATH/ice-9/boot-9.go. A better solution is to provide a proper --prefix, so that the files are in the default load paths in the built Guile. Of course, ideally we would allow the entire Guile install to be freely relocatable, as Windows users have come to expect. This would require some help from a Windows developer. Someone on IRC (who prefers to stay anonymous) once outlined this plan to me: infer paths in the usual way - by saving the hInstance handle that it gets in DllMain(), then using GetModuleFileName () on that handle to obtain location of the libguile-whatever.dll, then checking if that dll is in a "bin" directory, and taking parent directory of that "bin" directory as the prefix, and then appending things like "/etc/config.d" and "/share/guile/stuff" to that prefix Well, an easy way to fix this is to separate the fix into two parts. One part is about getting the prefix at runtime (on POSIX you can just use a mockup that gets it from some envvar; later you'll be able to add a W32-only implementation that does what i said earlier), and the other makes guile use that prefix to construct paths it needs If there are no objections to this approach, I'd be willing to work with a Windows developer to make it happen. Regards, Mark