orc-lang / orc

Orc programming language implementation
https://orc.csres.utexas.edu/
BSD 3-Clause "New" or "Revised" License
40 stars 3 forks source link

OrcTuple should be a scala.Product #215

Closed jthywiss closed 6 years ago

jthywiss commented 6 years ago

OrcTuple should be a scala.Product, like Scala tuples

arthurp commented 6 years ago

As we explore what the standard library needs we need to figure out if there should be lenient tuples and if they should be a supertype of the strict tuples (I think they probably should be since they provide a strict subset of the guarantees). This will effect how tuples should be encoded so we should consider it.

However, if we decide that strict tuples should be external sites (instead of an Orc class with a strict constructor), we should just use Scalas TupleN types directly, no reason to have a separate subclass of Product. One notable advantage of this is that we could reuse the (presumably optimized and well thought out) TupleN implementation from Scala instead of having to optimize/generate our own as performance improves. Obviously we would still need to have a fall back product implementation for tuples larger than 22 since Scala has a tuple size limit and Orc does not, but that would be a slow path that is seldom used.

jthywiss commented 6 years ago

'twas quicker to write the 2 lines of code than reply here.