2005-09-26  Per Bothner  <per@bothner.com>

	* Average.java (combine): Coerce operands with NumberValue.

	* OrderedTuples.java (listsort): Fix thinko.

2005-09-25  Per Bothner  <per@bothner.com>

	* OrderedMap.java: New class, extends MethodProc.
	* OrderedTuples.java: New class, extends FilterConsumer.
	* Makefile.am: Update accordingly.

	* SequenceUtils.java (reverse$X): New methods, implements fn:revrese.

2005-08-16  Per Bothner  <per@bothner.com>

	* NodeUtils.java: New class.
	(atomicValue, localName, namespaceURI): New static methods.
	* DistinctValues.java: New class.
	* Makefile.am: Update accordingly.
	* Compare.java (apply): Add NamedCollator parameter.  Use it.
	Get atomiValue of nodes.
	(apply2): Update for modified apply.
	* MinMax.java (combine): Extract numberValue from nodes.
	* StringValue.java (compare): New method.

	* NamedCollator.java (UNICODE_CODEPOINT_COLLATION): Update uri.
	(find): New alias (for now) for make.
	
	* QNameUtils.java (prefixFromQName): New static method.

	* Reduce.java (apply1): Fix bogus iteration.

2005-06-09  Per Bothner  <per@bothner.com>

	* StringValue.java (stringValue): null or #!void append nothing.
	(lowerCase, upperCase, substring, stringLength, substringBefore,
	substringAfter, translate, stringPad, contains, startsWith, endWith,
	stringJoin): Don't return empty on empty input string; instead return
	the empty string, usually taken care of by stringValue.
	(substring, stringLength, substringBefore, substringAfter, translate,
	startsWith, stringJoin): Convert to String using stringvalue, not
	toString.
	(contains, startsWith, endsWith, substringAfter): Remove redundant
	comparisons.
	(substringBefore): Fix off-by-one error.
	(translate): Re-do StringBuffer construction to append each character,
	rather than modify/delete characters.
	(stringPad): Throw exception on error instead of printing.
	Also, improve StringBuffer allocation.

2005-06-04  Per Bothner  <per@bothner.com>

	* XMLFormat.java: Update for AbstractFormat move to gnu.lists.

2005-03-03  Per Bothner  <per@bothner.com>

	* Children.java: Moved to gnu.kawa.xml, because it is also
	used for Scheme.
	* Makefile.am: Update accordingly.

2005-01-02  Per Bothner  <per@bothner.com>

	* NamedCollator.java: Change "select" (preprocessor) syntax.

2004-12-22  Per Bothner  <per@bothner.com>

	* MakeAttribute.java: Moved to gnu.kawa.xml.
	* MakeElement.java: Likewise.
	* Makefile.am: Update accordingly,
	* QNameUtils.java (resolveQName): New helper method, used for xs:QName.
	(makeQName): New implementation, for fn:QName.
	(localNameFromQName, namespaceURIFromQName): Handle SName.

2004-12-10  Per Bothner  <bothner@Per-Bothners-Computer.local>

	* SequenceUtils.java: New class has sequence functions implementations.
	* IsEmptySequence.java: Removed class - use SequenceUtils instead.
	* NamedCollator.java: New class extends Collator.
	* Makefile.am: Update accordingly.

2004-11-06  Per Bothner  <per@bothner.com>

	* QNameUtils.java: New class.
	* Makefile.am: Update accordingly.

2004-08-10  Per Bothner  <per@bothner.com>

	* ValuesFilter.java (inline): Add missing letEnter call.

2004-08-08  Per Bothner  <per@bothner.com>

	* RelativeStep.java (apply):  Update to use check3.
	* ValuesEvery.java (apply):  Update to use check1.

2004-08-03  Per Bothner  <per@bothner.com>

	* Children.java:  Extend MethodProc instead of CpsProcedure
	* RelativeStep.java:  Likewise.
	* SubList.java:  Likewise.
	* ValuesEvery.java:  Likewise.
	* ValuesFilter.java:  Likewise.
	* IntegerRange.java:  Likewise.  Also explicitly call setName

2004-07-20  Per Bothner  <per@bothner.com>

	* IntegerRange.java:  Remove unused import statements.
	* MinMax.java:  Likewise.
	* RelativeStep.java:  Likewise.
	* XMLFormat.java:  Likewise.

2004-01-04  Per Bothner  <per@bothner.com>

	* StringValue.java (stringValue):  Require KNode, not SeqPosition.
	* ValuesFilter.java (matches):  Check KNode, not SeqPosition.

2003-11-21  Per Bothner  <per@bothner.com>

	* IntegerRange.java (integerRange):  If M > N then M to N is now empty.

2003-11-14  Per Bothner  <per@bothner.com>

	* StringValue.java (concat$V):  New method.

2003-10-19  Per Bothner  <per@bothner.com>

	* ValuesEvery.java:  New class, extends CpsProcedure.
	* Makefile.am:  Update accordingly.

2003-10-07  Per Bothner  <per@bothner.com>

	* BooleanValue.java (booleanValue):  Change to match spec better.

	* IntegerRange.java (integerRange):  Fix bugs.  Make static.

2003-09-24  Per Bothner  <per@bothner.com>

	* MakeAttribute.java:  Now extends gnu.kawa.xml.NodeConstructor.
	(apply):  Update.  (compileToNode):  New, replaces compile method.
	* MakeElement.java:  Likewise.

2003-09-11  Per Bothner  <per@bothner.com>

	* ValuesFilter.java:  Implement CanInline.
	(inline):  New method.

2003-09-09  Per Bothner  <per@bothner.com>

	* RelativeStep.java:  Now implements CanInline.
	(inline):  New method.
	(apply):  Use Nodes class and simplify.

2003-08-03  Per Bothner  <per@bothner.com>

	* RelativeStep.java:  New class, extends CpsProcedure.
	* ValuesFilter.java:  Re-write to correctly implement spec.
	* Position.java:  Remove - no longer used.
	* Makefile.in (java_sources):  Update accordingly.

	* StringValue.java (contains, startsWith, endsWith):  Use stringValue
	rather than toString to convert arguments.

2003-07-23  Terje Pedersen  <terje@brassforum.com>

	* StringValue.java (stringLength, substringBefore, substringAfter,
	translate, stringPad, contains, startsWith, endsWith, stringJoin):
	New standard functions.

2003-07-16  Per Bothner  <per@bothner.com>

	* Compare.java (inline):  Use new inlineIfConstant method overloading.

2003-07-10  Per Bothner  <per@bothner.com>

	* MakeElement.java (compile):  Use new
	ElementConstructor.compileUsingNodeTree method.

2003-05-08  Per Bothner  <per@bothner.com>

	* Debug.java:  New class.
	(trace):  New static method, implements the 'trace' function.
	* Makefile.am (java_sources):  Update accordingly.

2003-03-29  Per Bothner  <per@bothner.com>

	* StringValue.java (lowerCase, upperCase, substring):  New methods.
	Based on a patch from Jim Smith <jim@pagesmiths.com>.

2003-03-15  Per Bothner  <per@bothner.com>

	* XMLFormat.java (writeObject):  Check if toString returns null.

2003-03-02  Per Bothner  <per@bothner.com>

	* BaseUri.java:  Moved gnu.kawa.functions.
	* Makefile.am (java_sources):  Remove BaseUri.java.

2003-02-13  Per Bothner  <per@bothner.com>

	* BaseUri.java:  New class, extends Procedure1.
	* Makefile.am (java_sources):  Add BaseUri.java.

2003-01-09  Per Bothner  <per@bothner.com>

	* Average.java:  Update for gnu.lists changes.
	* BooleanValue.java:  Likewise.
	* Children.java:  Likewise.
	* Compare.java:  Likewise.
	* Reduce.java:  Likewise.
	* StringValue.java:  Likewise.
	* SubList.java:  Likewise.
	* ValuesFilter.java:  Likewise.

2002-11-16  Per Bothner  <per@bothner.com>

	* MakeAttribute.java, MakeElement.java:  Use gnu.mapping.Symbol
	instead of gnu.xml.QName.

