Re: The Kaffe instance and ant-bootstrap

2004-11-02 Thread Stefan Bodewig
On Sun, 31 Oct 2004, Dalibor Topic [EMAIL PROTECTED] wrote:
 Stefan Bodewig bodewig at apache.org writes:
 
 Ant's bootstrap script can use jikes easily by setting the JAVAC
 environment variable.
 
 Ah, cool, I didn't know that. Since which version of ant is that the
 case?

Hmm, the change has been made four years ago for the jpackage folks
(who wanted to bootstrap using jikes ;-).  So it in there since 
Ant 1.3.

http://cvs.apache.org/viewcvs.cgi/ant/bootstrap.sh?r1=1.22r2=1.23

 Yes. the main reason is that kjc is not greedy wrt to resolving
 missing classes, whereas most other compilers are, so people
 naturally write build.xml files that don't work with kjc, which
 needs to be fed all classes on the command line.

Detecting those builds may be interesting in itself, but folks would
be unlikely to change their build files - but rather tell you that
kopi was broken.

Cheers

Stefan

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: The Kaffe instance and ant-bootstrap

2004-11-02 Thread Dalibor Topic
Stefan Bodewig bodewig at apache.org writes:

 
 On Sun, 31 Oct 2004, Dalibor Topic robilad at kaffe.org wrote:
  Stefan Bodewig bodewig at apache.org writes:
  
  Ant's bootstrap script can use jikes easily by setting the JAVAC
  environment variable.
  
  Ah, cool, I didn't know that. Since which version of ant is that the
  case?
 
 Hmm, the change has been made four years ago for the jpackage folks
 (who wanted to bootstrap using jikes .  So it in there since 
 Ant 1.3.
 
 http://cvs.apache.org/viewcvs.cgi/ant/bootstrap.sh?r1=1.22r2=1.23

Thanks, I should have just read the source :)

  Yes. the main reason is that kjc is not greedy wrt to resolving
  missing classes, whereas most other compilers are, so people
  naturally write build.xml files that don't work with kjc, which
  needs to be fed all classes on the command line.
 
 Detecting those builds may be interesting in itself, but folks would
 be unlikely to change their build files - but rather tell you that
 kopi was broken.

Yeah. I guess both the greedy and the minimalist approach have their 
pros and cons, but the greedy approach has become so common, that it 
wouldn't be likely that someone would maintain the build for the 
minimalist approach, I assume, unless it offered some major breakthrough
in compiling Java code :)

Otoh, it may be interesting to write a 'greedyness' wrapper for compilers
in ant, rather then implementing greedy dependency handling in each 
minimalist compiler[1] separately. If Ant maintains dependency information,
it could use that to generate transitive dependency closures of sources
needed to build, right?

cheers,
dalibor topic

[1] kjc, gcj, possibly ikvmc[2], jc's genobj[3], and other
java-to-something-unusual compiler tools.
[2] http://www.ikvm.net/userguide/ikvmc.html
[3] http://jcvm.sourceforge.net/doc/jc.html#genobj


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: The Kaffe instance and ant-bootstrap

2004-11-02 Thread Dalibor Topic
Stefan Bodewig bodewig at apache.org writes:

 
 On Tue, 2 Nov 2004, Niclas Hedhman niclas at hedhman.org wrote:
  On Monday 01 November 2004 21:12, Dalibor Topic wrote:
  
  Since you're using the normal debian packages, setting a few
  additional env vars should do the trick for the bootstrap with
  kaffe:
 
   extras for ant bootstrap with kaffe
  ##
  ## Use jikes with kaffe's class libraries on bootclasspath
  export JAVAC=jikes-kaffe
 
  ## Jikes doesn't like javac.source=1.2 in build.xml, but only
  ## accepts 1.3 or 1.4 export ANT_OPTS=-Dbuild.compiler=jikes
  ## -Djavac.source=1.3
  
  So, are you suggesting that we do the above, or are you suggesting
  that we should prepare to get Kaffe from CVS?
 
 Only that we (well, anybody with root privileges) install the
 appropriate jikes package and set the two env variables before
 starting the bootstrap script.

