Aardvark 0.3.3 released

22 views
Skip to first unread message

Brian Chang

unread,
May 1, 2011, 8:24:30 PM5/1/11
to aardv...@googlegroups.com
It's been a month since 0.3.2, and I'm releasing 0.3.3 at some users' requests, with some important new features.

Aardvark is still lacking comprehensive documentation, and until I have it, I've been holding off on a wider announcement.  Please be assured, I'm working to that end.


Project-level properties
Your .vark file now has three global properties that you can set, corresponding with the three attributes of Ant's <project> element.
  ProjectName : java.lang.String
  DefaultTarget : java.lang.String
  BaseDir : java.io.File

If you're like me, you may have been craving for a way, for awhile now, to set a default target.  Sorry it took me so long.

Performance improvements
Depending on the size of your buildfile, you may observe up to 10-20% improvement in parsing time during startup.  Thanks, Carson Gross.

Antlibs
You're now able to add antlibs from third-party jars.  Add the jar into the lib/ directory, and a "#antlib" definition into some commented section your .vark file.  This syntax goes as such:
  // #antlib <gosu-symbol> <task-listing-resource>
where 

For example, if Ivy weren't already built into Aardvark, you would define it with the following:
  // #antlib Ivy org/apache/ivy/ant/antlib.xml

Then Aardvark will provide a type, gw.vark.antlibs.Ivy, with static functions representing the Ivy tasks.

Your .vark file automatically "uses gw.vark.antlibs.*", but if you want to use any antlib type in some other Gosu resource, you will need to import the type yourself.

A small API change
While working on the antlib feature above, I concluded that it was wrong to "expose" antlib types with the global properties Ant and Ivy.  The task functions are static, and so it's misleading that we're using instances of the types as returned by the global properties.  In most cases, the code should look the same and you shouldn't be affected.  If you do encounter issues, just bear in mind that these symbols (Ant, Ivy, etc.) now represent types always, and as I mentioned above, you may have to import them if you're in a Gosu resource other than your .vark file.

Carson Gross

unread,
May 1, 2011, 8:36:24 PM5/1/11
to aardv...@googlegroups.com
Shouldn't the DefaultTarget be a feature literal?  ;)

Cheers,
Carson

Brian Chang

unread,
May 1, 2011, 8:59:00 PM5/1/11
to aardv...@googlegroups.com
Yep. I'll probably move over to feature literals for DefaultTarget and and @Depends before the wide release.  That will be a bigger API change - just a warning.

JP

unread,
May 1, 2011, 9:16:09 PM5/1/11
to Aardvark
Nice. These are definitely features i've been looking foward to, so I
have the capability to replace more complicated ant scripts (namely
scripts that include antlib functionality). Also added in the ability
to run a vark file from textmate, now that it can provide a default.

I didn't think of being able to use feature literals within a class
itself to grab a method by just prepending "#", pretty sick. However,
how would it work for something like DefaultTarget?

On May 1, 8:59 pm, Brian Chang <bchan...@gmail.com> wrote:
> Yep. I'll probably move over to feature literals for DefaultTarget and and
> @Depends before the wide release.  That will be a bigger API change - just a
> warning.
>
>
>
>
>
>
>
>
>
> On Sun, May 1, 2011 at 5:36 PM, Carson Gross <carsongr...@gmail.com> wrote:
> > Shouldn't the DefaultTarget be a feature literal?  ;)
>
> > Cheers,
> > Carson
>
> > On May 1, 2011, at 5:24 PM, Brian Chang wrote:
>
> > It's been a month since 0.3.2, and I'm releasing 0.3.3 at some users'
> > requests, with some important new features.
>
> > Aardvark is still lacking comprehensive documentation, and until I have it,
> > I've been holding off on a wider announcement.  Please be assured, I'm
> > working to that end.
>
> > *Project-level properties*
> > Your .vark file now has three global properties that you can set,
> > corresponding with the three attributes of Ant's <project> element.
> >   ProjectName : java.lang.String
> >   DefaultTarget : java.lang.String
> >   BaseDir : java.io.File
>
> > If you're like me, you may have been craving for a way, for awhile now, to
> > set a default target.  Sorry it took me so long.
>
> > *Performance improvements*
> > Depending on the size of your buildfile, you may observe up to 10-20%
> > improvement in parsing time during startup.  Thanks, Carson Gross.
>
> > *Antlibs*
> > You're now able to add antlibs from third-party jars.  Add the jar into the
> > lib/ directory, and a "#antlib" definition into some commented section your
> > .vark file.  This syntax goes as such:
> >   // #antlib <gosu-symbol> <task-listing-resource>
> > where
>
> > For example, if Ivy weren't already built into Aardvark, you would define
> > it with the following:
> >   // #antlib Ivy org/apache/ivy/ant/antlib.xml
>
> > Then Aardvark will provide a type, gw.vark.antlibs.Ivy, with static
> > functions representing the Ivy tasks.
>
> > Your .vark file automatically "uses gw.vark.antlibs.*", but if you want to
> > use any antlib type in some other Gosu resource, you will need to import the
> > type yourself.
>
> > *A small API change*
> > While working on the antlib feature above, I concluded that it was wrong to
> > "expose" antlib types with the global properties Ant and Ivy.  The task
> > functions are static, and so it's misleading that we're using instances of
> > the types as returned by the global properties.  In most cases, the code
> > should look the same and you shouldn't be affected.  If you do encounter
> > issues, just bear in mind that these symbols (Ant, Ivy, etc.) now represent
> > types always, and as I mentioned above, you may have to import them if
> > you're in a Gosu resource other than your .vark file.
>
> > --
> > Brian
> > bchan...@gmail.com
>
> --
> Brian
> bchan...@gmail.com

