Re: The Kaffe instance and ant-bootstrap
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
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
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
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
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
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
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
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
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 \