This post continues with the task of addressing the Perl 6 summary backlog. The following schedule is planned for the remaining updates:
After the 20th of August I hope to return the summaries to a weekly schedule.
Ask Bjørn Hansen announced the creation of the perl6-users mailing list on May 17th, 2006.
Conrad Schneiker posted the Perl 6 User FAQ.
Markus Laire asked about the state of perl6-meta, now that perl6-users has been created. Conrad Schneiker replied that perl6-users would be used.
Thomas Wittek wondered if the best language reference for Perl 6 was the synopses, pugs-doc, or another resource. A. Pagaltzis recommended pugs-doc, and gave the URL to a getting started document. Michael Mathews added that he was looking for a step-by-step guide to installing Perl 6. David Romano described his own build process, and noted that the INSTALL file explains the process in greater detail. A couple of other people offered suggestions or mentioned their own documentation questions.
Chris Yocum noted that there were some slightly out-of-date Windows binaries of Pugs available. James Peregrino wondered if binaries were worthwhile, given the speed of development. Jonathan Scott Duff felt that they were appropriate for people looking to dabble. Rutger Vos was in favor of nightly builds.
Conrad Schneiker reported that the user FAQ had been updated and offered a link.
Conrad Schneiker listed the latest additions to the Perl 6 Users FAQ and noted that it can be found at www.athenalab.com.
David Romano created packages of Pugs and Parrot for OS X and asked people to try them. Michael Mathews reported success. The download location for the packages was discussed.
In an earlier thread, it was suggested that perhaps a Perl 6 wiki to keep information on Pugs progress up-to-date would be useful.
Conrad Schneiker posted about a wiki site with good policies that might be suitable, and Paul Fenwick, an admin from the site, expressed his willingness to help out. Juerd, however, thought it would be nice to not just write about Perl 6 in the wiki, but to create the wiki software in Perl 6.
Conrad posted addition details in another thread.
The wiki came up again, with Conrad and Juerd posting on the merits of various options. JMD added a comment as well.
Jurosz Michal referenced a wiki page containing Perl 6 and Parrot links.
Michael Mathews wondered if there was any possibility of finding an environment with Perl 6 installed so that people could dabble in it without having to install all the required software and keep it updated. Security concerns were pointed out. Chris Yocum proposed regular binary distributions to make installation easier. There was continued discussion on how to address the security issues.
Chris Yocum got stuck converting a program from Perl 5 to Perl 6. The difficulty involved joining elements of an array in to a string. Gabor Szabo offered alternate syntax, and several people reported that both the original and Gabor's version worked for them. The problem was identified in another portion of Chris's code.
Gabor Szabo asked what
$@ is in Pugs.
Yuval Kogman replied that it is
$! and linked to the exception handlers
documentation. He also mentioned
try. Michael Mathews asked for
a working example of try and CATCH. David Romano thought CATCH
hadn't been implemented yet.
Michael Mathews asked if people could contribute compelling reasons for managers to switch from Perl 5 to Perl 6, because the syntax is so different that it is in essence a new language. Daniel Hulme shared his love of the type system. Ovid felt the strength of Perl 6 is in the object system, and the fact that it interacts well with other languages. Several other people responded with their thoughts.
The earlier thread 3 Good Reasons... spawned a discussion of logic programming. Previously, Ovid had expressed his concern about Perl 6 not including support for logic programming, but noted that this was a mixed blessing since it is usually implemented incorrectly. David Romano was curious about what problems Ovid saw with adding support for logic programming in Perl 6. Ovid elaborated.
Larry Wall added that perhaps perl6-language was a better location for the discussion. Ovid started a new thread in that group: Fw: Logic Programming for Perl6 (Was Re: 3 Good Reasons... (typo alert!)).
Gabor Szabo asked if there was a perldoc command or pod parser implemented in Perl 6.
Paul Fenwick brought up the idea of a wiki for Perl 6, which was also mentioned in thread (Existing) Perl 6 Wiki: (http://perl.net.au/wiki/Perl_6).. He made a reference to implementing the wiki in Perl 6; Ovid responded with a proposal on how someone might accomplish that.
Continuing with the discussion of a wiki in Perl 6, previously mentioned in Introductions; P6 wiki, Conrad Schneiker announced a reward for the person who delivers the first Perl 6 wiki. He defined how the winner would be determined and the money distributed. There were discussions on the specifications for the project. There was also a call for a wiki on Perl 6 to be created immediately, without adding the delay of rewriting wiki software in Perl 6. People were also interested in comparing markdown with mediawiki syntax.
In reference to the wiki challenge ($1,000 prize for Perl 6 Wiki written in Perl 6), Michael Mathews asked about CGI on Perl 6. Conrad Schneiker offered some links with example code. Ovid thought the interface would be taken from Perl 5 and noted that now was a good time to note any complaints with Perl 5 modules. He also pointed out that the cookbook Conrad referenced was missing a lot of detail, and thought Audrey Tang would welcome any material. Several other people also volunteered information.
Rob asked about the relationship between Pugs and the Perl 6 implementation found under languages in Parrot. Audrey Tang replied that Parrot/Perl 6 project is one of three independent implementations of Perl 6, with the other two being 'lrep', and, naturally, Pugs. She explained the reasons behind the different projects.
Ovid tried to compile a list of 'must have' modules that will be needed in Perl 6 for it to be used in production. Other people added their suggestions. The following modules were mentioned: DBI, Template toolkit, DateTime, CGI, an object-relational mapper, mod_perl6, an HTML parser, LWP, Test::More, and XML::Parser.
Amir E. Aharoni said that he'd like to see modules in the core if they were worth mentioning in books like 'The Perl Cookbook' and 'Perl Best Practices'. Darren Duncan said that the Perl 6 distribution would be small, with other modules available on CPAN. Larry Wall replied that people would be encouraged to form standard distributions. Some other people joined the discussion.
Conrad Schneiker reported the absence of perl6-users to Google groups. There was some discussion of Google's group-adding policy, and a request to have it added to Gmane as well.
This group was eventually added to both Google and Gmane, but archives were not included, as anyone clicking on the perl6-users links in this summary probably noticed.
In the previous month, there was a fair amount of discussion on the
long dot. May saw more of the topic, which was kicked off by Juerd.
Several people dislike
. and alternatives were proposed. The
alternatives did not enjoy universal support either.
In reply to a commit by Audrey Tang, James Mastros asked if
my ($foo, *, $bar) = 1..3 is legal but undocumented Perl 6.
Audrey replied that it probably was and requested a use case
example. James was not able to come up with one at the time.
Markus Laire noted that if synopses referenced their POD files it would be easier to submit patches for the typographical errors he sometimes spots. Juerd replied that replacing 'html' with 'pod' in the file name provided the solution.
David K Storrs referred to the oft-encountered perspective that Perl 6 is taking a long time and that nothing has been accomplished. He proposed a single web page which could display important progress benchmarks, and offered to create, host and maintain the page if it was seen as a good idea. There were a couple of suggestions, including Juerd's somewhat unrelated request for an up-to-date wiki covering Pugs.
Darren Duncan asked some questions to clarify the syntax of features of newer types to aid him in his work on implementing a Relation type for Perl 6. He received many replies. Two additional topics were spawned: 'relations as roles' and 'using the newer collection types - Interval'.
Ruud H.G. van Tol asked a question about whether eval was block (try) or string in a particular context. Juerd tried to answer.
Ruud H.G. van Tol asked how one would define that a specific hash has keys which are not case-sensitive. Some people responded with recollections of a synopsis which addressed this but no reference was found. Larry Wall offered his thoughts on how this would work.
Gaal Yahas asked how one could express scans (a generalization of reductions)
in Perl 6. The reduce meta operator was subsequently modified to return scans
when invoked in list context. Whether this is actually a good thing is yet to
Allison Randal wrote about her concern that 'regex' will always mean 'regular expression' to people who encounter it, and proposed a different name for a 'thingy outside a grammar,' as she described it. She went on to list other semantic issues that she has with Perl 6. The thread was highly popular and many people contributed.
Jerry Gay noted that if the
The adverb section in S02 led Jerry Gay to wonder if parsing of an adjacent single and double (for instance 'q' and 'qq' to form 'qqq') would be accomplished by matching the longest token first. Larry replied that he would like to see if double character adverbs can be made single characters. He also offered suggestions on how clarity could be added in this situation.
Audrey's commit changed 'true' to 'True', which led to Elyse M. Grasso
wondering if 'false' had become 'False'. Larry said this was the case,
and that the reason for changing them had been to avoid confusion with
true() function. Nicholas Clark and Smylers were slightly
A commit led to a discussion on a possible new name for
Allison Randal, Nicholas Clark, Ruud H.G. van Tol, Larry Wall, Smylers,
and Chromatic participated. Suggestions ranged from 'SIGSPACE' to
'gappy' to 'negative space'.
Herbert Breunung asked for examples of instances where Perl 6 simplifies Perl 5 code. These will be used in his tutorial, which will eventually be translated and added to the Pugs trunk. Thomas Wittek suggested writing in English, but Herbert explained that it is much easier for him to make modifications in his native tongue.
Larry Wall made a commit to remove Prefix * and **. Also, triangulation in
list context now requires an explicit
[\*]. Markus Laire inquired if
@foo[1;**;5] was still possible with the new syntax, and Larry replied
with a note that he should revisit S09.
Conrad Schneiker cross-posted the Perl 6 User FAQ from comp.perl6.meta. He asked if anyone could get Google Groups to pick up comp.perl6.meta, and requested feedback on the FAQ.
Leopold Toetsch announced the release of the newest monthly version of Parrot.
Rob Kinyon, who was working on DBM::Deep, asked if it would be easy to add ACID transactions in Perl 6. Audrey Tang pointed him toward 'is atomic' in the S17 draft. Sam Vilain noted the topic had come up in another list and should be brought up again.
Jonathan Scott Duff had a question on the state of DBI in Perl 6 and on the API redesign DBI2. Tim Bunce answered that DBI2 had been put on hold, but Szilakszi Bálinthad a good proposal on DBI for Pugs. He added that dbi2-dev was the best mailing list for further discussion, but that perl6-language was appropriate for Perl 6 issues.
Chip Salzenberg asked what the relationship was between namespaces and classes. Larry Wall replied that namespaces are for declaration names, while classes can really only name things operationally. Further discussion ensued.
Darren Duncan had a question about Bag and Set in S03. Sam Vilain responded. Darren noted that r9304 had addressed his concerns.
Ovid forwarded a thread which had previously been posted on perl6-users (Logic Programming for Perl6 (Was Re: 3 Good Reasons... (typo alert!))). In it, David Romano and Ovid were discussing the obstacles that would limit Perl 6's support of logic programming. Several other people joined in with suggestions.
Darren Duncan asked whether or not
self is a valid bareword in Perl 6. Stuart Cook
replied that he thought it was valid but Darren wasn't sure.
John Drago mused on the syntax of classes that can only be accessed by one thread at a time. Many participants donated their opinion and debated how to perform parallel job execution.
Jonathan Lang asked if an STM style async block is semantically different from a block in which all variables are hypothetical let-variables. The thread continued discussing the definition of Software Transactional Memory, how it applies to Perl, and the relationship between ACID and virtualized time.
The parrot-porters list was called perl6-internals during the period covered by this summary.
Andy Dougherty created a ticket, [perl #39013], which contains a patch for some tests. Will Coleda applied.
Jerry Gay reported in [perl #39038] that dynamic pmcs are causing linkage.
Bernhard Schmalhofer added [perl #39043], a todo item for cleaning up header includes.
Patrick R. Michaud created ticket [perl #39044] after several
people asked him to file a report for the failing test in
The problem was that Parrot did not correctly handle
:slurpy both appearing in parameter lists. Leopold Toetsch
fixed the bug.
Patrick R. Michaud created ticket [perl #39045] in order to note that the "isa" opcode doesn't work with keyed classnames. Leopold Toetsch reported it fixed in r12615.
Stef committed a patch to add file names line numbers to error messages.
In [perl #39050], Andy Dougherty reported that the build process
for the current snapshot dies on
compilers/pge/pgc.pir. As of
May 30, the problem was still there.
Andy Dougherty reported a failing test in
Andy Dougherty submitted ticket [perl #39052] to report a
failing test in
Patrick R. Michaud wrote ticket [perl #39056] to report that vtable overrides don't work in a subclass of a subclass. Leopold Toetsch noted it was fixed in r12797.
Andy Dougherty started ticket [perl #39063] to request that ResizableBooleanArray use fewer bytes per element.
Bernhard Schmalhofer noted in [perl #39066] that
compilers/imcc/jit.c is outdated according to Leopold
Toetsch's comment in r11423.
Patrick R. Michaud gave a status update on the Parrot-based compiler for Perl 6. r12488 causes the compilation sequence to more closely follow the expected plan of parsing and executing most expressions and simple statements.
Patrick R. Michaud reported in [perl #39072] that he was unable to get Pheme to run on his system. Chromatic seconded the bug. It was fixed in r12593.
In ticket [perl #39081], Patrick R. Michaud wrote that subclasses
which don't define an
__init method will have multiple calls to the
__init method. This was fixed in r12594.
Nick Kostirya included a patch for r12486 to fix compilation on DragonFlyBSD.
Will Coleda created ticket [perl #37089] in September to request
tests for PGE's glob. Patrick R. Michaud closed the ticket as it was
In ticket [perl #39085] Andy Lester reported that each
Andy Lester reported in [perl #39088] that GCC has a number of attributes that can be applied to functions. He offered to work on this.
Andy Lester reported that he improved Makefile's handling of ctags,
so that the tag refers to the
In ticket [perl #39092], Andy Lester noted that there is a lot
of duplication between *.c and *.h files. He believes the
Will Coleda asked if anyone had experience with APL and could create a test suite to ensure that he is writing APL, rather than something APL-ish. Jack Woehr forwarded on the request to people likely to know APL but not Perl 6.
Leopold Toetsch introduced ticket [perl #39117]. Steve Peters was looking in to it.
In [perl #39135], Patrick R. Michaud reported some encounters with using concat with Match objects from PGE. Leopold Toetsch suggested a workaround, but later fixed it.
Chromatic thought he had a problem with multi-dispatch on only the first
argument to a function, but when Leopold Toetsch looked at it he couldn't
see the error. Chromatic noted that he'd used 'array' as the type and
expected it to pick up ResizeablePMCArray and ResizeableStringArray too.
Once he fixed that the example worked.
Will Coleda inquired as to whether it is possible to load a language's
PMCs and create the
Will Coleda gave an example of inconsistent load opcodes and proposed a couple of alternatives.
Will Coleda created ticket [perl #39142] to note that using a PMC
in a file called
APLVector.pmc with a group of
build failures on case-sensitive platforms. Nicholas Clark asked at
what level case agnosticism should be implemented, and Will expanded
on the original thread.
Chip Salzenberg outlined the changes he is making to address flaws in Parrot class design. Will Coleda expressed concern that the modifications would expose internal Parrot to HLL programmers. Chip felt that it would be impossible to create a completely invisible Parrot, and proposed another means of dealing with the namespace issue. Jonathan Worthington had a couple of questions, which Chip answered. Leopold Toetsch also had some input.
Chip Salzenberg noted that the documentation of the
vtable method was inconsistent. He announced a change in the documentation
and also noted a few other issues he planned to look in to.
Patrick R. Michaud responded to an older thread on the syntax of some Perl 6 code in PIR. Chip Salzenberg commented that it might be necessary to wait for further Perl 6 details before writing sample code. He speculated on the plan for scalar containers, which Audrey Tang confirmed was the intended implementation.
Patrick R . Michaud created ticket [perl #39161] because
:multi do not work properly inside files with
Klaas-Jan Stol wrote to request some clarification on the
pragma in practice. Leopold Toetsch agreed that it currently works as
Klaas-Jan suspected. Patrick R. Michaud added his thoughts on side effects.
Greg Bacon offered a patch in [perl #39164] to allow Parrot to build on Cygwin when the build_dir contains spaces. Matt Diephouse noted that it also worked on OS X, and applied the patch in r12755.
Chromatic included a patch for a custom Cons class to Pheme for Lisp/Scheme, but expressed his uncertainty that he had addressed the issue properly.
Chromatic submitted ticket [perl #39173], noting that the
multi-dispatch signature checking code in
src/mmd.c does not know
:flat calls. Leopold Toetsch agreed that was the
case, and quoted a snippet from S06. There was some continued discussion
on what Chromatic wanted, and what the synopses stated on the subject.
Chip Salzenberg made a suggestion, which was implemented in r12753.
Matt Diephouse proposed removing some languages from the Parrot source because the implementations were quite out of date or unused. There was no disagreement, and this was done in r12807. There was, however, a discussion on the difficulty of finding deleted files in an SVN repository.
Jonathan Worthington wrote to comment on the implementation of finally handlers in Chip Salzenberg's in r12774.
Will Coleda noted in ticket [perl #39196] that the addmethod opcode requires tests.
Joshua Gatcomb was trying to build Parrot after 1.5 years without updating. He was not sure how to best install it on his Windows system with limited rights, and Jurosz Michal offered advice.
Leopold Toetsch posted with a proposal on how to handle PBC meta information based upon his thoughts after reading PDD23.
Joshua Gatcomb noted that having mysys in his path led to unexpected problems with mingw even when he wasn't intentionally trying to use mysys. Andy Dougherty didn't understand the patch; Joshua explained it just offered a warning.
Allison Randal created a ticket, [perl #39217], to remove the phrase "All Rights Reserved" from copyright notices. Will Coleda listed a couple of cases and asked how they would be handled. This led to a discussion of the history of the phrase, the history of The Perl Foundation's name, and the legal status of copyright symbols. r12825 addressed Allison's request.
Charles Reiss is working on a project to implement STM in Parrot. He had a copyright question, which Allison Randal answered.
Klaas-Jan Stol proposed functionality to reset a coroutine.
Elizabeth Mattijsen and Leopold Toetsch felt it would be useful.
Later, in thread coroutine segfaults,
Klaas-Jan Stol wrote that if a coroutine is called more times than
.yield()s, there is a segmentation fault.
Leopold Toetsch replied that this was indeed closely linked to
In [perl #39249], Will Coleda supplied some code involving unicode hash keys which failed to compile.
Andy Dougherty informed the parrot porters that he will be stepping away from the Parrot project. He also submitted all his pending patches to RT. Leopold Toetsch thanked him for his contributions so far.
Thank you, Andy, and good bye!
Andy's patches and other tickets:
Will Coleda reported that unicode subroutine names don't work with
Dave Whipp reported a build error, but then said that updating his working directory resolved this issue.
Rlp reported a build failure which Audrey Tang promptly fixed.
Bjoern Hoehrmann reported a Pugs crash in [perl #39171].
John M. Dlugosz asked how to configure the
@*INC array in his Windows build of
Pugs. Jonathan Scott Duff suggesting using the
PERL6LIB environment variable.
New features in Yuval Kogman's Mail::Summary::Tools further improved the summary-writing process. Yuval also contributed some of the summaries this week.
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.