Past month I've been to YAPC::EU where I spoke about part of my project. I also used it to discuss some of the Windows related issues I ran into with others and they have helped me getting clear what's the problem. I haven't quite fixed it yet though. I also worked on refactoring and expanding the documentation, and fixed some bugreports (though one still open). I wanted to be finished with both points by September 1st, but due to some unexpected school obligations I haven't been able to do so. I've set myself a new deadline for October 1st.
I am pleased to announce that Jonathan Worthington's Hague Grant for Meta-model Improvements and Natively Typed Attributes has been accepted. Patrick Michaud has agreed to be the grant manager for this project.
I would like to thank everyone who provided feedback on this proposal.
The Perl Foundation has a new mailing address! We are working to get contact information on all of our sites updated. Please update your records:
Yet Another Society d/b/a The Perl Foundation
340 S LEMON AVE #6055
WALNUT, CA 91789
UNITED STATES
- Manual for Game Development with SDL Perl by Kartik Thakore
- Perlbal documentation by José Castro and Bruno Martins
- Perl 6 Tablets by Herbert Breunung
- Improve Parrot Embed/Extend Subsystem Tests and Documentation by Jonathan "Duke" Leto
- CPAN to deb autopackaging by Jozef Kutej
- FRDCSA Initial Release by Andrew John Dougherty
- SF.pm Funding by Fred Moyer
- YAC (YACCMS (Yet Another Catalyst CMS))) by Ricardo Filipo
- Perl 6 book in russian by Naim Shafiev and Zahatski Aliaksandr
I am pleased to announce that Patrick Michaud's Hague Grant for Lists, Iterators, and Parcels has been accepted. Will Coleda has agreed to be the grant manager for this project.
I would like to thank everyone who provided feedback on this proposal.
Dave Mitchell writes:
As per my grant conditions, here is a report for the July period.
This month was mainly spent on providing a general fix for the weak backreferences in stashes globs and CVs. This means that in general there are likely to be less crashes when doing odd things with stashes and globs.
Over the first 21 weeks I have now averaged about 17 hours per week, slightly less than the nominal 20. I have used up approx 70% of the hours allocated to the grant.
Report for period 2010/07/01 to 2010/07/31 inclusive
Summary
Effort (HH::MM):
7:40 diagnosing bugs
62:45 fixing bugs
0:00 reviewing other people's bug fixes
0:00 reviewing ticket histories
5:20 review the ticket queue (triage)
-----
75:45 Total
Numbers of tickets closed:
3 tickets closed that have been worked on
0 tickets closed related to bugs that have been fixed
0 tickets closed that were reviewed but not worked on (triage)
-----
3 Total
Short Detail
54:40 [perl #58530] Bus error with constant + overload + stash manipulation + bless ]
8:05 [perl #75716] overload removes tainting
2:40 [perl #76540] panic: free from wrong pool when using a constant in a print statement
5:00 [perl #76716] Hash assignment can zap weak references to the hash
5:20 [TRIAGE]
I am pleased to announce that Solomon Foster has successfully completed his Hague Grant for Numeric and Real Support. I would like to thank Solomon and his grant manager, Jonathan Worthington, for all their work on this project.
Solomon Foster writes:
Introduction
While I worked on this grant, Rakudo has matured into a capable compiler ready to go out into the world as Rakudo Star. The work done under this grant ensures it will have a solid implementation of the S32 Numeric specification. And, as is usually the case when part of the Perl 6 specification is implemented for the first time, my experiences doing so have led to improvements and clarifications.
Deliverables Status
All deliverables have been achieved, and some additional work completed as well.
D1. The Numeric role is now in place as the root of all number types in Rakudo. Furthermore, the Numeric spec has been modified to include casting methods, the trigonometric base conversion methods, and a tentative approach to allow Numeric types that do not know of each other to be sorted together.
D2. The Real role is also in place. All of the built-in numeric types other than Complex now do Real. In addition to cleaning up the Real spec a bit, I introduced the Bridge casting method to make it very easy to write a new Real type which is fully interoperable with any other properly-coded Real type.
D3. Int, Rat, and Num now do the Real role in Rakudo. So far this seems to work very well, particularly because Int and Rat have many of their methods provided by Real.
D4. Complex is now a Numeric type composed of two Reals. Again, this is a good fit, a testament to the solid fundamental design of this area of the spec.
D5. The trig functionality is now implemented in Num and Complex, with Cool forwarding trig methods to the Numeric cast of their arguments, and Real forwarding them to the Bridge cast. In practice, this means that any Real type other than Num automatically gets its trig functionality by delegation to Num, though the Bridge approach allows implementations to select a different type to handle this.
D6. I added the real-bridge.t test file to the spectests to test that an arbitrary new Real type will easily fit properly into the existing scheme. I didn't add a Numeric-specific test file, as fewer tests were required there and they seemed to blend naturally into existing test files.
D7. With approximately 15,000 tests deleted or added, by far the biggest test changes were to the trig tests. I overhauled them to cover more usage cases while using far fewer actual test cases. In the process I found several trig bugs and fixed them.
In addition to this, I fixed the long-broken handling of long numeric constants with decimal points in Rakudo, as it turned out to be a major impediment to revising the trig tests. Though the resulting patch needs to be refactored, it represents a major improvement in an area users are likely to encounter.
Dissemination
I have written fourteen blog posts on the Numeric work, as well as remaining active on the #perl6 channel. I was also part of the Perl 6 contingent at YAPC::NA.
Conclusions
This grant has advanced the state of the art in Rakudo, both in terms of the numerics classes themselves and in terms of the bugs turned up and fixed in the general implementation of roles. It has improved the specification and the test suite. In addition, both the Numeric and Real roles are implemented in almost pure Perl 6, meaning that they should be usable with only minor tweaks in any sufficiently advanced Perl 6 implementation. I feel this work has been a solid success.

Recent Comments