This post continues to work on the Perl 6 summary backlog. After the upcoming August 20th recapitulation of the first three weeks of August, Perl 6 summaries will return to a weekly schedule.
Steffen Schwigon invited anyone who uses (X)Emacs to work with Perl6 or Pugs to give feedback on the enhanced cperl-mode at http://svn.openfoundry.org/pugs/util/cperl-mode.el
Audrey Tang wrote that Pugs 6.2.12 is available on CPAN, and listed some of the key features. v6.pm, a prototype Perl 6 compiler implemented in Perl 5 is also available on CPAN. She highlighted a number of modules which had contributed toward the solution, such as Moose and Module::Compile.
Conrad Schneiker had several questions for the group: what key features should be in a FOSS tool suite involving Perl 6, what major existing components are recommended, and how people would design it to take advantage of new Perl 6 capabilities.
Amir E. Aharoni wanted to know what the current state of the wiki plan is. He was primarily interested in the content, rather than the implementation. Conrad Schneiker replied that he felt a wiki should be installed on feather soon, to serve the need for documentation, and from there it would be possible to port the wiki to Perl 6.
In response to Audrey Tang's commit, Aaron Crane noted that he understood why 'environmental' had been changed to 'contextual' but questioned whether 'contextual' was the best alternative because 'contexts' already have a meaning. He proposed 'ambient variables'. Audrey responded that a context is passed along with your calls, and in that sense 'want' is a contextual variable.
Markus Laire had a question about Larry Wall's commit, namely, why
q:n[stuff] is not acceptable, and in what way parenthesis are
special. Larry replied that
qn(stuff) is always a function call,
q(foo); neither is a quote. He said that he will clarify
the distinction between quotes and macros.
In response to Larry Wall's commit, Markus Laire asked how
q () is parsed, because quotes can have whitespace but functions
cannot. Larry replied that it is a quote.
Tom Allison was looking at S04 and was confused by the intended behaviors
and prohibited behaviors of the
goto function and suggested clarifying
with test cases. Audrey Tang agreed that test cases would be useful
and invited Tom to contribute.
Uri Guttman reported on the docathon. There was a suggestion that Perl 6 have a glossary with terms might not make sense to a newcomer not steeped in theory. Uri proposed that someone be appointed pumpking of the master documentation. Juerd suggested checking out the Perl 6 Nomenclature document. José Castro amended Uri's proposal to suggest that pronunciation always be included, for the benefit of non-native speakers. Joel York volunteered to be pumpking.
Joshua Gatcomb posted that he is working on different parsers and their methods. He wondered if someone could provide an example of a mathematical expression parser. Flavio S. Glock posted links of some possibilities. Paul Seamons suggested that CGI::Ex::Template might be of interest.
Brad Bowman wrote about two sprintf features of Python which might be
nice to borrow. Nicholas Clark was not certain that sprintf needs
an operator. Larry Wall noted that there was already sort of an
operator, if infix
as is considered a variant of
Aaron Sherman included a first attempt of a revision of S29. He wanted to make it public although there is still a lot more to do.
Allison Randal is reviewing namespaces in PDD and would like to know if there is a syntax specified in Perl 6 for referring to namespaces from other languages. Audrey Tang replied that the ':' form is approved, and that this is found in S11. Larry Wall and Aaron Sherman also had some comments.
Aaron Sherman has worked on documenting sprintf in S29 and asked if there were additional formats that should be added.
Aaron Sherman has gone through the basic list operations in S29. One of the disappointments is that splice cannot be as fully featured as desired. He included the text modifications.
Jonathan Lang asked if there was anything which was possible with a sub but not a method. Larry Wall replied.
Aaron Sherman posted that he was ready to update S29 but asked Larry Wall and others to look over the documents. Joe Gottman had a comment about join, and Darren Duncan added his opinion. Aaron clarified.
In response to a commit, Smylers replied that it might not make sense for comments to start with an alternate form of expressions now denoted as illegal. Aaron Sherman asked for further clarification on exactly what expressions were covered by the patch. Larry Wall responded.
Brad Bowman posted a few thoughts about self-referential structures and their literal implementations for debugging and serializing. He wondered if a YAML approach would be a good representation.
Aaron Sherman had some questions about containers--which are mentioned in S02 and S06--and wanted to mention them in S29. Jordan Kanter saw this as an argument for the Glossary Uri Guttman mentioned in DOC: glossary. Aaron and Trey Harris had a long conversation about what containers offer.
Aaron Sherman had some questions concerning changes he wanted to make to S29 on the subject of POSIX.
Yuval Kogman asked for a more partitioned approach.
Aaron Sherman had a problem with S03 with
=== and Str.
David Green tried to clarify how Str is 'special'.
Following a question posed in Easy Str === Str question: what is a reference type and a discussion on #perl6, Yuval Kogman posted several points that are not completely resolved. He included a list of what he expects operators to return, and what they currently return in Pugs. This led to a very long discussion, which also forked into Run time dispatch on ~~.
The conclusion was that
=== did not do what most people expected,
and that the
eqv operator exists for that purpose. Synopsis patches
to clear up the explanations were applied.
Aaron Sherman wanted to know if derived classes can automatically
$obj.as<ancestor>. Larry Wall explained the situation. Aaron
had confused compile-time polymorphism with run-time mutation.
Aaron Sherman reported that Audrey Tang had asked him to split up S29 because it is becoming large. He explained how he proposed to make the division.
In response to a request by Yuval Kogman, Aaron Sherman tried to re-state his concerns from an earlier thread (Easy Str === Str question: what is a reference type). In the end, Aaron proposed dealing with the problem through documentation. There was also some discussion on proper syntax.
Darren Duncan suggested that there might be an implementation optimization
===. Chromatic wondered if it was worth adding share-on-compare as
a side-effect to a simple comparison. Darren tried to clarify his point.
Ruud felt that it should be a voluntary operation. In Yuval Kogman's
opinion, it is a VM issue.
Darren Duncan replied to a commit with a couple of suggestions:
!~ in favor of
!~~, and explicitly stating the
Leopold Toetsch requested that people verify test results rather than using Parrot output as the expected output. In short, tests should be written first, then features.
Darren Duncan noted that S03 and the newest Pugs are agreed on how
:= works. He wondered if there could also be an easy way to change
all bindings to the same variable to point to a different variable.
Sam Vilain suggested this might be similar to Ruby's
Christopher Jeris had a few questions about hyperoperators applying
recursively to any object which matches the
Each role, as seen in
S03. Darren Duncan and Larry Wall responded.
Dr. Ruud posted a joke about the origins of C++ for those who would describe Perl 6's relationship to Perl 5 as C++'s to C.
Agent Zhang posted a patch to S02, which was applied as r10314. Several other document patches resulted:
Another patch for S02 was another S02 patch by Agent Zhang, which was applied
Patch for S03 contained Agent Zhang's patch for S03, which Audrey Tang applied
Gaal Yahas was inspired to send a patch for S04 in [patch] S04: CATCH blocks
Agent Zhang had a patch with typo corrections for S04: [patch] typos in S04
Markus Laire noted a conflict between the way the Perl 6 grammar is defined, and the GNU coding standard for constructs like:
Since this requires backtracking to disambiguate between while as a statement modifier and while as it's own loop.
Many ideas were brought up, and the only real solution is to use a backslash escape for the newline, at the end of the line with the closing brace.
The parrot-porters list was called perl6-internals during the period covered by this summary.
In February, Leopold Toetsch noted in ticket [perl #38594] that source line information is off by at least one on several instructions in PASM/PIR. Vishal Soni started to look in to the bug in June, and in July the patch was applied.
Bob Rogers requested some clarification of a portion of
from late May, dealing with
.begin_eh. He wondered if this meant that
the current process of searching for an Exception_Handler object on the
control stack would be replaced with a search through sub metadata when
an error is thrown, and asked about how it would interact with
Chip Salzenberg agreed that Bob's interpretation of the plan was
correct and noted that no resolution had been reached with
A discussion on the merits of different ways of handling it ensued.
Matt Diephouse ran in to problems implementing namespace support in Tcl and had a few questions. Chip Salzenberg replied, and in the end it was determined that some of Matt's requests were already met, and that one should be a bug report.
Jarkko Hietaniemi reported a problem with Parrot with
and asked if there was a way to add verbosity to show what commands
are being run. Leopold Toetsch advised
--verbose-step=snprintf, and Jarkko included a more detailed report.
Jarkko resolved to get the admins to compile a newer
after some discussion with Leopold. Will Coleda felt the test for
readline should be improved. There were some discussions on how
to do this.
Chip Salzenberg asked for permission to revise PDD23 to use the closure model rather than the continuation model for handlers. Allison Randal agreed with the change.
In ticket [perl #39671], Vishal Soni created a patch for tail recursion, which Chromatic applied as r13084.
Matt Diephouse created ticket [perl #39674] because there is no way to specify that you want the root HLL namespace.
Matt Diephouse provided tests for array based keys and the
opcode. This sparked a long discussion relating to namespace root addressing.
Chip Salzenberg announced that the perl6-internals mailing list was renamed to parrot-porters in order to introduce it to a wider audience. He liked the name 'p-p' as an abbreviation for the list although he wasn't willing to actually stand by that statement.
Steve Peters posted links related to Java's upcoming support for 'scripting' languages in JSP. This subject came up in Chip Salzenberg's YAPC talk.
Chip Salzenberg announced that Allison Randal will take over as architect of Parrot, while Chip will become pumpking. Meanwhile, Leopold Toetsch will stay and continue working on Parrot internals. Everyone is satisfied with their new positions.
Chip Salzenberg thinks that with
get_namespace and the untyped
find_global is obsolete. Allison Randal
find_global shouldn't accept a namespace PMC as an
argument. Chip agreed with this. Patrick R. Michaud also believed
find_global was a bit overloaded. Allison further defined
what was required.
In ticket [perl #39683], Vishal Soni provided a patch to implement the register content preserving move operation.
In ticket [perl #39685], Will Coleda reported a task for the cage cleaners, namely some warnings he sees during a build on OS X. Fixes were applied as r13258.
There was a request for the documents at http://www.parrotcode.org/docs to include a last modification date.
Steve Peters had made some changes to Perl 5 which prompted Chromatic to
ask if Parrot's File PMC could use some similar capabilities. Steve
added a portable
dirfd() implementation to his configuration task
Will Coleda created ticket [perl #39696] to suggest that the Perl 6
makefile should be moved to
In ticket [perl #39697], Matt Diephouse suggested that Tcl procedures written in Tcl should be part of the standard library in ParTcl instead of implementing them as builtins.
Matt Diephouse created ticket [perl #39698] to ask if [expr] could be modified to use PGE/TGE.
Robert Spier reported that the RT system has been upgraded to 3.6.
Matt Diephouse created ticket [perl #39704] to suggest that instances of 'XXX' in the code be replaced with RT tickets.
Vishal Soni created ticket [perl #39706] because Parrot requires support for an unbounded number of registers but they are now limited to 256.
Allison Randal edited trunk/docs/pdds/pdd23_exceptions.pod in the parrot repository concerning exception handling. Bob Rogers and Allison then discussed the separation of exceptions into their own stack.
Matt Diephouse created ticket [perl #39712] reported that Tcl treats everything as an argument name, contrary to the proc man page description.
In ticket [perl #39714], Audrey Tang wrote that re-entrancy should be possible for IMCC, which would require some refactoring.
In ticket [perl #39715], Audrey Tang noted that IMCC should throw
an exception using the standard Parrot exception mechanism.
Vishal Soni supplied a patch, which eventually became r13307.
There was further discussion on the return value from
and APIs to be added in the future.
Audrey Tang noted in ticket [perl #39716] that the semantics of
the IMCC operating in
Matt Diephouse created ticket [perl #39717] to discuss Tcl's uplevel requirements.
Matt Diephouse created ticket [perl #39718] to list commands which are implemented but lack tests.
Matt Diephouse created a TODO item for Tcl, regarding the inability to inline subcommands with templates due to lack of syntax for dealing with them, or so it appears.
Jerry Gay reposted Andy Lester's call for Parrot Janitors.
Andy invited discussion on
Bill Ricker requested a detailed document of how to set up and build a smoke environment for those who are inexperienced with the project. Chromatic shared his experiences, and Nicholas Clark disagreed with Chromatic's recommended GCC version. There was a brief discussion of highly desired test systems.
Matt Diephouse created ticket [perl #39732] because variables
$foo::bar don't take advantage of the new namespace support.
Tests are also needed.
David H. Adler reported in ticket [perl #39734] that there were some errors which were causing POD tests to fail. The problem was fixed promptly, before David could even reply to answer Jerry Gay's question on what revision he was using.
In ticket [perl #39738], Chris Dolan reported that as of Parrot r13181, binding to a non-privileged port on localhost fails on Mac OS X and FreeBSD, but succeeds on Linux.
With ticket [perl #39740], Chris Dolan supplied a patch to correct confusing STDERR diagnostics.
Chip Salzenberg included a patch for
which he thought was advisable.
Chip Salzenberg included patches to fix PGE and TGE for changes in
.namespace. The TGE patch worked, but the PGE patch failed.
Allison Randal replied that TGE and PGE both needed attention for
the new namespaces implementation. Chip agreed, but wanted to apply
his patch as a regression fix. Jerry Gay reported failures of tests
due to the
.namespace changes, which Chip's patch would fix.
Allison agreed with applying the patch.
Will Coleda reported in [perl #39742] that the development version should not be detecting or interacting with installed versions of Parrot.
Chip Salzenberg replied to ticket [perl #39552], asking if the failure could be reproduced if Parrot wasn't installed anywhere. David Landgren reported that the install worked when he did that.
Chris Dolan supplied a patch to modify references to perl6-internals to refer to parrot-porters instead.
Chip Salzenberg reported in [perl #39744] that keyed access to exception objects should be forgiving.
John J. Trammell created ticket [perl #39745] to offer a patch to make test use the Parrot::Distribution module instead of mass globbing. Jerry Gay applied a modified version as r13196.
In ticket [perl #39746], John J. Trammell wrote a test to look for 'FIXME', 'TODO' and 'XXX' markers in the code. It was applied as r13195.
In [perl #39750], Jarkko Hietaniemi posted about a core dump. Chip Salzenberg fixed it.
In [perl #39750], Jarkko Hietaniemi posted about a core dump. Will Coleda replied that this is how the test should behave, and wondered if the test should be skipped or the opcode removed. Chip Salzenberg wrote a haiku about the test, and Jarkko poetically requested that the test harness be informed about Parrot's tendency to obey suicide requests.
Jarkko Hietaniemi had another bug to report in [perl #39752]; Chip Salzenberg replied that it had been fixed.
Jarkko Hietaniemi was busy reporting another issue in ticket [perl #39753]. Chip Salzenberg noted that this ticket could not be resolved without a review of the I/O PDD.
Jarkko Hietaniemi's issue in [perl #39754] now waits for a rewrite
Jerry Gay moved Jarkko Hietaniemi's report of infinity and NaN stringification from [perl #39755] to the existing [perl #33337]. Jarkko thought that his failure was perhaps a little different from the existing report.
Jarkko Hietaniemi created another bug report, this time in ticket [perl #39756]. This made Chip Salzenberg thing the test harness was ignoring segmentation faults, but Leopold Toetsch explained that it was Test::* TODO.
João Cruz Morais offered a script which will search for opcodes. Bernhard Schmalhofer added it to the tools directory, and requested a patch to add documentation. He also suggested that new patches be sent via RT. Finally, he added that it would be nice to have a port of the Parrot::Config Perl 5 module for future Python scripts.
João later created ticket [perl #39759] for the tool, also posted as Re: [perl #39759] [NEW] Util tool - search for opcodes.
Matt Diephouse created ticket [perl #39757] to report a bug.
Allison Randal said that she had heard of someone working on a Ruby implementation based on Punie and wondered if this was true. Kevin Tew acknowledged the PRuby project but welcomed a better name for it. Several people proposed 'Cardinal'. Other suggestions were 'Ronie' and 'Ronin'. In addition there was some help given.
Jerry Gay created ticket [perl #39760] to report some make warnings. Ron Blaschke sent some patches. Leopold Toetsch made corrections. Ron wondered if the issue could be closed, or if another patch was needed.
John J. Trammell created tests to check for tabbed indentation, because the coding style document states that indentation must be in spaces. His test was submitted as ticket [perl #39761].
Several people wrote about their OSCON hackathon plans at the end of July.
Matt Diephouse created ticket [perl #39768]. He felt that the Tcl compiler should either throw compile time syntax errors or fake it and output code that throws runtime errors.
Vishal Soni wondered if there was an example in Parrot on how to throw a Parrot exception and catch it.
Bob Rogers and Chip Salzenberg had concerns with
handled in r13214.
Allison Randal marked the Exceptions PDD as ready to implement with a few minor modifications. Bob Rogers had an idea on how to ensure that a handler is not in scope when invoked. Chromatic wondered why there needed to be a stack to keep track of flow control constructs. Allison replied that an exceptions stack is a good first approximation. There was additional discussion.
Steven Pritchard reported that he had been working on building Fedora Extras packages for Parrot and Pugs and had a few issues on x86_64. Joshua Hoblitt asked if perhaps this was x86_64 with multilib support, as the current build system does not support multilib builds.
Attached to the same thread was ticket [perl #39860] where
Joshua Hoblitt requested that Configure.pl should accept
Later he attached a patch.
Rene Hangstrup Møller created ticket [perl #39771] to report
that the Win32 example in
and supplied a patch. It was applied as r13221.
Kevin Tew created ticket [perl #39776] to report a PGE core dump. Patrick R. Michaud identified a possible syntax error. Chip Salzenberg wanted to know what the appropriate response was, a core dump or an exception.
Matt Diephouse reported in [perl #39777] that a large subroutine
makes IMCC segfault. Vishal Soni provided a patch to increase the number
Will Coleda noticed that perl6 isn't using the
Matt Diephouse created ticket [perl #39778] because trying to use an Iterator with a NameSpace makes Parrot segfault. Chip Salzenberg, Bob Rogers, Leopold Toetsch and Matt discussed how to fix it.
Chip Salzenberg created ticket [perl #39784] to state that Parrot's default namespace implementation should be completely untyped.
Juan Jose Natera ran CPD as requested in
cage/todo.pod and included
the output. He asked for advice on how to eliminate the code
In ticket [perl #39788], Michal Jurosz supplied a patch to fix
Jerry Gay created ticket [perl #39791] to request the syntax
@MAIN be replaced with
:main. He included an untested
Leopold Toetsch created a TODO item to deprecate
:immediate. The semantics of
:init were discussed, especially with respect to static analysis,
and functional purity of inlined values stemming from
:immediate blocks, and
where they run. Name calling and discussion ensued.
Will Coleda noted a few OS X warnings. Ticket [perl #39685] was resolved with r13258.
Audrey Tang created a TODO item for changing the macro-hack for library loading
with a shorter declarative form. This was completed by Leopold Toetsch. Allison
Randal discussed the correct semantics of the
The semantics of HLL vs. non HLL libraries was discussed extensively, eventually forking into another thread.
This ticket was reopened by Will Coleda in
[perl #39796] [TODO] Implement
Kevin Tew wondered what had been done with Coverity. Chromatic replied that they will look in to adding Parrot for their next stage of tests.
In a subthread missing from Google's archives Andy Lester provided his opinion on the current status of the code base, and Coverity alternatives.
Willie created ticket [perl #39799] to supply a patch which fixes the indentation of pmclass.
In ticket [perl #39801], Michal Jurosz supplied a patch to implement spectralnorm shootout benchmark.
Kevin Tew provided a patch in ticket [perl #39802]. This patch increases warning levels in GCC.
Allison Randal responded to a commit by noting that it might be possible to eliminate a runtime call to the loadlib opcode. Audrey Tang made the change.
Chip Salzenberg wanted to change a patch to use an adverb
loadlib 'perl6_group'. He is planning to standardize on lower
case for PIR directives, but
.HLL will continue to work for a long
time. The matter was already resolved by the time Audrey Tang got
a chance to look at it.
Patrick R . Michaud created ticket [perl #39807]. This ticket reports
a bug when
load_bytecode is used in a PIR file it causes problems with
the IMCC compiler later.
Kevin Tew submitted a patch as ticket [perl #39808].
In ticket [perl #39809], Chris Dolan reported that a simple token
:i causes PGE to crash. Patrick R. Michaud was not sure
if it was a problem, because S05 suggests one thing, but recent use
has suggested another. He thought that a ruling from p6l or @Larry
was needed. Chris agreed. Chris also offered to write a number of
syntactically incorrect regular expressions if someone were to create
a stub test for syntax errors. He supplied them in r13280.
David Fetter was hoping for some suggestions on how to implement a PL/Parrot for PostgreSQL. Gerald Butler wondered if it would be sensible to implement the interface as a set of Parrot PMCs, or if the SPI could be wrapped in Perl. David replied that this was exactly the sort of question he wanted help with.
Jerry Gay created ticket [perl #39823] to suggest that there should be a test to see if the source code follows the standards of PDD07.
Later he responded to Swaroop, stating that
Parrot::Config is generated
Jerry Gay created ticket [perl #39824] to request a test checking that the source code follows the standards of PDD07. He quoted the appropriate part of the text.