The Perl 6 design team met by phone on 04 October 2006. Larry, Allison, Nicholas, Patrick, Jesse, and chromatic attended. These are the minutes.
Larry:
- getting caught up with work after my Europe trip
- attempting to use Perl 6 for some of that
- Pugs is not terribly fast at that, so it's not entirely practical
- getting some experience with programming Perl 6
- it's kinda cool
- but in spots I think "who thought up this?"
- overall happy with the feel and texture of the language
- the mix of identifiers and non-identifiers seems to be pleasing
- also helping with the test suite
- participating in ongoing design and meta discussions
Jesse:
- any particularly fun ratholes of late?
Larry:
- the discussion of what Perl should allow you to do or not seems a little
silly
- you ought to have the ability to ask Perl to tell you not to do things
- by and large, these things have to be culturally determined, not
technically
- the specs don't actually talk about this yet
- probably should be a note saying that it is culturally unacceptable to
have stealth policy modules
- ought to make a distinction between policy-influencing modules and
modules that add features
- if the feature being added requires a policy, that's part of the
contract and that's fine
- but adding riders to an unrelated bill is wrong
Jesse:
- someone quoted you on a list saying that we need to focus on 6.0 and not
on mumble after it
Larry:
- I don't remember saying that or what I said it in contrast to
- might have been on IRC
- maybe discussing something with a conservative decision now that let us
defer that decision
- maybe we should defer those decisions these days, unless there's an easy
way to go
- sort of the flip side of Allison's moment of Zen moment
- just a request for convergence, not immediate freeze
- we should all be aiming to converge on something we can get out
eventually
Allison:
- reviewing proposals this week
- doing my bit so other people can get on with their bits
- making good progress with Leo and Jonathan Worthington
- need to add a couple of things to the IO PDD
- my next PDD to write is either events or threads
Jesse:
- threads will be interesting
Allison:
- maybe I'll do events first
- not in avoiding the hard work things
- but just to get things done
Jesse:
- maybe worth doing a two-hour pass at threads to add interesting
questions
- try to get people having heated debates in public to get interesting
source material
Allison:
- I can spend two hours and see if it's then a horrible idea
Jesse:
- Liz M. worked on Perl 6 thread semantics for quite a while
- she's learned a lot by doing horrible things with Perl 5 ithreads
- Audrey convinced her to do a draft concurrency synopsis for Perl 6
Allison:
- I actually like that
- started talking about concurrency in the IO PDD
Nicholas:
- think that's a better way of talking about it
- threads is just one way to do concurrency
- I thought that Parrot internals used the ithreads model
- separate interpreters
- as far as I can tell with STM, you have to create cheap new concurrency
Allison:
- Chip and I will meet and prioritize this afternoon
- hopefully we can do that regularly when I'm in town
c:
- talking to some projects about embedding Parrot
- mostly research now
- doing some research into other embedding languages: Lua, Tcl, Ruby,
Python
Jesse:
- look at MzScheme
- designed for embedding
- don't know if it's worth talking to CLKao about embedding SpiderMonkey
- Claes Jacobson did the initial work
Nicholas:
- Yves Orton is adding features to the Perl 5 regex engine that come from
PCRE
- see Mastering Regular Expressions, 3rd ed
- proposing to adding more other features
- includes named capture groups -- two alternate syntaxes in the wild
- it's not clear what the best syntax is to represent the named capture, a
reference to the current named capture (
\1 versus
$1), and the effective hash lookup on the capture group
(%+ perhaps)
- it would be really useful to have syntax review
- also consideration for Perl 6 and 6 on 5
Larry:
- maybe the people putting 6 on 5 should drive this
Jesse:
- also with regard to the semantics of Perl 6
Patrick:
- blocking on real-world stuff this past week
- over deadline on a work project
- still following on the lists
Jesse:
- haven't heard from Damian regarding his 6doc spec
- he has responded to mailing list posts
threads are tricky
nicholas on 2006-10-06T09:44:19
Jesse:
- threads will be interesting
I keep thinking:
Concurrency Barbie says "threads are hard. Let's go STMing"
which is just a bad way to restate a serious point already expressed much more clearly by others - as computer power increases change from being one core getting faster to ever more cores running in parallel, the programmer effort needed to work out how to acchieve parallelism by decomposing problems into sufficient distinct threads gets non-linearly harder. The threads model doesn't scale in wetware. Computationally STM may well be less efficient than a true threaded implementation, but conceptually STM is far more simple. If I already have 16 cores on my CPU, (ab)using all of them with an STM implementation that's 5 times less efficient than threading will still win, if it takes more programmer effort to write a threaded implementation that parallelises just 3 ways.
The other thing that I think I said on the call, but the minutes may have a better memory than I do, was that the implementation of STM appears to need cheap thread creation, yet a big problem with the iThreads model has been the expense of thread creation. But without the iThreads model you have multiple OS threads trying to use the same interpreter simultaneously, which as an implementor gets you into locking hell. [As you're having to really deal with threads, and dealing with threads being hard, you see. :-) There's no POSIX STM standard.]
Any news on POD work?
Damian Conway hasn't been in these meetings for a while, so I'm curious how the Perl 6 POD spec mentioned in the
9 August meeting notes is going.
Has anyone got an update on this? On Allison's advice I've subscribed to the pod-people list, but haven't heard anything on there.
Re:Any news on POD work?
jesse on 2006-10-06T16:38:23
If you saw Damian's travel schedule, you might not be surprised that he's not been around much lately . He's been everywhere lately.
But seriously, as an almost-all-volunteer effort, Perl 6 development takes time. (You want it Good and Cheap, right?)
I know the Pod6 (or whatever we call it these days) spec is close to ready to go, but well, it's my job to stand in the way any time anyone says "When do we get it?" and say "When it's ready."
Jesse
Perl 6 Project Manager
(It's also part of my job to go back and hassle folks to get things done. But being the single point of hassling helps ensure that the folks doing the real work spend most of their time getting work done and only a bit of time dealing with getting hassled ;)
embedded languages
autocrat on 2006-10-06T15:52:09
"c:
*talking to some projects about embedding Parrot
* mostly research now
* doing some research into other embedding languages: Lua, Tcl, Ruby, Python"
You should be sure to check out Io as well - from the faq (
http://www.iolanguage.com/about/faq/ ):
"
Embedding
Io and Lua are (both) well suited for embedding. The others can be embedded, but don't lend themselves to it. When I say well suited I mean: Io has no static variables, can run multiple VMs in the same process (and safely with a OS thread per VM), has hooks for standard output and errors, doesn't depend on shared libraries or environment variables and builds an embeddable static lib by default.
"
Io is an extremely interesting language on many fronts.
Re:embedded languages
chromatic on 2006-10-06T18:02:49
Thanks; it sounds a lot like what I want Parrot to be.
setvbuf
datkins on 2006-10-07T15:01:25
A lot of people talk about using setvbuf to have no I/O buffer. However it is very usefull to use setvbuf to set an I/O buffer of 1MB. It allows a 2GB file to be read in seconds instead of minutes.
I would like to see setvbuf return in perl6, or setting the buffer size some otherway.