octave-maintainers
[Top][All Lists]
Advanced

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

Re: trouble compiling


From: Daniel J Sebald
Subject: Re: trouble compiling
Date: Sat, 19 May 2012 13:52:48 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.24) Gecko/20111108 Fedora/3.1.16-1.fc14 Thunderbird/3.1.16

On 05/19/2012 12:54 PM, Luca Citi wrote:
JWE,
I honestly think you are underestimating the problem.

People building from the VCS are supposed to be developers who will
know what to do.
I am a developer. I have never needed installing bison before. As far
as I understand it is only needed if the software you are trying to
compile needs a parser. A message hidden somewhere in a log file of
thousands of lines wasn't that helpful.

Let's not over think this, or waste a huge effort on something that
might be a problem for only a very few people.
In only 24h, 5-6 developers (if you read their/our messages you'll get
that we aren't completely new to programming and I have seen most of
the names before in this mailing list) were stuck compiling the
mercurial version for this very problem. Improving the instructions
for developers is not "a huge effort" for "a problem for only a very
few people". Jordi kindly and constructively tried to fix this. Thanks
Jordi.

I think there are many more important problems to worry about.  For
example, pick one from this list:
I was trying to compile the mercurial version before starting to
attempt to fix a problem with bsxfun and sparse matrices. I wasted a
few hours trying to compile HEAD. I could have spent my time trying to
fix the issue. I was about to give up. I am willing to help improve
octave (for which I thank you) but please, please, please do not scare
away possible contributors with obscure error messages or defensive
email messages.

Luca's comments are an example of what I was going to suggest is the case: first impressions of a potential developer or IT person are very important. One doesn't want the build process to appear arcane and difficult because people will give up. The evidence of this is in Octave's documentation file HACKING:

"Only building the initial full source tree will be a bit painful."

Apparently the person who wrote that felt building Octave is challenging and people would need encouragement, but I found the build to be pretty straightforward, up to a point.

Things have been shuffled around slightly since last I was a more active contributor (which is fine, and welcome) so I found myself to be a new builder in a way. When building a project, I typically have to get a newer version of one or two utilities and compile those, but in this case it was simply a matter of installing the packages containing the missing utilities and one or two developer versions of the libraries/utilities. But then, after having run a ./configure that seemed successful, the build failed because of missing flex (one hour lost), missing bison (one hour lost), etc.

As for warning comments being too long, yes that can be the case. Writing computer warnings and messages is a bit like mathematics, terseness is often good. It should be accurate without extra semantics that obfuscate rather than explain. Plus there is something nice about a brief condensed, well organized, visually appealing summary at the very end. I like the comment about graphics at the end of ./configure even though it is lengthy, because that is an important detail for non-developers. But rather than WARNING/WARNING/WARNING for each line, maybe just one WARNING per actual warning is good (sort of the terseness idea).

The past day I spent looking at the autotools documentation at GNU's website. That helped, but some of that documentation isn't exactly up-to-date, plus Octave's configure.ac doesn't always use the suggested macros.

I've learned a lot of useful things in the past few days other than the autotools, lexical stuff. In particular that one can do

../octave/configure

which is actually explained in INSTALL and I overlooked:

"
   You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory.  To do this, you can use GNU `make'.  `cd' to the
directory where you want the object files and executables to go and run
the `configure' script.
"

but that runs contrary to the suggested commands in HACKING:

"
Once the autogen.sh and bootstrap scripts complete successfully, you may
run

  $ ./configure
  $ make
  $ make check
"

and someone suggested most projects force object files in a different directory from the source code.

As I said, building Octave wasn't bad at all. A bit of tweaking would improve things though.

Dan


reply via email to

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