Ann Barcomb
Sun, 03 Dec 2006 06:13:56 -0800
This week on the Perl 6 mailing lists (26 Nov - 2 Dec)
"... On the sixth day of Christmas my true love sent to me,
Six versions of Perl,
FIVE LANGUAGES COMPILING!
Four bytes of bytecode,
Three POST nodes,
Two ASTs,
And a Partridge with a parse tree."
-- Jonathan Worthington, 'Naming PAST-pm compiler tool chain
<http://xrl.us/tm65>'
Language
Smart Matching clarification <http://xrl.us/tc7n>
Earlier, Jonathan Lang inquired about the matching operator for hash
keys had changed. This led to a discussion about Sets, Seqs and Bags.
This week, in the subthread 'Set-returning .keys', Darren Duncan
clarified his views, stating that while he saw Bags as a superset of
Sets, he did not mean to suggest that their implementations should be
related. TSa suggested that in a hypothetical inheritance structure,
Set would be the main type and Bag would extend it. Ruud H.G. van Tol
disagreed, stating that Set is more complex to modify than Bag.
Some discussion of the appropriate return values and operations also
came up. For example, Darren proposed that a union of two sets would
return a Set, and that Set operations should be terse as they would be
common.
The thread 'beg for Bag <http://xrl.us/tm66>' followed from this
discussion.
implementation for subset types <http://xrl.us/tgss>
Last week, TSa wanted to propose an addition to the subset type
definitions, namely an implementation body like classes and roles. A
rectangle example from an earlier thread was included. Jonathan Lang
replied with an alternate code example.
This week, TSa responded to Jonathan's post, wondering how a general
polygon would become an instance of an anonymous class once it was
modified to become a rectangle. The purpose of the proposal was
clarified as providing a means to attach methods to subset types.
beg for Bag <http://xrl.us/tm66>
TSa started this new thread from the discussion in 'Smart Matching
clarification <http://xrl.us/tc7n>'. He proposed the addition of a Bag
type which completes the set of immutable types. Smylers wondered how
this would differ from the Bag which is mentioned in Synopsis 3.
Darren Duncan replied that while Bag is mentioned in examples, it is
not included in the list of built-in types in Synopsis 6.
An exchange between Tsa and Jonathan Lang on the set operations of Seq
was also part of this thread.
[svn:perl6-synopsis] r13483 - doc/trunk/design/syn <http://xrl.us/tm67>
In this patch, Larry Wall distinguished Set and Bag values from KeySet
and KeyBag containers, which made several people rather happy.
Interrogating closures <http://xrl.us/tm68>
Yuval Kogman wrote in praise of the partial unification of objects and
code references, and closures in general. He proposed allowing
closures to declare that captured variables are an instance, and
provided a code example. The purpose would be to give the option of
inspecting what a closure is encapsulating.
Larry Wall replied that he would look for a declarative solution
rather than a callback, which would mean the closure could have a
declarator which explicitly captures a lexical and makes it available
as an attribute. Yuval responded that the `have` syntax proposed by
Larry looked nice.
Parrot Porters
[perl #40729] [TODO] Tcl - implement [file extension]
<http://xrl.us/tm69>
Nuno Carvalho responded to ticket [perl #40729] <http://xrl.us/tm7a>
with a patch which implements the first version of file extensions for
Tcl.
RFC: Proposal for dynamic binding <http://xrl.us/tc8i>
This thread was started by Bob Roger's proposal for dynamic binding.
He compared two options, and later gave an analysis of a third (STM)
at Leopold Toetsch's request.
This week, Allison Randal responded to the proposal with the question
of why dynamic binding should only apply to globals. She stated that
the proposed implementation was not being approved, but noted that one
of Bob's ideas concerning threads was of particular interest and
likely to be included at some point. Bob replied in depth to the
points she raised and asked if he could improve the proposal or if he
should give it up.
[perl #40978] [PATCH] Clean up parts of the MMD system
<http://xrl.us/tm7b>
Ticket [perl #40978] <http://xrl.us/tm7c> contains a patch from Matt
Diephouse to clean up portions of the MMD system. chromatic replied
that the patch worked for him.
[perl #40990] [BUG] Parrot segfaults in perl6 08-regex.t (GC/pointer
bug?) <http://xrl.us/tm7d>
Patrick R. Michaud reported a segfault in ticket [perl #40990]
<http://xrl.us/tm7e>. The problem appears in r15837 and happens when
the -G flag is not present. Later he reported a second problem as
ticket [perl #41035] <http://xrl.us/tm8v>.
[perl #39826] [CAGE] convert C<perl -w> to C<use warnings;>
<http://xrl.us/tm7f>
Paul Cochrane replied to ticket [perl #39826] <http://xrl.us/tm7g> to
report that a Perl::Critic policy has been added which requires `use
warnings` in place of `-w`.
Naming PAST-pm compiler tool chain <http://xrl.us/tm65>
Allison Randal proposed the name 'Partridge' for the PAST-pm compiler
tool chain. Jonathan Worthington poetically agreed with the name.
[perl #40991] [PATCH] PAST-pm: Unnecessary dummy 'root' rule in POST
transformation <http://xrl.us/tm7h>
Allison Randal submitted a patch which removes a dummy 'root' rule
from PAST.pm's transformation grammar. It was ticket [perl #40991]
<http://xrl.us/tm7i>.
Initial feedback on PAST-pm, or Partridge <http://xrl.us/tm7j>
Allison Randal initiated a discussion on Partridge (PAST-pm) with a
post of her comments on user experience and implementation.
Patrick R. Michaud noted that Partridge should not be considered
complete, so many of the missing items Allison noted are things which
simply haven't been implemented yet. He also added a more detailed
response to her specific points.
Several sub-threads developed. One involved the standardization of
compiler tools, for example the question of whether each language
subclass of HLLCompiler should override the `compile` method. Some
changes were committed as r15882, which Allison liked. She added a
patch to keep strict boundaries and makes it possible to override the
grammar. There was a discussion on giving each stage a compiler, which
both Patrick and Allison wanted. However, Allison wanted each stage to
act independently, with only the HLLCompiler controlling the order of
the steps.
In another sub-thread, Allison responded to comments concerning types,
layers of abstraction and tracking information as part of the
compilation process. She was quite satisfied with the work which has
been done so far, but had a few more thoughts.
Another response dealt with the remaining points. Leopold Toetsch also
joined in, noting that the discussion of Parrot limitations related to
:init methods had come up previously.
Finally, Patrick asked which constructs in Punie weren't working yet.
Allison responded, and Patrick replied that he was going to be
refactoring the HLLCompiler soon.
[perl #40998] [PATCH] Fix build error on Win32 <http://xrl.us/tm7k>
Nikolay Ananiev reported that if the build directory contains spaces
the build process fails. A patch was submitted as ticket [perl #40998]
<http://xrl.us/tm7m>. Ron Blaschke proposed escaping or quoting the
paths instead. Nikolay Ananiev replied that quotes would require
refactoring some of the scripts in the build tree. He submitted a
revised patch which only adds a short path if a space exists.
[perl #40999] Latest version of parrot doesn't make test
<http://xrl.us/tm7n>
In ticket [perl #40999] <http://xrl.us/tm7o>, Bob Wilkinson reported
that the latest version of Parrot did not pass make test. He included
the errors. Patrick R. Michaud gave some suggestions on how to fix the
problem, which may be related to an earlier installation of Parrot.
[perl #41000] Can't compile simple parrot example with latest stable
parrot <http://xrl.us/tm7p>
Bob Wilkinson reported that he could not compile an example with the
latest stable Parrot. This was noted in ticket [perl #41000]
<http://xrl.us/tm7q>. Patrick R. Michaud replied that he thought the
example was out-of-date. Matt Diephouse agreed that the example needed
to be updated. This was made into a cage task and fixed.
[perl #41014] [PATCH] Autobox Native Types for MultiSubs
<http://xrl.us/tm7r>
Matt Diephouse created ticket [perl #41014] <http://xrl.us/tm7s> to
address bug ticket [perl #40968] <http://xrl.us/tgtm>. He decided to
match native types using their autoboxed PMC types rather than change
`_` to mean any PMC in a :multi signature.
Leopold Toetsch replied that he felt that this was not the best choice
because it prevented native type optimizations. Patrick R. Michaud
agreed with Leopold, but felt that in the short term the patch was
better than the current situation. There was some discussion
concerning an example of how this would be a problem.
The issue was resolved with r15910.
Interesting post on concurrency models <http://xrl.us/tm7t>
Allison Randal posted a link to a post on concurrency models
<http://xrl.us/tm7u>.
[perl #41020] [PATCH] pmc2c.pl functionality extracted into separate
package <http://xrl.us/tm7v>
In ticket [perl #41020] <http://xrl.us/tm7w>, James Keenan supplied a
patch to make `pmc2c.pl` easier to test. This involved putting most of
the subroutines in a new package.
[perl #40815] Summary of 'make test' failures on Darwin
<http://xrl.us/tm7x>
Earlier, in ticket [perl #40815] <http://xrl.us/tc7t>, James Keenan
sent a summary of Parrot test failures on Darwin. Steve Peters
reported that one of the problems had been fixed in r40818.
This week, James noted that the problem persists. Andy Bach suggested
that the problem might have to do with the compiler version. chromatic
found it odd that Configure is using g++ as the linker and cc as the
compiler. Nicholas Clark replied that this was due to ICU.
[perl #41020] [PATCH] pmc2c.pl functionality extracted into separate
package <http://xrl.us/tm72>
James Keenan reported in ticket [perl #41020] <http://xrl.us/tm7w>
that he had fixed problems with `GetOptions`. This led to a discussion
of the problems he had with compilation, and a question of what tests
on build tools were meant to accomplish.
[perl #41021] [NEW] Parrot::Pmc2c::Utils and t/tools/pmc2cutils/*.t
<http://xrl.us/tm74>
James Keenan sent in 8 new files in a patch as ticket [perl #41021]
<http://xrl.us/tm8w>. These were created as a result of refactoring
`pmc2c.pl` to make it easier to test.
Acknowlegements
This summary was prepared using Mail::Summary::Tools
<http://xrl.us/qvno>, available on CPAN.
If you appreciate Perl, consider contributing to the Perl Foundation
<http://donate.perlfoundation.org> to help support the development of
Perl.
Thank you to everyone who has pointed out mistakes and offered
suggestions for improving this series. Comments on this summary can be
sent to Ann Barcomb, <[EMAIL PROTECTED]>.
Distribution
This summary can be found in the following places:
* use.perl.org <http://use.perl.org/>
* The Pugs blog <http://pugs.blogs.com/>
* The perl6-announce mailing list <http://xrl.us/qycj>
* ONLamp <http://www.oreillynet.com/onlamp/blog/>
See Also
* Perl Foundation activities <http://blog.perlfoundation.org>
* Perl 6 Development <http://dev.perl.org/perl6>
* Planet Perl Six <http://planetsix.perlfoundation.org/>