Perl 6 summary, 17-23 December, 2006

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.

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.

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.

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'.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Without JavaScript enabled, you might want to
use the classic discussion system instead. If you login, you can remember this preference.