JP

unread,
May 1, 2011, 9:21:18 PM5/1/11
to Aardvark
Oh nm I get it. you meant use feature literal to set the default,
instead of a string. I thought you meant using it for the
DefaultTarget syntax itself.

Brian Chang

unread,
May 1, 2011, 9:44:14 PM5/1/11
to aardv...@googlegroups.com
Oh, one more thing.  Some of tests were failing in Windows, as a couple of you had observed.  It was due to an Windows-specific EOL issue in the test infrastructure, which I've since fixed.  The production code, fortunately, was fine.

JP

unread,
May 2, 2011, 9:14:09 AM5/2/11
to Aardvark
Couple issues trying to use the antlibs (this is on a Windows 7
machine - haven't tried the antlib stuff on mac yet).
It doesn't fail if I simply include the #antlib - here's my antlib
declaration:
// #antlib AntContrib net/sf/antcontrib/antlib.xml
// #antlib Ant4Eclipse org/ant4eclipse/antlib.xml

But once I try to use them, that's when it fails (all I did was a
print(AntContrib)).


First, this may be my issue, but if I have:
classpath "src,lib"
at the beginning of my vark file - should that pick up the jars in the
lib folder? It isn't - and here's the error I get:


vark
Buildfile: [path here]\build.vark
java.lang.NullPointerException
at
org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:
262)
at
org.apache.tools.ant.helper.ProjectHelper2.parseUnknownElement(ProjectHelper2.java:
131)
at
org.apache.tools.ant.helper.ProjectHelper2.parseAntlibDescriptor(ProjectHelper2.java:
111)
at
gw.vark.typeloader.AntlibTypeInfo.readTaskListingFromAntlib(AntlibTypeInfo.java:
104)
at
gw.vark.typeloader.AntlibTypeInfo.initTasks(AntlibTypeInfo.java:60)
at
gw.vark.typeloader.AntlibTypeInfo.<init>(AntlibTypeInfo.java:44)
at gw.vark.typeloader.AntlibType$1.init(AntlibType.java:21)
at gw.vark.typeloader.AntlibType$1.init(AntlibType.java:18)
at gw.util.concurrent.LazyVar.get(LazyVar.java:63)
at gw.vark.typeloader.AntlibType.getTypeInfo(AntlibType.java:
63)
at
gw.vark.typeloader.AntlibType_Proxy.getTypeInfo(gw.vark.typeloader.AntlibType_Proxy:
2)
at
gw.internal.gosu.parser.expressions.TypeLiteral.setType(TypeLiteral.java:
96)
at
gw.internal.gosu.parser.expressions.TypeLiteral.<init>(TypeLiteral.java:
44)
at
gw.internal.gosu.parser.GosuParser.resolveTypeLiteral(GosuParser.java:
11789)
at
gw.internal.gosu.parser.GosuParser.resolveTypeLiteral(GosuParser.java:
11721)
at
gw.internal.gosu.parser.GosuParser.resolveTypeLiteral(GosuParser.java:
11716)
at
gw.internal.gosu.parser.GosuParser.tryToMakeTypeLiteral(GosuParser.java:
5502)
at
gw.internal.gosu.parser.GosuParser.parseIdentifierOrTypeLiteralOrEnumConstant(GosuParser.java:
5495)
at
gw.internal.gosu.parser.GosuParser._parseNameOrMethodCall(GosuParser.java:
5241)
at
gw.internal.gosu.parser.GosuParser.parseNameOrMethodCall(GosuParser.java:
4981)
at
gw.internal.gosu.parser.GosuParser._parsePrimaryExpression(GosuParser.java:
2951)
at
gw.internal.gosu.parser.GosuParser.parsePrimaryExpression(GosuParser.java:
2900)
at
gw.internal.gosu.parser.GosuParser._parseUnaryExpressionNotPlusMinus(GosuParser.java:
2848)
at
gw.internal.gosu.parser.GosuParser.parseUnaryExpressionNotPlusMinus(GosuParser.java:
2734)
at
gw.internal.gosu.parser.GosuParser._parseUnaryExpression(GosuParser.java:
2716)
at
gw.internal.gosu.parser.GosuParser.parseUnaryExpression(GosuParser.java:
2685)
at
gw.internal.gosu.parser.GosuParser._parseUnaryExpressionNotPlusMinus(GosuParser.java:
2822)
at
gw.internal.gosu.parser.GosuParser.parseUnaryExpressionNotPlusMinus(GosuParser.java:
2734)
at
gw.internal.gosu.parser.GosuParser._parseUnaryExpression(GosuParser.java:
2716)
at
gw.internal.gosu.parser.GosuParser.parseUnaryExpression(GosuParser.java:
2685)
at
gw.internal.gosu.parser.GosuParser._parseTypeAsExpression(GosuParser.java:
2622)
at
gw.internal.gosu.parser.GosuParser.parseTypeAsExpression(GosuParser.java:
2617)
at
gw.internal.gosu.parser.GosuParser._parseMultiplicativeExpression(GosuParser.java:
2578)
at
gw.internal.gosu.parser.GosuParser.parseMultiplicativeExpression(GosuParser.java:
2572)
at
gw.internal.gosu.parser.GosuParser._parseAdditiveExpression(GosuParser.java:
2505)
at
gw.internal.gosu.parser.GosuParser.parseAdditiveExpression(GosuParser.java:
2498)
at
gw.internal.gosu.parser.GosuParser._parseBitshiftExpression(GosuParser.java:
2429)
at
gw.internal.gosu.parser.GosuParser.parseBitshiftExpression(GosuParser.java:
2422)
at
gw.internal.gosu.parser.GosuParser._parseIntervalExpression(GosuParser.java:
2361)
at
gw.internal.gosu.parser.GosuParser.parseIntervalExpression(GosuParser.java:
2354)
at
gw.internal.gosu.parser.GosuParser._parseRelationalExpression(GosuParser.java:
2274)
at
gw.internal.gosu.parser.GosuParser.parseRelationalExpression(GosuParser.java:
2267)
at
gw.internal.gosu.parser.GosuParser._parseEqualityExpression(GosuParser.java:
1996)
at
gw.internal.gosu.parser.GosuParser.parseEqualityExpression(GosuParser.java:
1990)
at
gw.internal.gosu.parser.GosuParser._parseBitwiseAndExpression(GosuParser.java:
1934)
at
gw.internal.gosu.parser.GosuParser.parseBitwiseAndExpression(GosuParser.java:
1928)
at
gw.internal.gosu.parser.GosuParser._parseBitwiseXorExpression(GosuParser.java:
1874)
at
gw.internal.gosu.parser.GosuParser.parseBitwiseXorExpression(GosuParser.java:
1868)
at
gw.internal.gosu.parser.GosuParser._parseBitwiseOrExpression(GosuParser.java:
1799)
at
gw.internal.gosu.parser.GosuParser.parseBitwiseOrExpression(GosuParser.java:
1793)
at
gw.internal.gosu.parser.GosuParser._parseConditionalAndExpression(GosuParser.java:
1739)
at
gw.internal.gosu.parser.GosuParser.parseConditionalAndExpression(GosuParser.java:
1733)
at
gw.internal.gosu.parser.GosuParser._parseConditionalOrExpression(GosuParser.java:
1673)
at
gw.internal.gosu.parser.GosuParser.parseConditionalOrExpression(GosuParser.java:
1667)
at
gw.internal.gosu.parser.GosuParser._parseConditionalExpression(GosuParser.java:
1537)
at
gw.internal.gosu.parser.GosuParser.parseConditionalExpression(GosuParser.java:
1529)
at
gw.internal.gosu.parser.GosuParser.parseExpression(GosuParser.java:
1339)
at
gw.internal.gosu.parser.GosuParser.parseArgExpression(GosuParser.java:
6482)
at
gw.internal.gosu.parser.GosuParser.parseArgumentList(GosuParser.java:
6308)
at
gw.internal.gosu.parser.GosuParser.parsePlainFunction(GosuParser.java:
5649)
at
gw.internal.gosu.parser.GosuParser._parseNameOrMethodCall(GosuParser.java:
5032)
at
gw.internal.gosu.parser.GosuParser.parseNameOrMethodCall(GosuParser.java:
4981)
at
gw.internal.gosu.parser.GosuParser._parsePrimaryExpression(GosuParser.java:
2951)
at
gw.internal.gosu.parser.GosuParser.parsePrimaryExpression(GosuParser.java:
2900)
at
gw.internal.gosu.parser.GosuParser.parseAssignmentOrMethodCall(GosuParser.java:
9722)
at
gw.internal.gosu.parser.GosuParser._parseStatement(GosuParser.java:
8087)
at
gw.internal.gosu.parser.GosuParser.parseStatement(GosuParser.java:
7952)
at
gw.internal.gosu.parser.GosuParser.parseStatement(GosuParser.java:
7920)
at
gw.internal.gosu.parser.GosuParser.parseStatementsAndDetectUnreachable(GosuParser.java:
538)
at
gw.internal.gosu.parser.GosuParser.parseStatementBlock(GosuParser.java:
9260)
at
gw.internal.gosu.parser.GosuParser.parseStatement(GosuParser.java:
7946)
at
gw.internal.gosu.parser.GosuParser.parseStatement(GosuParser.java:
7920)
at
gw.internal.gosu.parser.GosuParser.parseFunctionBody(GosuParser.java:
10775)
at
gw.internal.gosu.parser.GosuParser.parseBaseFunctionDefinition(GosuParser.java:
10463)
at
gw.internal.gosu.parser.GosuClassParser.parseClassMembers(GosuClassParser.java:
2730)
at
gw.internal.gosu.parser.GosuClassParser.parseClassStatement(GosuClassParser.java:
2617)
at
gw.internal.gosu.parser.GosuClassParser.parseDefinitions(GosuClassParser.java:
383)
at
gw.internal.gosu.parser.GosuClass.compileDefinitionsIfNeeded(GosuClass.java:
1650)
at
gw.internal.gosu.parser.GosuClass.compileDefinitionsIfNeeded(GosuClass.java:
1599)
at gw.internal.gosu.parser.GosuClass.isValid(GosuClass.java:
897)
at
gw.internal.gosu.parser.GosuProgram_Proxy.isValid(gw.internal.gosu.parser.GosuProgram_Proxy:
2)
at
gw.internal.gosu.parser.GosuProgramParser.parseExpressionOrProgram(GosuProgramParser.java:
122)
at gw.vark.Aardvark.parseAardvarkProgram(Aardvark.java:363)
at
gw.vark.Aardvark.parseAardvarkProgramWithTimer(Aardvark.java:343)
at gw.vark.Aardvark.start(Aardvark.java:123)
at gw.vark.launch.Launcher.run(Launcher.java:91)
at gw.vark.launch.Launcher.main(Launcher.java:53)
Classpath: C:\Gosu\aardvark\lib\aardvark-launcher.jar;C:\Gosu\aardvark
\lib\aardvark-vedit.jar;C:\Gosu\aardvark\lib\aardvark.jar;C:\Gosu\aard
vark\lib\ant-antlr.jar;C:\Gosu\aardvark\lib\ant-apache-bcel.jar;C:\Gosu
\aardvark\lib\ant-apache-bsf.jar;C:\Gosu\aardvark\lib\ant-apache-log4
j.jar;C:\Gosu\aardvark\lib\ant-apache-oro.jar;C:\Gosu\aardvark\lib\ant-
apache-regexp.jar;C:\Gosu\aardvark\lib\ant-apache-resolver.jar;C:\Gos
u\aardvark\lib\ant-apache-xalan2.jar;C:\Gosu\aardvark\lib\ant-commons-
logging.jar;C:\Gosu\aardvark\lib\ant-commons-net.jar;C:\Gosu\aardvark\
lib\ant-jai.jar;C:\Gosu\aardvark\lib\ant-javamail.jar;C:\Gosu\aardvark
\lib\ant-jdepend.jar;C:\Gosu\aardvark\lib\ant-jmf.jar;C:\Gosu\aardvark
\lib\ant-jsch.jar;C:\Gosu\aardvark\lib\ant-junit.jar;C:\Gosu\aardvark
\lib\ant-launcher.jar;C:\Gosu\aardvark\lib\ant-netrexx.jar;C:\Gosu
\aard
vark\lib\ant-swing.jar;C:\Gosu\aardvark\lib\ant-testutil.jar;C:\Gosu
\aardvark\lib\ant.jar;C:\Gosu\aardvark\lib\gw-asm-3.1.jar;C:\Gosu
\aardva
rk\lib\gw-asm-analysis-3.1.jar;C:\Gosu\aardvark\lib\gw-asm-
commons-3.1.jar;C:\Gosu\aardvark\lib\gw-asm-tree-3.1.jar;C:\Gosu
\aardvark\lib\gw-
asm-util-3.1.jar;C:\Gosu\aardvark\lib\gw-commons-cli-1.0.jar;C:\Gosu
\aardvark\lib\gw-gosu-core-api.jar;C:\Gosu\aardvark\lib\gw-gosu-
core.jar
;C:\Gosu\aardvark\lib\gw-jline-0.9.94.jar;C:\Gosu\aardvark\lib
\ivy.jar;C:\Gosu\aardvark\lib\native-library-marker.jar;C:\Policy_Dev
\Java\jdk
1.6.0_14\lib\tools.jar
Launcher JAR: C:\Gosu\aardvark\lib\aardvark-launcher.jar
Launcher home: C:\Gosu\aardvark



Second, if I take the jars I need (ant-contrib, and the ant4eclipse
jars) and put them in the aardvark "lib" folder, I get a different
error:
vark
Buildfile: [path here]\build.vark
java.lang.NullPointerException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at
gw.vark.typeloader.AntlibTypeInfo.getTaskClass(AntlibTypeInfo.java:74)
at
gw.vark.typeloader.AntlibTypeInfo.addTaskAsMethod(AntlibTypeInfo.java:
126)
at
gw.vark.typeloader.AntlibTypeInfo.initTasks(AntlibTypeInfo.java:68)
at
gw.vark.typeloader.AntlibTypeInfo.<init>(AntlibTypeInfo.java:44)
at gw.vark.typeloader.AntlibType$1.init(AntlibType.java:21)
at gw.vark.typeloader.AntlibType$1.init(AntlibType.java:18)
at gw.util.concurrent.LazyVar.get(LazyVar.java:63)
at gw.vark.typeloader.AntlibType.getTypeInfo(AntlibType.java:
63)
at
gw.vark.typeloader.AntlibType_Proxy.getTypeInfo(gw.vark.typeloader.AntlibType_Proxy:
2)
at
gw.internal.gosu.parser.expressions.TypeLiteral.setType(TypeLiteral.java:
96)
at
gw.internal.gosu.parser.expressions.TypeLiteral.<init>(TypeLiteral.java:
44)
at
gw.internal.gosu.parser.GosuParser.resolveTypeLiteral(GosuParser.java:
11789)
at
gw.internal.gosu.parser.GosuParser.resolveTypeLiteral(GosuParser.java:
11721)
at
gw.internal.gosu.parser.GosuParser.resolveTypeLiteral(GosuParser.java:
11716)
at
gw.internal.gosu.parser.GosuParser.tryToMakeTypeLiteral(GosuParser.java:
5502)
at
gw.internal.gosu.parser.GosuParser.parseIdentifierOrTypeLiteralOrEnumConstant(GosuParser.java:
5495)
at
gw.internal.gosu.parser.GosuParser._parseNameOrMethodCall(GosuParser.java:
5241)
at
gw.internal.gosu.parser.GosuParser.parseNameOrMethodCall(GosuParser.java:
4981)
at
gw.internal.gosu.parser.GosuParser._parsePrimaryExpression(GosuParser.java:
2951)
at
gw.internal.gosu.parser.GosuParser.parsePrimaryExpression(GosuParser.java:
2900)
at
gw.internal.gosu.parser.GosuParser._parseUnaryExpressionNotPlusMinus(GosuParser.java:
2848)
at
gw.internal.gosu.parser.GosuParser.parseUnaryExpressionNotPlusMinus(GosuParser.java:
2734)
at
gw.internal.gosu.parser.GosuParser._parseUnaryExpression(GosuParser.java:
2716)
at
gw.internal.gosu.parser.GosuParser.parseUnaryExpression(GosuParser.java:
2685)
at
gw.internal.gosu.parser.GosuParser._parseUnaryExpressionNotPlusMinus(GosuParser.java:
2822)
at
gw.internal.gosu.parser.GosuParser.parseUnaryExpressionNotPlusMinus(GosuParser.java:
2734)
at
gw.internal.gosu.parser.GosuParser._parseUnaryExpression(GosuParser.java:
2716)
at
gw.internal.gosu.parser.GosuParser.parseUnaryExpression(GosuParser.java:
2685)
at
gw.internal.gosu.parser.GosuParser._parseTypeAsExpression(GosuParser.java:
2622)
at
gw.internal.gosu.parser.GosuParser.parseTypeAsExpression(GosuParser.java:
2617)
at
gw.internal.gosu.parser.GosuParser._parseMultiplicativeExpression(GosuParser.java:
2578)
at
gw.internal.gosu.parser.GosuParser.parseMultiplicativeExpression(GosuParser.java:
2572)
at
gw.internal.gosu.parser.GosuParser._parseAdditiveExpression(GosuParser.java:
2505)
at
gw.internal.gosu.parser.GosuParser.parseAdditiveExpression(GosuParser.java:
2498)
at
gw.internal.gosu.parser.GosuParser._parseBitshiftExpression(GosuParser.java:
2429)
at
gw.internal.gosu.parser.GosuParser.parseBitshiftExpression(GosuParser.java:
2422)
at
gw.internal.gosu.parser.GosuParser._parseIntervalExpression(GosuParser.java:
2361)
at
gw.internal.gosu.parser.GosuParser.parseIntervalExpression(GosuParser.java:
2354)
at
gw.internal.gosu.parser.GosuParser._parseRelationalExpression(GosuParser.java:
2274)
at
gw.internal.gosu.parser.GosuParser.parseRelationalExpression(GosuParser.java:
2267)
at
gw.internal.gosu.parser.GosuParser._parseEqualityExpression(GosuParser.java:
1996)
at
gw.internal.gosu.parser.GosuParser.parseEqualityExpression(GosuParser.java:
1990)
at
gw.internal.gosu.parser.GosuParser._parseBitwiseAndExpression(GosuParser.java:
1934)
at
gw.internal.gosu.parser.GosuParser.parseBitwiseAndExpression(GosuParser.java:
1928)
at
gw.internal.gosu.parser.GosuParser._parseBitwiseXorExpression(GosuParser.java:
1874)
at
gw.internal.gosu.parser.GosuParser.parseBitwiseXorExpression(GosuParser.java:
1868)
at
gw.internal.gosu.parser.GosuParser._parseBitwiseOrExpression(GosuParser.java:
1799)
at
gw.internal.gosu.parser.GosuParser.parseBitwiseOrExpression(GosuParser.java:
1793)
at
gw.internal.gosu.parser.GosuParser._parseConditionalAndExpression(GosuParser.java:
1739)
at
gw.internal.gosu.parser.GosuParser.parseConditionalAndExpression(GosuParser.java:
1733)
at
gw.internal.gosu.parser.GosuParser._parseConditionalOrExpression(GosuParser.java:
1673)
at
gw.internal.gosu.parser.GosuParser.parseConditionalOrExpression(GosuParser.java:
1667)
at
gw.internal.gosu.parser.GosuParser._parseConditionalExpression(GosuParser.java:
1537)
at
gw.internal.gosu.parser.GosuParser.parseConditionalExpression(GosuParser.java:
1529)
at
gw.internal.gosu.parser.GosuParser.parseExpression(GosuParser.java:
1339)
at
gw.internal.gosu.parser.GosuParser.parseArgExpression(GosuParser.java:
6482)
at
gw.internal.gosu.parser.GosuParser.parseArgumentList(GosuParser.java:
6308)
at
gw.internal.gosu.parser.GosuParser.parsePlainFunction(GosuParser.java:
5649)
at
gw.internal.gosu.parser.GosuParser._parseNameOrMethodCall(GosuParser.java:
5032)
at
gw.internal.gosu.parser.GosuParser.parseNameOrMethodCall(GosuParser.java:
4981)
at
gw.internal.gosu.parser.GosuParser._parsePrimaryExpression(GosuParser.java:
2951)
at
gw.internal.gosu.parser.GosuParser.parsePrimaryExpression(GosuParser.java:
2900)
at
gw.internal.gosu.parser.GosuParser.parseAssignmentOrMethodCall(GosuParser.java:
9722)
at
gw.internal.gosu.parser.GosuParser._parseStatement(GosuParser.java:
8087)
at
gw.internal.gosu.parser.GosuParser.parseStatement(GosuParser.java:
7952)
at
gw.internal.gosu.parser.GosuParser.parseStatement(GosuParser.java:
7920)
at
gw.internal.gosu.parser.GosuParser.parseStatementsAndDetectUnreachable(GosuParser.java:
538)
at
gw.internal.gosu.parser.GosuParser.parseStatementBlock(GosuParser.java:
9260)
at
gw.internal.gosu.parser.GosuParser.parseStatement(GosuParser.java:
7946)
at
gw.internal.gosu.parser.GosuParser.parseStatement(GosuParser.java:
7920)
at
gw.internal.gosu.parser.GosuParser.parseFunctionBody(GosuParser.java:
10775)
at
gw.internal.gosu.parser.GosuParser.parseBaseFunctionDefinition(GosuParser.java:
10463)
at
gw.internal.gosu.parser.GosuClassParser.parseClassMembers(GosuClassParser.java:
2730)
at
gw.internal.gosu.parser.GosuClassParser.parseClassStatement(GosuClassParser.java:
2617)
at
gw.internal.gosu.parser.GosuClassParser.parseDefinitions(GosuClassParser.java:
383)
at
gw.internal.gosu.parser.GosuClass.compileDefinitionsIfNeeded(GosuClass.java:
1650)
at
gw.internal.gosu.parser.GosuClass.compileDefinitionsIfNeeded(GosuClass.java:
1599)
at gw.internal.gosu.parser.GosuClass.isValid(GosuClass.java:
897)
at
gw.internal.gosu.parser.GosuProgram_Proxy.isValid(gw.internal.gosu.parser.GosuProgram_Proxy:
2)
at
gw.internal.gosu.parser.GosuProgramParser.parseExpressionOrProgram(GosuProgramParser.java:
122)
at gw.vark.Aardvark.parseAardvarkProgram(Aardvark.java:363)
at
gw.vark.Aardvark.parseAardvarkProgramWithTimer(Aardvark.java:343)
at gw.vark.Aardvark.start(Aardvark.java:123)
at gw.vark.launch.Launcher.run(Launcher.java:91)
at gw.vark.launch.Launcher.main(Launcher.java:53)
Classpath: C:\Gosu\aardvark\lib\aardvark-launcher.jar;C:\Gosu\aardvark
\lib\aardvark-vedit.jar;C:\Gosu\aardvark\lib\aardvark.jar;C:\Gosu\aard
vark\lib\ant-antlr.jar;C:\Gosu\aardvark\lib\ant-apache-bcel.jar;C:\Gosu
\aardvark\lib\ant-apache-bsf.jar;C:\Gosu\aardvark\lib\ant-apache-log4
j.jar;C:\Gosu\aardvark\lib\ant-apache-oro.jar;C:\Gosu\aardvark\lib\ant-
apache-regexp.jar;C:\Gosu\aardvark\lib\ant-apache-resolver.jar;C:\Gos
u\aardvark\lib\ant-apache-xalan2.jar;C:\Gosu\aardvark\lib\ant-commons-
logging.jar;C:\Gosu\aardvark\lib\ant-commons-net.jar;C:\Gosu\aardvark\
lib\ant-contrib-1.0b3.jar;C:\Gosu\aardvark\lib\ant-jai.jar;C:\Gosu
\aardvark\lib\ant-javamail.jar;C:\Gosu\aardvark\lib\ant-jdepend.jar;C:
\Gos
u\aardvark\lib\ant-jmf.jar;C:\Gosu\aardvark\lib\ant-jsch.jar;C:\Gosu
\aardvark\lib\ant-junit.jar;C:\Gosu\aardvark\lib\ant-launcher.jar;C:
\Gos
u\aardvark\lib\ant-netrexx.jar;C:\Gosu\aardvark\lib\ant-swing.jar;C:
\Gosu\aardvark\lib\ant-testutil.jar;C:\Gosu\aardvark\lib\ant.jar;C:
\Gosu
\aardvark\lib\ecj-3.5.2.jar;C:\Gosu\aardvark\lib\gw-asm-3.1.jar;C:\Gosu
\aardvark\lib\gw-asm-analysis-3.1.jar;C:\Gosu\aardvark\lib\gw-asm-com
mons-3.1.jar;C:\Gosu\aardvark\lib\gw-asm-tree-3.1.jar;C:\Gosu\aardvark
\lib\gw-asm-util-3.1.jar;C:\Gosu\aardvark\lib\gw-commons-cli-1.0.jar;C
:\Gosu\aardvark\lib\gw-gosu-core-api.jar;C:\Gosu\aardvark\lib\gw-gosu-
core.jar;C:\Gosu\aardvark\lib\gw-jline-0.9.94.jar;C:\Gosu\aardvark\lib
\ivy.jar;C:\Gosu\aardvark\lib\native-library-marker.jar;C:\Gosu
\aardvark\lib\org.ant4eclipse_1.0.0.M4.jar;C:\Gosu\aardvark\lib
\org.eclipse.o
sgi_3.5.2.R35x_v20100126.jar;C:\Program FIles\Java\jdk1.6.0_23\lib
\tools.jar
Launcher JAR: C:\Gosu\aardvark\lib\aardvark-launcher.jar
Launcher home: C:\Gosu\aardvark

