From f8dfde476a297220dd95ba56f18bf3b9c1df9c31 Mon Sep 17 00:00:00 2001 From: Brian Chang Date: Wed, 23 Nov 2011 07:16:14 -0800 Subject: [PATCH 1/5] point Ivy at m2 repo on http://gosu-lang.org --- build.vark | 4 ++-- ivysettings.xml | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/build.vark b/build.vark index 9e89a93..a9f56f5 100644 --- a/build.vark +++ b/build.vark @@ -47,8 +47,8 @@ function resolve() { } } - log("Renaming jvmtiaccess_linux.so to jvmtiaccess.so") - Ant.move(:file = file("lib/run/jvmtiaccess_linux.so"), :tofile = file("lib/run/jvmtiaccess.so")) + //log("Renaming jvmtiaccess_linux.so to jvmtiaccess.so") + //Ant.move(:file = file("lib/run/jvmtiaccess_linux.so"), :tofile = file("lib/run/jvmtiaccess.so")) } @Depends("resolve") diff --git a/ivysettings.xml b/ivysettings.xml index 9262f3b..9ce0d2c 100644 --- a/ivysettings.xml +++ b/ivysettings.xml @@ -3,7 +3,8 @@ - + + From 50739d28c06a363c2ef4248d1dae9ae043e3eaa6 Mon Sep 17 00:00:00 2001 From: Brian Chang Date: Wed, 23 Nov 2011 07:33:26 -0800 Subject: [PATCH 2/5] no more ResourceAccess --- .../src/gw/vark/typeloader/AntlibTypeLoader.java | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/aardvark/src/gw/vark/typeloader/AntlibTypeLoader.java b/aardvark/src/gw/vark/typeloader/AntlibTypeLoader.java index cd9fa03..9af2c2f 100644 --- a/aardvark/src/gw/vark/typeloader/AntlibTypeLoader.java +++ b/aardvark/src/gw/vark/typeloader/AntlibTypeLoader.java @@ -8,6 +8,7 @@ import gw.lang.reflect.TypeSystem; import gw.lang.reflect.module.IModule; import gw.util.GosuExceptionUtil; +import gw.util.Pair; import gw.util.StreamUtil; import gw.util.concurrent.LockingLazyVar; import gw.vark.Aardvark; @@ -32,15 +33,9 @@ public class AntlibTypeLoader extends TypeLoaderBase implements ITypeLoader{ protected HashMap init() { HashMap antlibs = new HashMap(); - for (IDirectory sourceEntry : TypeSystem.getCurrentModule().getResourceAccess().getSourceEntries()) { - IDirectory antlibsDir = sourceEntry.dir(GW_VARK_TASKS_PATH); - if (antlibsDir.exists()) { - for (IFile file : antlibsDir.listFiles()) { - if ("antlib".equals(file.getExtension())) { - antlibs.put(file.getBaseName(), readFile(file).trim()); - } - } - } + for (Pair pair : TypeSystem.getExecutionEnvironment().getCurrentModule().getFileRepository().findAllFilesByExtension("antlib")) { + IFile file = pair.getSecond(); + antlibs.put(file.getBaseName(), readFile(file).trim()); } antlibs.put(ANT_ANTLIB_SYMBOL, ANT_ANTLIB_RESOURCE); From f01f0c530405006aee60e9578b2a8d15eb119026 Mon Sep 17 00:00:00 2001 From: Brian Chang Date: Wed, 23 Nov 2011 07:46:44 -0800 Subject: [PATCH 3/5] reinstated InteractiveShell (thanks Carson) all tests now pass --- aardvark/src/gw/vark/Aardvark.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/aardvark/src/gw/vark/Aardvark.java b/aardvark/src/gw/vark/Aardvark.java index fa53b0f..069549d 100644 --- a/aardvark/src/gw/vark/Aardvark.java +++ b/aardvark/src/gw/vark/Aardvark.java @@ -26,6 +26,7 @@ import gw.util.Pair; import gw.util.StreamUtil; import gw.vark.annotations.Depends; +import gw.vark.shell.InteractiveShell; import gw.vark.typeloader.AntlibTypeLoader; import org.apache.tools.ant.*; import org.apache.tools.ant.launch.AntMain; @@ -138,6 +139,11 @@ public int startAardvark(String[] args) { return EXITCODE_GOSU_VERIFY_FAILED; } + if (options.isInteractive()) { + InteractiveShell.start(this, varkFile, gosuProgram); + return 0; + } + int exitCode = 1; try { try { From a136c2616ec413ed1ce9f6683ede68bcd3e03acb Mon Sep 17 00:00:00 2001 From: Brian Chang Date: Mon, 5 Dec 2011 19:04:31 -0800 Subject: [PATCH 4/5] compile against current 0.9-SNAPSHOT on gosu-lang.org --- aardvark/src/gw/vark/shell/InteractiveShell.java | 4 ++-- ivy.xml | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/aardvark/src/gw/vark/shell/InteractiveShell.java b/aardvark/src/gw/vark/shell/InteractiveShell.java index f4b2f1d..da1a87a 100644 --- a/aardvark/src/gw/vark/shell/InteractiveShell.java +++ b/aardvark/src/gw/vark/shell/InteractiveShell.java @@ -21,8 +21,8 @@ import gw.vark.Aardvark; import gw.vark.AardvarkOptions; import gw.vark.GosuProgramWrapper; -import jline.ConsoleReader; -import jline.Terminal; +import gw.internal.ext.jline.ConsoleReader; +import gw.internal.ext.jline.Terminal; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; diff --git a/ivy.xml b/ivy.xml index 0013485..595a743 100644 --- a/ivy.xml +++ b/ivy.xml @@ -37,7 +37,6 @@ - From 9b9436cd154866ddf1a307231a46d9513a080983 Mon Sep 17 00:00:00 2001 From: Brian Chang Date: Tue, 6 Dec 2011 12:33:47 -0800 Subject: [PATCH 5/5] catch up with new changes in Gosu --- aardvark/src/gw/vark/Aardvark.java | 7 +++-- aardvark/src/gw/vark/ProjectHelper.java | 14 +++++----- .../gw/vark/typeloader/AntlibTypeInfo.java | 9 +++---- aardvark/test/gw/vark/TestprojectTest.java | 26 ++++++++++++++++++- 4 files changed, 41 insertions(+), 15 deletions(-) diff --git a/aardvark/src/gw/vark/Aardvark.java b/aardvark/src/gw/vark/Aardvark.java index 069549d..4c081e5 100644 --- a/aardvark/src/gw/vark/Aardvark.java +++ b/aardvark/src/gw/vark/Aardvark.java @@ -308,8 +308,11 @@ public static String getHelp( String varkFilePath, IType gosuProgram ) for (int i = 0, parametersLength = parameters.length; i < parametersLength; i++) { IParameterInfo param = parameters[i]; description += "\n -" + param.getName(); - if (methodInfo instanceof IOptionalParamCapable && ((IOptionalParamCapable) methodInfo).getDefaultValues()[i] != null) { - description += " (optional, default " + ((IOptionalParamCapable) methodInfo).getDefaultValues()[i] + ")"; + if (methodInfo instanceof IOptionalParamCapable) { + IExpression defaultValue = ((IOptionalParamCapable) methodInfo).getDefaultValueExpressions()[i]; + if (defaultValue != null) { + description += " (optional, default " + defaultValue.evaluate() + ")"; + } } if (GosuStringUtil.isNotBlank(param.getDescription())) { description += ": " + param.getDescription(); diff --git a/aardvark/src/gw/vark/ProjectHelper.java b/aardvark/src/gw/vark/ProjectHelper.java index 64adc35..62346d5 100644 --- a/aardvark/src/gw/vark/ProjectHelper.java +++ b/aardvark/src/gw/vark/ProjectHelper.java @@ -16,10 +16,10 @@ package gw.vark; +import gw.lang.parser.IExpression; import gw.lang.reflect.*; import gw.lang.reflect.gs.IGosuProgram; import gw.lang.reflect.gs.IProgramInstance; -import gw.lang.reflect.java.IJavaType; import gw.lang.reflect.java.JavaTypes; import gw.vark.annotations.Depends; import org.apache.tools.ant.BuildException; @@ -181,11 +181,11 @@ private Object determineStringParamVal(String paramName, Map use return userValue; } else { - Object defaultValue = ((IOptionalParamCapable)_methodInfo).getDefaultValues()[i]; + IExpression defaultValue = ((IOptionalParamCapable)_methodInfo).getDefaultValueExpressions()[i]; if (defaultValue == null) { throw new IllegalArgumentException("requires parameter \"" + paramName + "\""); } - return defaultValue; + return defaultValue.evaluate(); } } @@ -207,11 +207,11 @@ else if (userValue.equals("false")) { } } else { - Object defaultValue = ((IOptionalParamCapable)_methodInfo).getDefaultValues()[i]; + IExpression defaultValue = ((IOptionalParamCapable)_methodInfo).getDefaultValueExpressions()[i]; if (defaultValue == null) { return false; } - return defaultValue; + return defaultValue.evaluate(); } } @@ -229,11 +229,11 @@ private Object determineIntParamVal(String paramName, Map userPa } } else { - Object defaultValue = ((IOptionalParamCapable)_methodInfo).getDefaultValues()[i]; + IExpression defaultValue = ((IOptionalParamCapable)_methodInfo).getDefaultValueExpressions()[i]; if (defaultValue == null) { throw new IllegalArgumentException("requires parameter \"" + paramName + "\""); } - return defaultValue; + return defaultValue.evaluate(); } } } diff --git a/aardvark/src/gw/vark/typeloader/AntlibTypeInfo.java b/aardvark/src/gw/vark/typeloader/AntlibTypeInfo.java index b3b6796..2d1ef68 100644 --- a/aardvark/src/gw/vark/typeloader/AntlibTypeInfo.java +++ b/aardvark/src/gw/vark/typeloader/AntlibTypeInfo.java @@ -16,11 +16,10 @@ package gw.vark.typeloader; +import gw.lang.GosuShop; import gw.lang.function.IFunction1; -import gw.lang.parser.ISymbol; import gw.lang.reflect.*; import gw.lang.reflect.java.CustomTypeInfoBase; -import gw.lang.reflect.java.IJavaType; import gw.lang.reflect.java.JavaTypes; import gw.util.GosuExceptionUtil; import gw.util.Pair; @@ -239,7 +238,7 @@ ParameterInfoBuilder createParameterInfoBuilder() { return new ParameterInfoBuilder() .withName(getParamName()) .withType(makeParamType(_type)) - .withDefValue(ISymbol.NULL_DEFAULT_VALUE); + .withDefValue(GosuShop.getNullExpressionInstance()); } @Override @@ -286,7 +285,7 @@ ParameterInfoBuilder createParameterInfoBuilder() { return new ParameterInfoBuilder() .withName(getParamName()) .withType(makeListType(_type)) - .withDefValue(ISymbol.NULL_DEFAULT_VALUE); + .withDefValue(GosuShop.getNullExpressionInstance()); } @Override @@ -323,7 +322,7 @@ ParameterInfoBuilder createParameterInfoBuilder() { return new ParameterInfoBuilder() .withName(getParamName()) .withType(makeListOfBlocksType(_type)) - .withDefValue(ISymbol.NULL_DEFAULT_VALUE); + .withDefValue(GosuShop.getNullExpressionInstance()); } @Override diff --git a/aardvark/test/gw/vark/TestprojectTest.java b/aardvark/test/gw/vark/TestprojectTest.java index 7c47e14..6b2d914 100644 --- a/aardvark/test/gw/vark/TestprojectTest.java +++ b/aardvark/test/gw/vark/TestprojectTest.java @@ -215,7 +215,7 @@ public void targetWithBooleanArgDefaultValueFalseUserValueTrue() { } @Test - public void targetWithBooleanArgDefaultValueFalseNoUserValue() { + public void targetWithBooleanArgDefaultValueFalseUserValueImpliedTrue() { InMemoryLogger results = vark("target-with-boolean-arg-default-false", "-foo"); assertThat(results).matches( StringMatchAssertion.exact(""), @@ -226,6 +226,30 @@ public void targetWithBooleanArgDefaultValueFalseNoUserValue() { StringMatchAssertion.regex("Total time: \\d+ seconds?")); } + @Test + public void targetWithBooleanArgDefaultValueFalseNoUserValue() { + InMemoryLogger results = vark("target-with-boolean-arg-default-false"); + assertThat(results).matches( + StringMatchAssertion.exact(""), + StringMatchAssertion.exact("target-with-boolean-arg-default-false:"), + StringMatchAssertion.exact(" [echo] foo: false (boolean)"), + StringMatchAssertion.exact(""), + StringMatchAssertion.exact("BUILD SUCCESSFUL"), + StringMatchAssertion.regex("Total time: \\d+ seconds?")); + } + + @Test + public void targetWithBooleanArgDefaultValueTrueNoUserValue() { + InMemoryLogger results = vark("target-with-boolean-arg-default-true"); + assertThat(results).matches( + StringMatchAssertion.exact(""), + StringMatchAssertion.exact("target-with-boolean-arg-default-true:"), + StringMatchAssertion.exact(" [echo] foo: true (boolean)"), + StringMatchAssertion.exact(""), + StringMatchAssertion.exact("BUILD SUCCESSFUL"), + StringMatchAssertion.regex("Total time: \\d+ seconds?")); + } + @Test public void targetWithBooleanArgDefaultValueTrueUserValueFalse() { InMemoryLogger results = vark("target-with-boolean-arg-default-true", "-foo", "false");