The Perl 6 Summary for the week ending 20040118
I hope you'll forgive the lack of banter before we start in on
perl6-internals.
Threads. Again.
Still more proposals about threads this week. Jeff Clites offered some
notes based on the Java Virtual Machine's threading model. Surprisingly,
this was the week's only threads thread. Next week: Dan starts to
outline the design that's going to be implemented.
http://tinyurl.com/2fk4f
Questions about abstract PMCs
St�phane Payrard had some questions about abstract PMCs and whether they
were needed in core_pmcs.h and pmctypes.pasm to make PMC type checking
work in IMCC. Leo T�tsch answered questions, but didn't think they were
actually needed in those files. Discussion ensued.
http://tinyurl.com/3bqxg
Docs and releases
Tim Bunce wondered whether a date had been set for the next release. He
also pointedly wondered if the docs were up to date with best practises
and whether having them up to date would be a goal for the next release.
Dan answered: "No", "no" and "yes, bordering on a requirement and not
just a goal". Discussion ensued again. For some reason this thread
flushed out a few 'shy lurkers' so let's extend a big hello to Paul
Cochrane, Herbert Snorrason, Matt Diephouse, Robin Redeker, Richard
Holden and Mark Solinski.
http://tinyurl.com/yucb2
Making continuations work properly
The work of getting continuations to close over the various bits and
pieces the should close over continues; it seems there's rather more to
doing the Right Thing than meets the eye.
http://tinyurl.com/2bvpj
"new_noinit" and "init" ops
Luke Palmer was trying to implement a loop using a continuation. He
wanted to be able to defer initialization of a continuation so he
implemented two stage instantiation & initialization; wrapped it up in
two new ops, "new_noinit" and "init", and posted the resulting patch to
the list. Michal Wallace thought it best to just use a lexical. Then he
perpetrated a spectacularly extended metaphor about Parrot entitled *Mr
Parrot's Neighborhood*, which probably works best if you don't
automatically correct the spelling of neighbourhood.
http://tinyurl.com/24myr
http://tinyurl.com/3xrus -- Mr Parrot's neighborhood
Namespace stuff
Jeff Clites revisited a thread from a while back about namespaces. His
discussion centred on whether the namespace part of a name should be,
logically a string "Global::Namespace::Hierarchy" or list of strings
"["Global", "Namespace", "Hierarchy"]". He argued that it made sense to
just use a simple thing and asked what we actually gained from having a
hierarchy. Dan wants a hierarchy because it makes cross language sharing
of namespaces easier. Larry wants a hierarchy 'cos it makes all sorts of
things easier. Tim Bunce offered another proposal which received
qualified approval from both Dan & Leo.
http://tinyurl.com/2j8gb
http://tinyurl.com/3fecc -- Tim's proposal
Parrot string docs
Robert Eaglestone had a bunch of questions about Parrot's String
documentation. Answers were forthcoming.
http://tinyurl.com/ysz54
IMCC v1 feature freeze
Melvin Smith announced a feature freeze for IMCC version 1 and called
for bug reports for it. He plans to get imcc1 working as correctly as
possible and frozen within a couple of weeks before starting the really
major work (and deprecation of features) on IMCC 2. There was a certain
amount of wrangling about CVS issues, but it was generally thought to be
a good idea.
http://tinyurl.com/2ooy5
Managed and unmanaged structs
Dan had some thoughts about accessing and generally monkeying around
with C structs and added a couple of related tasks to the todo list. Leo
pointed out that quite a bit of it was done, and pointed out where
further work was needed.
http://tinyurl.com/2a4jl
Loading bytecode at runtime
Dan did some more design work on how runtime loading of bytecode should
be handled.
http://tinyurl.com/22rst
The todo list
Dan was reminded that we have a full, working, RT installation so he's
started creating tickets for each todo. This should make for better
tracking and ownership of tasks. Hurrah. He asked for a volunteer or two
to manage the todo queue. Dave Pippenger and Stephane Peiry stepped up
to the plate with heartening alacrity. Go guys.
http://tinyurl.com/2wxou
http://bugs6.perl.org/
Numeric formatting
More design from Dan. This time he was thinking about numeric
formatting. His initial plan was to lift the formatting rules from SQL,
but I'm not sure if that plan survived contact with Michael Scott who
pointed out that ICU (the Unicode library that's already included in the
Parrot tree) has its own number formatting API. After some discussion in
which Dan pointed out that he really didn't want to have to initialize
the entire Unicode system just to get number formatting, Michael
suggested we copy the ICU API, even if we use our own implementation.
http://tinyurl.com/2head
Unicode, internationalization, C++ and ICU
It's obviously an ICU week this week. Dan announced that it's time we
actually started building ICU into Parrot. The catch is, it doesn't work
right now. He asked for volunteers to track ICU and keep things
reasonably up to date. Apart from the obvious pony, Dan wants ICU
building, working and not needing any C++. Personally, I think he's more
likely to get a pony than to get rid of the C++ dependency.
Jonathan Worthington was the bearer of the bad new that, because ICU's
configuration script is a shell script, it's going to be exceedingly
tricky to get ICU to build on any platform that doesn't have bash or
similar. Which makes things tricky for Win32 types (though, following
posts from others, not as tricky as Jon first thought.)
Nobody has yet volunteered to be the ICU pumpking though.
http://tinyurl.com/yw6hx
Variable clusters
Melvin Smith made a suggestion for optimizing variable handling by using
'variable clusters'. I'm afraid I went into 'bear of little brain' mode
when reading the thread, but there was a fair amount of discussion.
http://tinyurl.com/2scdy
POD Errors
A big thank you to Michael Scott who's been cleaning up the
documentation tree's POD errors, and has made an HTML version of
Parrot's docs available. For his next trick, he's going to normalize the
existing POD and add some content to those files that need it.
http://tinyurl.com/2dpvh
Allocation food for thought
Luke Palmer has been monkeying with the small object allocator in an
effort to get things working fast enough that he can excise
RetContinuations from Parrot's object model (They're not continuations
and they are next to impossible to promote to continuations if you need
to) and replacing the current chunked control stack with a conceptually
simpler linked continuation chain. His results were interesting. I'm not
sure his patch will be going in, but he achieved some pretty impressive
optimization of full continuations.
http://tinyurl.com/39vrz
Vtables organization
Leo had some questions about using 'magic' vtables with PMCs. Dan
outlined his proposed approach based on chained vtables.
http://tinyurl.com/26g7p
Events and JIT
Leo did some thinking aloud about getting Event handling working with
the JIT core (it works everywhere else). Cue vast amounts of discussion.
http://tinyurl.com/2l2m9
Ops file hints
Leo had a list of suggestions for extra data that he thinks needs to go
into the ops files. Dan agreed with everything on the list and added a
todo item to the Parrot RT queue.
http://tinyurl.com/3h8za
Meanwhile in perl6-language
run-once code
David Storrs wanted a way of ensuring that a an expensive function in a
conditional would never need to be evaluated again after the condition
became true. Various answers were suggested, some more complicated than
others.
http://tinyurl.com/ypjbw
Announcements and Apologies
This week's summary is dedicated to the memory of my grandmother,
Kathleen Hudson, who died on Monday morning in her sleep. She was 82
years old, and apart from the last couple of years of Alzheimer's she
was always the life and soul of any party. We're all going to miss her.