ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Bullock <>
Subject RE: What is a 'declarative' language
Date Tue, 27 Mar 2001 10:07:33 GMT
On Tue, 27 Mar 2001, Tim Vernum wrote:

> I'd like to see list/set based operations. But I like them because
> they're a fairly clean, simple, and powerful way of supporting 
> iteration, not because they're declarative.

Point taken. :-)

The request for 'declarative' comes from people who wish to attempt to parallelise execution
of Ant tasks in a distributed ( multi-machine / multi-OS ) fashion.

I think the contention is that, if the dependency graph cannot be determined by each execution
context at startup ( which is the benefit of a purely declarative language ), then it makes
the task of implementing this more difficult.

Without thinking too much about it yet, there seem to be two basic approaches to 'distributed
ant' possible here:

1a) a 'controller' antd process invokes the task-building services of various other antd's
 ... that is, the controller knows what the dependency graph is, and simply farms out work
at a task-atomic level.

1b) as for 1a, except that chunks of the dependency graph are farmed out at a time (non task-atomic)

2) a set of antd services is given a build-file to build, and a pointer to a shared BuildState
kept in JNDI ( or something like that )

Intuitively, model 2 seems more flexible.  Not sure what the benefits of knowing the dependency
graph at startup would be.
Model 1a doesn't seem to have any special requirements for the dependency graph to be known
at startup.
Model 1b would require the dependency graph to be known at startup, and not to change.

I really think the 'declarative' discussion is up to the people who want to do 'distributed
ant' sometime in the future.  What are the constraints on the buildfile language that would
really be showstoppers if not observed?

( I should add that, in the multi-tool world of Java, it is important to be able to do distributed
builds on different underlying OS's )


Thanks everyone, for Ant!

David Bullock
LISAsoft Project Lead
Sun Certified Programmer for the Java 2 Platform 
mobile: +61 4 0290 1228

"The key ingredients of success are a crystal-clear goal, 
a realistic attack plan to achieve that goal, 
and consistent, daily action to reach that goal."

Steve Maguire, "Debugging the Development Process". 


Adelaide                  Sydney
--------------------      ------------------------
38 Greenhill Rd           Level 3, 228 Pitt Street
Wayville S.A. 5034        Sydney NSW 2000
Australia                 Australia

PH  +61 8 8272 1555       PH  +61 2 9283 0877
FAX +61 8 8271 1199       FAX +61 2 9283 0866
--------------------      ------------------------

View raw message