This week on the Perl 6 mailing lists
“The | notation is mentioned in S012:1029, by the way. Obviously you still haven’t quite memorized all the synopses. :-)”
– Larry Wall, in ‘class interface of roles’
Last week I mistakenly wrote that Juerd suggested using
qqw//, when in fact he suggested integrating
qqw// and not
qqw// has generic
This long-running thread continued. Previous highlights included discussion on how a role can require a target class to implement a method or do another role, and whether there is a use for forbidding the implementation of methods.
This week, Jonathan Lang and TSa discussed various ways of controlling dispatch rules, and agreed upon some terminology to assist the discussion.
Meanwhile, Jonathan and TSa talked about the distinction between mixins
and roles. Larry Wall offered some clarification, which led to a discussion
| notation. This eventually morphed in to a thread about
the syntax for unordered composition.
Two weeks ago, Jonathan Lang initiated a discussion on programming styles which allow a programmer to prevent another person from taking an otherwise legitimate action. The discussion moved on to lexically scoped pragmas and policy meta models.
This week Smylers wondered how it is possible for a module to require undeclared package variables, and asked Trey Harris for an example of a module with undeclared symbolic references.
Last week, Damian Conway released a draft for S26 on documentation. Some people expressed opinions on it.
This week, Smylers stated that he thought the only standard XML entities
&. Defining further entities is allowed;
for example, this is what HTML does. Danny Brian responded by expanding
the list of default entities to include
Conway corrected the document accordingly.
Jonathan Lang initiated a discussion on collisions which might occur from creating a class which inherits from two classes with unrelated concepts which happen to share a method name. Trey Harris thought that the combination of multiple inheritance, multiple dispatch, traits and DBC offered a more sophisticated way to resolve conflicts than dispatch by name. Jonathan agreed that was how it should work, but was not convinced it worked that way in practice. Larry Wall suggested that S12 might resolve the issue, but Jonathan explained that it did not cover the case he was trying to express. Larry elaborated on the documentation.
Meanwhile, TSa launched a subthread containing an example with numbers. There was further discussion on numeric comparisons in this context.
The thread spawned ‘set operations for roles‘.
Larry Wall made a commit to S05, noting that the new regex syntax
defines word boundaries in terms of
Jonathan Lang replied to a comment in the thread ‘Edge case: incongruent roles‘. The discussion involved the syntax for ordered and unordered composition. He proposed some syntax. TSa and Jonathan discussed possibilities, and Larry Wall added his thoughts.
Jonathan Lang suggested that
$expression?; should have the same
$_ = $expression. He wondered if Perl 6 makes this possible,
or if the parser would need to be modified. Juerd replied that it
was possible if you modified the Perl 6 grammar.
Relipuj wondered how threaded data collection could be accomplished in Perl 6, citing an example of how it is done in Python.
In the thread ‘Implement .loadlib pragma in IMCC’, dating to July, Patrick
R. Michaud summarized the issue of
:init pragmas for subs as discussed
in a recent #parrotsketch meeting. Ticket [perl #39926] relates to
the task. In addition to giving a status report on
invited people to contribute tests and code to help create
Meanwhile, Leopold Toetsch replied to Kevin Tew’s patch attempt in
‘sub :init implementation‘, commenting on the use of
PBC_POSTCOMP, which he described as an unfortunate choice.
He made some alternate proposals. Kevin thanked Leopold, and asked for
a summary of how flags are used, which Leopold provided.
The discussion which began as a notification from Bob Rogers on continuations continued with the thread concerning problems with coroutines. Last week, Leopold Toetsch requested a description from Bob on his proposal for rewriting coroutines.
This week, François Perrad reported that as of r14936, he has removed the LuaThread PMC so that it does not depend upon coroutines.
Leopold issued a reminder about making namespaces useful.
chromatic reported a series of failing tests. Leopold Toetsch reported
that it was fixed in r14926. The problem involved formatting a long
'%ld', which does not work on all systems. He suggested
some solutions in case the current
'%lld' breaks other compilers.
Leopold Toetsch noted that he is getting different results from Perl 5 and libc when using printf/sprintf. He wondered if it was a problem with his test. Sadahiro Tomoyuki replied with some information about the specification, and another test case where Perl 5 gives unexpected results. A patch to correct the situation was applied as r29025.
Paul Cochrane created ticket [perl #40543] to deliver a patch to test for extra whitespace after a curly brace at the end of the line. chromatic wondered why this should only apply to curly braces and not extra whitespace at the end of any line, and Jerry Gay agreed. Jerry included vim settings to assist in finding trailing whitespace. Other people also expressed their dislike of excessive whitespace.
Jerry asked that the test be rewritten to involve just one test, instead of around 700. He also wanted it expanded to cover Perl files, and listed some other candidates for the check. Will Coleda disagreed, because perlcritic tests address this for Perl files.
Paul Cochrane supplied a patch in ticket [perl #40545]. The patch adds tests for yacc, lex and pmc files, and also fixes a test which was giving a false positive.
Kevin Tew reported a problem with generating makefiles in step
Kevin Tew submitted a patch in ticket [perl #40559]. This patch
solves a problem which was preventing
gen::makefiles from running.
Jerry Gay advised committing the patch.
Kevin Tew listed a few things he encountered in Parrot internals which he did not like but which are not against the current coding standards. He wondered if they are acceptable style. One of the issues had been addressed in PDD07. There was some discussion on the other points. Andy Lester begged for an end to the discussion, asking everyone to follow whatever is in the PDD. Kevin noted earlier that he was not trying to start a war, but to get a ruling on issues which are not currently in the specifications.
Karl Forner asked if there was a way to specify the minimum allocation size for PMCs. Leopold Toetsch replied that the issue had come up a number of times. He explained the history behind it, and offered suggestions for resolving the legacy confusion.
Karl Forner noted that it would be useful to know the exact amount of memory a PMC is using.
In ticket [perl #40560], Paul Cochrane provided a patch to make
Jerry Gay created ticket [perl #40562] to suggest adding a command-line option to perlcritic tests which would display a list of policies.
Earlier, Allison Randal asked for a volunteer to write up the requirements for a mini transformation language to use the compiler tools.
This week, Markus Triska linked to a section of Stefan Karl’s master’s thesis on the implementation a rule-based peep-hole optimizer which Markus felt might relate to the current discussion.
In ticket [perl #40564], Jerry Gay requested that the perlcritic policy be changed to ignore subroutines which exit or die when checking for explicit return statements. Chris Dolan replied that it was fixed in Perl::Critic r737, which will be included in the next release of Perl::Critic.
Karl Forner reported that his Parrot build failed due to a missing
use File::Spec. He included a patch, which Kevin Tew applied.
Patrick R. Michaud wrote of his confusion on how to deal with classname conflicts when multiple HLL namespaces are involved, now that PDD21 has changed. Matt Diephouse, Allison Randal, Leopold Toetsch and Will Coleda joined the thread. The conclusion seemed to be that namespace pollution still needs to be resolved and the object model is due for discussion as well.
Karl Forner asked what he needed to do to have his .o file added in
Audrey Tang announced the release of Pugs 6.2.13. Her message detailed the many changes which have been made in the last four months.
Richard Hainsworth has been trying to test GUI Perl 5 modules in Pugs 6.13. He showed an example of how he modified his code, and the error it returned. Steffen Schwigon had a suggestion on how to correct the Perl 6 code.
Sean O’Rourke submitted a patch to remove
strict 'vars' for -e scripts.
Gaal Yahas reported that they will continue transitioning to the new
AST, which will allow lexical pragmas.
This summary was prepared using Mail::Summary::Tools, available on CPAN.
If you appreciate Perl, consider contributing to the Perl Foundation 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, firstname.lastname@example.org.
This summary can be found in the following places: