On 11/04/13 16:11, David Matthews wrote:
On 11/04/2013 11:44, Makarius wrote:
On Thu, 11 Apr 2013, David Matthews wrote:
I misunderstood the motivation for polyc. I thought that it was to
allow those without compiling/linking knowledge to easily build
executables, i.e. to de-skill the process. Whilst such users may
realize that
./configure --prefix <non-standard location>
requires
PATH=${PATH}:${bindir}
they would not realize that they need (assuming no super-user
privileges)
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${libdir}
I just wonder how common that case is.
Perhaps I'm wrong. I guess if there was a simple, portable way of
sorting out the paths I'd consider it.
Maybe this is just something to be prominently documented in
installation instructions!
I am also wondering whether libtool helps. I know very little about it
though.
From some of the comments on this thread I had the idea that there were
potential users of Poly/ML out there who were put off by the
read-eval-print-loop. After all, that isn't the way most other
programming languages/implementations work. Having the --script option
allows those used to scripting to code something up quickly so that's
one group catered for. Another group of potential users are those used
to the compile-link-execute model and that was the group I was trying to
target with the polyc script.
Understand. I think I probably came up with a different group based on
what I thought a Python programmer may typically know. I don't have any
experience with Python though nor any Python compilers (if such things
exists).
The most elementary wrapper script for standalone ("portable") Poly/ML
directories is included in the attachment. The real one for Isabelle is
more advanced. Next time I will consider "./configure
--disable-shared", which I did not know before.
I wonder if --disable-shared should be the default with ./configure. It
would solve a lot of these problems. I can see that packagers who are
going to build a package to install to the standard location would want
to build the shared library but users building a stand-alone system
probably don't want it. If you're only building "poly" anyway there's
no saving by having libpolyml as a separate library.
If, in future, people are building Poly/ML-based applications, I think
it would be preferable for the default to be dynamic. For example, I
have just tried building the (SML!) GTK+ Hello World demo: the
executable is much larger with static linking (768k with -ggdb, 560k
stripped) than with dynamic linking (160k, 148k).
The default linking method is quite a significant decision because, if I
understand correctly, it fixes the way Poly/ML-based applications are
linked, i.e. it is not possible to choose the linking method (to
Poly/ML) when building a Poly/ML-based application. Is that correct?
(I am intrigued to know why.)
Phil
_______________________________________________
polyml mailing list
polyml@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml