r50794 - in /trunk/libextutils-parsexs-perl: Changes MANIFEST META.yml Makefile.PL debian/changelog lib/ExtUtils/ParseXS.pm t/XSMore.xs t/lib/ t/more.t

jawnsy-guest at users.alioth.debian.org jawnsy-guest at users.alioth.debian.org
Tue Jan 12 15:05:54 UTC 2010


Author: jawnsy-guest
Date: Tue Jan 12 15:05:37 2010
New Revision: 50794

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=50794
Log:
New upstream release

Added:
    trunk/libextutils-parsexs-perl/t/lib/
      - copied from r50785, branches/upstream/libextutils-parsexs-perl/current/t/lib/
Modified:
    trunk/libextutils-parsexs-perl/Changes
    trunk/libextutils-parsexs-perl/MANIFEST
    trunk/libextutils-parsexs-perl/META.yml
    trunk/libextutils-parsexs-perl/Makefile.PL
    trunk/libextutils-parsexs-perl/debian/changelog
    trunk/libextutils-parsexs-perl/lib/ExtUtils/ParseXS.pm
    trunk/libextutils-parsexs-perl/t/XSMore.xs
    trunk/libextutils-parsexs-perl/t/more.t

Modified: trunk/libextutils-parsexs-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-parsexs-perl/Changes?rev=50794&op=diff
==============================================================================
--- trunk/libextutils-parsexs-perl/Changes (original)
+++ trunk/libextutils-parsexs-perl/Changes Tue Jan 12 15:05:37 2010
@@ -1,4 +1,24 @@
 Revision history for Perl extension ExtUtils::ParseXS.
+
+2.22 - Mon Jan 11 15:00:07 EST 2010
+
+ No changes from 2.21_02
+
+2.21_02 - Sat Dec 19 10:55:41 EST 2009
+
+ Bug fixes:
+
+ - fixed bugs and added tests for INCLUDE_COMMAND [Steffen Mueller]
+
+2.21_01 - Sat Dec 19 07:22:44 EST 2009
+
+ Enhancements:
+
+ - New 'INCLUDE_COMMAND' directive [Steffen Mueller]
+
+ Bug fixes:
+
+ - Workaround for empty newXS macro found in P5NCI [Goro Fuji]
 
 2.21 - Mon Oct  5 11:17:53 EDT 2009
 
@@ -12,7 +32,7 @@
 
  Bug fixes:
  - Use "char* file" for perl < 5.9, not "char[] file"; fixes mod_perl
-   breakage due to prior attempts to fix RT#48104 [David Golden] 
+   breakage due to prior attempts to fix RT#48104 [David Golden]
 
 2.20_06 - Fri Oct  2 23:45:45 EDT 2009
 
@@ -62,8 +82,8 @@
 2.20_03 - Thu Jul 23 23:14:50 EDT 2009
 
  Bug fixes:
- - Fixed "const char *" errors for 5.8.8 (and older) (RT#48104) 
-   [Vincent Pit] 
+ - Fixed "const char *" errors for 5.8.8 (and older) (RT#48104)
+   [Vincent Pit]
  - Added newline before a preprocessor directive (RT#30673)
    [patch by hjp]
 

Modified: trunk/libextutils-parsexs-perl/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-parsexs-perl/MANIFEST?rev=50794&op=diff
==============================================================================
--- trunk/libextutils-parsexs-perl/MANIFEST (original)
+++ trunk/libextutils-parsexs-perl/MANIFEST Tue Jan 12 15:05:37 2010
@@ -12,6 +12,7 @@
 t/bugs/typemap
 t/include/nscore.h
 t/include/nsUniversalDetector.h
+t/lib/IncludeTester.pm
 t/more.t
 t/typemap
 t/usage.t

Modified: trunk/libextutils-parsexs-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-parsexs-perl/META.yml?rev=50794&op=diff
==============================================================================
--- trunk/libextutils-parsexs-perl/META.yml (original)
+++ trunk/libextutils-parsexs-perl/META.yml Tue Jan 12 15:05:37 2010
@@ -1,32 +1,32 @@
 ---
-name: ExtUtils-ParseXS
-version: 2.21
+abstract: 'converts Perl XS code into C code'
 author:
   - 'Ken Williams, <ken at mathforum.org>'
   - 'David Golden, <dagolden at cpan.org>'
-abstract: converts Perl XS code into C code
-license: perl
-resources:
-  MailingList: mailto:perl5-porters at perl.org
-  bugtracker: http://rt.cpan.org/Dist/Display.html?Queue=ExtUtils-ParseXS
-  license: http://dev.perl.org/licenses/
-  repository: git://github.com/dagolden/extutils-parsexs.git
 build_requires:
   Carp: 0
   DynaLoader: 0
   ExtUtils::CBuilder: 0
   Test::More: 0.47
+generated_by: 'Module::Build version 0.3515'
+license: perl
+meta-spec:
+  url: http://module-build.sourceforge.net/META-spec-v1.4.html
+  version: 1.4
+name: ExtUtils-ParseXS
+provides:
+  ExtUtils::ParseXS:
+    file: lib/ExtUtils/ParseXS.pm
+    version: 2.22
 requires:
   Cwd: 0
   Exporter: 0
   File::Basename: 0
   File::Spec: 0
   Symbol: 0
-provides:
-  ExtUtils::ParseXS:
-    file: lib/ExtUtils/ParseXS.pm
-    version: 2.21
-generated_by: Module::Build version 0.3502
-meta-spec:
-  url: http://module-build.sourceforge.net/META-spec-v1.4.html
-  version: 1.4
+resources:
+  MailingList: mailto:perl5-porters at perl.org
+  bugtracker: http://rt.cpan.org/Dist/Display.html?Queue=ExtUtils-ParseXS
+  license: http://dev.perl.org/licenses/
+  repository: git://github.com/dagolden/extutils-parsexs.git
+version: 2.22

Modified: trunk/libextutils-parsexs-perl/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-parsexs-perl/Makefile.PL?rev=50794&op=diff
==============================================================================
--- trunk/libextutils-parsexs-perl/Makefile.PL (original)
+++ trunk/libextutils-parsexs-perl/Makefile.PL Tue Jan 12 15:05:37 2010
@@ -1,4 +1,4 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.35_02
+# Note: this file was auto-generated by Module::Build::Compat version 0.35_15
 use ExtUtils::MakeMaker;
 WriteMakefile
 (

Modified: trunk/libextutils-parsexs-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-parsexs-perl/debian/changelog?rev=50794&op=diff
==============================================================================
--- trunk/libextutils-parsexs-perl/debian/changelog (original)
+++ trunk/libextutils-parsexs-perl/debian/changelog Tue Jan 12 15:05:37 2010
@@ -1,3 +1,9 @@
+libextutils-parsexs-perl (2.220000-1) UNRELEASED; urgency=low
+
+  * New upstream release
+
+ -- Jonathan Yu <jawnsy at cpan.org>  Tue, 12 Jan 2010 09:55:40 -0500
+
 libextutils-parsexs-perl (2.210000-1) unstable; urgency=low
 
   [ Jonathan Yu ]

Modified: trunk/libextutils-parsexs-perl/lib/ExtUtils/ParseXS.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-parsexs-perl/lib/ExtUtils/ParseXS.pm?rev=50794&op=diff
==============================================================================
--- trunk/libextutils-parsexs-perl/lib/ExtUtils/ParseXS.pm (original)
+++ trunk/libextutils-parsexs-perl/lib/ExtUtils/ParseXS.pm Tue Jan 12 15:05:37 2010
@@ -18,7 +18,7 @@
 my($XSS_work_idx, $cpp_next_tmp);
 
 use vars qw($VERSION);
-$VERSION = '2.21';
+$VERSION = '2.22';
 $VERSION = eval $VERSION if $VERSION =~ /_/;
 
 use vars qw(%input_expr %output_expr $ProtoUsed @InitFileCode $FH $proto_re $Overload $errors $Fallback
@@ -230,9 +230,10 @@
 
   # Match an XS keyword
   $BLOCK_re= '\s*(' . join('|', qw(
-				   REQUIRE BOOT CASE PREINIT INPUT INIT CODE PPCODE OUTPUT
-				   CLEANUP ALIAS ATTRS PROTOTYPES PROTOTYPE VERSIONCHECK INCLUDE
-				   SCOPE INTERFACE INTERFACE_MACRO C_ARGS POSTCALL OVERLOAD FALLBACK
+				   REQUIRE BOOT CASE PREINIT INPUT INIT CODE PPCODE
+				   OUTPUT CLEANUP ALIAS ATTRS PROTOTYPES PROTOTYPE
+				   VERSIONCHECK INCLUDE INCLUDE_COMMAND SCOPE INTERFACE
+				   INTERFACE_MACRO C_ARGS POSTCALL OVERLOAD FALLBACK
 				  )) . "|$END)\\s*:";
 
   
@@ -448,7 +449,7 @@
     $xsreturn = 0;
 
     $_ = shift(@line);
-    while (my $kwd = check_keyword("REQUIRE|PROTOTYPES|FALLBACK|VERSIONCHECK|INCLUDE|SCOPE")) {
+    while (my $kwd = check_keyword("REQUIRE|PROTOTYPES|FALLBACK|VERSIONCHECK|INCLUDE(?:_COMMAND)?|SCOPE")) {
       &{"${kwd}_handler"}() ;
       next PARAGRAPH unless @line ;
       $_ = shift(@line);
@@ -934,6 +935,10 @@
 EOF
       }
     }
+    elsif($newXS eq 'newXS'){ # work around P5NCI's empty newXS macro
+      push(@InitFileCode,
+	   "        ${newXS}(\"$pname\", XS_$Full_func_name, file$proto);\n");
+    }
     else {
       push(@InitFileCode,
 	   "        (void)${newXS}(\"$pname\", XS_$Full_func_name, file$proto);\n");
@@ -1481,27 +1486,11 @@
 
   }
 
-sub INCLUDE_handler ()
+sub PushXSStack
   {
-    # the rest of the current line should contain a valid filename
-
-    TrimWhitespace($_) ;
-
-    death("INCLUDE: filename missing")
-      unless $_ ;
-
-    death("INCLUDE: output pipe is illegal")
-      if /^\s*\|/ ;
-
-    # simple minded recursion detector
-    death("INCLUDE loop detected")
-      if $IncludedFiles{$_} ;
-
-    ++ $IncludedFiles{$_} unless /\|\s*$/ ;
-
     # Save the current file context.
     push(@XSStack, {
-		    type		=> 'file',
+		    type            => 'file',
 		    LastLine        => $lastline,
 		    LastLineNo      => $lastline_no,
 		    Line            => \@line,
@@ -1511,6 +1500,32 @@
 		    Handle          => $FH,
 		   }) ;
 
+  }
+
+sub INCLUDE_handler ()
+  {
+    # the rest of the current line should contain a valid filename
+
+    TrimWhitespace($_) ;
+
+    death("INCLUDE: filename missing")
+      unless $_ ;
+
+    death("INCLUDE: output pipe is illegal")
+      if /^\s*\|/ ;
+
+    # simple minded recursion detector
+    death("INCLUDE loop detected")
+      if $IncludedFiles{$_} ;
+
+    ++ $IncludedFiles{$_} unless /\|\s*$/ ;
+
+    Warn("The INCLUDE directive with a command is deprecated." .
+         " Use INCLUDE_COMMAND instead!")
+      if /\|\s*$/ ;
+
+    PushXSStack();
+
     $FH = Symbol::gensym();
 
     # open the new file
@@ -1535,7 +1550,51 @@
 
     $lastline = $_ ;
     $lastline_no = $. ;
-
+  }
+
+sub INCLUDE_COMMAND_handler ()
+  {
+    # the rest of the current line should contain a valid command
+
+    TrimWhitespace($_) ;
+
+    death("INCLUDE_COMMAND: command missing")
+      unless $_ ;
+
+    death("INCLUDE_COMMAND: pipes are illegal")
+      if /^\s*\|/ or /\|\s*$/ ;
+
+    PushXSStack();
+
+    $FH = Symbol::gensym();
+
+    # If $^X is used in INCLUDE_COMMAND, we know it's supposed to be
+    # the same perl interpreter as we're currently running
+    s/^\s*\$\^X/$^X/;
+
+    # open the new file
+    open ($FH, "-|", "$_")
+      or death("Cannot run command '$_' to include its output: $!") ;
+
+    print Q(<<"EOF");
+#
+#/* INCLUDE_COMMAND:  Including output of '$_' from '$filename' */
+#
+EOF
+
+    $filename = $_ ;
+    $filepathname = "$dir/$filename";
+
+    # Prime the pump by reading the first
+    # non-blank line
+
+    # skip leading blank lines
+    while (<$FH>) {
+      last unless /^\s*$/ ;
+    }
+
+    $lastline = $_ ;
+    $lastline_no = $. ;
   }
 
 sub PopFile()

Modified: trunk/libextutils-parsexs-perl/t/XSMore.xs
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-parsexs-perl/t/XSMore.xs?rev=50794&op=diff
==============================================================================
--- trunk/libextutils-parsexs-perl/t/XSMore.xs (original)
+++ trunk/libextutils-parsexs-perl/t/XSMore.xs Tue Jan 12 15:05:37 2010
@@ -106,6 +106,8 @@
 int
 len(char* s, int length(s))
 
+INCLUDE_COMMAND: $^X -Ilib -It/lib -MIncludeTester -e IncludeTester::print_xs
+
 #if 1
 
 INCLUDE: XSInclude.xsh

Modified: trunk/libextutils-parsexs-perl/t/more.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libextutils-parsexs-perl/t/more.t?rev=50794&op=diff
==============================================================================
--- trunk/libextutils-parsexs-perl/t/more.t (original)
+++ trunk/libextutils-parsexs-perl/t/more.t Tue Jan 12 15:05:37 2010
@@ -8,7 +8,7 @@
 use attributes;
 use overload;
 
-plan tests => 24;
+plan tests => 25;
 
 my ($source_file, $obj_file, $lib_file);
 
@@ -42,7 +42,7 @@
 }
 
 SKIP: {
-  skip "no dynamic loading", 5
+  skip "no dynamic loading", 6
     if !$b->have_compiler || !$Config{usedl};
   my $module = 'XSMore';
   $lib_file = $b->link( objects => $obj_file, module_name => $module );
@@ -88,6 +88,8 @@
 
   is XSMore::len("foo"), 3, 'the length keyword';
 
+  is XSMore::sum(5, 9), 14, 'the INCLUDE_COMMAND directive';
+
   # Win32 needs to close the DLL before it can unlink it, but unfortunately
   # dl_unload_file was missing on Win32 prior to perl change #24679!
   if ($^O eq 'MSWin32' and defined &DynaLoader::dl_unload_file) {




More information about the Pkg-perl-cvs-commits mailing list