Perl 6 Design Meeting Minutes for 20 September 2006

The Perl 6 design team met by phone on 20 September 2006. Larry, Patrick,
and Nicholas attended. These are the minutes.

Patrick:

Weather is getting back to normal now.

Had been the worst drought since the '50s.

Temperatures were in the low 100s, now down to the 80s

Now raining once a week

Nicholas:

When I was in LA in July it was hitting the 100s and the power grid
didn't like it. What happens in Texas?

Patrick:

Temperatures in the 100s are expected; the grid is built to cope.

Texas doesn't have energy problems. We get California to pay for our
infrastructure

Larry laughed.

Patrick:

Can I ask a question of your design sense?

I've used the compile time traits as decorators on things.

Is this bad, or can I do it more liberally

This is for operators such as infix &&

Lot of languages have that, would be good if the PAST node structure
could express that. If a language says I have infix && as one of my
tokens - it is OK to translate that to a PAST node that also says
"this short circuits"?

this would saves having to write a transformation rule that handles
this before it hits an AST

Already we can say left, right, chain associative - can we also put
traits that say "oh it short circuits"?

Larry:

Is this there in lieu of something else that ought to be there, such
as thunks?

Thunks are a level of laziness - "this is a thing that I'll tell you
when you can evaluate it."

Tend to discourage these in Perl 6 except for &&

The danger is that people put declarations in the thunk block, and
expect that it gets executed, when often it does not.

In Perl 5 terms, my $x if 0;

In Perl 6 tend to encourage people to use explicit curlies for that
sort of thing. But for general AST you would want to support those sort of constructs.

Probably a property of the particular arguments not the property
itself

It's really call by name

Patrick:

Moving away from short circuiting other compiler specific things that
we'd like to put inside the grammar file that aren't naturally part of
the AST...

Traits seem natural, for example inline

Larry:

Would like to see a lot of this being in a subset of Perl 6.

Any syntax you'd like to borrow from Perl 6 is fine

Patrick:

How much leeway do I have?

Larry:

I'd say that you have considerable leeway.

Get support from Perl 6 framework by some modules that define those
traits

The original Perl 6 properties idea was that if you mentioned it then
it springs into existence, but we decided that was a bad idea.

Patrick:

That's how compiler works. [The original Perl 6 way]

Larry:

Could define some sort of auto traits that auto-load.

But with Perl 6 we went with wanting to have predeclared traits,
even if just for typo checking

Patrick:

Discussion on #parrot - compiler writers all liked the idea of having
traits

Felt natural.

Larry:

Like Audrey says, "improvise".

I don't see any big problem with this.

Patrick:

The consensus is "Would be really nice if compiler tools already
handled this for us"

This gives other optimisation possibilities down the road.

Larry:

Only concern would be divergence from Perl 6 trait syntax.

Specifically thinking about diverging by not having angle brackets and
colon

Patrick:

Perl 6 compiler will only support the Perl 6 way

Larry:

Just don't get trapped in a hole

Patrick:

Will always resolve in favour of the Perl 6 way

I'm working on the PAST implementation and compiler tools refactor

Pleased with direction, no so pleased with speed, but other things
holding me back are now gone, so looking forward to next week

Larry:

Working on a semantic bugbear. Working over the grammar, really high
level stuff.

Would be nice if at some point this reconnects [with the current
implementations]

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Without JavaScript enabled, you might want to
use the classic discussion system instead. If you login, you can remember this preference.