Perl 6 summary for July, 2006 (part 2 of 2)

kudra on 2006-08-13T19:10:00

The summaries for the Perl 6 mailing lists in July continue.

Re: [perl #39826] [CAGE] convert C<perl -w> to C<use warnings;>

In [perl #39826], Jerry Gay reported that many scripts contain perl -w, but the minimum Perl version is 5.6.2, so these should mostly become use warnings;. Swaroop supplied a patch, which was applied as r13505.

[perl #39827] [TODO] implement is_abs_path()

Will Coleda reported the need for a C-level routine to determine if a given path is an absolute path. Ticket [perl #39827] was created to track this.

[perl #39829] [PATCH] accept() always fails

Kay-Uwe Huell noted that there is a failure with the accept() op. A patch was included in ticket [perl #39829] to fix this. Leopold Toetsch could not replicate the error, nor could Chris Dolan, who asked for more details of the failure. Later Leopold reported a fix in r13332.

[perl #39831] TGE - Needs more diagnostics on failure.

Will Coleda felt that a slightly more informative error message would be useful. He suggested using PGE::Util::die. This was described in ticket [perl #39831].

[perl #39833] [TODO] Tcl - Make [rename] handle namespaces

In ticket [perl #39833], Matt Diephouse noted that namespace support was added to Tcl, but rename doesn't support it yet.

suggestions for new pdd21

Patrick R. Michaud noted that Allison Randal had just updated PDD21 and offered a few changes in the text. Allison agreed with some of the changes and applied them. She asked if the named parameter passing techniques work on low-level PMCs defined in C. Leopold Toetsch replied that this is not yet the case.

[perl #39838] [PCC] mark non-returning functions with __attribute__((__noreturn__))

Chip Salzenberg created ticket [perl #39838]. In it he noted that some compilers have flags to mark functions which don't return, but all functions which don't return should be marked in this manner. Andy Lester said it would be done.

[perl #39842] [PATCH] Win32 PLATFORMS update (r13309)

Ron Blaschke included a patch in ticket [perl #39842]. The fix was to update PLATFORMS with information on failing tests. It was applied as r13316.

[perl #39843] [TODO] Tcl - Make todo tests show up as failures in dev environment

Tcl has some failing tests skipped and others simply failing when they should all be marked as TODO. Matt Diephouse started ticket [perl #39843] to address this problem.

[perl #39844] [BUG] Parrot doesn't do args checking for a sub without params

In ticket [perl #39844], Matt Diephouse showed some code he expected to fail with "too many args" but which printed "ok".

[perl #39845] [TODO] Better IMCC Errors: unexpected IDENTIFIER

Matt Diephouse wrote that IMCC throws an error when it encounters an unexpected identifier but doesn't specify what the identifier was. The issue is tracked as [perl #39845].

[perl #39846] [PATCH] Use only non-interpolated quotes for substituted values in dynpmc.pl

Ron Blaschke opened ticket [perl #39846] to note a problem with interpolated quotes and included a patch.

[perl #39849] [PATCH] pmc2c: Wrap MMD initializer code in block

Ron Blaschke created ticket [perl #39849] to supply a patch to make languages/lua compile on Win32. It became r13329.

[perl #39850] [TODO] [CAGE] lack Parrot::Config confusing....

Will Coleda wanted Cage Cleaners to make some changes which would reduce the number of questions asked about Parrot::Config::Generated. This was ticket [perl #39850], and it was resolved with r13647.

[perl #39851] [BUG] .HLL doesn't reset the .namespace

Matt Diephouse wrote in ticket [perl #39851] that Parrot should assume .namespace when it sees .HLL '...', '...'.

[perl #39852] [TODO] Tcl - Create the ::tcl namespace properly

Matt Diephouse made a temporary hack to create the ::tcl namespace. It should be replaced with code which actually populates the namespace. See ticket [perl #39852] for more details.

IMCC Reentarancy

Vishal Soni raised issues with IMCC's reentrancy, due to the code that flex emits. Audrey Tang and Sam Phillips suggested using alternative tools. Audrey subsequently fixed the flex related issues. Allison Randal further clarified on the long and short term goals of the IMCC compiler project, and the relevant plans for a 1.0 release.

[perl #39853] [BUG] Tcl - pwd returns path with backslashes on Win32

Ron Blaschke created ticket [perl #39853] to note a failure due to Tcl's pwd returning a path containing backslashes. Will Coleda suggested a change in the OS PMC. Ron added his thoughts.

[perl #39854] [PATCH] adds preamble section to tge grammar to allow for includes and global defines

Kevin Tew created ticket [perl #39854] to send a patch which adds a preamble to the TGE grammar. Allison Randal thought the idea was important but needed refinement. She offered some background information.

Namespace.get_namespace() vs. optional params

In response to changes in PDD21, Chip Salzenberg felt the need to point out that currently, methods written in C cannot have optional arguments. Allison was aware of the problem and thought that the differences between low-level PMCs and Parrot objects defined in PIR code need to be minimized. Chip added a TODO ticket.

[perl #39855] configuration: define MIN/MAX macros for all integral typedefs

Chip Salzenberg created ticket [perl #39855] to state that all integral typedefs should have min/max macros. He wanted MAX_INTVAL to go with INTVAL and UINTVAL.

[perl #39856] TODO: Produce Single PBC from Multiple PIR Files with -o

In ticket [perl #39856], Chromatic requested that Parrot be able to produce a single PBC file from a command like parrot -o all_files.pbc file1.pir file2.pir .... Joshua Hoblitt thought it would be a good idea to define how symbol conflicts should be handled. Leopold Toetsch believed that pbc_merge can handle this, but Allison Randall explained that it doesn't quite address the request. Chip Salzenberg felt that was a bug, although Allison preferred to call it a feature. Jerry Gay clarified how it worked by citing documentation and including tests.

[perl #39857] [PATCH] Made httpd.pir RFC compliant (at least about CRLF)

Kay-Uwe Huell created ticket [perl #39857] for a patch to make examples/io/httpd.pir RFC compliant. It was applied in r13353.

[perl #39858] [PATCH] more elegant hex_to_int in examples/io/httpd.pir

Kay-Uwe Huell supplied a patch with a more elegant function for hex_to_int in [perl #39858].

Source cleanup ideas (pending STM merge)

Chip Salzenberg posted about some ideas he had in mind for source code cleanups. Andy Lester added Chip's suggestions to the Cage Cleaners' todo list.

Re: [svn:parrot] r13343 - trunk/compilers/imcc

Allison Randal requested that Audrey Tang roll back r13343 because the solution was not maintainable. Audrey complied, and requested an explanation on why it was not maintainable. Joshua Hoblitt and Allison discussed the problem.

Checkin #13345

Chromatic noted that revision 13345 caused command line parsing problems to be misreported. Audrey Tang asked if a separate change fixed this, and raised issues with segmentation faults. Eventually Matt Diephouse supplied a patch to improve reporting in a way that pleased everyone.

get_root_namespace opcode vs. interpinfo {cage cleaners?}

Chip Salzenberg asked if interpinfo .INTERP_ROOT_NAMESPACE could be removed, as get_root_namespace is available. Allison Randal agreed with the proposal.

flex/bison version for Parrot?

Chip Salzenberg wondered which versions of flex and bison will work. Audrey Tang replied: "Flex 2.5.33, Bison 2.2."

[perl #39864] [BUG] Compiling P6Regex within code substitutes part of string to match away

Kay-Uwe Huell created ticket [perl #39864] to supply a patch. Leopold Toetsch noted that it looked like a GC bug, but it was actually a COW string bug, fixed in r13400.

[perl #39867] Configure.perl --maintainer should check flex/bison versions

Chip Salzenberg requested in that Configure.perl check if the user has an outdated version of bison or flex. This was in ticket [perl #39867]. Joshua Hoblitt marked the problem as fixed.

another item for the cage list: INTVAL_MAX etc.

Chip Salzenberg asked Andy Lester to add ticket [perl #39855] to the Cage Cleaners' list. Will Coleda advised putting '[CAGE]' in the ticket name.

[perl #39868] [CAGE] convert C<BEGIN { plan tests => NN; }> to C<use Parrot::Test tests => NN;>

In ticket [perl #39868], Jerry Gay noted that references to BEGIN { plan tests => NN; } should be converted to use Parrot::Tests tests => NN;. Will Coleda clarified that if the number of tests is not known until runtime, they should not be modified.

[perl #39877] [BUG] [CAGE] Distro tests incomplete

Writing in ticket [perl #39877], Will Coleda reported test failures in r13383 and r13385.

[perl #39878] [CAGE] generated files with timezoneless times

Will Coleda wanted to see any tools which insert time messages include the timezone. He wrote about this in ticket [perl #39878].

[perl #39879] [CAGE] t/distro/file_metadata.t failing

Will Coleda noted around 500 test failures related to SVN properties in ticket [perl #39879].

Parrot::Embed 0.01

Chromatic reported that Parrot::Embed has been bundled in to releasable form: http://wgz.org/chromatic/perl/Parrot-Embed.tar.gz. He wanted to include it in the Parrot repository but was not sure how to best do this.

[perl #39892] [BUG] Bus error in t/pmc/eval.t#19

In ticket [perl #39892], Will Coleda reported bus errors with a test.

[perl #39897] [PATCH] TGE - add basic syntax error

Will Coleda provided a patch to update TGE to use PGE::Util::die. It was posted in ticket [perl #39897].

NCI and libparrot Question

Chromatic included some code he thought should work and asked if it would work. Leopold Toetsch disagreed, and listed several reasons why it would fail. Chromatic asked where in the NCI PDD some of this was documented. Leopold offered a pointer to src/call_list.txt.

Problems Installing Parrot

Shawn H. Corey reported that he was having problems installing Parrot following the README instructions and asked for help. Jonathan Rockway offered suggestions.

This led to Chris Dolan noting that he thought ICU was recommended but not required, but that he could not find documentation on the subject.

Later, Shawn also posted some replies he'd received from Andy Lester, for inclusion in a FAQ. Patrick R. Michaud advised against installing Parrot because of the potential for collisions between installed and local Parrot copies.

Further help was given in Help Understanding Configure.pl Output.

Re: [svn:parrot] r13424 - trunk/docs/art

Will Coleda wanted to discuss revision r13424 on the list.

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

Ticket [perl #39905] was created by Will Coleda. Errors in an embedded PIR should be reported against the original .tg file rather than the generated PIR file. Patrick R. Michaud asked how this could be addressed, and Will included documentation.

Additions to docs/glossary.pod

Shawn H. Corey reported some terms which are not included in the glossary. Andy Lester added the patch, which became r13433.

[perl #39908] [BUG] IMCC treats $S as a non-register instead of throwing an error

Matt Diephouse created ticket [perl #39908]. He noted a situation where an error should be thrown but wasn't.

t/compilers/pge/p6regex/01-regex.t test 118 needs ICU?

Bob Rogers reported Parrot test failures when ICU is not used. Patrick R. Michaud applied Bob's patch as r13457.

[perl #39913] [BUG] TGE - Can't use } in the transform definitions.

Will Coleda noted in ticket [perl #39913] that the TGE grammar doesn't understand embedded }s.

[perl #39914] [PATCH] Fix Path Quoting in file.t Test

Ron Blaschke noted that slashes were causing problems on Win32. He supplied a patch in ticket [perl #39914].

Flex Debugging

Vishal Soni asked for help in flex debugging syntax. Leopold Toetsch supplied the answer.

PDD review, onward and upward

Allison Randal finished reading through all PDDs and now plans to go through them to update and expand them with open discussions. PDD17 is first on the list, and the order of the list can be influenced by request. Joshua Hoblitt asked to se PDD25 reviewed. Jerry Gay noted that there are RT tickets which organize the review and discussion of each PDD.

Parrot users: 'make realclean'

Chip Salzenberg suggested that people make realclean and rebuild for the next update, and noted that people should read commit logs.

PDD17

Will Coleda wrote a list of issues regarding basic types.

[perl #39921] [CAGE] generated by tools/dev/mk_manifest_and_skip.pl

In ticket [perl #39921], Will Coleda noted that the MANIFEST from r13493 was being reordered due to the fact that it was being generated by File::Find. r13649 fixed this problem.

[perl #39924] Can't build parrot

Pratik Roy asked, in ticket [perl #39924], what the requirements were for building Parrot. Jerry Gay noted that Perl 5.6.1 or greater is a requirement, and changed Configure.pl to give appropriate error messages in r13523.

Shebang; testing

Will Coleda is considering making a test harness in Tcl for Tcl, but was not sure how he could reliably run the tests from inside a sandbox at arbitrary directory levels.

[perl #39925] [BUG] IMCC - bus error

Will Coleda created ticket [perl #39925] to report a problem with building Tcl in r13510.

[perl #39928] [PATCH] [Win32] Remove Quotes for lazy-k calc.t on Windows

Ron Blaschke submitted a patch as [perl #39928] to fix a problem with single quotes being passed on literally on Windows.

[perl #39930] [BUG] concat unicode+iso-8859-1 doesn't work w/o ICU

In ticket [perl #39930], Patrick R. Michaud noted that concatenation of a Unicode string with an ISO-8859-1 string fails if ICU isn't available, while other Unicode concatenations just work.

[perl #39931] [TODO] integrate svn and rt

Jerry Gay felt that SVN commits with a marker denoting the ticket number should automatically update the RT ticket, and created ticket [perl #39931] to suggest this. Will Coleda asked a bit about how RT would respond to different situations.

[perl #39932] [TODO] enable bulk operations in rt

Jerry Gay wrote [perl #39932] to request that bulk operations be possible for some RT admins to create new tickets from a file.

[perl #39933] [BUG] compreg-related bus error

Will Coleda wrote in [perl #39933] that he encountered a bus error when trying to create a test for something else. Leopold Toetsch thought it was a syntax error and consolidated it with ticket [perl #39892].

[perl #39934] [PATCH] Make disassemble useful.

Kevin Tew created ticket [perl #39934] to request feedback on a patch.

[perl #39939] [TODO] exhaustively test new {set,get}*global and get*namespace opcodes

In [perl #39939], Chip Salzenberg reported that the new PDD21 opcodes need complete tests.

new {get,set}*global opcodes from pdd21 are available

Chip Salzenberg announced that the global variable opcodes as listed in PDD21 are now {get,set}_global, {get,set}_hll_global and {get,set}_root_global. The old {fetch,store}_global will soon be deprecated.

[CAGE] Request for header file renaming

Luca Regini wondered if it might be possible to rename ../include/parrot/string.h to something like ../include/parrot/parrot_string.h because string.h collides with a file of the name in the standard C library, causing issues with SPLINT. Jerry Gay and Andy Lester thought the change would be fine so long as Parrot compiles and passes tests afterwards.

[perl #39979] [TODO] Tcl - More tests for [expr]

Matt Diephouse created ticket [perl #39979]. In it he noted that unary operators with string operands and % tests with floats still need tests.

[perl #38887] Result of INFINITY or NAN stringification is platform dependent

Ron Blaschke added some functions, Parrot_math_isnan and Parrot_math_finite and asked if there was a good way to test if the platform supplies IEEE recommended functions like _finite and _isnan and use them if they are available. Bill Coffman replied that there is no platform independent way to produce Nan or Inf, but offered some optimization tips.

NaN and infinity were also discussed in Inf and NaN.

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

Bob Rogers responded to Allison Randal's commit to suggest that introspection capability is always a good idea.

Partial fix to make closures invoke actions

Bob Rogers included a patch he was not sure he should apply. The patch defined Parrot_rewind_stack as a stub, changed Continuation:invoke to use the stub, and modified tests. Problems with the patch are that it doesn't invoke the actions in the right dynamic environment, and it is linear in the current stack depth instead of linear in the number of entries that must be traversed. He asked if the patch should be applied, postponed, or replaced with a more comprehensive fix.

[config] New Configure.pl option --m=32

Leopold Toetsch reported that r13597 enables compiling 32-bit executables with JIT on his AMD X2 box running x86_64-linux with perl Configure.pl -m=32 and a few configuration adjustments..

Re: [perl #39986] Create Default PackFile for New Interpreter (Parrot C API)

Chromatic created ticket [perl #39986] to report that there is no default PackFile for the situation where he has created a new interpreter with Parrot_new() and wants to compile and run code through Parrot_compile_string() without having to read and load bytecode from disk.

It was reported that this was fixed in r13613, but Chromatic had further questions. There was further discussion between Chromatic, Leopold Toetsch and Chip Salzenberg. Chip requested some cleaning on namespace pollution, and Andy Lester replied that it is on his list.

[perl #39987] [PATCH] patched editor text-highlighting for vim

In [perl #39987], Kay-Uwe Huell noted that a few words were incorrectly highlighted in vim, and provided a patch for editors/pir.vim.in. It was applied as r13704.

[perl #39990] External API and C Strings

Chromatic wrote that where possible, the external API should take an receive C strings and created ticket [perl #39990] for the purpose of tracking this change. Leopold Toetsch replied that the distinct STRING* or Parrot_STRING type doesn't make much sense and he had proposals for changing this.

[perl #39992] [TODO] t/op/01-parse_ops.t: figure out how to test parsing of pmc constant parameters

Jerry Gay reported in [perl #39992] that r13601 checks the parsing of every Parrot opcode except for those which accept PMC constants. The remaining opcodes require tests.

"Parrot: Evolution v2" presentation

Chip Salzenberg supplied the link to the most recent version of "Parrot: Evolution", which he delivered at OSCON 2006.

[perl #39995] [PATCH] Minor patch for config/gen/makefiles/editor.in failing copying files

Kay-Uwe Huell created ticket [perl #39995] to report a failure with make vim-install in a Cygwin environment. A patch was supplied to deal with whitespace in directory names.

[perl #39997] [PATCH] PGE P5 Test Cleanup

David Romano submitted a patch to clean up the regex tests taken from Perl 5. Jerry Gay raised the an issue with the data file being shared with Perl 5, after which David supplied an additional patch, moving todo/skip information to an outside file. Jerry applied.

PGE/TGE and the future.

Kevin Tew wanted information about TGE design goals and plans. Allison Randal replied that the plan is to have a single set of OST node classes used by all languages, a task Vishal Soni is currently at work on. She included a link to the first draft of the compiler tools plan, which Patrick R. Michaud is at work on updating so that it can be converted to a PDD.

[perl #40002] TGE Refactor / Compiler Tools Object

Kevin Tew created ticket [perl #40002] to ask a number of questions about the TGE refactor and cited several other tickets. There were some replies in August. Patrick R. Michaud replied with information about the plans for TGE. Allison Randal and Patrick R. Michaud contributed summaries of a conversation they had at OSCON. Jerry Gay also commented.

Onward & Upward: More New Assignments

Allison Randal announced that Patrick R. Michaud will be taking primary responsibility for the development and maintenance of TGE. Allison will continue working with Patrick on the architecture of TGE and the rest of the compiler tool suite.

[perl #40010] [TODO] Add a mutex to eval_nr in compilers/imcc/parser_util.c

In ticket [perl #40010], Matt Diephouse noted that a change in r13628 is not thread safe and needs to be modified.

[PATCH] Add a String IO Layer.

Chromatic supplied a patch to add a stringy IO layer and fix some typos. Leopold Toetsch thought it looked good and agreed with Chromatic's assessment that there were indeed some matters for cage cleaners in the IO layer.

Parrot::Config...

Will Coleda supplied information on how to fix a problem with the svn checkout related to a recent patch in Parrot::Config.

resizablepmcarray, assign.

Will Coleda included some code which was not working in Tcl. He thought the error originated in the Parrot code base, and asked some questions. Bob Rogers had difficulty replicating the problem; Chromatic suggested using a newer Test::Harness because prove is not included in the older version. Leopold Toetsch felt this was in conflict with the Parrot README prerequisites list.

Will said that the problem was fixed in r13696. He also reported that Tcl's test suite is being converted from using Perl to being self-hosting in Tcl. Bob reported some additional problems in r13715. Will noted that Tcl was undergoing a lot of changes this week. There was some further discussion with Matt Diephouse on the Tcl changes.

Inf and NaN

Matt Diephouse proposed implementing three types of core PMCs: NaN, Inf and NegInf. Jerry Gay reminded Matt about negative-not-a-number, and there was some discussion about whether -NaN exists, which led to the question of whether the fact that NaN != NaN unless there is optimization in the comparison could be used in isnan and finite tests.

There was also discussion on infinity and NaN in thread [perl #38887] Result of INFINITY or NAN stringification is platform dependent

[svn ci] r13703: Start fixing the exit_handler mess - API change

Leopold Toetsch reported that r13703 makes some incompatible API changes. It replaces the global exit_handler_list with an interpreter field, and changes Parrot_on_exit, Parrot_exit and other exit_handlers to officially take an Interp* argument.

[perl #40030] [PATCH] compiler/imcc missing dependency

In [perl #40030], Fonseka reported some missing dependencies which were preventing compilation and provided a patch. In the end it turned out to be a problem with an old Parrot installation.

Compiler

[ANNOUNCE] Pugs 6.2.12 and v6.pm released!

This message was cross-posted to perl6-users; please look at [ANNOUNCE] Pugs 6.2.12 and v6.pm released! (reformatted).

a smarter form of whitespace

Allison Randal asked if it was a bug or a feature that no matter which whitespace rule matches, if :sigspace is on, newlines are treated as ignorable whitespace. Patrick R. Michaud found a reference in S12 which defines the search order for rules.

Vanilla Perl, Win32, and Data::Bind support.

Audrey Tang responded to a #perl6 request to build a Data::Bind binary distribution for Win32-ActivePerl by building it on VanillaPerl build 3.

Perl 6 compiler docs released - graffle questions, compiler questions

George Wood and Audrey Tang released new versions of documents and wondered if there was a way to automate the export of the JPG and HTML files that set up the image maps. George also had further questions for Audrey, which she answered.

v6.pm now runs Test.pm!

Audrey Tang reported that the CPAN version of v6.pm now passes all Pugs sanity tests. She is especially pleased with the independent layers, which allow people to use modules like Class::MOP and Data::Bind without switching to the v6 interface.

making v6 test suite its own distro

Darren Duncan suggested further decoupling implementations from the Perl 6 specifications by distributing the Perl 6 test suite as its own distribution, so that v6.pm does not require Pugs just to test it. Gaal Yahas mentioned some of his concerns, and pointed out the Chimps project, which is trying to do something similar. There was also some discussion on whether requiring support for features in Test.pm should be a requirement for an implementation. Jerry Gay also joined the discussion.

Acknowlegements

Yuval Kogman once again contributed summaries for some of the threads.

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.

See Also