34

Cancellation of Perl 6 Constants and Rationals Grant

 5 years ago
source link: https://www.tuicool.com/articles/hit/BNvENn3
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

I've requested The Perl Foundation to cancel my currently running grant "Perl 6 Bugfixing and Performance of Rationals / Fixing Constraints on Constants" on the grounds that a more detailed investigation into proposed features that occurred during the course of the grant showed many of them to be unwanted or unimplementable.

Since any further grant's work now differs significantly from what the TPF and community voted on, I prefer to cancel the grant and perform any of the remaining work on a volunteer basis, whenever I get a chance.

No payment will be remitted.

Summary of Changes from Original Proposal and Reasons for Cancellation

  1. The originally promised MidRat type is not going to be implemented. It was deemed to be likely a bad idea, as was described in myMay Grant Report

  2. The original proposal claimed Rats with larger-than-64-bit denominators resulted in precision loss in certain operations. Further investigation revealed that the actual cause of apparent precision loss were were bugs in Num stringification precision (now-fixed by my Grisu3 algo work) and the implementation of Rational.Str method (now largely fixed by another person).

  3. Some of the originally hoped-for performance improvements due to nativization of denominator of Rat might not be achieved. In MidRat -less paradigm, the Rat type can have a denominator larger than 64-bits under some conditions, making native types unsuitable to hold it. In addition, Rakudo currently boxes native types returned from methods, and until that is avoided, switching to native types would likely be detrimental to performance.

  4. ZeroDenominatorRational role was unimplementable. While the original grant proposal speculated that might be the case, it took me almost no time to hit a roadblock with this approach, making it a largely irrelevant item on the original proposal.

  5. Normalization of Zero Denominator Rationals was promised on the proposal, but is blocked by 6.c language specification. Additionally, it's blocked from being changed in 6.d specification due to a rule that requires at least one working implementation of a feature, and it cannot be implemented in Rakudo yet, as we currently lack a mechanism to discern caller's language version.

  6. Lastly, the bonus work that was promised would require me learning a bunch of new things about MoarVM. While that's doable, there are much more pressing matters that I could tend to instead—such as Rakudo's stability and spec compliance on Windows and preparation for 6.d language release.

In conclusion, I believe were this grant to be completed, the result would differ significantly from what was voted on during grant's proposal. For that reason, I wish to cancel it. The remaining work on the grant that is still doable will be performed by me on a volunteer basis, when the time allows.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK