Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

kudra (4364)

kudra
  (email not shown publicly)

Journal of kudra (4364)

Sunday October 29, 2006
08:24 AM

Perl 6 summary, 22-28 October, 2006

This week on the Perl 6 mailing lists

"IMHO, @Larry got overly precise in the above S02 quote: s[More precisely] = "Usually""

-- Jonathan Lang, in 'where constraints as roles' (was: 'how typish are roles')

Language

Synopsis 26 - Documentation [alpha draft]

Discussion continued on the draft S26 documentation Damian Conway released. Christopher J. Madsen noted another possible issue with XHTML entities, which are not always lower-case. He offered suggestions on how the issue could be resolved.

signature subtyping and role merging

Two weeks ago, TSa asked for some help on the topic of subtyping signatures in the context of deriving a type lattice from role definitions. Mark A. Biggar replied that it is safe to assume that two methods with the same name are semantically unrelated, which makes the signature merge nonsensical in a general case. Jonathan Lang agreed, requesting that no attempt be made to merge signatures. He suggested multiple dispatch instead.

This week, TSa thought that while multiple dispatch would avoid some problems, every role might not provide its methods as multi. Jonathan Lang agreed but still thought there was no good way to merge signatures. TSa and Jonathan debated the issue further.

set operations for roles

Last week, Jonathan Lang replied to a comment in the thread 'class interface of roles'. The discussion involved the syntax for ordered and unordered composition. Jonathan proposed some syntax. TSa and Jonathan discussed possibilities, and Larry Wall added his thoughts.

This week there was further conversation, including a clarification of how mathematical symbols for sets would be written in ASCII.

There was also confusion on rules for set operators, which, according to Jonathan Lang, has to do with terminology. He sees the same thing in the terms 'subclass' and 'superclass', which are counterintuitive. He felt that highlighting set operations and avoiding traditional type theory terminology could avoid much of the confusion. TSa was not sure this would solve the issue.

Programming languages and copyright?

Markus Laire inquired about programming languages and copyrights. Specifically, he wanted to know if it was legal to incorporate features from other languages when designing a language. Smylers replied that code can be copyrighted, but ideas cannot be; therefore, you can borrow from what code does, so long as you don't copy the sources. Buddha Buck elaborated further.

how typish are roles

