[perl #69991] Exceptions from io.pir not being properly thrown

2011-10-08 Thread Will Coleda via RT
chdir still isn't throwing a CATCHable error. It now lives in 
src/core/IO.pm

proto sub chdir(|$) { * }
multi sub chdir($path as Str) {
try {
pir::new__PS('OS').chdir($path)
}
$! ?? fail($!) !! True
}


-- 
Will Coke Coleda


[perl #69991] Exceptions from io.pir not being properly thrown

2009-10-24 Thread via RT
# New Ticket Created by  Mark Montague 
# Please include the string:  [perl #69991]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=69991 



Exceptions from src/builtins/io.pir (and possibly elsewhere) are not  
being properly thrown:

diff --git a/src/builtins/io.pir b/src/builtins/io.pir
index 69cdf88..10fe7e8 100644
--- a/src/builtins/io.pir
+++ b/src/builtins/io.pir
@@ -172,6 +172,7 @@ true value is returned.

failure:
  pop_eh
+print parrot exception for chdir caught\n
  .tailcall '!FAIL'('Unable to change to directory ', newdir, '')
  .end


$ ./perl6 -e 'try { chdir(/no/such/directory); CATCH { say caught; } }'
parrot exception for chdir caught
$

The above should also have said caught but did not.  The same thing  
happens for mkdir():

$ ./perl6 -e 'try { mkdir(/no/such/directory); CATCH { say caught; } }'
$

However, this works:

$ ./perl6 -e 'try { fail(oh noes); CATCH { say caught; } }'
caught
$

Extra info:

$ git pull
Already up-to-date.
$ git rev-parse HEAD
501b4fb08ece44433e2bbedba0ef13e3e523f883
$ parrot_config VERSION  # built and installed separately from rakudo
1.7.0




 Mark Montague
 markm...@umich.edu