On Feb 7, 2006, at 5:33 PM, Allison Randal wrote:

Parrot, on the other hand, has noticeably gained momentum the past 6 months or so. AFAICT, this is largely due to the fact that we're close enough to finished that we can see the light at the end of the tunnel, and because Pugs reminded us to hold on to our sense of fun.


First off, I'm just a lurker on the lists and I don't spend tuits hacking Perl6, Parrot, or pugs. Also, I'm definitely behind on the SOTA as far as P6 goes so, hopefully, nothing that I say below is outright wrong. If it is, apologies.



I know that, over the last year or so, I've been feeling fairly exhausted with Perl6--as all large projects do, it takes a long time and, while it's going on, it's hard to see the progress that is being made. I follow the lists, but I haven't done any Parrot or pugs hacking, so I didn't really have a practical sense of where things stood. It seemed like a never ending treadmill, and I've been reading the lists in a more and more casual way as tuits and energy flag.

Well, after this exchange I decided to check out the state of things, and I was very pleasantly surprised. IIRC, $Larry said that he would define the language in terms of the chapters from the Camel book, with the Synopses being the definitive version of the AES triad for a particular chapter. So, here are the Synopses that are written and in the repository at https://svn.perl.org/perl6/doc/trunk/design/syn/

# S01.pod
# S02.pod
# S03.pod
# S04.pod
# S05.pod
# S06.pod
# S07.pod Not actually here because formats have been removed, but I'm including it in the "complete" section.
# S09.pod
# S10.pod
# S11.pod
# S12.pod
# S13.pod
# S17.pod       Not complete, just lists topics to cover
# S29.pod       Not complete, just a pointer to


So, if @Larry precisely followed the Camel, here's what's left (sorted by my opinion of its likelihood of being written):

Synopsis Topic Will it be written? (Just IMO) ------------ ------- -------------------------------------
S14.pod         Tied variables                                               ?
S25.pod Portable Perl Maybe--probably just a tweak of P5 version S19.pod The CLI Probably not S20.pod The Debugger Probably not S22.pod CPAN Probably not S26.pod POD Probably not
S24.pod         Common Practices                                       No
S27.pod Perl Culture No S08.pod References Yes S15.pod Unicode Yes S16.pod IPC Yes S18.pod Compiling Yes
S21.pod         Internals and Externals                                Yes
S23.pod Security Yes
S28.pod         Reference; Special Names                         Yes
S30.pod         Reference; The Standard Perl Library      Yes
S31.pod         Reference; Pragmatic Modules                  Yes
S32.pod         Reference; Standard Modules                    Yes
S33.pod         Reference; Diagnostic Messages              Yes

My reasoning:

- S14: I'm not clear on whether tied variables have gone the way of formats.

- S25: "Portable Perl", it's unclear how much the elements addressed therein would change from Perl5 to Perl6, so it might not be necessary to rewrite this beyond a few tweaks to the P5 version (like deleting the section on XS).

- The ones labelled "Probably not" are (arguably) not properly part of the language but part of the toolkit around it. As such, they don't really need to be included in the language spec. YMMV.

- S24: There can't really be any "Common Practices" until some time after 6.0.0 is released, so that's a No.

        - S25: Perl Culture is definitely not part of the language design.

- S08: More and more elements are being given first-class status and auto-referencing behaviors. Once something is first-class and can smartly manage its own (de)referencing, there is no real need for user-level operators to do it. However, we still need defined semantics for how it all works under the hood, so we need a Synopsis.

- S15, S16, S18, S21, S23: I thought these were a pretty clear call for "gotta have a spec".

- S28, S30-33: The Reference Synopses are "simply" compilations of information that is designed elsewhere so producing them is more a matter of good writing than of actual language design. This is good because, difficult as it is, good writing is much easier than good language design.


So, to bring it down to brass tacks: there are 5 big chunks (S15, S16, S18, S21, S23) that remain to be be written, a 6th (S08) that needs to be written but will probably be fairly short, and 5 (S28, S30-33) that need to be compiled out of the mass of emails flying through the lists. I know that substantial progress has been in defining the semantics of all of these topics, and I have the impression that it's mostly a question of wrapping up the last 5-20% of each one, compiling all the data, and writing the Synopsis.


I'd say that qualifies as light at the end of the tunnel indeed!



--Dks

Reply via email to