Reworked the patch according to pmichaud's instructions for using :opt_flag.
Waiting for the results of my testing proposal before making tests available. Colin
Index: languages/perl6/src/builtins/string.pir =================================================================== --- languages/perl6/src/builtins/string.pir (revision 20402) +++ languages/perl6/src/builtins/string.pir (working copy) @@ -191,10 +191,19 @@ .sub 'substr' .param string x - .param int start - .param int len + .param int start + .param int len :optional + .param int has_len :opt_flag + + unless has_len goto end_of_string + $S0 = substr x, start, len .return ($S0) + + end_of_string: + $S0 = substr x, start + .return ($S0) + .end