Yep. Getting  building Kaffe from CVS is probably too much manual labour 
if you don't intend to hack on Kaffe specifically, while anyone can 
update the installed versions of kaffe and jikes-kaffe using apt, I guess. 
And I can take care of injecting bug fixes from/for gump into Kaffe's 
package on debian, being on the pkg-kaffe team there ;)

 The workspace will need to set the build.compiler property to jikes
 for all Ant builds as well.

Yep. Is setting the environment variable ANT_OPTS enough for gump's ant builds,
or does one need to put it somewhere special, too?

cheers,
dalibor topic


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: The Kaffe instance and ant-bootstrap

2004-11-02 Thread Stefan Bodewig
On Tue, 2 Nov 2004, Dalibor Topic [EMAIL PROTECTED] wrote:
 Stefan Bodewig bodewig at apache.org writes:

 The workspace will need to set the build.compiler property to jikes
 for all Ant builds as well.
 
 Yep. Is setting the environment variable ANT_OPTS enough for gump's
 ant builds,

No.  ANT_OPTS is only used by the Ant wrapper script and Gump invokes
Ant via java directly.

 or does one need to put it somewhere special, too?

Yes.  Inside the workspace definition one used to be able to specify
arbitrary properties to be passed to Ant.  I'd expect that to still be
true.

Stefan

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: The Kaffe instance and ant-bootstrap

2004-11-01 Thread Dalibor Topic
Dalibor Topic robilad at kaffe.org writes:
 
 I've had to solve a similart problem for bootstrapping ant with kaffe 
 jikes in
 kaffe-extras module of kaffe's CVS. There I've patched ant's bootstrap scripts
 for that [1] but of course setting env vars is more elegant ;)

And I can confirm that it works for me with Kaffe's CVS head. Since you're using
the normal debian packages, setting a few additional env vars should do the
trick for the bootstrap with kaffe:

 extras for ant bootstrap with kaffe
##
## Use jikes with kaffe's class libraries on bootclasspath
export JAVAC=jikes-kaffe

## Jikes doesn't like javac.source=1.2 in build.xml, but only accepts 1.3 or 1.4
export ANT_OPTS=-Dbuild.compiler=jikes -Djavac.source=1.3

The next issue I had was a bug in GNU JAXP's lookup of SAX parsers. Thanks to
gump for making it easy to spot! ;)

With the issue fixed in my local kaffe tree, ant bootstraps fine and dies on ant
build die to missing configuration bits: xml-apis, and xml-xalan. That's my next
target ;)

cheers,
dalibor topic


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: The Kaffe instance and ant-bootstrap

2004-11-01 Thread Niclas Hedhman
On Monday 01 November 2004 21:12, Dalibor Topic wrote:

 Since you're
 using the normal debian packages, setting a few additional env vars should
 do the trick for the bootstrap with kaffe:

  extras for ant bootstrap with kaffe
 ##
 ## Use jikes with kaffe's class libraries on bootclasspath
 export JAVAC=jikes-kaffe

 ## Jikes doesn't like javac.source=1.2 in build.xml, but only accepts 1.3
 or 1.4 export ANT_OPTS=-Dbuild.compiler=jikes -Djavac.source=1.3

So, are you suggesting that we do the above, or are you suggesting that we 
should prepare to get Kaffe from CVS?

Cheers
Niclas
-- 
   +--//---+
  / http://www.bali.ac/
 / http://niclas.hedhman.org / 
+--//---+


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: The Kaffe instance and ant-bootstrap

2004-10-31 Thread Dalibor Topic
Stefan Bodewig bodewig at apache.org writes:
 
 On Wed, 27 Oct 2004, Niclas Hedhman niclas at hedhman.org wrote:
 
  I have looked at the Kaffe instance and its inability to create the
  Ant bootstrap.
  
  The first level of problem is that the Kaffe compiler doesn't imply
  any source files that are not specified, and that results in the
  immense number of Cannot find class.
 
 I think the only viable solution is to drop kopi and use jikes as a
 compiler.  The very same problem is likely to come up in javac tasks
 later on as well.

Yes.

 There already is an issue in Jira for this.
 
 Ant's bootstrap script can use jikes easily by setting the JAVAC
 environment variable.

