[Top][All Lists]

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

[Axiom-developer] RE: building wh-sandbox on Windows

From: Gabriel Dos Reis
Subject: [Axiom-developer] RE: building wh-sandbox on Windows
Date: Sat, 28 Apr 2007 17:53:54 -0500 (CDT)

On Sat, 28 Apr 2007, Bill Page wrote:


> > You can easily check that
> > 
> > echo '(compile-file "$<" :output-file "$@") (quit)' | ${DEPSYS}
> > 
> > does not work with relative paths (it works fine with
> > absolute paths).
> > 
> Waldek claims that the various Lisps do not implement a
> uniform concept of "current directory", so therefore
> relative paths behave differently in different Lisps
> because it is not clear what is relative to what. This
> does however work as expected (i.e. in the sense of
> "current directory" implemented by both Linux and Windows)
> when building Axiom from build-improvements using GCL on
> both Linux and Windows.
> In MSYS on Windows absolute paths do to work as you might
> expect, but this has anything to do with Lisp. The problem
> is that MSYS is a porting environment and so there are
> really two *different* concepts of absolute path: one that
> applies exclusively to the MSYS environment and associated
> tools, and another one that applies in the native Windows
> applications. During the Axiom build we need to use both
> of these because we are building Axiom and its intermediate
> phases as a native apps. If we choose to use absolute paths,
> as is (mostly) done in wh-sandbox, then we must be careful
> when we specify paths that must be interpreted by these
> native windows programs.
> Alternatively when compile Axiom on MSYS using GCL, as is
> done in build-improvements, we can code things carefully so
> that all paths are relative and this works because the
> concept of current path is the same between MSYS and native
> Windows.

You have adequately summarized my findings while working last 
december on Axiom builds on Windows.  An important point is
to understand what MSYS/MinGW are.  From there, following
proven build techniques, one should be able to build without
much trouble.

The key to the solution, as I've found it is to code 
file manipulations in Axiom *as if* working with relative
paths.  That does not necessarily implies that everything
will be relative.  In fact, what that means is that
during the build, files are relative to the current directory
(for output files) and $AXIOM.  At installation time, we
always set $AXIOM to an absolute path, so magically everything
(after installation) becomes absolute.  

There is no need to insist that everything must be absolute
while building Axiom.  That mistake was made in what branched from.  And if I understand
Mike Thomas' work correctly (judging from what you pointed
me to), he has been trying to solve those same problems
on windows.  My claim is that we don't need to. is a "proof of concept".  Granted it
is not perfect, and there are plenty of room for improvement,
but I suspect that it provides a good starting point.

There are most (minor) issues with file manipulation in Axiom,
but I don't believe they change the problem you're trying to


> using GCL in ANSI mode. Being able also to compile
> Axiom using other common lisps like SBCL and CLisp is
> interesting but if their behaviour differs a little
> because of implementation differences allowed by the
> standard, I don't think that is such a big deal.

If you can compile with SBCL, then you can make Axiom
compilable on Windows without requiring GCL.  That, as we have
found recently may be of importance for Axiom developers
working in windows environment.

-- Gaby

reply via email to

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