Perl 6 summary, 11-17 Feb, 2007

kudra on 2007-02-25T14:30:27

This week on the Perl 6 mailing lists

Remember that the European Perl Hackathon will be held next weekend, from 2-4 March, 2007 in Arnhem, the Netherlands. Registration is open until Thursday, 1 March. For more information, please look at the hackathon website.

Allison Randal and Jonathan Worthington will be coordinating the Parrot/Perl 6 portion of the hackathon.

Language

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

Larry Wall made a commit to S02, S04 and S06. This change renamed leave to give and modified give to always give the final value of the innermost block. $context.give() will always give the final value of the context. Instead of repeating the context selector interface, the object is now used. Loop labels are considered sufficiently OO to allow LABEL.give within the lexical scope of the labeled statement. Additionally, feed operators were clarified; their intent is to allow parallelism with minimal sharing, along the lines of the UNIX pipe model.

Smylers thought that most people would probably want to filter an array without retaining the original array, something that Larry had labeled as 'probably impossible'. Larry replied that people probably would want the form, but that mutable data is coupled to realtime but lazy data is decoupled. He thought it might be able to make the syntax @data <== grep { $_ % 2 } <== eager @data; work, but that care would have to be taken with the identity of the container and its data.

In a later commit ('[svn:perl6-synopsis] r13583 - doc/trunk/design/syn'), Larry decided to change give back to leave, on the grounds that give can be confused with given. Some of Smyler's comments were taken into consideration in '[svn:perl6-synopsis] r13584 - doc/trunk/design/syn'.

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

A commit by Larry Wall removed the quote declarator.

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

Larry Wall's commit changed :to to be the short form for :heredoc.

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

Another commit by Larry Wall made a series of changes to S02, S04, and S12. The statement_modifier category was split in two. List comprehensions can be done with statement modifiers. Multiple dispatch is explained in terms of topological sort, and has been clarified where single semicolons are concerned. Multis with a single semicolon may be reserved in 6.0.0.

my $temperature is ro

Steve Lukas proposed a ro (read-only) declaration for variables which would prevent modification after an initial value was set at runtime. As an example of a use, he gave data fetched from from a database which is used to create reports. He also explained why he felt that the readonly trait and the VAR macro were not suitable.

TSa thought that constant did what Steve wanted. Larry Wall clarified that constant $temperature = getValue() would evaluate getValue() at compile time. Larry noted that the specified my $temperature is readonly = getValue(); would probably suit Steve's need. Smylers agreed with Larry and asked Steve some questions about Steve's proposal for readonly $-temperature. Steve replied that he had overlooked the specification Larry mentioned, and that he was willing to drop his proposal.

Larry Wall remarked that he was getting tired of writing rw context variables and that there might be forthcoming syntactic relief for rw/ro which is orthogonal to everything else. Bob Rogers suggested := or something similar to indicate that the assignment is really a definition.

Parrot Porters

Re: [perl #41478] [PATCH] add Test::More::skip()

Sam Vilain created ticket [perl #41478] to add skip to Test::More.

Allison Randal wondered why Sam had chosen to reverse the order of arguments from Test::Builder.skip Nicholas Clark remarked that Sam had used the same order as Perl 5's Test::Builder. However, he agreed with Allison that it is more legible to have the number of tests to skip first, followed by the reason.

Sam proposed to solve it with a multi-sub, which would take either a string or an int followed by a string. chromatic thought that was an appropriate way to handle the issue. Allison committed the patch, with this change, as r17010.

[perl #41485] [TODO] Add a test for svn:eol-style property

Paul Cochrane created ticket [perl #41485]. chromatic had asked in '[svn:parrot] r16940 - in trunk/languages/lua: Lua t' if there is a subversion property for line endings to keep text files consistent within the repository. The property is svn:eol-style, which should be set to 'LF' to ensure UNIX-style end-of-line characters. Paul created a test for it in t/condingstd/line_endings.t but wanted to check if all text files have the property set before committing the test.

Jerry Gay remarked that the correct setting is 'native', so that files will be saved with the line endings the platform expects. The exceptions are examples using file IO, which require 'LF'. Jerry offered to test the patch on Windows if Paul posted it.

Paul wondered if Windows users have problems editing files because of the UNIX line endings. Jonathan Worthington answered affirmatively. He thought that 'native' was also the best solution.

James E Keenan wondered if new files committed to a branch should have these subversion properties set. Jerry Gay replied that the metadata requirements are poorly documented, and that perhaps this information belonged in the coding standard PDD. This led Paul to create ticket [perl #41505] to track the cleanup of the documents.

Eventually the property patch was added to t/distro/file_metadata.t and committed in r16981.

[PATCH] languages/PIR add command line options for output of pirc.pir (Parse/PAST/PIR)

Klaas-Jan Stol created several patches this week as well, namely:

[svn:parrot-pdd] r16965 - trunk/docs/pdds/draft

Allison Randal updated PDD15 to reflect core conceptual changes to objects.

[perl #40722] [TODO] Tcl - implement [file dirname]

In response to Paul Cochrane's ticket [perl #40722], which requested that the stub routine dirname in languages/tcl/runtime/builtin/file.pir be implemented, Nuno Carvalho remarked that it had been implemented in r16967. Nuno felt that some Windows testing was needed.

[perl #41496] [TODO] config - profiling options should have their own step in config/init/defaults.pm

In ticket [perl #41496], Paul Cochrane noted that the profiling options in config/init/defaults.pm should get their own step in the configuration process.

[perl #41497] [TODO] config - profiling options are specific to gcc in config/init/defaults.pm

Paul Cochrane created ticket [perl #41497] to request that the profiling options in config/init/defaults.pm be marked as being specific to gcc.

[perl #41498] [TODO] create Makefile.PL for CPAN friendliness

In ticket [perl #41498], Jerry Gay noted that CPAN does not like Parrot's Configure.pl because it expects a Makefile.PL. He suggested adding a makefile which will convert arguments to the form expected by Configure.pl and then run Configure.pl. The ticket was resolved in r17032.

[perl #41499] [TODO] config - 32/64 bit architecture setting gcc specific

Paul Cochrane would like the architecture-settings compiler options in config/init/defaults.pm to be made generic rather than gcc-specific. The request was made in ticket [perl #41499].

[perl #41500] [TODO] config - lib directory needs to be set appropriately for 32/64 bit archs

Ticket [perl #41500] contained a request by Paul Cochrane. He wanted the lib install path in config/init/defaults.pm to be set correctly for 32- and 64-bit architectures.

Porting parrot on PDA -- work in progress

Aldo Calpini reported success at building parrot for the PocketPC. Some additional fixes are still needed, but the biggest problem is that Parrot should be used to generate .pbc files but the directory structure isn't available. Aldo asked how to proceed.

Joshua Isom replied that it should be possible to run most PIR files and pbc files, although it would be best to generate them on a platform with the same endian.

Patrick R. Michaud and Jesse Vincent congratulated Aldo on the progress to date.

The thread 'Parrot on PDA - work in progress' was a duplicate and contained one of the responses.

[perl #41502] [PATCH] fix auto::sizes configure step

Aldo Calpini created ticket [perl #41502]. It contains a patch to add a final \n to a few files. The changes are needed to port Parrot to the PocketPC, because the cegcc compiler won't output the last line unless there is a terminating newline.

PAST-pm: only PAST::Block allowed at root of PAST

Klaas-Jan Stol asked what the result was of the previous discussion on the topic of whether PAST-pm will be able to handle PIR's requirements for a top-level construction with an include statement. Patrick R. Michaud replied that he expected either a PAST::CompUnit node type or the blocktype attribute on PAST::Block to get a compunit setting.

[perl #41508] [BUG] Configure losing flags...

Will Coleda created ticket [perl #41508]. He found an error when trying to build with GMP on OSX Intel. Later he was able to supply more information, which showed that the problem was due to his expectations.

[perl #41511] Parrot_call_sub* Incompatible with Multisubs

Ticket [perl #41511] was started by chromatic. He described a problem involving the difference in layout between a Sub PMC and a MultiSub PMC. Matt Diephouse requested a sample of the code so that he could take a look at the problem. chromatic added a todo test in r17034.

Compiler

Get your Google SoC thinking caps on...

Nicholas Clark reminded people that it is time to begin thinking of good Google Summer of Code projects. Applications will be accepted in March. More information is available.

cvs-parrot

[svn:parrot] r17012 - in trunk: runtime/parrot/library/Parrot t/compilers/past-pm

A commit by Allison Randal gave the HLLCompiler the ability to add new compilation stages.

Nicholas Clark asked what would happen if someone were to add a stage with the same name as an existing stage. Allison replied that it would be added twice, as it was possible that someone might wish to repeat stages such as 'optimizetree' or 'displaybenchmarks' after each transformation.

Nicholas realized, after studying the PIR, that there is no ambiguity as to which stage is meant, as "all of them" are added. He thought that there should be a test for it. Allison added tests in r17027.

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