You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by dl...@apache.org on 2002/01/31 18:52:07 UTC
cvs commit: xml-xalan/java build.xml commits.xml
dleslie 02/01/31 09:52:07
Modified: java build.xml commits.xml
Log:
1. Removed copying of todo.html from build.xml.
2. Regenerated commits list (commits.xml).
Revision Changes Path
1.156 +2 -4 xml-xalan/java/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/build.xml,v
retrieving revision 1.155
retrieving revision 1.156
diff -u -r1.155 -r1.156
--- build.xml 25 Jan 2002 15:53:20 -0000 1.155
+++ build.xml 31 Jan 2002 17:52:07 -0000 1.156
@@ -41,7 +41,7 @@
Copyright:
Copyright (c) 1999-2001 The Apache Software Foundation.
- $Id: build.xml,v 1.155 2002/01/25 15:53:20 curcuru Exp $
+ $Id: build.xml,v 1.156 2002/01/31 17:52:07 dleslie Exp $
==================================================================== -->
<project name="Xalan" default="jar" basedir=".">
@@ -181,7 +181,7 @@
<!-- Creates output build directories and doc prerequistes -->
<!-- =================================================================== -->
<target name="prepare">
- <echo message="Project:${Name-in-docs} version:${version} build.xml $Revision: 1.155 $"/>
+ <echo message="Project:${Name-in-docs} version:${version} build.xml $Revision: 1.156 $"/>
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.classes}"/>
<!-- Note that all testing-related targets *must* depend on
@@ -849,8 +849,6 @@
<arg line="targetDirectory=${site.dir} ${site.book} ${xdocs.style}"/>
</java>
- <!-- put todo.html in the site directory -->
- <copy file="${build.docs}/todo.html" todir="${site.dir}"/>
<!-- put xalan design doc in the site design subdir -->
<copy todir="${site.dir}/design">
<fileset dir="${build.docs}/design"/>
1.39 +270 -0 xml-xalan/java/commits.xml
Index: commits.xml
===================================================================
RCS file: /home/cvs/xml-xalan/java/commits.xml,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- commits.xml 22 Jan 2002 21:10:49 -0000 1.38
+++ commits.xml 31 Jan 2002 17:52:07 -0000 1.39
@@ -42,4 +42,274 @@
<Modified>java/src/org/apache/xml/utils SuballocatedIntVector.java</Modified>
<Log><blush>Wrong side of the fencepost...</blush></Log>
</Commit>
+<Commit category="core">
+<Who>jkesselm@apache.org</Who>
+<DateCommitted>01/23/2002</DateCommitted>
+<Modified>java/src/org/apache/xalan/templates ElemTemplate.java
+ java/src/org/apache/xalan/transformer TransformerImpl.java
+ java/src/org/apache/xml/dtm DTMManager.java
+ java/src/org/apache/xml/dtm/ref DTMDefaultBase.java
+ DTMManagerDefault.java
+ java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java
+ java/src/org/apache/xpath XPathContext.java</Modified>
+<Added>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2RTFDTM.java</Added>
+<Log>These changes allow us to store multiple Result Tree Fragment (RTF)
+ document trees (used when an XSLT variable contains a constructed
+ set of nodes) into a single DTM object rather than using a new DTM
+ for each RTF. They also permit "tail-pruning" this shared DTM to
+ reuse that space as the variables go out of scope.
+
+ The result is a slight performance improvement, and a much more
+ significant improvement in storage efficiency. Stylesheets which
+ use RTFs heavily should now run in much less memory; in
+ one testcase, our "working set" heap size (storage actually in
+ use, not counting objects released but not yet GC'd) dropped
+ from 12-15MB down to 3-6MB, and heap churn (how quickly
+ storage was being allocated and discarded) also reduced
+ substantially.
+
+ The code changes needed to support this new scheme are
+ surprisingly small. And I believe it may be possible to reduce them
+ further, if we're willing to merge the SAX2RTFDTM subclass back
+ into its SAX2DTM superclass. I believe that could be done with
+ very little adverse impact on other uses of SAX2DTM... but I felt it
+ was safer to defer that decision for now.</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>tmiller@apache.org</Who>
+<DateCommitted>01/24/2002</DateCommitted>
+<Modified>java/src/org/apache/xalan/xsltc/runtime TextOutput.java</Modified>
+<Log>bug 1520 fix, escape chars over 0080 instead of 00FF</Log>
+</Commit>
+<Commit category="xsltc">
+<Who>tmiller@apache.org</Who>
+<DateCommitted>01/24/2002</DateCommitted>
+<Modified>java/src/org/apache/xalan/xsltc/runtime TextOutput.java</Modified>
+<Log>bug 1520, adjusted 0080 to 007F in ASCII cutoff</Log>
+</Commit>
+<Commit category="core">
+<Who>mmidy@apache.org</Who>
+<DateCommitted>01/25/2002</DateCommitted>
+<Modified>java/src/org/apache/xalan/transformer TransformerImpl.java</Modified>
+<Log>Bug 5982 and 6022. The variable stack was not being cleared accross
+transforms so that when the transformer is reused, we were using nodesets from
+the previous transform which were using a different DTM. Note that we want keep
+any variables that have been set externally by the user (using
+Transformer.setParameter()).</Log>
+</Commit>
+<Commit category="core">
+<Who>mmidy@apache.org</Who>
+<DateCommitted>01/28/2002</DateCommitted>
+<Modified>java/src/org/apache/xpath/res XPATHErrorResources.java</Modified>
+<Log>bug 4762: Fixed the duplicate error message in XPATH.</Log>
+</Commit>
+<Commit category="core">
+<Who>jkesselm@apache.org</Who>
+<DateCommitted>01/28/2002</DateCommitted>
+<Modified>java/src/org/apache/xalan/transformer TransformerImpl.java</Modified>
+<Log>Bugzilla 4054: Retain previously set output properties when adding new ones.</Log>
+</Commit>
+<Commit category="core">
+<Who>mmidy@apache.org</Who>
+<DateCommitted>01/28/2002</DateCommitted>
+<Modified>java/src/org/apache/xalan/transformer TransformerImpl.java</Modified>
+<Log>Bug 5872. We were using a constructor of TranformerException without the
+locator information. Changed to code to use a locator if info is available.</Log>
+</Commit>
+<Commit category="core">
+<Who>dleslie@apache.org</Who>
+<DateCommitted>01/30/2002</DateCommitted>
+<Modified>java/src/org/apache/xalan/lib NodeInfo.java</Modified>
+<Log>Changed "system id" to "public identifier" in javadoc
+ comments for publicId() methods.</Log>
+</Commit>
+<Commit category="core">
+<Who>jkesselm@apache.org</Who>
+<DateCommitted>01/30/2002</DateCommitted>
+<Modified>java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java</Modified>
+<Log>Bugzilla 2617, part 1: Construct the data structures and access them
+correctly.
+ Ignore too-late-to-be-safe requests to enable this feature.
+
+ This doesn't resolve how to rewrite higher-level code so it makes the
+ request early enough to be useful.</Log>
+</Commit>
+<Commit category="core">
+<Who>mmidy@apache.org</Who>
+<DateCommitted>01/30/2002</DateCommitted>
+<Modified>java/src/org/apache/xalan/templates StylesheetComposed.java
+ StylesheetRoot.java TemplateList.java
+ java/src/org/apache/xalan/transformer TransformerImpl.java</Modified>
+<Log>Bug 4987: Changed Apply-imports logic to only apply imports to stylesheets
+that are direct imports. The logic for includes has not changed, we will
+apply-imports to any stylesheet that is imported as a result of an inclusion.
+Note: had to change the order when includes and imports are recomposed!</Log>
+</Commit>
+<Commit category="core">
+<Who>jkesselm@apache.org</Who>
+<DateCommitted>01/31/2002</DateCommitted>
+<Modified>java/src/org/apache/xalan/lib NodeInfo.java
+ java/src/org/apache/xalan/processor
+ TransformerFactoryImpl.java
+ java/src/org/apache/xalan/transformer TransformerImpl.java
+ java/src/org/apache/xalan/xslt Process.java
+ java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
+ java/src/org/apache/xml/dtm/ref/sax2dtm SAX2DTM.java
+ SAX2RTFDTM.java
+ java/src/org/apache/xml/utils DefaultErrorHandler.java</Modified>
+<Log>Bugzilla 2617: Recreated missing code, changed controls to ensure
+ that this mode gets set early enough to be useful and can't be broken
+ by being turned on and off during execution.
+
+ NOTE: Current implementation relies on a global static flag in
+ TransformerFactoryImpl. We need to rearchitect our APIs slightly
+ so configuration hints of this kind can be passed down from top-level
+ objects to the back-end code more elegantly. Revisit in future
+ releases.</Log>
+</Commit>
+<Commit category="core">
+<Who>mmidy@apache.org</Who>
+<DateCommitted>01/31/2002</DateCommitted>
+<Modified>java/src/org/apache/xalan/templates ElemApplyTemplates.java</Modified>
+<Log>Bug 5505: Need to resolve params before we do anything else, so move code
+that does that above the code that sets up the different node stacks.</Log>
+</Commit>
+<Commit category="core">
+<Who>sboag@apache.org</Who>
+<DateCommitted>01/31/2002</DateCommitted>
+<Modified>java/src/org/apache/xalan/extensions Tag:
+ SBOAG_BRANCH_OPTIMIZATION2
+ ExtensionHandlerJavaClass.java
+ java/src/org/apache/xalan/processor Tag:
+ SBOAG_BRANCH_OPTIMIZATION2 ProcessorKey.java
+ ProcessorPreserveSpace.java
+ ProcessorStripSpace.java StylesheetHandler.java
+ XSLTAttributeDef.java XSLTElementProcessor.java
+ java/src/org/apache/xalan/templates Tag:
+ SBOAG_BRANCH_OPTIMIZATION2 AVT.java AVTPart.java
+ AVTPartSimple.java AVTPartXPath.java
+ ElemApplyTemplates.java ElemAttribute.java
+ ElemCallTemplate.java ElemChoose.java
+ ElemCopyOf.java ElemElement.java
+ ElemExtensionCall.java ElemForEach.java ElemIf.java
+ ElemLiteralResult.java ElemNumber.java
+ ElemTemplateElement.java ElemValueOf.java
+ ElemVariable.java ElemWhen.java ElemWithParam.java
+ FuncDocument.java FuncKey.java Stylesheet.java
+ StylesheetRoot.java WhiteSpaceInfo.java
+ java/src/org/apache/xalan/trace Tag:
+ SBOAG_BRANCH_OPTIMIZATION2 TraceManager.java
+ java/src/org/apache/xalan/transformer Tag:
+ SBOAG_BRANCH_OPTIMIZATION2 KeyIterator.java
+ KeyManager.java KeyRefIterator.java KeyTable.java
+ NodeSorter.java ResultTreeHandler.java
+ TransformerImpl.java
+ java/src/org/apache/xml/dtm/ref Tag:
+ SBOAG_BRANCH_OPTIMIZATION2 DTMNodeList.java
+ java/src/org/apache/xml/dtm/ref/dom2dtm Tag:
+ SBOAG_BRANCH_OPTIMIZATION2 DOM2DTM.java
+ java/src/org/apache/xml/utils Tag:
+ SBOAG_BRANCH_OPTIMIZATION2 DefaultErrorHandler.java
+ NodeVector.java SuballocatedIntVector.java
+ java/src/org/apache/xpath Tag: SBOAG_BRANCH_OPTIMIZATION2
+ Expression.java VariableStack.java XPath.java
+ XPathContext.java
+ java/src/org/apache/xpath/axes Tag:
+ SBOAG_BRANCH_OPTIMIZATION2 AttributeIterator.java
+ AxesWalker.java ChildIterator.java
+ ChildTestIterator.java DescendantIterator.java
+ FilterExprWalker.java IteratorPool.java
+ LocPathIterator.java MatchPatternIterator.java
+ OneStepIterator.java OneStepIteratorForward.java
+ PredicatedNodeTest.java ReverseAxesWalker.java
+ SelfIteratorNoPredicate.java UnionPathIterator.java
+ WalkerFactory.java WalkingIterator.java
+ WalkingIteratorSorted.java
+ java/src/org/apache/xpath/compiler Tag:
+ SBOAG_BRANCH_OPTIMIZATION2 Compiler.java
+ java/src/org/apache/xpath/functions Tag:
+ SBOAG_BRANCH_OPTIMIZATION2 FuncBoolean.java
+ FuncCount.java FuncExtFunction.java Function.java
+ Function2Args.java Function3Args.java
+ FunctionMultiArgs.java FunctionOneArg.java
+ java/src/org/apache/xpath/objects Tag:
+ SBOAG_BRANCH_OPTIMIZATION2 XNodeSet.java
+ XNodeSetForDOM.java XNumber.java XObject.java
+ XRTreeFrag.java XRTreeFragSelectWrapper.java
+ XString.java XStringForFSB.java
+ java/src/org/apache/xpath/operations Tag:
+ SBOAG_BRANCH_OPTIMIZATION2 Bool.java Equals.java
+ Operation.java UnaryOperation.java Variable.java
+ java/src/org/apache/xpath/patterns Tag:
+ SBOAG_BRANCH_OPTIMIZATION2 FunctionPattern.java
+ NodeTest.java StepPattern.java UnionPattern.java</Modified>
+<Added>java/src/org/apache/xalan/processor Tag:
+ SBOAG_BRANCH_OPTIMIZATION2 WhitespaceInfoPaths.java
+ java/src/org/apache/xalan/templates Tag:
+ SBOAG_BRANCH_OPTIMIZATION2 AbsPathChecker.java
+ ElemVariablePsuedo.java
+ RedundentExprEliminator.java VarNameCollector.java
+ XSLTVisitable.java XSLTVisitor.java
+ XUnresolvedVariableSimple.java
+ java/src/org/apache/xpath/axes Tag:
+ SBOAG_BRANCH_OPTIMIZATION2 BasicTestIterator.java
+ FilterExprIterator.java
+ FilterExprIteratorSimple.java
+ HasPositionalPredChecker.java NodeSequence.java
+ PathComponent.java UnionChildIterator.java
+ java/src/org/apache/xpath/operations Tag:
+ SBOAG_BRANCH_OPTIMIZATION2 VariableSafeAbsRef.java</Added>
+<Log>Redundent Expression Elimination branch checkin. This branch is for major
+ optimization work being done. I expect it to be folded in on the main branch
+ within a couple of weeks.
+
+ Goal of branch: around 50% overall performance gain.
+
+ Major architectural changes
+ 1) Rip out cacheing in all iterators, and move the caching into XNodeSet
+(actually NodeSequence where the caching is done derives from XObject and
+XNodeSet derives from NodeSequence). Lots of other changes went into this,
+including rewriting of some of the xsl:key stuff.
+
+ 2) Implementation of a Visitor mechanism for the stylesheet and xpath
+components. Each component for an XPath event is passed an ExpressionOwner,
+which just has a getExpression and setExpression method, which allows us to
+create a list of these, and then be able to do rewrites. This should be a
+generally useful mechanism for all sorts of stuff, and should be considered a
+public API.
+
+ 3) Implementation of deepEquality methods for all XPath components, which
+allows us to see if two components are equal.
+
+ 4) Implementation of RedundentExprEliminator, which is a derivative from the
+new XSLTVisitor class, which runs over the stylesheet collecting xpaths within
+the same scope, and absolute xpaths that are not context dependent. These are
+then each reduced by walking the list and checking for deep equality (though
+global paths are always reduced). Reduction takes place by creating variables
+that have a special namespace and a non-legal local name. Both full and
+partial path reduction done.
+
+ Not done yet: Add back in the xsl:key caching that I ripped out (not a big
+deal). Could be skipped, with some risk.
+
+ Not done yet: Implement isLast function. With the new stuff, the last()
+function will be slower, so, since most cases are just checking to see if an
+item is the last, I want to rewrite foo[last()] patterns to
+foo[xalan:isLast()]. Could be skipped, with some risk.
+
+ Davanum performance test result: 4x increase in performance.
+
+ Datapower performance suite results: very slight decrease in overall
+performance. :-(
+
+ Smoke test results: All clear when run with Xerces 1.
+
+ To Do on this branch:
+
+ Christina trace/debug API enhancements.
+ Possible unroll of recursive evaluation.
+ Implement serializers directly off of ResultTreeHandler (and provide
+ContentHandler adapters).
+ Specialize and optimize serializers for 80% cases.</Log>
+</Commit>
</Commits>
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org