Perl 6 summary, 19-25 November, 2006

kudra on 2006-11-26T13:12:00

This week on the Perl 6 mailing lists

"...of course [that] can't be a bug as there are no specs ;)"

-- Leopold Toetsch, in '[perl #40968] [BUG] :multi doesn't seem to work right'

Language

Smart Matching clarification

Last week, Jonathan Lang brought up some information relating to hashes and was wondering if the matching operator ought to be modified since the concept for hash keys has since changed. Larry Wall replied that === was correct, but that the decisions on sorting may need to be rethought. Jonathan thought that not only was the current description suboptimal, it might not even be possible. Darren Duncan added in his opinion that .keys should return a Set. Jonathan had some concerns about the idea. Meanwhile, Paul Seamons made another suggestion based upon Template Toolkit's handling of the concept.

This week, Darren went in to more detail on the methods which ought to be available for Set, Seq and Bag. TSa also added comments on the relationship between Seq, Bag and Set.

Closures, compile time, pad protos

Yuval Kogman initiated a thread on scoping and closures with some code examples. Anatoly Vorobey tried to further clarify the question. They were not clear on how inner lexically scoped subroutines view their enclosing environments. There was some question on how compile-time pads are linked at runtime. Juerd's had a question which led Yuval to further define the original question.

Buddha Buck added some comments based upon an understanding of other languages; Anatoly joined in the discussion.

Synopsis 26

Damian Conway attached S26 and thanked everyone who offered feedback on the first draft. He also stated that the Pod-to-XTML module and Perl 5 implementation of the POD parser will be available soon.

implementation for subset types

TSa wanted to propose an addition to the subset type definitions, namely an implementation body like classes and roles. A rectangle example from an earlier thread was included. Jonathan Lang replied with an alternate code example.

Parrot Porters

RFC: Proposal for dynamic binding

Bob Rogers responded to Leopold Toetsch's earlier request for an analysis of the impact of using STM for dynamic binding with a detailed comparison.

set_pmc + setref/deref: anyone using them?

Earlier, Matt Diephouse wanted to know if anyone would be upset if he removed the set_pmc vtable and the setref and deref opcodes. Allison Randal thought it sounded like a bad idea to simply remove opcodes because they were broken. She wanted to know what problem they were intended to solve, and what the replacement strategy for is.

This week, Matt explained what he knew about the history of the opcode. Allison agreed with him that set_pmc needs to be split from assign_pmc and that they may need to be renamed. She asked for a more complete proposal for creating the new reference pmc so that the effects can be carefully considered.

