Perl 6 summary, 08-14 Apr, 2007

kudra on 2007-04-22T07:15:54

This week on the Perl 6 mailing lists

"The current pugs implementation is just translating to the old form underneath, so it's not surprising it's a bit off. That's the sort of thing that happens when the language designer gives the language implementor whiplash. However, I rather suspect the interpersonal metaphorical meaning was lost on the physicist/comic who decided that the 3rd derivative of position should be called 'jerk'. :)"

-- Larry Wall, in 'What should file test operators return?'

Language

Re: Synopsis 26

Earlier, Thom Boyer responded to Damian Conway's post from November which thanked people for offering feedback on the first draft. Thom said that he had been unable to find the XHTML version of S26 and wondered if it was available.

Jerry Gay replied that there wasn't a pod parser available yet. Damian responded with the requested file, and said he still hoped to finish the Pod6 parser but he wasn't sure when he would have time.

Ævar Arnfjörð Bjarmason asked if Damian could post the code he currently has, so that others could work on it.

This week, Damian responded by uploading Perl6::Perldoc to CPAN. Ævar and Damian worked to improve the test suite.

Does =$*ARGS work?

brian d foy is working on 'Learning Perl 6' and had some questions about for the I/O chapter. He saw that while(<>){...} became for=$*ARGS{...} but noted this didn't work in Pugs. He wondered if it was a documentation error or an implementation error.

Moritz Lenz mused about why it wasn't =@*ARGS but couldn't answer brian's question. brian replied that $*ARGS is a filehandle, not a list of files. David Vergin remarked that there was a typo in S28 and corrected it.

using <sp> space in character classes

Brad Bowman noted that S05 lists sp under named assertions but doesn't explicitly mention it in the character class section. He wondered if it could be used in that way. Larry Wall replied that it could be, but it needs to be generalized.

What should file test operators return?

brian d foy noted that file test operators return false or the filename, when he would have expected a true. He wanted to update S16 to clarify the situation. Later Larry Wall said he would attempt to clarify S03.

Moritz Lenz and Damian Conway had some suggestions for the syntax in brian's code. Juerd Waalboer and Larry Wall also joined the conversation on the subject of giving printf a boolean output template. They found it too specific.

Brandon S. Allbery noted that Pugs does not implemented the specification as it is documented. He thought junction types aren't completely ready.

John Macdonald and Mark J. Reed also contributed to the thread.

Parrot Porters

remove_method vtable?

Jonathan Worthington noted that PDD 15 describes both add and remove vtable methods for attributes, parents and roles, but only add_method exists for methods. He wondered if remove_method should also exist.

Allison Randal went ahead and added it, after a bit of internal debate.

