Perl 6 Design Meeting Minutes for 20 September 2006

chromatic on 2006-09-30T05:50:35

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]