[tinkerpop] branch tp4 updated: incr is gone. random other tweaks. taking a break.

2019-03-23 Thread okram
This is an automated email from the ASF dual-hosted git repository.

okram pushed a commit to branch tp4
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/tp4 by this push:
 new 201d03d  incr is gone. random other tweaks. taking a break.
201d03d is described below

commit 201d03d8ef1e398c49079bd0e432f876f3ae4107
Author: Marko A. Rodriguez 
AuthorDate: Sat Mar 23 10:38:32 2019 -0600

incr is gone. random other tweaks. taking a break.
---
 .../tinkerpop/language/gremlin/Traversal.java  |  7 +++-
 .../tinkerpop/machine/bytecode/CoreCompiler.java   |  9 ++---
 .../tinkerpop/machine/bytecode/MethodArgument.java |  8 -
 .../machine/function/filter/FilterFilter.java  |  4 ++-
 .../tinkerpop/machine/function/map/IncrMap.java| 42 --
 .../machine/processor/pipes/PipesTest.java |  9 +++--
 6 files changed, 26 insertions(+), 53 deletions(-)

diff --git 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
index c7214bd..8bc4e92 100644
--- 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
+++ 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
@@ -211,7 +211,7 @@ public class Traversal implements Iterator {
 }
 
 public Traversal incr() {
-this.bytecode.addInstruction(this.currentCoefficient, Symbols.INCR);
+this.bytecode.addInstruction(this.currentCoefficient, Symbols.MAP, 
"number::add", 1L);
 return (Traversal) this;
 }
 
@@ -280,6 +280,11 @@ public class Traversal implements Iterator {
 return this;
 }
 
