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

	* DisplayFormat.java (writeList): Use LList.checkNonList.
	Fixes Savannah bug #12216.

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

	* Arithmetic.java: New utility class.
	* Makefile.am: Upadte accordingly.
	* AddOp.java (apply2): Handle operands that are of a java.Number class
	or gnu.math.BigInteger/BigDecimal.
	* MultiplyOp.java (applyN): Likewise.

	* Convert.java: Update Interpreter->Language various places.
	* IsEq.java: Likewise.
	* IsEqual.java: Likewise.
	* IsEqv.java: Likewise.

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

	* LispFormat.java <Init>: Handle ~W (Write) and ~Y (pretty-printing,
	from SRFI-48), if not quite correctly.
	Handle ~<...~:> (Logical Block) and I (Indent).
	(LispIndentFormat): New non-public class, extends ReportFormat.
	(LispPrettyFormat): New non-public class, extends ReportFormat.
	(LispNewlineFormat.printNewline): Call writeBreak.

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

	* BaseUri.java (resolve): Fix various problems.

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

	* ValuesMap.java (apply):  Use new check1/check1 methods.

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

	* Apply.java (getArgument):  Make non-static.
	Update WrongType construction.
	(applyN):  Rename static to doApply.

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

	* AppendValues.java:  Extend MethodProc instead of CpsProcedure.
	* ValuesMap.java:  Likewise.
	
2004-07-20  Per Bothner  <per@bothner.com>

	* IsEqv.java:  Remove unused import statements.
	* MultiplyOp.java:  Likewise.:  Likewise.
	* ObjectFormat.java:  Likewise.:  Likewise.
	* ParseFormat.java:  Likewise.:  Likewise.
	* MakeList.java:  Use static syntax to access static fields.

2004-05-28  Per Bothner  <per@bothner.com>

	* ObjectFormat.java (format):  Check for missing argument.

