Yay! Moose is free from stringy exceptions!

I did an internship for Moose as part of GNOME's Outreach Program for Women. I was supposed to convert all stringy exceptions in Moose to structured exceptions or exception objects. This is my first major contribution to a FOSS project :).

This is my merged pull request (a bit late, but better late than never).

Diff stats
If you're interested, then you can check out diff stats here. Caution : You may get lost in that big stats, so better not to click on that URL ;).
In short :
368 changed files with 23,830 additions and 1,479 deletions.

Resources which I've used for understanding Moose

Technical things which I've learnt through this internship?

  1. Perl.
    Pre-internship : I used it for writing small scripts & solving project euler problems.
    Post internship : Now, I know about :

    • goodness of perl one liners

    • weird behaviour of Perl

    • XS

    • Exception handling in Perl

  2. Moose
    Pre-internship: I never heard about it.
    Post-internship: I am familiar with most of Moose internals.

  3. Git
    Pre-internship : I knew only git basics like add, commit, push, pull, merge etc.
    Post-internship : I know some advanced git commands like git rebase, git log (with arguments), git reflog etc. But, I still need to work a lot on my git skills. I realized it yesterday, because of this blunder :(.

  4. Dist::Zilla
    Pre-internship : Never even heard about it
    Post-internship : Used it while uploading my first CPAN module :D

  5. Metaobject Protocol
    Pre-internship : No idea
    Post-internship : Understand it to a fair extent, but still need improvement

Non-technical things which I've learnt through this internship?

  1. Blogging : I think I've learnt how to write a good blog, but I may be wrong, so please feel free to comment on my blogging skills :)

  2. Management : I've learnt how to manage work, chatting, eating etc. simultaneously. Yes, I did these things simultaneously :D

  3. How to handle newbies : Though, I am myself a newbie, but I've learnt how to handle newbies' questions. I've met so many newbie friendly people in this community, who patiently listen & answer questions of newbies. Perl people, please always stay like this.


I'd like to thank these people for their help & support at one or the other point.

  1. Shawn M. Moore (official mentor) & Jesse Luehrs (unofficial mentor)

  2. Karen Etheridge

  3. Matt S. Trout

  4. Graham Knop

  5. Ricardo Signes

  6. Chris Prather

  7. John SJ Anderson

  8. Florian Ragwitz

  9. Dave Rolsky

  10. Jay Hannah

  11. John Napiorkowski

  12. Stevan Little (for creating Moose)

These people/organizations didn't help me in my Moose work directly, but they were behind the scenes:

  1. Karen Pauley

  2. Yaakov Sloman

  3. Marina Zhurakhinskaya & Karen Sandler

  4. GNOME foundation

  5. The Perl Foundation

  6. Dan Wright

  7. Allen J. Martello

  8. Sawyer X (for suggesting me Moose, because initially, I came for Dancer & ended up with Moose)

If any of you (people mentioned above) want your name to be removed from this post, then please mail me at me@upasana.me

A humble request to GNOME foundation
Please keep organizing the Outreach Program for Women :)

A humble question to The Perl Foundation:
Though, I'm no one to question anyone, but still why Perl doesn't participate in every round of Outreach Program for Women & Google Summer of code? :(


This is wonderful news! Moose's error reporting has long been its ugliest wart.

For those of us who have test suites that match various exception messages against regexps, may I ask if the stringifications of these exception objects are mostly compatible with the existing error messages?

As to why there aren't more of these sort of projects in GSoC, etc, I suppose that very few of the subcommunities within the larger Perl community are as organized as Moose is.

Toby, we tried our best to match the existing exception messages. There are a few places we couldn't, but those were for such obscure exceptions (such as in metaclass incompatibility) that no one will notice the change.

We even kept a list of exception messages that could be improved, once everyone has changed their regex checks to ->isa checks: https://github.com/sartak/OPW/issues/17

Congratulations on the awesome work you did! Keep it up! :)

Great work Upasana.

Good job! And thanks for adding the complete list of what you followed during your journey!

Upasana, thank you! This is great news :)

Leave a comment

About Upasana

user-pic I blog about Perl. I'm still in the early phase of learning perl, so please do let me know if you find any flaws in my posts, I'll appreciate it.