+public  Traversal value(final K key) {
+this.bytecode.addInstruction(this.currentCoefficient, Symbols.MAP, 
"dictionary::get", key);
+return (Traversal) this;
+}
+
 ///
 
 private final void prepareTraversal() {
diff --git 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CoreCompiler.java
 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CoreCompiler.java
index 359e6e7..32590a0 100644
--- 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CoreCompiler.java
+++ 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CoreCompiler.java
@@ -27,7 +27,6 @@ import 
org.apache.tinkerpop.machine.function.branch.RepeatBranch;
 import org.apache.tinkerpop.machine.function.filter.FilterFilter;
 import org.apache.tinkerpop.machine.function.flatmap.FlatmapFlatmap;
 import org.apache.tinkerpop.machine.function.initial.InjectInitial;
-import org.apache.tinkerpop.machine.function.map.IncrMap;
 import org.apache.tinkerpop.machine.function.map.MapMap;
 import org.apache.tinkerpop.machine.function.map.PathMap;
 import org.apache.tinkerpop.machine.function.reduce.GroupCountReduce;
@@ -59,7 +58,6 @@ public final class CoreCompiler implements BytecodeCompiler {
 put(Symbols.FILTER, FunctionType.FILTER);
 put(Symbols.FLATMAP, FunctionType.FLATMAP);
 put(Symbols.GROUP_COUNT, FunctionType.REDUCE);
-put(Symbols.INCR, FunctionType.MAP);
 put(Symbols.INITIAL, FunctionType.INITIAL);
 put(Symbols.JOIN, FunctionType.BARRIER);
 put(Symbols.MAP, FunctionType.MAP);
@@ -80,15 +78,15 @@ public final class CoreCompiler implements BytecodeCompiler 
{
 case Symbols.BRANCH:
 return new BranchBranch<>(coefficient, labels, 
BranchBranch.makeBranches(instruction.args()));
 case Symbols.FILTER:
-return new FilterFilter<>(coefficient, labels, 
Pred.valueOf(instruction.args()[0]), 
Argument.create(Arrays.copyOfRange(instruction.args(), 1, 
instruction.args().length)));
+return instruction.args().length == 1 ?
+new FilterFilter<>(coefficient, labels, null, 
Argument.create(instruction.args())) :
+new FilterFilter<>(coefficient, labels, 
Pred.valueOf(instruction.args()[0]), 
Argument.create(Arrays.copyOfRange(instruction.args(), 1, 
instruction.args().length)));
 case Symbols.FLATMAP:
 return new FlatmapFlatmap<>(coefficient, labels, 
Argument.create(instruction.args()));
 case Symbols.GROUP_COUNT:
 return new GroupCountReduce<>(coefficient, labels, 
Compilation.compileOrNull(0, instruction.args()));
 case Symbols.INITIAL:
 return new InjectInitial<>(coefficient, labels, 
instruction.args());
-case Symbols.INCR:
-return new IncrMap<>(coefficient, labels);
 case Symbols.JOIN:
 return new JoinBarrier<>(coefficient, labels, (Symbols.Tokens) 
instruction.args()[0], Compilation.compileOne(instruction.args()[1]), 

[tinkerpop] branch tp4 updated: identity() is now a map(traverser::object). Now Map, Filter, FlatMap, Reduce, and Branch are self-consistent.

2019-03-23 Thread okram
This is an automated email from the ASF dual-hosted git repository.

okram pushed a commit to branch tp4
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/tp4 by this push:
 new 635eeca  identity() is now a map(traverser::object). Now Map, Filter, 
FlatMap, Reduce, and Branch are self-consistent.
635eeca is described below

commit 635eecaf3be3cb37a550ef284ff54c65ab27dae9
Author: Marko A. Rodriguez 
AuthorDate: Sat Mar 23 09:06:42 2019 -0600

identity() is now a map(traverser::object). Now Map, Filter, FlatMap, 
Reduce, and Branch are self-consistent.
---
 .../main/java/org/apache/tinkerpop/language/gremlin/Traversal.java   | 2 +-
 .../java/org/apache/tinkerpop/machine/bytecode/CoreCompiler.java | 4 +---
 .../org/apache/tinkerpop/machine/function/filter/FilterFilter.java   | 4 +---
 .../tinkerpop/machine/strategy/optimization/IdentityStrategy.java| 5 +++--
 4 files changed, 6 insertions(+), 9 deletions(-)

diff --git 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
index 8525d92..c7214bd 100644
--- 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
+++ 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
@@ -191,7 +191,7 @@ public class Traversal implements Iterator {
 }
 
 public Traversal identity() {
-this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, 
Boolean.TRUE);
+this.bytecode.addInstruction(this.currentCoefficient, Symbols.MAP, 
"traverser::object");
 return this;
 }
 
diff --git 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CoreCompiler.java
 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CoreCompiler.java
index c692651..359e6e7 100644
--- 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CoreCompiler.java
+++ 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/bytecode/CoreCompiler.java
@@ -80,9 +80,7 @@ public final class CoreCompiler implements BytecodeCompiler {
 case Symbols.BRANCH:
 return new BranchBranch<>(coefficient, labels, 
BranchBranch.makeBranches(instruction.args()));
 case Symbols.FILTER:
-return instruction.args().length == 1 ?
-new FilterFilter<>(coefficient, labels, null, 
Argument.create(instruction.args())) :
-new FilterFilter<>(coefficient, labels, 
Pred.valueOf(instruction.args()[0]), 
Argument.create(Arrays.copyOfRange(instruction.args(), 1, 
instruction.args().length)));
+return new FilterFilter<>(coefficient, labels, 
Pred.valueOf(instruction.args()[0]), 
Argument.create(Arrays.copyOfRange(instruction.args(), 1, 
instruction.args().length)));
 case Symbols.FLATMAP:
 return new FlatmapFlatmap<>(coefficient, labels, 
Argument.create(instruction.args()));
 case Symbols.GROUP_COUNT:
diff --git 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/FilterFilter.java
 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/FilterFilter.java
index d93a420..df39450 100644
--- 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/FilterFilter.java
+++ 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/function/filter/FilterFilter.java
@@ -45,9 +45,7 @@ public final class FilterFilter extends 
AbstractFunction implements Fil
 
 @Override
 public boolean test(final Traverser traverser) {
-return null == this.pred ?
-this.argument.filterArg(traverser) :
-this.pred.test(traverser.object(), 
this.argument.mapArg(traverser));
+return this.pred.test(traverser.object(), 
this.argument.mapArg(traverser));
 }
 
 @Override
diff --git 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/optimization/IdentityStrategy.java
 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/optimization/IdentityStrategy.java
index 6c1bd99..db223b9 100644
--- 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/optimization/IdentityStrategy.java
+++ 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/strategy/optimization/IdentityStrategy.java
@@ -31,8 +31,9 @@ public final class IdentityStrategy extends 
AbstractStrategy void apply(final Bytecode bytecode) {
 bytecode.getInstructions().removeIf(instruction ->
-instruction.op().equals(CoreCompiler.Symbols.FILTER) &&
-Boolean.TRUE.equals(instruction.args()[0]) &&
+

[tinkerpop] branch tp4 updated: has() and hasKey() are now primitive instructions. All that is left is groupCount and path.

2019-03-23 Thread okram
This is an automated email from the ASF dual-hosted git repository.

okram pushed a commit to branch tp4
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/tp4 by this push:
 new 99ca3bd  has() and hasKey() are now primitive instructions. All that 
is left is groupCount and path.
99ca3bd is described below

commit 99ca3bd36237ba1779474989fa064de8b0a48f9e
Author: Marko A. Rodriguez 
AuthorDate: Sat Mar 23 08:53:13 2019 -0600

has() and hasKey() are now primitive instructions. All that is left is 
groupCount and path.
---
 .../tinkerpop/language/gremlin/Traversal.java  | 46 +++
 .../tinkerpop/machine/bytecode/Argument.java   | 13 +++--
 .../tinkerpop/machine/bytecode/CoreCompiler.java   | 22 ++--
 .../tinkerpop/machine/bytecode/MethodArgument.java | 19 ++-
 .../machine/function/filter/FilterFilter.java  |  8 +--
 .../machine/function/filter/HasKeyFilter.java  | 65 --
 .../machine/function/filter/HasKeyValueFilter.java | 56 ---
 .../machine/function/reduce/ReduceReduce.java  |  7 +--
 .../machine/processor/pipes/PipesTest.java |  5 ++
 9 files changed, 75 insertions(+), 166 deletions(-)

diff --git 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
index 28a93c1..8525d92 100644
--- 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
+++ 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
@@ -103,7 +103,8 @@ public class Traversal implements Iterator {
 }
 
 public Traversal count() {
-this.bytecode.addInstruction(this.currentCoefficient, Symbols.REDUCE, 
"traverser::count", Oper.sum.name(), 0L);
+this.bytecode.addInstruction(this.currentCoefficient, Symbols.MAP, 
"traverser::count");
+this.bytecode.addInstruction(this.currentCoefficient, Symbols.REDUCE, 
Oper.sum.name(), 0L);
 return (Traversal) this;
 }
 
@@ -134,37 +135,58 @@ public class Traversal implements Iterator {
 }
 
 public  Traversal> hasKey(final P predicate) {
-this.bytecode.addInstruction(this.currentCoefficient, Symbols.HAS_KEY, 
predicate.type().name(), TraversalUtil.tryToGetBytecode(predicate.object()));
+final Bytecode internal = new Bytecode<>();
+internal.addInstruction(this.currentCoefficient, Symbols.FLATMAP, 
"dictionary::keys");
+internal.addInstruction(this.currentCoefficient, Symbols.FILTER, 
predicate.type().name(), TraversalUtil.tryToGetBytecode(predicate.object()));
+this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, 
internal);
 return (Traversal) this;
 }
 
 public  Traversal> hasKey(final K key) {
-this.bytecode.addInstruction(this.currentCoefficient, Symbols.HAS_KEY, 
Pred.eq.name(), key);
+final Bytecode internal = new Bytecode<>();
+internal.addInstruction(this.currentCoefficient, Symbols.FLATMAP, 
"dictionary::keys");
+internal.addInstruction(this.currentCoefficient, Symbols.FILTER, 
Pred.eq.name(), key);
+this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, 
internal);
 return (Traversal) this;
 }
 
 public  Traversal> hasKey(final Traversal, K> keyTraversal) {
-this.bytecode.addInstruction(this.currentCoefficient, Symbols.HAS_KEY, 
Pred.eq.name(), keyTraversal.bytecode);
+final Bytecode internal = new Bytecode<>();
+internal.addInstruction(this.currentCoefficient, Symbols.FLATMAP, 
"dictionary::keys");
+internal.addInstruction(this.currentCoefficient, Symbols.FILTER, 
Pred.eq.name(), keyTraversal.bytecode);
+this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, 
internal);
 return (Traversal) this;
 }
 
 public  Traversal> has(final K key, final V value) {
-this.bytecode.addInstruction(this.currentCoefficient, 
Symbols.HAS_KEY_VALUE, key, value);
+final Bytecode internal = new Bytecode<>();
+internal.addInstruction(this.currentCoefficient, Symbols.MAP, 
"dictionary::get", TraversalUtil.tryToGetBytecode(key));
+internal.addInstruction(this.currentCoefficient, Symbols.FILTER, 
Pred.eq.name(), value);
+this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, 
internal);
 return (Traversal) this;
 }
 
 public  Traversal> has(final Traversal, 
K> keyTraversal, final V value) {
-this.bytecode.addInstruction(this.currentCoefficient, 
Symbols.HAS_KEY_VALUE, keyTraversal.bytecode, value);
+final Bytecode internal = new Bytecode<>();
+internal.addInstruction(this.currentCoefficient, Symbols.MAP, 
"dictionary::get", keyTraversal.bytecode);
+internal.addInstruction(this.currentCoefficient, 

[tinkerpop] branch tp4 updated: really widdling down the functions... this is so crazy.

2019-03-23 Thread okram
This is an automated email from the ASF dual-hosted git repository.

okram pushed a commit to branch tp4
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/tp4 by this push:
 new 38d8f8e  really widdling down the functions... this is so crazy.
38d8f8e is described below

commit 38d8f8e316522578cab85c61c664301182b0d22d
Author: Marko A. Rodriguez 
AuthorDate: Sat Mar 23 08:04:38 2019 -0600

really widdling down the functions... this is so crazy.
---
 .../tinkerpop/language/gremlin/Traversal.java  | 19 
 .../tinkerpop/machine/bytecode/Argument.java   | 36 ---
 .../BytecodeArgument.java} | 28 ++-
 .../ConstantArgument.java} | 23 -
 .../tinkerpop/machine/bytecode/CoreCompiler.java   | 47 ++-
 .../MethodArgument.java}   | 31 ++---
 .../map/LoopsMap.java => bytecode/Oper.java}   | 29 ++--
 .../machine/function/filter/FilterFilter.java  | 12 -
 .../machine/function/filter/HasKeyValueFilter.java |  1 +
 .../machine/function/filter/IsFilter.java  | 54 --
 .../{UnfoldFlatMap.java => FlatmapFlatmap.java}| 12 +++--
 .../reduce/{SumReduce.java => ReduceReduce.java}   | 22 ++---
 .../machine/processor/pipes/PipesTest.java |  6 +--
 13 files changed, 124 insertions(+), 196 deletions(-)

