|
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
[Prev in Thread] | Current Thread | [Next in Thread] |