=head1 NAME

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

=head1 SYNOPSIS

  use ExtUtils::ExCxx;

=head1 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).

=head1 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.)

=head2 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.

=head2 FUNCTIONS AFFECTED

=over 4

=item * JMPENV_PUSH

  perl_call_sv
  perl_eval_sv
  docatch
  perl_parse
  perl_run
  call_list

=item * JMPENV_JUMP

  die
  croak
  docatch
  pp_goto
  calllist
  my_exit_jump

=back

=head1 BUGS

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

=head1 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

=cut
