Summary updates
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.
Users
Ask Bjørn Hansen announced the creation of the perl6-users mailing list on May 17th, 2006.
Perl 6 Users FAQ (perl.perl6.users) -- Version: 2006-05-18 (s/newsgroup/mailing list/)
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.
Where can I find a Perl 6 language reference?
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.
Perl 6 User FAQ (perl.perl6.users) -- Latest version now on web.
Conrad Schneiker reported that the user FAQ had been updated and offered a link.
Latest additions (links, release highlights to Perl 6 Users FAQ
Conrad Schneiker listed the latest additions to the Perl 6 Users FAQ and noted that it can be found at www.athenalab.com.
parrot and pugs builds for os x
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.
(Existing) Perl 6 Wiki: (http://perl.net.au/wiki/Perl_6).
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.
Logic Programming for Perl6 (Was Re: 3 Good Reasons... (typo alert!))
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!)).
perldoc or pod parser in Perl6
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.
$1,000 prize for Perl 6 Wiki written in Perl 6
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.
Relationship between pugs and parrot/language/perl6
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.
Minimum modules for Production?
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.
RE: [#59132406] perl.perl6.users MIA
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.
Language
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.
[svn:perl6-synopsis] r9076 / my ($foo, *, $bar) = 1..3
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.
Linking Synopses to corresponding pod-files?
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.
using the newer collection types
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 be decided ;-)
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 :: postfix operator exists, it should be added to S03.
S02: generalized quotes and adverbs
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.
r9176 and the difference between True and true
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
the built-in true()
function. Nicholas Clark and Smylers were slightly
skeptical.
r9197 and a new name for sigspace?
A commit led to a discussion on a possible new name for sigspace
.
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.
[svn:perl6-synopsis] r9216 - doc/trunk/design/syn
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.
Perl 6 User FAQ (perl.perl6.meta) -- Version: 2006-05-13 (beta 2)
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.
Parrot 0.4.4 "Feather" Released!
Leopold Toetsch announced the release of the newest monthly version of Parrot.
ACID transactions for in-memory data structures
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.
hyp-op examples of a Bag type in S03
Darren Duncan had a question about Bag and Set in S03. Sam Vilain responded. Darren noted that r9304 had addressed his concerns.
Fw: Logic Programming for Perl6 (Was Re: 3 Good Reasons... (typo alert!))
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.
outdated/incorrect S12 examples
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.
Synchronized / Thread syntax in Perl 6
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.
Concurrency: hypothetical variables and atomic blocks
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.
Parrot Porters
The parrot-porters list was called perl6-internals during the period covered by this summary.
[perl #39013] [PATCH] Two more uninitialized registers
Andy Dougherty created a ticket, [perl #39013], which contains a patch for some tests. Will Coleda applied.
[perl #39038] [BUG] linker failure with dynpmc on win32
Jerry Gay reported in [perl #39038] that dynamic pmcs are causing linkage.
[perl #39043] [TODO] Dynamic PMCs should not include 'parrot/parrot.h'
Bernhard Schmalhofer added [perl #39043], a todo item for cleaning up header includes.
[perl #39044] Problem with :slurpy, :slurpy :named, :flat :named
Patrick R. Michaud created ticket [perl #39044] after several
people asked him to file a report for the failing test in t/op/calling.t
.
The problem was that Parrot did not correctly handle :slurpy
and
:slurpy :named
both appearing in parameter lists. Leopold Toetsch
fixed the bug.
[perl #39045] [BUG] "isa" opcode doesn't (yet) work with keyed classnames
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.
error messages now with file name and line number
Stef committed a patch to add file names line numbers to error messages.
[perl #39050] Build failure in compilers/pge/pgc.pir
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.
[perl #39051] Test failure in t/pmc/objects_62.pasm (attributes)
Andy Dougherty reported a failing test in t/pmc/objects_62.pasm
in
[perl #39051].
[perl #39052] namespace-related failure in t/pmc/objects_74.pir
Andy Dougherty submitted ticket [perl #39052] to report a
failing test in t/pmc/objects_74.pir
.
[perl #39056] [BUG] vtable override doesn't work in sub-subclasses
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.
[perl #39063] [TODO] ResizableBooleanArray uses 64 bytes per bit of information
Andy Dougherty started ticket [perl #39063] to request that ResizableBooleanArray use fewer bytes per element.
[perl #39066] [TODO] Get rid of compilers/imcc/jit.c
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.
[perl #39072] [BUG] Unable to load_bytecode :multi after PGE.pbc
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.
[perl #39081] [BUG] (possible bug) multiple calls to __init for subclassed objects
In ticket [perl #39081], Patrick R. Michaud wrote that subclasses
which don't define an __init
method will have multiple calls to the
base __init
method. This was fixed in r12594.
Nick Kostirya included a patch for r12486 to fix compilation on DragonFlyBSD.
[perl #37089] [TODO] PGE - Test Glob
Will Coleda created ticket [perl #37089] in September to request
tests for PGE's glob. Patrick R. Michaud closed the ticket as it was
addressed by t/compilers/pge_globs.t
.
[perl #39085] [TODO] pmc - make pmc2c.pl extract function declarations
In ticket [perl #39085] Andy Lester reported that each .pmc file has redundant function headings.
[perl #39088] [TODO] Add conditional GCC attributes to functions
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 .pmc file instead of the .c file.
[perl #39092] [TODO] Autogenerate functions in *.h files from source
In ticket [perl #39092], Andy Lester noted that there is a lot of duplication between *.c and *.h files. He believes the .h files should be autogenerated as much as possible.
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.
[perl #39117] [TODO] Using v?snprintf/strlcpy/strlcat when useful
Leopold Toetsch introduced ticket [perl #39117]. Steve Peters was looking in to it.
[perl #39132] [TODO] pirtidy - call for help
Jerry Gay created a todo ticket on this subject, which originated in pirtidy - call for help, wherein Will Coleda introduced the request. The resulting ticket was [perl #39132].
Re: [perl #39135] Problem with concat on Match objects
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.
Variadic Multi-Dispatch (or, M-D on certain invocants only)
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 .PMCtype constants without using the .HLL pragma.
Patrick R. Michaud suggested :immediate
.
Will Coleda gave an example of inconsistent load opcodes and proposed a couple of alternatives.
[perl #39142] [TODO] pmc2c.pl doesn't allow mixed case groups/pmc filenames.
Will Coleda created ticket [perl #39142] to note that using a PMC
in a file called APLVector.pmc
with a group of APL_group
caused
build failures on case-sensitive platforms. Nicholas Clark asked at
what level case agnosticism should be implemented, and Will expanded
on the original thread.
[ARCH] Classes moving into namespaces; parrot reserved namespace
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.
[PMC] init_pmc_props() DEPRECATED; init_pmc() GENERALIZED; beware set_pointer()
Chip Salzenberg noted that the documentation of the init_pmc()
vtable method was inconsistent. He announced a change in the documentation
and also noted a few other issues he planned to look in to.
Re: lvalues and "is rw" parameter passing
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.
[perl #39161] [BUG] :multi fails when .HLL is in effect
Patrick R . Michaud created ticket [perl #39161] because
subroutines with :multi
do not work properly inside files with
.HLL declarations.
Klaas-Jan Stol wrote to request some clarification on the :immediate
pragma in practice. Leopold Toetsch agreed that it currently works as
Klaas-Jan suspected. Patrick R. Michaud added his thoughts on side effects.
[perl #39164] [PATCH] Cygwin: build with spaces in build_dir
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.
Pheme, Custom Classes, and Multi-Dispatch
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.
[perl #39173] Multi-Dispatch Incompatible with :flat Params
Chromatic submitted ticket [perl #39173], noting that the
multi-dispatch signature checking code in src/mmd.c
does not know
anything about :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.
[svn:parrot-pdd] r12774 - trunk/docs/pdds/clip
Jonathan Worthington wrote to comment on the implementation of finally handlers in Chip Salzenberg's in r12774.
[perl #39196] [TODO] tests - need to test addmethod
Will Coleda noted in ticket [perl #39196] that the addmethod opcode requires tests.
Instructions to build parrot using mingw
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.
[perl #39217] [TODO] legal - eliminate "All Rights Reserved."
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.
Software transactional memory / atomic_ops copyright
Charles Reiss is working on a project to implement STM in Parrot. He had a copyright question, which Allison Randal answered.
Coroutine reset functionality?
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
it .yield()
s, there is a segmentation fault.
Leopold Toetsch replied that this was indeed closely linked to
.reset()
.
[perl #39249] Can't use literal unicode string as a hash key.
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:
[perl #39254] Unicode sub names don't work with :multi
Will Coleda reported that unicode subroutine names don't work with :multi, in [perl #39254]. Leopold Toetsch committed a fix in r12867.
Compiler
error building pugs: "Could not find module `Data.ByteString'"
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.
[perl #39171] Crash on Win32 for 6**(9999999)
Bjoern Hoehrmann reported a Pugs crash in [perl #39171].
Newbe: How do I configure @*INC ?
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.
Acknowlegements
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.
See Also