Any insights?
> bchan...@gmail.com

JP

unread,
May 2, 2011, 9:15:30 AM5/2/11
to Aardvark
So I've quickly narrowed it down a bit more.
It works if I use:
// #antlib AntContrib net/sf/antcontrib/antcontrib.properties
// #antlib Ant4Eclipse org/ant4eclipse/antlib.xml

It was the antlib.xml file in antcontrib that failed. Maybe it's
because it includes a task resource of the properties file?
> \aardvark\lib\gw- ...
>
> read more »

Brian Chang

unread,
May 2, 2011, 3:18:08 PM5/2/11
to aardv...@googlegroups.com
Yeah, I remember that out of the two antlib files in antcontrib, one of them is flat out wrong and was probably left in there for legacy reasons.

Can I ask, what the heck do you use out of antcontrib when you're in Aardvark?  You know, the Gosu language gives you for-loops, and the code is a lot more concise than gosufied antcontrib.  :)

Also, you don't need/want the lib directory in your classpath statement, for Aardvark at least.  Besides, it's pointing at the lib directory under your base dir, not the one in the Aardvark installation.

JP

unread,
May 2, 2011, 4:57:57 PM5/2/11
to Aardvark
I agree I don't really need AntContrib, just using it mostly to try
out the antlib functionality. Everything antcontrib gave is surpassed
by Gosu functionality.

