NAME

ExtUtils::ExCxx - Let perl use ANSI C++ exceptions.

SYNOPSIS

use ExtUtils::ExCxx;

DESCRIPTION

Replaces perl's default tryblock method with a C++ try/throw style method. This should be completely transparent (except to extensions that secretly invoke low-level exception handling routines).

PATCH

At the moment, this extension requires patches to the perl source code. Hopefully, these changes will make it into the next developer release. Either apply stage0[1-3] or the whole.patch to 5.004_56.

'make test' should be 100%!

(FYI: You don't need to built this extension to test the patch.)

ALSO

call_list should probably be optimized to call tryblock only once instead of doing it for each BEGIN or END block. However, the control flow is messy enough that I didn't attempt it.

dJMPENV is setjmp-centric. This might be construed as a bug.

FUNCTIONS AFFECTED

  • JMPENV_PUSH

    perl_call_sv
    perl_eval_sv
    docatch
    perl_parse
    perl_run
    call_list
  • JMPENV_JUMP

    die
    croak
    docatch
    pp_goto
    calllist
    my_exit_jump

BUGS

sigsetjmp saves more state than a C++ try block. sigprocmask & priocntl stuff should be addressed.

AUTHOR

Copyright © 1997-1998 Joshua Nathaniel Pritikin. All rights reserved.

This package is free software and is provided "as is" without express or implied warranty. It may be used, redistributed and/or modified under the terms of the Perl Artistic License (see http://www.perl.com/perl/misc/Artistic.html)

The author hereby releases the patches to the perl source code to the public domain. Thanks a ton! pritikin@mindspring.com

1 POD Error

The following errors were encountered while parsing the POD:

Around line 64:

Non-ASCII character seen before =encoding in '©'. Assuming CP1252