On Wed, Jul 01, 2009 at 02:13:03AM -0700, Moritz Lenz via RT wrote: > On Tue Jun 30 23:35:04 2009, matt-w wrote: > > This patch moves operator infix:<leg> to the setting. S03 says it's > > defined in terms of cmp, so that's what this does. The old PIR > > implementation was slightly more complex, and I'm not sure why, but > > this doesn't seem to need it to pass its spectests. > > I'm a bit puzzled by the current design, which this patch still > preserves: leg is a more primitive operator than cmp, so I'd expect leg > to be implemented in terms of even more primitive operators (either PIR > level, of lt, eq, gt), and then cmp to be defined in terms of leg and > <=>, depending on the type. > > Maybe pmichaud has some comments on this?
I don't have any strong comments on it -- from a design perspective I can go either way. I suspect there's a reason that the present design is factored the way it is... but I don't know the reason offhand. Perhaps we need to ask perl6-language. More generally, the infix:<cmp> operation itself is a little suspect; I have an outstanding request for clarification [1] that I've been told is being worked on, but I haven't heard any official word back yet. [1] http://groups.google.com/group/perl.perl6.language/msg/c2f534edb0ab6c42 Since the proposed patch matches the current spec, I'm inclined to accept it, at least until we have some more clarification in the spec or from perl6-language. Pm