diff --git 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
index 783f35f..28a93c1 100644
--- 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
+++ 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
@@ -22,6 +22,7 @@ import org.apache.tinkerpop.machine.bytecode.Bytecode;
 import org.apache.tinkerpop.machine.bytecode.BytecodeUtil;
 import org.apache.tinkerpop.machine.bytecode.Compilation;
 import org.apache.tinkerpop.machine.bytecode.CoreCompiler.Symbols;
+import org.apache.tinkerpop.machine.bytecode.Oper;
 import org.apache.tinkerpop.machine.bytecode.Pred;
 import org.apache.tinkerpop.machine.coefficient.Coefficient;
 import org.apache.tinkerpop.machine.coefficient.LongCoefficient;
@@ -86,12 +87,12 @@ public class Traversal implements Iterator {
 return this;
 }
 
-public  Traversal choose(final Traversal predicate, 
final Traversal trueTraversal, final Traversal 
falseTraversal) {
+public  Traversal choose(final Traversal predicate, 
final Traversal trueTraversal, final Traversal 
falseTraversal) {
 this.bytecode.addInstruction(this.currentCoefficient, Symbols.BRANCH, 
predicate.bytecode, trueTraversal.bytecode, Symbols.DEFAULT, 
falseTraversal.bytecode);
 return (Traversal) this;
 }
 
-public  Traversal choose(final Traversal predicate, 
final Traversal trueTraversal) {
+public  Traversal choose(final Traversal predicate, 
final Traversal trueTraversal) {
 this.bytecode.addInstruction(this.currentCoefficient, Symbols.BRANCH, 
predicate.bytecode, trueTraversal.bytecode);
 return (Traversal) this;
 }
@@ -102,7 +103,7 @@ public class Traversal implements Iterator {
 }
 
 public Traversal count() {
-this.bytecode.addInstruction(this.currentCoefficient, Symbols.COUNT);
+this.bytecode.addInstruction(this.currentCoefficient, Symbols.REDUCE, 
"traverser::count", Oper.sum.name(), 0L);
 return (Traversal) this;
 }
 
@@ -173,17 +174,17 @@ public class Traversal implements Iterator {
 }
 
 public Traversal is(final E object) {
-this.bytecode.addInstruction(this.currentCoefficient, Symbols.IS, 
Pred.eq.name(), object);
+this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, 
"traverser::object", Pred.eq.name(), object);
 return this;
 }
 
 public Traversal is(final Traversal objectTraversal) {
-this.bytecode.addInstruction(this.currentCoefficient, Symbols.IS, 
Pred.eq.name(), objectTraversal.bytecode);
+this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, 
"traverser::object", Pred.eq.name(), objectTraversal.bytecode);
 return this;
 }
 
 public Traversal is(final P predicate) {
-this.bytecode.addInstruction(this.currentCoefficient, Symbols.IS, 
predicate.type().name(), TraversalUtil.tryToGetBytecode(predicate.object()));
+this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, 
"traverser::object", predicate.type().name(), 
TraversalUtil.tryToGetBytecode(predicate.object()));
 return this;
 }
 
@@ -198,7 +199,7 @@ public class Traversal implements Iterator {
 }
 
 public Traversal loops() {
-this.bytecode.addInstruction(this.currentCoefficient, Symbols.LOOPS);
+

[tinkerpop] branch tp4 updated: per discussions with @dkuppitz, working towards making bytecode map, flatmap, branch, reduce, filter instructions ONLY. The TP4 Machine supports a very tiny instruction

2019-03-23 Thread okram
This is an automated email from the ASF dual-hosted git repository.

okram pushed a commit to branch tp4
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/tp4 by this push:
 new 5b2934a  per discussions with @dkuppitz, working towards making 
bytecode map, flatmap, branch, reduce, filter instructions ONLY. The TP4 
Machine supports a very tiny instruction set that can, at compile time, be 
strategized into processor specific functions (optimizations). This is crazy 
stuff, but if it works, it will be brilliant.
5b2934a is described below

commit 5b2934af091e5acdccfeaa8b3e602dc1456a1cd7
Author: Marko A. Rodriguez 
AuthorDate: Sat Mar 23 05:37:26 2019 -0600

per discussions with @dkuppitz, working towards making bytecode map, 
flatmap, branch, reduce, filter instructions ONLY. The TP4 Machine supports a 
very tiny instruction set that can, at compile time, be strategized into 
processor specific functions (optimizations). This is crazy stuff, but if it 
works, it will be brilliant.
---
 .../tinkerpop/language/gremlin/Traversal.java  | 12 ++--
 .../language/gremlin/TraversalSource.java  |  2 +-
 .../tinkerpop/machine/bytecode/Argument.java   |  6 +-
 .../tinkerpop/machine/bytecode/CoreCompiler.java   | 43 -
 .../tinkerpop/machine/function/BranchFunction.java |  5 +-
 .../machine/function/barrier/JoinBarrier.java  |  2 +-
 .../branch/{UnionBranch.java => BranchBranch.java} | 39 ++--
 .../machine/function/branch/IfBranch.java  | 72 --
 .../machine/function/filter/FilterFilter.java  | 12 ++--
 .../machine/function/filter/HasKeyFilter.java  |  4 +-
 .../machine/function/filter/HasKeyValueFilter.java |  2 +-
 .../machine/function/filter/IdentityFilter.java| 41 
 .../machine/function/filter/IsFilter.java  |  2 +-
 .../tinkerpop/machine/function/map/MapMap.java | 12 ++--
 .../strategy/decoration/ExplainStrategy.java   |  2 +-
 .../strategy/optimization/IdentityStrategy.java|  3 +-
 .../machine/bytecode/InstructionTest.java  | 10 +--
 .../machine/bytecode/SourceInstructionTest.java|  8 +--
 .../tinkerpop/machine/processor/beam/BranchFn.java | 36 +++
 .../machine/processor/beam/util/TopologyUtil.java  | 45 --
 .../tinkerpop/machine/processor/beam/BeamTest.java |  5 +-
 .../machine/processor/pipes/BranchStep.java| 30 +
 .../tinkerpop/machine/processor/pipes/Pipes.java   |  2 +-
 .../machine/processor/pipes/PipesTest.java |  7 ++-
 24 files changed, 152 insertions(+), 250 deletions(-)

diff --git 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
index 15adece..783f35f 100644
--- 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
+++ 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
@@ -87,17 +87,17 @@ public class Traversal implements Iterator {
 }
 
 public  Traversal choose(final Traversal predicate, 
final Traversal trueTraversal, final Traversal 
falseTraversal) {
-this.bytecode.addInstruction(this.currentCoefficient, Symbols.IF, 
predicate.bytecode, trueTraversal.bytecode, falseTraversal.bytecode);
+this.bytecode.addInstruction(this.currentCoefficient, Symbols.BRANCH, 
predicate.bytecode, trueTraversal.bytecode, Symbols.DEFAULT, 
falseTraversal.bytecode);
 return (Traversal) this;
 }
 
 public  Traversal choose(final Traversal predicate, 
final Traversal trueTraversal) {
-this.bytecode.addInstruction(this.currentCoefficient, Symbols.IF, 
predicate.bytecode, trueTraversal.bytecode);
+this.bytecode.addInstruction(this.currentCoefficient, Symbols.BRANCH, 
predicate.bytecode, trueTraversal.bytecode);
 return (Traversal) this;
 }
 
 public  Traversal constant(final R constant) {
-this.bytecode.addInstruction(this.currentCoefficient, 
Symbols.CONSTANT, constant);
+this.bytecode.addInstruction(this.currentCoefficient, Symbols.MAP, 
constant);
 return (Traversal) this;
 }
 
@@ -168,7 +168,7 @@ public class Traversal implements Iterator {
 }
 
 public Traversal identity() {
-this.bytecode.addInstruction(this.currentCoefficient, 
Symbols.IDENTITY);
+this.bytecode.addInstruction(this.currentCoefficient, Symbols.FILTER, 
Boolean.TRUE);
 return this;
 }
 
@@ -243,12 +243,12 @@ public class Traversal implements Iterator {
 // TODO: for some reason var args are not working...Java11
 
 public  Traversal union(final Traversal traversalA, 
final Traversal traversalB) {
-this.bytecode.addInstruction(this.currentCoefficient, Symbols.UNION, 
traversalA.bytecode, traversalB.bytecode);
+