guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: guile-2.0 on mingw: the sequel


From: Mark H Weaver
Subject: Re: guile-2.0 on mingw: the sequel
Date: Fri, 23 Aug 2013 11:13:19 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

Panicz Maciej Godek <address@hidden> writes:

> 2013/8/23 Eli Zaretskii <address@hidden>
>
>     
>     > 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]