Branch: refs/heads/master
Home:   http://github.com/perl6/specs

Commit: 60aef3acd56f47b5a78721ca886b9fd3e22b366e
    
http://github.com/perl6/specs/commit/60aef3acd56f47b5a78721ca886b9fd3e22b366e
Author: TimToady <la...@wall.org>
Date:   2010-10-25 (Mon, 25 Oct 2010)

Changed paths:
  M S02-bits.pod
  M S06-routines.pod
  M S11-modules.pod
  M S12-objects.pod
  M S13-overloading.pod

Log Message:
-----------
Adjust proto semantics to address various concerns

The concerns in question are admirably laid out in:

    http://6guts.wordpress.com/2010/10/17/wrestling-with-dispatch/

With the new design, proto routines are no longer thought of as being
called directly, but are generic.  Instead they are instantiated
into "dispatch" routines (where "dispatch" is the same semantic
slot as "only", distinguished only to differentiate them from true
"only" routine so that we can calculate candidate sets correctly
(to which true "only" routines are opaque but "dispatch" routines
are transparent).  In all other respects a dispatch routine is just
an autogenerated "only".  (It is not anticipated that a user would
ever want to write a dispatch directly, but I could be wrong.)

Each instantiated dispatch routine manages its own candidate list.

We also allow for a proto to be autogenerated if none is found in
the outer context.  This should fix complaints about required "proto"
declarations, I hope.


Reply via email to