[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