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.