Referring to an earlier thread 'class interface of roles' (which also spawned thread 'set operations for roles', TSa asked how typish roles are, because some people appear to see them as lightweight components for class composition, while TSa views them as offering a contract on functionality.

Trey Harris gave his opinion. He thought that in practice, both classes and roles will be used as types, with roles being more common when working close to the Perl core, and classes for local needs.

Later TSa summarized what had been discussed to date, which led to a discussion of syntax and what will be part of Perl 6 (and what might come later).

Trey started a new thread, 'where constraints as roles', wherein he asked if a where clause or junctive type defines an anonymous role, while a type parameter defines a lexical role, and suggested adding this information to S12. Larry Wall replied, saying that a where clause is there for pattern matching...but went on to note other possibilities. chromatic commented: "it's awfully difficult to have nominal typing in a room full of blank 'Hello my name is' tags." Jonathan Lang felt that S02 gave some indication of what Trey suggested, and that where clauses and junctive types should not be turned in to roles: roles and junctive types should be turned in to where constraints.

mmd-draft.txt

TSa noted that multi-method dispatch is not yet in S06 and asked if someone could explain the voting mechanism used to select the dispatch target.

Parrot Porters

Bytecode PDD

Some time ago, Jonathan Worthington released a draft PDD for Parrot's bytecode format.

This week, Jonathan replied to Leopold Toetsch's message, but also suggested a review of r15001. There was a brief discussion on HLL resources.

Parrot::Coroutine

François Perrad continued the 'Heads up: Dynamic environment...' thread as it relates to Lua. He remarked that the languages/lua/lib/thread.pir methods are stubs, and asked how __clone and __get_pointer should work.

[perl #40544] [NEW] Test for DOS line endings in Parrot text files

Previously, In ticket [perl #40544], Paul Cochrane offered a patch to check for DOS line endings in the Parrot distribution.

This week Chris Dolan suggested changing eval { use SVN::Client; }; to eval { require SVN::Client; };

classnames and HLL namespaces -- help!

Previously, Patrick R. Michaud wrote of his confusion on how to deal with classname conflicts when multiple HLL namespaces are involved, now that PDD21 has changed. Matt Diephouse, Allison Randal, Leopold Toetsch and Will Coleda joined the thread. The conclusion seemed to be that namespace pollution still needs to be resolved and the object model is due for discussion as well.

Recently, Jonathan Worthington proposed collecting requirements from different languages so that an OO PDD can be based upon them. He offered to make the first draft and to maintain it. chromatic thought it was a good idea, and suggested using the docs/pdds/clip directory. Patrick R. Michaud also approved. This project was started with commit '[svn:parrot-pdd] r15024 - trunk/docs/pdds/clip'.

Meanwhile, Leopold Toetsch offered some more information on namespaces. Patrick disagreed with Leopold's conclusions, stating that he was against subclass' names needing to include the names of their parents. There was further discussion between Patrick and Leopold on this topic.

[HOWTO] add a C file to get archived in libparrot.a

Last week, Karl Forner asked what he needed to do to have his .o file added in libparrot.a.

Jonathan Worthington recommended a make realclean. Karl replied that it did not work. Adam Thomason recommended adding the file to config/gen/makefiles/root.in and running Configure again.

Current State of ParrotClass and ParrotObject?

Kevin Tew asked how he could instantiate a ParrotObject from a ParrotClass. Leopold Toetsch asked to see Kevin's attempt.

Patches from Paul

This week, Paul Cochrane submitted a number of patches:

Patches which generated discussion are listed individually.

[perl #40593] [CAGE] make t/codingstd/linelength.t output look like other coding standard tests

In ticket [perl #40593], Jerry Gay requested that the format of the line length test output be changed to match other tests. Will Coleda remarked that not all tests follow the style Jerry outlined.

Jerry remarked that he had created a new ticket, '[perl #40596] [CAGE] modify perl coding standard test format ', which covers reformatting in general.

[perl #40443] Separate vtable functions from methods (using :vtable)

In ticket [perl #40443], Matt Diephouse noted that it was decided at OSCON 2006 that vtables and methods should be separated.

Jonathan wondered if this should be postponed until the object and namespace issues have been dealt with. Allison Randal summarized the results of her last conversation with Chip Salzenberg on the topic. Jonathan thanked her for the specifications and said he would work on an implementation.

[perl #40523] [TODO] adjust string_append function and usage

Earlier, Leopold Toetsch created a ticket ([perl #40523]) asking for instances of string_append to be removed. This week, Jonathan reported it done in r15025.

[perl #40596] [CAGE] modify perl coding standard test format

In ticket [perl #40596], Jerry Gay proposed modifying the Perl coding standard test format to have one test per standard, rather than one test per file. The reason for this was to prevent inflation of test numbers, which could lead to a false perception on test coverage.

Chris Dolan understood Jerry's reasoning, but argued that because Test::Perl::Critic is designed to work on a per-file basis, so this change would be difficult to implement unless output was reduced to simply one test for everything. Jerry thought one perlcritic test was fine, and also asked if the test could become quieter. Chris supplied the syntax for reducing output.

This thread is related to '[perl #40593] [CAGE] make t/codingstd/linelength.t output look like other coding standard tests '.

[perl #40598] [PATCH] Make perlcritic.t barf more nicely when Test::Perl::Critic not installed

In ticket [perl #40598], Paul Cochrane submitted a patch which makes testing skip t/codingstd/perlcritic.t if Test::Perl::Critic isn't installed. Chris Dolan suggested an alternative syntax, and Paul thanked him for the information.

[QUESTION] PMC Pre-allocation

Previously, Karl Forner asked if there was a way to specify the minimum allocation size for PMCs. Leopold Toetsch replied that the issue had come up a number of times. He explained the history behind it, and offered suggestions for resolving the legacy confusion.

This week, Allison Randal took a stab at answering the questions Karl posed.

MMD function __add not found

François Perrad wondered if it was possible to mix :method and :multi in order to write a method __add to support the opcode add in a new thread class which subclasses Parrot::Coroutine. He included example code and the error he had gotten.

Users

Embedded perl5 modules

Last week, Richard Hainsworth asked about the syntax for embedding Perl 5 modules in Perl 6 code, and Steffen Schwigon offered a suggestion.

This week Steffen added that he had had more luck with other Perl 5 modules, but Wx appeared troublesome. After further discussion with Richard, Steffen suggested trying an easier module to learn about Perl 5 integration, or waiting for further progress if Wx is required. Steffen also requested a test for Pugs of Wx's style of indirect package import/export. There were some further attempts at debugging, with Richard including some Gtk2 code which did (partially) work.

Acknowlegements

This summary was prepared using Mail::Summary::Tools, 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

Sunday October 22, 2006
07:24 AM

Perl 6 summary, 15-21 October, 2006

This week on the Perl 6 mailing lists

"The | notation is mentioned in S012:1029, by the way. Obviously you still haven't quite memorized all the synopses. :-)"

-- Larry Wall, in 'class interface of roles'

Corrections

Last week I mistakenly wrote that Juerd suggested using # for comments in qw// and qqw//, when in fact he suggested integrating it with qqw// and not qw//, because qqw// has generic quoting options.

Language

class interface of roles

This long-running thread continued. Previous highlights included discussion on how a role can require a target class to implement a method or do another role, and whether there is a use for forbidding the implementation of methods.

This week, Jonathan Lang and TSa discussed various ways of controlling dispatch rules, and agreed upon some terminology to assist the discussion.

Meanwhile, Jonathan and TSa talked about the distinction between mixins and roles. Larry Wall offered some clarification, which led to a discussion on the | notation. This eventually morphed in to a thread about
the syntax for unordered composition.

"Don't tell me what I can't do!"

Two weeks ago, Jonathan Lang initiated a discussion on programming styles which allow a programmer to prevent another person from taking an otherwise legitimate action. The discussion moved on to lexically scoped pragmas and policy meta models.

This week Smylers wondered how it is possible for a module to require undeclared package variables, and asked Trey Harris for an example of a module with undeclared symbolic references.

Synopsis 26 - Documentation [alpha draft]

Last week, Damian Conway released a draft for S26 on documentation. Some people expressed opinions on it.

This week, Smylers stated that he thought the only standard XML entities are <, > and &. Defining further entities is allowed; for example, this is what HTML does. Danny Brian responded by expanding the list of default entities to include ' and ". Damian Conway corrected the document accordingly.

Edge case: incongruent roles

Jonathan Lang initiated a discussion on collisions which might occur from creating a class which inherits from two classes with unrelated concepts which happen to share a method name. Trey Harris thought that the combination of multiple inheritance, multiple dispatch, traits and DBC offered a more sophisticated way to resolve conflicts than dispatch by name. Jonathan agreed that was how it should work, but was not convinced it worked that way in practice. Larry Wall suggested that S12 might resolve the issue, but Jonathan explained that it did not cover the case he was trying to express. Larry elaborated on the documentation.

Meanwhile, TSa launched a subthread containing an example with numbers. There was further discussion on numeric comparisons in this context.

The thread spawned 'set operations for roles'.

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

Larry Wall made a commit to S05, noting that the new regex syntax defines word boundaries in terms of \w, not \s.

set operations for roles

Jonathan Lang replied to a comment in the thread 'Edge case: incongruent roles'. The discussion involved the syntax for ordered and unordered composition. He proposed some syntax. TSa and Jonathan discussed possibilities, and Larry Wall added his thoughts.

Interrogative statements

Jonathan Lang suggested that $expression?; should have the same meaning as $_ = $expression. He wondered if Perl 6 makes this possible, or if the parser would need to be modified. Juerd replied that it was possible if you modified the Perl 6 grammar.

Threads, magic?

Relipuj wondered how threaded data collection could be accomplished in Perl 6, citing an example of how it is done in Python.

Parrot Porters

[TODO] :init attribute

In the thread 'Implement .loadlib pragma in IMCC', dating to July, Patrick R. Michaud summarized the issue of :init pragmas for subs as discussed in a recent #parrotsketch meeting. Ticket [perl #39926] relates to the task. In addition to giving a status report on :init, Patrick invited people to contribute tests and code to help create :init.

Meanwhile, Leopold Toetsch replied to Kevin Tew's patch attempt in 'sub :init implementation', commenting on the use of the flag PBC_POSTCOMP, which he described as an unfortunate choice. He made some alternate proposals. Kevin thanked Leopold, and asked for a summary of how flags are used, which Leopold provided.

Parrot::Coroutine

The discussion which began as a notification from Bob Rogers on continuations continued with the thread concerning problems with coroutines. Last week, Leopold Toetsch requested a description from Bob on his proposal for rewriting coroutines.

This week, François Perrad reported that as of r14936, he has removed the LuaThread PMC so that it does not depend upon coroutines.

Leopold issued a reminder about making namespaces useful.

[perl #40509] [NEW] Line endings test

In ticket [perl #40509], Paul Cochrane reported that this patch is superceeded by one attached to ticket [perl #40544].

sprintf() Checkins #14922-14924 Break Linux/PPC Tests

chromatic reported a series of failing tests. Leopold Toetsch reported that it was fixed in r14926. The problem involved formatting a long long with '%ld', which does not work on all systems. He suggested some solutions in case the current '%lld' breaks other compilers.

sprintf 64 test

Leopold Toetsch noted that he is getting different results from Perl 5 and libc when using printf/sprintf. He wondered if it was a problem with his test. Sadahiro Tomoyuki replied with some information about the specification, and another test case where Perl 5 gives unexpected results. A patch to correct the situation was applied as r29025.

Re: [perl #40543] [NEW] Test for space after curly braces

Paul Cochrane created ticket [perl #40543] to deliver a patch to test for extra whitespace after a curly brace at the end of the line. chromatic wondered why this should only apply to curly braces and not extra whitespace at the end of any line, and Jerry Gay agreed. Jerry included vim settings to assist in finding trailing whitespace. Other people also expressed their dislike of excessive whitespace.

Jerry asked that the test be rewritten to involve just one test, instead of around 700. He also wanted it expanded to cover Perl files, and listed some other candidates for the check. Will Coleda disagreed, because perlcritic tests address this for Perl files.

[perl #40545] [PATCH] Addition of tests to Parrot::Distribution tests

Paul Cochrane supplied a patch in ticket [perl #40545]. The patch adds tests for yacc, lex and pmc files, and also fixes a test which was giving a false positive.

configure bug

Kevin Tew reported a problem with generating makefiles in step gen::makefiles.

Re: [perl #40559] AutoReply: $FindBin::Bin has a trailing / in scripts on Perl 5.8.3

Kevin Tew submitted a patch in ticket [perl #40559]. This patch solves a problem which was preventing gen::makefiles from running. Jerry Gay advised committing the patch.

Coding Standard Questions

Kevin Tew listed a few things he encountered in Parrot internals which he did not like but which are not against the current coding standards. He wondered if they are acceptable style. One of the issues had been addressed in PDD07. There was some discussion on the other points. Andy Lester begged for an end to the discussion, asking everyone to follow whatever is in the PDD. Kevin noted earlier that he was not trying to start a war, but to get a ruling on issues which are not currently in the specifications.

[QUESTION] PMC Pre-allocation

Karl Forner asked if there was a way to specify the minimum allocation size for PMCs. Leopold Toetsch replied that the issue had come up a number of times. He explained the history behind it, and offered suggestions for resolving the legacy confusion.

PMCs exact allocated size

Karl Forner noted that it would be useful to know the exact amount of memory a PMC is using.

[perl #40560] [PATCH] minor languages/regex/lib/Regex/Grammar.y fix

In ticket [perl #40560], Paul Cochrane provided a patch to make regex/lib/Regex/Grammar.y pass t/codingstd/cppcomments.t.

[perl #40562] [TODO] add 'list policies' option to t/op/perlcritic.t

Jerry Gay created ticket [perl #40562] to suggest adding a command-line option to perlcritic tests which would display a list of policies.

requirements gathering on mini transformation language

Earlier, Allison Randal asked for a volunteer to write up the requirements for a mini transformation language to use the compiler tools.

This week, Markus Triska linked to a section of Stefan Karl's master's thesis on the implementation a rule-based peep-hole optimizer which Markus felt might relate to the current discussion.

[perl #40564] [TODO] fix perlcritic Subroutines::RequireFinalReturn policy

In ticket [perl #40564], Jerry Gay requested that the perlcritic policy be changed to ignore subroutines which exit or die when checking for explicit return statements. Chris Dolan replied that it was fixed in Perl::Critic r737, which will be included in the next release of Perl::Critic.

[PATCH] today's build failed because of a missing 'use'

Karl Forner reported that his Parrot build failed due to a missing use File::Spec. He included a patch, which Kevin Tew applied.

classnames and HLL namespaces -- help!

Patrick R. Michaud wrote of his confusion on how to deal with classname conflicts when multiple HLL namespaces are involved, now that PDD21 has changed. Matt Diephouse, Allison Randal, Leopold Toetsch and Will Coleda joined the thread. The conclusion seemed to be that namespace pollution still needs to be resolved and the object model is due for discussion as well.

[HOWTO] add a C file to get archived in libparrot.a

Karl Forner asked what he needed to do to have his .o file added in libparrot.a.

Users

[ANNOUNCE] Pugs 6.2.13 released!

Audrey Tang announced the release of Pugs 6.2.13. Her message detailed the many changes which have been made in the last four months.

Embedded perl5 modules

Richard Hainsworth has been trying to test GUI Perl 5 modules in Pugs 6.13. He showed an example of how he modified his code, and the error it returned. Steffen Schwigon had a suggestion on how to correct the Perl 6 code.

Compiler

[patch] no strict for -e scripts

Sean O'Rourke submitted a patch to remove strict 'vars' for -e scripts. Gaal Yahas reported that they will continue transitioning to the new AST, which will allow lexical pragmas.

Acknowlegements

This summary was prepared using Mail::Summary::Tools, 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

Monday October 16, 2006
05:00 AM

Perl 6 Summary, 8-14 October, 2006

This week on the Perl 6 mailing lists

"The whole point of reserving these namespaces is not to prevent users from misusing them, but to ensure that when we eventually get around to using a particular block name, and those same users start screaming about it, we can mournfully point to the passage in the original spec and silently shake our heads. ;-)"

-- Damian Conway, on POD specifications

Language

"Don't tell me what I can't do!"

Last week, Jonathan Lang initiated a long discussion by objecting to programming styles where a programmer can intentionally prevent someone else from taking what is otherwise a legitimate action. Most of the comments focused on lexically scoped pragmas and policy meta models.

This week, Trey Harris clarified what he had said earlier, describing how the documentation of some modules assumed that use strict and use warnings were not enabled, which led to difficulty understanding which part of strict/warnings were being ignored.

S5: perl5 regex flags

Jonathan Lang wanted to know how Perl 5 regexes containing modifiers which are not present in Perl 6 could be ported. He proposed giving the Perl 5 modifier an optional argument which would provide support for the modifiers which can't be easily changed to Perl 6. Larry Wall explained how the regexes could be ported.

Synopsis 26 - Documentation [alpha draft]

Damian Conway released a draft for S26 on documentation, noting that he had almost completed a Perl 5 implementation of a parser for the Perl 6 POD format.

Jonathan Lang requested a more flexible syntax for formatting codes, and a wiki-style dialect. Damian replied that restricting delimiters to angles was a deliberate decision. The wiki-type of markup would be Kwid, which has been proposed as a standard Perldoc dialect.

Dave Whipp wanted to know if the reserved typenames would generate errors. Damian replied that the standard parser will become extremely unhappy when it encounters unknown block names.

Tim Bunce expressed his concern that this would cause problems when people using older parsers encountered newer POD. Jonathan suggested having POD declare a version. Damian thought it was best if the parser always attempted to render the document, even if it didn't understand all directives.

Brent 'Dax' Royal-Gordon asked if there could be a code to mark the title of the document, which could be used for cross-referencing. He had a few other comments. Damian asked if Brent had a letter in mind for the citation code.

Comments in qw// or qqw//

Yves brought up the topic of comments within qw// or qqw//. Juerd elaborated further, suggesting that # be used, since it can already be escaped or quoted with qqw.

Recursing? hypers

Juerd suggested that S03 be modified to make standard hypers non-recursive, and introduce a new operator which would recurse. He offered a syntax suggestion. Larry Wall replied that he felt conformancy was the real issue, and recommended reading the latest S03 changes.

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

Larry Wall committed r12875, which replaced Perl 5's s[pat][repl] syntax with s[pat] = "repl" in S05.

This led Juerd to wonder why the s was being retained, and offer some syntax suggestions. Larry answered that there had been a decision to keep the intent obvious.

Aaron Sherman wanted to know how embedded closures would be handled. He asked if s:g[\W] = qq{\\{$/}}; would do what he expected, and asked about how the Parser would define it. Larry Wall answered that the example would work as expected: the right side is implicitly closurized and evaluated repeatedly by the left side. He also explained that 'quotelike forms' are situations where you can choose your own quote characters.

In 's[pattern] = { doit } illegal, why?', Jonathan Lang expressed concern over a limitation stemming from the implicit curlies rule. He wanted to know if it could be changed so that if you supply your own closure to the right, the substitution algorithm accepts it as is. Larry Wall replied that it was possible, but that outlawing it for the moment keeps people from converting Perl 5's s{foo}{bar} in to Perl 6's s{foo}={bar} without understanding what they are doing.

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

In r12933, Larry Wall made a change to S02 which allows quote and regex adverbs to take only parentheses as brackets.

Bytes make no sense on text strings

Juerd wondered how :bytes for things like s/// useful. He suggested that :bytes on a text string should cause an exception. Larry Wall replied that a string object can present multiple interfaces. Strings which don't support the :bytes abstraction will throw exceptions.

Capturing subexpression numbering example

Aaron Sherman felt that the S05 example for subpattern numbering is not adequate. He supplied a patch to give more information to the reader.

signature subtyping and role merging

TSa asked for some help on the topic of subtyping signatures in the context of deriving a type lattice from role definitions. Mark A. Biggar replied that it is safe to assume that two methods with the same name are semantically unrelated, which makes the signature merge nonsensical in a general case. Jonathan Lang agreed, requesting that no attempt be made to merge signatures. He suggested multiple dispatch instead.

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

With commit r13096, Larry Wall changed enforced backtracking from + to !.

Related files were changed in '[perl #40524] [TODO] PGE - need tests for greedy backtracking '.

Parrot Porters

[svn:parrot-pdd] r14784 - trunk/docs/pdds/clip

Previously, Jonathan Worthington committed a draft of the Bytecode PDD and received comments. Karl Forner had suggested working around the need to specify the absolute path by using the env command.

Jonathan replied that the suggestion was still *nix specific.

Heads up: Dynamic environment now captured in continuations

Earlier, Bob Rogers announced that as of r14830, continuations capture the dynamic environment in order to restore it properly on invocation. He also noted that moving the control_stack slot broke coroutines, but that he suspected this was due to problems with coroutines. This led to a discussion on the problems of coroutines in Lua.

This week, Bob and François Perrad continued the discussion. François noted two specific problems with Lua, and posted the error message. Bob suggested a workaround, and noted that he has used this in Parrot. He supplied the Parrot::Coroutine patch.

Bob also reported that he had moved the control_stack slot in r14876. He noted that there could still be problems with coroutines, and he is considering deprecating Coroutine.pmc until it can be redesigned. Leopold Toetsch replied that he would like to see some specifications first. Bob explained how it would be used, and Leopold replied that he now saw the use for it, but still would like to see a proposal.

Wikipedia example

No summary provided.

The following people participated in this thread:

  • Aaron Sherman
  • Markus Triska
  • chromatic

[perl #40455] [PATCH] Bring dotnet back into unified languages testing

Ticket [perl #40455], by Bernhard Schmalhofer, contained a patch to extend the library search path to fix failing tests for languages/dotnet.

This week, Jonathan Worthington thanked everyone who had worked on getting the dotnet translator back in to unified language testing. He discussed what his needs were for working on the translator, and Will Coleda also added his suggestion that languages become more self-contained.

RFC: Reduce closure magic

Bob Rogers found a ctx member which is used for the autoclose feature and doesn't appear to be documented. He suggested some alternate syntax and included a patch. Leopold Toetsch reported that Audrey Tang had wanted it, but agreed that it should be eliminated. Bob suggested that in light of the effects the patch had on Lua, a period of deprecation before removing ctx might be a good idea. There was some additional discussion.

What does 'input in flex scanner failed' really mean?

Bob Rogers reported an error he did not understand which came from attempting to use load_bytecode. Leopold Toetsch replied that a test was missing to check if the file is a directory. chromatic offered a patch.

External PMCs and GC Implications

chromatic has been working on the embedding interface and wondered what the implications are for garbage collection, given that some Parrot functions may send and receive PMCs. Leopold Toetsch answered.

Unbitrot Minesweeper

chromatic submitted a patch which makes Minesweeper run again.

[perl #40472] APL test failures

Will Coleda reported that a number of tests in languages/APL are failing. This was noted in ticket [perl #40472].

Calling Methods on Class PMCs

chromatic posted some experimental OO code for the Class PMC. It did not work, and he wondered if anyone could explain why. Leopold Toetsch offered a suggestion.

C-coda and C standard patches, and other corrections

Paul Cochrane submitted a number of patches related to ensuring quality C code:

  • [perl #40475] makes Parrot::Distribution find all .pmc files and add a check for the C coda test.
  • [perl #40477] makes Perl scripts to output a C coda when they create code.
  • [perl #40479] correct the C coda for autogenerated code.
  • [perl #40480] ensures that the C coda isn't included multiple times in generated files.
  • [perl #40481] contains C coda for the amber PMC.
  • [perl #40505] adds PMC files to the list of files to test in the C-language coding standard tests.

Prolific Paul also submitted several other beauty patches this week:

[perl #40482] [PATCH] Perl::Critic policy for perl -w, and unix-specific shebang lines

In ticket [perl #40482], Paul Cochrane supplied a patch to add a new Perl::Critic policy to check that the shebang line does not use perl -w instead of use warnings, and that the shebang itself is not *NIX-specific. He asked if all coding standards should be grouped in a single directory.

Will Coleda replied that the coda should remain where it is, but other coding standard tests should be grouped. He also requested a small change to the patch, and pointed out where svn keywords are checked. Chris Dolan cited an instance where the patch would give a false negative. Paul and Chris discussed the example and solutions.

What are the final words on GMP, BigNums and *BooleanArrays ?????????????

Karl Forner noted that it can be difficult to contribute to Parrot because the specifications and design documents do not always contain enough information. He wanted to know what decisions had been reached on the subjects of GMP, BigNums and *BooleanArrays. Jerry Gay tried to clarify goals with regard to these topics, and apologized for slow responses. Leopold Toetsch provided some answers on *BooleanArrays.

Parrot Configure error

Paul Cochrane reported an error with Configure.pl in r14862. Jerry Gay fixed it in r14863.

[perl #40490] Flat/Slurpy Named Parameter Passing Errors

chromatic noted some errors with named parameter passing, which he documented in ticket [perl #40490].

Null PMC access while parsing javascript

Mehmet Yavuz Selim Soyturk reported that js.pg gives a 'Null PMC access' error when using the compiled .pir file. Kay-Uwe Hull suggested that it might be a garbage collection bug, and offered a workaround. Mehmet replied that it looked like an incomplete grammar. Patrick R. Michaud offered a temporary solution, and stated that he would examine the grammar soon.

MakeObject - an Object Instantiation Experiment

chromatic posted some experimental code to make creating objects easier from PIR. Leopold Toetsch pointed out some related documentation.

[perl #40503] [PATCH] Removal of .imc filename change paragraph

Paul Cochrane asked some questions about .imc files in 'Questions about DEPRECATED.pod'. Based upon Bernhard Schmalhofer's answer, Paul submitted ticket [perl #40503], in which he proposed removing a paragraph in DEPRECATED.pod which mentioned .imc files. Jerry Gay wasn't sure if this should be done, because the most recent edition of 'Perl 6 and Parrot Essentials' still refers to .imc files. He referred the matter to Chip Salzenberg.

[perl #40511] [PATCH] Removal of deprecated fetchmethod opcode

Paul Cochrane submitted a patch to remove the deprecated fetchmethod opcode from several places. Ticket [perl #40511] contains the patch.

[perl #40513] [CAGE] add flex/bison files to c coding standard tests

In ticket [perl #40513], Jerry Gay asked for the cleaners to check Flex and Bison files against the C standards. Shawn H. Corey commented on the relationship between Flex and C, and Bison and C.

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

Allison Randal committed an update to the threads PDD. Leopold Toetsch reminded her not to forget STM, which is implemented and solves many PMC sharing problems.

Cage Cleaner Wrangler?

chromatic asked who was responsible for the cage cleaners. He noticed a number of patches but wasn't sure who was monitoring the efforts. Andy Lester replied that he was responsible, and asked for volunteers for the position. Hal Wigoda asked for an overview of the job description, and chromatic responded.

[perl #40219] [TODO] - Steal Perl5's sprintf tests

Patrick R. Michaud looked at why a number of sprintf tests were failing. He added skips for tests containing Perl 5 features, Parrot conversions, and modifiers the harness can't deal with. He noted the remaining tests should be fixed or marked as todo. This was part of ticket [perl #40219].

[perl #40523] [TODO] adjust string_append function and usage

Leopold Toetsch requested the removal of string_append, in ticket [perl #40523].

[perl #40524] [TODO] PGE - need tests for greedy backtracking

Patrick R. Michaud requested some tests for the greedy backtracking modifier. The related PGE was recently changed to reflect the change described in '[svn:perl6-synopsis] r13096 - doc/trunk/design/syn'.

Users

Runtime Role Issues

Ovid reported some problematic edge cases with runtime roles. He wondered what would happen if there was an instance of a class in another scope which did not want a runtime role applied, and how roles could be removed from classes. Finally, he asked if there was an error in the section on precomposed roles in S12.

Tim Bunce replied that he believed that when a role is applied at runtime, it actually creates a new anonymous subclass, leaving the original class unaffected. Audrey Tang agreed, and added an example. Ovid asked if the Moose documentation was accurate for Perl 6. Audrey answered that Moose is currently the metaobject layer when the VM which runs Perl 6 is Perl 5.

The thread was also discussed in 'Runtime role issues'. There, TSa suggested an intermediate class for applying a role and questioned whether roles should be removed. Aaron Sherman thought that typically the objects rather than the classes needed to be changed. There were further comments.

Acknowlegements

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.

Thanks to Yuval Kogman for his help.

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

Sunday October 08, 2006
08:18 AM

Perl 6 summary, 1-7 October, 2006

This week on the Perl 6 mailing lists

"When I first read 'Warnock applies' on things in p6 summaries a year or so ago, I thought it was some really energetic programmer who went around and applied patches as soon as people posed a question."

-- Carl Mäsak, on Warnock's Dilemma

Language

Nested statement modifiers

Paul Seamons asked why multiple nested statement modifiers (say "foo" if $foo for 1 .. 3) are disallowed. A long discussion on the technical and ergonomical problems was stirred up. The general consensus is that there is still no good reason to allow nested statement modifiers.

Exceptions on hypers

In a subthread of 'Nested statement modifiers', Aaron Sherman asked what the semantics of exceptions within hyper operators are. Larry explained that since hyperoperators imply not caring about the order of the side effects (for multithreaded goodness), which element generates an exception might be implementation dependent.

class interface of roles

Last week, TSa wondered how typing of mixins would look in Perl 6. A code example of how it might look was included. There were also some questions on roles in Perl 6.

This week, Sam Vilain thought that it would be the same as requiring that a class implement a method, except for a difference in syntax. This led Brad Bowman to ask how a role can require a target class to implement a method or do another role. Stevan Little answered that he believed this was done by providing a method stub. Jonathan Lang mostly agreed with Stevan and offered more details.

chromatic thought that forbidding methods was potentially like the false-cognate problem. Stevan admitted that he had yet to find a real-world use for it.

There was further discussion on roles.

Motivation for /<alpha>+/ set Array not Match?

Last week, an earlier discussion on S05 subrules continued. Audrey Tang wondered if there was a hidden cost to making /<foo>+/ always react so that $<foo>.from returns something. Carl Mäsak preferred the proposed semantics and asked if the question had been discussed off-list.

This week, Audrey replied that there had been no further discussion. Carl asked for a short snipped to illustrate it, and supplied an anecdote about Warnock applying.

RFC: multi assertions/prototypes: a step toward programming by contract

Last week there was a great deal of discussion on this subject.

This week, Tsa asked, in response to Larry Wall's comment, if namespaces give a structural type definition.

Also, Aaron Sherman started a new topic entitled 'Abstract roles, classes and objects'. He asked rhetorically what was the use of an interface which doesn't give a guarantee. Trey Harris responded that there are three ways to manage a guarantee: an 'is abstract' marker, some type of inference, or by disallowing abstract classes. Jonathan Lang offered his definition of 'instance management'.

Automatic coercion and context

Joshua Choi asked how coercion interfaces are implemented and implicitly used. Musings on roles and the terror of implicit coercions in C++ were part of the discussion, but surprisingly the as multi method was not mentioned at all.

"Don't tell me what I can't do!"

Jonathan Lang initiated a long discussion by objecting to programming styles where a programmer can intentionally prevent someone else from taking what is otherwise a legitimate action. He cited an example from the recent discussion on allowing a role to prevent the consumption of another role ('class interface of roles').

There was a suggestion that restrictions could be purely advisory. This led to the question of whether strict is localized. Larry Wall replied that the default is for lexically scoped pragmas, but that S01 states that it must be possible to write policy meta models. More discussion on this topic followed.

Mailing list archive and index

Aaron Sherman posted that he was considering creating an archive of messages from the mailing list which would be easier to search than Google. The problem with the Google archive is that it includes discussion, and he's only interested in decision. He asked for opinions on the examples he posted. Darren Duncan suggested seeding from the existing mailing list archives.

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

In this commit, Audrey Tang removed the 'single argument function becomes a method' rule from S12.

if-else and statement-ending blocks?

Markus Laire quoted a section of S04 on lines ending with } followed by nothing but whitespace or comments. He wondered if this meant that an else statement like
};
else {
would be the same as the same without the semicolon.

import collisions

Jonathan Lang wanted to know what would happen if he imported two modules which export the same method. He felt that the resolution should be similar to role composition techniques. He suggested some syntax. Aaron Sherman thought that only plain multis would conflict, and suggested a warning would be most appropriate.

Hash composers and code blocks

Aaron Sherman quoted a section from S04 on the hash composer. He was afraid that the current syntax could lead to 'looks fine to the uninitiated' errors. He suggested providing an unambiguous form for all the sigiled types. He elaborated on his proposal.

Parrot Porters

[CAGE] perl coding standards...

Earlier, Will Coleda posted an attempt at creating a perlcritic test. This week, Chris Dolan created a patch to simplify the test code by using Test::Perl::Critic.

requirements gathering on mini transformation language

Last week, Allison Randal asked for a volunteer to write up the requirements for a mini transformation language to use the compiler tools. The job would involve spending time with Allison and Patrick Michaud and combining their ideas along with your own perspective. Adriano Ferreira offered some opinions on the subject, and Markus Triska volunteered to do it if it relates to his area of expertise.

This week, Aaron Sherman expressed confusion over the purpose of this project. He thought TGE performed this task. chromatic replied that the mini language would be "the stuff in curly braces" in the TGE grammar files.

Adriano Ferreira named some desired features in a transformation language, such as a data structure pattern language, and rules which are selected via the patterns.

Allison reported that there were several volunteers.

[svn:parrot-pdd] r14784 - trunk/docs/pdds/clip

Last week, Jonathan Worthington committed a draft PDD on Parrot's bytecode format. Ben Morrow wanted to know if pbc files could allow an optional #! line so that they could be used as executables. Jonathan replied that he had considered this, but rejected it because it is UNIX-specific. There was additional discussion on the topic.

This week, Karl Forner suggested working around the need to specify the absolute path by using the env command.

[perl #40443] Separate vtable functions from methods (using :vtable)

In ticket [perl #40443], Matt Diephouse noted that it was decided at OSCON 2006 that vtables and methods should be separated. This is the request for this modification.

Can I use Parrot's subsystems in an embedded code?

Nikolay Ananiev is working on a C project which will embed Parrot. He'd like it to be as portable as Parrot, and wondered if there was some way he could take advantage of Parrot's portability.

Questions about FixedBooleanArray and ResizeBooleanArray

Karl Forner was unable to find detailed specifications for the FixedBooleanArray and ResizeBooleanArray PMCs and was wondering what should happen if they were resized. Leopold Toetsch replied that the FixedBooleanArray won't resize, and specified what the default values should be.

Some additional questions were asked in '[#39063 and #40066] boolean arrays'.

Heads up: Dynamic environment now captured in continuations

Bob Rogers announced that as of r14830, continuations capture the dynamic environment in order to restore it properly on invocation. He also noted that moving the control_stack slot broke coroutines, but that he suspected this was due to problems with coroutines. He asked to know if any problems with coroutines developed. François Perrad replied that he'd been unable to implement coroutines in Lua. Bob Rogers was not surprised, and discussed some of the problems involved.

Emacs/vim code coda placement

Paul Cochrane reported that the Perl::Critic policy for the coda skips __END__ and __DATA__ sections, but vim requires the coda to be within the first or the last 5 lines of the file. Chris Dolan agreed with Paul that using =cut for POD in the __END__ section would work, but was not sure how to handle __DATA__. Will Coleda approved putting the coda after the __END__.

[perl #40449] [PATCH] improvements to examples/io/httpd.pir

Chris Dolan created ticket [perl #40449] to supply a patch to make improvements to the HTTP server which ships with Parrot. It was applied as r14833.

Wikipedia example

Aaron Sherman sent a patch which was requested on IRC. It contains code which executes the parser on a sample string and dumps the parse tree; it checks the speed of PGE. chromatic reported difficulties in getting the patch to work.

[perl #40455] [PATCH] Bring dotnet back into unified languages testing

Ticket [perl #40455], by Bernhard Schmalhofer, contained a patch to extend the library search path to fix failing tests for languages/dotnet.

[#39063 and #40066] boolean arrays

Karl Forner wrote that he has been working on FixedBooleanArray and ResizeableBooleanArray. Ticket [perl #40066] indicated they needed to be rewritten. He also looked at bug [perl #39063] on ResizeableBooleanArray using 64 bytes per bit. He thought that it would be best to rewrite the PMC. He had a few questions on what was desired in an implementation. Bernhard Schmalhofer and Leopold Toetsch tried to answer the questions.

From this, Karl concluded that the best solution might be to use an external lib. He also described two other possible approaches.

A related thread is 'Questions about FixedBooleanArray and ResizeBooleanArray'.

Linux/PPC Segfault in Build

chromatic reported that he cannot get Parrot to build. Bob Rogers attributed the problem to his continuation changes, and thought r14845 would correct the problem. chromatic confirmed that this solved the issue.

[perl #40458] [PATCH] fix for c_code_coda.t multiple occurrences test

In ticket [perl #40458], Paul Cochrane supplied a patch to make the C-file coda test work correctly with multiple instances of the coda.

Bytecode PDD

Last week, Jonathan Worthington committed a draft of the Bytecode PDD and Leopold Toetsch offered comments.

Bernhard Schmalhofer wondered if the 'UUID' field should be named 'checksum'. Leopold agreed, but thought that a UUID was also needed. Jonathan noted that he had simply written down the incorrect definition in the file.

Users

trying to use a role within a role

Richard Hainsworth posted some code where he was trying to use a role within a role and wondered why it didn't work. Audrey Tang replied that the statement-level does form of roles was not yet implemented. Later, she replied that it had been implemented as r13782. She gave Richard some information on writing tests for Pugs.

error when using -> as lambda function

Wim Vanderbauwhede reported a problem with using -> in calculating the factorial of 5. Audrey Tang found the problem with the code, and recommended looking at 'Changes to Perl 5 operators' in S03. She asked if Wim could supply a test to ensure that 1<2 generates a parse failure.

Operator overloading/Inheritance from built-in types?

Wim Vanderbauwhede wanted to create a bitvector object and had problems overloading the + operator. He also wondered if it was possible to overload the assignment operator, and included code from his attempt. David Brunton offered a suggestion.

Compiler

Synopses on the smoke server are a bit out-of-date

Previously, Agent Zhang reported that the synopses on the smoke server are out of date--r12432 as compared to version r12466 on feather, which syncs every hour.

This week, Ingo Blechschmidt asked for an example of something which was out of date, because the timestamps indicated a recent refresh.

Acknowlegements

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.

Yuval Kogman assisted with summaries this week.

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

Sunday October 01, 2006
09:03 AM

Perl 6 summary, 24-30 September, 2006

This week on the Perl 6 mailing lists

"And here I thought you were a responsible, law-abiding citizen... :P "

-- Jonathan Lang, commenting on Larry Wall's self.HOW does Hash

Language

class interface of roles

TSa wondered how typing of mixins would look in Perl 6. A code example of how it might look was included. There were also some questions on roles in Perl 6.

Capture Literals

Responding to an earlier thread, Austin Hastings asked if Capture literals would replace or unify "assuming"/"currying".

Motivation for /<alpha>+/ set Array not Match?

In a previous week, Audrey Tang quoted a section of S05 concerning subrules. She found the 'quantified' clause to be unintuitive and wondered if it would be possible to modify it to produce Match objects and to reserve Array only for noncontiguous same-name subrules. Patrick R. Michaud and Flavio S. Glock made some alternate suggestions.

More recently Audrey replied to the thread, wondering if there was a hidden cost to making /<foo>+/ always react so that $<foo>.from returns something. Masak preferred the proposed semantics and asked if the question had been discussed off-list.

Nitpick my Perl6 - parametric roles

Sam Vilain sent some code on Perl 6 core types as collections and asked if anyone would like to poke holes in it. TSa applauded the use of functions but wondered if it would work. Several other people followed up on that thought.

Mutability vs Laziness

Aaron Sherman pursued a conversation which began in IRC. He listed some immutable types declared in S06 and noted that there appear to be three core attributes (Mutability, Laziness and Ordered), each of which has two states (true or false). From this he derived 8 types of containers.

Dave Whipp thought there was a fourth attribute, exclusivity. Sam Vilain felt that ordered was not an attribute of a collection.

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

In a recent commit, Larry Wall removed the special [,], which is now just a list op form of [...]. In order to support the |func() syntax, | became the new disigilized *.

Luke Palmer replied in support of the new syntax. TSa also approved, but would have liked the new operator spelled. Aaron Crane thought that was undesirable because there are already terms which begin with /, namely regular expressions.

Common Serialization Interface

Brad Bowman wondered if there was a common element to a serialization role which could be included in the default implementation. Mark Stosberg noted that there is already a .yaml and a .perl to serialize to these formats, but he did not know if they were suitable substitutes for the role-based approach Brad had in mind. He included a code sample. Aaron Sherman and Luke Palmer offered additional code examples. Larry Wall commented that it makes a big difference whether the entire string must be held in memory or not.

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

Audrey Tang committed a change which introduced the $$x form in adverbial pair parsing to S02 and canonicalized the term 'item' in S02 and S04.

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

In S03, Audrey Tang noted that chained comparisons short-circuit and never evaluate arguments more than once.

RFC: multi assertions/prototypes: a step toward programming by contract

Aaron Sherman wrote to suggest a signature prototype that all multis defined in or exported to the current namespace must match, as a means of implementing the paradigm of programming by contract.

Trey Harris felt that the point of multiple dispatch is that arguments are not bound to a single type, and the proposal might defeat this use, although junctive types, subsets and roles make 'single type' less of a constraint. Miroslav Silovic was bothered by the possible duplication of functionality and believed that declarative requirements should go in to roles. Many other people responded to this thread.

In addition, there was a discussion on the terminology of libraries in Perl 5 and Perl 6--'package' being the Perl 5 term, and 'module' the Perl 6 term. The definition of 'programming by contract' was also discussed.

There was also a discussion on whether 'package' implied a Perl 5 library and 'module' suggested a Perl 6 one. Larry Wall attempted to clarify.

special named assertions

David Brunton posted about an IRC conversation from earlier. He listed the seven special named assertions found in S05, and the twenty-four found in docs/Perl6/Overview/Rule.pod. He found another one in t/regex/from_perl6_rules/stdrules.t. In his opinion, it was worth creating a single place in S05 where all of these named assertions are listed.

Patrick R. Michaud disagreed with the inclusion of <'...'> and <"..."> as named assertions. He stated that he would compare the list with what PGE has implemented and report differences. Mark A. Biggar noted that the documentation should distinguish between pre-defined character classes and special builtins. Patrick responded with PGE's view on what constitutes a special builtin.

Parrot Porters

A dedicated per-context stack for bsr/jsr/ret

Bob Rogers sent a patch to create a return_stack for bsr/jsr/ret ops. Leopold Toetsch replied that separate stacks are good, but wondered if a return stack per context was desired. Bob Rogers replied in detail and included another patch.

postgres interface

Leopold Toetsch has been working on postgres.pir and reported several changes, including a new test file. Bob Rogers sent a patch to make it more forgiving of an absent libpq.so. It was applied.

[perl #40410] Segfault in packfile code

In ticket [perl #40410], Jonathan Worthington reported a segmentation fault in generating a packfile for compiled PIR generated by .Net. Later he found the bug and implemented a workaround.

FYI improved pugs smokes

Leopold Toetsch referred to the recently improved smoke tests for Pugs, and wondered if it would be possible to do something similar for Parrot. Jerry Gay replied that he'd been working on a Parrot implemention.

External PDD Checkin

chromatic reported that he had added details to the external API draft PDD and welcomed comments on docs/pdds/clip/pdd10_embedding.pod.

[PATCH] Parrot-Embed on Win32

François Perrad supplied a patch to make Parrot-Embed compile and run on Win32.

FYI compiling PIR function calls

Leopold Toetsch wanted people to know about alternate syntax for generating PIR calls from a compiler:
.pcc_begin
.arg "hello"
.arg "\n"
.invocant obj
.meth_call "_meth"
.result $S0
.pcc_end

Allison Randal replied that she felt the problem was one of inconsistency. She gave a few suggestions, which Leopold Toetsch responded to. Jonathan Scott Duff also proposed a slight modification of syntax. A discussion on the syntax followed.

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

Allison Randal made some modifications to PDD22 to create a first release candidate of the I/O PDD.

A moment of Zen

Allison Randal posted that the single most important thing in the project is shipping a 1.0 release of Parrot, which is now very close. She called for functionality over elegant theory for the moment.

call/return and CPS

Watson Ladd asked how call and ret opcodes will interact with continuations. chromatic replied that the opcodes invoke the appropriate continuations.

PDD 22 - I/O release candidate 1

Allison Randal announced that she'd committed an updated I/O PDD. She requested feedback, especially on which lightweight concurrency model to use for asynchronous operations. She also asked for a reaction on async ops returning status objects while sync ops return integer error codes.

chromatic suggested that ops could always return PMCs, and simply check the intval if required. Tim Bunce wondered if speed-sensitive ops which might be used in loops could be given the PMC to reuse.

Leopold Toetsch remarked that he did not like I/O opcodes and explained why. chromatic disagreed with one of the arguments and Leopold replied.

Joshua Hoblitt asked for more details on Allison's comment about concurrency models: was she speaking of the Parrot API, the actual implementation, or both? He felt that the implementation would need to be highly platform specific.

[CAGE] perl coding standards...

Will Coleda created a perlcritic tests, t/codingstd/perlcritic.t, which isn't run by default. It currently reports only a few rules. He suggested that Cage Cleaners could run this test to receive a long list of things to fix. He offered some advice on addressing the issues which show up.

[perl #40419] 2 PDD 07s

In ticket [perl #40419], Will Coleda reported that there are two PDDs numbered 07.

Prototyping variable-sized PMCs

Allison Randal summarized a telephone conversation with Leopold Toetsch. They discussed proposals on variable-sized PMCs and a shared base class for PMC types ('Two new pdds'). In Allison's opinion, variable-sized PMCs are a step toward closing the gap between low-level PMCs and higher-level Parrot Object PMCs. She also thought there were several good ideas in the shared base class proposal. The new PMCs will be implemented first as prototypes, and assessed/rewritten without changing the existing system.

Two new pdds

Leopold Toetsch announced two new documents in docs/pddfs/clip as of r14774. One, pddXX_cstruct.pod is the metaclass of all publically accessible C-derived structures used in Parrot. The other, pddXX_pmc.pod, describes the general structure of PMC internal layout.

Jonathan Worthington replied to the commit ([svn:parrot-pdd] r14774 - in trunk: . docs/pdds/clip) to give his thoughts on Leopold's proposals.

A related thread is 'Prototyping variable-sized PMCs'.

FYI: $job

Leopold Toetsch announced that his job will require him to reduce his Parrot commitments, but that he would continue to follow development as time permits. Allison Randal thanked him for his contributions.

socket related constants

Nicholas Clark replied to an older thread. He said that there are two problems to be solved, namely parsing C header files and identifying the constants, and injecting identified constants in to Parrot appropriately. Nicholas explained a little about how this is going in Perl 5.10.

Joshua Hoblitt was reminded of the question of whether anyone had looked at APR for doing portable I/O.

[HOWTO] call a method on a PMC in PIR

Karl Forner wanted to call the elements() method on a FixedBooleanArray, or add a custom method get_allocated_size() to the FixedBooleanArray.pmc. Leopold Toetsch replied with suggestions.

Draft of Bytecode PDD

Allison Randal announced that Jonathan Worthington had written a draft PDD for Parrot's bytecode format, which was checked in as '[svn:parrot-pdd] r14784 - trunk/docs/pdds/clip'. Later some additional changes (based upon a conversation with Allison) were also committed.

In 'Bytecode PDD' Jonathan asked for feedback. Leopold Toetsch offered a few comments.

Ben Morrow wanted to know if pbc files could allow an optional #! line so that they could be used as executables. Jonathan replied that he had considered this, but rejected it because it is UNIX-specific. There was additional discussion on the topic.

requirements gathering on mini transformation language

Allison Randal asked for a volunteer to write up the requirements for a mini transformation language to use the compiler tools. The job would involve spending time with Allison and Patrick Michaud and combining their ideas along with your own perspective. Adriano Ferreira offered some opinions on the subject, and Markus Triska volunteered to do it if it relates to his area of expertise.

[perl #40428] [PATCH] Return perl script and module file locations in parrot distro

In ticket [perl #40428], Paul Cochrane submitted a patch to return the names and locations of the perl script and module files within the Parrot distribution.

[perl #40429] [PATCH] test for perl code coda

Paul Cochrane supplied a patch in [perl #40429] to add a test for the Perl code coda. Will Coleda rejected the patch because he'd just added the same test as a Perl::Critic policy class.

[perl #40430] [PATCH] rename and update C code coda test

Paul Cochrane renamed the C coda test and removed Perl-specific code from the test. It was applied as r14812. The ticket for this patch is [perl #40430].

Users

How to pass a ref from a language with no refs

This week the long-running CGI thread splintered in to the question of how to pass a reference from a language with no references when Mark Stosberg replied to a discussion on how Perl 5 embeds in Perl 6.

Mark saw some recent Pugs commits on Perl 5 embedding, which encouraged him to experiment with passing hashes and arrays. In his tests, he was able to send an array as an arrayref, but was unable to get a hashref. He wondered if there was another way to do it. Aristotle Pagaltzis replied.

Perl6 "style-guide"

Last week, Fagyal Csongor asked if someone was willing to write a Perl 6 style guide. This led to a discussion on other resources, desired and existing. This week, Chris Dolan asked if anyone wanted to start a port of Perl::Critic.

xx operator

Fagyal Csongor included some code which gave an unexpected result and wondered if the code or Pugs was at fault. A. Pagaltzis replied that the xx operator is list-repeat rather than string-repeat. Juerd also explained further, and the code was fixed.

Compiler

Synopses on the smoke server are a bit out-of-date

Agent Zhang reported that the synopses on the smoke server are out of date--r12432 as compared to version r12466 on feather, which syncs every hour.

Acknowlegements

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.

Jamie Cheetham supplied server access this week.

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

Sunday September 24, 2006
08:51 AM

Perl 6 summary for 17-23 September, 2006

This week on the Perl 6 mailing lists

"my Yellow sub marine { @we.all.live }"

-- Larry Wall, concluding a series of Beatles references in the grep thread.

Language

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

Larry Wall committed a change stating that the filetest operators return a stat buffer object, that can be repeatedly used for more file tests, and also overloads boolean context for the test that created it.

This eliminates the need for the -X _ form in Perl 5, used to eliminate additional calls to stat.

class attr set defs as their names

Darren Duncan asked if two class meta objects eqving one another implies type equality. Nobody seemed to have any view on the subject.

request for addition to administrative field to Synopsis

Mark Stosberg had a comment on the specification for smart linking. He offered a suggestion to make the documentation more useful to users.

Renaming grep

Darren Duncan suggested renaming grep to where in order to phase out UNIX lingo from Perl. Many people also suggested filter, and it was noted by Damian Conway that this is in fact the de facto standard for modern languages (like Haskell and Python). select and reject were also proposed at which point a list parting construct with arbitrary buckets was also proposed.

The end result was the introduction of the classify built-in by Damian. This function generalizes various other list filtering and parting semantics.

There was also a discussion on aliases and homonyms, under the umbrella of keeping grep as a backwards compatibility alias.

Subsequently, Trey Harris' suggestion for using junctions and ~~ was discussed in a different thread.

class interface of roles

TSa wondered how typing of mixins would look in Perl 6. A code example of how it might look was included. There were also some questions on roles in Perl 6.

Threads and types

Aaron Sherman asked whether or not the type system and the meta model is shared between threads, especially in the light of a shared variable of a certain type.

call, call(), .call, and captures

Trey Harris pointed out that there are three types of 'call' as expressed in S06 and S12. He would like to see the syntax normalized to avoid confusion. Aaron Sherman and Markus Laire added some comments. Larry Wall wanted to avoid using related names for unrelated concepts. He thought that perhaps three different names (call, callargs and callcap) would help clarify the situation. Aaron Sherman liked the idea.

Capture sigil

Larry Wall announced that Captures will now have their own sigil, allowing captures stored in scalars to be "interpolated" into argument lists without using the [,] =$capture form. It was eventually decided that | will perform this role. The resultant syntax is:

my $foo = \(:foo(4), $blah); gorch(|$foo);

which is analogous to:

my $foo = «bar gorch»; my @array = ( "foo", @$foo

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

Larry Wall committed a change to S02 concerning the | sigil and operator. Aaron Sherman requested an update to S03's 'Junctive operators' to resolve the ambiguity of a|$b, a | $b, and a |$b. Larry attempted to clarify. Mark J. Reed noted that this implies that subroutines without arguments will be rare, but methods without them will be commonplace, introducing the same ambiguity with $o.a%$b and other similar-looking expressions. Larry replied that a method does not take arguments without : or ().

Aaron commented on Larry's statement that bare constants are being discouraged in favor of sigiled constants by asking if pi and e should become $pi (or $) and $e.

Dumb list-flattening question.

Mark J. Reed wanted to know how to create a two element list out of two arrays, which in Perl 5 would be (\@a, \@b). If the syntax is the same, he wanted to know what the \ mechanism is called, since references are automagical. Juerd replied that they are captures. Aaron Sherman elaborated Juerd's answer by referencing S03. Mark J. Reed suggested mentioning captures to prevent list flattening in S09. Mark Stosberg felt that the specification for \ was unclear.

Capture Literals

Jonathan Lang asked how he could construct a capture literal which has both an invocant and at least one positional argument, and how it would be distinguished from a capture literal which has no invocant and at least two positional arguments. He offered some example code, which, according to Larry Wall, was correct aside from a syntax error.

Motivation for /<alpha>+/ set Array not Match?

Audrey Tang quoted a section of S05 concerning subrules. She found the 'quantified' clause to be unintuitive and wondered if it would be possible to modify it to produce Match objects and to reserve Array only for noncontiguous same-name subrules. Patrick R. Michaud and Flavio S. Glock made some alternate suggestions.

Parrot Porters

HOWTO give options to parrot in tests

Last week, Karl Forner posted that he is working on [perl #40064]. He was wondering how he could run the script with options, and wanted to know if TEST_PROG_ARGS would be an appropriate choice. Leopold Toetsch suggested subclassing Parrot::Test.

Karl noted that if he subclasses Parrot::Test he won't be able to reuse the code. Leopold replied that there are already test classes in lib/Parrot/Test/*.pm.

gmp_version undeclared

David Romano reported that his Parrot build failed due to the gmp_version being undeclared. He included a patch for people who don't have GMP installed. Alberto Simões noted it was fixed in r14636.

pcre tests

David Romano reported that two tests which depend on PCRE failed when PCRE is not installed. The code which checks for PCRE does not work. David included a patch to fix this.

RFC: Consolidate stack-unwinding code

Bob Rogers refactored Parrot's stack unwinding code, consolidating it's various incarnations into the continuation invocation. Leopold Toetsch answered some of Bob's questions. Larry Wall clarified Perl 6's requirements of Parrot's continuation handling.

Matt Diephouse commented that this change broke Tcl's uplevel, and helped Bob to test a quick fix that preceded a real fix.

[perl #40349] [PATCH] #40278: [CAGE] perl coding standards coda.

Paul Cochrane sent a patch to try to close ticket [perl #40349], which was related to [perl #40278] and concerned coding style.

[perl #40360] [PATCH] implement loadlib(NULL)

Dmitry Karasik sent a patch in [perl #40360], which was applied as revision r14670.

Re: [perl #40361] [PATCH] #40278 [CAGE] perl coding standards coda. (cont.)

Paul Cochrane supplied a patch for bringing various files in the Parrot repository up to the coding standards. Jerry Gay noted some problems with the change, which Paul corrected. This was eventually added to RT as [perl #40364].

#parrotsketch logs: 19SEP06

Jerry Gay posted the URL of latest #ParrotSketch log.

[perl #40367] [TODO] SDL tests

In ticket [perl #40367], Leopold Toetsch requested tests for configuration, all SDL classes and interfaces, tests of full-fledged examples, and eventually tests for the GUI.

[perl #40370] [PATCH] code_coda.t update

Paul Cochrane submitted a number of patches to add the required emacs and vim coda as requested in [perl #40279].

[perl #40379] [TODO] investigate use of tools/dev/as2c.pl

In ticket [perl #40379], Jerry Gay requested an investigation in to tool/dev/as2c.pl because makefile it calls is not platform-independent. Leopold Toetsch explained the purpose behind the file.

[perl #40380] [PATCH] errors on 'make install' - src/pdb.c

In ticket [perl #40380], Herbert Poul reported a failure with make install. He included a patch.

[DONE] shootout example testing

Karl Forner included a patch to test the shootout PIR programs in examples/shootout.pir, which was applied as r14684.

[perl #40392] [CAGE] convert C<internal_exception> to C<real_exception>

In ticket [perl #40392], Jerry Gay requested that instances of internal_exception be replaced with real_exception. Bob Rogers pointed out that in many instances, internal_exception might be needed because real_exception requires a working control stack.

[perl #40394] [PATCH] Added a test for multiple codas to t/codingstd/code_coda.t

Paul Cochrane sent a patch as ticket [perl #40394]. The patch includes tests for multiply-defined codas. Jerry Gay modified it slightly and applied it as r14686.

[perl #40402] Remove src/ops/dotgnu.ops

Bernhard Schmalhofer wondered in ticket [perl #40402] if he could remove dotgnu.ops which was a conversion file for C# which now appears obsolete. Jonathan Worthington suggested removing it, and Leopold Toetsch pointed to his generic answer on the subject.

Users

the CGI.pm in Perl 6

Last week, a number of posts were devoted to discussing the merits of refactoring and renaming CGI.pm for Perl 6. Removing HTML generation methods from the core module, renaming CGI, and the relationship between CGI.pm and session management received the most type. This week, the thread continued.

Once again, several people expressed the opinion that HTML generation could be included in a separate module which worked well with the parameter gathering, but the view that these are integrated tasks was also expressed. Mark Stosberg suggested that people who have concrete ideas about the API should create a wiki page. This would allow the design to be developed by many people and understood by those with less API design experience.

Mark also pointed out that the suggestion of use perl5:CGI might not work well in practice, as currently it is not clearly defined how to pass information to Perl 5. This led to a side discussion on how Perl 5 embedding should work. Mark created a wiki page to summarize expectations about Perl 5 embedding.

Meanwhile, Juerd suggested that the param method should be replaced with two hashes, get and post. A. Pagaltzis thought that the beauty of the param method is that it lets you treat input as single- or multi-valued at your own discretion. The topic continued, with a detour to cover the correct syntax for my @bar = $q.param<bar>[];.

Another topic was concerned with the default encoding. An argument was made for it being UTF-8, and another person preferred it to be undeclared. The HTTP specification says that the default is Latin 1.

In thread CGI Session management (was Re: the CGI.pm in Perl 6), the discussion of session management continued. Last week, Michael Snoyman suggested including it in CGI.pm, and Yuval Kogman begged for a plugin solution. This week, the thread was consumed by the API design and module naming discussions from the initial thread.

In the splinter on module names, Juerd was completely against anything which contained the word 'CGI'. Ian Langworth proposed 'HTTP', but several people thought that the module typically involves fetching parameters, not dealing with the protocol.

As for the API design discussion, it repeated the main thread's arguments for the most part. Jacinta Richardson introduced a new request: subroutines should have a uniform naming scheme, rather than mixing terms (scrolling_list but popup_menu) and underscores (textfield versus password_field).

For more CGI discussion, also see Web development I: Web::Toolkit.

Trying to use Perl5 modules

Earlier, Richard Hainsworth was trying to discover how to use Perl 5 modules
in Perl 6. He included some code which worked in Perl 5, and asked how he could use them in Pugs. Trey Harris replied that imports currently don't work, and showed a workaround. Audrey Tang answered that imports were implemented a few weeks ago, but implicit imports aren't supported yet.

This week, Mark Stosberg thanked Audrey for the status update and corrected the wiki to contain this information. He invited others to include tips about Perl 5 embedding.

Index of terms

Richard Hainsworth asked for an index of terms to be compiled for the Synopses. The silent masses apparently use grep -r, or Perl6::Bible.

more on perl5 modules

Richard Hainsworth asked for help using Perl 5's Gtk2 module in a Perl 6. Aristotle Pagaltzis corrected his code, but that version didn't work on Richard's version of pugs, which Juerd explained was ancient.

Trying to make a new operator

Richard Hainsworth was trying to define a custom operator, but it didn't work out. Daniel Hulme noted that the operator has to be declared up right to be used, and Yuval Kogman subsequently nitpicked that only the grammar needs to know about it's existence, and a stub definition will do. With his new found knowledge, Richard went on to implement the birth of Jesus, which Markus Laire refactored. No religious wars ensued.

Web development I: Web::Toolkit

After much discussion in 'the CGI.pm in Perl 6', Juerd decided to create a new thread to clarify and summarize his feelings on how Perl 6 should address web development. The conversation moved on to XHTML versus HTML and whether code which generates HTML should confirm to the XHTML specifications by default.

Juerd continued the discussion of web development in 'Web development II: Code' with code examples.

perl6 and a multi-interpreted-language example

William Herrera cited a blog post, akin to a language shootout, implementing the game of reverse in several languages. Juerd and Larry Wall provided their take on a Perl 6 version of the code, while Aristotle Pagaltzis provided a version in Perl 5 which he felt represented it better.

perl6 and a multi-interpreted-language example

William Herrera asked how one would go about implementing the game of Reverse in Perl 6. Larry promptly supplied a Perl 6 version, while Aristotle Pagaltzis provided an implementation in Perl 5 that seemed to do it more justice.

Perl6 "style-guide"

Fagyal Csongor asked if someone was willing to write a Perl 6 style guide. Aristotle Pagaltzis debated the merits of such a site, and mentioned that a cheat sheet for Perl 5 hackers would be nice. Carl Mäsak mentioned the pugs porting howto in response. Darren Duncan suspected that Damian Conway's Perl Best Practices book was written to be forward compatible with Perl 6, a suspicion that Larry Wall confirmed. Lastly, Jerry Gay urged Fagyal to start a wiki page for a style guide, an idea expanded on by Michael Snoyman.

Web development II: Code

Juerd posted several pseudocode stub classes for the basis of a web framework, proposing that they be put on some wiki space. Steffen Schwigon then offered the list in general subversion space for such endeavors.

This message followed from 'Web development I: Web::Toolkit'.

Compiler

PCR replaces PGE in Pugs

Agent Zhang announced that PCR (the implementation of Perl 6 rules in perl 5) will replace PGE as the default rule engine in Pugs. This is supposed to solve the many issue people have with binding pugs to parrot.

Check smoke results while reading Synopses

Agent Zhang announced that the smoke server and the synopses are now integrated using the smart link platform.

Updates to "Perl 6 and Parrot Essentials"

ajr asked if an errata/updates file for Perl 6 and Parrot Essentials (2nd edition) exists. Agent Zhang said that the book is now very much out of date, and that the synopses are a better place to look. Michael Snoyman and Sam Vilain both said that in their opinion the book was still a nice way to jump into Perl 6.

Acknowlegements

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.

Yuval Kogman covered a number of threads this week.

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

Saturday September 16, 2006
02:56 PM

Perl 6 summary, 10-16 September, 2006

This week on the Perl 6 mailing lists

This summary has been posted early because I will be going to OSCON Europe on Sunday. Next week's summary will include any threads which were not included this week.

Language

multi method dispatching of optional arguments

Last week, Mark Stosberg wanted the specifications to address what should happen in MMD when optional arguments are present (S12). He patched mmd-draft.txt and sent the text to the newsgroup. Luke Palmer offered a suggestion.

Ph. Marek wondered if there will be MMD based on the value of parameters, as in Haskell. Audrey Tang confirmed this and pointed to S06. Trey Harris updated it with a reference to S12. Ruud H.G. van Tol also offered an example of syntax.

This week, Larry Wall clarified further, noting that every scalar value is a one-element subset of its type.

Inf appears to be unspec'ed

Mark Stosberg was unable to find the formal definitions for Inf, not and true. Later he found them, and was able to add smart links.

Reduced assignment operator?

Audrey Tang noted that S03 was inconsistent about the treatment of assignment operators in the reduction operator. Audrey further commented that she doesn't see a problem with supporting assignment reductions as a syntactic exception. Larry Wall replied that it was worth supporting.

Outlaw to declare a lexical twice in the same scope

Steve Lukas quoted S04: "If you declare a lexical twice in the same scope, it is the same lexical." He felt that declaring the same lexical should give an error, because when he does this, he's made a mistake. Rick Delaney disagreed; for development or debugging he will often add a second declaration line to temporarily override the first. Juerd agreed with Steve. He appreciates that my $foo always gives a new variable, so he does not need to know anything about the surrounding code. Carl Mäsak also wanted the compiler to catch second declarations.

Naming the method form of s///

Earlier, Mark J. Reed noted that according to S05, the string method equivalent of
s/// is subst. He felt it might be easily confused with substr and suggested replace.

A long discussion on how the method would actually work followed.

Recently, Larry Wall noted that he should clarify the role of = with regard to preceding declarators. They control how often the expression is evaluated.

META vs meta

David Brunton noted that S12 specifies $obj.META, but in Pugs it is implemented as $obj.meta. He wanted to know if he could change meta to META. Larry Wall replied that he was considering renaming the method to use interrogative pronouns. David Green commented on Larry's proposed names, and Larry responded.

Sam Vilain wondered if upper case was needed. Jonathan Scott Duff thought that it fit in with Perl's culture. Aaron Sherman had some other suggestions for avoiding namespace pollution.

David Brunton wanted to know if there was some reason that the meta methods could not be part of a default function package. Aaron Sherman gave two reasons why this was not desirable.

single named param

Gaal Yahas wondered if :(:$x) was a single named parameter called $x or a default invocant and a single required positional named $x. Audrey Tang replied that a default invocant would not make sense because there is nothing to default to. Gaal then wondered what invocant is constructed for method foo ($just_a_named_param). Larry Wall replied, and Mark Stosberg also commented. Audrey answered too.

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

Larry Wall made a commit to S03, which led Ruud H.G. van Tol to ask if [=] $x, @y was equivalent to $x = @y[0] = @y[1] = @y[2] ... @y[-2] = y[-1]. Larry replied that they were. Ruud asked for additional clarification.

Unpacking tree node parameters

Earlier, Gaal Yahas asked for some clarification on the intent in S06's "Unpacking
tree node parameters" so that he could introduce the optional use of the
colon more gradually.

This week, Audrey Tang replied with answers to Gaal's questions.

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

Several threads grew from Larry Wall's commits on the X operator.

Darren Duncan expressed his appreciation for it. Miroslav Silovic asked if it would be possible to extend next to pass arguments to the 'nexted' iterator.

In thread [svn:perl6-synopsis] r11971 - doc/trunk/design/syn, Daniel Hulme requested a variant which does the diagonal order.

[svn:perl6-synopsis] r11975 - doc/trunk/design/syn led to additional comments. Carl Mäsak wanted to know why X-X is needed if X already concatenates strings. Daniel Hulme thought it was an incomplete change which should have read XX. Carl agreed, but thought X,X would be nicer.

assigning to named parameters

Aaron Sherman wondered if it would be possible to treat named parameters as lvalues, so that foo(:a<1>, :b<2>) could become foo(:a=1, :b=2).

-X file test operators

Aaron Sherman raised ambiguity issues between identifiers with dashes in their names, like the file test operators, and unary minus (-4). Juerd replied with proposals for phasing out -e and friends in favour of some more flexible/modern approaches. Larry Wall cleared up the syntax for calling prefix operators as methods, and other funny method names.

Acording to S05, due to the longest token rule -e will be parsed as the prefix op -e, and not as prefix unary minus and call to e. However, this is only the case if the prefix operator -e is actually defined.

A discussion on identifiers with funny characters in them also started under this thread.

Parrot Porters

JSON compiler

Will Coleda announced that he had added a JSON compiler with help from Jerry Gay and Nuno Carvalho.

[svn ci] apps/p3

Leopold Toetsch announced that he'd created a Parrot-based slide presentation program. He requested improvements and suggestions.

[perl #40316] [NEW] opcodes not tested script

Fonseka created ticket [perl #40316] to include a patch for a script which outputs the opcodes not covered by tests. Currently all but 7% of the opcodes are used in real tests.

The thread continued in Re: [perl #40316] [NEW] opcodes not tested script, after the code was committed as r14594. Leopold Toetsch commented on how disassemble was largely untested, and Fonseka replied.

[perl #40319] [PATCH] PGE test file written in PIR revisited

In ticket [perl #40319], Nuno Carvalho reported that he had cleaned t/compilers/pge/06-grammar.t and included a patch. Patrick R. Michaud noted that test 10 was marked 'todo' but passed, and wanted to know why it was marked 'todo'. Patrick applied it as r14606 and r14607.

The Interp structure

Alberto Simões has been trying to improve compilers/imcc to make it reentrant by removing globals and creating an object with the variables which is relevant to the parser. He noted that an Interp structure is being passed, but believes this does not duplicate the functionality he is creating, and asked for a confirmation.

Libraries, dynpmc and Visual C++

Ron Blaschke reported a fatal error when linking gdbmhash.dll on Windows XP with Visual C++. Will Coleda applied the patch as r14586 and asked for someone using GCC on Win32 to confirm that the code still worked.

Accelerating Method Dispatch

chromatic posted a link to thoughts on method dispatch by Piers Cawley and Avi Bryant. He wondered if it was similar to PIC. Andy Armstrong replied that the articles describe branch prediction for method dispatch, which he felt was different from PIC. Leopold Toetsch thought there were some similarities, and that further optimization was possible.

[TODO] fill Parrot_register_move() with code : new implementation

Karl Forner included a patch to revise Parrot_register_move() to address some bugs and improve speed. The algorithm was explained in detail. It was applied as r14621. Leopold Toetsch commented on the implementation.

HOWTO give options to parrot in tests

Karl Forner is working on [perl #40064]. He is wondering how he can run the script with options, and wanted to know if TEST_PROG_ARGS would be an appropriate choice. Leopold Toetsch suggested subclassing Parrot::Test.

Global Variables Hunting

Alberto Simões requested that anyone who found a global variable under IMCC/PIR parser add a 'HITME!' comment near it and alert him.

cur_namespace under imcc.y

Alberto Simões wanted to know if cur_namespace in imcc.y had the same meaning as the one in imc.h. He wanted to merge them.

Version PMC

Leopold Toetsch noted that GMP 4.1.1 segfaulted during multiplication. He corrected the problem by compiling and installing a new GMP, but he would like to create a diagnostic to warn about the bad GMP version.

Users

the CGI.pm in Perl 6

Darren Duncan made the suggestion that CGI.pm be improved for Perl 6 rather than simply ported. He listed a few ways in which it could be improved. Mark Stosberg replied and mentioned some of the points he considered most important. These suggestions in particular received further discussion: removing HTML generation methods, renaming the module, and incorporating session management.

Trey Harris agreed with Mark's sentiment about excluding HTML methods from CGI.pm, but felt this could lead to limited Perl 6 adoption. Thomas Wittek suggested use perl5:CGI for legacy support and allowing CGI.pm to develop. Amir E. Aharoni was also in favor of the backwards-compatibility module, and an improved default. David Cantrell wondered if anyone was actually using HTML-generation. In Andy Dougherty's opinion, there are probably many people using it that way, because it features heavily in the documentation. Leon Timmermans admitted to using them a few times, and wanted a modern equivalent, but in a separate module. There were a number of other comments. The general gist seemed to be that HTML-generation functionality is used and should still be available, but optional.

The discussion of HTML methods led to Steffen Schwigon's observation that CGI.pm could use a name change to make it appear more modern. Darren Duncan and Juerd also disliked the current name. David Cantrell and Darren discussed whether 'CGI' implies an implementation or a standard interface.

In CGI Session management (was Re: the CGI.pm in Perl 6), Michael Snoyman suggested making session management easier, and perhaps integrating it. Yuval Kogman requested that session handling be left to a plugin, and offered to share what he had learned from redesigning the Catalyst session handling.

Trying to use Perl5 modules

Richard Hainsworth has been trying to discover how to use Perl 5 modules in Perl 6. He included some code which worked in Perl 5, and asked how he could use them in Pugs. Trey Harris replied that imports currently don't work, and showed a workaround. Audrey Tang answered that imports were implemented a few weeks ago, but implicit imports aren't supported yet.

Richard also wanted to know where .can is documented.

Google "Welcome to the home page for Perl 6" (Perl 6 Wiki)

Conrad Schneiker noticed that Google had indexed the Perl 6 Wiki but that it hasn't yet reached the top search results.

Compiler

typo in HTTP::Server::Simple

Zack Hobson found a problem with the port number reported in startup by HTTP::Server::Simple in Pugs if the default port is used, and included a patch, which Carl Mäsak applied.

Acknowlegements

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.

Yuval Kogman assisted with this summary.

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

Sunday September 10, 2006
09:01 AM

Perl 6 summary for 2-9 September, 2006

This week on the Perl 6 mailing lists

Language

multi method dispatching of optional arguments

Mark Stosberg wanted the specifications to address what should happen in MMD when optional arguments are present (S12). He patched mmd-draft.txt and sent the text to the newsgroup. Luke Palmer offered a suggestion.

Ph. Marek wondered if there will be MMD based on the value of parameters, as in Haskell. Audrey Tang confirmed this and pointed to S06. Trey Harris updated it with a reference to S12. Ruud H.G. van Tol also offered an example of syntax.

when calling sets of methods, what happens to the return values?

Mark Stosberg asked for clarification in S12 on what happens to return values when sets of methods are called. Later he saw that Audrey had implemented the functionality and decided to make the final return value an unconcatenated list of each method's return value. He thought this was fine, but a downside might be that it is hard to identify where a return value initiated, since there is no indication which methods were called and in which order.

Unpacking tree node parameters

Gaal Yahas asked for some clarification on the intent in S06's "Unpacking tree node parameters" so that he could introduce the optional use of the colon more gradually.

clarify: how WALK arguments can be combined

Mark Stosberg wanted to see comments "like Perl 5" and "like multi dispatch" expanded in the documentation of the Objects chapter in S12. A reference to their specifications would be adequate. Brad Bowman commented on what he felt were the allowed combinations of adverbs. Mark replied.

NEXT and the general loop statement

Replying to a thread in which Larry Wall stated that exiting blocks run in reverse order, Agent Zhang included an IRC conversation with Audrey Tang where they reached the conclusion that Larry should clarify in what order multiple NEXT{} run. Agent requested that this be explicitly expressed in S04.

gather/take definition missing

Mark Stosberg noted that there are several references to gather in the documentation, but a formal definition is lacking. He requested one.

C<when> outside of C<given>

Trey Harris showed an example code where an undef $_ was seen as false like 1 ~~ 0. He suggested some clarifications on when. Mark J. Reed disagreed with the suggestion that using when should cause an error outside of a block which sets $_. Trey clarified.

CATCH: changing the topic and preserving the call stack

Mark Stosberg referenced error handling in CGI::Application as a use case for refining the CATCH specification. He made some comments using the Perl 5 code as an example.

When should a LAST block be triggered?

Agent Zhang quoted a section of S04 concerning NEXT blocks. This led to a question about when LAST blocks are executed. For instance, would they only be used if the last iteration of the loop is reached normally, when an explicit last is executed, or in all cases where the block is exited?

Parrot Porters

Some extra reference types

Jonathan Worthington proposed two new core PMCs, 'references to a particular element in an aggregate type' and 'references to a register'. The second requires an opcode, and Jonathan would like the second to have one as well. He included a PDD patch. Leopold Toetsch added another example of where the PMCs would be useful, and commented on the proposal.

Parrot-14347 Patches to get Parrot to build on VMS VAX

Martin Vorländer supplied patches to enable Parrot to build on a VAX. Leopold Toetsch made a suggestion for file names. Martin replied that he will create another patch when he has finished his project.

Dynamic PMC building - include and libpath options?

Jonathan Worthington noted that the include path for BCG was hard-coded in the dynamic PMC build script, which causes problems on Windows. He suggested that build/tools/dynpmc.pl could accept -I and -L flags. Leopold Toetsch thought the script should be removed in favor of standard Makefile rules.

#parrotsketch logs: 05SEP06

Will Coleda posted the URL of latest #ParrotSketch log.

[perl #40278] [CAGE] perl coding standards coda.

In ticket [perl #40278], Will Coleda created a Cage Cleaner's ticket requesting an update of the Perl coding standards based upon an update in PDD07.

[perl #40279] [CAGE] C coding standards coda.

In ticket [perl #40279], Will Coleda created a Cage Cleaner's ticket requesting an update of the C coding standards based upon an update in PDD07. Jerry Gay added a new test file for the C files, and noted that he'd also add tests for the Perl files (mentioned in [perl #40278] [CAGE] perl coding standards coda. ) when he had time, if nobody else had done it by that time.

select / PIO_unix_poll / IO event

Leopold Toetsch found a need for a select/poll system interface. He listed what is currently available and talked about how the system could be implemented. In r14465 most of the functionality was added.

(Non)shared interpreter data

Leopold Toetsch thought it was time to consider interpreter structures and data with regard to threads. He offered his thoughts and solicited for comments. Later he replied to a comment to explain that continuations could not be used because they should not be shared between threads.

[perl #40292] [TODO] Add JSON tests

In ticket [perl #40292], Will Coleda noted that more tests are required to test the dumper output of a PMC generated from a JSON string. Nuno Carvalho created a patch, which was applied.

[perl #40299] [PATCH] Added readdir() function to os.pmc

In ticket [perl #40299], Kay-Uwe Huell included a patch for a readdir function. It was applied as r14480.

[perl #40231] [PATCH] t/compilers/pge/06-grammar.t written in PIR

In ticket [perl #40231], Nuno Carvalho rewrote t/compilers/pge/06-grammar.t in PIR. It was applied as r14504.

socket related constants

Leopold Toetsch felt that socket code is not very user-friendly, and wondered if there was a better way to generate constants. chromatic offered a comment, and Kevin Tew suggested looking at the PGE grammar for C99.

Users

RE: Big update to the Perl 6 Workplace Wiki

Conrad Schneiker reported that he had refactored the Perl 6 Workplace wiki. He clarified that the license would be the same as that used by the Perl 6 branch of the Pugs trunk. Mark Overmeer requested that CPAN6 and other Parrot projects be listed on the wiki.

Some followups to this thread can also be found in RE: Big update to the Perl 6 Workplace Wiki.

cperl-mode.el: twigils and opers

Trey Harris noted a problem in cperl-mode.el with twigils which caused $.x to be interpreted as $. followed by the x operator. He asked for help in fixing it. Steffen Schwigon had been working on it, and thought it worked, but suggested trying an older revision to see if he had introduced bugs. Trey reported that the old revisions don't work and offered some sample code. Steffen offered to look in to it. He suggested that longer variable names might work, but short ones were still broken.

IO::Socket, or any IO

Earlier, Michael Snoyman had a question on IO in Perl 6. This week, Audrey Tang pointed him to examples in examples/network/http-server.pl in the Pugs tree. Michael clarified that he was looking for threading information, and Audrey supplied more information.

Compiler

Compiling pugs r12925 failed

Markus Laire reported a failure with compiling Pugs. Audrey Tang replied that Gaal Yahas is in the middle of adding some code and suggested trying again. Markus also found an error with r12939. Audrey was unable to duplicate the problem but tried to fix the code with r12945, which worked.

synopses on smoke server

Christopher D. Malon quoted Agent Zhang's Pugs blog request for regular smoke test results which could be included with Synopses on feather. Christopher suggested integrating the synopsis-with-smoke with the existing smoke infrastructure. He had some questions about how to proceed. Agent Zhang was very interested in seeing the feature developed. Ingo Blechschmidt offered some suggestions on implementation. Christopher explained why he thought multi-versioning of the t directory was critical.

Meanwhile, Yuval Kogman noted two other smoke servers Christopher could look at. Jesse Vincent clarified some details on the second server Yuval mentioned, Chimps.

Acknowlegements

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

Sunday September 03, 2006
10:54 AM

Perl 6 summary for Aug 27 - Sep 2, 2006

This week on the Perl 6 mailing lists

"I once saw an overfilled waterbed that was almost as tall as I am. I would have called it PHP, but it didn't explode and throw cold water all over the house."

-- chromatic

Language

clarifying the spec for 'ref'

Last week, Mark Stosberg wanted Perl 6 to retain the Perl 5 responses to ref or justify the change in the documentation. Larry Wall explained that ref will not exist in Perl 6; instead, it will be something like .what, which will return the type itself, rather than a string.

The thread then moved on to subclassing, after Luke Palmer suggested that Array would be a subtype of Array::Const, after Larry had stated the reverse. This led to a lengthy discussion on the subject.

This week, Richard Hainsworth tried to analyze situations involving classes and roles using sets and subsets. He started a new thread for the topic, Classes / roles as sets / subsets.

Same-named arguments

In the previous week's summary, it was reported that Michael Snoyman asked whether or not arguments of the same name but a different sigil, e.g. sub foo ( $foo, @foo ) will clash. Luke Palmer thought it was going to be a compile time error, due the to the arguments do not have the sigil as part of their long name. Mark J. Reed wondered whether or not that is consistent with the rest of Perl 6. Audrey Tang then explained the syntactic difference between pairs and named arguments with regard to barewords and quoted strings.

On August 27th, Michael repeated a friend's suggestion of making the sigil on the name optional for disambiguation. Mark Reed also made a proposal, which included having the sigil be optional in some cases.

Implicit current-index variable, scoped inside for-loops

Carl Mäsak reported a conversation from #perl6. There was a suggestion for a special variable which would carry the loop index. Ruud H.G. van Tol thought that if the block had a label you could have multiple indices attached to the name. Mark A. Biggar noted that it should also work for grep and map. There were some further discussions of syntax. Jonathan Scott Duff thought it would be too much sugar.

Classes / roles as sets / subsets

Continuing from his earlier message in thread clarifying the spec for 'ref', Richard Hainsworth continued his quest to completely understand classes in Perl 6. Daniel Hulme made a suggestion on the diagrams.

In Fwd: Classes / roles as sets / subsets, Jonathan Lang responded to Richard's questions and tried to answer them. chromatic brought up the question of the relationship between OO and inheritance.

return Types: what are the enforcement details?

Mark Stosberg wanted to write tests for 'return types' but wanted documentation on what cases (of a different type returned) should give errors. He also wanted to know if they are declarations or contracts. Yuval Kogman replied that of is the contractual form, while returns is a constraint which is more like a cast. He also took a guess at what results were appropriate.

named arguments: What's the signature?

Mark Stosberg felt that information on the signature to use to declare an arbitrary number of named arguments is missing from S06. Trey Harris thought that the description of slurpy parameters already covered the subject. Stuart Cook suggested reading 'List parameters', which he thought should be cross-referenced under 'Named parameters'.

A suggestion for a new closure trait.

Joe Gottman suggested a block closure trait RESUME, which would be called at the beginning of each loop iteration other than the first. Jonathan Lang asked if the relationship between RESUME and FIRST would be the same as NEXT to LAST.

could 'given' blocks have a return value?

Mark Stosberg wanted to use given to populate with whatever value was returned from when {} or default {}. He noted that Pugs allows this when you wrap a block in an anonymous sub, but suggested that the syntax could be cleaner.

Jonathan Lang thought that the last expression evaluated within a closure is returned by the closure, and that given is just another closure. Agent Zhang reported that S04 states given {} cannot be used directly as an expression, but offered alternate syntax. It was concluded that do given is probably the best way to do this, and it should be documented.

Questions about statement modifiers

Agent Zhang wanted more information about statement modifiers than appears in S04 and included some code snippets, asking if they were valid Perl 6. Larry Wall clarified, and agreed to add the information to S04.

derived class generators and introspection

Darren Duncan described his thoughts on the subject of implementing a relational database in Perl 6. Nigel Hamilton had some questions on disk access and data storage.

Naming the method form of s///

Mark J. Reed noted that according to S05, the string method equivalent of s/// is subst. He felt it might be easily confused with substr and suggested replace.

A long discussion on how the method would actually work followed.

Uncaught exceptions

Andrew Suffield asked how an uncaught exception should react in certain situations. He was unable to find anything in the synopses on the subject.

Nested statement modifiers.

Paul Seamons wondered if there was a reason why Perl 6 would not allow nested statement modifiers. Trey Harris reported that it was rejected by Larry in 2002 and gave a link. Jerry Gay thought a sentence on the subject should be added to S04. Trey noted that the synopses only address changes from Perl 5, and Perl 5 only allows one statement modifier.

Paul noted that the object syntax and the Perl 6 grammar have changed since 2002 and wondered if the reasoning was still the same. Randal Schwartz thought that Larry's reasoning was that he had seen this feature abused in other languages. Paul agreed that there are few instances where it would be useful but still wanted the opportunity to abuse it.

Parrot Porters

PMC Methods, Inheritance, and User-visible Classes

Matt Diephouse plans to work on AbstractPMCArray PMC class which can provide some default array vtable functions other PMCs can inherit. He was not certain how to best handle sort methods, which could potentially end up being visible to the user. He asked for opinions. Joshua Juran suggested requiring array classes to implement swap() and implementing sort algorithms in terms of that. Matt felt that this would not handle the underlying problem of methods not available in a given language becoming available to users.

Watson Ladd wondered if it was bad to add functionality to a language, and chromatic responded. This led to a discussion on what exactly is wrong with PHP.

#ParrotSketch Meeting 29AUG06

Will Coleda posted the URL of the 29 August #ParrotSketch log.

[perl #40253] [PATCH] always cast printf("%p") to (void *)

In [perl #40253], Will Coleda supplied a patch to change printfs arguments to avoid compiler warnings. However, the patch caused some test failures. Joshua Hoblitt wanted to know what compiler was generating the warnings. It was gcc 4.0.1.

Why does writing PMCs suck?

Matt Diephouse put out a call for comments on what people do not like about writing PMCs. He started the list with two complaints. chromatic added three.

Proposed patch

Mark J. Reed reported that compilation fails on OS X 10.3 with gcc 3.3 because -bundle is misinterpreted. He supplied a patch to change the order of arguments which fixes the problem.

Error Recovery in Parrot

Alberto Simões tried to create an RT ticket but it was not added, so he reported the problem to the newsgroup. He finds it problematic that Parrot stops with the first error it encounters and doesn't report any other errors which may exist. He offered a patch and gave people a few days to object. Jerry Gay suggested applying it, and reported the RT problem.

PGE bug?

Will Coleda posted his attempt at implementing a JSON parser in PGE. He later found the bug that was causing him problems.

Users

multi subs with identical signatures: should be a warning ?

Mark Stosberg wanted to know where he should read to learn how the dispatching to the correct multi sub is resolved. Markus Laire suggested looking at S12 and possibly S06.

re: Announcing the Perl 6 and Parrot wiki workspaces

Conrad Schneiker announced that he had added some information to the wiki. He felt that the interface was easy to use, and wondered what other people's experiences were. There was some discussion on why the connection was slow, and the reason seemed to be that it runs on Andy Lester's home machine. Andy tried to adjust his connection, and Juerd offered to host it on feather.

Writing modules

Michael Snoyman wondered how a to create a makefile and run tests for a module which wouldn't exist in the Pugs source tree. Gaal Yahas suggested not worrying about the makefile unless the module is intended for distribution. He suggested that Test.pm should be used for testing, and that the Pugs distribution has good examples of functional tests.

Stubborn coworkers

Jeff Stampes wondered how he could interest his coworkers in Perl 6 topics, given some resistance to the syntax. Fagyal Csongor replied that the syntax is indeed full, because Perl 6--like Perl 5--tries to handle many different things. However, people need only learn a relevant subset. Amir E. Aharoni offered a link to samples of Perl 5 and Perl 6 code, where the latter was much cleaner.

Jonathan Scott Duff agreed with Fagyal, noting that the default syntax is clean. He suggested the fear may come from the possibility of changing the rules. A. Pagaltzis disagreed that the coworker's assertion that Perl 6 resembles Lisp and Forth. Steffen Schwigon suggested comparing Perl 6 to Perl 5. Several other people also contributed to the thread.

Help getting pugs working?

Jeff Stampes ran in to difficulties getting Pugs running on Red Hat Enterprise 4. Steffen Schwigon wondered if Jeff had tried one of the binaries. Later Jeff reported that he had it working.

Acknowlegements

This summary was prepared using Mail::Summary::Tools, now available on CPAN. A big thank-you to Yuval Kogman.

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

Sunday August 27, 2006
08:52 AM

Weekly Perl 6 mailing list summary for August 20-26, 2006

This week on the Perl 6 mailing lists

"My school's punch card machines were in the same room as the TRS-80 Model I ("THE COMPUTER ROOM"). These kids today with their hula hoops and fax machines and intarwebs..."

-- Chip Salzenberg, arguing in favor of lines in excess of 80-characters.

perl6-language

multi-line comments, C macros, & Pod abuse

Last week's summary covered this thread, which discussed easily commenting out a large chunk of code.

This week the discussion continued slightly in to the realm of meta-programming and programming environments, but not much meat was added.

clarify: does "Dog is Mammal" load Mammal for you?

Mark Stosberg asked for clarification on S12 on whether class Dog is Mammal requires Mammal to be loaded in advance. The current version of Pugs needs an explicit use Mammal.

Darren Duncan believed an implicit use Mammal should only occur conditionally, if a Mammal had been declared, but was concerned about potential bugs. Jonathan Scott Duff had the impression that preloading would not be required, and wondered if class Dog is Mammal-4.5 would be valid. Trey Harris referenced S11 to claim that Jonathan's questionable syntax is valid. Andrew Suffield also tackled the question of versioned libraries.

Heredoc issue in pugs.

Yiyi Hu wanted to know the correct syntax for heredocs, as S02 and Pugs seem to be at odds. Larry Wall clarified that both are allowed.

Luke Palmer expressed concern about the false duality of :to and :from. Larry noted that is why :from doesn't actually exist.

Pair of lists => list of pairs?

Mark J. Reed asked how one would idiomatically write my %h; @h{@keys} = @h{@values} in Perl 6. Gaal Yahas suggested using ¥, the zip operator: my %h = @keys ¥ @values. Larry Wall suggested using a hyper pair: my %h = @keys »=>« @values.

clarifying the spec for 'ref'

Mark Stosberg wanted Perl 6 to retain the Perl 5 responses to ref or justify the change in the documentation. Larry Wall explained that ref will not exist in Perl 6; instead, it will be something like .what, which will return the type itself, rather than a string.

The thread then moved on to subclassing, after Luke Palmer suggested that Array would be a subtype of Array::Const, after Larry had stated the reverse. This led to a lengthy discussion on the subject.

My first functional perl6 program

Mark J. Reed posted a simple program he wrote in Perl 6 for educational purposes, asking for critique.

This lead to a discussion on the semantics of hyperoperators in relation to finite/infinite sequences.

perl6-internals

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

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

It was applied as r14297.

[REPATCH] Parrot::Embed Take Two

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

This week, François Perrard explained how to solve the Windows issue.

[perl #40204] line numbers of runtime errors are one too low

Chip Salzenberg created ticket [perl #40204] because runtime errors are off by one line. Leopold Toetsch thought this was the same error reported in [perl #38594], but Will Coleda disagreed. There was some discussion on when new tickets should be created.

SKIPs Are Now a Code Smell

chromatic made two commits to unskip some valid tests. He was concerned about the large number of tests which are being skipped in Parrot. He suggested unskipping all tests which might pass, and use TODO or deletion depending upon the relevance of the test. This was added as a Cage Cleaner's task.

[perl #40207] [PATCH] tools/dev/install_files.pl - replace tabs with spaces

Amir E . Aharoni created the ticket, [perl #40207], in which he supplied a patch that corrects the indentation of tools/dev/install_files.pl.

[perl #40209] [TODO] convert t/compilers/pge/p6regex/01-regex.t to PIR

Will Coleda wanted the tests in PIR instead of Perl to make make test faster and to give a template for other test conversions. See ticket [perl #40209].

[perl #40210] [TODO] Provide a way for PGE's dump to go to string

In ticket [perl #40210], Will Coleda noted that it would be useful to get a string when dumping, for testing. Patrick R. Michaud created the dump_str method in r14306.

End the Hollerith Tyranny? (linelength.t)

Chip Salzenberg asked if anyone has any reservations from making the parrot's source code repository follow a wrapping convention of over 80 columns. Some people said they were old enough to have used terminals that couldn't physically support that, at which point Chip showed them he was actually older.

It seems that the general consensus is to try to aim for 80 columns, but that a hard limit of 100 will be set for when that doesn't work well.

[svn:parrot-pdd] r14308 - in trunk: . cage docs docs/art docs/dev docs/imcc docs/pdds docs/pdds/clip docs/stm languages languages/tcl/docs lib/Pod/Simple t/distro

Joshua Hoblitt replied to a commit with a reminder that there is a utility for formatting Parrot's Pod.

#ParrotSketch Meeting 22AUG06

Will Coleda posted the URL of the 22 August #ParrotSketch log.

[perl #40217] Parrot_autoload_class() knows about Python and Tcl

Chip Salzenberg wanted hardcoded language names in Parrot removed. This came up in ticket [perl #40217].

LLVM and HLVM

John Siracusa wondered if anyone had looked at LLVM recently and wondered if Parrot might be able to target LLVM bytecode and let it do further optimization for OS X. Peter Baylies responded that he'd looked at it, and was currently waiting for an x86-64 build. Peter was not sure there were benefits in targeting LLVM. Aaron Sherman added that the extra layers would probably not make up for any optimization gains.

[perl #40218] [BUG] - get_*_global opcodes throw exceptions

In ticket [perl #40218], Matt Diephouse noted that the documentation of get*hll says "If the global doesn't exist, $1 is set to null" but currently it throws an exception.

[perl #40219] [TODO] - Steal Perl5's sprintf tests

Matt Diephouse created ticket [perl #40219]. He suggested using Perl 5's sprintf tests instead of writing new ones.

[perl #40225] Making Makefiles...

Will Coleda created ticket [perl #40225] to address the new features he'd like in genfile() when generating makefiles. Leopold Toetsch thought that instead of inventing custom make extensions, there should be a few needed gmake extensions. Will agreed with stealing gmake syntax. Joshua Hoblitt disagreed with the proposal. Will responded.

Announcing the Perl 6 and Parrot wiki workspaces

Andy Lester announced the Perl 6 and Parrot wikis.

[perl #40231] [PATCH] t/compilers/pge/06-grammar.t written in PIR

Nuno Carvalho rewrote t/compilers/pge/06-grammar.t in PIR and put it in ticket [perl #40231].

Dumb Configure.pl question

Mark J. Reed was running in to problems with linking when building Parrot on OS X. Will Coleda listed some arguments that can be used in configuration to support linking.

Find out in program code, if a PMC-property is set?

Gerd Pokorra had issues extracting a PMC property when that property has not been explicitly set, and wondered how one could go about introspecting the PMC to determine whether or not a property is set. Bob Rogers advised checking PMC_IS_NULL.

String.to_int() vs. opcode

Chip Salzenberg posted in response to Leopold Toetsch's addition of to_int() to String. Chip suggested making it a common subroutine in the C source. Will Coleda disagreed on the grounds that it is a method, not an opcode, and that not everything needs to be a PMC. Jerry Gay agreed with Chip. Chip also replied.

[perl #40210] [TODO] Provide a way for PGE's dump to go to string

Will Coleda created a ticket asking for PGE's dump to be able to go to a string, and not just output, for testing purposes. Patrick R. Michaud added a dump_str method in r14306, and then closed the ticket.

perl6-users

junctions and autothreading

Amir E. Aharoni wanted to know what the status of 'autothreading' was, after seeing some tantalizing references to it. Conrad Schneiker didn't know, but suggested that looking at the #perl IRC log search as another document resource.

a practical question

Richard Nabil Hainsworth wanted to know how he could write an application in Perl 6 which works with GUI toolkits such as WxWidgets. Conrad Schneiker had a similar interest, although he focused on XPCOM, XUL and other Mozilla GUI technologies. Steffen Schwigon suggested some experimentation with using Perl 5 libraries, and requested that Richard document his experiences.

Latest $1,000 Wiki for Perl 6 proposal/offer.

Conrad Schneiker brought up the long-running subject of the Perl 6 wiki bounty (refer to summaries for July and June for more information on the history of this topic). He hoped that TPF could determine the conditions of the contest. Andy Lester replied that he was in the process of setting up a wiki for Perl documentation. Conrad asked a few questions about Andy's plans.

Meanwhile, Paul Fenwick asked how PerlNet could improve to meet the needs of the Perl community. Conrad and Amir E. Aharoni responded.

Same-named arguments

Michael Snoyman wanted to know what would happen if there was a parameter list which included variables of a different type but the same name. He included the results he got when trying it. Juerd said he felt it should cause a compile time failure or a warning.

Michael reposted the message to the language mailing list: Same-named arguments.

IO::Socket, or any IO

Michael Snoyman wanted to know what the Pugs version of IO::Socket is.

perl6-compiler

Integrating the Pugs test suite into the Synopses

Agent Zhang announced that the test snippets in the Pugs test suite have now been included in the Synopses, thanks to smartlinks.

Ponie has been put out to pasture

Jesse Vincent announced the end of the Ponie project. Making Perl 5 code run seamlessly alongside Perl 6 in Parrot is still a goal, but it is being addressed in other ways.

pugs: rw block parameters

Mark J. Reed wanted to know if rw parameters for blocks had been implemented. Larry Wall agreed that it was not currently working. Audrey Tang made clarification in r12675. Tests (37 and 38) were added to for.t for the situation Mark described, as r12968.

Pugs bugs

Mark J. Reed wondered if Pugs bugs were stored somewhere, so that he could avoid mentioning known bugs. He included some questions. Larry Wall replied that in Pugs, a bug is represented by a failing test. He also answered questions.

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