[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gnu-arch-users] Build System links/ recommendations
From: |
Zenaan Harkness |
Subject: |
Re: [Gnu-arch-users] Build System links/ recommendations |
Date: |
Sun, 29 Aug 2004 12:56:13 +1000 |
User-agent: |
Mutt/1.5.6+20040523i |
On Sun, Aug 29, 2004 at 02:23:53AM +0100, Robin Green wrote:
> On Sun, Aug 29, 2004 at 06:41:39AM +1000, Zenaan Harkness wrote:
> > I actually came across fastdep because I spent some time trying to
> > create a build system for C++ (while I was learning a little last
> > year between jobs), that was comparable to Java - essentially,
> > namespaces corresponding to Java "packages", which also correspond
> > to directories. In Java, it is nicely scalable, and the Java compiler
> > makes it all Just Work (TM).
>
> Actually, it doesn't always (unless it's been fixed). If A depends on B
> and B inherits from C, and you change C and then recompile A, javac won't
> notice that you changed C.
This is true, and it's still the case.
> This can cause bugs - occassionally some *very*
> strange bugs. (Specifically, these days the Sun VM tends to react sanely
> to incompatible class changes by throwing an exception, but some
> third-party tools do weird stuff.)
For the last few years, the VM does throw reasonable exceptions.
> The javac -depend flag was supposed to fix that, but it was dropped in the
> "modern" compiler. I think it didn't work properly.
Never played with it myself. I learned to layer my designs, minimize
dependencies to the per-package level where possible, and always rebuild
the current directory/package - it's kind of an incremental-build
approach, and I'm usually aware of what needs to be compiled.
I agree a little more automation would be good, especially for
beginners, but I've found it not such a problem for interpreted-Java
as it would be normally (for C/C++).
> Anyway, I have a rather home-made idiosyncratic build system, "autobob",
> which works by rebuilding entire components (usually Java components) one at a
> time, and erring on the side of rebuilding if there is any doubt at all
> about the need to rebuild. So you avoid that javac issue completely, at the
> cost of some efficiency.
Sounds quite similar to what I do manually.
...
> 4. Doesn't have the "tab problem" of Makefiles which annoys some people.
What's this, briefly (not familiar with makefiles really)?
Thanks
Zen