ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Donald <>
Subject RE: [suggestion] re: Bootstrapping Ant
Date Tue, 08 Aug 2000 14:36:29 GMT
At 02:59  8/8/00 +0100, you wrote:
>Yes, but why create a wonderful cross platform tool like Ant with  
>processor non-specific binaries and then use totally processor specific  
>shell scripts to bootstrap the build.  It seem to me to be like saying,  
>here's a new build tool to replace make, we suggest you use it for your  
>projects, but we don't use it for ours.

It is no replacement for make - not yet. Perhaps in the future but it
doesn't quite qualify for anything but java related tasks at the moment.

>Yes, the bootstrapping process builds and then utilises ant, but shouldn't  
>we be aiming towards being able to avoid the build script altogether so we  
>can run this thing on our Palm Pilot, or MacOS or whatever we happen to  
>develop on whenever and wherever we happen to do it.

well unfortunately java 1.1 and 1.2 don't have facilities to make this
possible. While some of it could be done via java not all of it could be.
Specifically the problems are to do with execution environments via
System.exec and doing things like setting files as executable. It can not
be done in system independant way. Other things like getting correct JVM
and mudging the classpath based on VM would be extremely difficult but
possible. Other things such as setting ant home are also for all practical
purposes undoable (they are possible to do on certain VMs in certain JVM
versions but not all).

>What I mean is, Ant assumes that we have Java in our machine - without it  
>Ant is useless.  So why are we also relying on the existence of particular  
>shell script interpreters as well?  If we use Java for the bootstrap we are  
>cutting out a dependency that we may not need to have and making things  
>more platform independent.

well both scripts ship with machine they are coupled with. All unixes as
far as I know have sh (or some extension like bash) and every dos box
understands .bat files. The dependancy is not an issue - it is like asking
why make c programs dependant on C runtime library.

>Yes - if at all possible.

Not possible unless go jdk1.3+ only and screw the rest of VMs

>I would hope that we could have ant working so that there is a binary  
>distribution of ant as a jar containing all the required XML DOM/SAX/etc.  
>libraries, that will launch with "java -jar ant.jar" (under Java 1.2+) or  

well again do you really want to limit ant to specifics of VMs ? and besides

"java -jar ant.jar" is so much less conveniant than "ant"

>by an equivalent action under whatever GUI - Windows, X-Windows, MacOS X,  
>Palm Application Menu, whatever;  

you mean use a system specific way of launching it ... like you were just
arguing against ???

>Okay, but in most cases a previous Ant should be able to build itself -  
>and indeed making that happen is a fairly justifiable target.  However,  
>even when it can't it should be possible to distribute an up-do-date binary  
>that will.  

and how pray tell is that generated ? Somewhere someone needs to generate

>Perhaps there is an argument here for an optional version tag  
>on the build.xml file that would allow older versions of Ant to cleanly  
>recognise that they're not up to the job, rather than outputing error  

it does. It complains "blah task not found" or "blah attribute not found".
It also lists deprecation warnings. 

>> Having the ant.jar in CVS is unnecessary, so why bother? It is not that
>> difficult to build ant purely from source.
>The same could be said for the existence of Ant at all given that we  
>already have makefile.

err ... no ... the reason makefiles bite can basically be summed up as
speed and readability. Many make files execute java once per .java file
which just sucks down performance (usually faster to just delete all .class
files and compile whol tree). Makefiles are also impossible to read if the
makefile writer decided to use some nifty tricks.

>I think we should bother because tools like Ant provide the building  
>blocks which enable as wide a developer community as possible to be  
>involved in contributing to open source projects.  Why make it necessary  
>for someone who doesn't live in a DOS window or on a Unix command-line to  
>start trying to fathom the idiosyncrasies of csh or batch files when it  
>just takes a little more effort on Ant to make that understanding  

who saids they have to understand it ? Only developers for ant who need to
alter them need to change them and there haven't been many changes
necessary to warrant the complexity and limiting factors you would impose.
There may be a case if there was several developers who worked on different
platforms not supported (Mac is the only one I can think of...) but in
general this hasn't been a problem - no one has even brought it up till you.

>Ant should, in my opinion, be no different from any other Jakarta project,  
>and I think they should all rely as little as possible on shell scripts  
>and as much as possible on Ant.

They rely on as little as possible no more and no *less*. Many still use
custom scripts to wrap around ant[|.bat] for their particular purposes.
Maybe in the future ant will be mature enough to solve everything but it is
not now and not while it has to be used in jdk1.1 and jdk1.2 environments.



| "Nearly all men can stand adversity, but if you want |
| to test a man's character, give him power."          |
|       -Abraham Lincoln                               |

View raw message