2002-08-18  Per Bothner  <per@bothner.com>

	* MakeAttribute.java (beginAttribute):  Swap argument order, for
	consistency with compile and also MakeElement's beginGroup.
	(apply):  Fix beginAttribute call to match.

2002-07-21  Per Bothner  <per@bothner.com>

	* Compare.java, MakeElement.java (inline):  Update to take
	extra ExpWalker parameter.

2002-07-02  Per Bothner  <per@bothner.com>

	* Compare.java (apply):  Mistaken assumption - String.compareTo does
	not necessarily return -1, 0, or 1.

	* IndexOf.java:  New class, extends Procedure2.
	* LastIndexOf.java:  New class, extends Procedure2.
	* Makefile.am (java_sources):  add new files.

2002-05-06  Per Bothner  <per@bothner.com>

	* Compare.java:  Implement CanInline.

	* Focus.java.in:  Move to gnu.kawa.xml.
	* Makefile.am:  Update accordingly.
	* Position.java:  Now need to import Focus.
	* ValuesFilter.java:  Likewise.

2002-04-19  Per Bothner  <per@bothner.com>

	* Average.java:  New class, extends Procedure1.
	* Reduce.java:  New class, extends Procedure1.
	* Makefile.am (java_sources):  Update accordingly.
	* MinMax.java:  Change to inherit from Reduce.

2002-04-18  Per Bothner  <per@bothner.com>

	* BooleanValue.java:  New class, extends Procedure1.
	* Makefile.am (java_sources):  Add BooleanValue.java.

2002-04-08  Per Bothner  <per@bothner.com>

	* Children.java (children):  Use nextNodeIndex.

2002-03-16  Per Bothner  <per@bothner.com>

	* Makefile.am (java_sources):  Remove mistakenly added MapDescendents.

2002-03-07  Per Bothner  <per@bothner.com>

	* MinMax.java:  New class, extends Procedure1.
	* Position.java:  New class, extends Procedure0.
	* Makefile.am:  Update accordingly.
	* Focus.java.in (compileGetCurrent):  New static helper method.

	* Focus.java.in (position):  Change type from int to long.
	* ValuesFilter.java (apply):  Update current Focus's position field.

2002-03-02  Per Bothner  <per@bothner.com>

	* Focus.java.in:  New sed-processed class, extends SeqPosition.
	* Makefile.am:  Update accordingly.

2002-02-13  Per Bothner  <per@bothner.com>

	* MakeAttribute.java (apply):  Do getNextArg inside loop.

2002-02-05  Per Bothner  <per@bothner.com>

	* ElementType.java:  Moved to gnu.kawa.xml.
	* NamedChildren.java:  Moved to gnu.kawa.xml.
	* NodeType.java:  Moved to gnu.kawa.xml.
	* Makefile.am:  Update accordingly.

2002-01-23  Per Bothner  <per@bothner.com>

	* AppendValues.java:  Removed - moved to gnu.kawa.functions.
	* Makefile.am:  Update accordingly.

2002-01-21  Per Bothner  <per@bothner.com>

	* Document.java:  Moved to gnu.kawa.xml.

	* Document.java (document):  New static methods.
	(apply):  Use one of the new methods.

2002-01-07  Per Bothner  <per@bothner.com>

	* Document.java (makeURL):  New helper method.
	(apply(CallContext)):  New method, send directly to Consumer.

	* NamedChildren.java (compile):  Optimize if ConsumeTarget.

	* ValuesFilter.java (matches):  Handle a TreeList.

	* XMLFormat.java (format):  New method.

2002-01-02  Per Bothner  <per@bothner.com>

	* NumberValue.java:  New class, extends Procedure1.
	* Makefile.am (java_sources):  Add NumberValue.java.

2001-12-24  Per Bothner  <per@bothner.com>

	* ElementType.java:  New class, extends NodeType, implements TypeValue.
	* ItemAt.java:  New class, extends Proecdure2.
	* SubList.java:  New class, extends CpsProcedure.
	* Makefile.am (java_sources):  Add new classes.

	* Document.java (document):  Reverse incorrect isLetter test.

