We just released a new version of the ParaSail compiler and virtual machine. This includes one major new feature (using polymorphic types as actual parameters), and a number of smaller features:
1) Support instantiating a module with a polymorphic actual type, such as:
var VP : Vector<Expr+>;
This allows the construction of heterogeneous containers.
2) Improve detection of inappropriate calls on abstract operations. Detect when interface of operation uses polymorphic type for a parameter, while implementation uses non-polymorphic type, or vice-versa.
3) Support "continue" statement with named or multiple values, such as:
continue loop with X => X.Left;
continue loop with (I => I+1, J => J-1);"
4) Support defining an operation with a single expression, as in:
func Square(X : Integer) -> Integer is (X**2);
5) Support case expressions, such as:
(case C of [#red] => X; [#green] => Y; [#blue] => Z)
Version 3.2 is available at the same URL as version 3.1:
How do you make a double-linked list, which supports insert at front and end in constant time, and remove any place in constant time?ReplyDelete
I'll post such an example shortly.ReplyDelete