This week's summary
Piers Cawley <[email protected]> Mon, 05 May 2003 16:45:21 +0100
| Newsgroups | gmane.comp.lang.perl.perl6.announce |
|---|---|
| Message-ID | <[email protected]> |
The Perl 6 Summary for the week ending 20030504
Welcome my friends, to the show that never ends. Yes, another week,
another Perl 6 Summary, chock full of condensed goodness, Leo Tötsch
admiration and a smattering information about the design and development
of Perl 6 and its target virtual machine, Parrot.
A quiet week this week. Even the hotbed of discussion that is
perl6-language saw fewer than 100 messages. However, in accordance with
tradition, I'll start with perl6-internals, which saw all of 47 messages
this week, none of them from Leon Brocard.
External Data Interfaces draft PDD
Discussion of the External Data Interfaces PDD continues. Hopefully
we'll see the first 'real' version soon.
PMC Keys
Alberto Simões asked for a good description of PMC Keys. No answer yet.
<http://xrl.us/hh7>
Long option processing
Luke Palmer sent a patch to do long option parsing. Again, Warnock's
Dilemma applies.
<http://xrl.us/hh8>
Problem with "readline"
Will Coleda announced that he was dusting off his TCL project and found
that it threw lots of bus errors. He tracked the problem down down to
the "readline" op. Benjamin Goldberg realised that what was happening
was that a filedescriptor was being used as a pointer to a FILE
datastructure. Which is never going to be good. (This would never happen
in a language with typed values. Well, it might, but the error would be
caught before the bus error). No fix yet.
<http://xrl.us/hh9>
Read buffering in PIO
Possibly prompted by Leon Brocard's nudge the week before, Dan Sugalski
took another look at Jürgen Bömmels' rejected patch to add read
buffering to the Parrot IO subsystem. Apparently there's a problem with
a double free introduced by the patch. After some discussion (including
a contribution from Melvin Smith, PIO's original author) of how to
address the issue, Jürgen submitted another patch.
<http://xrl.us/hia>
Excessive memory usage?
Peter Gibbs 'showed off' a short piece of PASM code that managed to use
some 60Mb of memory and to allocate 1.5 million headers. He thought this
a little excessive. No comment yet.
<http://xrl.us/hib>
Extending "pop"
Klaas-Jan Stol wondered if it would be useful to have a variant of pop
which could pop multiple items off the runtime stack. Dan thought it as
a good idea and added a bunch more useful tricks involving stack marks
and things, and asked for volunteers to implement it. Nobody has
explicitly stepped up to that particular plate...
<http://xrl.us/hic>
Clint Pierce shows off his 'mad NCI skeelz'
Clinton A Pierce has been playing with NCI on Win32 and has now got his
Parrot BASIC calling Win32 functions natively. "Mua-hahahaha", as he so
eloquently put it. He's now looking for a generic way to allocate a
generic memory area in PASM for use as the target of a function, which
should allow him to make even more Win32 calls without having to write
an adaptor library in C first.
<http://xrl.us/hid>
Dan changes the calling conventions again.
Dan released the final set of calling conventions again. He thinks he
won't have to do this again. Again. The changes are all in PDD03
(docs/pdds/pdd03_calling_conventions.pod in the CVS version of the
Parrot distribution). The big change is that we no longer use the stack
at all for passing parameters, we use an overflow array instead. The
smaller change is that the PDD has been clarified somewhat.
<http://xrl.us/hie>
And that about wraps it up for the internals mailing list. However, Dan
has been publishing some handy stuff in a new "What the heck is ...?"
series on his 'Squawks of the Parrot' website.
<http://xrl.us/hif> - Walking the stack
<http://xrl.us/hig> - Coroutines
Meanwhile, over in perl6-language
There was lots more about types. And some new stuff too...
"I thought there was no "bool" type?"
Towards the end of last week, Smylers queried the 'bool' entries in the
latest draft of Michael Lazzaro's Type Conversion Matrix. The thing is,
Larry has said that there won't be boolean type. Smylers was not the
first person to make this comment, he probably won't be the last. The
stock response is along the lines of "There's no "bool" type, but there
is "bool" context." but according to Synopsis 6, this appears not to be
the case anymore.
Then it all got a bit weird. Nobody *quite* asked "What is truth
anyway?" but it was touch and go for a while as people discussed what
the value of a "bool" would be in a numeric context. (I had a good deal
of sympathy for the view that there should be some kind of warning...).
We eventually ended up in a discussion of multistate logic (which, it
seems to me is a candidate for 'something you implement in a module'
status.), who knows where we'll end up this week.
<http://xrl.us/hih>
Headers
Paul Hodges wondered if it would be possible to write something in Perl
6 that worked in a similar way to the C Preprocessor's "#include"
directive, allowing him to push a common set of "use" statements and
other compile time declarations into a header file, which could then be
shared by multiple bits of code. Various people suggested more or less
tricky options, but Marco Baringer won the 'simplest thing that could
possibly work' prize from your summarizer with:
macro include ($file) {
join '', <open $file>;
}
which does the job very straightforwardly.
<http://xrl.us/hii>
Type Conversion Matrix (Take 3)
Michael Lazzaro posted his third attempt at a type conversion matrix.
This triggered some discussion on the difference between primitive (int,
float, etc) and 'full' types (Int, Float). Michael worried that some of
the discussions were bloating primitives leading him to wonder what
would be the point of using them if that happened.
It's apparent from the discussions here that the distinction between
storage and value types enables a good deal of magic, but that scares
people too.
<http://xrl.us/hij>
Property Inheritance
David Wheeler popped up with something of a head scratcher. He wanted to
know whether, when a method is overridden in a subclass, the overridden
method inherits the traits (he said properties, but he meant traits I
think) of its SUPER method. Luke Palmer thought it probably depends on
the trait, but his guess was that traits would be inherited. Which led
David to wonder if that meant you could override traits in a child
class.
<http://xrl.us/hik>
OO-overhead
For some reason, a discussion on structuring OO code in Perl 5 has been
running in perl6-language for a while. It's handy for spotting issues,
but not exactly on topic. It is to be hoped that Perl 6 will lose a lot
of Perl 5's function and method call overhead though.
Chaining postconditionals
Michael Lazzaro asked for the rationale behind disallowing stuff like:
return if <expr> for <list>
Short answer: Because Larry said so.
Supporting evidence (from the thread that developed anyway):
foo $_ if baz for @list unless quux.next() while 1;
or:
if $X {...} if $Y
<http://xrl.us/hil>
Coroutine calling convention
Luke Palmer kicked off some discussion of the various coroutine calling
conventions that Dan had discussed on his Squawks of the Parrot website.
Luke though that coroutines should return iterator objects instead of
the yielded value. Which would mean they weren't actually coroutines...
<http://xrl.us/him>
<http://xrl.us/hig> - Dan talks Coroutines
Acknowledgements, Announcements and Apologies
So, another summary draws to a close on a glorious May afternoon. Here's
to the next one. Thanks to those people who sent the proof I asked for
in the last summary. No thanks to the gits who outnumbered them by
sending spam to the same address.
If you've appreciated this summary, please consider one or more of the
following options:
* Send money to the Perl Foundation at
<http://donate.perl-foundation.org/> and help support the ongoing
development of Perl.
* Get involved in the Perl 6 process. The mailing lists are open to
all. <http://dev.perl.org/perl6/> and <http://www.parrotcode.org/>
are good starting points with links to the appropriate mailing
lists.
* Send feedback, flames, money, photographic and writing commissions,
or a year's supply of Ben & Jerry's to [email protected]
--
Piers