[perl #42332] [TODO]: Eliminate t/tools/ops2pmutils/testlib/Capture.pm

Ticket [perl #42332], by James Keenan, asked for some subroutines to be moved into lib/Parrot. This was fixed in r18040.

[perl #42334] PGE compiler faults out "set_integer_keyed() not implemented in class 'Undef'"

In ticket [perl #42334], Jim McKim reported a fault when compiling an example grammar. Patrick R. Michaud replied that there was a problem with the cut operator not being applied to a particular term. He saw it as a request to improve the error message when a cut token is applied to a null term.

inspect and inspect_str from PIR

Jonathan Worthington reported that he had implemented the inspect_str and inspect vtable methods for the Class PMC. He had a question about the implementation. Allison Randal replied that she had added an opcode inspect and a method inspect on roles and classes to the PDD.

[perl #42336] segfault happens with 'parrot --pre-process-only'

Jim McKim reported a segmentation fault when Parrot is invoked with -E. This was ticket [perl #42336].

[perl #42337] [PATCH]: Configure.pl: Refactor list of steps into Parrot::Configure::Step::List

James Keenan created ticket [perl #42337] to paste a patch which moved some of Configure.pl's functionality (listing steps in the configuration process) to a module. This was applied as r18157 and r18158.

[perl #42339] [CAGE] Test Valid and Invalid Parrot Flags

chromatic reported that there are no tests for Parrot's response to invalid command-line arguments. He suggested adding some in ticket [perl #42339]. James Keenan said that he had recently added a test of this sort. chromatic clarified: he meant command-line arguments to the Parrot executable, not to Configure.pl.

[perl #42349] [TODO] dotnet - fix various ops for 64 bit architectures

Paul Cochrane made a note that some ops need to be fixed for 64-bit architectures in ticket [perl #42349].

[perl #42352] [TODO] fix or remove strange TODO item in hash() op

In ticket [perl #42352], Paul Cochrane noted that src/ops/pmc.ops has a todo item marked 'XXX' which lacks an explanation of what the problem is.

[perl #42359] [PATCH] Assorted cleanups - part III (Intel C++)

Steve Peters submitted a patch in ticket [perl #42359]. This cleans up some warnings when compiling Parrot with Intel C++. chromatic got some warnings when running the patch. He made some changes to the patch and sent it in. Steve said he would need to look into it further.

[perl #42360] [TODO]: Unit tests for Parrot::Revision

In ticket [perl #42360], James Keenan reported that lib/Parrot/Revision.pm has no unit tests.

[perl #42362] [TODO]: Unit tests for modules used during configuration

James Keenan indicated that there is a considerable amount of code in the config/ tree which isn't covered by tests. He requested some unit tests in ticket [perl #42362].

[perl #42371] [TODO] check if object.can(method) in callmethodcc() op

Paul Cochrane created ticket [perl #42371] for a todo item in src/ops/objects.ops. Jonathan Worthington thought that it was unnecessary and suggested removing the comment. Allison Randal agreed.

JSON won't make test

Klaas-Jan Stol submited a patch which alters json.in to make it pass nmake test. It was committed as r18063.

[perl #42383] [TODO] imcc - if frame->s.file was allocated free it

Paul Cochrane created a number of RT tickets based upon 'todo' messages in the code source:

Parrot Bug Summary

Jerry Gay remarked that the Parrot ticket queue is growing every week; there are currently more than 500 tickets, many of them unclassified by type. He asked for volunteers to help make the queue more manageable.

In another thread, which was part of ticket [perl #41858], Mark Glines said he had taken on the task of making a reasonable set of rules for splint. He ran into several problems. Paul Cochrane tried to answer the questions as best as he could.

The great "class" variable renaming

Steve Peters has had problems with the use of 'class' as a variable name in struct_vtable. This needs to change for his compatibility work to progress further. He suggested pmc_class as an alternative. Klaas-Jan Stol remarked that he thought the word namespace should also be used carefully.

Class/Role namespace links

Jonathan Worthington began working on the association between classes and namespaces specified in PDD15. He had some questions, which Allison Randal answered.

[perl #42406] [PATCH] improper null testing in Parrot_instantiate_object

Alek Storm reported in ticket [perl #42406] that he had a patch to fix a bug in which the init vtable method override is called instead of init_pmc. After one week he wondered why no action had been taken.

[svn:parrot-pdd] r18096 - trunk/docs/pdds

A commit by Allison Randal added opcodes and methods for 'inspect' to Objects PDD.

[perl #42407] [PATCH] refactor vtable overriding, delegate.c generation

In ticket [perl #42407], Alek Storm submitted a patch which refactors and optimizes methods involved in vtable overriding.

[perl #42411] [PARTIALPATCH] Building a 32bit parrot on freebsd under amd64 fails.

Joshua Isom created ticket [perl #42411] to submit a patch which allows Parrot to be configured for 32-bits on a 64-bit machine. This does not completely fix the problem.

[perl #42412] Configure.pl things =no is true

Joshua Isom thought that configure should treat --foo=no is false instead of true. He reported this in ticket [perl #42412].

Severe error

Christian Aperghis-Tramoni reported an error he saw when compiling Parrot on Linux.

call for help: pdd15 implementation

Jerry Gay highlighted the implementation of PDD 15 as a key goal for the 0.4.11 release (which has since taken place). He suggested that people could help by reviewing docs/code/tests.

modifying classes after they're instantiated

Allison Randal began by remarking that Jonathan Worthington had raised the question of the strategy for safely changing classes which already have instantiated objects. She offered a few alternatives. Both Leopold Toetsch and Allison thought her fourth suggestion was the best one. Alek Storm liked it too, but had another option.

There was some further discussion about the best implementation, with Bob Rogers also joining in.

[perl #42427] [CAGE] cleanup perlcritic errors

Jerry Gay noted that many tests fail in t/codingstd/perlcritic.t. In ticket [perl #42427] he expressed his hope that these things could be addressed before the next release.

[perl #42429] [BUG]: docs/submission.pod: Confusing use of term 'test'

James Keenan reported that he found instances of the word 'test' confusing in docs/submission.pod. He asked for clarification in ticket [perl #42429].

[perl #42430] [PATCH] make :vtable imply :method

Alek Storm created ticket [perl #42430]. This contained a patch which makes the :vtable sub pragma imply the :method pragma. What followed was a long discussion on why someone might want to set :vtable without setting :method. Alek, chromatic, and Allison Randal contributed to this deeply nested thread.

[ANNOUNCE] Hackathon Toronto, Saturday April 28

James Keenan announced a spur-of-the moment hackathon in Toronto. It was held on Saturday, April 28th.

[Proposed PATCH] Change libparrot Names and Locations

Ron Blaschke proposed a patch to change the libparrot names and locations for Windows, which he included in his message. Jerry Gay added his comments, and noted that it is nice if tests are included. There was some further discussion on how to improve the patch.

Limiting Exported Symbols on GCC

Ron Blaschke kicked off this thread by wondering if there was a feature to limit exported symbols with GCC. Steve Peters was concerned about adding GCC features to Parrot, as this could break compatibility with other compilers.

Nicholas Clark remarked that Perl 5 has been successful with using flag data in embed.fnc and generating annotated headers automatically. Jerry Gay agreed with Nicholas and suggested that if a function isn't meant for public consumption, it shouldn't be available. Joshua Isom suggested that people can use whatever functions they want, but if they aren't documented, they are likely to be broken in future releases.

Joshua Isom was concerned that it had been a long time since there had been failure-free smokes, and people were becoming accustomed to test failures.

Joshua Hoblitt and nahoo82 also contributed to the thread.

[perl #42474] [PATCH] Remove dangling enum commas

Steve Peters submitted a patch in ticket [perl #42474] which removes dangling commas in enum lists. It was applied as r18175.

[perl #42475] [PATCH] Change asm() to __asm__()

In ticket [perl #42475], Steve Peters supplied a patch to help Parrot compile with -ansi -pedantic. It was applied as r18176.

Bug Day: Saturday, 14 April 2007

Matt Diephouse announced that Saturday 14 April was a bug day to prepare for the 0.4.11 release. This release was made on 17 April.

[perl #41894] segfault happens when invoking poll op

Earlier, Jim McKim created ticket [perl #41894] to report a segmentation fault.

Will Coleda offered a patch, which Nuno Carvalho applied. Jonathan Worthington reported that the patch broke the build for Win32. He committed a correction in r18187. Joshua Isom suggested an alternative way of addressing the problem.

Compiler

request for a few Pugs parser updates

Darren Duncan asked for a few features to be added to the Pugs parser. There were three requests in total, which Darren hoped could be easily implemented by the right people.

pugs: aborting smoke tests

Moritz Lenz reported being unable to do a make smoke for the last few weeks. Larry Wall thought that the problem looked like a resource exhaustion or lockup, possibly related to embedded/tunneled Perl 5. He asked for more output, which Moritz supplied. Agent Zhang pointed to a post by chromatic which he thought might relate to the solution.

interactive pugs fails in safe mode

Wim Vanderbauwhede reported failures with interactive Pugs when PUGS_SAFEMODE is true.

Acknowledgements

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