Ah, cool, I didn't know that. Since which version of ant is that the case?

  I don't know if we should proceed by convincing Ant to introduce
  this to their codebase, or we should maintain a separate bootstrap
  script.
 
 I'd prefer to really not use kopi at all.  I've been told that even
 the Kaffe people prefer to use Jikes.

Yes. the main reason is that kjc is not greedy wrt to resolving missing
 classes,
whereas most other compilers are, so people naturally write build.xml 
files that
don't work with kjc, which needs to be fed all classes on the command line.

 Any approach like yours will need to be maintained when classes get
 added to Ant.

Sorry for the late reply, I've been busy with some other issues, unfortunately.
I'll look into making the bootstrap work with jikes  kaffe in debian by setting
the JAVAC env var.

I've had to solve a similart problem for bootstrapping ant with kaffe  jikes in
kaffe-extras module of kaffe's CVS. There I've patched ant's bootstrap scripts
for that [1] but of course setting env vars is more elegant ;)

cheers,
dalibor topic

[1] 
http://www.kaffe.org/cgi-bin/viewcvs.cgi/kaffe-extras/patches/
ant-kaffe-1.1.3.diff?annotate=1.2


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: The Kaffe instance and ant-bootstrap

2004-10-27 Thread Stefan Bodewig
On Wed, 27 Oct 2004, Niclas Hedhman [EMAIL PROTECTED] wrote:

 I have looked at the Kaffe instance and its inability to create the
 Ant bootstrap.
 
 The first level of problem is that the Kaffe compiler doesn't imply
 any source files that are not specified, and that results in the
 immense number of Cannot find class.

I think the only viable solution is to drop kopi and use jikes as a
compiler.  The very same problem is likely to come up in javac tasks
later on as well.

There already is an issue in Jira for this.

Ant's bootstrap script can use jikes easily by setting the JAVAC
environment variable.

 I don't know if we should proceed by convincing Ant to introduce
 this to their codebase, or we should maintain a separate bootstrap
 script.

I'd prefer to really not use kopi at all.  I've been told that even
the Kaffe people prefer to use Jikes.

Any approach like yours will need to be maintained when classes get
added to Ant.

Stefan

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



The Kaffe instance and ant-bootstrap

2004-10-26 Thread Niclas Hedhman

Gang,

I have looked at the Kaffe instance and its inability to create the Ant 
bootstrap.

The first level of problem is that the Kaffe compiler doesn't imply any source 
files that are not specified, and that results in the immense number of 
Cannot find class.
Unfortunately, all classes can not be specified either, as that requires 
external dependencies, so I have gone through and class by class added what 
is needed for the bootstrap to succeed this stage (see below). 

I don't know if we should proceed by convincing Ant to introduce this to their 
codebase, or we should maintain a separate bootstrap script.

WDYT?

Cheers
Niclas

P.S.  After this passes, there are other issues further down in the bootstrap 
script, but I haven't worked on those yet.

echo ... Compiling Ant Classes

