This week on the Perl 6 mailing lists
“Sadly, the hallucinogens are essential, not external.”
– Mark J. Reed in ‘List assignment question’
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,
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
which were not all addressed by Darren’s answer.
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
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.
after operators were accepted, as were min and
max operators. This led to some further discussion on the syntax.
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
type. Thirdly, he suggested separate operators for integer and numeric
operators, especially division. Next, there was a call for
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
is similar. Darren replied that it may be sufficient for his purposes,
and thanked Smylers for the suggestion. Dr. Ruud added some more examples.
Larry Wall added missing generic boolean comparisons to S03.
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
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.
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.
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.
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
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
compile method, instead of returning an invokable subroutine.
Allison Randal clarified a few points from the meeting.
Leopold Toetsch recommended against recreating the
as a means of making the
compile method call. Allison elaborated on
what was intended by the suggestion, and Leopold clarified his stance.
Will Coleda posted details on how someone could resolve ticket [perl #40788].
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.
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.
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.
Jerry Gay suggested appending each file to a list when it is created, replacing the MANIFEST. The idea was described in [perl #40817].
In ticket [perl #40818], Steve Peters created a patch to fix a
t/library/pcre.t, which was applied as r15442.
chromatic created ticket [perl #40819] to request the removal of duplicate tests in the coding standards section.
In ticket [perl #40822], chromatic commented that
assumption of a certain database setup is faulty. He proposed using an
environment variable to define the user name and password.
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.
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
The patch was committed as r15413, but it was agreed that the questions
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.
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.
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].
Ron Blaschke reported that in r15444, Parrot failed to smoke on his Win XP box. He included the results of the attempt.
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.
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 ‘
Matt Diephouse wanted to know if anyone would be upset if he removed
set_pmc vtable and the
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.
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.
In ticket [perl #40865], Chip Salzenberg noted that the
toxxx functions should only be given unsigned character values. He
requested that a cage cleaner check calls to them, and repeat the task
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.
Chip Salzenberg announced the release of Parrot 0.4.7, “Caique”.
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
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.
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.
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.
In ticket [perl #40905], Will Coleda noted that files copied from external sources should not be required to meet internal coding standards.
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.
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.
In ticket [perl #40910], Paul Cochrane wanted
to work with both svn and svk. chromatic reported it fixed in r15616.
Paul Cochrane created ticket [perl #40911].
In it he suggested merging the functionality of two tools,
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.
Seth Whelan reported a problem with Parrot 0.4.7’s
make test. He
included information about his system in ticket [perl #40923].
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.
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.
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.
Will Coleda wanted some bad links to be corrected. He requested this in ticket [perl #40937].
Nuno Carvalho submitted a patch in ticket [perl #40938]. It is designed to add more files to the abc test suite. It was applied.
In ticket [perl #40939], Nuno Carvalho sent a patch which cleans up the abc test harness. It was applied.
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.
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, email@example.com.
This summary can be found in the following places: