Perl 6 summary: August 1-19, 2006

kudra on 2006-08-20T13:13:00

Summary updates

This is the final installment of the older summaries. After this week, I plan to post weekly summaries on Sundays.

Parrot Porters

[perl #39750] parrot@13183: tru64 core dump: t/examples/japh_12.pasm

This thread was previously completely summarized in July.

In [perl #39750], Jarkko Hietaniemi posted about a core dump. Chip Salzenberg fixed it.

[perl #39751] unbug - parrot@13183: tru64 core dump: t/dynoplibs/myops_4.pir

This thread was previously completely summarized in July.

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.

[perl #39752] parrot@13183: tru64 core dump: t/op/lexicals_27.pir

This thread was previously completely summarized in July.

Jarkko Hietaniemi had another bug to report in [perl #39752]; Chip Salzenberg replied that it had been fixed.

[perl #39754] parrot@13183: tru64 core dump: t/pmc/resizablebooleanarray_20.pasm

This thread was previously completely summarized in July.

Jarkko Hietaniemi's issue in [perl #39754] now waits for a rewrite of ResizeableBooleanArray.

[perl #39756] parrot@13183: tru64 core dump: t/examples/japh_10.pasm

This thread was previously completely summarized in July.

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.

Building a Fedora package

This thread was previously completely summarized in July.

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 --libdir. Later he attached a patch.

[perl #39776] [BUG] PGE core dump

This thread was previously completely summarized in July.

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.

[perl #39778] Segfault when using a Namespace with an Iterator

This thread was previously completely summarized in July.

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.

[perl #39856] TODO: Produce Single PBC from Multiple PIR Files with -o

This thread was previously completely summarized in July.

In ticket [perl #39856], chromatic requested that Parrot be able to produce a single PBC file from a command like parrot -o all_files.pbc file1.pir file2.pir .... Joshua Hoblitt thought it would be a good idea to define how symbol conflicts should be handled. Leopold Toetsch believed that pbc_merge can handle this, but Allison Randall explained that it doesn't quite address the request. Chip Salzenberg felt that was a bug, although Allison preferred to call it a feature. Jerry Gay clarified how it worked by citing documentation and including tests.

[perl #39905] [TODO] TGE - line number reporting.

This thread was previously completely summarized in July.

Ticket [perl #39905] was created by Will Coleda. Errors in an embedded PIR should be reported against the original .tg file rather than the generated PIR file. Patrick R. Michaud asked how this could be addressed, and Will included documentation.

[perl #39986] Create Default PackFile for New Interpreter (Parrot C API)

This thread was previously completely summarized in July.

chromatic created ticket [perl #39986] to report that there is no default PackFile for the situation where he has created a new interpreter with Parrot_new() and wants to compile and run code through Parrot_compile_string() without having to read and load bytecode from disk.

It was reported that this was fixed in r13613, but chromatic had further questions. There was further discussion between chromatic, Leopold Toetsch and Chip Salzenberg. Chip requested some cleaning on namespace pollution, and Andy Lester replied that it is on his list.

Continuations and inferior runloops: Analysis and POC

Leopold Toetsch presented an analysis of the the inferior runloops problem - embedding foreign language runloops in the parrot runtime. The problems encompass continuation support and garbage collection amongst other things.

Bob Rogers replied proposing that foreign data be explicitly tracked. Leo mentioned that this has been previously discussed and dismissed.

[perl #39997] [PATCH] PGE P5 Test Cleanup

This thread was previously completely summarized in July.

David Romano submitted a patch to clean up the regex tests taken from Perl 5. Jerry Gay raised the an issue with the data file being shared with Perl 5, after which David supplied an additional patch, moving todo/skip information to an outside file. Jerry applied.

PGE/TGE and the future.

This thread was previously completely summarized in July.

Kevin Tew wanted information about TGE design goals and plans. Allison Randal replied that the plan is to have a single set of OST node classes used by all languages, a task Vishal Soni is currently at work on. She included a link to the first draft of the compiler tools plan, which Patrick R. Michaud is at work on updating so that it can be converted to a PDD.

[perl #40002] TGE Refactor / Compiler Tools Object

This thread was previously completely summarized in July.

Kevin Tew created ticket [perl #40002] to ask a number of questions about the TGE refactor and cited several other tickets. There were some replies in August.

Patrick R. Michaud replied with information about the plans for TGE. Allison Randal and Patrick R. Michaud contributed summaries of a conversation they had at OSCON. Jerry Gay also commented.

resizablepmcarray, assign.

This thread was previously completely summarized in July.

Will Coleda included some code which was not working in Tcl. He thought the error originated in the Parrot code base, and asked some questions. Bob Rogers had difficulty replicating the problem; chromatic suggested using a newer Test::Harness because prove is not included in the older version. Leopold Toetsch felt this was in conflict with the Parrot README prerequisites list.

Will said that the problem was fixed in r13696. He also reported that Tcl's test suite is being converted from using Perl to being self-hosting in Tcl. Bob reported some additional problems in r13715. Will noted that Tcl was undergoing a lot of changes this week. There was some further discussion with Matt Diephouse on the Tcl changes.

[perl #40030] [PATCH] compiler/imcc missing dependency

This thread was previously completely summarized in July.

In [perl #40030], Fonseka reported some missing dependencies which were preventing compilation and provided a patch. In the end it turned out to be a problem with an old Parrot installation.

[perl #40032] [CAGE] no previous prototype

Will Coleda created ticket [perl #40032] for the Cage Cleaners. The topic was a warning in src/encodings/utf8.c.

[perl #40033] [CAGE] argument type warning

In ticket [perl #40033], Will Coleda reported a warning in function Parrot_Continuation_invoke. This was fixed in r13722.

[Proposed PATCH lib/Parrot/Test/Embedded.pm] Use Embedded Interpreter for PIR Tests

chromatic posted a patch which adds a new test module. He wanted feedback on it. Leopold Toetsch had two questions about chromatic's methods, which chromatic answered.

Questions

chromatic posted several questions that he needs answered before he can add Parrot::Embed to the repository. Most of the questions involved where it should be located and how it can be integrated with the rest of the build. Joshua Hoblitt had some suggestions, which led to a discussion between chromatic, Joshua and Chris Dolan.

[perl #40039] [BUG] r13762: compilers/bcg/ fails to build with msvc -- unresolved external symbol

Jerry Gay reported a bug with r13762 in ticket [perl #40039]. Parrot was successfully built, but compilers/bcg/ failed.

[svn:parrot-pdd] r13740 - in trunk: . docs/pdds

Allison Randal modified the PDD21. The change was to make namespace opcodes accept arrays to enable multidimensional namespaces, and to remove redundant globals and get/set methods. Matt Diephouse asked how the removal of get/set methods would affect namespaces with a sigil or other unusual name. Allison replied that the methods were part of the untyped interface; the typed interface uses find_namespace and add_namespace.

Initialization and Finalization hooks

Kevin Tew discussed having BEGIN and END blocks be supported by Parrot. Leopold Toetsch replied that he thought END might be currently supported, and suggested looking at the last few tests in t/pmc/exception.t between revisions r13768 and r13770.

Shared Lib fro Dynamic PMC

Vishal Soni wanted to know the best location to store a shared library for the byte code generator. chromatic thought it belonged in either blib/lib or runtime/parrot/dynext and wasn't sure which should be used in this case.

[perl #40048] [CAGE] t/distro/file_metadata.t doesn't like svk

Will Coleda created ticket [perl #40048] to report that t/distro/file_metadata.t fails because every test assumes that you are using svn, but you could be using svk. chromatic submitted a patch.

[perl #40053] Empty PGE rule causes error. rule x { }

In ticket [perl #40053], Kevin Tew requested that an empty PGE rule should give a more informative error message.

random thoughts on making parrot compiler faster

Joshua Hoblitt noted that much of the build time is spent on tools/build/pmc2c.pl and tools/build/c2str.pl. He suggested limiting this process to maintainers only.

Parrot news: namespace ops good, (some) namespace methods bad; key-accepting ops

Chip Salzenberg notified the list that the namespace opcodes are now preferred over the methods. Allison Randal replied that a similar change needs to be made for lexicals. The naming convention for these routines was discussed.

Note: this thread is partly missing from Google's archives and is thus linked to gmane.

Fix symbol table namespace pollution

Chip Salzenberg wanted external functions and variables to have names that begin with Parrot. The request was added to the Cage Cleaners todo list. There was a brief discussion on storing Parrot tasks in the todo list versus storing them in RT.

Fix non-symbol-table namespace pollution in public headers

Chip Salzenberg noted that public headers in the include/parrot directory should not declare or define any symbol which isn't specific to Parrot. Symbols should be prefixed with Parrot or PARROT, although the exact syntax is up for debate. The request became ticket [perl #40060].

[perl #40058] Disambiguate usage of class PMCs from class name lookup (pdd15, pdd06, pdd19)

In ticket [perl #40058], Chip Salzenberg stated that there is ambiguity between class names and class PMCs which should be resolved in a general way for all class-accepting opcodes. Martin D Kealey wanted to know why HLL namespaces should be treated differently from classes. chromatic replied that this was to protect against future additions to 'parrot' breaking code. Pheme was an example of a language that would have problems with the situation Martin described.

[perl #40059] [CAGE] Fix symbol table namespace pollution

Chip Salzenberg created ticket [perl #40059] to state that external functions and variables must have names that begin with 'Parrot'.

[perl #40063] [PDD] document subroutine attributes (pdd19_pir.pod)

Ticket [perl #40063] requests that subroutine attributes :main, :immediate, etc, be documented.

[perl #40064] [TODO] shootout example testing

Leopold Toetsch wanted tests added to examples/shootout/*.pir. Ticket [perl #40064] tracks this.

[perl #40065] STM first merge tracking ticket

Ticket [perl #40065] was created by Chip Salzenberg to track the first merge of STM, which should make basic threading work again. Chip later closed this ticket when the merge was done.

[perl #40066] rewrite ResizeableBooleanArray

Ticket [perl #40066] states that ResizeableBooleanArray should be rewritten. FixedBooleanArray could use an update as well.

[perl #40069] [PGE] "value" can't be used as a rule name.

Ticket [perl #40069] described how a rule or token named 'value' does not work properly. Patrick R. Michaud knew why the problem was happening, but was not sure how to resolve it.

[perl #40072] [CAGE] tools/dev/mk_manifest_and_skip.pl requires svn

In ticket [perl #40072], Will Coleda noted that tools/dev/mk_manifest_and_skip.pl uses hardcoded references to svn.

[perl #40087] [BUG] Segfault in key.pmc

Will Coleda created ticket [perl #40087] to report a segmentation fault in key.pmc.

[perl #40090] [TODO] Tcl - make 'tcl.pbc --pir' work.

In ticket [perl #40090], Will Coleda explained how make tcl.pbc --pir should work.

a premature optimization

Will Coleda has been converting Tcl's test suite to Tcl, but one of the larger test files is much slower. Leopold Toetsch and Matt Diephouse offered suggestions on how to improve the code.

[perl #40102] [BUG] Using splice with an out-of-range array index gives bad error

Matt Diephouse reported in ticket [perl #40102] that the error message for using splice with an out-of-range array is unhelpful. Leopold Toetsch fixed it with r13890.

[perl #40106] [PATCH] 15 more tests work for PGE::P5Regex

Kay-Uwe Huell submitted, via ticket [perl #40106], fixes to PGE::P5Regex needed to make 15 more tests work.

Failing t//tools/pbc_merge.t

chromatic had a test failure. He made a patch to highlight the error, which he included in the post.

Failing parrot test (t/op/stringu.t)

Paul Cochrane reported a test which has been failing across multiple updates.

parrot compile error

Hugues reported a parrot compilation issue. Several others reported similar issues, and Shawn H. Corey tried to help them out. Eventually Leopold Toetsch asked everyone to post some more specific information, but no resolution was reached.

[perl #40120] [TODO] parrothist.pod

Chip Salzenberg suggested in ticket [perl #40120] that a document describing Parrot evolution be written.

[perl #40121] [TODO] Tcl - implement [lreplace]

In ticket [perl #40121], Will Coleda requested the implementation of lreplace.

#parrotsketch meeting august 08, 2006

The transcript of the #parrotsketch meeting has been made available.

[perl #40122] [TODO] list_splice should work on any pmc that 'does array'

Will Coleda created ticket [perl #40122] to address code near the list_splice() function which prevents using it across multiple types of PMCs. Leopold Toetsch replied that the implementation is optimized for Array, and a more general solution can be created by implementing the splice vtable function in the TclList PMC. Will closed the ticket and created [perl #40125] [TODO] implement splice for ResizablePMCArray.

[perl #40123] [TODO] push_eh + .param for argument mismatch errors

In ticket [perl #40123], Matt Diephouse wrote that he would like to be able to use .param to catch argument mismatch errors inside of a subroutine.

[perl #40124] [TODO] Document HLL mappings

Will Coleda penned ticket [perl #40124] because he believes that the use of HLL mappings should be documented. This would help HLL authors know when to override, and when a change would have no effect.

[perl #40125] [TODO] implement splice for ResizablePMCArray

Will Coleda created ticket [perl #40125] to schedule implementing a generic splice method. This request originated in [perl #40122] [TODO] list_splice should work on any pmc that 'does array'.

[perl #40132] [TODO] Remove set_pmc vtable method

Matt Diephouse noted that array.pmc has contained a note indicating that set_pmc is deprecated for over a year now. In ticket [perl #40132], he requested that it be removed soon.

Parrot 0.4.6 Released! {p2-only announcement}

Chip Salzenberg reported the release of Parrot 0.4.6.

[perl #40135] [BUG] Tcl - t_tcl/subst.t failure.

In ticket [perl #40135], Will Coleda reported a failing test and explained why the problem happened.

[perl #40138] [TODO] Tcl - add tcl's tests into our repository

Will Coleda created ticket [perl #40138]. In it, he stated that the Tcl test files should be added to the repository to allow anyone to run the tests.

[perl #40143] [TODO] Tcl - support $tcl_precision

In ticket [perl #40143], Matt Diephouse described what he wanted from Tcl. Will Coleda added some additional instructions.

[perl #40145] [PATCH] t/compilers/imcc/syn/macro.t segfault

Audrey Tang requested a regeneration of a patch. Leopold Toetsch applied it as r13984. Ticket [perl #40145] tracked the request.

http://arstechnica.com/news.ars/post/20060810-7462.html

Will Coleda quoted an article which spoke of increasing interest in Parrot among dynamic language enthusiasts.

Review of current stm branch code

Chip Salzenberg reviewed the progress of Charles Reiss' Google Summer of Code project to add Software Transactional Memory to parrot. Chip commented that the work so far has been very good, and that he'd like Charles to continue contributing to Parrot.

There were many questions and answers provided by both parties, and some C coding style issues were also raised. Due to the highly technical nature of this thread, we will not cover it at length.

Grammar question

Alberto Simões reposted a question of rules from #parrot. Patrick R. Michaud offered an answer.

PGE grammar test file

Nuno Carvalho has been working on tests to evaluate simple PGE grammars. Tests and other patches were included in the post.

Why consting is good

Andy Lester wrote some documentation about why consting is good. He added it to the Parrot repository as cage/consting.pod. Elizabeth Mattijsen mentioned her module Data::Reuse, which was inspired by Andy's work and Data::Alias.

The discussion continued in minority report [was RE: Why consting is good].

minority report [was RE: Why consting is good]

Responding to Why consting is good, Tom Horsley explained why he is not as fond of const as Andy Lester is. Andy replied to some of Tom's points.

Common/Standard POST Implementation

Vishal Soni would like to see a standard POST implementation. After looking at several of the implementations, Vishal came up with something which could be used by all languages. The patch is attached. Allison Randal and Patrick R. Michaud were asked to examine it.

Improve Library Path Handling

chromatic noted that it is currently possible to change the paths Parrot uses to load libraries. He included tests which show the problem, and a patch to fix it. There is still a issue that the enum_lib_paths constants in include/parrot/library.h are not available via iglobals.pasm.

rt problem

Amir E. Aharoni sent a patch but could not find it among the RT tickets. Amir wondered if the problem was RT or a user error.

Register Allocator

Vishal Soni offered some comments on the #parrotsketch IRC log, on the subject of register allocation. Vishal offered to write a simple register allocation scheme which will not be optimized but which might be adequate for the development phase. Comments were requested.

[PROPOSED PATCH] Add Parrot::Embed to Repository

chromatic proposed adding Parrot::Embed to the repository, and provided a patch. Jerry Gay had a question about the patch format. Jerry and chromatic resolved the problem, and Jerry was able to report that, as chromatic expected, Windows did not like the patch. Francois Perrad also reported difficulties. chromatic planned to fix the problem.

[perl #40153] [CAGE] TEST_PROG

Will Coleda wanted anything referring to TEST_PROG to rename it to 'parrot' or 'executable' depending on context. Ticket [perl #40153] tracks the issue.

[perl #40162] [PATCH] parrot/trunk/docs/art/pp001-intro.pod - spelling

In ticket [perl #40162], Amir E . Aharoni sent a patch to correct some spelling errors.

[perl #40171] [TODO] - Can't use an Iterator with a DynLexPad PMC

In ticket [perl #40171], Matt Diephouse noted that iterator and DynLexPad don't work well together. He wondered how to make an arbitrary hash-like PMC to work with iterator.

[perl #40178] None Must Die

In ticket [perl #40178], Chip Salzenberg passed a death sentence on the None class. Leopold Toetsch reported that he was working on removing it from the public interface of Hash.

Leopold also noted that $S0 = hsh['no_such_key'] used to return an empty STRING* but will now return a NULL STRING*. Patrick R. Michaud noted that this would break many things in PGE and provided some examples. Chip had some suggestions on how to reduce the pain. Jerry Gay also had some advice. Later, Patrick reported that there were only five things that would break with the change.

[perl #40182] [TODO] Convert PGE::CodeString to .pmc

Will Coleda created ticket [perl #40182] to submit a request from Patrick R. Michaud to have CodeString written in C instead of PIR.

[perl #40187] [PATCH] PGE simple grammar test file

Nuno Carvalho contributed a patch ([perl #40160]) which includes a rewritten PGE test file, adding some simple grammars. Patrick R. Michaud applied.

This bug was [reposted][perl #40160] [PATCH] PGE simple grammar test file when the mail seemed to go missing.

[perl #40191] [PATCH] PGE simple grammar test file revisited

In ticket [perl #40191], Nuno Carvalho submitted a patch to make some changes to t/compilers/pge/06-grammar.t, namely to remove \t spacing, reorganize comments, and add an author section.

[REPATCH] Parrot::Embed Take Two

chromatic submitted a patch for the build file to try to resolve pkg_config issues with various platforms. He had some questions about installing from outside the Parrot tree on Windows. Leopold Toetsch offered a suggestion.

Re: [perl #39868] [CAGE] convert C<BEGIN { plan tests => NN; }> to C<use Parrot::Test tests => NN;>

Nuno Carvalho included a patch found in [perl #39868] and noted problems that it caused.

Mono, Bundles, and Ahead-Of-Time Compilation

chromatic linked to a blog post by one of the Mono developers, which discussed Ahead-Of-Time Compilation, to speed up startup times, asking what Parrot could take from this.

Leopold Toetsch replied that Parrot already supports the basic features needed for this, but that are not currently being tested or used, and would probably need to be updated.

[perl #40200] t/pmc/threads.t test 16 fails under JIT (parrot -j)

In ticket [perl #40200], Chip Salzenberg reported that since the STM merge, all of the t/pmc/threads.t succeed, but one of the tests fails under JIT. Leopold Toetsch clarified that the problem is not linked to JIT, but happens because two threads change the same global.

Language

===, =:=, ~~, eq and == revisited (blame ajs!)

In the thread that wouldn't die, more questions and clarifications on the semantics of === were raised, especially with respect to arrays, the use of sigils during assignment, and cloning.

Patch for S05

Agent Zhang sent a patch to S05 which corrects a number of typos, and thanked people from #perl6 who had helped.

Legacy Dereferencing Syntax Used in S05

Agent Zhang reported that S05 makes use of syntax that isn't found in other synopses. The question was whether the syntax was legacy. Larry Wall agreed that it was a leftover, and said he would fix it.

Array Definitions

Arthur Ramos Jr. wrote to ask if there would be a change to matrix coding. Audrey Tang pointed him to S09 and recommended reading the synopses over the apocalypses and exegesis.

underscores in the core lib

Yuval Kogman asked why the naming convention for the core Perl 6 library disallows underscores. Many people contributed their own opinion, especially their negative one on the naming of the .valid (value id) method. Larry later clarified his opinion on underscores, and what constitutes as "core".

Patch for S06 (and also S03)

Agent Zhang sent a patch to S06 and S03 with typo corrections but had two lingering issues: S06 is overly repetitive in explaining the differences between 'inner' and 'of' return values, and 'unpacking tree node parameters' needs clarification. In addition, S06 referred to both 'is assoc('chain')' and 'is assoc('chaining')', which were normalized to 'chain'.

Daniel Hulme had some patches to the patch; Trey Harris took responsibility for the confusion. There was a discussion on 'pointy subs/blocks' which was resolved with a reference to Audrey Tang's commit r10478.

weak roles

Yuval Kogman proposed the idea of "weak roles". Mark Overmeer and Luke Palmer replied bringing up issues with the idea. The general consensus seems to be that delegates are the right way to solve this.

Type annotation on expressions

Yuval Kogman asked for a syntax to provide type annotations to expressions, not just containers, in order to disambiguate MMD, and to provide type inference hints. Daniel Hulme asked if this is any different than coercion, and Luke Palmer debated the necessity of such a construct.

naming of the Str type

Darren Duncan wrote because he felt that the name of the Str data type is ambiguous given the traditional use of the word 'string'. Later he updated his musings to accept that Str is a good enough name for the data type. David Green felt Darren's reasons made sense, but he did not object to Str.

request addition of immutable Blob type

Following a #perl6 discussion on character strings, Darren Duncan proposed the addition of an immutable and portable arbitrary length Blob type. Yuval Kogman asked about str (now called 'buf'). Buf is a mutable type.

[svn:perl6-synopsis] r10804 - doc/trunk/design/syn

Larry Wall committed a doc patch with the MAIN sub semantics. Luke Palmer and Audrey Tang discussed issues with the current semantics of MAIN declared as a method.

Module/Class Authorities

Stevan Little wondered if there can be more than one authority for a module/class. He thought S11 indicated no. Darren Duncan thought perhaps versions would be used to clarify. Jonathan Scott Duff believed it was a social issue, and explained why he thought single authorities were the way to go.

Relative running order between traits blocks

Agent Zhang asked for clarification because S04 does not explain the running order of FIRST, ENTER, NEXT, LEAVE and LAST. Tests for Pugs, which should be verified, were linked to.

Apply the unspace rule into embedded comments

Agent Zhang wondered if the unspace rule could be used with the embedded comment syntax.

Curious corner cases concerning closure cloning

Luke Palmer included some code with closures and wanted to know what they did. Yuval Kogman offered some answers based upon his intuition. Jonathan Scott Duff also offered his opinion.

Outlaw the "\ddd" notation

Agent Zhang wanted to state in S02 that Perl 6's \o and \o[] replace Perl 5's \ddd.

do EXPR

Agent Zhang submitted a patch for S04 which came from a snippet in the Pugs test suite.

Dumb doc question...

Mark J. Reed wanted to know where he could find a pod2html converter that understands the Perl 6 POD. Agent Zhang replied that pod2html can handle the synopses, except for the '=encoding' directive. Thom Boyer suggested looking at the online HTML version of the specifications but noted that S29 is not included except by reference to the SVN repository.

NEXT and the general loop statement

Joe Gottman asked if NEXT was called before or after the update portion of a loop statement. Larry Wall replied that a three argument loop is implicitly using NEXT, and the block exiting blocks run in reverse order. This led to further discussion also involving Luke Palmer and Jonathan Scott Duff.

typo fix: trinary -> ternary

Mark Stosberg suggested a typo fix in Perl6/Spec/Operator.pod.

Random grammar typo in S02

Mark Reed reported a typo in S02.

String length

Mark Reed wondered why there is no .length method on Str, when StrPos and StrLen types are defined. He proposed a .length method which would return a StrLen.

Numerification of Order:: constants

Mark Reed quoted a section of S03 and asked if Order::Increase should numerify to +1 and Order::Decrease to -1. Mark A. Biggar explained that $a cmp $b can be seen as a sequence ($a, $b)--if the sequence is increasing, $a cmp $b returns Order::Increase or -1.

David Green pondered the question. Larry Wall noted that cmp does not mean eq. He also expressed his feeling that 'but True' and 'but False' are workarounds, and not many core interfaces will use solutions involving 'but'.

Invocant name in S12

Mark J. Reed noted that S12 never states the default invocant name. He wondered if the term 'self' was introduced somewhere.

[svn:perl6-synopsis] r11115 - doc/trunk/design/syn

In response to a commit by Larry Wall, Markus Laire asked if switch -abc would mean -a -b -c. Larry discussed some of his concerns but thought it should probably be possible. Markus Laire understood Larry's point, and further elaborated on his proposal.

multi-line comments, C macros, & Pod abuse

Joshua Hoblitt asked how the #if 0 C preprocessor idiom could be converted to Perl. He asked if there was going to be a better approach than using POD hacks. Some of the suggested approaches were to use multi-line block comments, constant folded if statements, and quote operations with balanced, arbitrary delimiters.

Users

wiki

This thread was previously completely summarized in July.

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.

Compiler

Acknowlegements

Yuval Kogman once again contributed summaries for some of the threads.

This summary was prepared using Mail::Summary::Tools, now 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, kudra@domaintje.com.

Distribution

This summary can be found in the following places:

See Also