2003-12-14  Chris Dean <ctdean@sokitomi.com>

	* DisplayFormat.java (AbstractFormat): Allow obj.toString() to
	return null.

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

	* ParseFormat.java (parseFormat):  Allow '*' for precision.
	Handle printf-style precision in integer formats.
	* ObjectFormat.java (maxChar):  New defaults to PARAM_UNSPECIFIED.
	(format - non-static):  Handle PARAM_FROM_LIST etc.

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

	* AddOp.java (classify):  Fix logic for non-float non-integer reals.
	(compile):  Use LangPrimType.doubleType instead	Type.double_type.
	Fix bug reported 10-17 Sven.Hartrumpf@fernuni-hagen.de.

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

	* IsEqv.java (IsEqv):  Implement CanInline instead of Inlineable.
	(isEq):  New field.
	(inline):  New method.
	(compile, getReturnType):  Removed.

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

	* ValuesMap.java (startCounter):  New field.
	(canInline):  New private helper method.
	(apply, compile):  If startCounter is non-negative, also pass an
	index to the mapping function.  Used for XQuery's 'at' clause.

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

	* AddOp.java (classify):  New helper function.
	(getReturnType):  Use classify.
	* DivideOp.java:  Now implements CanInline.
	(inline):  New method.

	* DivideOp.java ($Sl):  Fix name to "/".

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

	* ValuesMap.java (apply):  Use nextPos; don't use nextDataIndex.

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

	* Convert.java (setCoercedReturnValue):  New static helper method.

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

	* Arrays.java (effectiveIndex):  Minor optimization - I hope.
	(shareArray):  Be careful to not call getEffectiveIndex with invalid
	indexes.  Fixes Savannah [bug #4310] share-array edge case.

	* AddOp.java (inline):  Use new inlineIfConstant method overloading.
	Fixes bug reported 7/15 by Joerg-Cyril.Hoehle@t-systems.com.
	* AppendValues.java (inline):  Likewise.
	* MultiplyOp.java (inline):  Likewise.
	* NumberCompare.java (inline):  Likewise.

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

	* AddOp.java (inline):  Call makeBuiltinUnary instead of
	makeBuiltinBinary when appropriate fixed bug reported 7/14
	by Joerg-Cyril.Hoehle@t-systems.com.

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

	* Convert.java (inline):  Update call to inlineClassName.

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

	* NumberCompare.java (compile):  Fix logic for swapping arguments.
	Based on patch from Vladimir Tsichevski <wowa@jet.msk.su>.

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

	* Convert.java (compile):  Only compileFromStack if reachable.
	Fixes bug reported 04-07 by Vladimir Tsichevski.

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

	* ObjectFormat.java (print):  New static help method.
	(format):  Use latter instead of SFormat.

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

	* DisplayFormat.java (writeList):  Use our writeObject method.

	* Format.java:  Remove some comment-out code.

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

	* Arrays.java (make):  Fix thinko - addition should be multiply.
	Fixes bug reported 03-12 by Chris Dean <ctdean@mercedsystems.com>.

2003-03-07  Ivelin Ivanov <ivelin@apache.org>

	* BaseUri.java (resolve):  Remove redundant semicolon.

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

	* BaseUri.java:  Moved from gnu.kawa.xml - not XML-specific.
	* Makefile.am:  Update accordingly.
	* Baseuri.java:  Inherit from Procedure0or1 instead of Procedure1.
	(apply0):  New methods.
	(baseUri, hasScheme, resolve, uriSchemeLength): New static methods.

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

	* Arrays.java (effectiveIndex):  Optimization - use SeqPosition's next,
	instead of nextElement which just calls next.
	* DisplayFormat.java (writeObject):  consumeNext no longer takes xpos.
	* ValuesMap.java (apply):  Update for gnu.lists changes.

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

	* Setter.java:  Implement HasSetter.
	(set1):  New method.

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

	* NumberCompare.java (compile):  More complete optimization.

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

	* ConstantFunction0.java (inline):  Do check argument count.

	* AddOp.java (primInlin, retType):  New static method.
	(inline):  Call primInline.
	* MultiplyOp.java:  Implement CanInline.
	(inline):  New method - use AddOp.primInline.

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

	* AddOp.java, AppendValues.java, ConstantFunction0.java, Convert.java,
	MakeProcedure.java, NumberCompare.java, Setter.java, ValuesMap.java 
	(inline):  Add new ExpWalker parameter.
	* AddOp.java (pairwise):  Also needs ExpWalker parameter.

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

	* Arrays.java:  Various methods for implementing SRFI-25 arrays.
	* ArrayRef.java:  New class, extends ProcedureN.
	* ArraySet.java:  New class, extends ProcedureN.
	* Makefile.am:  Update accordingly.
	* DisplayFormat.java (writeObject):  Handle printing Array objects.
	(write(Array,int,int,Consumer)):  New recursive helper method.

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

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

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

	* Assoc.java:  Remove class - subsumed by kawa.lib.lists.
	* Member.java:  Remove class - subsumed by kawa.lib.lists.
 	* Makefile.am:  Update accordingly.

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

	* ValuesMap.java (compile):  Can now safely always pushScope/popScope.
	Set SeriesTarget scope and param to new local.
	Create helper ApplyExp and call compile on it.

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

	Optimize calls like (< x 10) or (> x y) if x and y are <int>.
	* NumberCompare.java:  Implement CanInline and Inlineable.
	(inline, compile, getReturnType):  New methods.
	(classify):   New static helper methods.

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

	* Format.java (format$V):  Return #!void instead of #t.

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

	* Convert.java:  Implement CanInline.
	(inline): New method calls inlineClassName

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

	* AppendValues.java:  Moved from gnu.xquery.util.
	* Makefile.am (java_sources):  Add AppendValues.java.

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

	* WriteTo.java:  Moved to gnu.kawa.xml.
	Otherwith --with-gcj fails building kawa1.
	* Makefile.am:  Update accordingly.

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

	* DisplayFormat.java (getEmacsLispFormat, getCommonLispFormat,
	getSchemeFormat):  New static functions.

	* DisplayFormat.java (writeChar):  Partially support Emacs format.

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

	* CountValues.java:  New class.
	* WriteTo.java:  New class.
	* Makefile.am (java_sources):  Add new classes.

	* IsEq.java (compile):  Use ConditionalTarget's emitGotoFirstBranch.

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

	* IntegerFormat.java:  New class, extends gnu.text.IntegerFormat.
	* Makefile.am (java_sources):  Add IntegerFormat.java.

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

	* Convert.java:  Moved from kawa.standard.convert.java.
	(makeCoercion):  Static methods moved from Expression.
	* Makefile.am (java_sources);  Added Convert.java.

	* ValuesMap.java (compile):  Use compileWithPosition.

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

	* ValuesMap.java (inline):  Also set returnContinuation of lambda.

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

	* NumberCompare.java (apply2):  Make public, so it can be used
	by gnu.xquery.util.Compare.

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

	* ConstantFunction0.java:  New class, extends Procedure0.
	* Makefile.am (java_sources);  Added ConstantFunction0.java.

	* ValuesMap.java (compile):  Don't pushScope/popScope if target is
	a SeriesTarget, as that causes register clashes due to use of jsr.
	Call allocChildClasses to handle non-inlined inner lambda.
	If need be, wrap target using ConsumerTarget.compileUsingConsumer.

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

	* ValuesMap.java:  Now implements CanInline, Inlineable.
	(inline, compile, getReturnType):  New methods.

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

	* Apply.java, Assoc.java, Member.java (apply* methods):
	Now throws Throwable.
	* ValuesMap.java (apply):  Use CallContext's new runUntilDone method.
	
2001-10-05  Per Bothner  <per@bothner.com>

	* DisplayFormat.java:  Update for CharSequence -> CharSeq renaming.

	* LispFormat.java (ListNewlineFormat_:  New class.
	(<init>):  New code handles "~_" (Common Lisp's conditional newline).

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

	* MultiplyOp.java:  Renamed from kawa.standard.multiply_oper.
	* DivideOp.java:  Renamed from kawa.standard.divide_oper.
	* NumberCompare.java:  Moved from kawa.standard.NumberCompare.
	* Makefile.am (java_sources):  Add new classes.

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

	* AddOp.java (compile):  Optimize additions of doubles and DFloNum.

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

	* ValuesMap.java:  New procedure, extends CpsProcedure.
	* Makefile.am:  Update accordingly.

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

	* Setter.java:  New implements CanInLine.
	(inline):  Uncomment.

	* DisplayFormat.java:  Now extends gnu.kawa.util.AbstractFormat.

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

	* DisplayFormat.java (writeObject):  Handle Binding (as symbol).

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

	* DisplayFormat.java:  New class, extends Procedure and implements
	FormatToConsumer.  Contains code to format for Lisp-like languages.
	* Makefile.am:  Update accordingly.

	* LispFormat.java (LispFreshlineFormat.format):  Use freshLine method.

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

	* AddOp.java:  Use LangPrimType instead of plain PrimTypes.
	Fixes bug reported 05-10 by Walter C. Pelissero <walter@pelissero.org>.

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

	* Makefile.am (SUFFIXES):  Removed redundant macro.

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

	* AddOp.java:  Implement Inlineable (in addition to CanInline).
	If Target is expecting a primitive type(such as <int>) do the operation
	using primitive arithmetic if safe.
	(compile, getReturnType):  New methods.

	* Apply.java, Assoc.java, Format.java, LispFormat.java, MakeList.java,
	Member.java, ParseFormat.java:  Update LList.length->listLength,
	elementAt->get, length->size, open.

2000-10-12  Per Bothner  <per@bothner.com>

	* Apply.java (apply(CallContext)):  Use CallContext's getArgs method.

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

	* AddOp.java:  Implement gnu.expr.CanInline.
	(inline):  New method.
	(pairwise):  New static help method.

	* AddOp.java:  New class, replaces kawa.standard.plus_oper
	and kawa.standard.minus_oper.
	* Makefile.am:  Update accordingly.

	* Apply.java (apply):  Temporarily remove use of CallCOntext's getArgs.
	* Setter.java:  Temporarily comment out CanInline and inline method.

2000-10-11  Per Bothner  <per@bothner.com>

	New package, for Procedures for Scheme/Lisp.
	* Apply.java:  Renamed from kawa/standard/apply.java.
	(apply):  New static field.
	* Assoc.java:  Renamed from kawa/standard/ass.java.
	* Format.java : Renamed from kawa/standard/format.java.
	* IsEq.java:  Renamed from kawa/standard/eq_p.java.
	(<init>):  Add name parameter.
	* IsEqual.java:  Renamed from kawa/standard/equal_p.java.
	(<init>):  Add name parameter.
	* IsEqv.java:  Renamed from kawa/standard/eqv_p.java.
	(<init>):  Add name parameter.
	* LispFormat.java:  Renamed from kawa/standard/LispFormat.java.
	* MakeList.java:  Renamed from kawa/standard/list_v.java.
	(list):  New static field.
	* Member.java:  Renamed from kawa/standard/mem.java.
	* ObjectFormat.java:  Renamed from kawa/standard/ObjectFormat.java.
	* ParseFormat.java:  Renamed from kawa/standard/ParseFormat.java.
	* Setter.java:  Renamed from kawa/standard/setter.java.
	Now implements gnu.expr.CanInline.
	(inline):  new method.
	(setterProcedure):  Field renamed to setter.
	(setter):  New static method.
	* Makefile.am, Makefile.in:  New files.