[perl #40884] [CAGE] update parrothist.pod from email archives

Earlier, Paul Cochrane took a stab at ticket [perl #40884], which was Chip Salzenberg's request for Parrot release names to be recorded. Will Coleda completed the task and gave a brief overview of the history of the naming schemes.

pmc2c.pl: Proposed Strategy for Revisions and Testing

Last week, following his introduction to Parrot at the Chicago Hackathon, James E Keenan posted a proposal on how pmc2c.pl could be tested. He hoped for some feedback at an early point to prevent him from wasting effort on useless patches.

He proposed extracting as much functionality as possible in to subroutines which are then placed in a package. He also wondered about some options which were described in the documentation but didn't appear to be used.

This week, James clarified that gen_def() is indeed not used. Jonathan Worthington took responsibility for this, and said that he thought it was unneeded. James stated his intention to deprecate it.

Allison Randal advised James to begin with an extensive and tested refactor, with Particle's help.

[perl #40945] [PATCH] languages/abc test suit, basic tests

Nuno Carvalho created ticket [perl #40945] to add more features for testing the abc language.

[perl #40946] [PATCH] languages/abc TODO file

In ticket [perl #40946], Nuno Carvalho included a patch which is a TODO file for the abc language tests. This is a list of missing tests for features.

[perl #40951] [tcl] namespace "lost" inside an if statement.

In ticket [perl #40951], Will Coleda included some example code demonstrating how a Tcl namespace is lost inside of an if statement.

[perl #40947] [PATCH] languages/abc test suit, function tests

Nuno Carvalho created ticket [perl #40947] to submit a patch to add some simple abc functions to the abc test suite. It was applied as r15714.

[perl #40953] [PATCH] languages/abc test harness, correct todo option

In ticket [perl #40953], Nuno Carvalho included a patch to correct the abc test harness's todo option. It was applied.

Re: [perl #40955] [BUG] :anon .subs aren't anchored to a namespace

Matt Diephouse created ticket [perl #40955]. In it, he explained the relationship between namespaces and subroutines. Namespaces contain subroutines, and subroutines are anchored to namespaces. Matt wrote that anonymous subroutines should not be in a namespace, but should still be anchored to one; in Parrot this is not the case. He included a test case to demonstrate the problem.

Although the issue was resolved in r15674, this ticket generated some discussion. Allison Randal replied that she thought anonymous subroutines should not be anchored to a namespace. She thought that what Matt had in mind was a new concept, and asked for code examples and use cases which would allow her to define the concept better.

Matt responded with a Perl 5 example, and Allison replied. She proposed starting a new thread, which Matt did with ':anon Subs and Namespaces'. Ben Morrow also replied to the original ticket-based thread.

[perl #40958] [BUG] - can't iterate subclass of ResizablePMCArray

Patrick R. Michaud reported a problem with using iterators on subclasses of ResizeablePMCArray. This was ticket [perl #40958].

[perl #40950] [PATCH] Compiling Parrot with the new Borland C++

Steve Peters created ticket [perl #40950] which contains a patch to get Parrot to compile with the new Borland C++. He noted that more patches would probably follow.

[perl #40959] Parrot compile fails on OpenBSD/ppc in src/asmfun.s

In ticket [perl #40959], Steve Peters reported a compilation failure and included the error messages. chromatic thought the error looked familiar and proposed a solution.

[perl #40960] [BUG] :multi namespace pollution

In ticket [perl #40960], Matt Diephouse reported that making a :multi sub affects the namespace by adding an extra entry for the :multi variant.

Some thoughts on Microsoft Visual C++ 8.0

Ron Blaschke posted a summary of Microsoft's Visual C++ compilers and their take on bundled code. Steve Hay replied that he spent a while working on the same issues for Perl 5. Ron replied with a link to a page he had found on building C/C++ isolated applications and side-by-side assemblies.

3 subroutines with same name

James E Keenan included some snippets from three different files where a subroutine with the same name, gen_c, is used. All of these are in places where he plans to refactor. chromatic suggested whichever one is currently used should be considered authoritative. He thought it would be nice to compare the output of all three to see if there are significant differences between them.

:anon Subs and Namespaces

This thread continues from 'Re: [perl #40955] [BUG] :anon .subs aren't anchored to a namespace'.

Matt Diephouse tried to explain the anonymous subroutine namespace issue he is experiencing from the perspective of what Tcl needs. He posted some examples of the Tcl PIR. Allison Randal replied that it seemed like the same problem as Perl 5's 'main' routine. She also tried to explain why having anonymous subroutines anchored to a namespace would cause problems in Parrot. She suggested a feature which allows a post-compilation modification of the namespace a compilation unit uses for default lookups.

[perl #40968] [BUG] :multi doesn't seem to work right

Patrick R. Michaud filed ticket [perl #40968] to report a problem with underscore arguments in ':multi'. Leopold Toetsch replied with some thoughts on how they ought to work, but felt that it wasn't exactly a bug. Patrick gave some more detailed examples of why the current semantics are not useful. chromatic answered that he did not see any reason not to make the primitive types and their related PMCs equivalent in the distance value function.

[perl #40966] [BUG] Parrot core dumps in perl6 (possible GC/pointer bug?)

In ticket [perl #40966], Patrick R. Michaud reported a possible GC or pointer bug.

[perl #40972] Iterator over Env under Win32

Bernhard Schmalhofer noticed an iterator test which was being skipped under Win32 and wondered if it still needed to be skipped. His post was recorded as ticket [perl #40972].

pmc2c.pl --dump : What Files Does Makefile Supply as @ARGV

James E Keenan had a question about how the Parrot Makefile uses pmc2c.pl. Specifically, he wanted to know what files the Makefile places in @ARGV. chromatic replied that he did not see anything except the .pmc files.

[perl #40646] [TODO] PGE - add tests for <alpha+[_]>, <alpha-[Jj]>, etc.

Patrick R. Michaud created ticket [perl #40646] to request some new tests. He recently added code to add combined enumerated classes to PGE. Nuno Carvalho added some tests to the rx_subrule but noted that two were unexpectedly failing. Patrick noted why the tests were failing and corrected them.

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