Closed btwooton closed 7 years ago
ProcCall now appears to accommodate both NativeProcedure
and PrimitiveProcedure
and Procedure
as well as respect their respective semantics requirements as defined in our local meetings, as of commit 74dc3f30bf728d202ea60bd1dc48edae5e34261a.
One interesting typo is that DataNode.cdr
was also the label for the std::runtime_error
for car()
. So that's unfortunate. That was fixed by that commit as well.
Proccall is not written to accommodate NativeProcedure and the newly created PrimitiveProcedure and needs to be augmented to accommodate these types of Procedures. There is also a bug in the evaluation mechanism that seems to be rooted in Proccall_impl. A call to eval::Expression() on (define a 1) returns a DataNode.cdr runtime error on something that is not a pair.