The fourth of July weekend was fairly slow for me, so I started with
Larry's S29 and went forward.
My first pass at a revised S29 is attached. This is a combination of
some of what was left from my original work, some suggested changes to
Larry's version, and some newly incorporated bits. Where possible I'm
footnoting the summary or mailing list and message ID that my changes
are based on. There's a lot more of the mailing-list based work to go,
but before someone overhauls S29 again, I thought I should make some of
my work public. My diff is against pugs/docs/Perl6/Spec circa revision
11216.
A quick summary for discussion:
Operators vs. Functions
Before Larry's update, I had decided that simple functions and term:'s
were the only things that made sense for S29, even though EVERYTHING is
really a function. I've codified this as part of the intro. Thoughts?
Removing code
I've begun the process of removing some of the code from S29. It's not
that code is bad, it's just that it's not actually documentation. To
that end, I'm writing real documentation for functions like sign and
sqrt instead of example implementations.
Constants as functions
Since this is S29, I think it makes sense to unify every entry with a
leading subroutine/function signature, not to use the otherwise very
nice and convenient C<constant type type::name> notation. To this end,
I've re-written constants as C<our type multi term:type::<name> ()>
which I assert means the exact same thing (please correct me if that
assertion fails). Of course the implementation might use C<constant>,
but the documentation doesn't have to agree with the implementation
details as long as it agrees with the implementation interface.
TODO
Two major TODO sections were in there: defined/undefine/want/caller and
fork/lock/wait/waitpid. I moved all of these into the body of the
Summary and defined defined, undefine, fork and wait. I left the body of
want and caller as TODO, and put lock and waitpid in the Obsolete
section (per S17 Draft and the simple fact that waitpid is no longer
required).
For wait I've defined a new object called Conc::Proc::Status (no more
bit shifting, yay!) and some behavior of S17's Conc::Proc which is
probably fine, but others should look it over. If this is OK, some notes
should probably be added back into S17 as well.
There are some notes on waitpid in Perl 5's perlfunc, which probably
need to be moved into S29, but some analysis of parrot's wait facilities
will be required to be sure how they play in.
word to your macro
Larry proposed word as an operator a while back. This is one of the
(many) things that was in my note bin for transcription. Let me know if
this is still relevant.
word probably violates my intro on the scope of the document, but it's a
pretty strange one, so I don't think anyone's going to complain too
much.
> The fourth of July weekend was fairly slow for me, so I started with
> Larry's S29 and went forward.
>
> My first pass at a revised S29 is attached.
I already see one problem. "as" slipped in, which is an operator, not a
function.
--
Aaron Sherman <a...@ajs.com>
Senior Systems Engineer and Toolsmith
"We had some good machines, but they don't work no more." -Shriekback