+3.06 - 2005-02-02
+
+ * fix cpan #11327: make fails with syntax error
+ * fix XCPT_* macros
+
3.05 - 2005-01-31
* fix a test for SvPV_nolen
# http://module-build.sourceforge.net/META-spec.html
#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
name: Devel-PPPort
-version: 3.05
+version: 3.06
version_from: PPPort_pm.PL
installdirs: perl
requires:
use strict;
use vars qw($VERSION @ISA $data);
-$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.05 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
+$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.06 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
@ISA = qw(DynaLoader);
#endif
#endif
-#ifdef dJMPENV
-
-# ifndef dXCPT
+#ifdef NO_XSLOCKS
+# ifdef dJMPENV
# define dXCPT dJMPENV; int rEtV = 0
# define XCPT_TRY_START JMPENV_PUSH(rEtV); if (rEtV == 0)
# define XCPT_TRY_END JMPENV_POP;
# define XCPT_CATCH if (rEtV != 0)
# define XCPT_RETHROW JMPENV_JUMP(rEtV)
+# else
+# define dXCPT Sigjmp_buf oldTOP; int rEtV = 0
+# define XCPT_TRY_START Copy(top_env, oldTOP, 1, Sigjmp_buf); rEtV = Sigsetjmp(top_env, 1); if (rEtV == 0)
+# define XCPT_TRY_END Copy(oldTOP, top_env, 1, Sigjmp_buf);
+# define XCPT_CATCH if (rEtV != 0)
+# define XCPT_RETHROW Siglongjmp(top_env, rEtV)
# endif
-
-#else
-
-# define dXCPT Sigjmp_buf oldTOP; int rEtV = 0
-# define XCPT_TRY_START Copy(top_env, oldTOP, 1, Sigjmp_buf); rEtV = Sigsetjmp(top_env, 1); if (rEtV == 0)
-# define XCPT_TRY_END Copy(oldTOP, top_env, 1, Sigjmp_buf);
-# define XCPT_CATCH if (rEtV != 0)
-# define XCPT_RETHROW Siglongjmp(top_env, rEtV)
-
#endif
#endif /* _P_P_PORTABILITY_H_ */
/* ========== BEGIN XSMISC ================================================== */
/* ---- from parts/inc/exception ---- */
-static void throws_exception(int throw_e)
-{
- if (throw_e)
- croak("boo\n");
-}
-
-static int exception(int throw_e)
-{
- dTHR;
- dXCPT;
- SV *caught = get_sv("Devel::PPPort::exception_caught", 0);
-
- XCPT_TRY_START {
- throws_exception(throw_e);
- } XCPT_TRY_END
-
- XCPT_CATCH
- {
- sv_setiv(caught, 1);
- XCPT_RETHROW;
- }
-
- sv_setiv(caught, 0);
-
- return 42;
-}
+/* defined in module3.c */
+int exception(int throw_e);
/* ---- from parts/inc/misc ---- */
XS(XS_Devel__PPPort_dXSTARG); /* prototype */
use strict;
use vars qw($VERSION @ISA $data);
-$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.05 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
+$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.06 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' };
@ISA = qw(DynaLoader);
*
********************************************************************************
*
-* $Revision: 5 $
+* $Revision: 6 $
* $Author: mhx $
-* $Date: 2005/01/31 08:10:50 +0100 $
+* $Date: 2005/02/02 21:47:34 +0100 $
*
********************************************************************************
*
#include "EXTERN.h"
#include "perl.h"
+
+#define NO_XSLOCKS
#include "XSUB.h"
#include "ppport.h"
+static void throws_exception(int throw_e)
+{
+ if (throw_e)
+ croak("boo\n");
+}
+
+int exception(int throw_e)
+{
+ dTHR;
+ dXCPT;
+ SV *caught = get_sv("Devel::PPPort::exception_caught", 0);
+
+ XCPT_TRY_START {
+ throws_exception(throw_e);
+ } XCPT_TRY_END
+
+ XCPT_CATCH
+ {
+ sv_setiv(caught, 1);
+ XCPT_RETHROW;
+ }
+
+ sv_setiv(caught, 0);
+
+ return 42;
+}
+
void call_newCONSTSUB_3(void)
{
newCONSTSUB(gv_stashpv("Devel::PPPort", FALSE), "test_value_3", newSViv(3));
}
+
################################################################################
##
-## $Revision: 2 $
+## $Revision: 3 $
## $Author: mhx $
-## $Date: 2005/01/31 08:10:51 +0100 $
+## $Date: 2005/02/02 21:48:36 +0100 $
##
################################################################################
##
=implementation
-#ifdef dJMPENV
-
-# ifndef dXCPT
+#ifdef NO_XSLOCKS
+# ifdef dJMPENV
# define dXCPT dJMPENV; int rEtV = 0
# define XCPT_TRY_START JMPENV_PUSH(rEtV); if (rEtV == 0)
# define XCPT_TRY_END JMPENV_POP;
# define XCPT_CATCH if (rEtV != 0)
# define XCPT_RETHROW JMPENV_JUMP(rEtV)
+# else
+# define dXCPT Sigjmp_buf oldTOP; int rEtV = 0
+# define XCPT_TRY_START Copy(top_env, oldTOP, 1, Sigjmp_buf); rEtV = Sigsetjmp(top_env, 1); if (rEtV == 0)
+# define XCPT_TRY_END Copy(oldTOP, top_env, 1, Sigjmp_buf);
+# define XCPT_CATCH if (rEtV != 0)
+# define XCPT_RETHROW Siglongjmp(top_env, rEtV)
# endif
-
-#else
-
-# define dXCPT Sigjmp_buf oldTOP; int rEtV = 0
-# define XCPT_TRY_START Copy(top_env, oldTOP, 1, Sigjmp_buf); rEtV = Sigsetjmp(top_env, 1); if (rEtV == 0)
-# define XCPT_TRY_END Copy(oldTOP, top_env, 1, Sigjmp_buf);
-# define XCPT_CATCH if (rEtV != 0)
-# define XCPT_RETHROW Siglongjmp(top_env, rEtV)
-
#endif
=xsmisc
-static void throws_exception(int throw_e)
-{
- if (throw_e)
- croak("boo\n");
-}
-
-static int exception(int throw_e)
-{
- dTHR;
- dXCPT;
- SV *caught = get_sv("Devel::PPPort::exception_caught", 0);
-
- XCPT_TRY_START {
- throws_exception(throw_e);
- } XCPT_TRY_END
-
- XCPT_CATCH
- {
- sv_setiv(caught, 1);
- XCPT_RETHROW;
- }
-
- sv_setiv(caught, 0);
-
- return 42;
-}
+/* defined in module3.c */
+int exception(int throw_e);
=xsubs
################################################################################
##
-## $Revision: 19 $
+## $Revision: 20 $
## $Author: mhx $
-## $Date: 2005/01/31 08:10:52 +0100 $
+## $Date: 2005/02/02 19:17:33 +0100 $
##
################################################################################
##
{
dXSARGS;
dXSTARG;
+ IV iv;
SP -= items;
- IV iv = SvIV(ST(0)) + 1;
+ iv = SvIV(ST(0)) + 1;
PUSHi(iv);
XSRETURN(1);
}