Not sure I understand what you mean about the "lib". I see what you
mean about not wanting lib (well, sort of. I shouldn't need that in
general, but what if there was a jar in it I wanted to use? Shouldn't
it pick it up?) but what's the standard way for including a jar?
For instance, I want to include the Ant4Eclipse jars - what do I do to
include them (the only way I got it to work was by putting them in the
aardvark lib folder).

As well, Ant4Eclipse seems to load and the type is there - but it has
no methods. The antlib.xml file looks legit, but nothing is getting
picked up.
> ...
>
> read more »

Brian Chang

unread,
May 2, 2011, 5:14:12 PM5/2/11
to aardv...@googlegroups.com
If you want to add your jar into the Aardvark classpath, simply add it into the lib directory under your Aardvark installation.  There's no more to do.

I'll play around with dropping in Ant4Eclipse later today.

Carson Gross

unread,
May 2, 2011, 5:57:08 PM5/2/11
to aardv...@googlegroups.com
I can see wanting to have project specific jars for your build, rather than global jars, if only to minimize the configuration necessary for other people to build a given project.

I think what Brian is objecting to is reusing the same /lib folder for both your build code and your production code.  Maybe stick them in a different folder?

Or maybe I'm misunderstanding...

Cheers,
Carson

Brian Chang

