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 February 25, 2007
09:30 AM

Perl 6 summary, 11-17 Feb, 2007

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

04:17 AM

Perl 6 summary, 4-10 February, 2007

This week on the Perl 6 mailing lists

"> Errrr ... I'm the one who needs the tutorial, not the one to write it.

"That makes you a prime person to capture the questions it needs to answer! You can't evade the Responsibility Ponies that easily."

-- chromatic, responding to James E Keenan in 'What Skills Do We Need to Finish Parrot?'

Language

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

A commit by Larry Wall changed categories to allow multiple dispatch via the longest-token rule.

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

A commit by Larry Wall added Q// as a quoting form and removed qn//.

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

This commit by Larry Wall affected S04, S05, S06 and S12. It unified proto processing to implicitly allow re-declarations within a scope. It works on most declarators, including regex, token, rule and variables.

Multiple my declarations now issue a warning, which may be suppressed with a proto declaration of the variable. The multi keyword is optional in a proto scope, and the unique keyword "undoes" an outer proto.

recent changes

Larry Wall decided to explain what was driving the recent synopsis changes. For some time, he has been working on a Perl 6 grammar written in Perl 6; a snaphot is available. Audrey Tang noted that Pugs can parse it, but it still needs to be made to run, and run fast.

Parrot Porters

[PATCH] Update pirgrammar.pod

Klaas-Jan Stol submitted a patch with an updated version of pirgrammar.pod and pirgrammar.html which contains examples for most constructs. The documents are still being worked on.

Later, in '[PATCH] update pirgrammar.pod (replaces patch 2/4/2007)', he submitted an updated version.

These triggered some discussion in the thread '[PATCH] Updates for languages/PIR/docs/pirgrammar.pod'.

Q on Calling conventions; parameter order

Klaas-Jan Stol remarked that some Parrot calling conventions are unclear. He made a list of the order in which checks are done, as far as he can tell, and asked if it was correct and if cases were missing.

What Skills Do We Need to Finish Parrot?

Last week, James E Keenan asked what code remains to be written in Parrot. Allison Randal replied that IO, Events, Threads, Compiler tools interface, Object support and Exceptions need the most work. James then asked about resources for learning PIR. chromatic offered suggestions.

This week, Allison Randal replied that to date, she hadn't been able to get the relevant sections of "Parrot Essentials" released, and proposed that James create a PIR tutorial. She suggested docs/imcc/syntax.pod as an introduction. Klaas-Jan Stol mentioned that he'd been working on languages/PIR/docs/pirgrammar.pod.

James said that he needed a tutorial, and therefore wasn't suited to write one. chromatic disagreed, stating that inexperience left James in the perfect position to know what questions needed to be answered. Joshua Isom seconded, suggesting that James could start a FAQ by creating at least the questions. Bernhard Schmalhofer suggested adding questions to docs/imcc/imcfaq.pod.

It turned out that Dzema Dmitriy is working on a PIR tutorial to accompany a PIR bundle for Texmate.