2001-11-24  Per Bothner  <per@bothner.com>

	* MakeElement.java (beginGroup, endGroup):  Switch argument order.
	(inline):  Use Expressions's setLine to set line number info.

	* NamedChildren.java (compile):  Also optimize ConsumerTarget.
	(getPropertyName, getNamedProperty):  New methods.
	(namedChildren, getNamaedChild, gotoNext, gotoFirstChild):  Add
	support for getting named properties from beans e.g. $request/method.
	* NodeType.java (coerce):  Handle arbitrary value.

2001-11-18  Per Bothner  <per@bothner.com>

	* Document.java (document, apply1): Specific that it throws Throwable,
	thus we no longer have to wrap exceptions.

	* AppendValues.java (compile):  Use compileWithPosition.

2001-11-12  Per Bothner  <per@bothner.com>

	* Document.java (document):  Filter through NamespaceResolver.
	
	* NamedChildren.java (namedChildren):  Use getNamedChild method.

	* MakeElement.java:  Also implement CanInline.
	(inline):  New method.

	* MakeElement.am (beginGroup, endGroup):  New helper methods.
	(apply):  Use new methods.
	(compile):  Call new methods.	
	* MakeAttribute.java (beginAttribute):  New helper method.
	(numArgs):  Now takes any number of arguments.
	(apply):  Use new helper method; handle any number of arguments.
	(compile):  Similarly.

2001-11-06  Per Bothner  <per@bothner.com>

	* StringValue.java:  Various fixes to actually make it work.
	(string):  New static, to match function name "string".

	* ValuesFilter.java (matches):  Handle multiple values better.
	(apply):  Inceement count *before* calling matches.

	* XMLFormat.java:  Update as XMLPrinter now takes a Consumer.

	* Compare.java:  New class, extends Procedure2.
	* Makefile.am (java_sources):  Add Compare.java.

2001-11-01  Per Bothner  <per@bothner.com>

	* ValuesFilter.java:  New class, extends CpsProcedure.
	* Makefile.am (java_sources):  Added ValuesFilter.java.

	* NamedChildren.java (compile):  If namespaceURI and localName are
	constant, don't recompile them to a variable.

	* NamedChildren.java (compile):  Remove pushScope/popScope ad it can
	cause register clobbering due to use complex jsr-based control flow.

2001-10-25  Per Bothner  <per@bothner.com>

	* AppendValues.java (compile):  Optimize for SeriesTarget.
	* NamedChildren.java:  Now implements Inlineable.
	(getNamedChild, gotoNext, gotoFirstChild):  New static helper methods.
	(compile, getReturnType):  New methods.
	* NodeType.java:  New class, extends ClassType.
	* Makefile.am (java_sources):  Added NodeType.java.

2001-10-17  Per Bothner  <per@bothner.com>

	* NamedChildren.java:  Turn into a 3-argument procedure.

2001-10-02  Per Bothner  <per@bothner.com>

	* IsEmptySequence.java:  New class; extends Procedure1.
	* Makefile.am (java_sources):  Add IsEmptySequence.java.

2001-09-24  Per Bothner  <per@bothner.com>

	* IntegerRange.java:  New class; extends CpsProcedure.

2001-08-16  Per Bothner  <per@bothner.com>

	* Children.java:  New class, extends CpsProcedure.
	* NamedChildren.java:  New class, extends CpsProcedure.
	* StringValue.java:  New class, extends Procedure1.
	* Makefile.am (java_sources):  Add new classes.

	* Document.java (document):  Call TreeList's beginDocument method.

2001-07-18  Per Bothner  <per@bothner.com>

	New package gnu.xquery.util.
	* XMLFormat.java:  New class, extends AbstractFormat.
	* MakeElement.java:  New class; extends CpsProcedure.
	* MakeAttribute.java:  New class; extends CpsProcedure.
	* Document.java:  New class; extends Procedure1.
	* AppendValues.java:  New class; extends CpsProcedure.

