![]() |
|
![]() ![]() ![]() ![]() |
Sign In/My Account | View Cart | |||||||
| ||||||||
O'Reilly Open Source Convention: July 26-30, Portland, OR. |
![]() |
![]()
This Week on Perl 6, Week Ending 2004-09-03by Piers CawleySeptember 09, 2004
We start with perl6-internals. Compile op with return valuesThe discussion of how to return something from dynamically compiled code continued with Leo, Dan and Steve Fink all working to clarify and address the issues. Library loadingDan started the process of nailing down Parrot's dynamic loading API so that it can be added to the embedding interface. Steve Fink and Aaron Sherman had suggestions. Pathological register allocation scenariosGregor N Purdy had asked Dan if his work compiler could be made to spit out structurally equivalent C code to the Parrot code that was breaking IMCC. His idea being that we could then see how C compilers dealt with such nastiness. Dan thought that, whilst this was a good idea, it would be too much work to implement. Gregor wasn't so sure. Pathological Register Allocation Scenarios Dan and Leo demonstrate comic timing. Again.
We love it when a patch comes together. PMC InstantiationLeo had raised issues with the current scheme for PMC instantiation. This week Dan came through with some design which got discussed and (I think) implemented. Last bits of the basic math semanticsIf you believe Barbie, "Math is hard". She's right, up to a point. The list's spent a couple of weeks now sorting out the design of Parrots underlying mathematical and numeric systems to make sure that maths works right (for sufficiently useful values of "right"). This particular line of discussion covers rotations and stuff, where you're actually treating a number as a bit field. Last bits of the basic math semantics Cross-compiling parrotAnd you thought compiling Parrot on a Win32 box was hard. Robert Schwebel wants to cross compile Parrot and isn't having a good time. Dan wasn't surprised because the Parrot build process still gets most of its information from the local perl installation which will generally be wrong when you're cross compiling. Dan noted that part of the problem is that we don't have people on the team with a need or the experience of doing cross compilation and added that he'd be thrilled if this were to change. Any patches to make things better for cross compilers will, of course, be gratefully received. Proposal for a new PMC layout and moreLeo's concerned that the current PMC layout isn't the Right Thing, and laid out a proposal describing some changes he thinks would be worthwhile. In essence, he argues for removing the requirement for fixed sized PMC headers and separate variable sized buffers in favour of unifying buffers and PMCs so that PMCs become variable sized, thus eliminating some time consuming indirection, and space consuming overheads. Nicholas Clark thought the proposal was interesting, but said that, since the proposed changes would be invisible to the user, he'd be far happier with a functionally complete implementation of parrot with stable, useful APIs. Dan rejected the proposal (both for technical reasons and because he agreed with Nicholas). I don't think Leo was convinced by the technical reasons, but the "Let's get the interfaces finished!" argument clinched it. Semantics for regexesDan appears to have opened an entertaining can of worms when he outlined his view of the minimum string semantics required to support a regular expression engine and asked for comments. Boy did he get them. And boy did they run off in all sorts of strange directions. Interesting directions mind. Anyway, further down the thread, Dan, Chip Salzenburg and Patrick Michaud seemed to reach something approximating agreement about the low level semantics required. TODOs and calls for volunteersLeo came up with a list of things that need fixing/implementing and
asked for volunteers. These include sorting out what happens with the
experimental ops, implementing He also had some proposals for how we should get the Integer classes properly implemented now we know what the semantics will be. Meanwhile, in perl6-languageRoles trying to be niceAbhijit Mahabal had some questions about making roles work. Luke, Patrick, and Jonathan Scott Duff set about answering them. I'm not entirely sure that any of the answers so far are enough for Abhijit, but then I'm not entirely sure that any answer could be enough. At some point you have to take things on trust and hope that nothing breaks at runtime. Pipeline performanceRod Adams brought up some issues with the performance of "pipelining"
arrays in Perl 5 — in general doing say Synopsis 9 draft 1"Synopsis 9?" I hear you ask "But we haven't seen Apocalypse 9 yet!". Indeed we haven't, but that's not stopped Larry writing it. Synopsis 9 gives an overview of Perl 6's data structures (hopefully enough for anyone who happens to be starting work on a rough cut of a Perl 6 implementation) which will be covered in more detail when the Apocalypse itself comes out. The usual storm of discussion and general proofreading goodness went on. The range operatorJoe Gottman wondered if there would be sufficiently lazy way to
generate ranges. In particular, he wanted to know if he'd be able to write
Can PRE and POST be removed from program flow?John Siracusa wondered if it would be possible to turn off the PRE and POST Design By Contract hooks in production code to improve performance. (Leaving aside arguments about whether this is sensible; personally I reckon that a production environment is where you should be most worried about values that might fail the PRE/POST hooks). Larry reckoned it would be possible to simply clobber the global definitions of PRE and POST to make them no ops. This wasn't enough for John, who wanted to be able to get rid of them entirely so even the call to the no op didn't happen. So Damian showed him the obvious macros... S4: Can PRE and POST be removed from program flow? Announcements, Apologies, AcknowledgementsIt looks like the Google groups gateway is working again, so I'll keep with the Google style linking. 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 or contributions to a getting Piers to OSCON 2005 fund. Or, you can check out my website. ![]() | ![]() |
![]() Sponsored By: ![]() |
![]() | ||||||||
Contact Us | Advertise with Us | Privacy Policy | Press Center | Jobs | Submissions Guidelines Copyright © 2000-2004 O’Reilly Media, Inc. All
Rights Reserved. |