This Week in Perl 6, July 5-12, 2005
All–
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.
Parrot
Key Question
Klass-Jan Stol found that using a assigning a floating point value to a key and then using it makes Parrot segfault. Warnock applies.
Parrot Copyrights
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’s Branch
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 mod_parrot
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.
make svnclean
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.
pmc2c.pl Bug
Nicholas Clark found a bug in the shortcut to avoid writing a PMC dump file. Warnock applies.
Define cache
Nicholas Clark suggested that it was probably not wise to #define
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.”
Punie
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.
DBI v2
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.
Time::Local
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.
Submethods
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.
Dependency Injection
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 goto
s without understanding why. </off-topic> That was more of a rant then just off-topic. Oh well.
File.seek
Interface
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.
OO .isa
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
.
use
and require
Question
Ingo Blechschmidt wondered what use
and 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.
User-Defined infix
Autrijus wondered if an method infix:<===>
would need marking as export for a script that use
s 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.
Hackathon Notes
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 perl6-internals-subscribe@perl.org
, perl6-language-subscribe@perl.org
, or perl6-compiler-subscribe@perl.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
Tags
Feedback
Something wrong with this article? Help us out by opening an issue or pull request on GitHub