Here's my comments on Carl Masak's S29 list. Note that some of the
things that say that they're "now in" something still need a lot of work.
# Range objects have .from, .to, .min, .max and .minmax methods
Now in S32/Containers.pod
# .contains on Hash and Array
Where's this from?
# Code has a .sig
Seems (from what I can tell) to be synonymous with .signature, so I
standardised on .signature.
# .ACCEPTS and .REJECTS on most everything -- provided by the Pattern role.
Likely a mistake to put one under each section, though. Perhaps put one under
Object and put a reference to S03.
What does Pattern? Should we have Object does Pattern?
# The cat contextualizer.
There's a .cat() method on Container in Containers.pod. Is this what
you want?
# Object has .print and .say.
Ok, this makes things difficult. The algorithm of these functions is
obviously something like:
1. Object -> Str
2. Output Str on handle
Something that makes this interesting is, what happens when you call
IO.print? At the moment, S16 says that this will print a string on the IO
object. So to print the IO object itself, you would have to do the algorithm
above manually.
The obvious solution is to rename the function on the IO object to
something like "doprint", and have Object.print, Object.say, and Object.printf
all call on IO.doprint.
Where this starts to get difficult is that the IO object currently has
input/output record/field separators specced on it. If the new algorithm
converts an array to a string, it's obviously going to have to call on these.
My question is, would we be better off having the string conversion
routine for arrays worry about the input/output record/field separators,
rather than the IO object? The downside I can see is that you couldn't have
separate separators for different IO objects; you'd have to code specially if
you wanted that functionality. Is this too much of a downside, or is it a
good way to go?
# Block types have .next, .last, .redo and .leave on them. These are also
functions, and need to be specced as such.
# Block also has a .labels method.
Now in S32/Callable.pod
# fail and .handled (the former is in S29, but has no signature/summary).
Now in S32/Exceptions.pod. But note the role/class Failure double
declaration. This is not allowed by the spec, but according to how I read the
spec for Failure, that's how it has to be. Obviously I need someone to
explain how Failure should *really* be implemented :).
# .match, .subst and .trans from S05.
Now in S32/Str.pod. But I wasn't sure what subst() returns.
# Match objects: .from, .to, .chars, .orig and .text.
# Match state objects: .pos.
Now added to S32/Regex.pod
The rest I'll leave for another time.
---------------------------------------------------------------------
| Name: Tim Nelson | Because the Creator is, |
| E-mail: wayl...@wayland.id.au | I am |
---------------------------------------------------------------------
----BEGIN GEEK CODE BLOCK----
Version 3.12
GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V-
PE(+) Y+>++ PGP->+++ R(+) !tv b++ DI++++ D G+ e++>++++ h! y-
-----END GEEK CODE BLOCK-----