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 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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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].

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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".

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.

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.

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.

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.

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.

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.

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.

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.

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'.

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.

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

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.