[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)?


reply via email to

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