[Grace-core] Minutes of Teleconference 30-31.8.2012
James Noble
kjx at ecs.vuw.ac.nz
Thu Aug 30 18:35:43 PDT 2012
* Discussed object-based exception design as per Michael's email - going with that!
Blog posts would be nice
* Kim asked: do types do "information hiding"
def v : S' = N.new Is this legal if N.new is declared as returning S,
Even though it actually returns S', where S' <: S
We converged on "no" - a static type error.
Either change the return type annotation on the method, or use dynamic or matching
* Tim asked: how do we make clear we don't return anything.
Option is to mandate "->" to return anything
Thought that was messy, converged in "no" - explicitly return done.
* Michael asked: what are retained generics:
Kim said: make a instance binding (for class parameters) or a lexical binding (method parameters), fill it with a reified type meta-object.
James - should work, technically all we need are method parameters & lexical bindings thanks to the "encoding"
* Michael asked:
Given a definition class List.new<T> - can we write def v = List.new ?
Everyone except Kim thinks its important we can do this.
* James to write up straw man annotation-based exception design:
The other option in brief
class Error is exception {
Inherits Exception
}
The is exception annotation would
- constrain the type of the objects to some exception interface
- brand all instances with a class-specific brand
- allow classes to be used as types/patterns that match that brand
- I.e.ensure exception classes act as *nominal* types
we could do this - possibly with a bunch of sub-annotations.
The question is: do we want to?
If the separation of class and type is an important principle of Grace
Then we should junk it so so readily!
* Next meeting 1 hour, Monday 3pm Pacific, Tues 11am NZ
More information about the Grace-core
mailing list