This Week in Perl 6, July 5-12, 2005
Welcome to another summary from the frog house, a house so green you can see it from outer space (according to Google Earth).
Perl 6 Compiler
Building Pugs Workaround
Sam Vilain posted a useful workaround to the error
error: field `_crypt_struct' has incomplete type, which occurs on some systems. Fortunately, Salvador Ortiz Garcia found a fix.
Pugs, Pirate. Pirate, Pugs.
Autrijus began plotting with the Pirate folks. Thoughts include unifying PIL and PAST, or possibly retargeting PIL to PAST. Perhaps the result should be a more nautical dog. Maybe schipperke.
Implicit Invocants and Pain
Larry (as the summary will later explain) ruled that
./method was gone. He further ruled that
.method would pitch fits at either compile or run time if
$_ =:= $?SELF were false. Autrijus found this quite difficult to implement. Talk continues, and my instincts tell me that this too will pass, although Larry assures us that it is absolutely permanent for at least a week.
Klass-Jan Stol found that using a assigning a floating point value to a key and then using it makes Parrot segfault. Warnock applies.
Allison Randal hinted that the Perl Foundation has almost finished hammering out some legal stuff and there will soon be sweeping changes throughout the repository addressing copyright issues.
Character Classes in Globs
Will Coleda noted that Tcl would pass more tests if PGE supported character classes in globs. Patrick, unable to resist the siren call of passing tests, implemented it.
Amber for Parrot
Roger Browne announced that he had succeed in extracting viable DNA from a Parrot encased in amber since the Jurassic age. Either that or he released Amber version 0.2.2–I’m not sure which.
Leo has created a branch in SVN (branches/leo-ctx5) of his work implementing the new calling conventions. This led to some discussion of how to deal with optional arguments.
Leo’s Branch Meets
Jeff Horwitz posted some observations and troubles he was having with Leo’s branch of new calling conventions. Leo warned that the branch was still young, but would gladly take test cases.
Leo’s Branch Meets PGE
After the initial discussion of optional parameters, Patrick updated the leo_ctx5 branch of PGE to the new calling conventions. All tests pass.
Get Onto the Bus
Matt Diephouse found a Bus Error when running languages/tcl/examples/bench.tcl. Warnock applies.
MinGW Patch Resurrection
François Perrad resurrected a patch from mid-June with a set of action items. Warnock applies.
Scared Parrots Like Scheme
Joh Lenz posted an announcement that he had an alpha version of Chicken (a Scheme to C compiler) backending to Parrot. Leo provided answers to some of his questions.
Bytecode Vs. PMCs
Matt Diephouse posted a list of questions about the place of PMCs. Some of the core tradeoffs include maintainability, portability, optimization, duplicate implementations, and security.
Leo pointed out that someone removed
make svnclean, but that he found it useful. Chip suggested renaming it
make svnclobber, as it does more than just clean.
Nicholas Clark found a bug in the shortcut to avoid writing a PMC dump file. Warnock applies.
Nicholas Clark suggested that it was probably not wise to
cache. They removed it.
Parrots Getting Smarter
Leo pointed out that at least one parrot understood the concept of zero, putting it some distance ahead of Romans when it comes to math. Once the Parrots start to grow opposable thumbs, I will welcome our new Parrot overlords.
Leo’s Branch Meets Exceptions
Leo posted two suggestions for how the new calling conventions could interact with exceptions. Autrijus liked the idea of unifying exception handlers with the rest of calls and returns.
Control Flow Graph Bugs
Curtis Rawls noted what he thought might be a bug in the
compute_dominators function. Leo confirmed that it was likely a bug. Later he posted a note saying he was working on a new implementation for some of the CFG algorithms. He asked for a hand, but Warnock applied. Actually, I think I have looked at that code before. I would help be happy to take a look, Curtis.
TODO: Steal Good Ideas from Dan
Will Coleda opened a ticket suggesting that we open tickets based on some of Dan’s latest posts to Squaks of the Parrot. Remember: “talent imitates, but genius steals.”
Allison Randal wants to add Punie (a Perl 1 compiler) to SVN. Response was positive.
Mobilizing PM groups
Will Coleda wondered if there had been any work mobilizing Perl Monger groups for the good of Parrot. Maybe I should finally look up the Cambridge or Boston PM group.
Perl 6 Language
As usual in p6l land, there are a couple of really long threads. As usual in p6summarizer land, they will get short summaries. Odd how that happens.
Conflicting Autogenerated Accessors
Last week, Stevan Little wondered what would happen with conflicting autogenerated accessor names. Larry said they would carp as soon as they were discovered.
The first really long thread has to do with the next version of DBI. I am not really a database person, but apparently those who are have strong opinions.
The next really long thread has to do with the next version of Time::Local. I am not really a Time person, but apparently those who are have strong opinions.
Stevan Little and Larry Wall talked about submethods, their purpose, and their interaction with the metamodel. I must say that I have only partially wrapped my head around metamodels at all.
SMD Considered Harmful?
Last week, Yuval Kogman conjectured that MMD should be the one true MD, as it allowed nifty extensibility. This week, Stuart Cook offered a sort of compromise. I rather like Stuart’s compromise.
Piers wants to be able to have classes that inject themselves in correctly at use time, based on what is actually used. Larry commented, but one quote really caught my attention: “Globals are bad only if you use them to hold non-global values.” <off-topic>There is an important lesson imbedded in that quote. We really should learn rules not to follow them blindly, but so that we understand the spirit behind them and respect that instead. Not that I have had screaming matches with any programmers who blindly eschew globals and
gotos without understanding why. </off-topic> That was more of a rant then just off-topic. Oh well.
Wolverian wondered what the
seek interface would look like for handles. Larry likes the idea of it working entirely through opaque position objects using
` to specify units.
Perl 6/Perl 5 ~ 82%
Michael Hendricks noticed that (according to Text::TypingEffort). Perl 6 requires 18 percent less effort than Perl 5. He suggests that this is a bad thing for the community’s waistline. I conjecture that Perl developers will use the extra time they save for activities such as running and canoeing, and as a result will paradoxically lose weight from expending less effort at work.
Creating Value Types
Ingo Blechschmidt wondered how to create a value type. Luke Palmer suggested using an
is value trait. He then went on to speculate about mutating value traits and COW semantics. Larry though that perhaps an
is copy trait was called for. Oooh, a preposition at the end of a sentence; makes me want to occasionally split infinitives.
Ingo Blechschmidt viciously lied when claiming to post a “quick”
isa question. This quickly went the way of the meta object. I think I mentioned my take on those earlier (powerful, but ow).
Method Call on Invocant
The last really long thread has to do with the next chapter in the “method call on self” saga. I am a bit of a “method call on self” person, and apparently those who are have strong opinions. It’s worth noting this time that Larry updated the current state of the world. Now
./method is gone and
.method only works when
$_ =:= $?SELF.
Ingo Blechschmidt wondered what
require actually do. Gall Yahas suggested they return the last thing in the used/required file. Larry agreed and held that they would also return the same thing. He also warned that
%INC would probably work differently in Perl 6.
Autrijus wondered if an method
infix:<===> would need marking as export for a script that
uses it to get the method. Larry explained that the method
infix:<===> would be available by name, but would have to be marked as export for the syntactic sugar of
A === B to work.
Autrijus posted a link to his Hackathon notes. This spawned several threads. David Storrs tried to convince people to change subject lines, with limited success. Much of the discussion focused on MMD and how confusing it was. Damian Conway posted his set of three rules that would prevent AIs from harming humans and his set of eight rules that would prevent MMDs from harming programmers, proving that MMDs are almost three times more dangerous than AIs.
Raw Binary Data
David Formosa wanted to play with raw binary data in Perl 6. I try and avoid raw things except sushi. Larry suggested that this would just be a string with its maximum abstraction level set to bytes.
The Usual Footer
To post to any of these mailing lists please subscribe by sending email to
firstname.lastname@example.org. If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl. You might also like to send feedback to
Something wrong with this article? Help us out by opening an issue or pull request on GitHub