unread,
May 2, 2011, 6:02:39 PM5/2/11
to aardv...@googlegroups.com
Ok, the term "project specific jars" was the magic phrase that got me thinking.  Yes, we should support this, but I haven't paid a whole lot of attention to it, and I can't guarantee that it fully works this way.

Carson also mentions a valid point which I was not at all referring to, with the reuse of lib/ between the build code and the production build.

JP

unread,
May 2, 2011, 7:28:28 PM5/2/11
to Aardvark
Yea, my ineloquently expressed point was about project-specific jars.

On May 2, 6:02 pm, Brian Chang <bchan...@gmail.com> wrote:
> Ok, the term "project specific jars" was the magic phrase that got me
> thinking.  Yes, we should support this, but I haven't paid a whole lot of
> attention to it, and I can't guarantee that it fully works this way.
>
> Carson also mentions a valid point which I was not at all referring to, with
> the reuse of lib/ between the build code and the production build.
>
>
>
>
>
>
>
> On Mon, May 2, 2011 at 2:57 PM, Carson Gross <carsongr...@gmail.com> wrote:
> > I can see wanting to have project specific jars for your build, rather than
> > global jars, if only to minimize the configuration necessary for other
> > people to build a given project.
>
> > I think what Brian is objecting to is reusing the same /lib folder for both
> > your build code and your production code.  Maybe stick them in a different
> > folder?
>
> > Or maybe I'm misunderstanding...
>
> > Cheers,
> > Carson
>
> > On Mon, May 2, 2011 at 2:14 PM, Brian Chang <bchan...@gmail.com> wrote:
>
> >> If you want to add your jar into the Aardvark classpath, simply add it
> >> into the lib directory under your Aardvark installation.  There's no more to
> >> do.
>
> >> I'll play around with dropping in Ant4Eclipse later today.
>
> ...
>
> read more »
Reply all
Reply to author
Forward
0 new messages