Thursday February 10, 2005
Day 9 and 10: Synopsis 6 mostly finished!
On Day 9 and Day 10 of Pugs, the combined productivity of Autrijus and Bestian has gone into full gear. We have implemented most of Synopsis 6:
- Formal parameters declaration and binding
- Invocant-based multimethod dispatch
- Optional(?), named(+ and ++), slurpy(*) parameter declaration and invocation
- Extraction of higher-order placeholder variables
- Proper semantics and extraction of @_, %_ and $_
- Defaulting of optional/named parameters that can reference to preceding parameters
- Global variables and subroutines: &*foo, $*bar
- Context propagation from types of formal parameters
- The "returns" / "is returns" trait
The code has been committed to the darcs repository (svn is currently offline). It broke the parenthesis parsing in parsec a bit, so I'll refrain from releasing 6.0.3 until that stabilizes.
Next in sight: Arity counting (&sub.arity), Currying (&sub.assuming), hiearchical types (Array of Array of Pair of Int), user-defined infix/circumfix operators, anonymous subroutines, and control structures. Stay tuned!