From a51af6fa0c6d704f00b12a51ebcda2303697dc44 Mon Sep 17 00:00:00 2001 From: Adrian Quark Date: Sat, 20 Sep 2008 19:47:50 +0000 Subject: [PATCH] Merge from v0_9_4 to HEAD. --- OrcJava/.classpath | 1 + OrcJava/build.properties | 2 +- OrcJava/build.xml | 19 ++- OrcJava/doc/userguide.pdf | Bin 0 -> 94197 bytes OrcJava/examples/buffer.orc | 5 + OrcJava/examples/curried.orc | 8 +- OrcJava/examples/ifthenelse.orc | 11 +- OrcJava/examples/isprime.orc | 33 ++++- OrcJava/examples/java_array.orc | 8 +- OrcJava/examples/java_io.orc | 11 +- OrcJava/examples/java_io_sample.txt | 4 + OrcJava/examples/java_null.orc | 7 +- OrcJava/examples/java_numbers.orc | 37 +++-- OrcJava/examples/kilim.orc | 33 +++-- OrcJava/examples/lambda.orc | 15 +- OrcJava/examples/patterns/bang.orc | 7 +- OrcJava/examples/patterns/filter1.orc | 6 +- OrcJava/examples/patterns/filter2.orc | 7 +- OrcJava/examples/patterns/filter3.orc | 6 +- OrcJava/examples/patterns/filter_lists.orc | 7 +- OrcJava/examples/patterns/java_lists.orc | 15 +- OrcJava/examples/patterns/lists1.orc | 10 +- OrcJava/examples/patterns/lists2.orc | 5 +- OrcJava/examples/patterns/subpat.orc | 9 +- OrcJava/examples/patterns/wildcard.orc | 9 +- OrcJava/examples/strcat.orc | 6 +- OrcJava/examples/time/countdown.orc | 10 +- OrcJava/examples/time/path.orc | 7 +- OrcJava/lib/junit-4.5.jar | Bin 0 -> 198945 bytes OrcJava/src/orc/Config.java | 36 +++-- OrcJava/src/orc/Orc.java | 8 +- OrcJava/src/orc/ast/extended/ListExpr.java | 28 +++- OrcJava/src/orc/parser/OrcParserRats.rats | 73 ++++++---- OrcJava/src/orc/runtime/OrcEngine.java | 39 +++--- .../src/orc/runtime/regions/Execution.java | 9 +- .../src/orc/runtime/regions/GroupRegion.java | 15 +- OrcJava/src/orc/runtime/regions/Region.java | 48 ++++--- .../src/orc/runtime/regions/SemiRegion.java | 2 +- OrcJava/src/orc/trace/AbstractTracer.java | 15 +- .../src/orc/trace/events/ReceiveEvent.java | 4 + OrcJava/test/orc/test/AllTests.java | 17 +++ OrcJava/test/orc/test/ExamplesTest.java | 132 ++++++++++++++++++ OrcJava/test/orc/test/TestUtils.java | 17 +++ .../test/orc/test/parser/OrcParserTest.java | 37 +++++ OrcSites/build.properties | 6 +- OrcSites/build.xml | 28 +++- 46 files changed, 640 insertions(+), 172 deletions(-) create mode 100644 OrcJava/doc/userguide.pdf create mode 100644 OrcJava/examples/java_io_sample.txt create mode 100644 OrcJava/lib/junit-4.5.jar create mode 100644 OrcJava/test/orc/test/AllTests.java create mode 100644 OrcJava/test/orc/test/ExamplesTest.java create mode 100644 OrcJava/test/orc/test/TestUtils.java create mode 100644 OrcJava/test/orc/test/parser/OrcParserTest.java diff --git a/OrcJava/.classpath b/OrcJava/.classpath index 59791a311..0399c3354 100644 --- a/OrcJava/.classpath +++ b/OrcJava/.classpath @@ -6,5 +6,6 @@ + diff --git a/OrcJava/build.properties b/OrcJava/build.properties index d0364c4f3..936cecfaa 100644 --- a/OrcJava/build.properties +++ b/OrcJava/build.properties @@ -8,4 +8,4 @@ orc.location.lib=lib # source code orc.location.src=src # javadoc -orc.location.javadoc=doc/javadoc +orc.location.javadoc=build/javadoc diff --git a/OrcJava/build.xml b/OrcJava/build.xml index 6645d3994..9530c432e 100644 --- a/OrcJava/build.xml +++ b/OrcJava/build.xml @@ -13,11 +13,13 @@ + + @@ -26,13 +28,15 @@ - - - - - - - + + + + + + + + + @@ -87,5 +91,6 @@ version="true"> + diff --git a/OrcJava/doc/userguide.pdf b/OrcJava/doc/userguide.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e4ebeade9e5439b02c53e3cc7482c15589c56bab GIT binary patch literal 94197 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
  • D7Z-0QW}L{p>`A86Plew4JECgI7 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 literal 0 HcmV?d00001 diff --git a/OrcJava/examples/buffer.orc b/OrcJava/examples/buffer.orc index ab0dafda7..c11b14ae6 100644 --- a/OrcJava/examples/buffer.orc +++ b/OrcJava/examples/buffer.orc @@ -1,2 +1,7 @@ val c = Buffer() c.get() | Rtimer(3000) >> c.put(3) >> stop + +{- +OUTPUT: +3 +-} diff --git a/OrcJava/examples/curried.orc b/OrcJava/examples/curried.orc index e89c6da3b..35d86fbc1 100644 --- a/OrcJava/examples/curried.orc +++ b/OrcJava/examples/curried.orc @@ -2,4 +2,10 @@ def adder1(x)(y) = x + y val adder2 = lambda(x)(y) = x + y adder1(5) >a> a(2) -| adder2(5) >a> a(2) \ No newline at end of file +| adder2(5) >a> a(2) + +{- +OUTPUT: +7 +7 +-} \ No newline at end of file diff --git a/OrcJava/examples/ifthenelse.orc b/OrcJava/examples/ifthenelse.orc index 2bc9a96c6..fb4b54a4f 100644 --- a/OrcJava/examples/ifthenelse.orc +++ b/OrcJava/examples/ifthenelse.orc @@ -3,4 +3,13 @@ def downfrom(n) = then 0 else (n | downfrom(n-1)) -downfrom(5) \ No newline at end of file +downfrom(5) +{- +OUTPUT: +5 +4 +3 +2 +1 +0 +-} \ No newline at end of file diff --git a/OrcJava/examples/isprime.orc b/OrcJava/examples/isprime.orc index 4aa48be56..2ca780df1 100644 --- a/OrcJava/examples/isprime.orc +++ b/OrcJava/examples/isprime.orc @@ -4,8 +4,35 @@ def isPrime(n) = if(b) >> (n % i /= 0) && primeat(i+1) | if(~b) >> true primeat(2) - -def Metronome(i) = i | Rtimer(500) >> Metronome(i+1) -- Publish only prime numbers -Metronome(2) >n> if(isPrime(n)) >> n \ No newline at end of file +each(range(1, 100)) >n> if(isPrime(n)) >> n +{- +OUTPUT: +1 +2 +3 +5 +7 +11 +13 +17 +19 +23 +29 +31 +37 +41 +43 +47 +53 +59 +61 +67 +71 +73 +79 +83 +89 +97 +-} \ No newline at end of file diff --git a/OrcJava/examples/java_array.orc b/OrcJava/examples/java_array.orc index 07cbf5dab..7a1f0f465 100644 --- a/OrcJava/examples/java_array.orc +++ b/OrcJava/examples/java_array.orc @@ -3,4 +3,10 @@ a.set(1, 1) >> a.set(2, 2) >> a.set(3, 3) >> a.slice(1,4) >b> -each(b) \ No newline at end of file +each(b) +{- +OUTPUT: +1 +2 +3 +-} \ No newline at end of file diff --git a/OrcJava/examples/java_io.orc b/OrcJava/examples/java_io.orc index 7a44b4b57..2e9410f87 100644 --- a/OrcJava/examples/java_io.orc +++ b/OrcJava/examples/java_io.orc @@ -14,5 +14,12 @@ def GetContent(in) = loop(in.read(buf)) >> out.toString() -InputStreamReader(FileInputStream("examples/java_io.orc")) >reader> -GetContent(reader) \ No newline at end of file +InputStreamReader(FileInputStream("examples/java_io_sample.txt")) >reader> +GetContent(reader) +{- +OUTPUT: +'Twas brillig, and the slithy toves +Did gyre and gimble in the wabe; +All mimsy were the borogoves, +And the mome raths outgrabe. +-} \ No newline at end of file diff --git a/OrcJava/examples/java_io_sample.txt b/OrcJava/examples/java_io_sample.txt new file mode 100644 index 000000000..145c1dd5a --- /dev/null +++ b/OrcJava/examples/java_io_sample.txt @@ -0,0 +1,4 @@ +'Twas brillig, and the slithy toves +Did gyre and gimble in the wabe; +All mimsy were the borogoves, +And the mome raths outgrabe. \ No newline at end of file diff --git a/OrcJava/examples/java_null.orc b/OrcJava/examples/java_null.orc index 9669b1cff..6f623920a 100644 --- a/OrcJava/examples/java_null.orc +++ b/OrcJava/examples/java_null.orc @@ -1,2 +1,7 @@ println(cat(Null())) >> stop -| Null() \ No newline at end of file +| Null() +{- +OUTPUT: +null +null +-} \ No newline at end of file diff --git a/OrcJava/examples/java_numbers.orc b/OrcJava/examples/java_numbers.orc index 39d51e076..40bfcab3c 100644 --- a/OrcJava/examples/java_numbers.orc +++ b/OrcJava/examples/java_numbers.orc @@ -4,21 +4,32 @@ class Long = java.lang.Long class Integer = java.lang.Integer class Short = java.lang.Short +val x = Integer.valueOf(3) + -- test coercion -3 >x> ( - println(x.getClass()) >> stop - | println(Integer.toString(x)) >> stop -) +println(x.getClass()) >> +println(Integer.toString(x)) >> +stop ; -- test widening -Integer.valueOf(3) >x> ( - println(x.getClass()) >> stop - | println(Long.toString(x)) >> stop - | println(Double.toString(x)) >> stop -) +println(x.getClass()) >> +println(Long.toString(x)) >> +println(Double.toString(x)) >> +stop ; -- test narrowing (error is expected) -Integer.valueOf(3) >x> ( - println(x.getClass()) >> stop - | println(Short.toString(x)) >> stop -) \ No newline at end of file +println(x.getClass()) >> +println(Short.toString(x)) >> +stop + +{- +OUTPUT: +class java.lang.Integer +3 +class java.lang.Integer +3 +3.0 +class java.lang.Integer +Error: java.lang.IllegalArgumentException: argument type mismatch +Source location: examples/java_numbers.orc:22:9-25 +-} \ No newline at end of file diff --git a/OrcJava/examples/kilim.orc b/OrcJava/examples/kilim.orc index 91507fd20..6fd97081f 100644 --- a/OrcJava/examples/kilim.orc +++ b/OrcJava/examples/kilim.orc @@ -4,12 +4,27 @@ class KilimBuffer = orc.lib.state.KilimBuffer val t = KilimExample("hi") val b = KilimBuffer() - t.sleep(5000) >x> "5 "+x -| t.sleep(2000) >x> "2 "+x -| t.exit() >> t.signal() -- should not publish -| t.error() >> t.signal() -- should not publish -| t.signal() -- should publish -| t.sleepThread(1000) >x> "1 "+x -| t.sleepThread(1000) >x> "1 "+x -| t.sleep(3000) >> b.put("3 buffered") >> stop -| b.get() \ No newline at end of file +( + t.exit() >> t.signal() -- should not publish + | t.error() >> t.signal() -- should not publish +) ; ( + t.signal() -- should publish + | t.sleep(5000) >x> "5 "+x + | t.sleep(2000) >x> "2 "+x + | t.sleepThread(1000) >x> "1 "+x + | t.sleepThread(1000) >x> "1 "+x + | t.sleep(3000) >> b.put("3 buffered") >> stop + | b.get() +) + +{- +OUTPUT: +Error: java.lang.Exception: ERROR +Source location: examples/kilim.orc:9:5-14 +signal +1 hi +1 hi +2 hi +3 buffered +5 hi +-} \ No newline at end of file diff --git a/OrcJava/examples/lambda.orc b/OrcJava/examples/lambda.orc index 8a02223d5..c6c05a46a 100644 --- a/OrcJava/examples/lambda.orc +++ b/OrcJava/examples/lambda.orc @@ -5,4 +5,17 @@ def Counter(n) = nr.get() >!n> nr.put(n+1) >> stop) -Counter(0) >c> Metronome() >> c() \ No newline at end of file +Counter(0) >c> each(range(1,10)) >> c() +{- +OUTPUT: +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +-} \ No newline at end of file diff --git a/OrcJava/examples/patterns/bang.orc b/OrcJava/examples/patterns/bang.orc index 6b329c689..74612b725 100644 --- a/OrcJava/examples/patterns/bang.orc +++ b/OrcJava/examples/patterns/bang.orc @@ -1,5 +1,10 @@ -- Using '!' to publish matching results as they match. -- Note: '!' will only release these publications if the whole pattern succeeds. --- Output: 2 and true and (2,2) +{- +OUTPUT: +true +2 +(2, 2) +-} ( (1,2,true) | (2,5,true) ) >(1,!x,!true)> (x,x) \ No newline at end of file diff --git a/OrcJava/examples/patterns/filter1.orc b/OrcJava/examples/patterns/filter1.orc index 5616f1195..5f0b8f497 100644 --- a/OrcJava/examples/patterns/filter1.orc +++ b/OrcJava/examples/patterns/filter1.orc @@ -1,4 +1,8 @@ -- Filter using literal match, push --- Output: 4 and 6 +{- +OUTPUT: +4 +6 +-} ( (1,4) | (2,5) | (1,6) ) >(1,x)> x diff --git a/OrcJava/examples/patterns/filter2.orc b/OrcJava/examples/patterns/filter2.orc index 32091448c..a4afd9336 100644 --- a/OrcJava/examples/patterns/filter2.orc +++ b/OrcJava/examples/patterns/filter2.orc @@ -1,4 +1,7 @@ -- Filter using literal match, pull --- Output: Either 4 or 6 - x <(1,x)< ( (1,4) | (2,5) | (1,6) ) +{- +OUTPUT: +4 +-} +x <(1,x)< ( (1,4) | (2,5) | (1,6) ) diff --git a/OrcJava/examples/patterns/filter3.orc b/OrcJava/examples/patterns/filter3.orc index d8f918687..1f792beae 100644 --- a/OrcJava/examples/patterns/filter3.orc +++ b/OrcJava/examples/patterns/filter3.orc @@ -1,4 +1,8 @@ -- Filter using size match, push --- Output: (6,5) and (2,1) +{- +OUTPUT: +(2, 1) +(6, 5) +-} ( (1,2) | (1,2,3) | (5,6) | (5,6,7) ) >(x,y)> (y,x) diff --git a/OrcJava/examples/patterns/filter_lists.orc b/OrcJava/examples/patterns/filter_lists.orc index df6cd7959..00967dda0 100644 --- a/OrcJava/examples/patterns/filter_lists.orc +++ b/OrcJava/examples/patterns/filter_lists.orc @@ -1,4 +1,7 @@ -- Filtration based on list structure --- Output: (1,2,[3]) and (4,5,[]) - +{- +OUTPUT: +(4, 5, []) +(1, 2, [3]) +-} ( [1,2,3] | [4,5] | [6] | [] ) >a:b:c> (a,b,c) diff --git a/OrcJava/examples/patterns/java_lists.orc b/OrcJava/examples/patterns/java_lists.orc index 8e760be15..7dd931ff7 100644 --- a/OrcJava/examples/patterns/java_lists.orc +++ b/OrcJava/examples/patterns/java_lists.orc @@ -1,6 +1,15 @@ --- some interleaving of of 1 2 3 with 1 2 3 --- followed by 1 2 3 - +{- +OUTPUT: +1 +1 +2 +2 +3 +3 +1 +2 +3 +-} class LinkedList = java.util.LinkedList val l = LinkedList() diff --git a/OrcJava/examples/patterns/lists1.orc b/OrcJava/examples/patterns/lists1.orc index cf94cfab1..1fc395c99 100644 --- a/OrcJava/examples/patterns/lists1.orc +++ b/OrcJava/examples/patterns/lists1.orc @@ -1,6 +1,12 @@ -- Create some lists --- Output: [] and [7] and [1,2,3] and [1,5,8] and [[1],4,6] - +{- +OUTPUT: +[] +[7] +[1, 2, 3] +[[1], 4, 6] +[1, 5, 8] +-} [1,2,3] | [1]:4:[6] | 1:5:8:[] | [] | [7] diff --git a/OrcJava/examples/patterns/lists2.orc b/OrcJava/examples/patterns/lists2.orc index 6325709f6..e6c5ae31e 100644 --- a/OrcJava/examples/patterns/lists2.orc +++ b/OrcJava/examples/patterns/lists2.orc @@ -1,3 +1,6 @@ -- Pattern matching on a list --- Output: ([4],3,2,1) +{- +OUTPUT: +([4], 3, 2, 1) +-} [1,2,3,4] >a:t> t >b:c:u> (u,c,b,a) diff --git a/OrcJava/examples/patterns/subpat.orc b/OrcJava/examples/patterns/subpat.orc index f497f791c..a49a2cfb9 100644 --- a/OrcJava/examples/patterns/subpat.orc +++ b/OrcJava/examples/patterns/subpat.orc @@ -1,4 +1,7 @@ -- Using 'as' to capture sub-patterns --- Output: (1,2,3,(2,3)) and (4,5,6,(5,6)) - -( (1,(2,3)) | (4,(5,6)) | (7,8,9) ) >(a,(b,c) as d)> (a,b,c,d) +{- +OUTPUT: +(1, 2, 3, (2, 3)) +(4, 5, 6, (5, 6)) +-} +( (1,(2,3)) | (4,(5,6)) ) >(a,(b,c) as d)> (a,b,c,d) diff --git a/OrcJava/examples/patterns/wildcard.orc b/OrcJava/examples/patterns/wildcard.orc index dbcbf8dd4..fce7c3d2c 100644 --- a/OrcJava/examples/patterns/wildcard.orc +++ b/OrcJava/examples/patterns/wildcard.orc @@ -1,4 +1,9 @@ -- Use wildcards to ignore subpatterns --- Output: 1 4 5 8 - +{- +OUTPUT: +4 +1 +8 +5 +-} ( (1,(2,3)) | (4,true) | (5,[6,7]) | (8,()) ) >(x,_)> x \ No newline at end of file diff --git a/OrcJava/examples/strcat.orc b/OrcJava/examples/strcat.orc index e72bc7a53..4deb4b05e 100644 --- a/OrcJava/examples/strcat.orc +++ b/OrcJava/examples/strcat.orc @@ -1 +1,5 @@ -"a" + 3 \ No newline at end of file +"a" + 3 +{- +OUTPUT: +a3 +-} \ No newline at end of file diff --git a/OrcJava/examples/time/countdown.orc b/OrcJava/examples/time/countdown.orc index 534a2c71d..fa01c55fa 100644 --- a/OrcJava/examples/time/countdown.orc +++ b/OrcJava/examples/time/countdown.orc @@ -3,4 +3,12 @@ def Countdown(i) = if(i > 0) >> | Rtimer(500) >> Countdown(i-1) ) -Countdown(10) \ No newline at end of file +Countdown(5) +{- +OUTPUT: +5 +4 +3 +2 +1 +-} \ No newline at end of file diff --git a/OrcJava/examples/time/path.orc b/OrcJava/examples/time/path.orc index 205975ce0..a41eb28db 100644 --- a/OrcJava/examples/time/path.orc +++ b/OrcJava/examples/time/path.orc @@ -43,5 +43,8 @@ def succ(1) = (3,7) def succ(2) = (3,2) def succ(3) = stop --- Shortest path: [0,2,3] -path(source, sink, cell, succ) +{- +OUTPUT: +[0, 2, 3] +-} +path(source, sink, cell, succ) \ No newline at end of file diff --git a/OrcJava/lib/junit-4.5.jar b/OrcJava/lib/junit-4.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..733921623d4a71ae2ae1432228e6eba5e508ae4c GIT binary patch literal 198945 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%0Am# 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 z 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 z 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 literal 0 HcmV?d00001 diff --git a/OrcJava/src/orc/Config.java b/OrcJava/src/orc/Config.java index ed147dacc..0c367aac8 100644 --- a/OrcJava/src/orc/Config.java +++ b/OrcJava/src/orc/Config.java @@ -9,17 +9,17 @@ import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; +import java.io.PrintStream; import java.io.Reader; import java.util.HashMap; import java.util.LinkedList; import java.util.List; -import orc.trace.Tracer; import orc.trace.MinimizeTracer; import orc.trace.NullTracer; import orc.trace.OutputStreamTracer; import orc.trace.PrintStreamTracer; -import orc.trace.TokenTracer; +import orc.trace.Tracer; import org.kohsuke.args4j.Argument; import org.kohsuke.args4j.CmdLineException; @@ -43,13 +43,15 @@ public class Config { private Boolean typecheck = false; private Tracer tracer = new NullTracer(); private List includes = new LinkedList(); - private Integer maxpub = null; + private Integer maxPubs = null; private Reader instream = new InputStreamReader(System.in); private Integer numKilimThreads = 1; private Integer numSiteThreads = 2; private Boolean noPrelude = false; private String filename = ""; private HashMap caps = new HashMap(); + private PrintStream stdout = System.out; + private PrintStream stderr = System.err; /** * Set properties based on command-line arguments. @@ -114,8 +116,8 @@ public void addInclude(String include) { } @Option(name="-pub",usage="Stop after publishing this many values") - public void setMaxpub(int maxpub) { - this.maxpub = maxpub; + public void setMaxPubs(int maxPubs) { + this.maxPubs = maxPubs; } @Argument(metaVar="file", usage="Input file. Omit to use STDIN.") @@ -143,13 +145,11 @@ public Boolean getNoPrelude() { return noPrelude; } - public Integer maxPubs() - { - return maxpub; + public int getMaxPubs() { + return maxPubs == null ? 0 : maxPubs; } - public Reader getInstream() - { + public Reader getInstream() { return instream; } @@ -185,4 +185,20 @@ public Boolean hasCapability(String name) { public void setCapability(String name, Boolean value) { caps.put(name, value); } + + public synchronized PrintStream getStdout() { + return stdout; + } + + public void setStdout(PrintStream stdout) { + this.stdout = stdout; + } + + public synchronized PrintStream getStderr() { + return stderr; + } + + public void setStderr(PrintStream stderr) { + this.stderr = stderr; + } } \ No newline at end of file diff --git a/OrcJava/src/orc/Orc.java b/OrcJava/src/orc/Orc.java index 2f4f5975e..d2479d9e3 100644 --- a/OrcJava/src/orc/Orc.java +++ b/OrcJava/src/orc/Orc.java @@ -58,8 +58,6 @@ public static void main(String[] args) { // Configure the runtime engine OrcEngine engine = new OrcEngine(cfg); - // Run Orc with these options - System.out.println("Running..."); // Run the Orc program engine.run(n); } @@ -128,7 +126,11 @@ public static orc.ast.simple.Expression compile(Reader source, Config cfg) throw return e.simplify(); } - protected static Node compile(Reader source, Node target, Config cfg) throws CompilationException, IOException { + public static Node compile(Config cfg) throws CompilationException, IOException { + return compile(cfg.getInstream(), new Pub(), cfg); + } + + public static Node compile(Reader source, Node target, Config cfg) throws CompilationException, IOException { orc.ast.simple.Expression es = compile(source, cfg); //System.out.println("Compiling to an execution graph..."); diff --git a/OrcJava/src/orc/ast/extended/ListExpr.java b/OrcJava/src/orc/ast/extended/ListExpr.java index 2869c1111..c65e00d98 100644 --- a/OrcJava/src/orc/ast/extended/ListExpr.java +++ b/OrcJava/src/orc/ast/extended/ListExpr.java @@ -2,8 +2,14 @@ import java.util.List; +import orc.ast.simple.Call; +import orc.ast.simple.Sequential; +import orc.ast.simple.Where; import orc.ast.simple.WithLocation; +import orc.ast.simple.arg.Site; +import orc.ast.simple.arg.Var; import orc.error.compiletime.CompilationException; +import orc.runtime.ReverseListIterator; public class ListExpr extends Expression { @@ -15,14 +21,22 @@ public ListExpr(List es) { } public orc.ast.simple.Expression simplify() throws CompilationException { - - Expression e = new NilExpr(); - - for(int i = es.size() - 1; i >= 0; i--) { - e = new ConsExpr(es.get(i), e); + orc.ast.simple.Expression rest = new Call(new Site(orc.ast.sites.Site.NIL)); + ReverseListIterator it = new ReverseListIterator(es); + while (it.hasNext()) { + orc.ast.simple.Expression head = it.next().simplify(); + Var h = new Var(); + Var r = new Var(); + // rest >r> (Cons(h,r) CallTail = - DOT right:Identifier { +/* + * A dot may look like either a field reference or + * a method call. + */ +Action DotTail = + DOT right:Identifier call:CallTail { yyValue = new Action() { public Expression run(Expression left) { Expression yyValue = new Dot(left, right); yyValue = at(left, yyCount, yyValue); - return yyValue; + return apply(call, yyValue); } }; } - / LPAREN args:ExpressionList RPAREN { - yyValue = new Action() { - public Expression run(Expression left) { - Expression yyValue = new Call(left, args); - yyValue = at(left, yyCount, yyValue); - return yyValue; - } - }; + ; + +/* + * In order to partly avoid ambiguity between calls + * and tuples, you can't follow a call immediately with + * another call. So this returns either a single-element + * pair which applies a call, or an empty pair. + */ +Pair> CallTail = + LPAREN args:ExpressionList RPAREN { + yyValue = new Pair>( + new Action() { + public Expression run(Expression left) { + Expression yyValue = new Call(left, args); + yyValue = at(left, yyCount, yyValue); + return yyValue; + } + }, Pair.EMPTY); + } + / /* empty */ { + yyValue = Pair.EMPTY; } ; diff --git a/OrcJava/src/orc/runtime/OrcEngine.java b/OrcJava/src/orc/runtime/OrcEngine.java index 52c3c8478..1468ecd49 100644 --- a/OrcJava/src/orc/runtime/OrcEngine.java +++ b/OrcJava/src/orc/runtime/OrcEngine.java @@ -3,9 +3,8 @@ */ package orc.runtime; +import java.io.PrintStream; import java.lang.ref.WeakReference; -import java.util.HashMap; -import java.util.HashSet; import java.util.Iterator; import java.util.LinkedList; import java.util.Timer; @@ -68,6 +67,10 @@ public class OrcEngine implements Runnable { private Timer timer; private Config config; + private PrintStream stdout; + private PrintStream stderr; + private int maxpubs; + private int pubs = 0; /** We'll notify this when the computation is finished. */ private Tracer tracer; @@ -76,6 +79,9 @@ public class OrcEngine implements Runnable { public OrcEngine(Config config) { this.config = config; + this.maxpubs = config.getMaxPubs(); + this.stdout = config.getStdout(); + this.stderr = config.getStderr(); this.debugMode = config.debugMode(); } @@ -89,6 +95,7 @@ public synchronized boolean isDead() { * to queue an active token to process first. */ public void run() { + if (debugMode) System.out.println("Running..."); timer = new Timer(); Kilim.startEngine(config.getNumKilimThreads(), config .getNumSiteThreads()); @@ -220,8 +227,10 @@ synchronized public void resume(Token t) { * @param v */ public void publish(Object v) { - System.out.println(String.valueOf(v)); - System.out.flush(); + stdout.println(String.valueOf(v)); + stdout.flush(); + // check if we have reached the maximum allowed number of publications + if (maxpubs > 0 && maxpubs == ++pubs) terminate(); } /** @@ -230,24 +239,20 @@ public void publish(Object v) { * method so that the engine can report or otherwise handle the failure. */ public void tokenError(Token t, TokenException problem) { - System.err.println(); - System.err.println("Token " + t + " encountered an error. "); - System.err.println("Problem: " + problem.getMessage()); - System.err.println("Source location: " + problem.getSourceLocation()); + stderr.println("Error: " + problem.getMessage()); + stderr.println("Source location: " + problem.getSourceLocation()); if (debugMode) { - problem.printStackTrace(); + problem.printStackTrace(stderr); } Throwable cause = problem.getCause(); if (debugMode && cause != null) { - System.err.println("Caused by:"); - cause.printStackTrace(); + stderr.println("Caused by:"); + cause.printStackTrace(stderr); } - System.err.println(); } public void debug(String s) { - if (debugMode) - System.out.println(s); + if (debugMode) System.out.println(s); } public void reportRound() { @@ -273,16 +278,16 @@ public synchronized boolean addLogicalClock(LogicalClock clock) { /** * Print something (for use by the print and println sites). By default, - * this prints to System.out, but this can be overridden to do something + * this prints to stdout, but this can be overridden to do something * else if appropriate. * * @see Token#print(String, boolean) */ public void print(String string, boolean newline) { if (newline) { - System.out.println(string); + stdout.println(string); } else { - System.out.print(string); + stdout.print(string); } } diff --git a/OrcJava/src/orc/runtime/regions/Execution.java b/OrcJava/src/orc/runtime/regions/Execution.java index faa3a65f3..03198c154 100644 --- a/OrcJava/src/orc/runtime/regions/Execution.java +++ b/OrcJava/src/orc/runtime/regions/Execution.java @@ -4,21 +4,16 @@ import orc.runtime.Token; public class Execution extends Region { - - OrcEngine engine; - boolean running; + private OrcEngine engine; public Execution(OrcEngine engine) { this.engine = engine; - this.running = true; } public OrcEngine getEngine() { return engine; } @Override - public void close(Token closer) { - running = false; + protected void reallyClose(Token closer) { engine.terminate(); } - } diff --git a/OrcJava/src/orc/runtime/regions/GroupRegion.java b/OrcJava/src/orc/runtime/regions/GroupRegion.java index 07a414de6..3b2fc170c 100644 --- a/OrcJava/src/orc/runtime/regions/GroupRegion.java +++ b/OrcJava/src/orc/runtime/regions/GroupRegion.java @@ -8,7 +8,6 @@ public class GroupRegion extends Region { Region parent; GroupCell cell; - boolean open; /* Create a new group region with the given parent and coupled group cell */ public GroupRegion(Region parent, GroupCell cell) { @@ -16,18 +15,10 @@ public GroupRegion(Region parent, GroupCell cell) { this.cell = cell; this.parent.add(this); this.cell.setRegion(this); - this.open = true; } - /* A GroupRegion may be closed preemptively by a GroupCell, before all of its - * inhabitants leave, so we must ensure that the close operations occur only - * once using the 'open' flag. - */ - public void close(Token closer) { - if (open) { - open = false; - cell.close(); - parent.remove(this, closer); - } + protected void reallyClose(Token closer) { + cell.close(); + parent.remove(this, closer); } } diff --git a/OrcJava/src/orc/runtime/regions/Region.java b/OrcJava/src/orc/runtime/regions/Region.java index 9d6cdd75c..bf9ff91d1 100644 --- a/OrcJava/src/orc/runtime/regions/Region.java +++ b/OrcJava/src/orc/runtime/regions/Region.java @@ -6,34 +6,42 @@ import orc.runtime.Token; import orc.trace.TokenTracer.StoreTrace; +/** + * Regions are used to track when some (sub-)computation terminates. + * + *

    Currently the region methods must be synchronized, because tokens + * can be killed by independent threads (such as site calls in progress), + * triggering an update on the region. Maybe we should have a separate + * queue deal with dead tokens so this isn't necessary. + */ public abstract class Region { - - int inhabitants = 0; - Set containedTokens; - Set containedRegions; + private int inhabitants = 0; + protected boolean closed = false; + private Set containedTokens = new HashSet(); + private Set containedRegions = new HashSet(); - public Region() { - inhabitants = 0; - containedTokens = new HashSet(); - containedRegions = new HashSet(); - } + public Region() {} - public void add(Token t) { + public final synchronized void add(Token t) { + assert(!closed); inc(); containedTokens.add(t); } - public void add(Region r) { + public final synchronized void add(Region r) { + assert(!closed); inc(); containedRegions.add(r); } - public void remove(Token closer) { + public synchronized void remove(Token closer) { + if (closed) return; dec(closer); containedTokens.remove(closer); } - public void remove(Region r, Token closer) { + public synchronized void remove(Region r, Token closer) { + if (closed) return; dec(closer); containedRegions.remove(r); } @@ -47,7 +55,13 @@ private void dec(Token closer) { if (inhabitants <= 0) { close(closer); } } - public abstract void close(Token closer); + public final synchronized void close(Token closer) { + if (closed) return; + closed = true; + reallyClose(closer); + } + + protected abstract void reallyClose(Token closer); /** * Used when tracing, to both close the region and trace the "choking" of @@ -56,8 +70,10 @@ private void dec(Token closer) { * * @param store The {@link StoreTrace} which triggered the closing. */ - public void close(StoreTrace store, Token closer) { - close(closer); + public final synchronized void close(StoreTrace store, Token closer) { + if (closed) return; + closed = true; + reallyClose(closer); // if the region was already closed, // it won't contain anything and so // none of this will run diff --git a/OrcJava/src/orc/runtime/regions/SemiRegion.java b/OrcJava/src/orc/runtime/regions/SemiRegion.java index 314865198..0a002ae9e 100644 --- a/OrcJava/src/orc/runtime/regions/SemiRegion.java +++ b/OrcJava/src/orc/runtime/regions/SemiRegion.java @@ -14,7 +14,7 @@ public SemiRegion(Region parent, Token t) { this.parent.add(this); } - public void close(Token closer) { + protected void reallyClose(Token closer) { t.getTracer().after(closer.getTracer().before()); t.setPending(); t.activate(); diff --git a/OrcJava/src/orc/trace/AbstractTracer.java b/OrcJava/src/orc/trace/AbstractTracer.java index 25b3fceec..f9621bf27 100644 --- a/OrcJava/src/orc/trace/AbstractTracer.java +++ b/OrcJava/src/orc/trace/AbstractTracer.java @@ -35,7 +35,7 @@ private class TokenTracerImpl implements TokenTracer { /** The current thread */ private final ForkEvent thread; /** The timestamp of the last call made (for {@link ReceiveEvent}). */ - private long lastCallTime; + private long lastCallTime = 0; /** The current source location (used for all events). */ private SourceLocation location; /** Used to free any StoreEvent after the storing token dies. */ @@ -69,9 +69,16 @@ public void choke(StoreTrace store) { annotateAndRecord(new OnlyHandle(new ChokeEvent((StoreEvent)store))); } public void receive(Object value) { - int latency = (int)(System.currentTimeMillis() - lastCallTime); - annotateAndRecord(new OnlyHandle(new ReceiveEvent( - marshaller.marshal(value), latency))); + if (lastCallTime == 0) { + // if a corresponding send event was not called, then + // don't record any latency + annotateAndRecord(new OnlyHandle(new ReceiveEvent( + marshaller.marshal(value)))); + } else { + int latency = (int)(System.currentTimeMillis() - lastCallTime); + annotateAndRecord(new OnlyHandle(new ReceiveEvent( + marshaller.marshal(value), latency))); + } } public void die() { if (store != null) { diff --git a/OrcJava/src/orc/trace/events/ReceiveEvent.java b/OrcJava/src/orc/trace/events/ReceiveEvent.java index 0f313d237..8c2a5f0d4 100644 --- a/OrcJava/src/orc/trace/events/ReceiveEvent.java +++ b/OrcJava/src/orc/trace/events/ReceiveEvent.java @@ -21,6 +21,10 @@ public class ReceiveEvent extends Event { public final Value value; public final int latency; + public ReceiveEvent(Value value) { + // use a dummy value of -1 for unknown latency + this(value, -1); + } public ReceiveEvent(Value value, int latency) { this.value = value; this.latency = latency; diff --git a/OrcJava/test/orc/test/AllTests.java b/OrcJava/test/orc/test/AllTests.java new file mode 100644 index 000000000..9de1ecf39 --- /dev/null +++ b/OrcJava/test/orc/test/AllTests.java @@ -0,0 +1,17 @@ +package orc.test; + +import org.junit.runner.JUnitCore; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; + +import orc.test.parser.OrcParserTest; + +@RunWith(Suite.class) +@Suite.SuiteClasses({ + OrcParserTest.class +}) +public class AllTests { + public static void main(String[] args) { + JUnitCore.main("orc.test.AllTests"); + } +} diff --git a/OrcJava/test/orc/test/ExamplesTest.java b/OrcJava/test/orc/test/ExamplesTest.java new file mode 100644 index 000000000..3d0ab61fb --- /dev/null +++ b/OrcJava/test/orc/test/ExamplesTest.java @@ -0,0 +1,132 @@ +package orc.test; + +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PipedInputStream; +import java.io.PipedOutputStream; +import java.io.PrintStream; +import java.io.StringWriter; +import java.util.LinkedList; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Future; +import java.util.concurrent.FutureTask; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + +import org.kohsuke.args4j.CmdLineException; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; +import orc.Config; +import orc.Orc; +import orc.error.compiletime.CompilationException; +import orc.error.compiletime.ParsingException; +import orc.parser.OrcParser; +import orc.runtime.OrcEngine; + +/** + * Test Orc by running annotated sample programs from the "examples" directory. + * Each program is given at most 10 seconds to complete. + * + *

    + * We look for one or more comment blocks with a line starting with "OUTPUT:", + * and take everything in the comment after the "OUTPUT:" line to be a possible + * output of the program. Example: + * + *

    + * {-
    + * OUTPUT:
    + * 1
    + * 2
    + * -}
    + * 1 | 2
    + * 
    + * + * If none of the expected outputs match the actual output, the test fails for + * that example. The multiple output blocks let us cope with limited + * non-determinism, but a better solution is needed for serious testing of + * non-deterministic programs. + * + * @author quark + */ +public class ExamplesTest { + public static Test suite() { + TestSuite suite = new TestSuite("orc.test.ExamplesTest"); + LinkedList files = new LinkedList(); + TestUtils.findOrcFiles(new File("examples"), files); + for (final File file : files) { + final LinkedList expecteds; + try { + expecteds = extractExpectedOutput(file); + } catch (IOException e) { + throw new AssertionError(e); + } + // skip tests with no expected output + if (expecteds.isEmpty()) continue; + suite.addTest(new TestCase(file.toString()) { + @Override + public void runTest() throws IOException, CmdLineException, CompilationException, InterruptedException, ExecutionException, TimeoutException { + runOrcProgram(file, expecteds); + } + }); + } + return suite; + } + + public static void runOrcProgram(File file, LinkedList expecteds) + throws InterruptedException, ExecutionException, CmdLineException, + CompilationException, IOException, TimeoutException + { + // configure engine to write to a ByteArray + ByteArrayOutputStream out = new ByteArrayOutputStream(); + Config config = new Config(); + config.setInputFile(file); + config.setStdout(new PrintStream(out)); + config.setStderr(config.getStdout()); + OrcEngine engine = new OrcEngine(config); + engine.start(Orc.compile(config)); + + // run the engine with a fixed timeout + FutureTask future = new FutureTask(engine, null); + new Thread(future).start(); + try { + future.get(10L, TimeUnit.SECONDS); + } catch (TimeoutException e) { + future.cancel(true); + throw e; + } + + // compare the output to the expected result + String actual = out.toString(); + for (String expected : expecteds) { + if (expected.equals(actual)) return; + } + throw new AssertionError("Unexpected output:\n" + actual); + } + + public static LinkedList extractExpectedOutput(File file) throws IOException { + BufferedReader r = new BufferedReader(new FileReader(file)); + LinkedList out = new LinkedList(); + StringBuilder oneOutput = null; + for (String line = r.readLine(); line != null; line = r.readLine()) { + if (oneOutput != null) { + if (line.startsWith("-}")) { + out.add(oneOutput.toString()); + oneOutput = null; + } else { + oneOutput.append(line); + oneOutput.append("\n"); + } + } else if (line.startsWith("OUTPUT:")) { + oneOutput = new StringBuilder(); + } + } + return out; + } +} diff --git a/OrcJava/test/orc/test/TestUtils.java b/OrcJava/test/orc/test/TestUtils.java new file mode 100644 index 000000000..5e08667fe --- /dev/null +++ b/OrcJava/test/orc/test/TestUtils.java @@ -0,0 +1,17 @@ +package orc.test; + +import java.io.File; +import java.util.LinkedList; + +public final class TestUtils { + private TestUtils() {} + public static void findOrcFiles(File base, LinkedList files) { + for (File file : base.listFiles()) { + if (file.isDirectory()) { + findOrcFiles(file, files); + } else if (file.getPath().endsWith(".orc")) { + files.add(file); + } + } + } +} diff --git a/OrcJava/test/orc/test/parser/OrcParserTest.java b/OrcJava/test/orc/test/parser/OrcParserTest.java new file mode 100644 index 000000000..db640820c --- /dev/null +++ b/OrcJava/test/orc/test/parser/OrcParserTest.java @@ -0,0 +1,37 @@ +package orc.test.parser; + +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.util.LinkedList; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; +import orc.error.compiletime.ParsingException; +import orc.parser.OrcParser; +import orc.test.TestUtils; + +/** + * This validates the parser simply by trying to parse + * everything in the "examples" directory. + * + * @author quark + */ +public class OrcParserTest { + public static Test suite() { + TestSuite suite = new TestSuite("orc.test.parser.OrcParserTest"); + LinkedList files = new LinkedList(); + TestUtils.findOrcFiles(new File("examples"), files); + for (final File file : files) { + suite.addTest(new TestCase(file.toString()) { + @Override + public void runTest() throws ParsingException, IOException { + OrcParser parser = new OrcParser(new FileReader(file)); + parser.parseProgram(); + } + }); + } + return suite; + } +} diff --git a/OrcSites/build.properties b/OrcSites/build.properties index 61853eac0..0b94f5d53 100644 --- a/OrcSites/build.properties +++ b/OrcSites/build.properties @@ -5,6 +5,10 @@ orc.version=0.9.4 orc.location.build=build # libraries orc.location.lib=lib +# source code +orc.location.src=src +# javadoc +orc.location.javadoc=build/javadoc orc.location.OrcJava.build=../OrcJava/build -orc.location.OrcJava.lib=../OrcJava/lib \ No newline at end of file +orc.location.OrcJava.lib=../OrcJava/lib diff --git a/OrcSites/build.xml b/OrcSites/build.xml index e369efee1..dfd3cd4c9 100644 --- a/OrcSites/build.xml +++ b/OrcSites/build.xml @@ -24,11 +24,13 @@ - - - - - + + + + + + + @@ -50,4 +52,20 @@ + + + + + + +