Just some general information for hacking on the PIR code behind Rakudo
Method Organization in Files:
- Methods
- Operators
- Coercions
- Private methods
- Vtable functions
Source
When do you use !EXPORT?
If the method is "is export" in S29, we use !EXPORT
If there is a separate sub, then we put that sub into .namespace [] and don't !EXPORT the method
The reason is that grep { ... }, @list is different from @list.grep { ... }
Source
Misc
- .tailcall '!FAIL'('reason') is the PIR equivalent of Perl 6's fail() function.
- basically any time we have = new 'Undef' it definitely needs to be converted to 'undef'() or something similar.