[perl #41453] [BUG] Test failure in t/pmc/object-meths.t

In ticket [perl #41453], James Keenan reported a failure with a text in t/pmc/object-meths.t. Allison Randal identified it as stemming from r16783, and thought that o = new 'MyClass', $P0 should call init_pmc rather than init, even if $P0 is null. She asked Leopold Toetsch if the choice between init and init_pmc should be based upon the content of the argument. Leopold replied that that was not his intention; there should be just one init :vtable which is called, according to PDD03 calling conventions.

Allison summarized the situation as a feature request which had been submitted as a failing test. She changed the test to reflect the current situation (r17026) and submitted the feature request in ticket [perl #41528].

Prototype object model for Parrot

Allison Randal worked with Sam Vilain on a prototype object model written in PIR. She checked it in to compilers/smop. The next step is to implement the prototype at the PMC level, and incorporate much of the functionality of src/objects.c.

Kevin Te replied that he had just started to port Class::MOP to PMCs, and would be glad to help with this port as well.

[perl #41454] [PATCH] add 2 new tests for object method dispatch

Sam Vilain noted, in ticket [perl #41454], that inherited method dispatch was only tested with a simple parent/child class. In his attached patch, there are tests for three classes in a straight line, as well as a 4-class diamond inheritance.

[perl #41455] [NEW] and [PATCH]: tools/build/ops2pm.pl refactored

James Keenan submitted ticket [perl #41455]. It contained several patches, for test files and related libraries. They were added to the trunk as r17061 after passing on Darwin and Win32. Later they were confirmed to also work on Linux.

[perl #41456] [PATCH] add a Super PMC test for addparent-established inheritance trees

In ticket [perl #41456], Sam Vilain submitted a test which checks that if an inheritance tree is created with addparent, it performs just like one made with subclass.

[PATCH] Updates for languages/PIR/docs/pirgrammar.pod

Klaas-Jan Stol submitted a patch for pirgrammar.pod and pirgrammar.html in '[PATCH] Update pirgrammar.pod'.

chromatic remarked that he did not like keeping HTML in the repository, and wondered if it could be automatically generated because, unlike other generated files, it does not require flex and bison to produce it.

Klaas-Jan wondered if pod2html was available for all platforms where Perl can run. He thought it could be incorporated in the make procedure if that were the case. chromatic replied that it had been core since at least 5.8.0.

Re: Porting parrot on PDA

Hakim Cassimally replied to [Aldo Calpini's post]{http://thread.gmane.org/gmane.comp.lang.perl.perl6.internals/10966) and expressed an interest in porting to the Nokia N800.

Jerry Gay replied that he'd love to see Parrot ported to the N800 and suggested a way to start on it.

[PATCH] Updates and fixes for docs/imcc/syntax.pod

Klaas-Jan Stol submitted a number of patches for languages/PIR and docs/imcc/syntax.pod:

One patch, '[PATCH] Update pirgrammar.pod', also sparked some discussion.

[perl #40706] [TODO] Tcl - implement [close]

Earlier, Paul Cochrane submitted ticket [perl #40706] where he noted that languages/tcl/src/builtin/close.pir is only a stub.. Nuno Carvalho reported that a first implementation had been committed in r16933. There is still some discussion on how to best implement it for Tcl.

Users

Pugs on Windows

Gabor Szabo reported a 404 error when attempting to download a Win32 binary of Pugs and Parrot. Audrey Tang suggested a different URL. David Vergin noted that the page Audrey offered linked to a build from November 2006 and asked if there was a newer build available.

"delete" and maybe a problem with gather

Gilbert R. Röhrbein wanted to reorder an array so that the elements are randomly ordered. He noted a problem with delete which he wasn't able to describe, except for stating that it was linked to gather. The code was included.

Compiler

dpkg-buildpacke fails due to outdated 10smoke patch

Moritz Lenz reported that the current (r15185) revision of Pugs fails to compile on Debian when dpkg-buildpackage is used because the '10smoke' patch cannot be applied.

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

Saturday February 24, 2007
09:38 AM

Perl 6 summary, 29 Jan - 3 Feb, 2007

This week on the Perl 6 mailing lists

": This mornings up date proposed

"Now the da rn spam fi1ters are chang.ng my spelling to look like sp*m. Yeah, that's the 4icket... :)"

-- Larry Wall, in 'Enhancing array indices'

Language

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

A commit from Larry Wall reorganized S03. This led Nicholas Clark to comment that the sequencing operator is not defined. He had a few other notes about the commit. John Macdonald responded to Nicholas's question "Is it defined that $a + $b evaluates the arguments in any particular order?" by stating that in C, it is deliberately left undefined to allow the code generator more flexibility. Aaron Crane also spoke up, further explaining how C functions.

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

In this commit, Larry Wall clarified gather and take. Gaal Yahas wanted to know what it means for take to be evaluated in void context. He included some example code and asked what the result would be.

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

Larry Wall applied some clarifications which were suggested by Gaal Yahas. Gaal, however, had some more questions. This concerned gather in S04. These were addressed in Larry's next commit.

Typology of auto*crement

Larry Wall replied to a comment by TSa in another thread, wherein TSa wondered if ++ and -- coerce Nums to Ints. Larry stated that since a Str remains a Str in a similar situation, the Num should also retain its type. One exception that he could see would be that incrementing an Undef would create an Int.

In thread 'Int-to-Num autocoercion', Larry expanded on how coercions are handled in functions. He said that Num to Int autocoercion is an explicit exception which is expected by Perl 5 programmers, and Str to Num (and the inverse) are also done automatically at times. Larry further explained that there had been numerous discussions on the subject, and the general feeling is that exotic types should not autocoerce unless a multi has been declared to handle the situation.

TSa made a reference to the long-running 'Numeric Semantics' to discuss how auto-coercion would work with floor. Darren Duncan replied that a floor would return an Int by definition, so that it would in fact be a way of explicitly converting.

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

Larry Wall made a commit which disabled negative subscript 'dwimmery' for shaped arrays, which can now take + and - operators. He then wondered if a multidimensional Whatever (**) would mean the same thing in "whatever" dimensions.

David Green noted that the subject of ordinals had come up some time ago, and quoted a message from Larry dating back to 2004. He added his thoughts to the subject as well.

Blair Sutton felt that Perl 6 should stick with 0 as the first element of a list to avoid alienating programmers from most other languages. He thought that it could be adjusted by a user-defined Parrot grammar for those who didn't like the traditional starting value, although he had personally never required that feature.

Smylers was of the opinion that a pragma is overkill, and a global variable would be sufficient. Jonathan Scott Duff responded that a pragma would be useful to Pascal or Fortran programmers, and therefore it would be handy to have a pragma. Rafael Garcia-Suarez added that $[ is a pragma in Perl 5.

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

Larry Wall made a commit concerning *+ versus *- in subscripts. TSa replied that the distinction between the cases would be that they dispatch to different functions: * to postcircumfix, *+ to infix:<+> and *- to infix:<->. TSa asked some questions based upon this observation.

Larry responded that he did not want Whatever to package the array. He felt that in TSa's example, it would be necessary to dispatch to Whatever and let the Whatever code extract relevant information relating to *. TSa requested further information.

Enhancing array indices

Jonathan Lang wondered if it would be possible to get a single-character symbol which could be used in an array index to refer to its shape, for example something like @x[*.head]. Larry Wall replied that a recent suggestion was to use a syntax like @x[*+0]. There was further discussion on syntax possibilities, with Jonathan, Darren Duncan and TSa joining the thread. Darren proposed getting rid of negative subscripts and using only terms like @foo[*.head], which he felt had the advantage of being more consistent (for shaped and unshaped arrays), and easier to learn.

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

Although he admitted that the month of Nob is cute, Larry Wall nevertheless changed S01's last modified date to Nov. In a followup commit, Larry changed the date to Jan.

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

Larry Wall made a commit to allow colon pair syntax for a method-like sort of filetest. Smylers liked the changes, but was concerned about filename.TEST because there are only so many permutations of the word available for testing frameworks. Larry listed a host of other possible names, and was leaning toward STATUS.

Parrot Porters

[perl #41364] [PATCH] Fixed object vtable method overrides in PIR

Alek Storm submitted a patch as ticket [perl #41364]. The patch allows object vtable method overrides for a number routines, such as find_method and get_attr. He also wondered if the double-underscore method of overriding could be deprecated now that there is the :vtable flag. Patrick R. Michaud responded that the deprecation cannot take place until ticket [perl #40626] is resolved.

[PATCH] PDD22 spec notes and ParrotIO tests

Jerry Gay mentioned that he had written tests for the ParrotIO object, which he included as a patch. He also had some questions about PDD 22. Allison Randal answered the questions.

Porting parrot on PDA

Aldo Calpini wrote of an interest in porting Parrot to the PocketPC. CeGCC is a Windows port of gcc which produces ARM executable code. The first attempt at porting went well. A report of the procedure was included in the post.

[perl #41371] [TODO] review parrot roles & responsibilies doc before next release

In ticket [perl #41371], Jerry Gay noted that in r16834 he had committed docs/roles_responsibilities.pod. He asked project members to review it before the 0.4.9 release.

[perl #41373] Need test for Clone of HLL info

Will Coleda created ticket [perl #41373] to request a test to replace the ones marked 'todo' which relied on Perl 5 PMCs.

[perl #41374] test MMD with non-perl PMCs

Ticket [perl #41374], initiated by Will Coleda, requested tests for MMD which don't rely on Perl PMCs.

Language Testing

Klaas-Jan Stol remarked that he was trying to set up a test harness for PIR. It appeared that the module PIR.pm was not used, and he was unable to find documents on how to set it up. He offered to patch the compiler FAQ once someone explains it to him.

Will Coleda explained that the problem was with the name of the language, with 'PIR' being reserved for internal testing. Therefore either lib/Parrot/Test.pm would require modification, or the language should be renamed, for instance to 'PIR_PGE'. With Will's advice Klaas-Jan was able to get it working.

[PATCH] Updates for languages/PIR

Klaas-Jan Stol submitted a patch to improve PIR. It includes a test suite, and corrections to several other files. Later, in '[PATCH] languages/PIR tests', and '[PATCH] languages/PIR more testing and fixing', he posted additional tests and corrections. Later there was also '[PATCH] PIR updates', which was applied as r16892.

What Skills Do We Need to Finish Parrot?

James E Keenan asked some questions with the intention of determining what part of Parrot he should focus on and try to encourage others to look at. He asked what code remains to be written before an alpha release can be made, and what skills are needed to produce that code.

Allison Randal replied that the systems needing the most work are: IO, Events, Threads, Compiler tools interface, Object support, and Exceptions. She felt people with C skills are useful, as are people with general experience in dynamic languages.

James then asked what the learning curve is for PIR. chromatic answered that the 'Parrot Essentials' book is still useful, although it is missing some of the more advanced features. He thought that it might be worth asking O'Reilly if the tutorial section could be expanded into public documentation, as there's currently no tutorial on PIR.

[perl #41380] [PATCH]: docs/roles_responsibilities.pod: Minor grammatical corrections

James Keenan submitted a patch to the roles and responsibilities file. It corrected punctuation errors and was applied as r16850. The patch was ticket [perl #41380].

On PASM and PIR registers

Klaas-Jan Stol wondered if PASM registers are still needed, except for backwards compatibility, now that there are PIR registers. Leopold Toetsch replied that PASM registers are physically allocated in the Parrot virtual machine, whereas PIR registers are virtual registers. Both types are needed.

[perl #41386] MANIFEST must die.

Will Coleda created ticket [perl #41386] to express his opinion that MANIFEST should not be part of the repository. He pointed out that the purpose of this file is to make sure that the general release isn't missing any files, something you already know to be true when you are working with a repository. He suggested creating it when the release is generated.

Allison Randal disagreed. She believes that the purpose of a MANIFEST is to tell you which files should be included in a distribution. She thought MANIFEST.skip, on the other hand, could be generated from the svn:ignore keyword before the distribution is created.

[perl #41387] perlcritic.t picking up non-perl files

In ticket [perl #41387], Paul Cochrane reported that the new Parrot::Distribution module was finding some files which weren't actually Perl language files. This was later resolved by chromatic in r17069.

[perl #41388] Parrot::Distribution doesn't exclude all external perl modules

In ticket [perl #41388], Paul Cochrane reported that the new Parrot::Distribution module is not exempting external Perl modules such as Pod::Simple from its coding standards check.

PBC to C Converter

chromatic included a quick Perl program which writes a C program which makes a self-contained executable for a Parrot program. He thought that it was fairly cross-platform compatible, although there could be an issue with big-endian processors.

PMC Tools Test Failure

chromatic reported a failure with the buildtools tests following a make realclean and a Configure. James E Keenan responded that he's experienced it infrequently and thinks that it is a poorly-designed test rather than a real failure. There was a brief discussion on how to improve the test, with James suggesting that perhaps someone who was involved with the original development of pmc2c.pl could explain what is happening in the DO_A_DUMP loop.

Q on PIR vs PASM

Klaas-Jan Stol gave a brief history of how IMCC started, noting that it was eventually merged with Parrot as its parser, and since that time there have been several additions. He wondered if it is still the case that every PIR construct also has a PASM form, and if every PIR construct can be directly translated to PASM. Allison Randal replied that that was the ideal situation, but in practice many tests are written in PIR, so there may not be complete coverage for the PASM syntax versions.

[PATCH] Update copyright for Parrot --version

A patch by Klaas-Jan Stol contains a correction to make parrot --version give a copyright range of '2001-2007' instead of '2001-2006'.

Copyright chang script and test

Klaas-Jan Stol submitted a script which checks all files for the last changed date and updates the copyright notice in the file. The second is a test which finds files which have out-of-date copyright notices. chromatic replied that he had a couple of ideas for the script and would take a look at them soon.

Users

take()'s return value

Gabriele Renzi wanted to know why take inside of a gather structure returns undef instead of a return value. Carl Mäsak had been wondering the same thing. Larry Wall couldn't remember why it hadn't been added to the specification, and put it in S04.

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

Friday February 23, 2007
11:19 AM

Too busy for summaries at the moment

As has probably been observed by the fact that I'm 4 weeks (with today's posting down to 3 weeks, but soon to reach 4 weeks again) behind on Perl 6 summaries, I've been rather busy lately. The summaries have sort of fallen to the end of a long list of things I'm working on.

It started with an unexpected trip I had to make to Seattle at the end of January. Then I was sick for a week, and I recently got back from a vacation to Iceland.

Current and recent projects include:

Also I have some large personal questions facing me, such as whether I should attend graduate school in the autumn or not.

I expect all this to keep me busy until mid-March at least, and then it'll be time to do my taxes. This probably means that I'll be pretty unavailable until April at least. Maybe I'll see some of you at the hackathon--you can still register until Thursday.

10:43 AM

Perl 6 summary, 21-28 January, 2007

This week on the Perl 6 mailing lists

"Take the longest token, lie down and if the unease persists, write some code..."

-- Brad Bowman, in 'DFA/NFA context is non-local'

perl6-language

RAII in Perl6/Parrot

Previously on this thread, Blair Sutton asked if Perl 6 would be able to do RAII. He cited some articles which expressed the view that it was not possible in Python due to the fact that garbage collection does not offer deterministic finalization. This led to the question of whether Perl 6 would suffer from the same problem due to Parrot's style of garbage collection.

Larry Wall replied that deterministic reference counting was only one way to provide transactional security and timely destruction. He assured Blair that Perl 6 has ways to let you not care about some dependencies, while paying attention to others.

Blair appreciated Larry's explanation, and admitted to relying on the deterministic nature of C++, and using RAII to manage locks between threads and tear apart sockets cleanly. He asked for an example of Perl 6 offering the capability to execute code once every reference to an object has been removed. Luke Palmer replied that the LEAVE closure trait was a general method for addressing this.

This week, Blair posted a script in Perl 5 with a multi-threaded RAII idiom. Blair asked if the LEAVE closure trait takes the previous role of P5's DESTROY or if it will always be executed when one falls out of scope.

Numeric Semantics

Last week, the subthread was further expanded, with TSa suggesting that all rounding functions such as floor, round and trunc take an optional second argument which defines the jump size. TSa also proposed a number of division function pairs, such as fdiv and fmod for flooring division and modulus, or tdiv and tmod for truncating division and modulus. Smylers felt that this would introduce far too many functions in to the Perl core, given that few people would use them. Smylers felt that it was more appropriate to have them as modules. Jonathan Lang added that it was unlikely anyone would need multiple definitions of division and modulus at any given time, so modules made sense. The only question he saw was which definition was default, the mathematically elegant one or the industry standard one.

The main thread was revived when TSa replied to Luke Palmer's question of whether 1 is different from 1.0. TSa wanted 1 to be an Int and 1.0 to be a Num. There was some discussion with Jonathan Lang over the relationship between Int and Num, specifically which one does the other.

This week, Larry Wall put his foot down and stated that the default / operator is not going to do integer division and that this is not negotiable. Later in the thread, Larry said that for various practical reasons, he didn't think that Int can be treated as a subset of Num. He agreed that 1.0 == 1 !=== 1.0.

Larry's messages generated praise from Smylers, but TSa was not satisfied. However, he did not receive a noteworthy response this week.

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

This commit message by Larry Wall logged the following: "Tweak | to provide longest-token instead of short-circuit semantics. Now use || for old short-circuit semantics!" In a follow-up message, Larry elaborated:

This checking majorly changes the semantics of | within regex to support required longest-token matching semantics rather than left-to-right matching. It will enable us to write parsers more consistently, and it also opens up normal regexes to better optimization via tries and such. You can now use || for the old | semantics, which is majorly consistent with how | and || work outside of regexen.

Patrick Michaud asked if a similar situation would arise for & versus &&. Larry answered that, for reasons of consistency, that would indeed be the case.

The S13 "is commutative" trait

After reading that binary operators may be declared as commutative, Dave Whipp asked if this is restricted to only binary operators, or if he could tag any function/method with the trait. After a brief discussion, Larry replied that he had decided "is commutative" must die of ill-definedness. See instead the recent S13 change to support multiple signatures on a single body.

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

This commit, by Larry Wall, changes how regular expressions are analyzed. They are seen as pattern/action pairs and grammars as collections of those pairs. In addition 'token' is defined more rigorously.

Remember: Outlaw to declare a lexical twice in the same scope

Steve Lukas reminded people of a proposal from September which involved a change on S04 and linked to an earlier edition of this summary to describe the conclusions which had been reached. He requested that the changes be made. Carl Mäsak added that he also considered this to be an important issue. He wanted to see a warning when a lexical is declared twice in the same scope.

Dave Mitchell and Smylers clarified how it works in Perl 5 (it's possible, but generates a warning).

DFA/NFA context is non-local

Brad Bowman expressed his concern about the context dependence of DFA prefix mode. He felt this might be because he hadn't yet digested the new rules completely.

Smooth or Chunky?

Larry Wall asked for some advice with a missing generalization that he hadn't been able to work out yet. Given that zip and each produce similar results, he wondered what is the use of two functions which do almost the same thing. This led him to believe that zip should return something different and let the context determine whether the result should be flattened. This led to musings on a default smooth and an optional chunky, and a question on whether chunky should be the default when it makes more sense. He suggested various options.

Darren Duncan thought that the Perl 5 approach of default 'smooth' with optional 'chunking' was appropriate. As an example he offered the smooth map { $_, $_ * 10 }, 1..3 versus map {[$_, $_ * 10]}, 1..3. Larry replied that this was one function where the approach was possible, but that Perl 5 has many places where it fails to scale well to a multi-programmer team.

Ruud H.G. van Tol believed that it looked like a 'multiple faces' domain. He sees the dimensionally structured data as a living entity which should give different representations depending upon the requirements. As an example, he cited a meal, a recipe and a shopping list, adding that his preference was for the shopping list to be ordered by where things are found in the store. Brad Bowman suggested that the dimensional information should be retained, but that it might not need to be returned.

Ben Morrow proposed [[]] as a nice visual way to indicate that a list should be built. Blair Sutton listed several possible syntax options. Austin Frank joined in, offering the outverse of [;], namely ];[.

Map on a multislice

Joe Gottman wanted to know if map on a multislice performs deep or shallow iteration. He wanted to know what the default iteration level was and how to override it. Dr. Ruud added that there's also the option of depth first or width first.

perl6-internals

[perl #41185] [BUG]: examples/shootout/regexdna.pir.input: Persistently failing test

Earlier, in ticket [perl #41185], James Keenan reported a problem with a failing test in shootout.t on Mac OSX.

This week he reported that tests had passed for several weeks, but had recently started to fail again. He included the output of make test. As of February 6th, the test was still failing on Darwin.

Re: [perl #41230] [BUG] t/codingstd/perlcritic.t uses too many resources

Earlier, Jerry Gay complained that the perlcritic coding standards test was using resources, and asked in ticket [perl #41230] if someone could look in to this problem. Paul Cochrane reported that he thought there was a memory issue relating to critique() and that the memory was only freed up when the tests for a given policy are complete. Paul elaborated on what what he had attempted to address the issue.

This week Jerry Gay congratulated Jeffrey Thalhammer on version 1.01 of Perl::Critic, which solved the memory issue.

[perl #41267] [TODO] rename 'clip' pdd directory to 'draft'

In ticket [perl #41267], Jerry Gay announced that the clip directory had been renamed to draft.

[perl #41280] [PDD] adding methods to subs as objects

In ticket [perl #41280], Allison Randal quoted Patrick Michaud from IRC. Patrick explained that Larry Wall's most recent change to S05 would require adding the ability to attach methods to subs.

[perl #32667] [PATCH] IMCC - documentation needs updating

Bram Geron included a patch in ticket [perl #32667] which adds new syntax to docs/imcc/syntax.pod and fixes some typos. It also references where flags are explained. It was applied as r16678.

More embedding questions

Isaac Freeman explained that he needs an embedding interface which allows more control over the interpreter and cited some examples of control he required. He asked specifically about the ability to inspect and modify namespaces. chromatic pointed him to PDD 21, which is not completely implemented.

repository open for commits

Jerry Gay announced that the repository was now open for commits again, following the recent Parrot release.

[perl #41287] [PATCH] fix 0.4.8 announcement on parrotcode.org

Allison Randal created a ticket ([perl #41287]) with a patch to fix typos in the release announcement for 0.4.8. Will Coleda applied it.

[perl #41291] [BUG} Can't use null PMC with :multi sub

In ticket [perl #41291], Matt Diephouse included an example piece of code demonstrating the problem. Leopold Toetsch noted that a NULL PMC was never actually specced, but that he did consider it like a NULL pointer in C. He felt it was debatable whether the use Matt demonstrated should be allowed.

[perl #41292] [PATCH] make languages/cola/{lexer,parser}.c comply with coding standards

In ticket [perl #41292], James Bence submitted a patch to make the test t/codingstd/trailing_space.t pass. He felt it would be best to make a utility program which would eliminate trailing spaces.

Paul Cochrane asked which version of Parrot James was using, as the files involved should be marked as exempt because they are automatically generated. In r16702 the tests pass even without the patch.

Tcl, trace, profiling...

Will Coleda announced that he had two issues with the new Tcl implementation: speed and the implementation of trace. After noting that there is a way to set traces for Parrot subroutines, he requested the ability to declare hooks to call pre- and post sub invocations. Ideally these could be declared at compile time. He offered to write more complete specifications if the idea was interesting to others.

Allison Randal offered a few comments and requested the detailed proposal. Jerry Gay advised looking at Perl 5's Hook::LexWrap. Klaas-Jan Stol offered a suggestion which would leave the original subroutine untouched.

[perl #41293] [BUG]: t/compilers/tge/basic.t: Failed during 'make test' but passed with 'prove'

James Keenan reported a failing make test. This was ticket [perl #41293].

How handle the next parameter of invoke method in a PMC ?

François Perrad stated that in Lua, a metamethod __call is required. He included some code demonstrating what he would like to do, and noted that the code and some todo tests had been added.

[perl #41310] [CAGE] autogenerated PMC stubs kill compile

Allison Randal created ticket [perl #41310]. She reported that PMC stubs which are generated with tools/dev/gen_class.pl terminate the compilation the first time miniparrot is run because the new stub overrides the namespace method. She suggested ways in which this might be solved.

[perl #41312] [TODO] - Docs - update FAQ

In ticket [perl #41312], Will Coleda pointed out several outdated facets of the FAQ and requested that they be fixed.

[perl #41317] [PATCH] parrot component/interface stability classification

In ticket [perl #41317], Jerry Gay included a patch of a document classifying Parrot component and interface stability. He requested comments. Allison Randal approved of the document.

[perl #41320] [PATCH] Added rename() method to os.pmc

Ticket [perl #41320] contained Kay-Uwe Huell's patch with a rename function. It was applied as r16771.

[perl #41323] [CAGE] convert C<theINTERP> to C<interp>

Jerry Gay made a ticket ([perl #41323]) where he noted that any instances of theINTERP should be spelled as interp. Nuno Carvalho submitted a patch, which was applied as r16789. Jerry Gay was able to confirm that it worked for Win32 in addition to Linux.

[perl #41324] [PATCH] Eliminate '//'-style comments

Andy Dougherty submitted a patch to remove // comments, which were giving problems with his compiler. See ticket [perl #41324] for more information.

[perl #41325] [PATCH] Fill in missing pointer cast in

Andy Dougherty submitted a patch to allow Parrot to compile on his old Sun C compiler. He put it in ticket [perl #41325].

[perl #41326] [PATCH] Work around an optimization bug in Sun's WorkShop Compilers 4.2

In ticket [perl #41326], Andy Dougherty submitted a patch to work around an obscure bug in Sun's WorkShop Compilers 4.2.

[perl #41328] [BUG] pmc2c generates unnecessary code for void functions

Jerry Gay reported some warnings when compiling src/pmc/pmethod.c in ticket [perl #41328]. James Keenan explained the origin of the code in question, and advised moving the code to a branch until tests prove it suitable for trunk.

[perl #41329] [BUG]: Imposition of coding standards breaks tests in t/tools/pmc2cutils/

James Keenan noted, in ticket [perl #41329], that coding standards tests break some tests in t/tools/pmc2cutils. He believed that it happened in r16751, when code was changed to conform with the standards but wasn't run against the tests and submitted a patch to correct the problem. Paul Cochrane explained that he had run the tests, but that he hadn't done enough, and apologized.

[perl #41331] Imposition of coding standards breaks tests in tcl.

In ticket [perl #41331], Will Coleda referenced an earlier thread ([perl #41329] [BUG]: Imposition of coding standards breaks tests in t/tools/pmc2cutils/ ) which mentioned that some tests failed as a result of coding standards being applied. Several Tcl tests were failing. They were fixed by r16774.

__init vs. __init_pmc

Leopold Toetsch noted that some changes not too long before the release had broken pg.t. He found the problem in the object constructor, and mentioned that he'd made several attempts to unify object construction but that it wasn't very successful.

Matt Diephouse explained that he had made the change with Allison Randal's approval, to eliminate differences between PMCs and objects. Leopold replied that he thought the differences were confusing but that they still were. He linked to his proposal for method calling.

[PATCH] PIR language using PGE (2)

Klaas-Jan Stol submitted a patch for PIR using PGE. Jerry Gay applied it (with minor changes) as of r16831.

[perl #41353] [PATCH] Extended very limited PIO_unix_pipe() function in src/io/io_unix.c

Kay-Uwe Huell created ticket [perl #41353]. Included was a patch to extend the open function.

perl6-compiler

Parrot 0.4.8 Released

Jerry Gay announced the release of Parrot 0.4.8, "Eponymous".

Jarkko Hietaniemi questioned whether there was in fact extended support for Tru64, as he had only reported problems for subsystems like PGE. chromatic offered Jarkko commit access, but Jarkko declined.

Matt Diephouse volunteered to work on Tru64 if someone could give him access to a system. Nicholas Clark replied that HP gave access to a number of test systems, but not Tru64. Jarkko grumbled about HP's restriction. Unfortunately he was not able to provide a developer with Tru64 access. He thought that perhaps development on any 64-bit platform would already improve Parrot.

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

Wednesday February 07, 2007
04:20 PM

European Hackathon News

European Hackathon News, volume 1

REGISTRATION
This is a reminder that the deadline for accommodations for the hackathon is fast approaching. If you want a room reservation, you must register for the hackathon and either pay online or contact Ann about paying later. The deadline is Friday, 9 February. For more information about the rooms, please refer to: http://conferences.yapceurope.org/hack2007nl/venue.html#accommodations

If you prefer to make alternate arrangements for your accommodation, but wish to attend the hackathon, you still need to register before Thursday, 22 February. There is no cost for this registration. If you have special requests, such as vegetarian food, please contact Ann at the time of registration.

To register, you first need to log in by either using an existing Act profile or creating a new user. Registration will be limited to the first 30 people.

PROJECTS
Since the initial announcement, two additional projects have joined the Parrot/Perl 6 track (hosted by Allison Randal and Jonathan Worthington):

  • Mark Overmeer will host a track on CPAN6.
  • Philippe Bruhat will coordinate Act development. This is an excellent opportunity to address any complaints you may have with the hackathon registration system ;)

CONTACT INFORMATION
Ann Barcomb, kudra -at- domaintje.com
Use the subject 'hackathon' and resend if you do not get a response within 48 hours.

Wednesday January 31, 2007
01:46 PM

European Perl Hackathon

You are invited to attend the European Perl Hackathon in Arnhem, the Netherlands, from 2 - 4 March, 2007. Familiarity with the featured projects is not required; you need only bring a laptop and a willingness to join in.

Although there is no fee to attend the hackathon, you are required to pay for your own accommodation and transportation. However, it is possible to book a room at the venue location when you register for the hackathon, at the price of 74 for two nights plus breakfast.

Space is limited to 30 participants, and registration is required. Reservations for accommodations made through the hackathon must be made by 9 February; reservations for the event itself must be made no later than 22 February.

For more information about the event, please refer to http://conferences.yapceurope.org/hack2007nl

Sunday January 21, 2007
03:01 PM

Perl 6 summary, 14-20 January, 2007

This week on the Perl 6 mailing lists

"For the first time in the two months I've been working on Parrot, 'make test' completely succeeded -- and with some TODO tests passing, to boot!"

-- James Keenan, sharing the good news in 'All tests passing!'

Language

Numeric Semantics

When we last looked at this thread, a subthread discussing Euclidean versus conventional definitions of modulus was underway. The original thread started when Luke Palmer asked for a clear definition of when math should use floating points and when it should be integer-based.

The subthread was further expanded, with TSa suggesting that all rounding functions such as floor, round and trunc take an optional second argument which defines the jump size. TSa also proposed a number of division function pairs, such as fdiv and fmod for flooring division and modulus, or tdiv and tmod for truncating division and modulus. Smylers felt that this would introduce far too many functions in to the Perl core, given that few people would use them. Smylers felt that it was more appropriate to have them as modules. Jonathan Lang added that it was unlikely anyone would need multiple definitions of division and modulus at any given time, so modules made sense. The only question he saw was which definition was default, the mathematically elegant one or the industry standard one.

Meanwhile, the main thread was revived when TSa replied to Luke Palmer's question of whether 1 is different from 1.0. TSa wanted 1 to be an Int and 1.0 to be a Num. There was some discussion with Jonathan Lang over the relationship between Int and Num, specifically which one does the other.

Parrot Porters

[perl #41237] [TODO] PMC Class name IDs will require a dot in front

Earlier, Jerry Gay created ticket [perl #41237] to address an item in DEPRECATED.pod about PMC Class name IDs. He felt that either it should use one syntax or the other, but not both.

Allison Randal preferred eliminating the dot in classname IDs. Matt Diephouse, on the other hand, liked the dot. Klaas-Jan Stol added that the dot indicates that it is PIR not pure PASM.

Allison thought that if Matt used it to disambiguate between types and local variables, it was a matter of sigils. She asked why put sigils on types instead of putting them in variables, and if a dot was the ideal sigil for types.

Patrick R. Michaud also spoke out in favor of the dot.

Global Variables in tools/build/ops2pm.pl: What is their rationale? Could they be refactored?

James Keenan wondered if he should look at refactoring tools/build/ops2pm.pl. Following his successful refactor of pmc2c.pl, he has had requests to look at other build tools. His primary suggestion was to eliminate global variables, but first he hoped to hear suggestions from people who had worked on the file, in case there was a reason for the global variables.

Jerry Gay felt that the global variables were a result of lax coding practices early in the project. He agreed with refactoring.

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

Allison Randal added specifications for the I/O object iterator API, which closed ticket [perl #33962].

[perl #41263] [PDD] should/can high-level classes be constructed at compile-time?

In ticket [perl #41263], Allison Randal split out part of the problem described in ticket [perl #40443]. The issue is that classes are only constructed at runtime, which has negative impacts. She suggested possible workarounds.

[perl #41264] [PDD] should properties get serialized?

Allison Randal created ticket [perl #41264], which was previously part of ticket [perl #40443]. She noted that properties are not serialized, so a program compiled to PBC won't run.

[perl #41265] [TODO] PGE: refactor pod_comment rule into PGE/Util.pbc

Patrick R. Michaud created ticket [perl #41265]. He would like to have a common rule in PGE::Util which can be imported in to individual grammars. The rule would describe how to use a pod_comment rule for parsing POD.

[perl #41266] [PDD] object instantiation, new method

In ticket [perl #41266], Allison Randal made a note to consider object instantiation as a method call on a class object instead of an opcode on a type ID. Kevin Tew voiced his support for the idea.

[perl #41267] [TODO] rename 'clip' pdd directory to 'draft'

In ticket [perl #41267], Jerry Gay proposed that the clip directory be renamed as draft because the directory is now being used for drafts rather than notes.

[perl #41268] [PATCH] Fix C<make world> error at src/pdb.c

Lee Duhem reported an error seen when doing a make world. A patch to fix this was attached to ticket [perl #41268].

[perl #41269] [PATCH] fix some failed test in F<t/compilers/tge/grammar.t>

Lee Duhem attached a patch to fix some failing tests to ticket [perl #41269]. Patrick R. Michaud asked Lee to verify the bug in the current revision; he thought it had been fixed in r16520.

All tests passing!

An excited James Keenan reported that he had just seen his first instance of all tests passing, with the added bonus of some TODO tests also passing.

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

Tuesday January 16, 2007
09:01 AM

Five Things You Didn't Know About Me...

It seems I was tagged by chromatic.

1) I prefer to have cavities filled without anesthetic.

2) I like to play the original version of Trival Pursuit but rarely get the opportunity to do so.

3) I know all the lyrics to Poison's 'Fallen Angel' but I couldn't say why.

4) I once worked delivering phone books. I lasted two days at that job.

5) My first word was not 'no' but 'dog'. 'No' was only my second word.

Tradition suggests I should tag five people, but I won't: Audrey, Yuval, Woolfy, and Gaal
Sunday January 14, 2007
01:29 PM

Perl 6 summary, 7-13 January, 2007

This week on the Perl 6 mailing lists

"...I think you're the path toward sanity."

-- Larry Wall, in 'Patterns'

Language

Numeric Semantics

Earlier, Luke Palmer asked for a clear definition of when math should use floating points and when it should be integer-based. This led to a great deal of discussion.

This week, a subthread started by TSa continued from Darren Duncan's previous post which proposed distinct operators for integer division/modulus and non-integer division/modulus. TSa felt that modulus should be defined by the Euclidean definition. Mark J. Reed proposed to define it in the conventional way. Several other people replied to the thread.

Patterns

Luke Palmer suggested removing two items from the smart match table in S03, namely the Hash and Array with Any on the right side. He preferred an extensible ~~ operator, which would allow him to define his own patterns. In short, with his proposal, ~~ would be singly-dispatched based upon the right argument, which would determine how the left was interpreted.

Larry Wall replied that he was concerned about the consistency between compile time and run time, but that was in fact also an argument against an anonymous Any on the right.

Jonathan Lang had some suggestions on how to implement reverse test instances. There was a brief discussion between Jonathan and Larry on this subject. Ashley Winters also offered a comment.

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

Larry Wall committed a change to S03 which affects smartmatching. He noted that it is still subject to change. Nicholas Clark and Luke Palmer offered some suggestions, which Larry responded to. TSa also commented on the thread.

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

In this commit to S03, Larry Wall clarified how the Grammar pattern finds its top rule. Jerry Gay questioned the use of top as a lowercase reserved word; he suggested TOP.

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

Another commit to S03 by Larry Wall modified smartmatching semantics. Darren Duncan noted a few possible errors, and Luke Palmer added some thoughts. This led Larry to consider a different approach, to avoid confusion.

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

This commit to S03 by Larry Wall included renaming LazyCat to Cat; eliminating .exists, replacing it with .contains; and removing Subset and Superset types.

Suggestion: minmax operator

Joe Gottman proposed an infix minmax operator, which could be used as a reduction operator.

Parrot Porters

[perl #41196] [PATCH]: File misplaced in MANIFEST

In ticket [perl #41196], James Keenan reported that the README file in t/tools/README mentioned in the MANIFEST did not exist. He included a patch to remove the entry from the MANIFEST.

[perl #41197] Does change to config/gen/makefiles/dynoplibs_pl.in cause make to fail?

James Keenan created ticket [perl #41197] to report problems with a failing make. He elaborated on the problem, which happened just a couple of hours after his last successful build.

use diff for string in some test

Lee Duhem proposed a facility for string differences in Test::More which could be used to perform tasks like ignoring insignificant whitespace. This would allow tests to continue passing even if the source had been changed to remove undesired whitespace.

Nicholas Clark felt that patches should be checked against the test suite, and that there were dangers in relaxing the tests to allow a broader definition of a string. Bernhard Schmalhofer replied that he felt t/examples/past.t was one of the few examples where ignoring whitespace would be useful, and noted that it is now being handled with a regular expression.

[BUG]: io/io_win32.c

Xi Wang suggested a change in io/io_win32.c to prevent a crash.

[perl #41198] [TODO] tools/dev/mk_manifest_and_skip.pl should be aware of MANIFEST.generated

In ticket [perl #41198], Bernhard Schmalhofer pointed out that several files are in the repository and mentioned in MANIFEST.generated, but that they are added to MANIFEST by tools/dev/mk_manifest_and_skip.pl. Jerry Gay explained that the files belonged in MANIFEST, not MANIFEST.generated. Paul Cochrane fixed this in r16482.

[perl #41201] [TODO] Remove temporary conf hack in Configure.pl

In ticket [perl #41201], Paul Cochrane noted that there is a temporary hack in Configure.pl which should be implemented properly.

PIR grammar in PGE

Klaas-Jan Stol was working on implementing a PIR grammar which allows more complex expressions to be written. He submitted a patch of the grammar to date.

[perl #40905] [CAGE] coding standards hammer too big

Ticket [perl #40905] was addressed with r16498. This task called for certain files to be exempted from coding standards.

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

This commit, by Paul Cochrane, adds a section explaining which files can be excluded from coding standards tests.

[perl #41214] [CAGE]: files from 'make languages-test' survive 'make clean'

In ticket [perl #41214], Patrick R. Michaud pointed out that make languages-test generates some files which aren't removed in a subsequent make clean or make realclean. He stated that, at the minimum, make clean should remove them, but that perhaps the tests should clean them up. Nicholas Clark commented that a pitfall with the tests doing the cleanup is that the files aren't deleted if the tests crash. Patrick agreed that in either case, make clean should remove them.

[perl #39905] [TODO] TGE - line number reporting.

In ticket [perl #39905], Will Coleda requested that compiled PIR files report error lines against the original .tg file. Patrick R. Michaud wanted to know if there was an imcc pragma or other standard approach to getting the correct line number. Will Coleda referenced a document with this information, and Patrick reported the issue resolved in r16509.

[perl #41217] [BUG] warnings in refactored calling convention code (src/inter_call.c)

Jerry Gay created ticket [perl #41217] to report that he had been unable to eliminate the warnings which were being generated in src/inter_call.c.

[perl #41218] [BUG] warnings in imcc lexer code

In ticket [perl #41218], Jerry Gay reported some warnings coming from the imcc lexer code.

Re: [perl #38584] [BUG] Punie test failures in set_node method on Solaris/SPARC

Andy Dougherty replied to Will Coleda about a test file which no longer exists. He stated that he did not mind closing the ticket ([perl #38584]), because the problem was probably not about Punie, but how Punie and PGE interacted. He included some information about his recent attempts to repeat the tests.

Allison Randal asked Andy if there was any way that someone could get access to the machine he was running the tests on, as they were not able to duplicate the problems.

[perl #41224] [BUG] SKIP behaves differently in Test::Builder and Test/Builder.pir

In ticket [perl #41224], Jerry Gay noted that Test::Builder and Test skip differently. He wondered which was the correct way to handle things. He felt that Perl's 'ok' was better than Parrot's 'not ok' because the Perl module had been around for a while. chromatic agreed with Jerry and changed the Parrot module in r16553.

[perl #41226] [TODO] hunt through DEPRECATED.pod and find things to deprecate

In ticket [perl #41226], Jerry Gay suggested that people could look through DEPRECATED.pod and deprecate things which have been scheduled for deprecation for some time.

[perl #41227] [TODO] update NEWS in preparation for 0.4.8 release

Ticket [perl #41227] is a reminder that the NEWS needs to be updated in preparation for release 0.4.8. Ticket [perl #41228] makes the same point about the CREDITS file.

[perl #41230] [BUG] t/codingstd/perlcritic.t uses too many resources

Jerry Gay complained that the perlcritic coding standards test was using too many resources, and asked in ticket [perl #41230] if someone could look in to this problem. Paul Cochrane reported that he thought there was a memory issue relating to critique() and that the memory was only freed up when the tests for a given policy are complete. Paul elaborated on what what he had attempted to address the issue.

[perl #41231] [TODO] exempt languages/ files from perlcritic testing

In ticket [perl #41231], Jerry Gay noted that coding standards must apply to core code, but not to languages.

[PATCH] Add get_name() Method to Namespaces

Earlier, chromatic submitted a patch to implement get_name() as specified in PDD21. Jerry Gay created ticket [perl #41235] to track the status of the patch, which he would like to see added before release 0.4.8. chromatic said that he hadn't applied it because a deprecation cycle was needed for the name() to get_name() renaming.

[perl #41237] [TODO] PMC Class name IDs will require a dot in front

Jerry Gay created ticket [perl #41237] to address an item in DEPRECATED.pod about PMC Class name IDs. He felt that either it should use one syntax or the other, but not both.

[perl #41238] [TODO] Perl PMCs

Jerry Gay created ticket [perl #41238] as a placeholder for an item in DEPRECATED.pod, namely removing unused PMCS PerlString, PerlUndef, etc.

[perl #41239] [TODO] undertested pmcs

Jerry Gay made a list of some of the core PMCs which he feels are undertested. The ticket [perl #41239] suggests that more tests be created.

[perl #41241] [BUG] Tcl doesn't compile/run on win32.

Will Coleda requested additional information on ticket [perl #41241], about Tcl not running on Win32.

[perl #41243] Link on Win32 with Borland C++

Steve Peters reported that Parrot can now be compiled with Borland C++ on Win32, but that this had linking problems. The ticket is [perl #41243].

[perl #41244] [TODO] update copyright data to 2007

Jerry Gay reminded people to update copyright notices from 2006 to 2007. This was ticket [perl #41244].

[perl #41247] [tru64] failure in tge/parser

In ticket [perl #41247], Jarkko Hietaniemi reported a failure on tru64 for tge/parser. Patrick R. Michaud reported that it had been fixed in r16570.

[perl #41248] [tru64] failure in pge_util

In ticket [perl #41248], Jarkko Hietaniemi reported a failure with pge_util on the tru64 platform. Patrick R. Michaud reported that it was fixed in r16570.

[perl #41249] [tru64] core dump in t/pmc/interp_3.pir

Jarkko Hietaniemi reported a core dump in t/pmc/io_1.pir on tru64, in ticket [perl #41249]

[perl #41250] [tru64] failures in p5regex/p5rx

In ticket [perl #41250], Jarkko Hietaniemi informed about failures in p5regex/p5rx on the tru64 platform. Patrick R. Michaud reported that he believed the failures were resolved in r16593 and asked for a confirmation.

[perl #41251] [tru64] core dump from t/pmc/resizablebooleanarray_20.pasm

Ticket [perl #41251] holds a report from Jarkko Hietaniemi about a core dump caused by t/pmc/resizeablebooleanarray_20.pasm.

[perl #41253] [tru64] core dump from t/dynoplibs/myops_3.pir

Jarkko Hietaniemi reported a core dump on tru64 from t/dynoplibs/myops_3.pir. This was done in ticket [perl #41253].

[perl #41254] [tru64] core dump from library/pg

In ticket [perl #41254], Jarkko Hietaniemi gave information about a core dump from library/pg on tru64.

[perl #41255] [tru64] core dump from t/pmc/pmc_5.pasm

In ticket [perl #41255], Jarkko Hietaniemi reported core dumps from t/pmc/pmc_5.pasm with tru64.

[perl #41256] [tru64] NaNQ failures in t/pmc/complex

In ticket [perl #41256], Jarkko Hietaniemi reported that many tests in t/pmc/complex fail because of nonportable assumptions about floating point operations.

[perl #41257] [tru64] core dump in t/pmc/io_1.pir

Jarkko Hietaniemi created ticket [perl #41257] to report a core dump from t/pmc/pmc_5.pasm on tru64.

Tcl windows make problems

Klaas-Jan Stol looked at why Tcl cannot build on windows. He was unable to fix it, but passed on what he had gleaned from his experience. Matt Diephouse appreciated the information, and committed a fix to resolve the issue. Jerry Gay confirmed that r16596 worked.

embedding

Isaac Freeman was wondering how communication between the embedding program and the scripts run by the interpreter is implemented. He offered to implement it if it was likely to be used. Jeff Horwitz pointed Isaac to some code Jeff wrote over a year ago, which could be used as a starting point.

Users

99problems: 9, 11, 13

Gabriele Renzi worked problem 13 from Ovid's list of 99 Perl 6 examples. The code was submitted, and the question of if it should be committed was asked. Ovid replied that if there's a bit, there should be a commit.

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