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)

Thursday January 11, 2007
09:51 AM

Perl 6 summary, 31 Dec 2006 - 6 Jan, 2007

This week on the Perl 6 mailing lists

Remember, the next Parrot bug day is 13 January, 2007. Join the rest of the team at #parrot (irc.perl.org) to work on closing as many bugs as possible before the next Parrot release.

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. In response, Darren Duncan highlighted a recent #perl6 discussion on the topic. He proposed distinct operators to allow users to explicitly choose the math mode. Jonathan Lang mentioned that in the one other instance where there were type-specific versions of a common operator, a third 'generic' version was required. Dr. Ruud suggested giving numerics multiple faces.

More recently, Larry Wall responded to the thread, adding his thoughts and musing on whether standard Perl should include convenience operators like idiv or if there should simply be pragmatic support for them. A great deal of discussion followed.

Parrot Porters

[perl #41157] [PATCH] Fix a typo in t/op/cmp-nonbranch.t

In ticket [perl #41157], Lee Duhem supplied a patch to correct a typographical error.

[perl #41158] [BUG] Here Docs in test C<cmp> cause t/op/cmp-nonbranch.t abnormal exit

Lee Duhem reported an error in a test; this was done in ticket [perl #41158]. Jerry Gay reported that he believed the issue was resolved in r16381 and asked Lee to check it. Lee reported that he thought it was a bug, resolved in ticket [perl #41165].

Punie ported to PAST-pm

Allison Randal announced that she had modified Punie to work with PAST-pm. She also gave her thoughts on working with PAST-pm, which Patrick R. Michaud replied to.

[perl #41163] [PATCH] suppress uninitialized value warning in config/inter/yacc.pm

In ticket [perl #41163], Lee Duhem submitted a patch to suppress some uninitialized value warnings. Jonathan Worthington had a question about the patch, and Lee agreed with the suggestion.

[perl #41164] [BUG] 'make world' fails with msvc due to unresolved external

Jerry Gay created ticket [perl #41164] to report a bug, which was resolved in r16383.

[perl #41165] [PATCH] appropriate handle CRLE in Here Docs

Ticket [perl #41165] included a patch from Lee Duhem to correct a problem he reported earlier in '[perl #41158] [BUG] Here Docs in test C cause t/op/cmp-nonbranch.t abnormal exit '.

[svn:parrot-pdd] r16391 - trunk/docs/pdds/clip

With this commit, Allison Randal moved the I/O PDD out of the clip directory, making it more official. Discussion continued on 'I/O PDD - ready for implementation'.

I/O PDD - ready for implementation

After moving the I/O PDD out of the clip directory (see '[svn:parrot-pdd] r16391 - trunk/docs/pdds/clip'), Allison Randal announced that implementation can begin on the details in the document. She also welcomed comments.

Jonathan Worthington replied that he liked what he had read, but felt that more information was needed on how role composition should work. Allison replied that she was still at work on defining roles in the objects PDD. She offered a short explanation of how it would probably work.

Some discussion on how to implement error values also took place, with Jonathan, Allison and Larry Wall contributing.

[perl #41168] graceful "no compiler" error message?

In ticket [perl #41168], Will Coleda added a request for a 'no compiler found' error message in configure.pl.

[perl #41171] [PATCH] Fix to t/src/compiler.t so Parrot passes tests on Solaris

Steve Peters submitted a patch as ticket [perl #41171].

Re: [perl #41020] [PATCH] pmc2c.pl functionality extracted into separate package

Earlier James Keenan supplied some patches. After some discussion, the patches were recently applied as r16345.

However, James felt there were still some problems with the patches. He provided a new patch in the hopes that it would solve the problem.

[NEW]: README for t/tools/pmc2cutils/

James Keenan submitted a README file for t/tools/pmc2utils, which was applied as r16409.

[perl #41173] [PATCH] Intel C++ is not really gcc

Steve Peters created ticket [perl #41173] to report a problem caused by the Intel C++ compiler defining __GNUC__ although it is not compatible with gcc. He provided a patch which attempts to address the issue. It was applied in r16412.

[perl #41174] [PATCH] Silence warnings in

In ticket [perl #41174], Steve Peters contributed a patch to silence warnings in the Intel C++ compiler when 0 is used as an enum without being cast. It was applied in r16414.

[perl #41175] [PATCH] Remove unused label

In ticket [perl #41175], Steve Peters supplied a patch to remove an unused label in src/inter_call.c. It was applied in r16415.

[perl #41180] [PATCH] Determine compiler before processing hints

Steve Peters noted in ticket [perl #41180] that sometimes the compiler should be known before processing the hints. He supplied a patch to correct the issue, which was applied as r16416.

[perl #41182] [PATCH] Preliminary support for suncc on Linux

Steve Peters created a patch to add initial support for compiling with suncc on Linux. This was submitted as ticket [perl #41182]. It was committed as r16417.

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

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

[perl #41186] [BUG]: tools/build/ops2pm.pl: Variable used in both package scope and loop iteration

Ticket [perl #41186] was created by James Keenan to report a possible bug in ops2pm.pl. He wondered if it was intentional that a variable was used in two different scopes. His feeling was that using the same variable name would confuse someone.

[perl #41187] [PATCH] fix failed test t/examples/past.t

Lee Duhem reported that r16418 broke a test. He supplied a patch, but felt that there might be a better solution. Ticket [perl #41187] follows this report.

Users

gather { if $xy.was_taken { ... } }

Earlier, Gilbert R. Röhrbein asked if there is a way to look inside a gather-block if something was already taken. He included some example code of how he thought it would work.

Gabriele Renzi replied with a code correction, but noted that it would not work on Pugs 6.2.13.

99 problems in Perl6: problem 28

Gabriele Renzi decided to look at problem #28 from Ovid's list of 99 problems in Perl 6. Gabriele included a solution, but wondered if there was a better way to solve the exercise. Ovid suggested checking in the code, if it passed tests. Gaal Yahas provided the commit bit.

99 problems in Perl6: 32 and a question on number coercion

Gabriele Renzi provided an answer to problem number #32 from the list of 99 problems in Perl 6 and added it to the repository. Gabriele wondered what the expected behavior was for gcd. Steffen Schwigon had some questions on the code, which Gabriele answered. Steffen Schwigon

perl6-ish idiom for code and tests in one file

Gabriele Renzi inquired what the Perl 6 idiom would be for keeping code and tests in the same file. Juerd liked the idea of a macro or a standard subroutine, as did Gaal Yahas. Larry Wall offered an alternative using MAIN, but noted that autocalls to MAIN are not yet implemented. He suggested a temporary workaround.

Compiler

[PATCH] fix wrong $include_path (of parrot) in Makefile.PL

Lee Duhem submitted a patch to fix an incorrect Parrot include path. He noted that he is still seeing an error.

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.

I apologize for the lateness and brevity of this summary, which are due to ongoing computer problems.

Distribution

This summary can be found in the following places:

See Also

Sunday December 31, 2006
02:21 PM

Perl 6 summary, 24-30 December, 2006

This week on the Perl 6 mailing lists

"Grrr, otta profefreed my onw righting occashionaly."

-- Larry Wall's commit message for r13508--one typo correction of many

Language

Numeric Semantics

Luke Palmer wanted a clear definition of when math should use floating points and when it should be integer-based. In response, Darren Duncan highlighted a recent #perl6 discussion on the topic. He proposed distinct operators to allow users to explicitly choose the math mode. Jonathan Lang mentioned that in the one other instance where there were type-specific versions of a common operator, a third 'generic' version was required. Dr. Ruud suggested giving numerics multiple faces.

Parrot Porters

Re: [perl #41020] [PATCH] pmc2c.pl functionality extracted into separate package

Earlier, James Keenan supplied some patches which he noted were not completely functional.

This week, chromatic made a few suggestions on the style of the code. James explained that some of his choices had been dictated by the fact that this was maintenance coding.

In another subthread, James stated that he had found a good way to run the tests. They are meant to be run before make.

After Kevin Tew reported some failing tests, James requested the output with the failing tests. Will Coleda suggested that perhaps James could make the tests give a helpful error message if they are run at the wrong time. James added the suggested patch.

chromatic sent James his test results. With the newest patches, everything worked. chromatic committed them as r16345.

Building Parrot::Embed on Windows XP / Visual C++

Ron Blaschke reported two warnings he had seen from trying to build Parrot::Embed on Windows/VC8. He had some questions on how to proceed. chromatic and Ron tried to find a patch which would fix the problems. A solution was applied as r16229.

[perl #41125] [PATCH] Fix small typo in root.in

Nikolay Ananiev's patch in ticket [perl #41125] was applied as r16239.

[perl #41128] [PATCH] Fix #41122: ParrotObjects don't call init_pmc vtable

In ticket [perl #41128], Matt Diephouse submitted a patch but didn't commit it because it affected code other people are maintaining. chromatic agreed with the patch because it didn't break any tests or modify the external interface.

Creating Keys in PIR

chromatic discovered that writing tests for keyed variants is painful. He wanted to see working PIR for creating a key for a nested namespace. Bob Rogers supplied a patch and wondered if it was what chromatic had had in mind.

Re: [perl #41132] [BUG] Segfault in Parrot_call_sub_ret_int

Nikolay Ananiev created ticket [perl #41132] to deliver a patch. Jonathan Worthington replied that he had applied the patch, because it was consistent with Parrot_call_sub. He asked if Nikolay could look at related code to see if similar fixes were needed. Bob Rogers explained the underlying problem as he saw it.

chromatic wondered if it would be possible to create some documentation on how contexts, interpreters and code segments work. Bob said he'd try, but that he was just learning about code segments as well.

[PATCH] make pdump's output about debug segment more consistent

Lee Duhem submitted a patch to make pdump's output more consistent. This was ticket [perl #41140]. It was applied as r16269.

GC problem in parrot_pass_args to a tailcall (r16239)

Bob Rogers wrote about a segmentation fault which is triggered during argument passing after a tailcall. He gave an analysis of the problem and provided a patch. However, he hoped that there was a better option.

[PATCH] Add get_name() Method to Namespaces

chromatic supplied a patch to implement get_name() as specified in PDD21. He did not check it in because it changed the API.

[perl #41141] [PATCH][Win32][VC] Minor display cleanup during compilation

In ticket [perl #41141], Ron Blaschke reported a problem with compilation output on Windows. He supplied a patch to correct this.

[perl #41144] [PATCH] refresh front page of parrotcode.org

Allison Randal submitted a patch as [perl #41144]. The patch cleans up the main web page at Parrotcode.org. James E Keenan wondered who applied these types of patches. Will Coleda applied the patch and gave instructions on how to acquire commit access to the website.

Mac OS X Concurrency

Allison Randal gave the URL to an article on Mac OS X concurrency.

Exceedingly lightweight C embedding

Allison Randal posted a link on the topic.

Users

gather { if $xy.was_taken { ... } }

Gilbert R. Röhrbein asked if there is a way to look inside a gather-block if something was already taken. He included some example code of how he thought it would work.

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.

Happy New Year!

Distribution

This summary can be found in the following places:

See Also

Monday December 25, 2006
01:52 PM

Perl 6 summary, 17-23 December, 2006

This week on the Perl 6 mailing lists

"Short answer: absolutely.

"Long answer: emphatically not."

-- Larry Wall, in 'RAII in Perl6/Parrot'

Language

supertyping

Earlier, TSa asked about supertyping, specifically if supertyping will exist in Perl 6. Larry Wall wanted to see some more complicated use cases which would demonstrate that the concept was useful rather than simply an aspect of type theory. Several other people contributed to the thread.

This week, Jonathan Lang addressed TSa's other question of what would happen if an object's type changed while its identity was preserved. Tsa replied to the subthread.

RAII in Perl6/Parrot

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.

Parrot Porters

[perl #33962] readline returns one too many lines

Allison Randal reviewed ticket [perl #33962], which was created almost a year ago by Matt Diephouse to report that the readline opcode returns too many lines. She decided to leave the ticket open and link it to the I/O PDD ticket.

Re: [perl #34994] [TODO] make useful parts of Parrot config available at runtime

Leopold Toetsch responded to ticket [perl #34994], which was created in April. He noted that there had been several attempts to solve the issue, and the only working scheme was to link with an object file which had the path inside. He left it as 'todo'.

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

Patrick R. Michaud and Paul Cochrane looked at ticket [perl #39997], which was written in July. Patrick felt that it was safe to close the ticket, because all 'skip' and 'todo' markers had been factored out of the regex test files. Paul resolved the ticket.

Re: [perl #40361] [PATCH] #40278 [CAGE] perl coding standards coda. (cont.)

Ticket [perl #40361] from September was revived and elicited a great deal of discussion between Paul Cochrane, Chris Dolan, Bob Rogers, Allison Randal, Lee Duhem, Patrick R. Michaud, chromatic, and Nicholas Clark.

It started with Paul suggesting that the ticket could be closed once a decision was made on where formatting information for emacs and vim should be located. Chris mentioned a limitation with the verbose form of the Emacs settings. Bob elaborated, offering a patch as a work-around.

Allison suggested removing all emacs and vim settings from the source code files. She felt that having the tests check for correct formatting addressed the issue without the maintenance costs of editor tips. Patrick and chromatic agreed with her suggestion.

Paul thought that editor hints reduce the amount of cage cleaning work by ensuring that code contributions use the correct style. Nicholas Clark pointed out that the alternative, top-level editor settings, assumes that all a developer's projects use the same coding standard.

After further discussion on options, Allison proposed that for the time being, hints would be left out of Perl files with __END__ or __DATA__ blocks. A future task would be for someone to figure out a way to encourage good habits, without cluttering the source code or assuming that everyone uses emacs or vim. Paul updated the Perl::Critic policy accordingly, and made a note in PDD07.

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

Steve Peters added a reminder to ticket [perl #40950] that a patch still needs to be applied for compiling Parrot with Borland C++.

[perl #41064] Not-so-new 'make' failures on Darwin

James Keenan was happy to report in ticket [perl #41064] that further suggestions from Will Coleda fixed his problem.

Side effect between exit & .HLL

Last week, François Perrad showed some example code where an error of 'no exception handler' was seen when a .HLL directive was added before a simple subroutine. This week he supplied a patch to address the issue.

[perl #41095] [BUG] Segfault in test.exe during Configuration

In ticket [perl #41095], Nikolay Ananiev reported a segmentation fault on Win32. Jonathan Worthington thanked him for the report, and stated that other solutions were being looked at.

[perl #40802] Investigate Supposed JIT Bug with if/unless Optimization

Jonathan Worthington responded to Matt Diephouse's ticket [perl #40802]. He replied that the bug had been fixed, so he removed the comment from the code.

[perl #40816] open opcode creates file if it doesn't exist

Jonathan Worthington responded to open ticket [perl #40816] to clarify that he did not think that it was a bug for '+<' to be the default mode. Jerry Gay felt that it was a bug, unless it was explicitly documented that 'open' would create a file as default.

[perl #40801] [TODO] Rename enter_nci_method to something better

Matt Diephouse created ticket [perl #40801] to request a new name for enter_nci_method. Kevin Tew suggested register_nci_method.

[perl #41099] [PATCH] root.in Makefile and CREDITS

Eric B. Lubow created ticket [perl #41099] to include a patch to the makefile. Paul Cochrane noted that there were two patches and asked which one should be applied. Eric clarified, and Paul applied the patch as r16183.

[perl #41102] [PATCH] On Win32 with Visual C++, nmake was not automatically selected if mingw was also found on the system

David Woldrich reported a problem with the Parrot configuration script and included a patch, which was applied as r16129. Ticket [perl #41102] tracked the bug.

[perl #41103] [BUG] stdin.'readline'() segfaults on systems w/o readline support

In ticket [perl #41103], Patrick R. Michaud reported a segmentation fault.

[perl #41104] [PATCH] Building on MinGW is disrupted by the presence of /bin/sh.exe on the PATH, docs explain required environment change

David Woldrich's ticket [perl #41104] contained a patch which was applied as r16187.

[perl #41105] [PATCH] Silence a warning on Cygwin

Steve Peters created a patch to eliminate some warnings on Cygwin. It was applied as r16177 and can be viewed as ticket [perl #41105].

Generated .pm files in MANIFEST

Paul Cochrane wanted to know why some files, which are auto-generated, are mentioned in MANIFEST instead of MANIFEST.generated. He planned to move them if there were no objections.

[perl #31652] [TODO] Win32 - Microsoft Visual C++ Toolkit 2003

In ticket [perl #31652], chromatic asked if the toolkit was still required, now that ICU is available. Jonathan Worthington replied that the toolkit was one of the easiest ways to get a C compiler for Windows, and therefore it was still useful to have it documented. Ron Blaschke commented that he thought it was going to be discontinued.

Jonathan Worthington requested a patch for readme.win32.pod, which Ron agreed to write.

[perl #41110] [PATCH] tru64: compile (src/nci.c) and runtime (src/memory.c)

Jarkko Hietaniemi created ticket [perl #41110] to provide patches, which were applied as r16208.

[perl #39802] [PATCH] [CAGE] turning up the warnings levels in gcc as much as we can

Some time ago, Kevin Tew created ticket [perl #39802] to offer a patch to increase warning levels in gcc. Paul Cochrane applied a modified version of the patch but asked what version of gcc some of the flags belonged to, as they did not work with his gcc. Kevin replied.

Re: [perl #39742] [BUG] installed parrot conflicts with dev parrot.

A while ago, Will Coleda reported in ticket [perl #39742] that there was a conflict between an installed version of Parrot and a development version.

Recently, Leopold Toetsch reported that it seemed like a BSD linker issue, because he couldn't verify the problem on Linux. David Landgren was able to verify that the problem is not resolved.

More Undef vs. Null...

Will Coleda wanted to know if Hash and Array keys are meant to have different results when keys are unset. Leopold's opinion was that the .Undefs returned by Arrays are a legacy, and that .Null is correct.

Jonathan Worthington submitted a patch which changes the PMC to use .Null. However, he did not want to apply it until there was a design decision, and until he'd had a chance to fix some of the code which expected to receive .Undef.

Patrick R. Michaud added that there are several places where .Undef was expected. He had no strong feelings about one design over another, but wanted people to be aware of the impact the change would have.

Jerry Gay felt that it would take a coordinated effort and suggested a dedicated day for the change, with community involvement.

Allison Randall gave the decision in favor of consistent use of null. She requested that someone add a note about the change in DEPRECATED.pod.

[perl #40253] [PATCH] [CAGE] always cast printf("%p") to (void *)

Ticket [perl #40253] received an update from Paul Cochrane, who asked if the patch should still be applied. Will Coleda was satisfied with whatever portions of the patch Paul had been able to apply. This was done as r16211.

Assertions and MMD (on Windows XP)

Ron Blaschke had some problems with compiling Parrot on Win XP with Visual C++ when assertions were enabled. He wanted to know if anyone else had this problem, and why the assertion checks if the lowest two bits of a function pointer are zero. chromatic explained that those two bits will be zero if the pointer is raw. Leopold Toetsch added that it was a hack, and the solution was to replace the table with an MMD cache representation.

Janitor Tasks

chromatic reported that he was creating the next Perl.com newsletter and needed a list of Cage Cleaner tasks suitable for someone with Perl and C skills, but very little free time?

Bind to an Unspecified Port

Matt Diephouse is writing a PIR socket library. He found that if he uses '0' as the desired port, the OS will select a port, but that Parrot offers no way to discover what the port was. He included a patch which fixed this for UNIX, and requested help with the Windows version.

Users

Unwanted scalar references

Ovid thanked the mailing list for answering some of his earlier questions. His latest question was how to dereference an unexpected scalar reference.

hello, does anybody who knows the svn respo of synopsis docs?

Fayland Lam asked for the location of the synopsis repository. Audrey Tang replied with the repository URL.

Junctions as arguments (Pugs bug)

Ovid included a code snippet where he was casting a junction as a string and received unexpected results. He wanted to know what the proper response was, in order to write a test.

Jonathan Rockway was not sure what output could be expected from say-ing a junction. He saw two possibilities, and thought that Ovid's expectation was better, but wanted to hear other opinions before tests were added.

Larry Wall answered that what Ovid described was standard autothreading behavior, as described in S09.

Compiler

take: bug or feature?

Ovid posted some code which was failing with the latest Pugs and asked if there was a problem with the code or Pugs. Sean O'Rourke also thought it was a bug. Ovid later confirmed that it was a bug and it was being worked on.

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

Sunday December 17, 2006
04:47 AM

Perl 6 summary, 10-16 December, 2006

This week on the Perl 6 mailing lists

"With the little sense of smell I have left, this smells like INTERCAL's 'COME FROM' statement to me..."

-- Larry Wall, who has a cold, in 'supertyping'

Language

supertyping

In this thread, TSa brought up the concept of supertyping again. The example of Square <: Rectangle was included, along with others. TSa's question involved an example where the object's type was changed while its identity was preserved. Additionally, TSa asked if supertyping will exist in Perl 6, and if so, how would 'superdoes' and 'superis' concepts be expressed.

Jonathan Lang attempted to rewrite the question for a larger audience. He explained that the suggestion was to go from specific to general, rather than the other way around.

Jonathan then noted that there are four approaches to code reuse, three which add functionality, and one which restricts it. This led him to see supertyping in terms of exemptions for the fourth case. Luke Palmer responded with an equation to express the relationship, and his answers to the questions of whether it should be illegal to add a required method to A if B does not implement it, given role A superdoes B, and if a required method for A should automatically become a required method for B.

There was some discussion on how 'superdoes' would be written, with 'done_by', 'bequeath', and 'by' being proposed. Ruud H.G. van Tol offered more suggestions than a thesaurus.

Larry Wall first wanted to see use cases which go beyond the number examples in order to see the value of the proposal to those who aren't interested in type theory. Luke Palmer, on the other hand, expressed his interest in continuing to consider the idea until it is solid enough that he would be comfortable with it. Larry added his thoughts concerning namespace issues. There was a great deal more discussion formulating the specifics of the proposal.

Gather/Take and threads

Given a gather block which spawns multiple threads, Joe Gottman wanted to know if it is guaranteed that no object returned is lost, given that the relative order of items returned is indeterminate.

This week, Larry Wall responded that gather/take is defined over a dynamic scope, and each thread is a different dynamic scope, so by default there would be no results from other threads. He also entertained the converse, that gather/take is a normal way to set up inter-thread queuing. The short answer seemed to be that this has not yet been decided.

Parrot Porters

RFC: Proposal for dynamic binding

This thread was started by Bob Roger's proposal for dynamic binding. To date, it has included an extended discussion between Bob and Allison Randal, plus a request from Leopold Toetsch.

Allison began this week by explaining her understanding of the terms dynamic scoping, assignment and binding. Her view of the proposal is that it offers a textbook definition of dynamic scoping. The discussion has included dynamic binding, dynamic scoping, and temporization, however. With the terms defined, she went on to propose that Bob create a new proposal for implementing dynamic scope which does not contain any references to temporization. Bob agreed to do this, but asked for a few clarifications first.

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

chromatic responded to ticket [perl #40958] with a second patch, which improves upon his earlier attempt. However, he noted that it seems to work poorly with Data::Dumper and that his solution, while non-invasive, was not ideal. He described his preferred fix.

[perl #41055] [BUG]: 'Argument is not numeric' warning in Darwin configuration

Last week, in ticket [perl #41055], James Keenan registered a bug with running perl Configure.pl, which seemed to be related to having a 3-level version number.

This week, Lee Duhem commented that it would probably be enough to get the major OS version.

[perl #41064] Not-so-new 'make' failures on Darwin

Ticket [perl #41064] was created by James Keenan to report another failure to make Parrot on Darwin. He expressed frustration that he is still seeing the same problem which he encountered at the Chicago Hackathon and described the measures he has taken to resolve it.

Will Coleda found a possible file ownership problem, and suggested trying a new checkout. After determining that this was not the cause, Will asked several questions in an attempt to pinpoint the cause. Several further posts were made by both James and Will as they tried to determine the source of the problem. Eventually Will concluded that the most likely culprit was James using another compiler, rather than the Apple version of gcc/g++.

yield from a method

Will Coleda showed how the current :method and .yield implementations and asked if it was desirable for them to work in this way. He was working on the 'Range' object and encountered this problem.

Bob Rogers thought the proper fix would be to build Coroutine on Continuation instead of Sub. He also suggested storing the coroutine state explicitly in the object, and emulating yielding the method.

Allison Randal responded that the current functionality is desired for class methods, although it makes no sense for instance methods. She advised making yield object-specific within methods.

Side effect between exit & .HLL

François Perrad showed some example code where an error of 'no exception handler' was seen when a .HLL directive was added before a simple subroutine. He wondered if that was a feature or a bug.

Past-pm basic string types

Allison Randal asked how to best pass-through string types from a compiler to Parrot without doing string processing. Patrick R. Michaud replied that it is expected that it will be rare for a HLL string literal format to exactly match a string literal in PIR. Consequently, it expects that the HLL will have decoded the strong constant according to the HLL rules, and PAST-pm will re-encode the string to work in Parrot. He offered to modify PAST-pm to provide a "send literal" option.

Allison thought that was a good idea, and appreciated that the current system makes no assumptions about what constitutes a string. Later Patrick realized that the functionality already exists, if the ctype isn't set. This is subject to change, however, so he included more specific instructions for performing the task.

Past-pm printing the return value of the main routine

Allison Randal cited an example of printing a simple statement, '2', which would actually print '21' because the main routine is returning the value of the last statement (true), which is correct for Perl but not all languages. Also, the HLLCompiler is printing out this return value, and she wanted to know why that was happening. Patrick R. Michaud reported that this has since been fixed.

[perl #41082] [PATCH] Cygwin: conflicting types for _LIB_VERSION

Greg Bacon opened ticket [perl #41082] to report a failure with building r16097 on Cygwin. He supplied a patch. After Jerry Gay closed the ticket, he asked if it was a known issue, and what the solution was.

Bug Day

Will Coleda created a page to prepare for bug day. December 16th was bug day.

Users

Error running Pugs tests

Ovid reported that Pugs r15881 gave some errors with his new GHC 6.6 if he ran a test without -lblib6/lib. He wondered why it would generate a syntax error if he left out that portion of the line. Gaal Yahas suggested that it was due to an old version of Test.pm from the earlier installation.

Introspection and list question

Ovid had a quick question on how to do introspection in Pugs. He also wanted to know how to flatten nested lists in Perl6. Jerry Gay responded that introspection is mostly unimplemented. He also pointed Ovid to S02 for the answer to his other question. Gaal Yahas suggested that the Official Perl 6 Documentation was the best place to look for updated synopses. He proposed gather to flatten a list, but noted that it was not yet implemented. Larry Wall replied that that would only flatten a recursive structure with help, and noted that Pugs implements the block form of gather. jerry gay Gaal Yahas Larry Wall

Strange error message with anon subroutine

Ovid showed some code he had written to compress a list. He showed that once he had added some return statements inside an anonymous subroutine, he received an error message about using a control structure outside a routine. Ovid wondered if he had made a mistake or if there was a bug.

Larry Wall replied that it was expected to work that way. He quoted a section of S06, and also referenced S04. He advised changing the pointy block in to an official sub. Gaal Yahas also gave similar advice.

Compiler

6-on-5 and read only aliasing

Nicholas Clark announced a placeholder named BIND for 6-on-5 aliasing, which should replace the need for the Perl 5 internal type PVBM as of r29544. He included a list of features he thought were needed for 6-on-5, and asked for other 4-letter (or shorter) words which were better than BIND.

David Nicol noted that increasing internal types to 32 instead of keeping them at 16 would allow the top ones to accelerate tied and overloaded types. Nicholas replied that there were too many switch statements in the core, and he would prefer switching to vtables.

David Landgren thought BIND was an alias, which was like a nickname, and therefore proposed NICK.

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

Sunday December 10, 2006
06:41 AM

Perl 6 summary, 3-9 December, 2006

This week on the Perl 6 mailing lists

"Your faithful Dynamic Environmentalist"

-- closing signature of Bob Rogers in 'RFC: Proposal for dynamic binding'

Language

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

Last week, a commit from Larry Wall related to expanding tabs led TSa to ask if array equivalence should be defined in terms of Bags. Larry replied that he felt most people would prefer to look at Sets and Bags as Hashes, so he will not include Sets and Bags in the smartmatching table. Darren Duncan also felt that the current summary in Synopsis 6 was adequate.

This week, TSa responded to Darren's request that any change requests be explained in detail. According to TSa, the intent was not to change the synopsis but to have a few points clarified on list, such as the subtype relationship between Set and Bag. TSa also asked if KeyHash, KeySet and KeyBag are forced in to sigiled variables. Darren replied that he would expect that they would work like hashes.

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

In this commit, Larry Wall clarified the relationship between Set/Bag and KeyHash.

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

Larry Wall elaborated on gather, which has been modified to be more like do in that it allows any statement.

Gather/Take and threads

Given a gather block which spawns multiple threads, Joe Gottman wanted to know if it is guaranteed that no object returned is lost, given that the relative order of items returned is indeterminate.

Parrot Porters

RFC: Proposal for dynamic binding

This thread was started by Bob Roger's proposal for dynamic binding. He compared two options, and later gave an analysis of a third (STM) at Leopold Toetsch's request.

Last week, Allison Randal responded to the proposal with the question of why dynamic binding should only apply to globals. She stated that the proposed implementation was not being approved, but noted that one of Bob's ideas concerning threads was of particular interest and likely to be included at some point. Bob replied in depth to the points she raised and asked if he could improve the proposal or if he should give it up.

This week there was further discussion between Allison and Bob.

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

chromatic responded to ticket [perl #40958] by including a patch which demonstrates the problem in the iteration code within the PMC. He noted that this is not the correct fix.

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

Earlier, Patrick R. Michaud reported a bug in ticket [perl #40966].

This week, Matt Diephouse responded. He had seen the error in a different test, and identified the failing assertion. The problem seems to be that constant strings are being garbage collected too soon. He supplied a patch to not collect any constant PObj headers, but was not certain that was what should happen.

Leopold Toetsch replied that if they were being collected, they were being initially created in different object pools and then stored as constants. He requested information about the origin and contents of the constant, in order to track down where it was being created.

Initial feedback on PAST-pm, or Partridge

Earlier, Allison Randal initiated a discussion on Partridge (PAST-pm) with a post of her comments on user experience and implementation.

One subthread which developed dealt with a number of unrelated points. Leopold Toetsch joined Allison and Patrick R. Michaud in this thread. One of the topics involved Parrot limitations related to :init methods.

This week, Allison responded to a proposal from Patrick and asked if he had thought further about the syntax for initialization. She also agreed with treating moving code generation out of POST node objects as low priority. Patrick replied to some of the points.

[perl #41020] [PATCH] pmc2c.pl functionality extracted into separate package

Earlier, in ticket [perl #41020], James Keenan supplied a patch to make pmc2c.pl easier to test. This involved putting most of the subroutines in a new package. He fixed a problem with GetOptions but thought there were additional corrections to be made.

This week, James wrote that he had underestimated the challenges in testing Parrot build tools. He explained the problem, which involved the files which exist and the state of the system at the time that the tests are run, and concluded by asking what was the goal of testing the build tools.

[PATCH] tru64: compile (src/nci.c) and runtime (src/memory.c)

Jarkko Hietaniemi submitted two patches. One was to allow the Parrot trunk to compile in Tru64, and the second one was to eliminate some core dumps.

[perl #41044] use warnings not clean

In ticket [perl #41044], Will Coleda reported a problem with loading the platform and local hints file.

[perl #41047] [BUG] :multi doesn't work with :outer

Patrick R. Michaud created ticket [perl #41047] to report an error with the :multi pragma when :outer is present. Matt Diephouse reported it fixed in r15971.

[perl #41051] [PATCH]: Configure.pl: Spell out what 'ICU' means

James Keenan created ticket [perl #41051] to request that the POD in Configure.pl use 'International Components for Unicode' instead of 'ICU' for clarity. Will Coleda applied the patch as r16021.

[perl #41052] [PATCH]: docs/configuration.pod: Small grammatical corrections

In ticket [perl #41052], James Keenan included a patch to correct grammar in docs/configuration.pod.

Bug Day!

chromatic suggested a virtual gathering on the 16th in #parrot. The purpose of the meeting is to examine the bug database to verify, fix, or resolve issues. Additionally, this meeting would serve to help curious newcomers get started. Lee Duhem felt that some examples could be cleaned up to make it easier for people to get started.

[perl #41053] [TODO] More useful dumping of Env PMC

Bernhard Schmalhofer thought that generic Hash dumping functionality would make it easier to see things such as the Env PMC. This request was ticket [perl #41053].

[svn:parrot-pdd] r16036 - trunk/docs/pdds/clip

Allison Randal added additional notes to the overview PDD on the target platforms for Parrot. The requirement for the 1.0 release of Parrot is that it be supported on major versions of Linux, BSD, Mac OS X and Windows.

[perl #41055] [BUG]: 'Argument is not numeric' warning in Darwin configuration

In ticket [perl #41055], James Keenan registered a bug with running perl Configure.pl, which seemed to be related to having a 3-level version number.

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

Sunday December 03, 2006
09:05 AM

Perl 6 summary, 26 Nov - 3 Dec, 2006

This week on the Perl 6 mailing lists

"... On the sixth day of Christmas my true love sent to me,
Six versions of Perl,
FIVE LANGUAGES COMPILING!
Four bytes of bytecode,
Three POST nodes,
Two ASTs,
And a Partridge with a parse tree."

-- Jonathan Worthington, 'Naming PAST-pm compiler tool chain'

Language

Smart Matching clarification

Earlier, Jonathan Lang inquired about the matching operator for hash keys had changed. This led to a discussion about Sets, Seqs and Bags.

This week, in the subthread 'Set-returning .keys', Darren Duncan clarified his views, stating that while he saw Bags as a superset of Sets, he did not mean to suggest that their implementations should be related. TSa suggested that in a hypothetical inheritance structure, Set would be the main type and Bag would extend it. Ruud H.G. van Tol disagreed, stating that Set is more complex to modify than Bag.

Some discussion of the appropriate return values and operations also came up. For example, Darren proposed that a union of two sets would return a Set, and that Set operations should be terse as they would be common.

The thread 'beg for Bag' followed from this discussion.

implementation for subset types

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

This week, TSa responded to Jonathan's post, wondering how a general polygon would become an instance of an anonymous class once it was modified to become a rectangle. The purpose of the proposal was clarified as providing a means to attach methods to subset types.

beg for Bag

TSa started this new thread from the discussion in 'Smart Matching clarification'. He proposed the addition of a Bag type which completes the set of immutable types. Smylers wondered how this would differ from the Bag which is mentioned in Synopsis 3. Darren Duncan replied that while Bag is mentioned in examples, it is not included in the list of built-in types in Synopsis 6.

An exchange between Tsa and Jonathan Lang on the set operations of Seq was also part of this thread.

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

In this patch, Larry Wall distinguished Set and Bag values from KeySet and KeyBag containers, which made several people rather happy.

Interrogating closures

Yuval Kogman wrote in praise of the partial unification of objects and code references, and closures in general. He proposed allowing closures to declare that captured variables are an instance, and provided a code example. The purpose would be to give the option of inspecting what a closure is encapsulating.

Larry Wall replied that he would look for a declarative solution rather than a callback, which would mean the closure could have a declarator which explicitly captures a lexical and makes it available as an attribute. Yuval responded that the have syntax proposed by Larry looked nice.

Parrot Porters

[perl #40729] [TODO] Tcl - implement [file extension]

Nuno Carvalho responded to ticket [perl #40729] with a patch which implements the first version of file extensions for Tcl.

RFC: Proposal for dynamic binding

This thread was started by Bob Roger's proposal for dynamic binding. He compared two options, and later gave an analysis of a third (STM) at Leopold Toetsch's request.

This week, Allison Randal responded to the proposal with the question of why dynamic binding should only apply to globals. She stated that the proposed implementation was not being approved, but noted that one of Bob's ideas concerning threads was of particular interest and likely to be included at some point. Bob replied in depth to the points she raised and asked if he could improve the proposal or if he should give it up.

[perl #40978] [PATCH] Clean up parts of the MMD system

Ticket [perl #40978] contains a patch from Matt Diephouse to clean up portions of the MMD system. chromatic replied that the patch worked for him.

[perl #40990] [BUG] Parrot segfaults in perl6 08-regex.t (GC/pointer bug?)

Patrick R. Michaud reported a segfault in ticket [perl #40990]. The problem appears in r15837 and happens when the -G flag is not present. Later he reported a second problem as ticket [perl #41035].

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

Paul Cochrane replied to ticket [perl #39826] to report that a Perl::Critic policy has been added which requires use warnings in place of -w.

Naming PAST-pm compiler tool chain

Allison Randal proposed the name 'Partridge' for the PAST-pm compiler tool chain. Jonathan Worthington poetically agreed with the name.

[perl #40991] [PATCH] PAST-pm: Unnecessary dummy 'root' rule in POST transformation

Allison Randal submitted a patch which removes a dummy 'root' rule from PAST.pm's transformation grammar. It was ticket [perl #40991].

Initial feedback on PAST-pm, or Partridge

Allison Randal initiated a discussion on Partridge (PAST-pm) with a post of her comments on user experience and implementation.

Patrick R. Michaud noted that Partridge should not be considered complete, so many of the missing items Allison noted are things which simply haven't been implemented yet. He also added a more detailed response to her specific points.

Several sub-threads developed. One involved the standardization of compiler tools, for example the question of whether each language subclass of HLLCompiler should override the compile method. Some changes were committed as r15882, which Allison liked. She added a patch to keep strict boundaries and makes it possible to override the grammar. There was a discussion on giving each stage a compiler, which both Patrick and Allison wanted. However, Allison wanted each stage to act independently, with only the HLLCompiler controlling the order of the steps.

In another sub-thread, Allison responded to comments concerning types, layers of abstraction and tracking information as part of the compilation process. She was quite satisfied with the work which has been done so far, but had a few more thoughts.

Another response dealt with the remaining points. Leopold Toetsch also joined in, noting that the discussion of Parrot limitations related to :init methods had come up previously.

Finally, Patrick asked which constructs in Punie weren't working yet. Allison responded, and Patrick replied that he was going to be refactoring the HLLCompiler soon.

[perl #40998] [PATCH] Fix build error on Win32

Nikolay Ananiev reported that if the build directory contains spaces the build process fails. A patch was submitted as ticket [perl #40998]. Ron Blaschke proposed escaping or quoting the paths instead. Nikolay Ananiev replied that quotes would require refactoring some of the scripts in the build tree. He submitted a revised patch which only adds a short path if a space exists.

[perl #40999] Latest version of parrot doesn't make test

In ticket [perl #40999], Bob Wilkinson reported that the latest version of Parrot did not pass make test. He included the errors. Patrick R. Michaud gave some suggestions on how to fix the problem, which may be related to an earlier installation of Parrot.

[perl #41000] Can't compile simple parrot example with latest stable parrot

Bob Wilkinson reported that he could not compile an example with the latest stable Parrot. This was noted in ticket [perl #41000]. Patrick R. Michaud replied that he thought the example was out-of-date. Matt Diephouse agreed that the example needed to be updated. This was made into a cage task and fixed.

[perl #41014] [PATCH] Autobox Native Types for MultiSubs

Matt Diephouse created ticket [perl #41014] to address bug ticket [perl #40968]. He decided to match native types using their autoboxed PMC types rather than change _ to mean any PMC in a :multi signature.

Leopold Toetsch replied that he felt that this was not the best choice because it prevented native type optimizations. Patrick R. Michaud agreed with Leopold, but felt that in the short term the patch was better than the current situation. There was some discussion concerning an example of how this would be a problem.

The issue was resolved with r15910.

Interesting post on concurrency models

Allison Randal posted a link to a post on concurrency models.

[perl #41020] [PATCH] pmc2c.pl functionality extracted into separate package

In ticket [perl #41020], James Keenan supplied a patch to make pmc2c.pl easier to test. This involved putting most of the subroutines in a new package.

[perl #40815] Summary of 'make test' failures on Darwin

Earlier, in ticket [perl #40815], James Keenan sent a summary of Parrot test
failures on Darwin. Steve Peters reported that one of the problems had
been fixed in r40818.

This week, James noted that the problem persists. Andy Bach suggested that the problem might have to do with the compiler version. chromatic found it odd that Configure is using g++ as the linker and cc as the compiler. Nicholas Clark replied that this was due to ICU.

[perl #41020] [PATCH] pmc2c.pl functionality extracted into separate package

James Keenan reported in ticket [perl #41020] that he had fixed problems with GetOptions. This led to a discussion of the problems he had with compilation, and a question of what tests on build tools were meant to accomplish.

[perl #41021] [NEW] Parrot::Pmc2c::Utils and t/tools/pmc2cutils/*.t

James Keenan sent in 8 new files in a patch as ticket [perl #41021]. These were created as a result of refactoring pmc2c.pl to make it easier to test.

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

Sunday November 26, 2006
07:48 AM

Perl 6 summary, 19-25 November, 2006

This week on the Perl 6 mailing lists

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

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

Language

Smart Matching clarification

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

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

Closures, compile time, pad protos

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

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

Synopsis 26

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

implementation for subset types

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

Parrot Porters

RFC: Proposal for dynamic binding

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

set_pmc + setref/deref: anyone using them?

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

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

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

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

pmc2c.pl: Proposed Strategy for Revisions and Testing

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Some thoughts on Microsoft Visual C++ 8.0

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

3 subroutines with same name

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

:anon Subs and Namespaces

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

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

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

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

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

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

[perl #40972] Iterator over Env under Win32

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

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

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

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

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

Acknowlegements

This summary was prepared using Mail::Summary::Tools, available on CPAN.

If you appreciate Perl, consider contributing to the Perl Foundation to help support the development of Perl.

Thank you to everyone who has pointed out mistakes and offered suggestions for improving this series. Comments on this summary can be sent to Ann Barcomb, kudra@domaintje.com.

Distribution

This summary can be found in the following places:

See Also

Monday November 20, 2006
11:33 AM

Perl 6 summary, 12-18 November, 2006

This week on the Perl 6 mailing lists

"Sadly, the hallucinogens are essential, not external."

-- Mark J. Reed in 'List assignment question'

Language

how to change the type of objects

Last week, TSa asked how an object could change its type without loosing its identity. As an example, TSa suggested an add_vertex method which could be called on a polygon but not on a rectangle subtype of polygon. Darren Duncan wondered why one would declare a type as a rectangle and then mutate it so that it was no longer a rectangle. His opinion was that add_vertex should be fatal for the rectangle; the user can explicitly cast a rectangle into polygon first; or that the polygon class is immutable, and the add_vertex method creates a new polygon.

This week TSa elaborated, stating that there were three issues: subtyping, the preservation of object identity, and the mutating add_vertex method, which were not all addressed by Darren's answer.

generic ordinal-relevant operators

Darren Duncan showed a list of comparison operators and the type of comparisons they perform. Missing in the list were generic ordinal-relevant operators for less-than, greater-than, and so on, although there are numeric and string comparisons of this type.

Jonathan Lang replied that he doesn't see the need for distinct eqv, == and eq operators; he would rather replace these with ==, '+==, and '~==, or even just == alone. There was further discussion on this proposal, with Darren preferring generics to be the shortest and prefixes indicating the numeric or string casting versions.

Smylers requested that proposals for new operators should be accompanied with an example of awkward code which could plausibly be written in a natural setting, and a second example showing how the proposed operator would correct the situation. Larry Wall added the opinion that perfect orthogonality is neither possible nor desirable.

However, before and after operators were accepted, as were min and max operators. This led to some further discussion on the syntax.

named sub-expressions, n-ary functions, things and stuff

Darren Duncan is designing an RDBMS which is a subset of Perl 6 with simple syntax and domain-specific additions. He gave an overview of the features of the language. This led to a few questions and suggestions on Perl 6. One was for something similar to the SQL (some dialects) with clause, which is an expression which can be embedded in other expressions, with repeated portions calculated only once. Another request was for a syntactical short-hand to add an immutable bag type. Thirdly, he suggested separate operators for integer and numeric operators, especially division. Next, there was a call for floor() and ceil() functions which take a number as input and return an integer. Finally, he proposed that built-in Perl 6 types all have multis for operators.

Mark J. Reed and Mark A. Biggar commented on the absence of 'undef' and 'NaN' concepts in the RDBMS language Darren described, which Darren replied to.

Smylers replied to Darren's first point, suggesting that the do block is similar. Darren replied that it may be sufficient for his purposes, and thanked Smylers for the suggestion. Dr. Ruud added some more examples.

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

Larry Wall added missing generic boolean comparisons to S03.

List assignment question

Vincent Foley supplied some tests for the * operator, which is currently not implemented in Pugs. Larry Wall replied that perhaps $ should be used instead, as * is likely to be confused with the slurpy *. He offered a few suggestions on the tests as well.

There was a side discussion on when my ($a, undef, $b) = 1..3; worked in Perl 5.

Smart Matching clarification

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

Parrot Porters

Coding Standard Questions

Previously, there was a discussion on coding standards. This week, Chip Salzenberg joined in. He thanked Kevin Tew for asking the questions and gave his answers on what the standards should be.

[perl #40934] [TODO] Tcl - check for open channel in src/builtin/flush.pir

Paul Cochrane submitted a patch for ticket [perl #39704] as [perl #40934].

How do I associate methods with a compiler?

Earlier, Patrick R. Michaud gave some background in to the issue, explaining how Parrot currently handles compilers, and what PDD21 has to say on the subject. He was curious about how to conceptually model compilers in Parrot. He favored a compiler with an object which has a compile method as a model.

This week, Patrick summarized a #parrotsketch meeting where it was decided that the convention would be to have a compreg opcode return an object with a compile method, instead of returning an invokable subroutine. Allison Randal clarified a few points from the meeting.

Leopold Toetsch recommended against recreating the compile opcode as a means of making the compile method call. Allison elaborated on what was intended by the suggestion, and Leopold clarified his stance.

[perl #40788] Tcl - bug in interactive tclsh

Will Coleda posted details on how someone could resolve ticket [perl #40788].

[perl #40814] [PATCH] Assorted Solaris fixes

Steve Peters sent in a patch to make Parrot compile on Solaris. It was sent as ticket [perl #40814]. The patch was applied in r15445.

[perl #40815] Summary of 'make test' failures on Darwin

In ticket [perl #40815], James Keenan sent a summary of Parrot test failures on Darwin. Steve Peters reported that one of the problems had been fixed in r40818.

[perl #40816] open opcode creates file if it doesn't exist

In ticket [perl #40816], Jonathan Rockway reported that the open opcode creates the file if the file doesn't exist. He was not sure if this was a bug.

[perl #40817] [TODO] track generated files during the configure/make process

Jerry Gay suggested appending each file to a list when it is created, replacing the MANIFEST. The idea was described in [perl #40817].

[perl #40818] [PATCH] Silence warning in t/library/pcre.t

In ticket [perl #40818], Steve Peters created a patch to fix a warning in t/library/pcre.t, which was applied as r15442.

[perl #40819] [TODO] Remove Duplication in t/codingstd/*.t Files

chromatic created ticket [perl #40819] to request the removal of duplicate tests in the coding standards section.

[perl #40822] Pg NCI Test Makes Unportable Connection

In ticket [perl #40822], chromatic commented that t/library/pg.t's assumption of a certain database setup is faulty. He proposed using an environment variable to define the user name and password.

[perl #40823] Win32 vs. the world - length for sprintf('%e') - what's right?

In ticket [perl #40823], Chip Salzenberg requested that someone see what Perl does on Win32 to test sprintf. SADAHIRO Tomoyuki answered that it drops the superfluous zero from the return value.

Jerry Gay noted that he preferred a fix in Parrot_sprintf, rather than in the related test. He felt that Parrot should act in a consistent way across platforms. Allison Randal noted that the decision had been made to go with a platform-independent implementation.

[perl #40824] loadlib opcode causes problems with exceptions

In ticket [perl #40824], Matt Diephouse included a patch to fix loadlib failures which were previously not catchable exceptions. Bob Rogers noted that he thought the problem was in the :init code. The patch was committed as r15413, but it was agreed that the questions remain.

[perl #40826] Mac OS X and Dylib Funcs

In ticket [perl #40826], chromatic reported some portability wrappers which were deprecated in Mac OS X 10.3 in favor of the functions themselves. He removed the test which relied upon the old behavior, but noted that the Darwin hinter should pick the correct dl.c file based upon the OS X version.

[perl #40827] [BUG] testing alarm with exception handlers causes runloops to play leapfrog

Jerry Gay noted in ticket [perl #40827] that there is a problem with alarm and exception handlers. He included some sample code. Bob thanked Jerry for the example but replied that he didn't yet have a good solution to the problem.

[perl #40834] [BUG] - PMC methods aren't inherited to PIR subclasses

In ticket [perl #40834], Patrick R . Michaud reported that if a METHOD is defined in a .pmc file, it is not automatically inherited by PIR subclasses. Leopold Toetsch clarified that some METHODs are implemented in a way which doesn't cope with inheritance. He thought this was related to ticket [perl #39329].

Assertion failed: (PTR2UINTVAL(mmd_table[i].func_ptr) & 3) == 0

Ron Blaschke reported that in r15444, Parrot failed to smoke on his Win XP box. He included the results of the attempt.

RFC: Proposal for dynamic binding

Bob Rogers included a patch to the proposal for dynamic binding in Parrot, and requested comments. Leopold Toetsch asked Bob to consider the impact of a third variation using STM, which is already implemented. Bob replied with a description of the problems he saw with STM and continuations.

Allison Randal thanked Bob for the proposal and gave some comments she had on it. Bob replied.

[perl #40861] [CAGE] - add a Perl::Critic policy to look for FIXME|TODO|XXX

In ticket [perl #40861], Paul Cochrane noted that the test which checks for TODO (and related) comments only applies to C-language files, and that it would be good to look for them in Perl as well. Chris Dolan replied that there is a policy available on CPAN which would do this.

Will Coleda asked Andy to adjust the patch to allow TODO comments with RT tickets attached to them, but to disallow those without. Andy Lester objected to Will's suggestion, and proposed instead that TODO items with tickets simply include 'RT' and the ticket number. This was addressed in '[perl #40912] [CAGE] Tcl - convert all XXX (#...) comments to the RT#... format '

set_pmc + setref/deref: anyone using them?

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

[perl #40863] [TODO] Tcl - Actually support bignums

In ticket [perl #40863], Matt Diephouse showed some code which checks if the value is too large to be represented by a normal integer, and sets the value to zero if it is. He thought it should be possible to change the code to support larger numbers.

[perl #40865] [TODO] ensure isxxx() and toxxx() are only passed unsigned char values

In ticket [perl #40865], Chip Salzenberg noted that the isxxx and toxxx functions should only be given unsigned character values. He requested that a cage cleaner check calls to them, and repeat the task periodically.

Fwd: Re: [pirate] Re: languages/python - any plans?

Leopold Toetsch forwarded a letter from the pirate development list. In the mail, Tyler Coumbes said that he had some Python PMCs based off the ones in Parrot's repository. He had hoped to clean them up and submit patches, but life was interfering. He indicated where the files could be found, in case someone else was interested in looking at them.

Release: Parrot 0.4.7, "Caique"

Chip Salzenberg announced the release of Parrot 0.4.7, "Caique".

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

Chip Salzenberg created ticket [perl #40884] to request that someone check the email archives for the names given to previous releases to add to the history in docs/parrothist.pod.

Paul Cochrane reported that he had done some of the work, but that he was unable to find reports of other releases. Also, he thought there were some duplicated names.

Object design revisions

Allison Randal reported that she had finished reviewing the PMC object design meeting notes, which was a summary of the design discussion written during last weekend's hackathon. She invited questions or comments. chromatic had a few notes, and Allison responded to his points.

[pmc_object_design_meeting_notes] Properties

Leopold Toetsch responded to the recommendation to deprecate property support in PMCs. Discussion ensued, with chromatic and Allison Randal participating. Allison suggested that the discussion of properties should be delayed for a week because it is related to the role architecture.

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

In ticket [perl #40905], Will Coleda noted that files copied from external sources should not be required to meet internal coding standards.

[perl #40909] [BUG] Tcl - [namespace eval] + [source] + [proc] don't play well together

In ticket [perl #40909], Matt Diephouse reported that some Tcl code was not working as expected. He thought there should be a test, but because it depends upon an external file, he was not sure how to best write it.

Fwd: MC units refreshed

Based upon a post from H. Merijn Brand to the Perl 5 Porter's list, chromatic wondered if the configure system needed to be updated.

[perl #40910] [CAGE] Fix t/distro/file_metadata.t to work in svn

In ticket [perl #40910], Paul Cochrane wanted t/distro/file_metadata.t to work with both svn and svk. chromatic reported it fixed in r15616.

[perl #40911] [CAGE] Merge manifest generating scripts with mk_manifest_and_skip.pl

Paul Cochrane created ticket [perl #40911]. In it he suggested merging the functionality of two tools, gen_manifest_skip.pl and mk_manifests.pl.

[perl #40912] [CAGE] Tcl - convert all XXX (#...) comments to the RT#... format

In ticket [perl #40912], Paul Cochrane asked for all TODO items to be changed to 'RT #' style. This request stemmed from the discussion '[perl #40861] [CAGE] - add a Perl::Critic policy to look for FIXME|TODO|XXX '. It was done in r15651.

[perl #40923] test errors

Seth Whelan reported a problem with Parrot 0.4.7's make test. He included information about his system in ticket [perl #40923].

Perl segfault in cppcomments.t

Paul Cochrane reported a segmentation fault with a test. It looked like a problem with the regular expressions which were used to remove C-comments.

[perl #40932] [PATCH] languages/abc test harness

In ticket [perl #40932], Nuno Carvalho sent a patch which is designed to finish the test harness for the language abc. Patrick R. Michaud applied the patch.

pmc2c.pl: Proposed Strategy for Revisions and Testing

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

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

[perl #40937] bad links in docs/ROADMAP.pod

Will Coleda wanted some bad links to be corrected. He requested this in ticket [perl #40937].

[perl #40938] [PATCH] languages/abc test suit

Nuno Carvalho submitted a patch in ticket [perl #40938]. It is designed to add more files to the abc test suite. It was applied.

[perl #40939] [PATCH] languages/abc test suit

In ticket [perl #40939], Nuno Carvalho sent a patch which cleans up the abc test harness. It was applied.

cvs-parrot

[svn:parrot] r15517 - in trunk: . src

chromatic reported an error with r15517. Patrick R. Michaud confirmed that it broke on Linux/x86_64 as well. chromatic attached a patch which he was not happy with because he was curious about how it affected Patrick's system. Patrick agreed the patch was just masking a deeper problem, but that it did appear to fix the problem. Leopold Toetsch checked in the patch.

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

Sunday November 12, 2006
03:34 AM

Perl 6 summary, 5-11 November, 2006

This week on the Perl 6 mailing lists

"...problem 2 is probably just me being confused (though I'd love an explanation, from @leo ;-))."

-- Jonathan Worthington, in 'set_pmc_keyed_int delegates to set_pmc_keyed...?'

Language

how to change the type of objects

In this thread, TSa asked how an object could change its type without loosing its identity. As an example, TSa suggested an add_vertex method which could be called on a polygon but not on a rectangle subtype of polygon. Darren Duncan wondered why one would declare a type as a rectangle and then mutate it so that it was no longer a rectangle. His opinion was that add_vertex should be fatal for the rectangle; the user can explicitly cast a rectangle into polygon first; or that the polygon class is immutable, and the add_vertex method creates a new polygon.

Parrot Porters

Anyone relying on objects stringifying to class names?

Last week, Jonathan Worthington asked if he could change the behavior of ParrotObject instances, but later changed his mind because he thought the current system is being used in PGE. This week, Patrick R. Michaud responded that he couldn't think of anywhere PGE would be using this, and requested an example.

RFC: Actions without barriers

Earlier, Bob Rogers and Allison Randal had a discussion on how to change action invocations to remove the continuation barrier. It was decided that Bob's current approach wouldn't lead them in the desired direction. This week, Bob continued to elaborate on Error_handler, which he thought was worth keeping under the name of ExitContinuation.

:init Where should we put the flag?

Last week, Kevin Tew asked which flag he should use for :init. There was some discussion on reusing flags, but tests were not successful. This week, Leopold Toetsch replied that it clearly was not safe to reuse compile-time flags, and made a list of requirements for flags in general and Kevin's request in particular.

[perl #40626] [BUG] :vtable fails for subclasses of core classes

Earlier, Patrick R. Michaud reported that the new :vtable pragma didn't work when used on methods of subclasses of core classes, and added a test demonstrating this to t/pmc/parrotobject.t. This was ticket [perl #40626]. Jonathan Worthington thanked him for the test case which enabled him to find the bug.

This week, Patrick replied that Jonathan may have already addressed an issue relating to saved properties of subroutines, but that he was providing another test class to show the item that was giving him difficulties.

set_pmc_keyed_int delegates to set_pmc_keyed...?

Patrick R. Michaud had been working on the Capture PMC type and ran in to a number of issues with subclassing, which he expressed in his post. Leopold Toetsch replied that class inheritance from PMCs will hopefully be improved with the :vtable patches. Jonathan Worthington suggested removing defaults from default.pmc and creating an extra attribute for PMCs such as auto_keyed which generates missing keyed methods. Nicholas Clark was not satisfied with the proposed solution, which felt like a hack to him.

Jonathan Worthington sent a patch which tries to address the root problem by searching vtables of parent classes. There were some problems with the patch, which led Jonathan to conclude that there's a real issue with a subclass always being an instance of ParrotClass PMC.

There was further discussion on possible solutions. Leopold Toetsch removed the default as r15111.

TODO] release prep: update CREDITS and NEWS

In ticket [perl #40686], Jerry Gay requested that someone update the CREDITS and NEWS files in preparation for the upcoming Parrot release.

SVN tips in wranglers.pod

Paul Cochrane included a patch on SVN usage tips for doc/dev/wranglers.pod. He asked for any additional comments. Bernhard Schmalhofer suggested that when a commit is associated with a ticket, the ticket header can be used in the commit message. Jerry Gay replied that he added some material and committed the patch, which is r15225.

[perl #40696] [CAGE] t/doc/pod.t should report filenames upon failure, like coding standard tests do

In ticket [perl #40696], Jerry Gay reported that t/doc/pod.t gives test numbers rather than filenames when failing, which isn't very useful. He wanted it changed to one test which reports filenames on failure.

[perl #40632] [TODO] classify failing tests for next release

In ticket [perl #40632], Jerry Gay included a list of failing tests. Will Coleda added his failures to the ticket. chromatic suggested working from the smoke server to collect and upload data.

How do I associate methods with a compiler?

Patrick R. Michaud gave some background in to the issue, explaining how Parrot currently handles compilers, and what PDD21 has to say on the subject. He was curious about how to conceptually model compilers in Parrot. He favored a compiler with an object which has a compile method as a model.

Adriano Rodrigues asked if it would be possible to support both that and a subroutine-based system.

Patrick replied that it was, and both are possible within the existing current framework. Patrick was interested in which would be considered the standard.

[perl #40783] [CAGE] get fixme.t to check for an RT ticket number after TODO items

In ticket [perl #40783], Paul Cochrane reported that t/codingstd/fixme.t only searches for 'FIXME|XXX|TODO' and suggested that if there is an RT ticket number associated with it, it should not be an error. Will Coleda replied that it was fixed in r15324.

[perl #39704] [CAGE] Tcl - Convert TODO/XXX comments to RT tickets

Paul Cochrane reported that he had taken all the warnings generated by 'TODO' items in the code and converted them to RT tickets. This had been requested in [perl #39704].

[perl #40788] Tcl - bug in interactive tclsh

In ticket [perl #40788], Will Coleda noted a problem with interactive tclsh.

[perl #40217] Parrot_autoload_class() knows about Python and Tcl

Will Coleda sent a patch to remove a function with hardcoded language names. This was in response to ticket [perl #40217].

Users

modifying within a perl5 block

Richard Hainsworth included some example code and committed a test to t/perl5 which demonstrates the problem he is experiencing.

Compiler

ANN: Pugs Repository URL Changed.

Audrey Tang announced that the Pugs repository has a new location:

http://svn.pugscode.org/pugs/
https://svn.pugscode.org/pugs/

Subversion users should switch their working copy with: svn switch --relocate http://svn.openfoundry.org/pugs http://svn.pugscode.org/pugs

SVK users should use: svk mirror --relocate //mirror/pugs http://svn.pugscode.org/pugs

Further information can be found in the original post.

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

Sunday November 05, 2006
02:50 PM

Perl 6 summary, 29 Oct - 4 Nov, 2006

This week on the Perl 6 mailing lists

"That fuzziness is classic $Larry. Some of the rest of @Larry can be more *mumble*matic."

-- chromatic in 'where constraints as roles'

Language

where constraints as roles

A few clarifications were added to the original thread 'how typish are roles'.

In the subthread 'where constraints as roles', started by Trey Harris, the discussion from the previous week continued.

Last week, Trey asked if a where clause or junctive type defines an anonymous role, while a type parameter defines a lexical role, and suggested adding this information to S12. Larry Wall replied, saying that a where clause is there for pattern matching...but went on to note other possibilities. Jonathan Lang felt that S02 gave some indication of what Trey suggested, and that where clauses and junctive types should not be turned in to roles: roles and junctive types should be turned in to where constraints.

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

Larry Wall committed a patch on applying dwimmy hypers to hashes, then disagreed with himself...maybe. He sees two ways of looking at it, and finds merit in both.

mmd-draft.txt

Earlier, TSa noted that multi-method dispatch is not yet in S06 and asked if someone could explain the voting mechanism used to select the dispatch target.

This week, Audrey Tang replied that the plan had been for Larry Wall to review it in Brazil, but that it may now have to wait a while as Larry cannot make it to Brazil. She tried to answer the question on voting, and elaborated further on #perl6. TSa summarized her explanation.

Parrot Porters

[perl #40443] Separate vtable functions from methods (using :vtable)

Earlier, in ticket [perl #40443], Matt Diephouse noted that it was decided at OSCON 2006 that vtables and methods should be separated.

Jonathan wondered if this should be postponed until the object and namespace issues have been dealt with. Allison Randal summarized the results of her last conversation with Chip Salzenberg on the topic. Jonathan thanked her for the specifications and said he would work on an implementation.

This week, Jonathan reported the implementation in r15039. Allison suggested a two release cycle for deprecating the old syntax. A bug she reported with Punie was addressed in r15048, but some tests continued to fail (the bug was covered in '[perl #40626] [BUG] :vtable fails for subclasses of core classes '). There was further discussion about optimization, with it being agreed that first the functionality would be added, and later the code could be improved.

Anyone relying on objects stringifying to class names?

Jonathan Worthington noted that if you have a ParrotObject instance and write $S0 = foo, $S0 will contain the name of the class. He finds this problematic because you cannot overload what class it stringifies to. He would like to get rid of this but asked if anyone was relying on the current behavior. He wants to get rid of it in a week.

Patrick R. Michaud joked that he thought a week was too long to wait for its removal. He had no objections so long as tests still pass. Allison Randal agreed with a week, provided tests pass.

Later, Jonathan wrote that he had been confused when he wrote the post; the code is being used in PGE, for instance.

[perl #40608] key_append segfault

In ticket [perl #40608], Jonathan Worthington showed a program which segfaults in Parrot on Windows. This issue was resolved in r15043.

RFC: Actions without barriers

Bob Rogers considered different approaches to eliminating the continuation barrier from action invocation and wondered if his latest idea was worth pursuing. Allison Randal replied that she saw the temptation in the solution, but was glad Bob had paused to ask because it would ultimately lead in the wrong direction. They discussed the matter further.

:init Where should we put the flag?

Kevin Tew implemented :init some time ago but cannot check it in because it requires a flag. Currently he is using PObj_private7_FLAG; Leopold Toetsch suggested PObj_private2_FLAG but that broke tests. He would like to know what flag he should use.

Jonathan Worthington asked if PObj_private3_FLAG could be used, as it is labeled as unused.

Leopold Toetsch suggested 2 or 0. Kevin included his failing test results with these flags.

[perl #40616] [PATCH] Helping splint check further through the parrot source

This week, Paul Cochrane submitted the following patches:

'make rsync' failing - required anyway?

Paul Cochrane reported a "is this still working" comment he found in config/gen/makefiles/root.in. He found that it didn't work, and wondered if this was something which should be fixed. If so, someone else should look at it because Paul does not have privileges to do it.

PDD 25 "Concurrency" - first review

Allison Randal announced the first version of PDD25 on threading and concurrency. She opened the floor to discussion. Joshua Gatcomb linked to a related Perlmonks thread.

Allison thanked him for the link and wrote a bit about the lo language, which uses 'futures' for concurrency. Larry Wall replied that lazy lists can be viewed as a form of futures.

[perl #40625] [BUG] website pointer to PDD25 is broken

Jerry Gay created ticket [perl #40625] to note that the link on parrotcode.org to PDD25 is broken.

STM runtime test hanging intermittently

Paul Cochrane reported a hanging test in t/stm/runtime.t and wondered if other people have seen the same problem. He included his configuration.

[perl #40631] [TODO] add tests for native PMC types

In ticket [perl #40631], Jerry Gay requested some tests for native PMC types in the t/pmc directory. At the moment there is just one test for each which verifies if they can be created. The testing should be much more extensive.

[perl #40632] [TODO] classify failing tests for next release

In ticket [perl #40632], Jerry Gay noted the tests which are failing. Will Coleda included his list of failures.

[perl #40634] leftover files...

Will Coleda created ticket [perl #40634]. He listed some unexpected files. He thought that one should be ignored by svn, and the others should be cleaned up after creation.

[perl #40635] osx build warning:

Will Coleda posted some warnings he got on OSX to ticket [perl #40635].

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

In ticket [perl #40646], Patrick R . Michaud invited people to write tests for code which adds combined enumerated classes to PGE.

[perl #40653] [CAGE] [TODO] test pdd format

Jerry Gay created ticket [perl #40653] for the task of testing that PDDs follow the format laid out in docs/pdds/pdd_template.pod.

Users

variables inside an eval

Richard Hainsworth asked how to use a scalar inside an eval with Perl 5 from within Pugs. Audrey Tang reported the bug fixed as of r14574.

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.

Yuval Kogman helped with this week's summary.

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