You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ja...@apache.org on 2005/12/03 13:48:00 UTC

svn commit: r351932 - in /xerces/xerces-p/trunk: MANIFEST MANIFEST.SKIP META.yml Makefile.PL TODO

Author: jasons
Date: Sat Dec  3 04:47:36 2005
New Revision: 351932

URL: http://svn.apache.org/viewcvs?rev=351932&view=rev
Log:
updated

Modified:
    xerces/xerces-p/trunk/MANIFEST
    xerces/xerces-p/trunk/MANIFEST.SKIP
    xerces/xerces-p/trunk/META.yml
    xerces/xerces-p/trunk/Makefile.PL
    xerces/xerces-p/trunk/TODO

Modified: xerces/xerces-p/trunk/MANIFEST
URL: http://svn.apache.org/viewcvs/xerces/xerces-p/trunk/MANIFEST?rev=351932&r1=351931&r2=351932&view=diff
==============================================================================
--- xerces/xerces-p/trunk/MANIFEST (original)
+++ xerces/xerces-p/trunk/MANIFEST Sat Dec  3 04:47:36 2005
@@ -50,6 +50,8 @@
 samples/personal.xsd
 samples/public.xml
 samples/system.xml
+samples/personal-invalid.xml
+samples/personal-not-well-formed.xml
 
 # sample programs
 samples/validator.pl
@@ -87,6 +89,7 @@
 t/DOMAttr.t
 t/DOMElement.t
 t/DOMWriter.t
+t/DOMImplementation.t
 
 t/AttributeList.t
 t/Attributes.t
@@ -110,6 +113,9 @@
 # SWIG casting test
 t/actualCast.t
 
+# test Unicode
+t/UTF8.t
+
 t/letter.xml
 t/TestUtils.pm
 
@@ -124,7 +130,29 @@
 Handler/PerlCallbackHandler.swig.hpp
 postModule.pl
 postSource.pl
-typemaps.i
+
+interface/DOM.i
+interface/Perl.i
+interface/defines.i
+interface/typemaps-general.i
+interface/typemaps-xmlch.i
+interface/typemaps.i
+interface/callback.i
+interface/grammars.i
+interface/ignore.i
+interface/input-source.i
+interface/parsers.i
+interface/SAX.i
+interface/SAX2.i
+interface/util.i
+
+# scripts for testing XML::Xerces
+scripts/memtest-light.pl
+scripts/memtest.pl
+scripts/xercesc-memtest.pl
+
+# Document which parts of the Xerces-C API have been included
+xerces-headers.txt
 
 # this is for internal use by developers making a release
 # ANNOUNCE

Modified: xerces/xerces-p/trunk/MANIFEST.SKIP
URL: http://svn.apache.org/viewcvs/xerces/xerces-p/trunk/MANIFEST.SKIP?rev=351932&r1=351931&r2=351932&view=diff
==============================================================================
--- xerces/xerces-p/trunk/MANIFEST.SKIP (original)
+++ xerces/xerces-p/trunk/MANIFEST.SKIP Sat Dec  3 04:47:36 2005
@@ -1,3 +1,4 @@
+-tmp.{cpp,pm}$
 ^chars.pl$
 ^doxyparse.pl$
 ^t/UTF8.test$

Modified: xerces/xerces-p/trunk/META.yml
URL: http://svn.apache.org/viewcvs/xerces/xerces-p/trunk/META.yml?rev=351932&r1=351931&r2=351932&view=diff
==============================================================================
--- xerces/xerces-p/trunk/META.yml (original)
+++ xerces/xerces-p/trunk/META.yml Sat Dec  3 04:47:36 2005
@@ -1,7 +1,7 @@
 # http://module-build.sourceforge.net/META-spec.html
 #XXXXXXX This is a prototype!!!  It will change in the future!!! XXXXX#
 name:         XML-Xerces
-version:      2.5.0-0
+version:      2.6.0-1
 version_from: 
 installdirs:  site
 requires:

Modified: xerces/xerces-p/trunk/Makefile.PL
URL: http://svn.apache.org/viewcvs/xerces/xerces-p/trunk/Makefile.PL?rev=351932&r1=351931&r2=351932&view=diff
==============================================================================
--- xerces/xerces-p/trunk/Makefile.PL (original)
+++ xerces/xerces-p/trunk/Makefile.PL Sat Dec  3 04:47:36 2005
@@ -1,5 +1,21 @@
+ #
+ # Copyright 2002,2004 The Apache Software Foundation.
+ #
+ # Licensed under the Apache License, Version 2.0 (the "License");
+ # you may not use this file except in compliance with the License.
+ # You may obtain a copy of the License at
+ #
+ #      http://www.apache.org/licenses/LICENSE-2.0
+ #
+ # Unless required by applicable law or agreed to in writing, software
+ # distributed under the License is distributed on an "AS IS" BASIS,
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
+ #
+
 use ExtUtils::MakeMaker;
