Sign In/My Account | View Cart  
advertisement


Listen Print

This week on Perl 6 (11/03-11/10, 2002)
by Piers Cawley | Pages: 1, 2

Primitive vs. Object Types

David Whipp was worried about the use of primitive types. He pointed out that "whenever a value passes through a primitive type, it loses all its run-time properties; and [junctions] will collapse. I worry that this could cause obscure bugs". He also worried that the similarity of names (Int for an object vs. int for a primitive) would make such problems harder to spot, and violated Larry's maxim that 'Similar things should look different.' He proposed that, in order to use primitive types, a module author should first do something like use primitives qw(int), and that maybe names like int should be changed to names like _prim_int32.

Dan wasn't entirely sure that David's basic assumption about properties/junctions was accurate, but Michael Lazzaro pointed out that this had been strongly implied by things Larry and Damian had said, though Michael later dug up a reference to Apocalypse 2 which was ambiguous about runtime properties on primitive types. Dan started making 'worried' noises about supporting primitive types and Larry, while still keeping things fluid about what will actually happen, explained more of his thoughts about them.

Garrett Goebel wondered about the difference between 'attribute' and 'property' in Perl 6. I assume everyone would like to know this. The short answer goes something like: 'attribute' is the Perl 6 term for an instance variable, a 'property' can be thought of as a 'yellow sticky note attached to an arbitrary object.' Dan has a better explanation which doesn't avoid using a trademarked term.

http://groups.google.com/groups

http://groups.google.com/groups

http://groups.google.com/groups -- Dan's attributes/properties explanation

perl6-documentation was born

On Wednesday, Michael Lazzaro (who has been doing some sterling documentation work, check out his 'introduction to variables and values' docs, linked below) proposed that now was the time to start documenting (and finalizing) the detailed design of what we know about Perl 6 so far. He is concerned that for all the discussion on the language list, most of the decisions don't appear to be being documented, nor reflected back in updated Apocalypses and other documentation.

He proposed, therefore, that perl6-language 'focus on fleshing out every last detail implied by Apocalypses 2-N, in that order' and hoped that we could 'migrate perl6-language into a list that finalizes aspects of the design, documents them, and revises them as needed'.

Allison Randal wasn't initially convinced that this was necessarily a good idea. She worried that Larry (the Official Last Word on Perl 6) would be snowed under by an RFCesque tide of new documentation, and that reviewing such a tide would make him lose focus.

At this point, Michael threw the Virtual Coffee Mug.

After a further period of discussion, Dan pointed out that the key was to 'Just Do It' (a phrase normally pronounced with four words), so we created the perl6-documentation mailing list and your summarizer got a bunch more work.

The thread is long. I've summarized the main line (badly) and now provide some links to key posts, but if you want more detail I suggest you follow the first link and read the thread. For those that like drama and high emotion, the virtual CM chucking post is Michael's response to Allison's reply. I'm not going to link directly to it; trust me, context is better.

http://cog.cognitivity.com/perl6/val.html -- vars and values intro

http://groups.google.com/groups

http://groups.google.com/groups -- Dan talks sense

http://groups.google.com/groups -- So does Simon Cozens

http://groups.google.com/groups -- The tests should be the spec

Meanwhile, in perl-documentation

The new baby got off to a flying start as Michael Lazzaro laid down his goals for the project. Early discussion centered on the overall structure of the intended documentation; what formats it should be written in; the requirements for concrete, executable Perl 6 test cases and the importance of fluidity. Michael repeatedly stressed that it was vital that the documentation list retain focus; his goal is that the entire list should work on one thing at a time.

http://groups.google.com/groups

Roll Call

Michael asked for a quick roll call of who was interested in the documentation project. As an added bonus, he asked that even the lurkers put their hands up if they were interested. Surprisingly, some of them decloaked and did so.

http://groups.google.com/groups

Project Goals?

Michael formally kicked off the discussion with the question "How can this documentation project best help with the overall goal of producing a finished Perl 6?" Answers on a piece of data to the list, do not attempt to write on both sides of the data at once.

http://groups.google.com/groups

Project Start: Section 1

Late Friday, Michael kicked off discussion of the first section, most of the discussion took place during the following week, which is when I'll summarize it.

http://groups.google.com/groups

In Brief

Leo Tötsch and Brent Dax have been working on ways of making Parrot GC go faster by improving the performance of the 'destroy' phase.

Andy Dougherty sent in a patch to ensure that the languages/perl6 build will work without bison. Andy found and fixed a compiler-specific bug introduced by someone using C++ style comments.

Richard Proctor suggested that miniparrot should be called 'budgie'.

Leo Tötsch showed off some numbers for the life generations/sec test. JIT is looking very quick indeed, it's only about 25 percent slower than a native C implementation.

Dan's back from Seattle and digging through his mail backlog.

Leo Tötsch has been thinking about regexes/patterns/rules and thinks that we should reintroduce a regex state object, making regexes reentrant once more.

Who's who in Perl 6?

Who are you?
Simon Glover
What do you do for/with Perl 6?
Write tests, stomp on compiler warnings, fix bugs (occasionally)...

Basically, I try to help with some of the tedious but necessary stuff in order to free other people to concentrate on design & implementation.

Where are you coming from?
About this time last year, I started to get a bit frustrated at what appeared to me to be the slow pace of Parrot development, when I suddenly thought: 'You know, if you gave them a hand, they'd finish sooner'. So I did (and we haven't... yet. Of course, I've now got a better understanding of why this takes a long time).

I'd also like to add that I'm proof that you don't have to be a C coder in order to be useful on a project like this...

When do you think Perl 6 will be released?
Depends what you mean by Perl 6 -- after all, we already have a subset of it up and running on Parrot. Seriously, I think we'll have something that's genuinely usable and useful well before the end of 2003, even if there are still a few loose ends to tie up.
Why are you doing this?
I like Perl - it matches the way I think. The problem is, Perl is too slow for many of the things that I'd like to use it for, and too hard to extend. Parrot should fix both of these problems.

Also, it's nice to see one of my favourite features of F90 finally make it into Perl :-)

You have 5 words. Describe yourself.
Mild-mannered English computational astrophysicist.
Do you have anything to declare?
All the C I know I learnt from Parrot. (Well, OK, K&R helped too, but it's amazing how much you can learn from reading other people's code).

Acknowledgements, requests and general banter

This summary was again brought to you from the 0625 Newark on Trent to Kings Cross and the 1720 Kings Cross to Newark on Trent trains. It was fuelled by copious amounts of GNER coffee and, one one occasion, a bacon and tomato toasted sandwich. I'd like to extend my thanks and best wishes to Avril Hill, who's been bringing me morning tea for months now, but who's about to escape the train and start working on Leeds station.

Proofreading services were supplied by aspell and myself. Blame aspell if it's really terrible.

I'm running short of questionnaire answers. If you've ever been mentioned in a Perl 6 Summary, or if you haven't (yet), please consider answering the questions Simon just answered and sending them to mailto:5Ws@bofh.org.uk. Thanks.

Now, if we all join in with the chorus:

If you didn't like this summary, what are you doing still reading it? If you did like it, please consider one or both of the following options:

The fee paid for publication of these summaries on perl.com is paid directly to the Perl Foundation.