${JAVAC} $BOOTJAVAC_OPTS -d ${CLASSDIR} \
${TOOLS}/bzip2/*.java \
${TOOLS}/tar/*.java \
${TOOLS}/zip/*.java \
${TOOLS}/ant/types/*.java \
${TOOLS}/ant/*.java \
${TOOLS}/ant/taskdefs/*.java \
${TOOLS}/ant/taskdefs/compilers/*.java \
${TOOLS}/ant/taskdefs/condition/*.java \
${TOOLS}/ant/dispatch/DispatchUtils.java \
${TOOLS}/ant/dispatch/Dispatchable.java \
${TOOLS}/ant/filters/ChainableReader.java \
${TOOLS}/ant/filters/ClassConstants.java \
${TOOLS}/ant/filters/EscapeUnicode.java \
${TOOLS}/ant/filters/ExpandProperties.java \
${TOOLS}/ant/filters/HeadFilter.java \
${TOOLS}/ant/filters/LineContains.java \
${TOOLS}/ant/filters/LineContainsRegExp.java \
${TOOLS}/ant/filters/PrefixLines.java \
${TOOLS}/ant/filters/ReplaceTokens.java \
${TOOLS}/ant/filters/StripJavaComments.java \
${TOOLS}/ant/filters/StripLineBreaks.java \
${TOOLS}/ant/filters/StripLineComments.java \
${TOOLS}/ant/filters/TabsToSpaces.java \
${TOOLS}/ant/filters/TailFilter.java \
${TOOLS}/ant/filters/TokenFilter.java \
${TOOLS}/ant/filters/util/ChainReaderHelper.java \
${TOOLS}/ant/helper/DefaultExecutor.java \
${TOOLS}/ant/helper/KeepGoingExecutor.java \
${TOOLS}/ant/helper/ProjectHelper2.java \
${TOOLS}/ant/helper/ProjectHelperImpl.java \
${TOOLS}/ant/helper/SingleCheckExecutor.java \
${TOOLS}/ant/input/DefaultInputHandler.java \
${TOOLS}/ant/input/InputHandler.java \
${TOOLS}/ant/input/InputRequest.java \
${TOOLS}/ant/input/MultipleChoiceInputRequest.java \
${TOOLS}/ant/launch/AntMain.java \
${TOOLS}/ant/taskdefs/email/EmailTask.java \
${TOOLS}/ant/taskdefs/email/Mailer.java \
${TOOLS}/ant/taskdefs/email/PlainMailer.java \
${TOOLS}/mail/MailMessage.java \
${TOOLS}/mail/ErrorInQuitException.java \
${TOOLS}/mail/SmtpResponseReader.java \
${TOOLS}/ant/taskdefs/rmic/KaffeRmic.java \
${TOOLS}/ant/taskdefs/rmic/ForkingSunRmic.java \
${TOOLS}/ant/taskdefs/rmic/WLRmic.java \
${TOOLS}/ant/taskdefs/rmic/SunRmic.java \
${TOOLS}/ant/taskdefs/rmic/RmicAdapter.java \
${TOOLS}/ant/taskdefs/rmic/RmicAdapterFactory.java \
${TOOLS}/ant/types/selectors/AndSelector.java \
${TOOLS}/ant/types/selectors/ContainsRegexpSelector.java \
${TOOLS}/ant/types/selectors/ContainsSelector.java \
${TOOLS}/ant/types/selectors/DateSelector.java \
${TOOLS}/ant/types/selectors/DependSelector.java \
${TOOLS}/ant/types/selectors/DepthSelector.java \
${TOOLS}/ant/types/selectors/DifferentSelector.java \
${TOOLS}/ant/types/selectors/ExtendSelector.java \
${TOOLS}/ant/types/selectors/ExtendFileSelector.java \
${TOOLS}/ant/types/selectors/FileSelector.java \
${TOOLS}/ant/types/selectors/FilenameSelector.java \
${TOOLS}/ant/types/selectors/MajoritySelector.java \
${TOOLS}/ant/types/selectors/NoneSelector.java \
${TOOLS}/ant/types/selectors/NotSelector.java \
${TOOLS}/ant/types/selectors/OrSelector.java \
${TOOLS}/ant/types/selectors/PresentSelector.java \
${TOOLS}/ant/types/selectors/SelectSelector.java \
${TOOLS}/ant/types/selectors/SelectorContainer.java \
${TOOLS}/ant/types/selectors/SelectorScanner.java \
${TOOLS}/ant/types/selectors/SelectorUtils.java \
${TOOLS}/ant/types/selectors/SizeSelector.java \
${TOOLS}/ant/types/selectors/TypeSelector.java \
${TOOLS}/ant/types/selectors/modifiedselector/ModifiedSelector.java \
${TOOLS}/ant/types/selectors/modifiedselector/Algorithm.java \
${TOOLS}/ant/types/selectors/modifiedselector/PropertiesfileCache.java \
${TOOLS}/ant/types/selectors/modifiedselector/DigestAlgorithm.java \
${TOOLS}/ant/types/selectors/modifiedselector/EqualComparator.java \
${TOOLS}/ant/types/selectors/modifiedselector/HashvalueAlgorithm.java \
${TOOLS}/ant/types/selectors/modifiedselector/ChecksumAlgorithm.java \
${TOOLS}/ant/util/ClasspathUtils.java \
${TOOLS}/ant/util/CollectionUtils.java \
${TOOLS}/ant/util/CompositeMapper.java \
${TOOLS}/ant/util/ConcatFileInputStream.java \
${TOOLS}/ant/util/ContainerMapper.java \