-use Env qw(XERCES_LIB 
+use Env qw(XERCES_LIB
 	   XERCES_CONFIG
 	   XERCES_INCLUDE
 	   XERCESCROOT
@@ -9,6 +25,14 @@
 use vars qw($INCLUDES $CXX $CFLAGS @LDFLAGS @OPTIMIZE);
 use File::Basename;
 
+# We need to know which version of libxerces we are to use.
+# As of Xerces-C 1.5.1, minor version numbers are used
+my $XERCES_MAJOR_VERSION = '2.6';
+my $XERCES_MINOR_VERSION = '0';
+my $XERCES_LIB_VERSION = "$XERCES_MAJOR_VERSION.$XERCES_MINOR_VERSION";
+my $XERCES_PERL_VERSION = $XERCES_LIB_VERSION . '-1';
+my $XERCES_VERSION = "$XERCES_LIB_VERSION";
+
 eval {
   require 5.6.0;
 };
@@ -33,7 +57,7 @@
   # they are instructing us to use the build directories
   $XERCES_INCLUDE = "$XERCESCROOT/include";
   $XERCES_LIB = "$XERCESCROOT/lib";
-} 
+}
 
 my $LIBS = '-lpthread';
 $INCLUDES = '-I. -IHandler';
@@ -79,59 +103,29 @@
    WARNING
 
 You have defined the XERCES_CONFIG variable, but it does not seem to
-point to the $config_file file that was used to build your
-Xerces-C. Without that file, I may not be able to properly build the
+point to the $config_file file that was used to build your Xerces-C
+library. Without that file, I may not be able to properly build the
 C++ glue files that come with Xerces.pm.
 
-Proceeding ...
+Proceeding anyway ...
 EOW
   }
 } elsif (defined $XERCESCROOT) {
-  my $file = "$XERCESCROOT/src/xercesc/$config_file";
-  if (-f "$file") {
-    print STDERR "using config file: $file\n";
-    open(CONF,$file)
-      or die "Couldn't open $file for reading";
-    while (<CONF>) {
-      if (/\@CXXFLAGS\@/) {
-	my ($flags) = /%([^%]*)%g$/;
-	my @flags = split /\s+/, $flags;
-	my @new_flags;
-	foreach my $flag (@flags) {
-	  if ($flag =~ /^(-(g|O).?)$/) {
-	    @OPTIMIZE = (OPTIMIZE => $1);
-	    next;
-	  } elsif ($flag =~ /^-DPROJ_/) {
-	    next;
-	  }
-	  push(@new_flags,$flag);
-	}
-	($CXXFLAGS) = join(' ',@new_flags);
-      } elsif (/\@LDFLAGS\@/) {
-	($LDFLAGS) = /%([^%]*)%g$/;
-	@LDFLAGS = ('LDFLAGS'     => $LDFLAGS)
-	  if $LDFLAGS !~ /^\s*$/;
-      } elsif (/\@CXX\@/) {
-	($CXX) = /%([^%]*)%g$/
-      }
-    }
-    print STDERR <<EOM;
-
-Found CXX      = $CXX
-Found CXXFLAGS = $CXXFLAGS
-Found LDFLAGS  = $LDFLAGS
-EOM
-  } else {
-  print STDERR <<EOW;
+  $XERCES_CONFIG = "$XERCESCROOT/src/xercesc/$config_file";
+  unless (-f $XERCES_CONFIG) {
+    print STDERR <<EOW;
 
    WARNING
 
-You have defined the XERCESCROOT variable, but I am unable to locate
-the $config_file file that was used to build your Xerces-C. Without
-that file, I may not be able to properly build the C++ glue files that
-come with Xerces.pm.
+You have defined the XERCESCROOT variable, but the file:
 
-Proceeding ...
+  XERCESCROOT/src/xercesc/$config_file
+
+ does not seem to point to the $config_file file that was used to
+ build your Xerces-C library. Without that file, I may not be able to
+ properly build the C++ glue files that come with Xerces.pm.
+
+Proceeding anyway ...
 EOW
   }
 } else {
@@ -144,22 +138,49 @@
    XERCES_CONFIG
 
 Without these I cannot find the $config_file file that was used to
-build your Xerces-C. Without that file, I may not be able to properly
+build your Xerces-C library. Without that file, I may not be able to properly
 build the C++ glue files that come with Xerces.pm.
 
-Proceeding ...
+Proceeding anyway ...
 EOW
 }
 
-$CFLAGS .= " $CXXFLAGS ";
+if (-f $XERCES_CONFIG) {
+  print STDERR "using XERCES_CONFIG: $XERCES_CONFIG\n";
+  open(CONF,$XERCES_CONFIG)
+    or die "Couldn't open $XERCES_CONFIG for reading";
+  while (<CONF>) {
+    if (/\@CXXFLAGS\@/) {
+      my ($flags) = /%([^%]*)%g$/;
+      my @flags = split /\s+/, $flags;
+      my @new_flags;
+      foreach my $flag (@flags) {
+	if ($flag =~ /^(-(g|O).?)$/) {
+	  @OPTIMIZE = (OPTIMIZE => $1);
+	  next;
+	} elsif ($flag =~ /^-DPROJ_/) {
+	  next;
+	}
+	push(@new_flags,$flag);
+      }
+      ($CXXFLAGS) = join(' ',@new_flags);
+    } elsif (/\@LDFLAGS\@/) {
+      ($LDFLAGS) = /%([^%]*)%g$/;
+      @LDFLAGS = ('LDFLAGS'     => $LDFLAGS)
+	if $LDFLAGS !~ /^\s*$/;
+    } elsif (/\@CXX\@/) {
+      ($CXX) = /%([^%]*)%g$/
+    }
+  }
+  print STDERR <<EOM;
 
-# We need to know which version of libxerces we are to use. 
-# As of Xerces-C 1.5.1, minor version numbers are used
-my $XERCES_MAJOR_VERSION = '2.5';
-my $XERCES_MINOR_VERSION = '0';
-my $XERCES_LIB_VERSION = "$XERCES_MAJOR_VERSION.$XERCES_MINOR_VERSION";
-my $XERCES_PERL_VERSION = $XERCES_LIB_VERSION . '-0';
-my $XERCES_VERSION = "$XERCES_LIB_VERSION";
+Found CXX      = $CXX
+Found CXXFLAGS = $CXXFLAGS
+Found LDFLAGS  = $LDFLAGS
+EOM
+}
+
+$CFLAGS .= " $CXXFLAGS ";
 
 # find the version of Xerces-C we are using
 my $file_name = 'XercesVersion.hpp';
@@ -255,11 +276,15 @@
   # set up the custom headers
   my @header_files;
   my @handler_headers;
+  my @interface_files;
   chomp(@handler_headers = `$FIND Handler -name "*.swig.hpp"`);
 
   sub Xerces_postamble {
     chomp(my @import_files = `$FIND Handler -name "*.i"`);
     push(@header_files,@handler_headers,@import_files);
+
+    chomp(my @interface_files = `$FIND interface -name "*.i"`);
+    @interface_files = grep {$_ ne 'Perl.i'} @interface_files;
     local $" = ' ';
     my $OS_DEF;
     my $CC_DEF;
@@ -283,20 +308,24 @@
       $MAKE =  '	cd Handler && \$(MAKE) static';
     }
 
+    ### We no longer need to munge the C++ code thanks to SWIG improvements
+    # perl postSource.pl Xerces.cpp
     my $retval = <<TERMINUS;
-Xerces.cpp: Xerces.i typemaps.i @header_files postSource.pl 
-	\$(SWIG) $SWIG_ARGS -o Xerces.cpp Xerces.i
-	perl postSource.pl Xerces.cpp
-	perl postModule.pl Xerces.pm
-
-
-Xerces.pm: Xerces.cpp postModule.pl Xerces-extra.pm
-	if [[ postModule.pl -nt Xerces.pm || Xerces-extra.pm -nt Xerces.pm ]] ; then \\
-\$(SWIG) $SWIG_ARGS -o foo.C Xerces.i ; \\
-rm foo.C ; \\
-perl postModule.pl Xerces.pm ; \\
-cp -f Xerces.pm blib/lib/XML ; \\
-	fi
+Xerces-tmp.pm: postModule.pl interface/Perl.i
+	\$(SWIG) $SWIG_ARGS -o Xerces-tmp.cpp Xerces.i
+	mv Xerces.pm Xerces-tmp.pm
+
+Xerces.pm: postModule.pl Xerces-tmp.pm
+	perl postModule.pl
+
+Xerces.cpp: postSource.pl Xerces-tmp.cpp
+	perl postSource.pl
+
+Xerces-tmp.cpp: Xerces.i @interface_files @header_files  Xerces-extra.pm
+	\$(SWIG) $SWIG_ARGS -o Xerces-tmp.cpp Xerces.i
+	mv Xerces.pm Xerces-tmp.pm
+	perl postModule.pl
+	cp -f Xerces.pm blib/lib/XML/Xerces.pm
 
 $HANDLER_LIB:
 $MAKE
@@ -310,9 +339,6 @@
   @MACRO = ('macro'       => {
     'SWIG'         => "$swig",
   });
-
-  # we'll assume that we want -g as a default
-  #  @OPTIMIZE = (OPTIMIZE => '-g');
 
   # we want all warnings
   $CFLAGS .= ' -Wall';

Modified: xerces/xerces-p/trunk/TODO
URL: http://svn.apache.org/viewcvs/xerces/xerces-p/trunk/TODO?rev=351932&r1=351931&r2=351932&view=diff
==============================================================================
--- xerces/xerces-p/trunk/TODO (original)
+++ xerces/xerces-p/trunk/TODO Sat Dec  3 04:47:36 2005
@@ -23,80 +23,29 @@
 
 Internals:
 ==========
-Mon Jun  2 11:04:34 MDT 2003
-* make a fatal error if someone is using the wrong version of Xerces-C
+Fri May 13 18:21:45 IST 2005
+* change the string typecheck to only do an SvOK()
+* does Xerces have any methods were a NULL XMLCh* value is needed? -
+  if so we have to enable a %typemap to support it
+* Xerces has some methods were a NULL pointer value is needed and some
+  methods were it segfaults -  we have to enable a %typemap to
+  differentiate between them
+* %ignore and %rename behave differently when used with default
+  arguments, ensure that the default args are included in the
+  directives or it won't get used for all of them.
+* make sure there are no memory leaks when exceptions are thrown -
+  'goto fail' must work
 
 Fri Oct 11 21:57:23 MDT 2002
-* the %typecheck for XMLCh* is too greedy, it shouldn't happen later
+* the %typecheck for XMLCh* is too greedy, it should happen later
   in the typecheck process
 
 Fri Jun  7 00:37:01 MDT 2002
 * make entity resolver to find all the xml files
 
 Sun Jun  2 11:38:11 MDT 2002
-Fixed ==> * move transcoder initialization from postSource.pl to an
-  %init block
-Fixed ==> * use SWIG macro for multiple methods which use same exception
 * use %newobject and %typemape(newfree) for methods like removeNode()
-* look into use %feature("shadow") instead of having stuff in
-  postModule.pl
 * look into using SWIG_RegisterMapping() instead of inheritance hack
-
-Mon Mar 25 00:37:58 MST 2002
-Fixed ==> * callbacks for DOM_NodeFilter
-Fixed ==> * test for TreeWalker
-
-Thu Mar 21 08:49:08 MST 2002
-Fixed ==> * implement a way to export IDOM documents (see RE: IDOM memory model
-  in xerces-c-dev)
-
-Fri Jan 18 23:36:20 MST 2002
-Fixed ==> * DOM_Document::getElementById() segfaults on undef ID
-
-Fri Nov  2 23:07:43 MST 2001
-Won't do ==> * Make XML::Xerces::XMLString class and have SWIG convert all XMLCh
-  arrays to these. This should eliminate a lot of transcoding.
-Won't do ==> * Provide all needed XMLString operators:
-  - stringify
-  - . (.=)
-  - eq (neq)
-Fixed ==> * Remove DOMString support
-
-Mon Sep 24 20:17:58 MDT 2001
-Fixed ==> * REAL EXCEPTION HANDLING via eval{}/die();
-  - throw exception objects
-Fixed ==>  - never call cerr, use croak()
-* Finish conversion of Xerces.i to SWIG-1.3.8
-  - sax
-  - sax2
-Fixed ==>  - util
-* overloaded constructors for XMLPScanToken
-* overloaded constructors for QName
-Fixed ==>* overloaded constructors for XMLUri
-* overloaded constructors for SAX*Exception
-Fixed ==>* overloaded method for AttributeList::getValue
-Fixed ==>* overloaded method for AttributeList::getType
-Fixed ==>* overloaded method for XMLReaderFactory::createReaderFactory
-Fixed ==>* overloaded method for Attributes::getValue
-Fixed ==>* overloaded method for Attributes::getType
-Fixed ==>* overloaded method for Attributes::getIndex
-
-* Add tests for IDOM untested features
-Fixed ==> * Add tests for DOM untested features (should we do this if DOM is
-  to be replaced by IDOM ==> low priority)
-
-Mon Sep 10 21:28:51 MDT 2001
-Fixed ==> * Fix MemBufInputSource::new() so that it doesn't require the string
-* check memory repeated re-use of parser
-* only create DESTROY methods for objects with C++ data to be deleted,
-  that should be directly invoked, i.e. not inherited methods
-
-Sat Apr 14 17:30:46 MST 2001
-* Implement a tied hash interface for NamedNodeMap
-* Implement a tied array for NodeList
-
-
-
 
 ### *** emacs file mode definition ***
 ### Local Variables: 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org