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

	* configure.in:  Set version to 1.6.98.
	* build.xml:  Likewise.

	* build.xml:  Handle filtering of CallContext.java.in.  Build gnu/brl.

	* Makefile.am (+kawa-doc.tar.gz):  New rule.

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

	* Make-rules (scm-classes.stamp):  Use SCM_COMPILE_FLAGS.

	* kawa/lang/Translator.java (makeBody):  Take extra ScopeExp arg.
	If argument is a ModuleExp, wrap in append-values.

	* kawa/lang/Translator.java (lookup, resolve):  New methods.
	(getBinding, rewrite):  Using new methods reduces code duplication. 

	* kawa/repl.java:  Remove calls to CallContext.setMainContext.

	* Make-rules (DONT_EDIT_SUBS):  Moved from gnu/xml/Makefile.am.

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

	* kawa/repl.java (main, getInterpreterFromFilenameExtension,
	getInterpreter):  Call CallContext.setMainContext.
	* kawa/Shell.java (run):  Call CallContext.getInstance.
	* kawa/standard/TracedProcedure.java (applyN):  Likewise.
	* kawa/standard/load.java (loadSource):  Likewise.
	* kawa/lang/Eval.java (evalBody, eval):  Call CallContext.getInstance.
	Set/restore CallContext's consumer.
	
	* kawa/standard/load.java (loadClassFile):  Explicitly check
	for Runable rather than just cast to ModuleBody.

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

	* configure.in:  Link testsuite/scribble.html.in to scribble.html.

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

	* configure.in: Add links to two more xml data-sets for xml tests.

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

	* kawa/standard/Scheme.java (initScheme):  No longer define
	response-header - the programmer must first (require 'http) now.

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

	* read.java:  Since apply1 can now throw Throwable, don't need to
	wrap exception.  However, so call SyntaxException's new setHeader.
	Don't call ScmRead's statuc readObject, which creates a new ScmRead.

	* configure.in:  Also make link to gnu/xquery/testsuite/bib.xml.in.

	* gnu/brl:  New package - code imported from BRL.
	* configure.in (AC_OUTPUT):  Also generate gnu/brl/Makefile.

	* kawa/repl.java (getInterpreterFromFilenameExtension):  New static.
	(processArgs, main):  Use filename extension to select language.

	* kawa/standard/reequire:  Handle (require 'http).

	* kawa/standard/reequire (scanForDefinitions):  Coerce find call
	to void if we're not actually using it (to prevent it being
	printed when we're compiling with implicit values-append).

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

	* build.xml:  Add enable-xml flag, to build xml-related classes.
	* build.properties:  Add/document enable-xml.

	* configure.in (AC_OUTPUT):  Also make gnu/kawa/brl/Makefile.

	* kawa/Shell.java (run):  Call Lexer's setInteractive if TtyInPort.

	* kawa/standard/Scheme.java (initScheme):  Define values-append.
	Fix definition of unescaped-data.

	* kawa/lang/Translator.java (makeBody):  New method.
	(rewrite_body, finishModule):  Use makeBody.

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

	* kawa/standard/Scheme.java:  Also define 'unescaped-data'.

	* acinclude.m4:  New check-in.

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

	* kawa/lang/CompileFile.java (apply2):  Don't catch and re-throw.

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

	* kawa/standard/Scheme.java (initScheme):  Define response-header.
	* kawa/Shell.java (format):  New static table.
	(setDefaultFormat, getOutputConsumer):  New static methods.
	(run):  New overload taking an output Consumer instead of an OutPort.
	* kawa/repl.java (processArgs):  New method.
	New code to handle "\\" and "--output-format" or "--format".
	(main):  Use processArgs.
	* kawa/standard/load.java (loadSource):  Use getOutputConsumer.
	Wrap body in a beginDocument/endDocument pair.

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

	* kawa/lang/CompileFile.java (compile_to_files): Do mangleNameIfNeeded.

2001-12-24  James P. White  <jim@pagesmiths.com>

	* kawa/repl.java (main):  Need to increment iArg on -w.

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

	* kawa/lang/Translator.java (rewrite_pair):  Don't crash if we
	get a Procedure with a null name.

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

	* Makefile.am (JAVADOC_PACKAGES):  Add new packages.
	Add coment docuemnting javadoc procedure.

	* Makefile.am (dist-kawa-@VERSION@.jar):  Add configure options.
	(kawa-@VERSION@-src.zip, kawa-src.zip):  New rules.

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

	* build.xml (build.dir):  Change to basedir.
	(echo):  Also output dist.kawa.jar.  Avoids tabs.

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

	* build.xml, build.properties:  Update from Jim White.

	* Makefile.am:  Add more directories (conditionally) to JAR_DEPS.

	* kawa/standard/convert.java:  Moved to gnu.kawa.functions.Convert.
	* kawa/standard/Makefile.am:  Update accordingly
	* kawa/standard/Scheme.java (initScheme):  Likewise.

	* kawa/standard/Scheme.java (getTypeFor):  Map "java.lang.String"
	to Type.tostring_type, for convenience.

	* kawa/standard/{define_variable.java,let.java,let_syntax.java,
	letrec.java,load.java,module_name.java,require.java}:  Use 'name'
	rather than `name' in messages.
	
	* kawa/standard/map.java:  The makeGetField helper methods was moved
	from Expression to SlotGet.
	* kawa/lang/Lambda.java: makeCoercion moved from Expression to Convert.

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

	* kawa/lang/Lambda.java (rewriteBody):  Call setReturnType.

	* kawa/lang/AutoloadSyntax.java, kawa/lang/Lambda.java,
	kawa/lang/Macro.java:  Change errors message to use 'name' not `name'.

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

	* kawa/standard/call_with_values.java (apply):  Use CallContext's
	getArgs method.  Fixes testsuite regression.

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

	Add support building Kawa using Ant, contributed by Jim White
	with some hacking by yours truly.
	* build.xml:  New file, with build rules for Ant,
	* build.properties:  New file, with comment-out settable properties.
	* Makefile.am (EXTRA_DIST):  Add build.xml and build.properties.
	* configure.in (AC_OUTPUT):  Also make gnu/kawa/ant/Makefile.

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

	* kawa/standard/define_namespace.java:  Moved to gnu/kawa/xml and
	renamed to DefineNamespace.java.
	* kawa/standard/Makefile,am, kawa/standard/Scheme.java: Update.

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

	* kawa/standard/Scheme.java (initScheme):  Define current-error-port.

	* kawa/standard/define_namespace.java (scanForDefinitions):
	Use NamespaceEnv.NAMESPACE_PREFIX

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

	* kawa/standard/Scheme.java (getNamedType):  The type <String>
	is now Type.tostring_type rather than Type.string_type.

	* kawa/standard/Scheme.java (initScheme):  Define let-values
	and let*-values.  [srfi-11]

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

	* kawa/standard/define_namespace.java:  New class; extends Syntax.
	* kawa/standard/Makefile.am (java_sources0:  Added define_nameapace..
	* kawa/standard/Scheme.java (initScheme):  Define define-namespace.

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

	* kawa/Shell.java (run):  Use CallContext's runUntilDone, not run.
	(run, runFile):  Catch Throwable, not Exception.
	* kawa/lang/AutoloadProcedure.java, kawa/lang/Eval.java,
	kawa/standard/callcc.java, kawa/standard/TracedProcedure.java,
	kawa/standard/call_with_values.java, kawa/standard/map.java,
	kawa/standard/force.java, kawa/standard/call_with_output_string.java,
	kawa/standard/prim_throw.java, kawa/standard/throw_name.java,
	(apply* methods, eval* methods):  Now specify throws Throwable.
	* kawa/lang/Promise.java (force):  Likewise.
	* kawa/standard/{call_with_input_file.java, call_with_output_file.java,
	with_input_from_file.java, with_output_to_file.java,load.java):
	Likewise.  No longer need to catch exceptions.
	* kawa/standard/prim_throw.java (throw_it):  Specify throws Throwable.
	No longer need to wrap checked exceptions.
	* kawa/lang/Macro.java:  Catch Throwable, not Exception.
	* kawa/standard/constant_fold.java:  Likewise.
	* kawa/standard/Scheme.java (eval):  Catch and wrap Throwable.

	* kawa/lang/Record.java (get):  Take extra defaultValue parameter.
	* kawa/standard/ScmEnv.java (likewise):
	(addExtra):  New hook to add extra Environments to search.
	* kawa/standard/Scheme.java (<init>):  Use getNewEnvironment.
	(getNewEnvironment):   Use reflection to add NamespaceEnv.

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

	* configure.in (AC_OUTPUT):  Add gnu/kawa/xml/Makefile.
	* kawa/standard/Scheme.java:  Declare "attributes" procedure.
	* kawa/standard/ScmEnv.java (getChecked):  Look for "ns-alias:name".

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

	* configure.in:  Set version to 1.6.97.

	* configure.in (--without-java-references):  New flag.
	(WITH_JAVA_REFERENCES)  New automake conditional.

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

	* config.guess:  Import new version.

	* configure.in:  Set version to 1.6.96.

	* confgure.in:  New --enable-servlet flag.
	(ENABLE_SERVLET):  New automake conditional.
	(AC_OUTPUT):  Add gnu/kawa/servlet/Makefile.
	* gnu/kawa/Makefile.am (SUBDIRS):  Add servlet if ENABLE_SERVLET.
	* kawa.repl:  Handle --servlet option.
	
2001-10-05  Per Bothner  <per@bothner.com>

	* kawa/standard/Scheme.java (getNamedType):  Update "abstract-string"
	for CharSequence -> CharSeq renaming.

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

	* kawa/standard/NumberCompare.java:  Moved to gnu.kawa.functions.
	* kawa/standard/divide_oper.java:  Ditto; renamed to DivideOp.
	* kawa/standard/multiply_oper.java:  Ditto; renamed to MultiplyOp.
	* kawa/standard/Makefile.am:  Update accordingly.
	* kawa/standard/Scheme.java:  Likewise.

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

	* kawa/lang/AutoloadProcedure.java (load):  If getFunction
	raises an UnboundSumbol, catch that silently.

	* kawa/standard/define.java (scanForDefinition):  For define-private,
	set PRIVATE_SPECIFIED explicitly in addition to default PRIVATE flag.
	* kawa/lang/Translator.java (finishModule):  Only complain about
	export and private mismatch if PRIVATE_SPECIFIED.

	* kawa/standard/require.java (scanForDefinition):  Look for instance
	declaration in current Environment.
	Make the instance declaration readable, so it won't becomes 'ignored'.
	Use getDefineto define imported fields..

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

	Add support for --help, based on a patch from
	Andreas Schlapbach  <schlpbch@kde.org>.
	* kawa/kawa.repl (printOptions):  New method.
	(main, bad_option):  Use printOptions.

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

	* configure.in:  Fix typo in help text for --with-gcj.
	Create tab.xml using AC_LINK_FILES rather than AC_OUTPUT.

	* kawa/standard/define.java (scanForDefinitions):  Remove test for
	usingTailCalls.

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

	* kawa/lang/Record.java (makeRecordType):  Use mangleIfNeeded.

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

	* kawa/lang/Translator.java (pushPositionOf, popPositionOf):
	New methods to make it easier to save and restore line numbers etc.
	(rewrite_with_position):  Use new methods.
	(exp2Type):  New method
	* kawa/lang/Lambda.java (rewrite):  Use new method.
	* kawa/standard/object.java (rewriteClassDef):  Likwise.

	* kawa/standard/thisRef.java:  New class, extends Syntax.
	* kawa/standard/Makefile.am (java_sources):  Add thisRef.java.
	* kawa/standard/Scheme.java (initScheme):  Change define for "this".

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

	* configure.in (AC_OUTPUT):  Add gnu/xquery/testsuite/tab.xml.
	
	* kawa/standard/object.java (rewriteClassDef):  New implementation to
	handle CLOS-style keyword-options arguments.
	* kawa/standard/require.java (scanForDefinitions):  Map implementation
	type to source type when setting type of declaration.

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

	* kawa/repl.java (main):  Don't getInterpreter on --connect.
	Wait until processing other arguments.
	
	* kawa/standard/Scheme.java (demangleName):  Moved two methods
	to gnu/expr/Compilation.java.

	* kawa/standard/Scheme.java (initScheme):  Define define-class,
	define-simple-class. map-values, and children.
	* kawa/standard/define_class.java:  New working implementation.
	* kawa/standard/load.java (loadSource):  If getMainPrintValues(),
	then expression values are printed to standard output.
	* kawa/Shell.java (run):  Clear list of errors after SyntaxException.
	(runString):  If ModuleBody.getMainPrintValues(), print to outDefault.
	
	* kawa/standard/object.java (rewriteClassDef):  Take ClassExp.
	Allow super type to be non-constant.

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

	* configure.in:  Set version to 1.6.95.

	* Makefile.am (JAR_DEPS_XML):  Add gnu/xquery/lang/java-classes.stamp.
	* configure.in:  --with-awt defalts except if --with-gcj.
	(LIBKAWA):  Automake conditional renamed to WITH_GCJ.
	(WITH_AWT):  New automake conditional.
	(AC_OUTPUT):  Add gnu/xquery/*/Makefile.

	* kawa/Shell.java (run):  Use Interpreter's new getPropter method.
	Use Interpreter's new interp.getOutputConsumer method.
	Use Interpreter's new parse method.

	* kawa/lang/CompileFile.java (read):  Don't take Translator arg,
	instead allocate it locally, but take SOurceMessages arg.
	(apply2):  Update accordingly.
	* kawa/standard/load.java (loadSource):  Likewise.

	* kawa/standard/Scheme.java:  Extend LispInterpreter.
	(initScheme):  Add print-as-xml, make-element, make-attribute.
	Various procedures have been moved or now use define_field.
	* kawa/lang/Lambda.java (rewriteBody):  Update package of Consumer.
	* kawa/lang/SyntaxRule.java:  Use Scheme.writeFrmat, instead of
	semi-deprecated SFormat.print.

	* kawa/lang/Translator.java (immediate):  Field moved up to Parser.
	(scan_form):  Made public since called by LispInterpreter.
	(push, pop, pushDecls, popDecls):  Moved from Parser.
	
2001-06-19  Per Bothner  <per@bothner.com>

	* kawa/repl.java (main):  Don't runCleanups at end if we succeeded
	in registerShutdownHook or started a window with -w.

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

	* kawa/lang/Lambda.java:  Handle symbol as Binding.
	* kawa/lang/Translator.java:  Handle symbol as Binding.
	* kawa/standard/define_autoload.java:  Likewise.
	* kawa/standard/fluid_let.java:  Likewise.
	* kawa/standard/let.java:  Likewise.
	* kawa/standard/prim_method.java:  Likewise.
	* kawa/standard.Scheme.java (getNamedType):  Handle clisp:xxx as
	well as elisp:xxx, and better error check.

	* configure.in:  Set version to 1.6.94.

	* configure.in (WITH_SWING):  New automake conditional.
	(AC_OUTPUT):  Add gnu/commonlisp/lisp/Makefile.
	* Make-rules (clisp-classes.stamp):  New rule.
	* Makefile.am:  Use automake conditionals.
	(kawa-@VERSION@-jar):  Depend on */*.stamp files.

	* Makefile.am (JAVADOC_PACKAGES):  Update list.
	(JAVADOC_DIR):  Change.
	(install-javadoc-html):  Use -sourcepath to get generated files.

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

	* configure.in:  Set version to 1.6.92.

	* configure.in (ENABLE_XML):  New automake conditional.

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

	No longer install the .class files, but install kawa.jar instead.
	* Make-rules (install-java-classes, install-data-am):  Removed.
	* Makefile.am (CLEANFILES):  Add *.jar.
	(kawa-@VERSION@.jar):  New only makes jar file, without new configure.
	(dist-kawa-@VERSION@.jar):  Renamed from old kawa-@VERSION@.jar.
	(install-jar):  New rule.
	(install-data-am):  New dependency - depend on install-jar.
	(all-redirect):  New dependency, on kawa-@VERSION@.jar.
	(distall):  Depend on dist-kawa-@VERSION@.jar, not plain kawa.jar.

	* kawa/Makefile.am (EXTRA_DIST):  Include $(java_WITH_AWT).

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

	* Make-rules ($(PACKAGE_FNAME).lo):  Link $^ rather than $? to get
	all the dependencies, not just the out-of-date ones.
	
	* kawa/standard/Scheme.java (writeFormat, displayFormat):  New fields.
	(getFormat): New method.
	(<init>):  Change procedures display and write.
	(print):  Removed method.

	* kawa/standard/require.java (find(Class,Environment)):  Don't run
	Runnable instance here (at compile-time).
	(find(String)):  Run it here instead (at run-time).
	(scanForDefinitions):  If no instance yet, but class is Runnable,
	return ApplyExp to find instance at run-time.

	* kawa.repl (main):  New --debug-print-expr option.
	Update copyright date printed by --version.
	Call WriterManager's registerShutdownHook.
	Call OutPort's runCleanups method in finalizer.

	* Shell.java (run):  Instead of printing results here, call evalModule
	with the standard output as the Consumer.

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

	* kawa/lang/SpecialType.java:  Moved to gnu.kawa.lispexpr.LangPrimType.
	* kawa/lang/Makefile.am (java_sources):  Remove SpecialType.java.
	* kawa/standard/Scheme.java:  Update to use LangPrimType instead
	of SpecialType.  Use statics of LangPrimType instead of Scheme.

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

	* configure.in:  Add AC_OBJEXT and AC_CANONICAL_HOST (otherwise
	make install tried to use libtool).
	Change --enable-gcc-compiled to --with-gcj.
	* libtool.m4, ltcf-c.sh, ltcf-cxx.sh, ltcf-gcj.sh, ltconfig, ltmain.sh:
	New files, part of libtool support.
	* Makefile.am (EXTRA_DIST):  Add new files.
	* Make-rules:  Various cleanups for libtool support.
	* */Makefile.am:  Various changes for libtool support etc.
	* kawa/Makefile.am (EXTR_DIST):  Add Version.java.in.
	* kawa/Shell.java:  Avoid removed PairWithPosition constructor.
	* kawa/lang/Eval.java (eval, evalBody):  New method overloads.
	(apply(Environment,CallContext)):  New method.
	* kawa/standard/load.java (loadClassFile):  No longer test that inst
	is a Procedure0 (it is now a CpsProcedure).
	* kawa/standard/require.java (find):  Don't check if value is a
	MdouleBody, since ModuleBody is now always Runnable.

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

	* configure.in:  Set version to 1.6.91.

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

	* configure.in:  Set version to 1.6.90.

	Change most Makefile.am back to worked with released automake.
	This means include of Make-rules must be handled by automake, which
	is less ideal, but automake snapshots are too buggy.
	* Make-rules:  Bunch of little changes.
	* Makefile.am (EXTRA_DIST): Add Make-rules.
	* configure.in:  Add AC_SUBST_FILE for Make-rules.

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

	* kawa/standard/Scheme.java (getNamedType):  Add <readtable>.
	* kawa/standard/require.java:  Add readtable feature.

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

	* kawa/lang/CompileFile.java (readBody):  Removed method.
	* kawa/standard/Scheme.java (eval):  Re-write to use new static
	ReaderParens.readList instead of CompileFile.readBody.
	* kawa/standard/define_autoload.java (findAutoloadComments):
	Update call to LispReader's readNestedComment for new argument list.
	* kawa/standard/string2number.java (parse):  Use new
	LispReader.parseNumber method.

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

	* kawa/lang/Eval.java (eval):  If argument is PairWithPosition,
	use it to set position of temporary "body" PairWithPosition.
	(evalBody):  If body is PairWithPosition, set ModuleExp's filename.
	* kawa/standard/Scheme.java (initScheme):  Define <pair-with-position>.

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

	* kawa/standard/require.java (<clinit>):  Also handle require 'xml.

	* Make-rules (CLEANFILE):  Also remove $(OFILES_DIR)/$(PACKAGE_FNAME).o.
	* configure.in (AC_OUTPUT):  Replace gnu/kawa/xml by gnu/xml.
	* kawa/Makefile.am (SOURCES):  Removed - recent automake complains.
	(EXTRA_DIST):  Use this instead.
	* kawa/lang/Makefile.am (CLEANFILES):  Remove redundant macro.
	* kawa/lib/Makefile.am (CLEANFILES):  Likewise.

2001-04-07  Thomas Kirk  <tk@research.att.com>

	* kawa/standard/load.java(loadCompiled): Avoid leaking 
	zipfiles by calling new method ZipLoader.loadAllClasses, which
	reads all classes immediately so that zipfile can be closed, 

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

	* Make-rules:  Various tweaks.
	If compiling .class to native, no longer need to make classes.jar.
	(install-java-classes):  New rule.
	* Makefile.am (SUBDIRS):  Added new bin directory.
	(KAWA1_OFILES, kawa1$(exeext)):  Moved to bin/Makefile.am.
	* configure.in:  (AC_OUTPUT):  Add bin/Makefile.
	If --enable-gcj-compiled, default JAVA and JAVAC to gij and gcj.
	* bin:  New sub-directory.
	* kawa/kawa.c:  Moved to new bin directory.
	* kawa/Makefile.am:  Moved stuff to bin/Makefile.am.
 	
	* repl.java (checkInitFile):  Set home-directory variable *before*
	running init file.

	* Shell.java (run):  Fix logic for EOF testing,

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

	Many changes to handlenew gnu.lists package.
	* Make-rules (CLEANFILES):  New definition.
	* configure.in:  Handle --with-java-collection flag.

	* kawa/Shell.java, kawa/repl.java:
  	Import gnu.lists instead of gnu.kawa.util.
	* kawa/lang/{AutoloadSyntax.java,CompileFile.java,Eval.java,
	Lambda.java,ListPat.java,ListRepeatPat.java,Macro.java,PairPat.java,
	Quote.java,Record.java,RecordConstructor.java,Syntax.java,
	SyntaxRule.java,SyntaxRules.java,Translator.java,VarListPat.java}:
	Likewise.  Also, use LList.listLength instead of LList.length.
	* kawa/standard/{and_or.java,append.java,begin.java,
	call_with_output_string.java,cxr.java,define.java,define_alias.java,
	define_autoload.java,define_class.java,define_member_alias.java,
	define_syntax.java,define_unit.java,define_variable.java,export.java,
	fluid_let.java,let.java,let_syntax.java,letrec.java,load.java,
	location.java,map.java,module_extends.java,module_implements.java,
	module_name.java,module_static.java,object.java,prim_method.java,
	quasiquote.java,read_line.java,readchar.java,require.java,set_b.java,
	string2number.java,string_append.java,string_v.java,synchronizd.java,
	syntax_case.java,syntax_error.java,syntax_rules.java,try_catch.java,
	try_finally.java,vector_append.java}:
	Import gnu.lists instead of gnu.kawa.util.
	Update LList.length->listLength, elementAt->get, length->size.
	* kawa/standard/{exact_p.java,inexact_p.java,list_p.java,list_ref.java,
	.list_tail.java,list2string.java,number2string.java,string2list.java,
	vector2list.java}:  Removed - re-written in Scheme.
	* Makefile.am (java_JAVA):  Remove removed files.
	* Scheme.java (initScheme):  Update accordingly.
	(getNamedType):  Update paths for classes now in gnu.lists.

	* Scheme.java (define_field):  Mangle the procedure name.

	* missing:  Update to newer version.

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

	Support for compiling Kawa using Gcj.
	* Make-rules:  New file, to be include by each Makefile.am.
	* Makefile.am (JAVADOC_PACKAGES):  Add "recent" packages.
	(kawa1$(exeext)):  Make, using gcj, Kawa executable (Java-only part).
	M aclocal.m4
	* configure.in:  Add support for --enable-gjc-compiled flag.
	* .../Makefile.am:  Include Make-rules; handle --enable-gjc-compiled.

	* kawa/lang/Record.java:  Use fully-qualified java.lang.reflect.Field
	instead of import, as latter confuses Gcj.
	* kawa/standard/Scheme.java:  Use define_field for display.
	* kawa/standard/map.java:  Fix typo in comment.
	* kawa/standard/require.java (featureMap, SLIB_PREFIX): Static fields
	moved from gnu.kawa.slib.SLib.
	(map, mapFeature):  Methods moved from gnu.kawa.slib.SLib.
	(scanForDefinitions):  Uddate to use local mapFeature.

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

	* kawa/repl.java (main):  Field dumpZipPrefix moved to ModuleExp.
	* kawa/standard/define_class.java: Comment out until we can fix it.

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

	* configure.in:  New --enable-xml flag.
	(XML_SELECTED):  New substitution macro.
	* gnu/kawa/Makefile.am (SUBDIR):  Add optional xml directory.
	* kawa/standard/Scheme.java (getNamedType):  Add <document>.

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

	* kawa/standard/map.java (inline):  Inline map as well as for-each.

	* kawa/standard/quasiquote.java (expand_pair):  Call LList.make
	rather than kawa.lib.lists.cons.
	(consType):  Removed static field.

	* kawa/standard/Scheme.java (initScheme):  Add "reverse!".
	The reverse function is now in kawa.lib.lists.
	* kawa/standard/reverse.java:  Removed.
	* kawa/standard/Makefile.am (java_JAVA):  Removed reverse.java.


2000-12-13  Emmanuel Castro <castro@lirmm.fr>

	* kawa/standard/Scheme.java (initScheme):  'error' is now in
	kawa.lib.misc, not kawa.lib.syntax.

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

	* kawa/standard/map.java (inline):  Swap order of then-clause and
	else-clause in generated code.  Fixes bug 'for-each does not compile
	in CVS tree' reported by Emmanuel Castro <castro@lirmm.fr>.

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

	* kawa/standard/Scheme.java (map, forEach):  New fields.
	(<init>):  Initialize map and forEach fields.
	(initScheme):  Defie map, for-each using define_field.
	* kawa/standard/map.java:  Implement CanInline.
	(inline):  New methods, to implement CanInline.
	
2000-12-09  Per Bothner  <per@bothner.com>

	Patch from Matthias Radestock <matthias@lshift.net>:
	* kawa/lang/AutoloadProcedure.java (env):  New field.
	(<init>):  Extra Environment argument.
	(load):  Use env field instead of current Environment.
	* kawa/lang/AutoloadSyntax.java:  Likewise.
	* kawa/standard/define_autoload.java:  Pass Translator's global
	environment to AutoloadProcedure and AutoloadSyntax constructors.
	* kawa/standard/Scheme.java (define_proc, define_syntax):  Pass
	current environ to AutoloadProcedure and AutoloadSyntax constructors.

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

	* kawa/lang/Macro.java (getExpander):  New method.
	* kawa/lang/Translator.java (addGlobal):  Removed method.
	(getBinding):  Lookup using hygiene-resolved name.
	(pushBinding):  Do nothing if new value is name as old.
	
	* kawa/standard/define.java (scanForDefinitions):  Do pushBinding.
	* kawa/standard/define_unit.java:  Do pushBinding, not addGlobal.
	* kawa/standard/define_syntax.java:  Likewise.
	* kawa/standard/require.java (scanForDefinitions):  Likewise.
	Also if value is a Macro, call bind on it.

	* kawa/standard/open_output_file.java (openOutputFile):  New static.

2000-11-21  Matthias Radestock <matthias@lshift.net>

	* kawa/standard/load.java (apply): Removes an incorrect fall-through
	that results in files to be loaded twice.

	* kawa/standard/require.java (find): Fixes lookup of module class
	instances which resulted in multiple require's for the same module
	to loadExecute the module multiple times

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

	* kawa/lang/CompileFile.java (compile_to_files):  Strip off any file
	extension, not just ".scm" or ".el".

2000-08-31  Emmanuel Castro <castro@lirmm.fr>

	* kawa/standard/require (finf):  Fix typo in error message.

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

	* kawa/lang/Syntax.java:  No longer extend Declaration.
	(getName, setName):  New methods.
	(<init>):  Do nothing - since not a Declaration.
	* kawa/lang/Macro.java (bind):  New method.

	* kawa/lang/Record.java (put): Swap arguments in call to set1,
	due to change in setter conventions.
	* kawa/standard/cxr.java (set1):  Swap arguments for new convention.
	* kawa/standard/make.java (applyN):  Likewise.
	* kawa/standard/set_b.java (rewrite):  Likewise.

	* kawa/lang/Translator.java:  Significant changes to support that
	Syntax no longer extends Declaration, and that the introduction
	of StaticFieldConstraint (which could replace autoloading).

	* kawa/standard/call_with_values.java (apply):  Update for changes
	in CallContext.

	* kawa/standard/let_syntax.java (rewrite):  Update for Macro no
	longer inheriting from Declaration.
	* kawa/standard/define_syntax.java:  Likewise.

	* kawa/standard/let.java (let):  New static final field.

	* kawa/standard/car.java:  Replaced by car from kawa/lib/lists.scm.
	* kawa/standard/cdr.java:  Replaced by cdr from kawa/lib/lists.scm.
	* kawa/standard/plus_oper.java: Replaced by gnu.kawa.functions.AddOp.
	* kawa/standard/minus_oper.java: Replaced by gnu.kawa.functions.AddOp.
	* kawa/standard/Makefile.am:  Update accordingly.
	* kawa/standard/Scheme.java:  Likewise.

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

	* kawa/standard/{ceiling.java,floor.java,round.java,truncate.java,
	ashift.java}:  Replaced by new procedures in kawa/lib/numbers.scm.
	* kawa/standard/Scheme.java:  Update accordingly.
	* kawa/standard/Makefile.am (java_JAVA):  Remove removed classes.

	* configure.in:  Set version to 1.6.71.
	(AC_OUTPUT):  Add gnu/kawa/functions/Makefile.

	* kawa/standard/apply.java:  Moved to gnu/kawa/functions/Apply.java.
	* kawa/standard/format.java:  Moved to gnu/kawa/functions/Format.java.
	* kawa/standard/ObjectFormat.java:  Moved to gnu/kawa/functions.
	* kawa/standard/TracedProcedure.java:  Add import for ObjectFormat.
	* kawa/standard/ParseFormat.java:  Moved to gnu/kawa/functions.
	* kawa/standard/LispFormat.java:  Moved to gnu/kawa/functions.
	* kawa/standard/ass.java:  Moved to gnu/kawa/functions/Assoc.java.
	* kawa/standard/eq_p.java:  Moved to gnu/kawa/functions/IsEq.java.
	* kawa/standard/equal_p.java: Moved to gnu/kawa/functions/IsEqual.java.
	* kawa/standard/eqv_p.java:  Moved to gnu/kawa/functions/IsEqv.java.
	* kawa/standard/list_v.java: Moved to gnu/kawa/functions/MakeList.java.
	* kawa/standard/mem.java:  Moved to gnu/kawa/functions/Member.java.
	* kawa/standard/setter.java:  Moved to gnu/kawa/functions/Setter.java.
	* kawa/standard/not.java (<init>(Interpreter,String)): New constructor.
	* kawa/standard/prim_method.java (rewrite):  More robust;
	diagnostic for missing class.
	* kawa/standard/convert.java (instance):  Sttaic field renamed ...
	(as):  ... new field, now allocated at <clinit>-time.
	(getInstance):  Always return the 'as' field.
	* kawa/standard/StaticFieldConstraint.java:  New class,
	extends ClassMemberConstraint.
	* kawa/standard/Scheme.java (define_field):  New methods.
	(instanceOf, not, isEq, isEqv, isEqual, memq, memv, member, assq,
	assv, assoc):  New static fields for standard Procedures.
	(initScheme):  Numerous updates.
	(parseFormat):  Removed static field.  (Use field in ParseFormat.)
	* kawa/standard/Makefile.am:  Numerous updates.

2000-8-17  Per Bothner  <per@bothner.com>

	* kawa/standard/apply.java (apply):  Update CallStack -> CallContext.
	* kawa/standard/call_with_values.java (apply):  Likewise.
	* kawa/standard/callcc.java (apply):  Likewise.

	* kawa/lang/Lambda.java (rewriteBody):  Handle ':: <TYPE> EXP ...'.
	Use new makeCoersion method in Expression.
	Support <sequence> result to use Consumer target.

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

	* kawa/standard/prim_method.java (rewrite):  Load reflectClass here;
	emit diagnostic message on failure.

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

	* kawa/standard/require.java (scanForDefinitions):  If imported field
	is a Binding, do setIndirectBinding(true).

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

	* kawa/repl.java (main):  The --cps flag also sets usingTailCalls.
	
	* kawa/GuiConsole.java (<init>):  Set autoflush for default out
	and err Writers.  Fix from Emmanuel Castro <castro@lirmm.fr>.

2000-06-26  Per Bothner  <per@bothner.com>

	* kawa/lang/Translator.java (rewrite):  If separate name spaces,
	don't resolve regular name to procedure decl.

2000-06-24  Per Bothner  <per@bothner.com>
	
	* configure.in:  Set version to 1.6.70.

	* configure.in (AC_OUTPUT):  Add gnu/commonlisp/*.

	* kawa/lang/Lambda.java:  Mode a lot more generic.
	(optionalKeyword, restKeyword, keyKeyword):  New fields.
	(rewriteBody):  New method.
	* kawa/standard/define.java (lambda):  New field.
	* kawa/standard/object.java (lambda):  New field.
	* kawa/standard/define_class.java (objectSyntax):  New field.
	* kawa/standard/Scheme.java:  Update as appropriate.

2000-06-19  Per Bothner  <per@bothner.com>

	* Makefile.am (kawa.jar):  Fix dependency.
	(EXTRA_DIST): Add jar-manifest.

	* configure.in:  Set version to 1.6.68.
	(JEMACS_VERSION):  New variable.

	* Makefile.am:  Add rules to make jemacs.tar.
	(kawa-@VERSION@-compiled.jar):  Renamed to kawa-@VERSION@.jar.
	Do a full configure+make first.

	* gnu/kawa/util/Char.java:  Moved to gnu/text.
	Various references had to be updated, or import statements added.

	* kawa/repl.java:  Update copyright printed by --version.

	* kawa/standard/LispFormat.java (class LispIntegerFormat):
	Moved and renamed to gnu/text/IntegerFormat.java.
	* kawa/standard/ParseFormat.java:  Add mostly-working (except that
	precision is ignored) for %d %i %o %x and %X.

	* kawa/standard/{char_ci_equal_p.java,char_ci_greater_equal_p.java,
	char_ci_greater_p.java,char_ci_less_equal_p.java,char_ci_less_p.java,
	char_equal_p.java,char_greater_equal_p.java,char_greater_p.java,
	char_less_equal_p.java,char_less_p.java}:  Removed.  Subsumed by
	new procedures in kawa/lib/characters.scm.
	* kawa/standard/Makefile.am:  Update accordingly.
	* kawa/standard/Scheme.java:  Update accordingly.

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

	* kawa/lang/AutoloadProcedure.java (getProperty): New method.

	* kawa/lang/AutoloadSyntax.java (load):  Don't re-set in Environment.

	* kawa/standard/Scheme.java (getTypeValue):  Use getTypeFor method
	of Interpreter.

	* kawa/standard/ParseFormat.java (asFormat):  New static method.
	* kawa/standard/format.java (formatToString):  New static method.
	* kawa/standard/instance.java:  Moved and renamed to
	gnu/kawa/reflect/InstanceOf.java.
	* kawa/standard/Makefile.am:  Updated accordingly.

	* kawa/standard/apply.java:  Extend for use by ELisp.
	(getArguments):  Make static, add new skip parameter.
	(apply, applyN):  Adjust accordingly.

	* kawa/standard/not.java (trueExp, falseExp):  New fields.
	(compile):  Use them.
	Also, pass interpreter to ConditionalTarget constructor.

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

	* Makefile.am (SUBDIRS):  Move testsuite before gnu, to "force" check
	to be run there before in gnu/jemacs/testsuite.M
	* configure.in (AC_OUTPUT):  Added gnu/jemacs/testsuite/Makefile.

	* kawa/lang/AutoloadProcedure.java:  Implement Externalizable.
	* kawa/lang/AutoloadSyntax.java:  Implement Externalizable.

	* kawa/lang/Syntax.java (<init>):  Don't bother setting TYPE_SPECIFIED.

	* kawa/lang/Translator.java (finishModule):  Handle case of no forms.

	* kawa/standard/define_autoload.java:  New class, extends Syntax.
	* kawa/standard/define_unit.java:  New class, extends Syntax.
	* kawa/standard/Makefile.am (java_JAVA):  Update accordingly.
	* kawa/standard/Scheme.java (initScheme):  Add new syntaxes.
	* kawa/standard/define_syntax.java (rewriteForm):  Add a noteValue.
	* kawa/standard/define.java (makeConstant):  New field.
	Generaize to implement define-constant.
	* kawa/standard/require.java:  If immediate, just call
	ClassMemberConstraint.define.

	* kawa/standard/set_b.java (rewrite):  Complain if setting a constant.

2000-06-09  Bruce Lewis  <brlewis@alum.mit.edu>

	* kawa/standard/read_line.java (apply):  Fix off-by-one error in
	handling of '\r' followed by '\n'.

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

	* configure.in (AC_OUTPUT):  Added gnu/kawa/lispexpr/Makefile.
	* kawa/lang/CompileFile.java:  LispReader moved to gnu.kawa.lispexpr.
	* kawa/lang/ScmRead.java:  Moved to gnu.kawa.lispexpr.
	* kawa/lang/Makefile.am:  Updated accordingly.
	* kawa/standard/Scheme.java:  Update imports.
	* kawa/Shell.java:  LispReader moved to gnu.kawa.lispexpr.

	* kawa/lang/Translator.java (finishModule):  If SUPERTYPE_SPECIFIED,
	force declaration to be non-static.
	* kawa/standard/module_extends.java:  Set SUPERTYPE_SPECIFIED.
	* kawa/standard/module_implements.java:  Likewise.
	
	* kawa/standard/read.java: Use RuntimeException or WrappedException
	instead of semi-deprecated GenericException.
	* kawa/standard/call_with_input_file.java:  Likewise.
	* kawa/standard/call_with_output_file.java: Likewise.
	* kawa/standard/make.java: Likewise.
	* kawa/standard/scheme_env.java: Likewise.
	* kawa/standard/string2number.java: Likewise.
	* kawa/standard/with_input_from_file.java: Likewise.

2000-05-27  Per Bothner  <per@bothner.com>

	* kawa/repl.java (main):  New --module-static flag.
	* kawa/lang/Syntax.java (<init>):  Set TYPE_SPECIFIED and IS_CONSTANT.
	* kawa/lang/Macro.java (setExpander):  New method.
	* kawa/lang/Lambda.java (rewrite):  Maybe set TYPE_SPECIFIED on param.
	* kawa/lang/Translator.java (finishModule):  Process static and
	export specification.

	* kawa/standard/module_static.java:  New class; extends Syntax.
	* kawa/standard/export.java:  New class; extends Syntax.
	* kawa/standard/Makefile.am (java_JAVA):  Add new files.
	* kawa/standard/Scheme.java (initScheme):  Add module-static and
	module-export.

	* kawa/standard/Scheme.java (demangleName):  Fix to handle
	minor changes in Compilation.mangleName.

	* kawa/standard/define.java:  Handle optional type-specifier.
	* kawa/standard/define_alias.java:  If aliased expression is a simple
	name, don't call rewrite (which does setIndirectBinding).
	(scanForDefinitions):  Don't set decl type until rewrite.
	* kawa/standard/define_syntax.java:  If immediate, call Macro's
	setExpander method, re-using current Macro.
	* kawa/standard/let.java (rewrite): Set TYPE_SPECIFIED in Declaration.
	* kawa/standard/letrec.java:  Likewise.
	* kawa/standard/require.java (find):  Fix typo.
	(scanForDefinitions):  Note that Declaration is not simple.
	Note mustCompileHere.
	* kawa/standard/set_b.java:  Do followAliases.

2000-05-22  Per Bothner  <per@bothner.com>

	* confgure.in (AC_OUTPUT):  Add gnu/jemacs/lisp/Makefile.
	
	* kawa/lang/AnyPat.java:  No longer implement Compilable.
	* kawa/lang/EqualPat.java:  No longer implement Compilable.
	* kawa/lang/PairPat.java:  No longer implement Compilable.
	* kawa/lang/ListRepeatPat.java:  No longer implement Compilable.
	* kawa/lang/Macro.java:  No longer implement Compilable
	* kawa/lang/SyntaxRule.java:  No longer implement Compilable
	* kawa/lang/SyntaxRules.java:  No longer implement Compilable

	* kawa/lang/SpecialType.java:  Do method lookup here instead of
	expecting it in gnu.kawa.util.Char or gnu.math methods.

	* kawa/standard/Scheme.java (string2Type):  Use ArrayType.make.
	(<init>):  Set Interpreter.defaultInterpreter first.
	(getNamedType):  Add <procedure> as a synonym for <function>.
	(getTypeFor):  New method.
	(exp2Type):  Just call getTypeFor.

	* kawa/standard/define_syntax.java
	(typeMacro, makeMethod):  New static fields.
	(rewriteForm):  Check if syntax rule is Externalizable, rather
	than no-longer-used Compilable.  Use new makeMethod field.

2000-05-09  Per Bothner  <per@bothner.com>

	* kawa/lang/AutoloadProcedure.java:  Use new Environment puttFunction.
	* kawa/lang/AutoloadSyntax.java:  Use new Environment getFunction.

	* kawa/lang/AnyPat.java:  Implement java.io.Externalizable.
	* kawa/lang/EqualPat.java:  Likewise.
	* kawa/lang/ListRepeatPat.java:  Likewise.
	* kawa/lang/PairPat.java:  Likewise.
	* kawa/lang/Macro.java:  Likewise.
	* kawa/lang/SyntaxRule.java:  Likewise.
	* kawa/lang/SyntaxRules.java:  Likewise.

	* kawa/lang/Macro.java (scanForDefinitions):  Use new Parser methods
	to set line position.

	* kawa/lang/Translator.java (current_filename, current_line,
	current_column. messages):  Moved fields to superclass (Parser).
	(getMessages, setMessages, error):  Likewise moved methods.
	(setLine):  New methods.
	(scan_form):  Use new setLine method.
	* kawa/lang/SyntaxRules.java (<init>):  Likewise.

	* kawa/repl.java (setInterpreter):  Method removed.
	(getInterpreter):  Don't hard-wire in Scheme.
	(main):  Don't hard-wire in languages, instead ask Interpreter.

	* kawa/standard/Scheme.java (getNamedType):  Don't hard-wire
	"elisp:boolean".  Instead, handle "elisp:*".  Also, get an Elisp
	instance using reflection - in case it isn't available when compiling.

2000-04-22  Per Bothner  <per@bothner.com>

	* kawa/lang/SpecialType.java (interpreter):  New optional field.
	Call interpreter to handle conversion to/from boolean.
	* kawa/standard/eq_p.java (interpreter):  New field.  Used to
	do language-appropriate boolean result.
	* kawa/standard/equal_p.java:  Likewise.
	* kawa/standard/eqv_p.java:  Likewise.
	* kawa/standard/instance.java:  Likewise.
	* kawa/standard/not.java (getReturnType):  Get from interpreter.
	* kawa/standard/Scheme.java
	(booleanType):  Don't initialize in static constructor.
	(intType, floatType, etc):  Use new SpecialType constructor.
	(initSchee):  Pass this to eq_p, eqv_p, equal_p, instance constructors.
	(getNamedType):  Init boolean here, passing in Scheme.getInstance.
	Also, handle <elisp:boolean>.

2000-04-22  Per Bothner  <per@bothner.com>

	* kawa/lang/SpecialType.java (interpreter):  New optional field.
	Call interpreter to handle conversion to/from boolean.
	* kawa/standard/eq_p.java (interpreter):  New field.  Used to
	do language-appropriate boolean result.
	* kawa/standard/equal_p.java:  Likewise.
	* kawa/standard/eqv_p.java:  Likewise.
	* kawa/standard/instance.java:  Likewise.
	* kawa/standard/not.java (getReturnType):  Get from interpreter.
	* kawa/standard/Scheme.java
	(booleanType):  Don't initialize in static constructor.
	(intType, floatType, etc):  Use new SpecialType constructor.
	(initSchee):  Pass this to eq_p, eqv_p, equal_p, instance constructors.
	(getNamedType):  Init boolean here, passing in Scheme.getInstance.
	Also, handle <elisp:boolean>.

2000-04-21  Per Bothner  <per@bothner.com>

	* kawa/lang/Translator.java:  No extends from gnu.expr.Parser.
	(current_scope):  Moved field to Parser.
	(parse):  New method, implements method from Parser.
	(currentLambda, currentScope, getInterpreter, mustCompileHere,
	push, pop, pushDecls, popDecls):  Moved methods to Parser.

	* kawa/lang/Translator.java (getBinding):  Also check inherited env.

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

	* configure.in:  Set version to 1.6.67.

2000-04-17  Per Bothner  <per@bothner.com>

	* kawa/lang/Record.java (getFieldFields):  Removed two methods.
	(equals):  Re-write to not use getFieldFields.

	* kawa/standard/Scheme.java (getNamedType):  Add <abstract-string>.

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

	* kawa/Telnet.java:  Merge contents of TelnetConnection.java.
	Implement Runnable instead of extending Thread.
	Make some constants (such as ECHO, DONT, etc) public.
	* kawa/TelnetConnection.java:  Removed.
	* kawa/TelnetInputStream.java:  Update accordingly.
	* kawa/TelnetOutputStream.java:  Likewise.
	* kawa/repl.java:  Likewise.
	* kawa/Makefile.am (java_JAVA):  Remove TelnetConnection.java.
	
	* kawa/lang/GetFieldProc.java:  Use gnu.bytecode.Field (now with
	sourceName and reflection cache) instead of java.lang.reflect.Field.
	* kawa/lang/SetFieldProc.java:  Likewise.
	* kawa/lang/RecordConstructor.java:  Likewise.
	* kawa/lang/Record.java (toString):  Likewise use extended Field.
	(makeRecordType):  Handle names that need to be mangled.

	* kawa/standard/location.java (rewrite):  If ReferenceExp, return it.
	* kawa/standard/define_alias.java (scanForDefinitions):  Put
	Declaration in pushed form.  Call Declarations's setAlias.
	(rewrite):  Don't create IndirectConstraint.

	* kawa/standard/Scheme.java (Scheme):  Initialize
	Interpreter.defaultInterpreter to this Scheme.

	* kawa/standard/number2string.java (apply, apply):  Create FString.

	* kawa/standard/Scheme.java (demangleName):  New static method.

	* kawa/standard/Scheme.java (getTypeValue):  Follow aliases.
	(getNamedType):  Remove emacs type aliases.  (Now in emacs.scm.)
	* kawa/standard/prim_method.java (exp2Type):  Use Scheme.getTypeValue.

2000-03-22  Per Bothner  <per@bothner.com>

	* configure.in:  Set version to 1.6.64.

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

	* kawa/lang/Translator.java (module):  Make non-public.
	(getModule):  New method.

	* kawa/standard/module_extends.java:  New class, extends Syntax.
	* kawa/standard/module_name.java:  New class, extends Syntax.
	* kawa/standard/module_implements.java:  New class, extends Syntax.
	* kawa/standard/Makefile.am (java_JAVA):  Add new classes.
	* kawa/standard/Scheme.java (initScheme):  Define new syntax.

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

	* kawa/Shell.java (run):  Kludge to work with ELisp.
	* kawa/lang/AutoloadProcedure.java (load):  Likewise.
	* kawa/lang/AutoloadSyntax.java (load):  Likewise.
	* kawa/lang/Translator.java (getInterpreter):  New field.
	(rewrite_pair, rewrite):  More kludges for ELisp.

	* kawa/lang/CompileFile.java (readBody, read):  Get correct lexer
	via the default Interpreter.
	(compile_to_files):  Know about .el file extension.

	* kawa/standard/NumberCompare.java:  New generalized compare class.
	Has appropriate mangled static fields and methods.
	* kawa/standard/{equal_oper.java,greater_oper.java,less_oper.java,
	greaterequal_oper.java,lessequal_oper.java}: Subsumed by NumberCompare.
	* kawa/standard/Makefile.am (java_JAVA):  Update class list.
	* kawa/standard/write.java:  Replaced by kawa/lib/port.scm.
	* kawa/standard/writechar.java:  Replaced by kawa/lib/port.scm.
	* kawa/standard/Scheme.java (initScheme):  Update accordingly.

	* kawa/standard/fluid_let.java:  Support ELisp `let' and `let*'.
	(start, defaultInit):  New fields, for Elisp support.
	* kawa/standard/load.java (loadSource):  Don't hard-wire Scheme.
	* kawa/standard/prim_method.java (rewrite):  Allow 'xx for method name.
	* kawa/standard/require.java:  Default package as compilationPrefix.

	* kawa/standard/string_append.java (stringAppend$V): New static method.
	* kawa/standard/number2string.java (format):  Renamed to apply.
	* kawa/standard/char_equal_p.java (apply):  New static method.

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

	* Makefile.am (makekawa.bat):  Add new scm sub-directories.
	* gnu/{jawa/slib,jemacs/buffer,jemacs/lang}/Makefile.{am,in}:
	Added list-sources target.

	* configure.in, configure (AC_OUTPUT):  Add gnu/slib/Makefile.
	* gnu/kawa/Makefile.am (SUBDIRS):  Add slib.

	* jar-manifest:  New file, used to build kawa-@VERSION@-compiled.jar.
	* Makefile.am (kawa-@VERSION@-compiled.jar):  Add manifest file.
	(install-javadoc-html):  Copy over COPYING.

	* kawa/lang/Translator.java (immediate):  New field.
	* kawa/Shell.java (run):  Set Translator's immediate field

	* kawa/lang/Translator.java (rerite_pair):  Call check_if_syntax.

	* kawa/lang/Translator.java (scan):  Save/restore line number info.
	* kawa/lang/CompileFile.java (compile_to_file):  Return if errors seen.

	* kawa/standard/eqv_p.java (apply):  Make static.
	
	* kawa/standard/require.java (allocate):  Rename to find.
	Add working implementation.

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

	* jawa/standard/prim_throw.java (getReturnType):
	Change to Type.neverReturnsType.

2000-02-29  Per Bothner  <per@bothner.com>

	* configure.in:  Set version to 1.6.65.

2000-02-27  Per Bothner  <per@bothner.com>

	* configure.in:  Set version to 1.6.64.

	* configure.in:  Support new flag --without-awt.
	* kawa/GuiConsole.java:  Addd default constructor.
	* kawa/repl.java (main):  Load GuiConsole using reflection.
	* kawa/Makefile.am:  Don't build GuiConsole etc if --without-awt.

	* Makefile.am:  Add rules for kawa-compiled.jar.

	* kawa/lang/Syntax.java:  Also implements Named.
	* kawa/standard/Scheme.java:  Use Procedure.getName instead of name.

2000-02-26  Per Bothner  <per@bothner.com>

	* kawa/standard/Scheme.java (getNamedType):  Add "frame".

2000-02-19  Per Bothner  <per@bothner.com>

	* kawa/Shell.java (runFile):  Catch SyntaxException, and do printAll.

	* kawa/standard/Scheme.java (initScheme):  Define `emacs'.

	* configure.in:  New substitution variable SWING_SELECTED.

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

	* kawa/standard/Scheme (initScheme):  Define "this" macro.
	(registerEnvironment):  Set Interpreter.defaultInterpreter

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

	* kawa/repl.java (main):  Recognize --applet flag.

	* kawa/standard/load.java (apply):  Now throws FileNotFoundException.
	(apply2):  Catch FileNotFoundException.
	(loadClassFile):  Do ClassMemberConstraint.defineAll.
	* kawa/Shell.java (runFile):  Use load.apply.

	* kawa/lang/Lambda.java (rewrite):  Using a Pattern is overkill.

	* kawa/lang/Translator.java (rewrite_pair):  Maybe setProcedureName.

	* kawa/standard/Scheme.java (registerCurrent):  New static method.

	* kawa/standard/define_variable.java:  New class; extends Syntax.
	* kawa/standard/Makefile.am (java_JAVA):  Add define_variable.java.
	* kawa/standard/Scheme.java (initScheme):  Define "define-variable".

2000-02-02  Per Bothner  <per@bothner.com>

	* kawa/standard/define.java (scanForDefinitions):  Fix thinko.

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

	* kawa/repl.java (defaultInterpreter):  Static field moved
 	to Interpreter.  Updated various uses.
	* kawa/lang/Interpreter.java:  Moved gnu.expr.
	* kawa/GuiConsole.java:  Update import statement accordingly.
	* kawa/lang/Makefile.am (java_JAVA):  Removed Interpreter.java.

	* kawa/lang/Translator.java (getrBinding, rewrite_pair):
	Call Binding's getFunctionValue method.

	* kawa/standard/{char_ready_p.java,eqv_p.java,exact_p.java,
	inexact_p.java,integer_p.java,positive_p.java}:
  	Use Boolean.TRUE/Boolean.FALSE rather than Interpreter.boolObject.
	* kawa/standard/{string_ci_equal_p.java,string_ci_greaterequal_p.java,
	string_ci_greaterthan_p.java,string_ci_lessequal_p.java,
	string_ci_lessthan_p.java,string_greaterequal_p.java,
	string_greaterthan_p.java,string_lessequal_p.java;
	kawa/standard/string_lessthan_p.java}:  Likewise.
	(apply)  New static method.
	* kawa/standard/{write.java,writechar.java}:  Use Scheme.voidObject
	instead of Interpreter.voidObject.
	* kawa/standard/not.java (interpreter):  New field.
	(apply1):  Use interpreter.booleanObject.
	* kawa/standard/and_or.java (interpreter):  New field.
	(rewrite):  Use interpreter.booleanObject.

	* kawa/standard/Scheme.java:  Rename fields to Java conventions:
 	(null_environment):  Renamed to nullEnvironment.
 	(r4_environment):  Renamed to r4Environment.
 	(r5_environment):  Renamed to r5Environment.
 	(kawa_environment):  Renamed to kawaEnvironment.
	* kawa/standard/scheme_env.java (apply1):  Update accordingly.

2000-01-24  Per Bothner  <per@bothner.com>

	* kawa/lang/ScmRead.java: Add #!undefined->Interpreter.undefinedObject.

	* kawa/lang/PrimArrayGet.java:  Moved to gnu.kawa.reflect.ArrayGet.
	* kawa/lang/PrimArraySet.java:  Moved to gnu.kawa.reflect.ArraySet.
	* kawa/lang/PrimArrayNew.java:  Moved to gnu.kawa.reflect.ArrayNew.
	* kawa/lang/PrimArrayLength.java:Moved to gnu.kawa.reflect.ArrayLength.
	* kawa/lang/PrimGetStatic.java:  Moved to gnu.kawa.reflect.StaticGet.
	* kawa/lang/PrimSetStatic.java:  Moved to gnu.kawa.reflect.StaticSet.
	* kawa/lang/QueueReader.java:  Moved to gnu.text.
	* kawa/lang/Makefile.am (java_JAVA):  Update accordingly.
	* kawa/standard/syntax_case.java:  Update for new class names.
	* kawa/GuiConsole.java:  Update since QueueReader was moved.
	* kawa/MessageArea.java:  Likewise.

	* kawa/standard/Makefile.am (java_JAVA):  Remove moved files.
	* kawa/standard/Scheme.java (initScheme):  Various procedures are
	now defined in kawa/lib/vectors.scm and numbers.scm.
	* kawa/standard/{acos.java,asin.java,lognot.java,logop.java,
	logbit_p.java,logtest.java,logcount.java,bit_extract.java,
 	int_length.java close_input_port.java,null_env.java,user_env.java,
	make_vector,.java,vector_fill_b.java,cons.java,vector_v.java}:
 	No longer needed.

	* kawa/standard/load.java (apply):  Make static.

	* kawa/standard/quasiquote.java:  Call utility functions using inlined
	Invoke.makeInvokeStatic, rather than new ApplyExp (new QuoteExp ...).
	* kawa/standard/append.java (append$V):  New method.
	No longer implement Compilable.
	* kawa/standard/vector_append.java (apply$V):  New method.
	No longer implement Compilable.
	* kawa/standard/Scheme.java (initScheme):  Don't use removed statics.

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

	* kawa/standard/load.java:  Change methods to return void.
	(loadCompiled):  Call defineAll method in ClassMemberConstraint
 	to import public fields.
	* kawa/lang/AutoloadProcedure.java (load):  Likewise.
	* kawa/lang/AutoloadSyntax.java (load):  Likewise.

	* kawa/lang/Macro.java:  No longer use inherited value field.
	Now implement Compilable and Printable.
 	(transformer):  Removed field.
	(expander):  New Expression field.
	(print):  New method (to implement Printable).
	(makeLiteral, emit):  New methods (to implement Compilable).
	* kawa/standard/define_syntax.java:  Change for new Macro handling.
	* kawa/standard/let_syntax.java (rewrite):  Likewise - save
	tranbsformers in local array, not in Macro.transformer.

	* kawa/lang/Translator.java (push, pop):  Use pushBinding. popBinding.
	(push):  Do mustCompileHere() for all scopes except ModuleExp.

	* kawa/standard/call_with_values.java (callWithValues):  New static.

	* kawa/standard/close_input_port.java (apply1):  Use WrappedException.

	* kawa/standard/define.java (scanForDefinitions):  Re-structure.
	Sometimes do setCanWrite on decl when we don't want default inlining.
	In that case, set decl's value to null.

	* kawa/lang/NamedException.java (toString):  Trivial optimization.
	* kawa/lang/PairPat.java (match):  Stylistic simplification.

	* kawa/lang/Lambda.java (rewrite):  Set (default) type of #!rest arg.
	Allow #!rest arg to have a type.
	* kawa/standard/values_v.java:  Removed.
	* kawa/standard/Scheme.java (initScheme):  Don't declare it either.
	* kawa/standard/location.java (makeProcLocation$V):  New static method.
	(rewrite):  Call makeProcLocation$V instead of %makeProcLocation.
	* kawa/standard/makeProcLocation.java:  Removed.
	* kawa/standard/Scheme.java (initScheme):  Remove %makeProcLocation;
	now get `values' from kawa.lib.misc.
	* kawa/standard/Makefile.am (java_JAVA):  Update accordingly.

	* kawa/standard/format.java (format, formatToString):  Make static.
	(format$V):  New static method.

	* kawa/standard/list_v.java:  Implement Inlinable.
	(compile, getReturnType):  New methods.

1999-12-27  Per Bothner  <per@bothner.com>

	* kawa/lang/Lambda.java (rewrite):  Don't call setParameter.
	* kawa/lang/Syntax.java:  Two trivial cleanups.
	* kawa/lang/Translator.java (current_decl):  Rename to environ.
	(rewrite):  Handle non-Declaration in environ.
	(shadowStack):  New field.
	(pushBindund, popBinding):  New methods.
	* kawa/lang/SyntaxRule.java:  Use Translator's environ field.
	* kawa/standard/define_alias.java:  Likewise.

	* kawa/standard/require.java:  New class; extends Syntax.
	* kawa/standard/Makefile.am (java_JAVA):  Add require.java.
	* kawa/standard/Scheme.java (initScheme):  Add require.

	* kawa/standard/define.java:  Use Declaration's new getName() method.
	* kawa/standard/define_member_alias.java:  Likewise.
	* kawa/standard/letrec.java:  Use Declaration instead of Variable.
	* kawa/standard/set_b.java:  Likewise.

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

	* gnu/kawa/util:  New package directory.
	* configure.in (AC_OUTPUT):  Add gnu/kawa/util/Makefile.
	* kawa/lang/Makefile.am (java_JAVA):  Remove classes moved
 	to gnu/kawa/util.
	* gnu/*:  Update for classes moved to new gnu.kawa.util (some renamed).
	* kawa/*:  Likewise.
	* gnu/kawa/Makefile.am (SUBDIRS):  Add util.
	* kawa/lang/ScmRead.java (readUniformVector):  New method.
	(readObject):  Use readUniformVector to read SRFI-4 uniform vectors.
 	(readCharacter):  Use new Char.nameToChar method.
	* kawa/standard/length.java:  Removed - replaced by Scheme code.
	* kawa/standard/Makefile.am (java_JAVA):  Update accordingly.
	* kawa/standard/Scheme (initScheme):  Add new SRFI-4 procedures.
	(getNamedType):  Add new type names for SRFI-4 uniform vectors.

1999-12-06  Per Bothner  <per@bothner.com>

	* Makefile.am, Makefile.in (JAVADOC_PACKAGES):  Add new packages.
	(JAVADOC_FLAGS):  Add flags to give javadoc enough memory.

	* kawa/lang/Lambda.java (rewrite):  Support NAME :: TYPE syntax.

	* kawa/standard/let.java (rewrite):  Trivial optimization.

	* kawa/standard/define_member_alias.java:  New Syntax class.
	* kawa/standard/Makefile.am (java_JAVA):  Add define_member_alias.java.
	* kawa/standard/Scheme.java (initScheme):  Define define-member-alias.
	 (getNamedType):  Define buffer and window.

1999-12-05  Per Bothner  <per@bothner.com>

	* configure.in:  Set version to 1.6.63.

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

	* configure.in:  Set version to 1.6.62, and made release.
	* COPYING:  New file.  Replaces removed doc/license.terms.
	* kawa/repl.java (main):  --version prints (short) copyright notice.

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

	* kawa/lang/Pair.java (emit):  Use new ClassType.getDeclaredField.
	* kawa/lang/Translator.java (rewrite_pair):  If Inlineable,
	don't try PrimProcedure.getMethodFor (yet).

M kawa/standard/TracedProcedure.java
	* kawa/standard/Scheme.java (string2Type):  Use ClassType.make.
 	(initScheme):  Update for gnu.kawa.reflect changes.
	* kawa/standard/static_field.java:  Remove;  subsumed by Invoke.
	* kawa/standard/Makefile.am (java_JAVA):  Update accordingly.

1999-11-04  Per Bothner  <per@bothner.com>

	* kawa/lang/Char.java (make):  Remove subsumed method.

	* kawa/lang/Translator.java (rewrite_pair):  Move code to look
	for matching static method to gnu.expr.PrimProcedure.getMethodFor.

	* kawa/lang/Translator.java (apply_rewrite):  Fix thinko,
	reported by Daniel Bonniot <d.bonniot@mail.dotcom.fr>.

	* kawa/standard/Scheme.java (initScheme):  Define open-output-string,
	get-output-string, string-output-port.

	* kawa/standard/call_with_output_string.java (apply1):
	Use new CharArrayOutPort class instead of CharArrayWriter.
	* kawa/standard/format.java (formatToString):  Likewise.

	* kawa/standard/plus_oper.java (apply$V):  New method.
	(apply(Object,Object)):  Removed, until we have better inlining.

1999-10-20  Bruce Lewis  <brlewis@alum.mit.edu>

	* kawa/lang/ScmRead.java: New method readDefault lets subclasses
	extend the behavior of the readObject methods.
	* kawa/standard/Scheme.java: Allow subclasses to use define_proc
	and define_syntax methods.

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

	* Makefile.am, Makefile.in (makekawa.bat):  Depend on configure.in.
	* configure.in, configure:  Set version to 1.6.61.

	* doc/kawa.texi:  Document `invoke'.
	* NEWS, TODO:  Updates.

	* kawa/lang/Syntax.java (scanForDefinitions):  New method.
	* kawa/lang/AutoloadSyntax.java (scanForDefinitions):  New method.
	* kawa/lang/Macro.java (scanForDefinitions):  New method.
	* kawa/lang/Translator.java
 	(rewrite_pair):  Handle varargs method (apply$V and NAME$V).
	(scan_form):  Rewr-ite to use new Syntax.scanForDefinitions.
	More logic specific to a syntax to the corresponding method.
	* kawa/standard/begin.java (scanForDefinitions):  New method.
	* kawa/standard/define.java (scanForDefinitions):  New method.
	* kawa/standard/define_alias.java (scanForDefinitions):  New method.
	* kawa/standard/define_syntax.java (scanForDefinitions):  New method.
	* kawa/standard/Scheme.java (defineSyntax, defineSyntaxPrivate,
	beginSyntax, defineAliasSyntax, defineSyntaxSyntax):  Remove fields.
	(initScheme):  Fix typo "kawa.lib.number" -> "kawa.lib.numbers".
	Add "open-input-string" (SRFI-6), "define-class", "invoke".

	* kawa/standard/object.java (rewriteClassDef):  New method.
	* kawa/standard/define_class.java:  New class.
	* kawa/standard/{Makefile.am,Makefile.in} (java_JAVA):  Update.

	* kawa/standard/read_line.java (apply):  Re-throw a WrappedException.

	* kawa/standard/make_future.java (apply1):  Future Procedure
	no longer is necessarily a Procedure1.

1999-10-13  Walter C. Pelissero <wcp@demon.db.de>

	* kawa/standard/TracedProcedure.java:  Catch RuntimeException,
	print to trace output, and re-throw.

1999-10-13  Per Bothner  <per@bothner.com>

	* kawa/standard/TracedProcedure.java:  Indent output.

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

	* kawa/standard/TracedProcedure.java:  Indent nested calls.

1999-10-07    	Walter C. Pelissero <wcp@demon.db.de>.

	* kawa/standard/Scheme.java:  Fix typo number -> numbers.

1999-10-04  Per Bothner  <per@bothner.com>

	* kawa/standard/make_future.java:  Future action is now Procedure,
	not necessarily Procedure0.
  	Fixes bug reported by Walter C. Pelissero <wcp@demon.db.de>.

1999-09-14  Per Bothner  <per@bothner.com>

	* configure.in:  Set version to 1.6.60.
	(AC_OUTPUT):  Add gnu/kawa/Makefile gnu/kawa/reflect/Makefile.
	
	* kawa/lang/Interpreter.java (coerceFromObject, coerceToObject):
	New methods.

	* kawa/standard/call_with_values.java: Update values() -> getValues().
	* kawa/standard/Scheme.java:  Likewise.

	* kawa/lang/InvokeStatic.java:  Moved to gnu/kawa/reflect.
	* kawa/standard/class_methods.java:  Replaced by
 	gnu/kawa/reflect/ClassMethods.java.
	* kawa/standard/field.java:  Replaced by gnu/kawa/reflect/SlotGet.java.
	* kawa/standard/Scheme.java:  Update for new or moved procedures.
	* kawa/lang/Makefile.am:  Update accordingly.
	* kawa/standard/Makefile.am:  Likewise.

	* kawa/standard/list_v.java (list$V):  New method.

1999-09-08  Per Bothner  <per@bothner.com>

	* kawa/lang/InvokeStatic.java:  Get rid of lots of crud by
	using kawa.standard.class_methods.
	
	* kawa/lang/CompileFile.java (read):  Set filename of ModuleExp.
	* kawa/lang/Translator.java (scan_form):  Copy line number info.
	* kawa/lang/Lambda.java (rewrite):  Set line number info on
	parameter Declarations.

	* kawa/standard/define.java (rewrite):  Replace by rewriteForm.

	* kawa/lang/{Pair.java,Vector.java}:  Update scmObjectType->typeObject.

1999-09-05  Per Bothner  <per@bothner.com>

	* kawa/lang/Translator.java (error):  New method.
	(syntaxError):  Use new method.
	(rewrite_pair):  If car is Syntax, then apply_rewrite.
	(scan_form);  New method, with code moved from scan_body.
	(finishModule):  New method.
	* kawa/lang/Interpreter.java (getName):  New method.
	* kawa/lang/CompileFile.java (read):  Now read each line, and
	does Translator.scan_form separate on each statement.
	(read, readBody):  No long throw SyntaxException.
	(compile_to_files):  Takes SourceMessages parameter;  returns void.
	* kawa/repl.java:  Use new compile_to_files interface.

	* Shell.java (run):  Skip whitespace in case read is called.

	* kawa/lang/Macro.java (expand):  Add quotes in error message.

	* kawa/lang/ScmRead.java (readNumber):  A quantity like 12in is
 	no longer a literal, but returns a form like (* 12 in$unit).
	(readString):  Use readEscape.
	* kawa/standard/ScmEnv.java:  Also handle UNITNAME$unit.

	* kawa/standard/location.java (rewrite):  Handle static bindings.

	* kawa/standard/Scheme.java:  Define read-line and define-private.
	(eval):  Update for new CompileFile.readBody interface.
	(makeModuleExp):  Use scan_body instead of lambda.rewrite.
	(getNamedType):  "java.lang.String" is no longer bound to
 	Type.string_type (though "String" still is).
	* kawa/standard/define_syntax.java (rewrite):  Handle the case when
	the macro "name" is a Declaration (created by Translator.scan_form).
	* kawa/standard/define.java:  Likewise.
	Also add support for define-private.

	* kawa/standard/read_line.java:  New class;  extends ProcedureN.
	* kawa/standard/Makefile.am (java_JAVA):  Add read_line.

	* kawa/lang/Sequence.java (toArray):  Use an Emueration.
	* kawa/lang/List.java (list1, list2, list3):  New convenience methods.
	* kawa/lang/FString.java:  Do two new constructors.
	
1999-08-26  Per Bothner  <per@bothner.com>

	* kawa/lang/Interpreter.java (getTypeFor):  New abstract method
	* kawa/standard/Scheme.java (getTypeFor):  New method.

	* kawa/lang/Syntax.java:  Now inherits from Declaration.
	* kawa/lang/AutoloadSyntax.java:  Replace each name() by getName().
	* kawa/standard/prim_method.java:  Likewise.
	* kawa/standard/Scheme.java (define_syntax):  New methods needed.

	* kawa/lang/Macro.java:  Merge in functionality of DefMacro.
	* kawa/lang/DefMacro.java:  Removed - subsumed by Macro.
	* kawa/lang/Makefile.am, Makefile.in (java_JAVA): Remove DefMacro.java.
	(<init>):  Re-do correspondingly.
	* kawa/lang/SyntaxRule.java (captured_decls):  New field.
	(<init>):  Save current visible local Declarations in captured_decls.
	(execute_template):  Map renamed symbol to captured decl, if any.
	* kawa/lang/Translator.java (getGlobalEnvironment):  New method.
	(push, pop):  Immediately return if Declaration's name is null.
	(getBinding):  If lexical binding is Syntax, return that.
	(rewrite_pair):  Simpler test if car is non-lexically bound to Syntax.
	If no lexical binding, don't call getBinding;  just check global env.
	(scan_body):  Handle define-alias.

	* kawa/standard/define.java (rewrite):  Re-organize.
	* kawa/standard/define_alias.java:  Now also handle non-top-level uses.
	* kawa/standard/define_syntax.java:  Replace DefMacro uses by Macro.
	* kawa/standard/let_syntax.java:  Now also handles letrec-syntax.

	* kawa/standard/class_methods.java:  New class; extends ProcedureN.
	* kawa/standard/Makefile.am (java_JAVA):  Add class_methods.java.
	* kawa/standard/Scheme.java:  Update accordingly.

1999-08-22  Per Bothner  <per@bothner.com>

	* kawa/lang/Quote (rewrite): Don't use Patterns.

	* kawa/lang/Sequence (toArray):  Allocate correct array type,
	as specified by Java2 Collections.

	* kawa/lang/PairWithPosition.java (<init>):  New constructor.

	* kawa/MessageArea.java:  Remove redundant import java.lang.*.

	* kawa/lang/AutoloadSyntax.java (rewrite):  Replace by rewriteForm.

	* kawa/lang/SyntaxRule.java (execute_template, both overloadings):
  	Take the input form as an extra argument.  Use this to copy line
 	position of input (if known) to expansion.

	* kawa/lang/Translator.java:  More general macro framework:
	A macro has an arbitrary expansion precedure (possibly using
	syntax-case), which is called with a SyntaxForm.
  	Also, some better line number handling and error message hooks.
	* kawa/lang/Syntax.java (rewriteForm):  New preferred method to
	override, instead of (still-available) rewrite.
	* kawa/lang/Macro.java (rewriteForm):  Method replaces rewrite.
	(expand):  Takes a complete form, not just the argument list.
	* kawa/lang/DefMacro.java:  Re-write - expander now takes a single
	SyntaxForm, rather than an array of forms.  Also, provide hook for
	not-yet-evaluated expression instead of expander Procedure.
	* kawa/lang/SyntaxRules.java:  Now inherit from Procedure1.
	(apply1):  New methods - calls expand.
 	(expand):  Update interface to take Pair.
	* kawa/standard/location.java (rewriteArg):  Update expand call.
	* kawa/lang/SyntaxForm.java:  New class.

	* kawa/lang/InvokeStatic:  New class.
	
	* kawa/lang/EqualPat.java (print):  Tweak the output.
	* kawa/lang/Pattern.java (typePattern, matchPatternMethod):
  	New static fields.
	* kawa/lang/ListRepeatPat.java:  Use Pattern.typePattern.
	* kawa/lang/PairPat.java:  Likewise.
	(match):  If input is SyntaxForm, match its contained form.

	* kawa/standard/syntax_case.java:  New Syntax class.
	* kawa/standard/syntax_rules.java:  New Syntax class.
	* kawa/standard/let_syntax.java:  New Syntax class.
	* kawa/standard/Scheme.java:  Define new macros.
	(exp2Type):  New method.
	* kawa/standard/define_syntax.java:  No-longer handles
	the syntax-rules part now that syntax-rules is stand-alone.
	* kawa/standard/Makefile.am:  Update for new classes.

	* kawa/standard/eq_p.java (compile):  New static method.
	* kawa/standard/eqv_p.java:  Make Inlineable.
 	(isEqv):  Rename to apply.

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

	* configure.in, configure (AC_OUTPUT):  Update for gnu.jemacs change.
	* kawa.repl (setInterpreter):  Update ELisp package prefix.

	* kawa/lang/ListPat.java:  New static match methods.
	* kawa/standard/ifp.java (rewrite):  Use static ListPat.match method.

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

	* kawa/lang/GetFieldProc.java (compile):  Don't inline if class was
 	loaded with an ArrayClassLoader.
	* kawa/lang/SetFieldProc.java (compile):  Likewise.
	* kawa/lang/Record.java (toString):  Don't print static fields.
	
1999-08-06  Per Bothner  <per@bothner.com>

	* configure.in (AC_OUTPUT):  Revert use of javatop macro.

	* kawa/lang/Sequence.java (elements):  New method.
	(SeqEnumeration):  New non-public class.
	* kawa/lang/List.java (elements):  New method.
	(ListEnumeration):  New non-public class.

	* kawa/lang/Interpreter.java (getNewEnvironment):  New method.
	* kawa/standard/Scheme.java (getNewEnvironment):  New method.
	* kawa/GuiConsole.java:  Separate Environment from Interpreter.
	* kawa/repl.java (main):  Use new GuiConsole constructor.

	* kawa/Shell.java (run):  No longer need to explicitly catch WrongType.
	Change confusing message for ClassCastException.
	* kawa/lang/Translator.java (rewrite_pair):  If directly calling
	an inlined PrimProcedure, set the name (for better error messages).
	* kawa/standard/car.java: Catch ClassCastException instead of
	using instanceof.
	* kawa/standard/cdr.java:  Likewise.

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

	* configure.in (AC_INIT):  Use doc/kawa.texi instead of kawa/repl.java.
	(AC_OUTPUT):  Use (normally undefined) javatop macro.
	* Makefile.am (JAVATOP):  New (normally undefined) macro.

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

	* kawa/Makefile.am, kawa/Makefile.in (BUILT_SOURCES, Version.java):
	Moved to ./Makefile.am, to make sure Version.java is built first.
	* Makefile.am, Makefile.in (makekawa.bat):  New rule.

1999-07-19  Per Bothner  <per@bothner.com>

	* configure.in:  Set version to 1.6.59.

	* kawa/standard/TracedProcedure.java:  New ProcedureN class.
	* kawa/standard/Makefile.am (java_JAVA):  Add TracedProcedure.java.
	* kawa/standard/ObjectFormat.java (format):  New overload.
	* kawa/standard/Scheme.java (initScheme):  Define call/cc (alias),
	system-tmpdir, make-temporary-file, trace, untrace.

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

	* kawa/GuiConsole.java (<init>):  Create a kawa.repl, not a kawa.Shell.
	* kawa/Shell.java:  No longer inherits from Procedure0.
	All methods are static;  most now take an explicit Environment
	(for top-level bindings) as well as Interpreter (current language).
	* kawa/repl.java:  Now extends Procedure0or1.
	(apply0, apply1):  New methods.
	(interp):  New instance field.
	(<init>):  New constructor.
	(defaultInterpreter):  New static field.
	(getInterpreter, setInterpreter):  New static methods.
	(main):  Options to select interpreter (language).
	(serveTelnet):  Take Interpreter argument.
	Create a new SocketRepl, instead of a new Shell.
	(SocketRepl):  New Procedure0 class.

	* kawa/lang/Sequence.java (toArray):  Implement two new methods.
	* kawa/lang/Pair.java (toArray):  Implement optimized versions.
	* kawa/lang/FString.java (toCharArray):  New method.

	* kawa/lang/Interpreter.java (getLexer):  New abstract method.
	* kawa/standard/Scheme.java (getInstance, getLexer):  New methods.
	(initScheme):  Declare "repl".  Change "emacs.read".
	* kawa/standard/load.java (loadSource):  Use Scheme.getInstance.

	* kawa/standard/convert.java (compile):  Use Target.pushValue.


1999-07-11  Per Bothner  <per@bothner.com>

	* kawa/lang/Char.java (charNameValues, charNames):  Add "bel" for ^G.

1999-06-30  Per Bothner  <per@bothner.com>

	* **/Makefile.in:  Re-generated.
	* **/Makefile.nt, **/Makefile.unix:  Remove - not used in years.
	* kawa/standard/ObjectFormat.java (format):  Optimize if no length
 	truncation is needed, especially if dst is CharArrayWriter.
	* kawa/standard/LispFormat.java (LispRealFormat):  New class.
	(LispFreshlineFormat):  New non-public ReportFormat class.
	(LispTabulateFormat.padChar):  New field.
	(LispTabulateFormat.format):  Re-write - now works.
	(LispFormat.<init>):  Working support for ~F, ~E, ~G, ~$, ~T, ~&.

1999-06-20  Per Bothner  <bothner@pacbell.net>

	* configure.in:  Add new --with-swing option.
	Also configure gnu/emacs/Makefile.
	
1999-04-25  Per Bothner  <bothner@Magnus.Cygnus.COM>

	* kawa/standard/object.java (rewrite):  Fields have unknown value.

1999-04-23  Per Bothner  <bothner@Magnus.Cygnus.COM>

	* kawa/lang/Translator.java (errors):  Removed field.
	(messages):  New gnu.text.SourceMessages field.
	(syntaxError):  Don't print messages;  invoke messages.error instead.
	* kawa/lang/Eval.java (eval):  Create new SourceMessages.
	(evalBody):  Add and use new SourceMessages parameter.
	* kawa/lang/Lambda.java:  Update for new SourceMessages convention.
	* kawa/lang/ScmRead.java (<init>):  New overload taking SourceMessages.
	(readSymbol):  Handle `::' as a symbol, not a keyword.
	(readObject):  Handle [ ... ].
	* kawa/lang/CompileFile.java:  Use new SourceMessages conventions.
	* kawa/standard/Scheme.java:  Declare new precedure subtype?.
	(getNamedType):  Add character.
	(eval):  Catch SyntaxException.
	* kawa/standard/let.java:  Handle :: TYPE specifier.
	* kawa/standard/letrec.java:  Handle :: TYPE specifier.
	* kawa/standard/load.java:  Use new SourcesMessages class.
	* kawa/Shell.java (run):  New new SourceMessages conventions.
	* kawa/repl.java:  When compiling, catch SyntaxException.

	* kawa/lang/SyntaxRule.java (execute_template):  Move DEBUGGING comment
	* kawa/lang/SyntaxRules.java (expand):  ... to here.

1999-04-22  Per Bothner  <bothner@cygnus.com>

	* kawa/standard/object.scm (rewrite):  Do setClassMethod on $finit$.

1999-04-09  Per Bothner  <bothner@cygnus.com>

	* kawa/lang/Translator.java (systemClassLoader):  New private field.
	(rewrite_pair):  Compare with systemClassLoader.

Wed Apr  7 21:52:19 1999  Per Bothner  <bothner@Magnus.Cygnus.COM>

	* kawa/lang/Translator.java (isLexical):  New method.
	(getBinding, rewrite):  Call isLexical.
	* kawa/standard/fluid_let.java:  New Syntax class.
	* kawa/standard/Makefile.am (java_JAVA):  Add fluid_let.java.
	* kawa/standard/Scheme.java:  fluid-let is now written in Java.
	* kawa/standard/let.java (pattern2):  Remove unused static field.
	* kawa/standard/location.java (rewrite):  Check that !isFluid().
	* kawa/standard/set_b.java (rewrite):  Check that decl is lexical.

Tue Mar 30 17:52:57 1999  Per Bothner  <bothner@Magnus.Cygnus.COM>

	* kawa/standard/object.java (rewrite):  Call LambdaExp.setClassMethod.

Sat Mar 20 11:23:48 1999  Per Bothner  <bothner@Magnus.Cygnus.COM>

	* configure.in (AC_OUTPUT), configure:  Add gnu/elisp/Makefile.

	* kawa/lang/Macro.java:  New Syntax sub-class.
	* kawa/lang/Makefile.am (java_JAVA):  Add Macro.java.
	* kawa/lang/SpecialType.java:  Inherit from Macro rather than Syntax.
	(rewrite1):  Rename to expand (overrides) Macro.
	(rewrite):  Removed - now in Macro.
	* kawa/lang/DefMacro.java:  Inherit from Macro rather than Syntax.
	(rewrite):  Replace by Macro.expand method.
	* kawa/lang/Translator.java (getBinding):  Use gnu.expr.Binding.
	(scan_body): Scan for the more general Macro, rather than SyntaxRules.
	* kawa/lang/Record.java (get):  Renamed to getChecked.

	* kawa/standard/Scheme.java (voidType):  New static Type field.
	(getNamedType):  USe voidType.
	(initScheme):  Define define-alias and emacs:read.
	* kawa/standard/ScmEnv.java (getType):  New helper method.
	(ScmEnvConstraint):  New helper class.
	(<init>):  Set unboundConstraint to new ScmEnvConstraint.
	* kawa/standard/call_with_values.java (apply(CallStack)):  New method.
	* kawa/standard/location.java (rewriteArg):  New static method.
	(rewrite):  Handle macros and both global and local variables.
	* kawa/standard/constant_fold.java (checkConstant):  Just call
	get(Object) - which does not throw exception if undefined.
	
	* kawa/standard/define_alias.java:  New Syntax sub-class.
	* kawa/standard/Makefile.am (jav_JAVA):  Add define_alias.java.

Sun Mar  7 16:42:02 1999  Per Bothner  <bothner@Magnus.Cygnus.COM>

	* kawa/repl.java:  New flags --full-tailscalls and --no-full-tailcalls.
	* kawa/lang/AutoloadProcedure.java (load):  ModuleBody.run no longer
	takes any argument.
	* kawa/lang/AutoloadSyntax.java (load):  Likewise.
	* kawa/lang/Promise.java:  Change thunk from Procedure0 to Procedure.
	* kawa/lang/Record.java (typeFieldNames):  Skip static fields.
	* kawa/standard/Scheme.java (env_formal, moduleFormals):  Removed.
	* kawa/standard/apply.java:  Handle full tailcall-elimination.
	* kawa/standard/{let.java,letrec.java}:  Handle type specifiers.
	* kawa/standard/load.java:  ModuleBody.run no longer takes 

Tue Feb  9 11:39:20 1999  Per Bothner  <bothner@Magnus.Cygnus.COM>

	* kawa/standard/{string2symbol,symbol2string}.java:  Replaced
	by Scheme code in ../lib/misc.scm.
	* kawa/standard/{sin,cos,tan}.java: Replaced by code in numbers.scm.
	* kawa/standard/Scheme.java:  Update to get new implementations.
	* kawa/standard/Makefile.am:  Updated for removed classes.

Mon Feb 22 22:19:00 1999  Per Bothner  <bothner@cygnus.com>

	* configure.in:  Set version to 1.6.58.
	Update AM_EXEEXT -> AC_EXEEXT.  Move AC_PROG_CC before AC_EXEEXT.
	* Makefile.am (kawa-compiled.zip):  New rule.
	* **/Makefile.in:  Re-generate using automake 1.4.
	* aclocal.m4:  Re-generate using aclocal 1.4.
	* configure:  Re-generate using autoconf 2.13.

Fri Jan  1 22:13:41 1999  Per Bothner  <bothner@Magnus.Cygnus.COM>

	* configure.in:  Set version to 1.6.57.
	* Makefile.am, Makefile.in (install-javadoc-html):  New rules.
	* kawa/Makefile.am (EXTRA_DIST):  Add  Version.java.in.

	* kawa/TelnetConnection.java:  New class - for telnet connection.
	* kawa/TelnetInputStream.java:  New class.
	* kawa/TelnetOutputStream.java:  New class.
	* kawa/Telnet.java:  New class - a mini-client for telnet.
	* kawa/kawa.c:  New front-end driver for Kawa.
	* kawa/Makefile.am:  Support building and installing kawa front-end.
	* kawa/Shell.java (socket):  New field.
	(apply0):  If socket field is non-NULL, close it on exit.
	* kawa/repl.java (serveTelnet):  New method.
	(main):  Support new flags --connect and --server.
	* configure.in:  Support new --enable-kawa-frontend flag.
	* */Makefile.in:  Re-generated.

Wed Dec 23 15:10:03 1998  Per Bothner  <bothner@Magnus.Cygnus.COM>

	* kawa/standard/object.java (rewrite):  Handle field initialization.
	Set fields declarations to both redaable and writable.

Tue Dec 15 18:35:44 1998  Per Bothner  <bothner@cygnus.com>

	Moved Kawa source repository to sourceware.cygnus.com.
	* config.guess, config.sub, install-sh, missing, mkinstalldirs:
	Copied over scripts shared by most GNU programs.
	* Makefile.am (config,guess, config.sub, install-sh, mkinstalldirs):
	Removed no-longer needed rules.

Tue Dec 15 10:31:38 1998  Per Bothner  <bothner@Magnus.Cygnus.COM>

	* kawa/standard/object.java:  Support field declarations,
	and put field declarations in scope of methods.
	
Tue Nov 24 23:05:36 1998  Per Bothner  <bothner@Magnus.Cygnus.COM>

	* configure.in:  Set version to 1.6.56.

	* kawa/lang/PrimGetStatic.java (getReturnType):  New method.
	* kawa/lang/PrimSetStatic.java (getReturnType):  New method.
	* kawa/lang/PrimArrayNew.java (getReturnType):  New method.
	* kawa/lang/PrimArrayGet.java (getReturnType):  New method.
	* kawa/lang/PrimArraySet.java (getReturnType):  New method.
	* kawa/lang/PrimArrayLength.java (getReturnType):  New method.
	* kawa/lang/SetFieldProc.java (getReturnType):  New method.
	* kawa/standard/convert.java (getInstance):  New static method.
	* kawa/lang/GetFieldProc.java: (getReturnType):  New method.
	Use RuntimeException instead of GenericError.

	* kawa/lang/Lambda.java (rewrite):
	Syntatic sugar:  <TYPE> BODY --> (as <TYPE> BODY)

	* kawa/lang/Translator.java (mustCompileHere):  Make public.

	* kawa/standard/Scheme.java:  Use convert.getInstance().
	* kawa/standard/{convert.java,eq_p.java,instance.java,not.java,
	prim_throw.java} (getReturnType):  New methods.

	* kawa/standard/object.java:  New Syntax class.

	* kawa/standard/field.java:  New Procedure2 class.
	* kawa/standard/static_field.java:  New Procedure2 class.
	* kawa/standard/Scheme.java:  Defined new procedures and syntax.
	* kawa/standard/Makefile.am (java_JAVA):  Added new classes.

Sun Nov 15 19:18:20 1998  Per Bothner  <bothner@cygnus.com>

	* kawa/standard/ScmEnv.java:  New Environment class.
	* kawa/standard/Makefile.{am,in} (java_JAVA):  Add ScmEnv.java.
	* kawa/standard/Scheme.java (builtin):  Create new ScmEnv.
	* kawa/lang/Record.java:  Inherit from NameMap, not Procedure1.
	* Makefile.am, Makefile.in:  Work-around for automake (dist) problem.

Sat Oct 17 14:16:05 1998  Per Bothner  <bothner@Magnus.Cygnus.COM>

	* kawa/standard/synchronizd.java:  New Syntax.
	* kawa/standard/Makefile.{am,in} (java_JAVA):  Add synchronizd.java.
	* kawa/standard/Makefile.in
	* kawa/standard/Scheme.java:  Define synchronized syntax.

	* kawa/standard/not.java (compile):  Use new emitNot interface.
	* kawa/lang/SpecialType.java (emitCoerceToObject):  Update emitConvert.

Fri Sep 11 22:29:26 1998  Per Bothner  <bothner@cygnus.com>

	* kawa/repl.java (main):  Handle new --debug-dump-zip option.

	* kawa/lang/CalledContinuation.java:  Make fields public.
	* kawa/lang/Continuation.java (callcc):  Replaced by callcc.apply.
	* kawa/standard/callcc.java (apply):  New static method.

	* kawa/lang/Lambda.java:  Don't add argsArray yet.
	Handle parameter type specification.
	* kawa/lang/PrimProcedure.java:  Moved to gnu.expr.
	* kawa/lang/Makefile.in:  Update accordingly.
	* kawa/lang/SpecialType.java (charValue):  New method.

	* kawa/standard/Scheme.java (getNamedType, string2Type):
	Moved here from PrimProcedure.
	* kawa/standard/prim_method.java:  Updated for moved methods.

	* kawa/standard/{car,cdr,cons,make_vector,callcc}.java:
	Add static apply methods.
	* kawa/standard/letrec.java (rewrite):  Initial value is now null,
	because that is compatible with stricter typing scheme.
	* kawa/lang/Translator.java (rewrite_body):  Ditto for internal define.
	* kawa/standard/{setcar_b,setcdr_b}.java:  Removed, now in lists.scm.
	* kawa/standard/{string_ref,string_set_b}.java:  Replaced.
	* kawa/standard/Makefile.am:  Update accordingly.

Sat Aug 29 20:50:05 1998  Per Bothner  <bothner@cygnus.com>

	* kawa/standard/{plus_oper,minus_oper,multiply_oper,greater_oper}.java:
	Add static apply methods, to allow compiling direct calls.
	* kawa/lang/*.java:  Do ClassType.make instead of new ClassType.
	* kawa/lang/AutoloadProcedure.java (getLoaded, numArgs):  New methods.
	* kawa/lang/PrimProcedure.java (<init>):  Set right opcode from method.
	* kawa/lang/Translator.java (rewrite_pair): Directly call static apply.

Sat Aug 29 09:12:55 1998  Per Bothner  <bothner@cygnus.com>

	* **/Makefile.in, configure, aclocal.m4:  Re-generated.
	* kawa/Makefile.am (Version.java):  Depend on configure.in.

1998-08-28  Per Bothner  <bothner@cygnus.com>

	* configure.in (AC_CONFIG_AUX_DIR):  Removed.
	Set version to 1.6.55.
	* install-sh, mkinstalldirs:  Removed, now gotten from .. .

	* kawa/lang/Translator.java (resolve):  Remove.
	* kawa.standard/location.java:  New Syntax.
	* kawa/standard/Makefile.am, kawa/standard/Scheme.java:  Update.
	* kawa/standard/{define.java,set_b}.java:  Translator.resolve is now gone.

Mon Aug  3 13:21:22 1998  Per Bothner  <bothner@cygnus.com>

	* kawa/lang/FString.java (hashCode):  Fix typo:  32 -> 31.

Fri Jul 24 16:05:10 1998  Per Bothner  <bothner@cygnus.com>

	* kawa/standard/makeProcLocation.java:  New helper class.
	* kawa/standard/Makefile.am (java_JAVA):  Add makeProcLocation.java.
	* kawa/standard/Scheme.java:  Define location and %makeProcLocation.

	* kawa/lang/FString.java (hashCode):  New method.
	* kawa/lang/ScmRead.java (readSymbol):  Allow :KEY as well as KEY:.

Tue Jul 21 23:19:35 1998  Per Bothner  <bothner@cygnus.com>

	* gnu/mapping, gnu/expr:  New packages.
	* kawa/lang:  Moved many classes from here to gnu.mapping or gnu.expr.
	* kawa/{,lang,standard}:  Update import statements.
	* configure.in (AC_OUTPUT):  Add gnu/{mapping,expr}/Makefile.
	* Makefile.am (install-html):  Simplify to call gnu/Makefile.
	* kawa/lang/SchemeLoader.java:
	Moved to gnu/bytecode/ArrayClassLoader.java.
	* kawa/standard/Scheme (makeModuleExp):  New function.
	* kawa/standard:  Some functions moved to kawa.lib.
	
	* configure.in:  Set version to 1.6.54.

Sun Jun 28 23:07:49 1998  Per Bothner  <bothner@cygnus.com>

	* configure.in:  Set version to 1.6.53.
	(AC_OUTPUT):  Add gnu/text/Makefile.

	* kawa/lang/ApplyExp.java (compile):  Fix incorrect implementation
	of tail-recursion.  Use CodeAttr.emitTailCall.
	* kawa/lang/LambdaExp.java (start_label):  Removed - no longer needed.
	* kawa/lang/Compilation.java (addClass):  Don't set lexp.start_label.

	* kawa/lang/Char.java:  Add some extra named characters.
	(toScmReadableString):  New method.  May emit octal form.
	(print):  Use toScmReadableString.
	* kawa/lang/FString.java (makeUpperCase, makeLowerCase,
	makeCapitalize):  New methods.

	* kawa/lang/Special.java (dfault):  New static.
	* kawa/lang/Keyword.java (searchForKeyword):  If no match, return
	Special.dfault, not null, to allow #!null as a default.
	* kawa/lang/Compilation.java (addClass):  Update for new default
	return value of searchForKeyword (Special.dfault).
	
	* kawa/lang/LambdaExp.java (<init>):  Set file name.
	* kawa/lang/{Lexer.java, LineBufferedReader.java, SourceError.java,
	SyntaxException.java}:  Moved to gnu.text package.
	* kawa/Shell.java, kawa/lang/{CompileFile,InPort,Interpreter}.java,
	kawa/standard/read.java:  Update because of moved classes.
	* kawa/lang/{Makefile.am/Makefile.in}:  Update accordingly.
	* kawa/lang/PairWithPosition.java (<init>):  Use LineBufferedReader.
	* kawa/lang/ScmRead.java (readCharacter):  Support octal notation.
	(readSpecial):  Read #!default as Special.dfault.
	Add some casts to (InPort) to get readState.  Yuck.

	* kawa/standard/LispFormat.java:  New class - Common Lisp-style format.
	* kawa/standard/ObjectFormat.java:  New - plain Object formatting.
	* kawa/standard/ParseFormat.java:  New Procedure1.
	* kawa/standard/Makefile.am, Makefile.in:  Update for new classes.
	* kawa/standard/Scheme.java:  Update for new procedures.

Sun May 24 13:13:52 1998  Per Bothner  <bothner@cygnus.com>

	* configure.in:  Set version to 1.6.52.

Thu May 21 21:38:24 1998  Per Bothner  <bothner@cygnus.com>

	* kawa/lang/Lexer.java:  New class (extends Reader).
	* kawa/lang/ScmRead.java:  New class (extends Lexer).
	* kawa/lang/SourceError.java:  New class.
	* kawa/lang/SyntaxException.java:  New class (extends Exception).
	* kawa/lang/ReadError.java:  No longer used.
	* kawa/lang/EofReadError.java:  No longer used.
	* kawa/lang/InPort.java:  Scheme reader methods now in ScmRead,
	* kawa/lang/Interpreter.java (read):  New throws SyntaxException.
	* kawa/lang/Makefile.am:  Update for new and removed classes.
	* kawa/standard/read.java:  Update for new reader.
	* kawa/standard/string2number.java (parse):  Update for new reader.
	Optimize - don't convert <string> to <String> to char[].
	* Shell.java:  Changes for new Lexer framework.

	* */Makefile.in:  Update for automake 1.3.

	* kawa/lang/LambdaExp.java (<init>):  Handle #!null as default arg.

	* kawa/lang/CompileFile.java (readBody):  New method.
	* kawa/lang/Eval.java (eval):  Re-organize methods.
 	(evalBody):  New method.  Save and restore current Environment.
	* kawa/lang/ModuleExp.java (eval_module):  Rename to evalModule.
	* kawa/standard/Scheme.java (eval):  Use Eval.readBody.

	* kawa/lang/PrimProcedure.java (getNamedType): Add <record>, <type>,
	and <class-type>.
	* kawa/lang/Record.java (makeRecordType):  Return ClassType, not Class.
	(typeFieldNames):  New overload taking ClassType.
	* kawa/lang/RecordConstructor.java (numArgs):  New method.
	(applyN):  Throw WrongArguments if wrong number of arguments.
	(getname):  New method.
	(<init>):  New constructor takes ClassType (overloaded with Class).
	* kawa/lang/SetFieldProc.java (<init>):  Add overload taking ClassType.
	* kawa/lang/GetFieldProc.java:  Likewise.

Tue Apr 28 21:58:49 1998  Per Bothner  <bothner@cygnus.com>

	* kawa/Makefile.am: Change AUTOMAKE_OPTIONS to cygnus.

Mon Apr 27 00:03:51 1998  Per Bothner  <bothner@cygnus.com>

	* kawa/lang/LambdaExp.java (declareThis):  New method.
	Make some fields public (for EcmaScript).

	* kawa/lang/SysInPort.java (fill): Work-around for NTEmacs shell mode.
	* kawa/lang/TtyInPort.java (tie):  Make protected.

	* kawa/lang/InPort.java (readSchemeReal):  Cleaner (and more
 	portable I hope) handling of inexact zero denominator.

Tue Apr 14 10:09:17 1998  Patrick Barta <patr@welchlink.welch.jhu.edu>

	* kawa/lang/InPort.java (readSchemeReal):  Simplification that
	avoids javac (on NT) problem.

Sat Apr  4 17:53:18 1998  Per Bothner  <bothner@cygnus.com>

	* configure.in:  Set version number to 1.6.51.
	
	* kawa/lang/Char.java (toString):  New method.

	* kawa/lang/ConditionalTarget.java:  New Target class.
	* kawa/lang/Compilation.java (compileConstant):
	Handle ConditionalTarget.
	* kawa/lang/QuoteExp.java (voidExp, trueExp):  New statics.
	* kawa/lang/IfExp.java (compile):  Re-write to use ConditionalTarget.

	* kawa/lang/TryExp.java (compile):  Let CodeAttr handle saving result.

	* kawa/lang/Future.java (<init>):  Initialize in, out, and err fields.
	(waitForResult):  Simplify exception handling.

	* */Makefile.am:  Re-write to compile all out-of-date *.java at once.

	Changes for gnu.ecmascript:
	* kawa/lang/LineBufferedReader.java (pos, limit, buffer):  Make public.
	* kawa/lang/InPort.java (readOptionalExponent):  Make public.
	* kawa/lang/EofReadError.java (<init>):  Make public.
	* kawa/lang/Compilation.java (trueConstant, falseConstant):  Likewise.

	* kawa/standard/{eq_p, not}.java:  Inline; handle ConditionalTarget.
	* kawa/standard/Scheme.java (initScheme):  Get 'and from kawa.lib.
	Added port-line, port-column, and set-port-line! (from Guile).

	* kawa/repl.java (main):  Allow multiple source files after -C flag.

	* kawa/Version.java.in:  Use VERSION instead of @VERSION@ as template.
	* kawa/Makefile.am (Version.java):  New generated at build time.
	(EXTRA_DIST):  Also distribute generated Version.java.
	* configure.in (AC_OUTPUT):  Remove kawa/Version.java.
	
Fri Mar 13 22:11:59 1998  Per Bothner  <bothner@cygnus.com>

	* kawa/lang/Target.java:  New abstract class - represents the
 	destination for the value of an Expression.
	* kawa/lang/{StackTarget.java,TailTarget.java,IgnoreTarget.java}:
	New classes that extend Target.
	* kawa/lang/Makefile.am:  Update for new target classes.
	* kawa/lang/Expression.java (compile):  Take Target instead of flags.
	(IGNORED, LAST):  Removed flags.
	(compile_with_linenumber): Renamed to compileWithPosition; take Target.
	* kawa/lang/Compilation.java (compileConstant):  New overload.
	* kawa/lang/{ApplyExp.java,BeginExp.java,CatchClause.java,
	Compilation.java,ErrorExp.java,GetFieldProc.java,IfExp.java,
	Inlineable.java,LambdaExp.java,LetExp.java,PrimArrayGet.java,
	PrimArrayLength.java,PrimArrayNew.java,PrimArraySet.java,
	PrimGetStatic.java,PrimProcedure.java,PrimSetStatic.java,QuoteExp.java,
	ReferenceExp.java,SetApplyExp.java,SetExp.java,SetFieldProc.java,
	TryExp.java} (compile):  Update to take a Target.
	* kawa/standard/{convert.java,instance.java,prim_throw.java}: Likewise.

Wed Mar 11 17:00:00 1998  Per Bothner  <bothner@cygnus.com>

	Kawa version 1.6 released.

Tue Mar 10 20:01:37 1998  Per Bothner  <bothner@cygnus.com>

	* kawa/lang/ApplyExp.java (getFunction):  New method.
	* kawa/lang/PrimArrayNew.java (compile):  Fix compile target type bug.
	* kawa/lang/PrimProcedure.java (applyN):  Use coerced args values.
	* kawa/lang/PrimArraySet.java (compile):  Convert value.

	* kawa/standard/Scheme.java (getTypeValue):  New static method.
	(initScheme):  Add "constant-fold", "system", and more.  Minor fixes.
	* kawa/standard/Makefile.am:  Update.
	* kawa/standard/constant_fold.java:  New Syntax.
	* kawa/standard/{convert.java,instance.java}:  Use Scheme.getTypeValue.
	Various small fixes and improvements.

Mon Mar  9 17:53:33 1998  Per Bothner  <bothner@cygnus.com>

	* kawa/lang/SysInPort.java:  New TtyInPort class.
	* kawa/lang/InPort.java (systemInPort, defaultInPort):  Replace inp.
	(systemInPort):  Is now a SysInPort, instead of TtyInPort.
	* kawa/lang/Makefile.am:  Update accordingly.

	* kawa/lang/PairWithPosition.java:  Line and column nums are 1-origin.

	* kawa/lang/PrimProcedure.java (compile):  Renamed for gnu.bytecode.

	* kawa/lang/ReferenceExp.java (getName, getBinding):  New methods.
	* kawa/lang/PrimArraySet.java (apply3):  Convert value.
	* kawa/lang/SetFieldProc.java (apply2):  Add type convertion.

Tue Mar  3 11:51:08 1998  Per Bothner  <bothner@cygnus.com>

	* configure.in (AC_OUTPUT):  Generate kawa/Version.java.
	* kawa/{Makefile.am,kawa/Makefile.in}: Update to generate Version.java.
	* kawa/repl.java (main):  Handle --version and --main.
	Moving definition of symbol-read-case to Scheme.java.
	* kawa/Version.java.in:  New template used to generate Version.java.
	* kawa/lang/Compilation.java (generateMain, generateMainDefault):  New.
	(addClass):  Generate main method if generateMain is true.
	* kawa/lang/ModuleBody.java (runAsMain):  New method.

	* kawa/lang/{ApplyExp.java,Compilation.java,Literal.java,
	ReferenceExp.java,SetApplyExp.java,SetExp.java,SyntaxRules.java,
	Vector.java}:  Update for moved gnu.bytecode methods.

	* kawa/lang/{GetFieldProc.java,SetFieldProc.java}:  Rewrite to
	work with ClassType (not just Class) and implement Inlineable.
	* kawa/lang/{PrimGetStatic.java,PrimSetStatic.java}:  New Procedures.
	* kawa/lang/{PrimArrayGet.java,PrimArrayLength.java,
	PrimArrayNew.java,PrimArraySet.java}:  New Inlineable Procedures.
	* kawa/lang/{Makefile.am,Makefile.in}:  Update for new classes.
	* kawa/standard/Scheme.java:  Add new methods from kawa.lib.reflection.

	* kawa/lang/LineBufferedReader.java (fill):  Fix minor think-o.
	* kawa/lang/TtyInPort.java (fill):  Likewise.

Tue Feb 24 18:32:21 1998  Per Bothner  <bothner@cygnus.com>

	* kawa/lang/Keyword.java (getName):  New method.

	* kawa/lang/HasSetter.java:  New interface.
	* kawa/lang/Procedure.java (getSetter, set0, set1, setN):  New methods.
	* kawa/lang/Compilation.java:  Make various static values public. 
	* kawa/lang/SetApplyExp.java:  New Expression class.
	* kawa/lang/Setter.java:  New class, extends ProcedureN.
	* kawa/lang/Setter0.java:  New. A 0-argument (not counting RHS) Setter.
	* kawa/lang/Setter1.java:  New. A 1-argument (not counting RHS) Setter.
	* kawa/lang/Makefile.am:  Update for new classes.
	* kawa/lang/AutoloadProcedure.java (getSetter):  New method.
	* kawa/standard/set_b.java (rewrite):  Handle (set! (f . args) v).

	* kawa/lang/Record.java (apply):  Added, since we extend Procedure1.
	(set1):  Method added, as implementation of interface HasSetter.
	(print):  Method added, overrides Procedure.print.
	* kawa/lang/Named.java (sym_name):  Change from public to protected.

	* kawa/lang/Translator.java (rewrite):  Don't check for <TYPE> here.
	* kawa/lang/ReferenceExp.java (lookup):  New method, checks for
 	<TYPE>, but only if otherwise not defined.
	(eval, compile):  Use lookup to handle "<NAME>".

	* kawa/standard/car.java (set1):  New, to implement HasSetter.
	* kawa/standard/cdr.java (set1):  New, to implement HasSetter.
	* kawa/standard/cxr.java (set1):  New, to implement HasSetter.
	* kawa/standard/setter.java:  New Procedure1 class.
	* kawa/standard/make.java:  New ProcedureN class.
	* kawa/standard/Makefile.am, kawa/standard/Scheme.java:  Update.

Thu Feb 19 18:36:18 1998  Per Bothner  <bothner@cygnus.com>

	* Makefile.am, Makefile.in (kawa-@VERSION@-compiled.zip):  Build
	archive from .class files in ".", not installed ones.

	* kawa/lang/InPort.java:  New constructors controlling char conversion.
	(convertToReader, openFile):  New static methods. 
	(readChar, readString):  Always convert CR and CRLF to LF.
	* kawa/lang/TtyInPort.java:  Always convert CR and CRLF to LF.
	* kawa/standard/open_input_file.java:  Simplify - logic
	for selection char encoding is now in InPort.openFile.
	* kawa/lang/CompileFile.java (read):  Use new InPort.openFile method.
	* kawa/Shell.java (runFile):  Likewise.
	* kawa/standard/call_with_input_file.java (apply2):  Likewise.
	* kawa/standard/with_input_from_file.java:  Likewise.
	* kawa/standard/load.java (loadSource, apply2):  Likewise.

Wed Feb 18 22:12:13 1998  Per Bothner  <bothner@cygnus.com>

	* kawa/standard/open_input_file.java:  If binary file, do setBuffer.
	Do setConvertCR(true) for text files.
	* kawa/lang/LineBufferedReader.java:  Fix so line and column numbers
	will be correct for CRLF is seen, even if !getConvertCR().
	* kawa/lang/InPort.java (skipWhitespaceAndComments):  '\r'
	terminates comments starting with ';'.
	* kawa/lang/FString.java (open):  Return plain InPort (to match
	call-with-input-string in kawa.lib).
	* kawa/lang/CharArrayInPort.java (read):  Remove bad optimization.

	* kawa/lang/PrimProcedure.java:  Remove second <float> definition.

Mon Feb 16 16:01:37 1998  Per Bothner  <bothner@cygnus.com>

	* Makefile.am (EXTRA_DIST):  Add Debian source package files.

	* kawa/standard/{call_with_input_string.java,input_port_p.java,
	kawa/standard/output_port_p.java}:  Replaced by functions in kawa/lib.
	* kawa/standard/{Scheme.java,Makefile.am}:  Update accordingly.
	
	* kawa/lang/PrimProcedure.java (string2Type):  Check that name is
	valid Java class name only for not-yet-defined types.
	(getNamedType):  Add input-port and output-port.
	* kawa/lang/Translator.java (rewrite):  Don't call
	PrimProcedure.string2Type here - now handled by string2Type.
	* kawa/standard/prim_method.java (exp2Type):  Likewise.

	* kawa/lang/LineBufferedReader.java:  Re-write for increased
	performance, some extra features, and maybe some bug-fixes.
	(getConvertCR, setBuffer, skip_quick, unread_quick):  New methods.
	(fill):  New overrideable method, subsubmes readHook.
	(readHook):  Removed.
	* kawa/lang/InPort.java:  Efficiency improvements.
 	(readDigits):  New method.
	* kawa/lang/TtyInPort.java (fill):  New method, replaces readHook.
	* kawa/lang/{CharArrayInPort.java,NullReader.java}:  New classes.
	* kawa/lang/{Makefile.am,Makefile.in} (OBJ):  Update for new classes.
	* kawa/lang/FString.java (open):  New method.
	* kawa/standard/string2number.java (parse):  Use CharArrayInPort.
	* kawa/standard/Scheme.java (eval): Likewise.
	* kawa/Shell.java (runString):  Likewise.

	* kawa/standard/{convert.java,instance.java}:  Fix error messages.

Sun Feb  8 15:01:42 1998  Per Bothner  <bothner@cygnus.com>

	* configure.in (VERSION):  Set to 1.6.

Fri Feb  6 17:17:17 1998  Per Bothner  <bothner@cygnus.com>

	* */Makefile.am, */Makefile.in (javadir):  Change from $(prefix)/java
	to $(datadir)/java.  More compatible with GNU standards and Linux FHS.
	* kawa/Makefile.am (kawa#(BAT)):  Update KAWALIB location accordingly.
	* kawa/Makefile.am (CLEANFILES):  Use *.class instead of $(OBJ).

	* kawa/standard/Scheme.java:  Add scheme-window procedure.
	* kawa/repl.java (main):  Add -w flag (creates new GuiConsole).

Tue Feb  3 12:57:50 1998  Per Bothner  <bothner@cygnus.com>

	* configure.in, configure:  Set version to 1.5.95.

	* kawa/GuiConsole.java (close):  Make non-private.
	(Works around javac bug in some JDK versions.)
	* kawa/Shell.java:  Better handling of WrongArguments.
	* kawa/repl.java (main):  If compilation throws exception, print stack.
	
	* kawa/standard/{abs,angle,complex_p.denominator,exp,imag_part,log,
	magnitude,make_polar,make_rectangular,number_p,numerator,quantity_p,
	quotient,rational_p,real_p,real_part,remainder,zero_p}.java:
	Replaced by functions in lib.
	* kawa/standard.Scheme.java:  Many functions moved to kawa.lib.numbers.
	* kawa/standard/Makefile.{am,in}:  Update for removed files.
	* kawa/lang/PrimProcedure.java (getNamedType):  Add more logical names.

	* kawa/standard/convert.java: New Procedure2 implements "as".
	* kawa/standard/instance.java: New Procedure2 implements "instance?".
	* kawa.standard/{char_p,vector_p}.java:  Replaced by Scheme functions.
	* kawa/standard/Scheme.java:  Update for new or moved procedures.
	(byteType ... charType): New Scheme-specific SpecialType Types.
	* kawa/standard/Makefile.am:  Update accordingly.
	
	* kawa/lang/{AnyPat,ApplyExp,Char,Compilation,EqualPat,FString,IfExp,
	Keyword,LambdaExp,Literal,ListRepeatPat,Pair,PairPat,PrimProcedure,
	Record,ReferenceExp,SetExp,Special,SyntaxRule,SyntaxRules,Vector}.java:
	Update calls to gnu.bytecode methods (from compile_xxx to emitXxx).
	* kawa/lang/Char.java:  Use Scheme.charType.
	* kawa/lang/ApplyExp.java (compile):  Split off to new static function.
	* kawa/lang/CompileFile.java (read):  Check if unmatched ')' follows.
	* kawa/lang/InPort.java (readListBody):  Fix line-num off-by-one error.
	* kawa/lang/ReadError.java (construct_message):  Likewise.
	
	* kawa/lang/QuoteExp.java (getValue):  New final method.
	* kawa/lang/Translator.java (rewrite_pair):  If functions is an
	Inlineable Procedure, check that the number of args is ok.
	(rewrite):  Use string2Type instead of getNamedType.
	* kawa/lang/SpecialType.java:  New class - extends PrimType.
	* kawa/lang/Makefile.am:  Added SpecialType.class.
	* kawa/lang/Expression.java (compile(Compilation,int,Type)):  No
	longer need special handling here for char and boolean primtive types.
	* kawa/lang/Named.java (getName):  Make non-final.
	* kawa/lang/PrimProcedure.java (applyN):  Make work.
	(getNamedType):  Use new Scheme SpecialType objects.
	(getname):  new overriding method.
	(compile):  Can simplify, because of new SpecialType objects.
	
	* kawa/lang/WrongArguments.java (getMessage, constructor):  New.
	(checkArgCount):  New static method.
	Inherit from IllegalArgumentException, not RuntimeException.
	* kawa/lang/Procedure.java (numArgs):  New virtual method.
	(minArgs, maxArgs):  New final methods.
	(checkArgCount):  New static method.
	* kawa/lang/{Procedure0,Procedure0or1,Procedure1,Procedure1or2,
	Procedure2,Procedure3,Procedure4}.java
	(numArgs):  Add overriding method.
	(applyX):  Remove unneeded throws specifications.
	(applyX):  Use new WrongArguments constructor.
	* kawa/lang/Compilation.java:  If compiling to a ProcedureN class,
	emit numArgs method, and call to cehckArgs.

Tue Jan 27 12:02:33 1998  Per Bothner  <bothner@cygnus.com>

	* configure.in (VERSION):  Set to 1.5.94.

Mon Jan 26 16:38:14 1998  Per Bothner  <bothner@cygnus.com>

	* kawa/lang/CatchClause.java:  Fixes to get things working.
	(getNext, setNext, getBody, setBody): New methods.
	* kawa/lang/TryExp.java:  More fixes.
	(getCatchClauses, setCatchClauses):  New.
	* kawa/standard/prim_throw.java:  New class implements primitive-throw.
	* kawa/standard/throw_name.java:  New Procedure implements throw.
	* kawa/standard/try_catch.java: new syntax, implements try-catch.
	* kawa/standard/error.java:  Removed class.

	* kawa/lang/Named.java (getName):  New method.

	* kawa/standard/Scheme.java (define_proc):  New method overload.
	(initScheme):  Add new methods.  Give name() to old ones.
	* kawa/{lang,standard}/Makefile.am:  Update for new/removed classes.
	
	* kawa/lang/Inlineable.java:  New interface.
	* kawa/lang/PrimApplyExp.java:  Removed - subsumed by PrimProcedure.
	* kawa/lang/PrimProcedure.java:  Implement Inlineable.
 	(compile):  New method, taken from PrimApplyExp.compile.
	* kawa/lang/ApplyExp.java (getArgs):  New method.
	(compile): If a quoted Inlineable function, call its compile method.
	* kawa/lang/Translator.java (rewrite_pair):  Check if func name is
	bound to an Inlineable proc;  if so, wrap it in a QuoteExp.
	But we no longer need to handle PrimProcedure specially.
	* kawa/standard/prim_method.java (exp2Type):  New method.
	(rewrite):  Use exp2Type.
	* kawa/lang/NamedException.java:  New class.

	* kawa/lang/PrimProcedure.java (getnamedType):  Don't put
	predefined <TYPENAME>s in types;  let rewrite handle it.
	* kawa/lang/Translator.java (rewrite):  Handle generate <TYPENAME>.

	* kawa/lang/InPort.java (readListBody):  Allow "(. x)", so change
	return type to Object instead of List.
	* kawa/lang/ModuleExp.java (constructor):  Update for readListBody.
	* kawa/lang/CompileFile.java (read):  Likewise.
	
	* kawa/lang/{WrongArguments.java,WrongType.java,UnboundSymbol.java,
	GenericError.java}:  Inherit from RuntimeException.

Sat Jan 24 14:31:52 1998  Per Bothner  <bothner@cygnus.com>

	* kawa/MessageArea.java (endMakr, length, out_stream):  New fields.
	(enter):  Don't pass KeyEvent, or do consume here.
	Better handling of various edits, including multi-line paste.
	(write):  New method, body taken from TextAreaWriter.
	(deleteOldText):  New method.
	(textValueChanged):  New listener method.
	* kawa/GuiConsole.java (constructor):  Create GuiInPort, not TtyInPort.
 	(actionPerformed):  Use MessageArea.deleteOldText.
	* kawa/GuiInPort.java:  New class.
	* kawa/TextAreaWriter.java (write(String)):  Call MessageArea.write.
	(write):  Add cast from int to char. (Patch from Albert Ting.)
	* kawa/Makefile.am, kawa/Makefile.in (OBJ):  Add GuiInPort.class.

Tue Jan 20 10:28:24 1998  Alternator Petrofsky  <albatros@wco.com>

	* kawa/lang/InPort.java (readState):  Changed to StringBuffer.
	isDelimiter, readNestedComment, readVector): New functions
	(skipWhitespaceAndComments): Handle nested comments.
	(readListBody): Update.  Use isDelimiter after dot.

Wed Jan 21 12:37:10 1998  Per Bothner  <bothner@cygnus.com>

	General cleanup of how Environments work, especially how they
	interact with Interpreters (i.e. Scheme) and Futures.
	* kawa/lang/Environment.java (global):  New static.
	(getCurrent, setCurrrent):  If current thread is not a Future,
 	get/set global, rather than Scheme.env.
	* kawa/lang/Future.java:  New constuctor, with given Environment.
	* kawa/lang/Interpreter.java (environ):  Make protected.
	(getEnvironment, setEnvironment):  New methods.
	(define, lookup):  Moved here from kawa/standard/Scheme.java.
	* kawa/standard/Scheme.java (builtin):  New static method.
 	(curEnvironment, setEnvironment, makeEnvironment):  Removed.
	(env):  Removed static field.
	(initcheme):  Use environ, in place of env.
	(constructor):  Re-write more cleanly.
	* kawa/standard/user_env.java:  Use Environment.user().
	* kawa/Shell.java (apply):  Set and restore current Environment.
	* kawa/repl.java (main):  Fix for new Scheme interface.
	* kawa/GuiConsole.java (constructor):  Add new Scheme environment
	to Future (instead of creating a new one).
	(main):  Update for new ENvironment conventions.	

	* kawa/{Makefile.am,Makefile.in} (SECONDARY_OBJS):
	Remove GuiConsole$$_MenuAction.class.
	* kawa/TextAreaWriter.java (write(String)):  New method.
	Insert at outputMark if writing to a MessageArea.
	* kawa/MessageArea.java (append):  Remove.
	(enter):  Nicer behavior.
	* kawa/GuiConsole.java:  More menu actions.  Various improvements.
	
Mon Jan 19 14:44:09 1998  Per Bothner  <bothner@cygnus.com>

	* configure.in:  Set version to 1.5.93.

	* kawa/lang/Compilation.java (mangleClassName):  Renamed to mangleName.
	* kawa/lang/LambdaExp.java:  Update.
	* kawa/lang/Declaration.java (constructor):  Set Variable.name to
	mangled name (with mangleName), while Declaration.sym is source name.

	* kawa/Shell.java:  Extend Procedure0, so it can be passed to Future.
	Add contsructur, various fields, and make methods non-static.
	Remove code now in Scheme (read and print methods).
	(run, runString)  Take Interpreter arguemnts, not Environment.
	* kawa/repl.java:  Update for new Shell.run interfaces.
	* kawa/{TextAreaWriter.java,GuiConsole.java,MessageArea.java}:
	New classes, for making a Frame with a repl.
	* kawa/Makefile.am:  Add new classes.
	
	* kawa/standard/load.java (loadSource):  Update for new Shell.run.

	* kawa/lang/Interpreter.java (read, print):  New abstract methods.
	* kawa/standard/Scheme.java (read, print):  New methods.
	(Scheme):  Support multiple instances and environments.
	(initScheme):  New method, created from Scheme constructor.
	Add port-char-encoding, copy-file, input-port-read-state.

	* kawa/lang/Expression.java (eval):  Make non-abstract.  Throw error.
	* kawa/lang/LetExp.java (eval):  Remove.

	* kawa/lang/LineBufferedReader.java (convertCR)  New field.
	(setConvertCR):  New method.
	(read):  Only squash CR and CRLF to LF if convertCR.
	* kawa/standard/{open_input_file.java,open_output_file.java}:
	Use port-char-encoding to select char conversion and text vs binary.

	* kawa/lang/OutPort.java (outDefault, setOutDefault, errDefault,
	setErrDefault):  Get/set thread-local port (in current Future).
	* kawa/lang/InPort.java (inDefault, setInDefault):  Likewise.

	* kawa/lang/QueueReader.java:  New class.

	* kawa/lang/TryExp.java:  Add code to implement try-catch.
	* kawa/lang/CatchClause.java:  New class, for try-catch catch clause.
	* kawa/lang/Makefile.am:  Add QueueReader and CatchClause.

	* kawa/lang/PrimProcedure.java (toString):  Added.
	(member):  New field.
	(applyN):  Implement (partially) using reflection.

Thu Jan 15 13:03:02 1998  Per Bothner  <bothner@cygnus.com>

	* kawa/lang/InPort.java (readState):  New field.
	(getReadState):  New method.  (Used by input-port-read-state.)
	(readList, readSchemeObject):  Set and restore readState.

Sat Jan 10 13:42:48 1998  Alcibiades Petrofsky <albatros@wco.com>

	* kawa/lang/Continuation.java:  Support multi-value continuation.

	Support full R4RS number syntax, including polar, plus infinity/NaN.
	* kawa/lang/InPort.java (readSchemeComplex):  New method.
 	(readSchemeNumber, readSchemeReal):  Re-write.
	* kawa/standard/string2number.java:  Update.

Sun Dec 14 22:42:44 1997  Per Bothner  <bothner@cygnus.com>

	* configure.in:  Set version to 1.5.92.
	* kawa/repl.java:  Define new variable symbol-read-case.
	* kawa/lang/InPort.java (getReadCase):  New function.
	(readSymbol):  Check value of getReadCase.
	* kawa/langEnvironment.java (user):  Now just returns value of current.
	
Sun Dec 14 16:12:19 1997  Per Bothner  <bothner@cygnus.com>

	* kawa/lang/*.java:  More updates for gnu.bytecode changes.
	* kawa/lang/Compilation.java (addClass):  Fix type of "this".
	* kawa/lang/Environment.java (current):  Renamed to getCurrent.
	(setCurrent):  New method.
	Various fixes to support per-thread environments.
	* kawa/lang/ModuleExp.java (eval_module):  Set and restore
	current Environment if we must compile.

	* kawa/lang/Expression.java (getType):  New method.
	* kawa/lang/TryExp.java:  New class, for try-finally expressions.
	* kawa/lang/Makefile.am:  Add TryExp.

	* kawa/standard/Scheme.java (setEnvironment):  New method.
	(Scheme):  Define dynamic-wind and fluid-let.
	* kawa/standard/try_finally.java:  New class which extends Syntax.
	* kawa/standard/Makefile.am:  Added try_finally.

	* kawa/standard/load.java (loadCompiled):  Update ZipLoaded constuctor.

Thu Nov 27 21:42:08 1997  Per Bothner  <bothner@cygnus.com>

	* kawa/lang/*.java:  Update for gnu.bytecode changes.
	(Mostly change Method.compile_xxx to CodeAttr.emitXxx.)
	* kawa/repl.java (checkInitFile):  Fix thinko (sense of test).
	On non-Unix-like system, read kawarc.scm instead of .kawarc.scm.

Wed Nov 12 22:25:56 1997  Per Bothner  <bothner@cygnus.com>

	* kawa/lang/ApplyExp.java (compile):  Fix typo.

Sat Nov  1 23:30:16 1997  Per Bothner  <bothner@cygnus.com>

	* configure.in:  Change version to 1.5.91.
	* */Makefile.am:  Add JCFLAGS.
	* configure.in, */Makefile.am:  Remove --with-jdk11 flag, and stuff
	that depends on it  Make the reflection stuff non-optional.
	
	* kawa/lang/Compilation.java (addClass):  Generate literals in
	<clinit>, not <init>.

	* kawa/stadard/Scheme.java:  Add environment-bound? and
	scheme-implementation-version from kawa.lib.misc.

	* kawa/lang/Compilation.java (compileConstant):
	Inlined call to Literal.compile.
	If value is String, just compile_push_string (if !immediate).
	(addClass):  Call method.initCode() - gnu.bytecode changed.
	* kawa/lang/Literal.java (compile):  Removed.
	(emit):  Handle Strings to always use CONSTANT_String.
	* kawa/lang/LambdaExp.java (compile):  Set type of this.
	* kawa/lang/SchemeLoader.java (loadClass):  Add extra name arg to
	defineClass call, to match new JDK1.1 non-deprecated interface.

Fri Sep 26 21:34:39 1997  Per Bothner  <bothner@cygnus.com>

	* kawa/lang/Symbol:  This is now a helper class, with no instances.
	Scheme symbols are now represented by java.lang.String objects.
	All methods are static.  Also, add some debugging utilities.
	* kawa/lang/Interpreter.java (trueObject, falseObject):
	Use Boolean.TRUE and Boolean.FALSE.
	* kawa/lang/PrimProcedure.java:  Update <symbol> to String.
	Add <function>.
	* kawa/*/*.java:  Change Symbol parameters and variables to String.
  	Remove duplicates methods.  Replace Symbol.make("xxx") by plain "xxx".
	* kawa/lang/Compilation.java:  Update replacing Symbol by String.
	* kawa/lang/Environment.java (remove(Binding)):  Fix bug when chained.
	(remove(String), remove(Object)):  New overloaded methods.
	* kawa/lang/SyntaxRule.java (indexOf):  New method.
	* kawa/lang/Translator.java (syntaxError):  Use OutPort.errDefault()
	instead of System.err.
	(current_decls):  Change from Hashtable to Environment.

	* kawa/standard/{substring,string_copy,string_fill_b}.java:
	Removed.  Replaced by kawa/lib/strings.scm.
	* kawa/standard/Makefile.am:  Removed old classes.
	* kawa/standard/Scheme.java:  Update for new string and symbol code.
	* kawa/standard/real_part.java:  Fix thinko.

	* kawa/lang/FString.java (fill):  New method.
	* kawa/lang/ApplyExp.java (compile):  Remove unused variable func_name.
	* kawa/lang/Nameable.java:  Removed - not used.
	* kawa/lang/OutPort.java (errInitial):  Set autoflush.
	(outInitial):  Initialize using System.out, not System.err.
	(setLogFile, closeLogFile):  New methods.
	* ALL/Makefile.in:  Re-generate using automake 1.2.

Wed Jul  2 16:26:35 1997  Per Bothner  <bothner@cygnus.com>

	* kawa/lang/*:  Change representation of (interned) Scheme symbols
	to interned java.lang.String.
	* kawa/standard/*, kawa/Shell.java:  Likewise.
	* kawa/lang/Interpreter.java (falseObject, trueObject):
	Use Boolean.FALSE and Boolean.TRUE.  Make static fields final.

Sun Jun 22 14:07:48 1997  Per Bothner  <bothner@cygnus.com>

	Use JDK1.1 I/O characters-oriented Reader/Writer classes.
	* kawa/lang/*.java (print):  Update .PrintStream -> PrintWriter.
	Update FileInputStream -> FileReader.
	* kawa/standard/*.java (print):  Likewise.
	* kawa/lang/LineBufferedReader.java:  New class extends FilterReader.
	* kawa/lang/InPort.java:  Much functionality now in LineBufferedReader.
	Use read instead of readChar.
	* kawa/lang/LogWriter.java:  New class - extends FilterWriter.
	* kawa/lang/Compilation.java (compileConstant):  Handle null.
	* kawa/lang/TtyInPort.java:  New class extends InPort.
	* kawa/lang/OutPort.java:  Now inherits from PrintWriter.
	* kawa/lang/SFormat.java:  Substantial re-write.

	* kawa/lang/PrimProcedure.java (getNamedType):  New worker function
	for string2Type.  Support RScheme/Dylan-style names (e.g. <symbol>).
	* kawa/lang/Translator.java:  Recognize <symbol> etc.
	* kawa/standard/Scheme.java:  Add new procedures.
	* kawa/standard/call_with_input_string.java:  Can now simplify.
	* kawa/standard/call_with_input_string.java:  Can now simplify.
	* kawa/standard/call_with_output_string.java:  Likewise.
	* kawa/standard/char_ready_p.java:  Handle both Reader and InputStream.
	* kawa/standard/readchar.java:  Likewise.

	* kawa/Shell.java (run):  New (overloaded) method.
	Re-write to new I/O implementation.  (Prompt handled by Reader itself.)
	* kawa/repl.java:  Re-write for new I/O.

Thu May 29 14:34:45 1997  Per Bothner  <bothner@cygnus.com>

	* kawa/standard/apply.java (applyN):  Generalize to general sequences.
	* kawa/standard/load.java.  Fix thinko.  (Reported by Jay Krell.)

	* kawa/lang/PrimProcedure.java (string2Type):  Handle array types.
	* kawa/lang/PrimApplyExp.java (compile):  Allow array return type.

Mon May 26 12:11:52 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* configure.in, configure (VERSION):  Set to 1.5.
	* **/Makefile.{am,in}:  Use CPASSPATH environment variable (which
	add to standard path), instead of -classpath (which replaces).
	* kawa/standard/load.java (loadSource):  Do fstream.close when done.
	(apply2):  Fix filenames.
	* kawa/standard/Scheme.java:  Add new functions from lib/files.scm.
	* kawa/repl.java:  Add support for home-directory, and reading
	init file from ~/.kawarc.scm.

Tue May 20 22:13:25 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/InPort.java (readOptionalExponent);  Handle sign.
	(readSchemeNumber):  Update Complex.imOne use from field to method.

Wed May  7 12:26:28 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/InPort.java:  Fix some problems in reading numbers.

Tue Apr  1 18:55:47 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/Compilation.java (mangleClassName):  Mangle common Scheme
	identifier chars more legibly.
	(generateClassName):  Except for the mainClass, use mainClass+'$'
	as classPrefix, a la JDK 1.1 Inner Classes.

	* kawa/standard/{cons,append,vector_v,vector_append}.java:
	Add import java.lang.Error to work around case-fold bug in
	JDK 1.0.2 in NT.

Mon Mar 31 16:56:50 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* configure.in (VERSION):  Change to 1.4.

	Move kawa.math to gnu.math.
	Update kawa.math -> gnu.math various places.
	* kawa/Makefile.{am,in} (SUBDIRS):  Remove math.

Tue Mar 25 15:27:34 1997  Per Bothner  <bothner@kalessin.cygnus.com>

	Move codegen to gnu/bytecode.
	Update for moved package codegen -> gnu.bytecode and new method names.

	* kawa/lang/Symbol.java (gentemp):  New method.
	* kawa/lang/DefMacro.java, kawa/lang/Makefile.am:  New Syntax class.
	* kawa/lang/Lambda.java:  Handle syntax errors better.
	* kawa/standard/Scheme.java:  Update for lib/syntax.scm additions.

Wed Mar 19 11:08:04 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/Shell.java (run):  Don't special case #!null result.
	* kawa/lang/PrimProcedure.java (<init>):  If opcode is invokeinterface,
	make classtype an interface.

Tue Mar 18 14:03:58 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* configure.in, configure:  Change VERSION to 1.3beta.

	* kawa/lang/AutuloadSyntax.java (load):   Make more robust.

	* kawa/standard/{greater_oper,greaterequal_oper,less_oper,
	lessequal_oper}.java:  Generalize from RealNum to Numeric.	
	* kawa/standard/equal_oper.java:  Use Numeric.compare, not equals.
	* kawa/standard/Scheme.java (define-unit):  Fix location.

Mon Mar 17 17:20:20 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* configure.in:  Add --with-jdk11 option.  Add new substitution
	variables JAVA, JAVAC, EXTRA_OBJ, EXTR_MISC, JAVA_VERSION.

	* kawa/lang/{PrimProcedure,PrimApplyExp}.java:  Generalize, for the
	sake of primitive-constructor and primitive-interface-method.
	* kawa/standard/prim_method.java:  Likewise.

	* kawa/lang/Keyword.java:  New class, for keyword values.
	* kawa/lang/Special.java:  New class, for special values.
	* kawa/lang/Symbol.java:  Add new static print method overloading.
	* kawa/lang/Sequence.java (eofValue):  Re-initialize as Special.eof.
	* kawa/lang/Values.java (empty):  New static field, for #!void.
	(print):  If printing Values.empty, print as #!void.
	(make):  If no values, return Values.empty.
	* kawa/lang/Interpreter (voidObject):  Redefine as Values.empty.
	(nullObject):  Removed.
	* kawa/lang/*.java:  Update Interpreter.nullObject -> List.Empty.
	* kawa/standard/{string2list,vector2list}.java:  Likewise.
	* kawa/lang/Translator.java (rewrite):  Treat null as any other
	literal value.  (Needed to make #!null work.)
	* kawa/lang/Char.java (charNames):  Make array of String, not Symbol.
	* kawa/lang/InPort.java (readSymbol):  Modify to recognize keywords.
	(readSpecial):  New function.
	(readCharacter):  Assume charNames is String array.
	* kawa/lang/SFormat.java (print):  Print null as #!null.
	Remove special handling for StringBuffer (no longer used for strings).
	
	* kawa/lang/LambdaExp.java:  Support more general formal parameter
	list (with DSSSL-inspired #!optional, #!rest or #!keyword).
	* kawa/lang/Compilation.java (addClass(LambdaExp,String)):  Likewise.

	* kawa/lang/{GetFieldProc,SetFieldProc,Record,RecordConstructor}.java:
	New classes for record feature.
	* kawa/lang/Makefile.{am,in}:  Update accordingly.
	
	* kawa/lang/{FString,Literal,SyntaxRule,SyntaxRules,Vector}.java:
	Update for renamed compile_invoke_nonvirtual -> compile_invoke_special.

	* kawa/langFString.java (print):  If !readable, just call
	PrintStream.print (to get better autoflush behavior).
	* kawa/lang/WrongArguments.java:  Simplify, make more robust.
	* kawa/lang/QuoteExp.java (falseExp):  New static field.

	* kawa/standard/ifp.java:  Make default else value be #!void.
	* kawa/standard/{eof_object_p,exit,make_string,newline,
	string_length}.java:  Removed - replaced by precedures in ../lib.
	* kawa/standard/error.java:  New procedure (from DSSSL).
	* kawa/standard/Scheme.java:  Update for new and moved procedures.
	* kawa/standard/Makefile.{am,in}:  Likewise update.
	* kawa/standard/values_v.java:  Use Values.make.
	
Sat Mar  8 11:00:24 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/LambdaExp.java (hasNestedScopes):  Removed.  Replaced by:
	* kawa/lang/ModuleExp.java (mustCompile):  New field.
	(eval_module):  Test mustCompile instead of hasNestedScopes.
	* kawa/lang/Translator.java (mustCompileHere):  New method.
	(rewrite_pair):  If we create a PrimApplyExp, call mustCompileHere.
	* kawa/lang/ScopeExp.java (push):  Re-implement - use mustCompileHere.
	* kawa/standard/Scheme.java:  Add define-unit.

Mon Mar  3 13:24:01 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/SetExp.java:  Add extra casts for multiple static links.

Tue Feb 11 20:06:49 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* configure.in (VERSION):  Set to 1.2.
	* Makefile.am (kawa-@VERSION@-compiled.zip):  New rule.

Tue Feb  4 22:16:51 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/Expression.java (Compile with Type):  Cast to
	boolean_type such that result is false iff arg is #f.
	* kawa/lang/PrimProcedure.java (getStaticFlag, getParameterTypes): New.
	* kawa/lang/Translator.java (rewrite_pair):  Use new methods
	(and don't crash on primitive-op1).	

Mon Feb  3 17:05:29 1997  Per Bothner  <bothner@kalessin.cygnus.com>

	* configure.in (VERSION):  Set to 1.2 beta.

	* kawa/repl.java:  Merge in kawac features.
	* kawac.java:  Remove - no longer needed.
	* Makefile.am:  Simplify, since we no longer have any .java files here.
	* kawa/Makefilea.am:  Make all-recursive depend on repl.class.

	* kawa/lang/Future.java (toString):  New.

	* kawa/lang/Translator.java (rewrite_pair):  Look for PrimProcedure.
	* kawa/lang/PrimApplyExp.java, kawa/lang/PrimProcedure.java,
	kawa/standard/prim_method.java:  New classes.
	* kawa/lang/Char.java (makeCharMethod):  Make public.
	(charValueMethod, initMakeMethods):  New methods.
	* kawa/lang/Expression.java (compile):  New overload - takes Type.

	* kawa/Shell.java (run):  Make prompt arg be String, not boolean.
	* kawa/{Shell,repl}.java, kawa/standard/load.java:  Update callers.

	* kawa/standard/{char2integer,char_downcase,char_lower_case_p,
	char_numeric_p,char_upcase,char_upper_case_p,char_whitespace_p,
	integer2char}.java:  Removed.  Superceded by ../lib/characters.scm.
	* kawa/standard/{list2vector,vector_length,vector_ref,
	vector_set_b,vector_v}.java:  Superceded by ../lib/vectors.scm.
	* kawa/standard/Scheme.java:  Update for new and moved methods.
	* kawa/standard/Makefile.am:  Update - mostly removed classes.

	* kawa/standard/negative_p.java:  Use isNegative rather than sign.

Sat Jan 25 12:00:08 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa.java:  Moved to kawa/repl.java.
	* doc:  New directory.  Moved documentation there.
	* Makefile.am, kawa/Makefile.am:  Updated.
	* kawa/Makefile.am:  Create kawa shell-script.
	* */Makefile.in: Update, using new automake version.

	* kawa/lang/Eval.java (eval):  Change back to public.
	* kawa/standard/Scheme.java (eval):  Update to changed Eval.eval.
	
	* kawa/lang/Translator.java (check_if_syntax, scan_body):  New methods.
	(rewrite_body):  Re-write to handle internal definitions.
	* kawa/standard/Scheme.java (beginSyntax, defineSyntax):  New statics.
	* kawa/standard/define.java (rewrite):  Re-structure, and
	handled internal definition as a set!.
	* kawa/lang/SyntaxRule.java (execute_template):  Don't fully rewrite.
	* kawa/lang/SyntaxRules.java (rewrite1):  New method.
	* kawa/lang/ScopeExp.java (countDecls):  New method.

	* kawa/standard/define_syntax.java:  Add rules to translation
	environment, so macro will work when compiling.
	* kawa/standard/load.java (loadSource):  Evaluate expressions
	one by one, so macros will work.
	* kawa/lang/Eval.java (eval):  Make private and add argument.
	* kawa/lang/Translator.java (currentScope, addGlobal):  New methods.

Tue Jan 21 18:12:53 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/standard/{make_polar,angle}.java:  New Procedures.
	* kawa/standard/Makefile.{am,in}:  Add make_polar and angle.
	* kawa/standard/Scheme.java:  Liekwise.  Add magnitude as abs synonym.
	* kawa/standard/{exp,expt,,log,sqrt}.java:  Re-implement.

	* kawa/lang/Pattern.java (match):  Change return type to boolean.
	* kawa/lang/{AnyPat,EqualPat,ListPat,ListRepeatPat,PairPat,
	VarListPat}.java (match):  Update return type and value.
	* kawa/lang/PairPat.java (car_count, cdr_count):  New fields.
	* kawa/lang/SyntaxRules.java (rewrite):  Change call to match.
	
Mon Jan 20 16:23:28 1997  Per Bothner  <bothner@kalessin.cygnus.com>

	* kawa/lang/Compilation.java:  Add new addClass overloading,
	based on the code from compilefunc.compile.
	* kawa/lang/LambdaExp.java:  Use Compilation.addClass.
	* kawa/lang/compilefunc.java:  No longer needed.

	* kawa/standard/callcc.java: Remove redundant cast.

	* kawa/lang/Future.java:  New class.
	* kawa/standard/force.java:  Handle Future as well as Promise.
	* kawa/standard/{make_future,sleep}.java:  New procedures.
	* kawa/standard/Scheme,java:  Add future, %make-future. and sleep.
	* kawa/{lang,standard}/Makefile.{am,in}:  Update as needed.

	* kawa/lang/InPort.java (readSchemeReal):  Only recognize
	exponent marker as such if followed by '+', '-', or digit.

Sun Jan  5 19:18:27 1997  Per Bothner  <bothner@deneb.cygnus.com>

	Create new Translator class from the rewrite-related methods and data
	in Interpreter, and create new Translator for each top-level ModuleExp.
	* kawa/lang/CompileFile.java (compile_to_files):  Return true
	if syntax errors seen.
	* kawa/lang/Translator.java:  New class, comtaining non-static data
	and rewrite-related methods from Interpreter.
	* kawa/lang/Environment.java (lookup_global,define_global):
	Moved here from Interpreter.
	* kawa/lang/Compilation.java (lookupGlobalMethod, defineGlobalMethod):
	Update accordingly.
	* kawa/lang/Interpreter.java: Only static fields and boolObject remain.
	* kawa/lang/LambdaExp (eval_module):  Moved to ModuleExp.
	* kawa/lang/ModuleExp.java (constructor):  Take extra filename arg.
	* kawa/lang/{AutoloadProcedure,AutoloadSyntax,CompileFile,Declaration,
	Eval,Expression,LambdaExp,Quote,ScopeExp,Syntax,SyntaxRule,SyntaxRules}
	.java, kawa/standard/{and_or,begin,define,define_syntax,ifp,let,letrec,
	load,quasiquote,set_b,syntax_error}.java, kawa/Shell.java:
	Update Interpreter -> Translator.
	Update statics in Interpreter to Scheme.
	* kawa.java, kawac.java:  Update.
	* kawa/standard/Scheme.java (makeEnvironment):  New function.
	(define,lookup,env):  Moved from Interpreter.

Fri Jan  3 17:35:43 1997  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/ModuleExp.java:  New class.
	* kawa/lang/Makefile.{am,in}:  Update accordingly.
	* kawa/lang/ModuleBody.java (env_formal, formals):  Moved to ModuleExp.
	* kawa/lang/LambdaExp.java (is_module_body):  Field removed.
	(isModuleBody):  Reimplement as instanceof ModuleExp.
	(setModuleBody):  Removed.
	(constructors):  Remove one, simplify another.
	* kawa/lang/{CompileFile,Eval}.java:  Create ModuleExp, not LambdaExp.
	* kawa/Shell.java (run):  Likewise.
	
	* kawa/lang/InPort.java (readSchemeReal):  New.
	(readSchemeNumber):  Re-write.  Add support for complex and units.
 	(readAlphaWord, readOptionalExponent):  New helper methods.

	* kawa/standard/equal_oper.java:  Just use equals method.
	* kawa/standard/expt.java:  Use new Numeric.power(IntNum) virtual.
	* kawa/standard/integer_p.java:  Handle integral DFloNum.

	* kawa/standard/{complex_p,imag_part,make_quantity,make_rectangular,
	quantity2number,quantity2unit,quantity_p,real_part}.java:  New.
	* kawa/standard/{Makefile.{am,in},Scheme.java}:  Update accordingly.

Sun Dec 15 22:29:30 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* configure, configure.in:  Support new testsuite directory.
	* Makefile.{am,in} (SUBDIRS):  Add new testsuite directory.

	* kawa/standard/{ceiling,floor,round,truncate}.java:  Use new
	RealNum.toInt virtual method.	
	* kawa/standard/inexact2exact.java:  Use new RealNum.toExact.

	* kawa/standard/rationalize.java:  New procedure.
	* kawa/standard/{Makefile.{am,in},Scheme.java}:  Update accordingly.

Fri Dec 13 15:57:47 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/Environment.java (define):  New overloaded method.
	* kawa/lang/Interpreter.java (rewrite_body):  Use List.list_length.

	* kawa/lang/InPort.java (read):  Catch IOException from in.available.
	(Needed on some Java implementations.)
	(readSymbol, readSchemeNumber, readSchemeObject):  Provide and use
 	overloaded versions that are passed next character, avoiding backup.
	(readString):  Handle C-style and Java-style escapes.
	(readListBody):  New, re-written from readList, with new interface.
	* kawa/lang/CompileFile.java (read):  Use InPort.readListBody.
	* kawa/lang/LambdaExp.java:  New constructor for ModuleBody,
	* kawa/lang/Eval.java (eval):  New overloaded versions.

	* kawa/standard/{bit_extract.logand,logbit_p,logcount,logior,lognot,
	logop,logtest,logxor}.java:  New procedures.
	* kawa/standard/{Makefile.am,Makefile.in,Scheme.java}:  Update.

	* kawa/standard/expt.java:  Simplify - use RatNum.power.
	* kawa/standard/eqv_p.java (eqv_p):  Rename to isEqv.
	* kawa/standard/exact2inexact.java:  Use RealNum.doubleValue,

Sun Nov 24 13:04:49 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/SFormat.java:  New class.
	* kawa/lang/print.java:  Moved print to SFormat.  Removed.
	* kawa/lang/Makefile.{am,in}:  Update accordingly.
	* kawa/lang/{Equalpat,LambdaExp,ListRepeatPat,OutPort,Pair,PairPat,
	Promise,QuoteExp,ReferenceExp,SetExp,SyntaxRule,SyntaxRules,Values,
	Vector}.java, kawa/Shell.java:  Replace print.print by SFormat.print.

Wed Nov 20 23:02:32 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/InPort.java (available):  Handle IOException.

	* kawa/lang/InPort.java (readSchemeNumber):  Handle fraction.
	
	* kawa/standard/int_length.java:  New procedure and class.
	* kawa/standard/length.java:  Remove length method (using
	method with same name as class confuses J++).
	* kawa/lang/Interpreter.java:  Change length.length to List.length.
	* kawa/standard/{apply,length,let,letrec}.java:  Likewise.	
	* kawa/standard/values.java:  Rename to values_v to avoid case problem.
	* kawa/standard/{Scheme.java,Makefile.{am,in}}:  Update.

Sat Nov 16 15:08:42 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/compilefunc.java (compile):  Only compile_return
	if reachableHere ().
	* kawa/lang/IfExp.java (compile):  Use new Method methods for
	IfState:  compile_ifneq, compile_else, compile_fi.

Mon Nov  4 16:07:08 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/standard/{eq_p,eqv_p,equal_p,list_p,symbol2string}.java:
	Remove redundant name qualification (which J++ complains about).
	Remove constructors.  Generally remove verbosity.
	* kawa/standard/equal_p.java (equal_p):  Remove.
	(J++ thinks static method is constructor.)
	* kawa/standard/Scheme.java:  Don't depend on eq_p.name etc.
	* kawa/lang/EqualPat.java (match):  Remove use of equal_p.equal_p.

Thu Oct 24 12:39:52 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/standard/list.java:  Renamed to list_v to avoid problems
	on case-insenstive filesystems.
	* kawa/standard/{Scheme.java,Makefile.{am,in}}:  Update accordingly.

Tue Oct 22 23:14:49 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* configure.in (VERSION):  Set to 1.1alpha.

	* kawa/standard/letstar.java:  Removed.
	* kawa/standard/Scheme.java:  Update syntax class names.
	* kawa/standard/Makefile.{am,in}:  Update accordingly.

Mon Oct 21 12:58:17 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/Shell.java (runFile):  Re-write to call load.loadSource.
	This forces compilation, which has better line number support.
	Also rmeoved unused formal parameters.
	* kawa.java:  Update for new Shell.runFile calling convention.

	* kawa/standard/Scheme.java:  Update string -> string_v.

	* kawa/lang/FString.java:  New file.  Replaces uses of StringBuffer.
	* kawa/lang/Makefile.{am,in}:  Add FString.class.
	* kawa/lang/InPort.java (readString):  Return FString not StringBuffer.
	* kawa/lang/Literal.java (emit):  Remove StringBuffer support.
	* kawa/lang/Compilation.java:  Likewise.

	* kawa/lang/Sequence.java (eofValue):  New static.
	* kawa/lang/Interpreter.java (eofObject):  Removed.
	* kawa/lang/Compilation.java (scmSequenceType):  Added.

	* kawa/lang/Compilation.java (mangleClassName): Handle general Unicode.
	
	* kawa/Shell.java, kawa/lang/{CompileFile,InPort}.java,
	kawa/standard/{eof_object_p,load,readchar}.java:
	Update Interpreter.eofObject -> Sequence.eofValue.

	* kawa/standard/{string_ci_equal_p,string_ci_greaterequal_p,
	string_ci_greaterthan_p,string_ci_lessequal_p,string_ci_lessthan_p,
	string_copy,string_equal_p,string_greaterequal_p,string_greaterthan_p,
	string_lessequal_p,string_lessthan_p,with_input_from_file,
	with_output_to_file}.java:  Remove StringBuffer coercion.
 	This makes the code more general, efficient, and handles FString.

	* kawa/standard/{call_with_input_file,call_with_output_file,
	call_with_output_string,list2string,make_string,number2string,
	open_input_file,open_output_file,string2list,string2symbol,
	string_append,string_fill_b,string_length,string_p,string_ref,
	string_set_b,string_v,substring,symbol2string}.java:
	Update from StringBuffer to FString for Scheme string values.
	* kawa/lang/CompileFile.java:  Likewise.

Fri Oct 18 14:06:40 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/Environment.java:  Rewrite.
	Remove stuff for lexical scopes.
	Make into first-class object like Dictionary, but with "inheritance."
	* kawa/lang/{Binding,Location}.java:  New classes.

	* kawa/lang/Declaration.java (getvalue, getframe, setvalue):
	Remove - eval no longer deal with lexical scoping.
	* kawa/lang/LambdaExp.java (hasNestedScopes):  New field.
	(compile_setLiterals):  No longer needs to worry about a static
	link in outer-most lambda from evaluated LetExp.
	* kawa/lang/LetExp.java (eval):  Just throw exception.
	* kawa/lang/SetExp.java (eval):  Now only handle top-level names.
	* kawa/lang/ScopeExp.java (eval):  Likewise.
	* kawa/lang/ReferenceExp.java (eval):  Likewise.
	(compile_load):  Use recursive compile_load for staticLink.

	* kawa/lang/ModuleBody.java:  New abstract interface, using run.
	* kawa/lang/LambdaExp.java (<init>):  Support ModuleBody interface.
	(eval_module):  New interface (pass Environment).
	* kawa/lang/CompileFile.java (read):  New interface to set modulebody.
	* kawa/lang/compilefunc.java:  ModuleBody now takes Environment.
	* kawa/lang/{AutoloadProcedure,AutoloadSyntax}.java:  Update likewise.
	* kawa/standard/load.java, kawa/Shell.java:  Likewise.

	* kawa/lang/{Lambda,LambdaExp,Quote}.java, kawa/standard/{and_or,
	begin,define,define_syntax,ifp,let,letstar,letrec,quasiquote,set_b,
	syntax_error}.java:
	Replace throw new WrongArguments by return interp.syntaxError.
	* kawa/standard/letstar.java: Remove a pointless use of VarListPat(1).
	* kawa/lang/Syntax.java (rewrite):  No longer throws WrongArguments.
	* kawa/lang/Interpreter (rewrite*):  Likewise.
	* kawa/lang/AutoloadSyntax (load etc):  Likewise.

	* kawa/lang/SyntaxRule.java (2-arg execute_template):  Do rewrite here,
	and thus return an expression instead of an Object.
	* kawa/lang/SyntaxRules.java (rewrite):  Therefore do not rewrite here.
	
	* kawa/standard/StandardInterpreter.java:  Renamed to Scheme.java.
	* kawa/standard/ashift.java:  New function (arithmetic-shift).
	* kawa/standard/not.java:  Fix broken semantics (required Boolean).
	* kawa/standard/{string,vector}.java:  Renamed to string_v.java and
	vector_v.java to avoid confusion on case-insensitive filesystems.
	* kawa/standard/quasiquote.java:  Update accordingly.
	* {kawa,kawac}.java:  Update StandardInterpreter->Scheme.
	
	* kawa/lang/Interpreter.java (curEnvironment):  New [temporary] method.
	(rewrite_pair):  Deal with hygiene Symbol in current_decls.
	* kawa/lang/Eval.java:  New class, for "eval" function.
	* kawa/lang/Makefile.{am,in}:  New files Location, Binding, Eval.

	* kawa/standard/{scheme_env,null_env,user_env}.java:  New classes.
	* kawa/standard/Makefile.{am,in}:  Update accordingly.

	* kawa/lang/InPort.java (readSchemeNumber):  Make more robust.
	* kawa/standard/string2number.java:  On ReadError, return #f.
	* kawa/lang/Pair.java (pair):  Remove redundant call to super.

	* kawa/lang/Compilation (findLiteral):  Never allocate a field
	for a String - more efficient to just use a CONSTANT_String.
	* kawa/lang/Literal.java (emit):  String is never ALLOCATED now.

Mon Sep 16 11:04:28 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* configure.in (VERSION):  Set to 1.0.  (Yeah!)
	* Makefile.{am,in}:  Add rule to make kawa.html and include it in dist.
	* Makefile.{am,in} (EXTRA_DIST):  Add license.terms and scm2java.html.
	* scm2java.html:  Warn that it is not current, and fix some typos.

	* kawa/standard/{floor,ceiling,truncate,round}.java:  Handle IntNum.
	* kawa/standard/{lcm,max,min,modulo,quotient,remainder}.java:  New.
	* kawa/standard/{StandardInterpreter.java,Makefile.{am,in}}:  Update.

Sun Sep 15 11:07:48 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* **/Makefile.{am,in}: (javadir):  Use $(subdir)
	{DEP_,}DISTFILES):  Do not include DATA (i.e. *.class).
	Replace generated EXTRA_DIST with ditto SOURCES.
	* kawa/Shell.java:  Less verbose error messages.
	* kawa/standard/{gcd,string2number,call_with_output_string}.java:  New.
	* kawa/standard/{StandardInterpreter.java,Makefile.{am,in}}:  Update.
	* CompileFile.java (read):  Take Environment, not Interpreter.
	Add overloaded method that uses an InPort.
	* kawa/lang/Environment.java (getInterpreter):  New method.
	* kawa/lang/InPort.java (throws clauses): ReadError -> SyntaxError.
	* kawa/lang/InPort (readNumber -> readSchemeNumber): Make more general.
	* kawa/lang/LambdaExp.java (fileFunctionName):  New static field.
	* kawa/lang/Named.java:  Don't implement no-longer-existing Nameable.
	* kawa/lang/ReadError.java:  Change so getMessage gets raw message,
	* kawa/lang/SetExp.java (compile):  Do maybe_compile_checkcast.
	* kawa/lang/SyntaxError.java:  Removed.
	* kawa/lang/UnboundSymbol.java: Call super so getMessage works.
	
Fri Sep 13 14:27:31 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* configure{.in,}:  Update to version 0.5.
	* kawac.java (main):  Allow infile to follow switches.
	* kawa.texi:  Use VERSION macro.
	* mdate-sh, version.texi:  New files, needed for VERSION macro.

	* kawa/standard/{ceiling,exact2inexact,floor,inexact2exact,
	round,truncate}.java:  More standard Scheme functions.
	* kawa/standard/{StandardInterpreter.java,Makefile.{am,in}}:  Update.
	* kawa/lang/Continuation.java:  Improve error message.
	* kawa/lang/Interpreter.java (read):  Removed.
	* {,kawa/{,lang/,math/,standard/,lib/}}Makefile.{am,in}: Fix
	javac classpath so both build and source directories are searched.
	Do not change directory (which confuses make and is not needed).
	
Fri Sep 13 08:21:33 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/standard/call_with_input_string.javaL  New class.
	* kawa/standard/{StandardInterpreter.java,Makefile.{am,in}}:  Update.
	* kawac.java, kawa/Shell.java:  Don't use old GenericError.message.

	* kawa.java:  Re-write to do options processing.
	* kawa/Shell.java:  Remove constructor.  Make run method static.
	(runString, runFile):  New static methods.
	* kawa.texi:  New documentation file.
	* texinfo.tex:  New support file, needed for kawa.texi.
	* Makefile.{am,in}:  Update for kawa.texi.

Thu Sep 12 16:22:47 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/Literal.java:  Make flags public.
	(emit):  Do flags|=ALLOCATED|INITIALIZED when done, so
	class-specific code does not have to.
	* kawa/lang/{AnyPat,Char,EqualPat,ListRepeatPat,Literal,Pair,PairPat,
	Symbol,SyntaxRule,SyntaxRules,Vector}.java: Remove now-redundant
	setting of Literal.flags.
	* kawa/lang/InPort.java (readNumber):  Only recognize float if decimal.
	Return new kawa.math.IntNum and kawa.math.DFloNum object.
	* kawa/lang/Environment.java (frames, lookup):  Removed - unsued.
	* kawa/lang/Interpreter.java:  Remove unused eval functions.
	Define quote and lambda in StandardInterpreter, not here.
	* kawa/lang/Procedure1or2.java:  Add default constructor.
	* kawa/{,lang,standard,lib}/Makefile.{am,in}:  Add EXTRA_DIST rule.
	Use $*.java instead of possibly-less-portable $(<F).
	* kawa/Makefile.{am,in} (SUBDIRS):  Add math sub-directory.
	* kawa/configure{.in,} (AC_OUTPUT):  Add kawa/math/Makefile.

	* kawa/standard/*.java:  Update to use new Numeric classes.
	* kawa/standard/{acos,asin,atan,cos,denominator,even_p,exact_p,
	exp,expt,inexact_p,log,number2string,odd_p,rational_p,sin,sqrt,
	tan}.java:   New classes for number functions.
	* kawa/standard/Makefile.{am,in} (OBJ):  Add new classes.

Sun Sep  8 21:23:33 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* configure.in (VERSION):  Set to 0.4.
	* {,kawa/,kawa/lang/,kawa/standard/}Makefile.{am,in} (JAVA):
	Fix -classpath argument.
	* kawa/lang/GenericError.java:  Fix to pass message to super.
	* kawa/lang/InPort.java (skipWhitespaceAndComments, readList):
	Handle unexpected EOF.
	* kawa/lang/LambdaExp.java (eval):  Mangle class name.
	* kawa/lang/Compilation.java (mangleClassName):  New function.
	(generateClassName):  Use it.
	* kawa/lang/Makefile.{am,in}:  Add Promise.class.
	* kawa/lang/Promise.java:  New class for Scheme promise objects.
	* kawa/lang/SyntaxRule.java (translate_template):  Don't
	rename identifiers inside quote or quasiquote.
	* kawa/lang/SyntaxRules.java (init):  Mark linenumber info.
	* kawa/standard/cond.java:  Removed.  (Replaced by ../lib/cond.scm.)
	* kawa/standard/Makefile.{am,in}:  Add new classes.  Remove cond.
	* kawa/standard/StandardInterpreter.java:
	Use macro version of cond and let from ../lib.
	Add new functions and macros.
	* kawa/standard/cxr.java:  Fix bugs that trashed fields.
	* kawa/standard/{force,make_promise}.java:  New Procedure1 classes.
	* kawa/standard/syntax_error.java:  New syntax.

Sat Sep  7 12:11:18 1996  Per Bothner  <bothner@deneb.cygnus.com>

	Mostly fixes to improve stack traces.
	* kawa/lang/Compilation.java (source_filename):  New field.
	(constructors):  Set source_filename from LambdaExp filename.
	(addClass):  Set ClassType sourcefile from source_filename.
	* kawa/lang/CompileFile.java (read):  Set filename of LambdaExp.
	* kawa/lang/{Expression,PairWithPosition}.java:  Make methods public.
	* kawa/lang/Expression.java (compile_with_linenumber):  New method.
	* kawa/lang/{BeginExp,IfExp,LetExp,compilefunc}.java (compile):
	Use compile_with_linenumber to emit line numbers where appropriate.
	* kawa/lang/LambdaExp.java (eval):  Set classname from function name.
	Set function name using named.setName.
	* kawa/lang/Literal.java (constructor):  Set default type to Object.
	(compile):  Do a cast if needed.
	* kawa/lang/compilefunc.java (compile):  Do not set name
	(apply2):  Remove.  No longer extend Procedure2.
	* kawa/standard/define.java (rewrite):  Set line number info.
	* kawa/Shell.java (run):  Do printStackTrace on exception.
	
	* kawa/lang/LambdaExp:  Always compile.  Remove doCompile field.
	* kawa/lang/LambdaProcedure.java:  Remove.  Never used.
	* kawa/lang/Makefile.{am,in}:  Remove LambdaProcedure.class.

	Implement quasi-quoatation (backquote):
	* kawa/standard/vector_append.java:  New ProcedureN.
	* kawa/standard/{append,cons,vector}.java:  Allocate a new Procedure
	of this type.  This is so quasiquote can access these standard
	functions by value (not name).  Also implement Compilable.
	* kawa/standard/quasiquote.java:  New primitive syntax.
	* kawa/standard/StandardInterpreter.java:  Add quasiquote,
	vector-append.  Change cons, append, vector to use static procs.
	Remove non-working compile-func.
	* kawa/standard/Makefile.{am,in}:  Add quasiquote, vector_append.

Thu Sep  5 00:00:13 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/standard/{abs,append,apply,char_ci_greater_equal_p,
	char_ci_greater_p,char_ci_less_equal_p,char_ci_less_p,char_equal_p,
	char_greater_equal_p,char_greater_p,char_less_equal_p,char_less_p,
	char_ready_p,define,equal_oper,greater_oper,greaterequal_oper,
	less_oper,lessequal_oper,list_ref,list_tail,load,make_string,
	make_vector,minus_oper,multiply_oper,negative_p,newline,not,
	plus_oper,positive_p,read,reverse,setcar_b,setcdr_b,string,
	string2symbol,string_length,string_ref,string_set_b,symbol2string,
	vector_length,writechar,zero_p}.java:  Update to use Named.name().

	* kawa/standard/{car,cdr}.java:  Named.name is now a method.
	* kawa/standard/cxr.java:  New class.  Generalization of c[ad]*r.
	* kawa/standard/caaaar,caaadr,caaar,caadar,caaddr,caadr,caar,cadaar,
	cadadr,cadar,caddar,cadddr,caddr,cadr,cdaaar,cdaadr,cdaar,cdadar,
	cdaddr,cdadr,cdar,cddaar,cddadr,cddar,cdddar,cddddr,cdddr,cddr}.java:
	Removed - superseded by cxr.java.
	* kawa/standard/{StandardInterpreter,Makefile.{am,in}}:  Update.

Wed Sep  4 13:43:32 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/CompileFile.java (compile_to_files):  New function,
	to compile to one or more source files.

	* kawa/lang/SchemeLoader.java:  Zip archive support moved
	to codegen/ZipArchive.java.
	* kawa/lang/compilefunc.java:  Maybe compile to ModuleBody.

	* kawa/lang/{SyntaxRuleSyntaxRules}.java:  New classes, to support
	define-syntax/syntax-rules (R5RS hygienic top-level macros).

	* kawa/lang/AutoloadProcedure.java (name):  Replace by super.name().
	(load) Support autoloading an entire module.
	* kawa/lang/AutoloadSyntax.java:  New class, to autoload macros.

	* kawa/lang/{Nameable,Named}.java:  Store a symbol, not a String.
	(name):  Change from String field to Symbol-returning method.
	* kawa/lang/{Procedure,Procedure0,Procedure1,Procedure2,Procedure3,
	Procedure4,Procedure0or1,Procedure1or2,Interpreter,LambdaProcedure,
	Syntax,compilefunc}.java:  Update to use Named.name().
	* kawa/lang/Compilation.java (nameField):  Update name and Type.
	* kawa/lang/ProcedureN.java:  Add Symbol-taking constructor.
	* kawa/lang/LambdaExp.java (name):  Change from String to Symbol.
	* kawa/lang/LambdaProcedure.java (constructor):  Name is now Symbol.
	* kawa/lang/compilefunc.java (compile):  Name is now a Symbol.

	* kawa/lang/Syntax.java (print):  New method to implement Printable.
	* kawa/lang/UnboundSymbol.java:  Store a Symbol rather than a String.
	* kawa/lang/ReferenceExp.java (eval):  Update for UnboundSymbol fix.
	* kawa/lang/LambdaExp.java (is_module_body):  New field,
	(isModuleBody,setModuleBody):  New methods.

	* kawa/lang/Procedure.java:  No longer implement Executable.
	(execute):  Remove obsolete interface.

	* kawa/lang/Interpreter.java (quasiquote,unquote, unquotesplicing):
	Remove unused fields.
	* kawa/lang/Interpreter.java (resolve):  Add extra argument
	so caller can do current_decls.get and test for renamed global.

	* kawa/lang/ReadError.java:  Include line number info in error message.
	* kawa/lang/Interpreter.java (rewrite_car, rewrite_pair_with_position,
	rewrite_pair):  New functions to rewrite with line numbers.
	(syntaxError):  Report filename and line/column position.
	* kawa/lang/Expression.java (filename, position):  New fields.
	(setFile, setLine, getFile, setFule, getColumn):  New methods.

	* kawa/lang/Pattern.java (match):  New abstract calling interface.
	(varCount):  New abstract method.
	* kawa/lang/{EqualPat,ListPat,VarListPat}.java (match):
	Change to match new interface.  Implement varCount.
	* kawa/lang/EqualPat.java (makeLiteral, emit):  Implement Compilable.
	* kawa/lang/{AnyPat,ListRepeatPat,PairPat).java:  New Pattern classes.

	* kawa/lang/ModuleBody.java:  New sub-class of Procedure0.
	* kawa/lang/ErrorExp.java (compile):  Fix reversed test.

	* kawa/lang/InPort.java:  Keep track of line and column position.
	Supports marks and reset.
	(readQuote):  Generalize with extra argument.
	(readQuasiQuote):  Superseded by generalized readQuote.

	* kawa/lang/Literal.java (emitArray):  New method.
	(emit):  Support (Object[]), (Symbol[]), (String) type literals.
	(check_cycle):  New method.
	* kawa/lang/{WrongArguments,WrongType}.java:  Add Symbol-taking init.
	* kawa/lang/IfExp.java (eval,compile): Missing else returns voidObject.
	* kawa/lang/print.java (print):  Handle (int[]).

	* kawa/lang/Compilation (emitLiteral):  New method.
	(scmPatternType,symbolArrayType,scmNamedType,nameField):  New statics.
	(findLiteral):  Handle Object[] values.
	(findNamedClass, generateClassName, constructor):  New methods.
	* kawa/lang/LambdaExp.java (compile):  Use new generateClassName.
	(eval):  Use more natural class names.
	* kawa/lang/Vector.java (findLiteral):
	Simplify by using new support for emitting Object[] values.
	* kawa/lang/{Pair,Vector}.java (emit):  Use new emitLiteral method.
	* kawa/lang/PairWithPosition.java:  New class extends Pair.
	
	* kawa/lang/{Executable,Syntaxable,QuasiQuote,Unquote,
	UnquoteSplicing}.java:  Remove obsolete classes.
	* kawa/lang/Makefile.{am,in}:  Update for new and removed classes.

	* kawa/standard/{begin,cond,define,ifp,let,letrec,letstar,set_b}.java:
	Remove print method.  No longer needed.
	* kawa/standard/{apply,boolean_p,procedure_p}.java:
	Remove non-default constructor.  Name binding handled by autoload.
	* kawa/standard/{ass,mem,readchar,write}.java: Use new Named.name().
	* kawa/standard/define.java (rewrite):  Call setName with Symbol.
	* kawa/standard/define_syntax.java:  New class - hygienic macros.

	* kawa/standard/StandardInterpreter.java (define_syntax): New function.
	(constructor):  Add new macros.  Some cleanup here and there.
	* kawa/standard/load.java (loadClassFile):  New function.
	(apply1):  Also support loading from a .class file.
	* kawa/standard/{unless,when}.java:  Replaced by lib.when_unless.
	* kawa/standard/Makefile.{am,in}:  Update.  Fix SUFFIXES.

	* kawa/lib:  New directory.
	* kawa/Makefile.{am,in}:  Add lib to SUBDIRS.

	* configure{.in,} (AC_OUTPUT):  Add kawa/lib/Makefile.
	* kawac.java:  New application class.
	* Makefile.{am,in}:  Build kawac.class.  Fix SUFFIXES.

Tue Aug 20 13:59:36 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/Values.java:  New class.
	* kawa/standard/{values,call_with_values}.java:  New functions.
	* kawa/standard/StandardInterpreter.java:  Define new functions.
	* kawa/{lang,standard}/Makefile.{am,in}:  Add new classes.

	* kawa/standard/and_or.java:  Do setSimple on temp if top-level.


Sat Jul 20 11:25:05 1996  Per Bothner  <bothner@deneb.cygnus.com>

	Make kawa-0.3 release.

	* configure.in, configure (AC_INIT):  Look for kawa.java now.
	* kawa/Shell.java:  Re-structure.

	* kawa/standard/{and,or}.java:  Remove old-style implementations.
	* kawa/standard/{and_or,with_output_to_file}.java:  New classes.
	* kawa/standard/{StandardInterpreter.java,Makefile.{am,in}:  Update.
	
	* kawa/standard/{let,letstar,letrec,set_b}.java (rewrite):
	Call Declaration.noteValue.
	* kawa/standard/minus_oper.java (applyN):  Fix sign/logic error.
	
	* kawa/lang/Interpreter.java (apply):  Remove obsolete method.
	(lookup_global):  Fix typeo.

	Implement tail-recursion-elimination (and fix more bugs).
	* kawa/lang/Expression.java (compile):  Changed to take flag mask
	instead of boolean. Added IGNORED and LAST.
	* kawa/lang/{ApplyExp,BeginExp,ErrorExp,IfExp,LambdaExp,LetExp,
	QuoteExp,ReferenceExp,SetExp}.java:  Update definitions and
	uses of compile methods accordingly.
	* kawa/lang/IfExp.java (compile): Only goto end_label if reachableHere.
	* kawa/lang/ApplyExp.java (compile):  Check for and optimize
	tail-recursion.
	* kawa/lang/LambdaExp.java (argsArray): New, replaces local array_args.
	* kawa/lang/LambdaExp.java:  Call noteValue appropriately,
	* kawa/lang/LambdaExp.java (getArgs):  New method.
	* kawa/lang/LetExp.java (print):  Deal with artificial Variables.
	* kawa/lang/QuoteExp.java (undefined_exp):  New static field.

	* kawa/lang/Declaration.java (value):  New field.
	(noteValue):  New method.

	* kawa/lang/compilefunc.java (compile):  Set start_label.
	
	* kawa/lang/Compilation.java:  Make int1Args a field, not a local.

	* kawa/standard/exit.java:  Take optional status.  Call System.exit.
	* kawa/lang/Exit.java:  Removed.  No longer needed.
	* kawa/lang/{Makefile.am,Makefile.in}  Remove Exit.class.
	
	* kawa/lang/ScopeExp.java (assign_space):  If outside any lambda,
	make all variables non-simple (and allocate a heapFrame).
	
	* kawa/lang/Named.java:  Don't make pointless copy of name.
	* kawa/lang/Procedure.java:  Deafult is name is now null.
	* kawa/lang/Procedure0or1.java:  Add default constructor.
	* kawa/lang/AutoloadProcedure.java (load):  If we have a name but
	the loaded Procedure has none, use the former for the latter.
	* kawa/standard/{plus_oper,minus_oper,multiply_oper,divide_oper).java:
	Remove constructor.  Naming is handled by autoloader.

Sat Jul 20 17:40:46 1996  Anthony Green  <green@csk3.cygnus.com>

	* */Makefile.am, */Makefile.in: srcdir is no longer 
	forced to be at the same level as build dir.

Fri Jul 19 14:55:52 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/standard/{call_with_input_file,call_with_output_file,
	char_ready_p,current_input_port,current_output_port,
	with_input_from_file}.java:  New functions.
	* kawa/standard/{StandardInterpreter.java,Makefile.{am,in}:  Update.

Thu Jul 18 15:04:46 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/Literal.java (emit):  Fix StringBuffer init invocation.
	* kawa/lang/Vector.java:  Add makeLiteral, print; implement Compilable.

	* kawa/standard/string{,_ci}_{greater,less}thanequal_p.java:
	Rename to avoid the redundant "than".
	* kawa/standard/{string_fill_b,vector_fill_b,vector_set_b}.java:
	Return Interpreter.voidObject.
	* kawa/standard/string_append.java:  Allow 0 arguments.

	* kawa/standard/{setcar_b,setcar_b).java:  Return voidObject.
	* kawa/standard/{car,car).java:  Fix exception message.
	* kawa/standard/list_ref.java:  Fix typo.
	
	* kawa/{char2integer,char_alphabetic_p,char_downcase,
	char_lower_case_p,char_numeric_p,char_upcase,char_upper_case_p,
	char_whitespace_p,integer2char}.java:  Add remaining char functions.
	* kawa/standard/reverse.java:  Add last missing list function.
	* kawa/standard/{StandardInterpreter.java,Makefile.{am,in}:  Update.

	* kawa/lang/InPort.java:  Fix mis-reading of ,@ (unquote-splicing).
	(readUnquoteSplicing,readUnquote):  Inline single calls, and remove.

	* kawa/lang/Symbol.java (print):  Slashify if printReadable.
	* kawa/lang/Char.java:  Add makeLiteral, print;  implement Compilable.
	* kawa/lang/CompileFile.jave:  Don't add redundant .zip extension.

Wed Jul 17 20:34:37 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/Shell.java:  Don't exit if eval returns #<eof>.

	* kawa/lang/{InPort,OutPort}:  Add name field.
	Add print methods and implement Printable.

	* kawa/lang/Compilable.java (makeLiteral):  New method.
	* kawa/lang/{Pair,Symbol}.java:  Implement makeLiteral.
	* kawa/lang/Compilation.java:  Use makeLiteral if value is Compilable.
	* kawa/lang/Interpreter.java (eofObject):  Change print-name.

Wed Jul 17 19:34:00 1996  R. Alexander Milowski <sgml@winternet.com>

	* kawa/standard/{char_ci_equal_p,char_ci_less_p,char_ci_less_equal_p,
	char_ci_greater_p,char_ci_greater_equal_p,
	input_port_p,output_port_p,open_input_file,open_output_file,
	close_input_file,close_output_file}.java:  New Scheme procedures.
	* kawa/standard/{StandardInterpreter.java,Makefile.{am,in}:  Update.

Tue Jul 16 23:23:16 1996  Per Bothner  <bothner@deneb.cygnus.com>

	Lots of fixes and improvements, mostly compiler-related.
	* kawa/lang/Compilable.java:  New interface.
	* kawa/lang/Pair.java:  Implement emit method; Compilable interface.
	* kawa/lang/Symbol.java:  Likewise.
	* LetExp.java (eval):  Update for space_needed->frameSize; heapFrame.
	(compile):  Don't do redundant add_var's.
	* SchemeLoader.java:  Support loading classes form a ZipArchive.
	* kawa/lang/Interpreter.java (lookup_global, define_global):
	Now take Symbol rather than String.
	(resolve):  Do decl.setSimple(false) also for top-level lexical defs.
	* kawa/lang/LambdaExp.java:  Move heapFrame and heapSize to ...
	* kawa/lang/ScopeExp.java:  ... here.  Rename heapSize -> frameSize.
	(assign_space):  Fix for non-function lexical scope.
	(space_needed):  Removed, subsumed by frameSize.
	* kawa/lang/LambdaExp.java (compile_setLiterals):  New method.
	* kawa/lang Compilation.java:  New constructor interface.
	Many new pre-defined ClassTypes, Methods, Fields.
	(findLiteral):  New recursive function.
	* CompileFile.java:  New class - read and compile an entire file.
	* kawa/lang/Declaration.java (getValue, getFrame):  Handle heapFrame.
	* kawa/lang/Literal.java:  Now generates code to initialize literals
	when compiling to a file.  Handles circular data.
	* kawa/lang/ReferenceExp.java (compile, compile_load):  Various fixes.
	* kawa/lang/SetExp.java (compile):  Push symbol rather than string.
	* kawa/lang/compilefunc.java:  Lots of re-arranging and fixes
	for file compilation, lexical outer-function scopes, etc.
	Move setLiterals-related code to LambdaExp.compile_setLiterals.
	* kawa/standard/load.java:  Can now load from compiled .zip file
	as well as from a .scm source file.
	* kawa/lang/{Makefile.am,Makefile.in}:  Add new classes.

Tue Jul 16 19:09:36 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/AutoloadProcedure.java:  New class, for autoloading.
	* kawa/standard/StandardInterpreter.java (define_proc):  New method.
	(<init>):  Use new autoloading define_proc extensively.
	* Makefile.{am,in}:  Add {newline,map,callcc}.class.

	* kawa/lang/{Continuation,CalledContinuation}>java:  New classes.
	* kawa/standard/callcc.java: Implement limited call/cc.

	* kawa/lang/List.java (toVector):  New method.
	* kawa/lang/InPort.java (readSchemeObject):  Handle vector syntax.
	* kawa/standard/list2vector.java (apply1):  Use List.toVector.
	* kawa/standard/list_tail.java (listTail):  New method.
	* kawa/standard/{list_tail,list_ref}:  Use list_tail.listTail.
	
	* kawa/standard/{minus_oper,multiply_oper,divide_oper,equal_oper,
	greater_oper,greaterequal_oper,less_oper,lessequal_oper}.java:
	Re-write to extend ProcedureN, rather than Named.
	* kawa/standard/map.java:  New class, implements map and for-each.
	* kawa/standard/newline.java:  New class, implements newline function.
	* kawa/lang/print.java (print):  Handle Object[].
	* kawa/lang/Expression.java (compile):  Make abstract.
	* kawa/lang/ErrorExp.java (compile):  Added.

Tue Jul 16 19:05:50 1996  R. Alexander Milowski <sgml@winternet.com>

	* kawa/lang/InPort.java (readCharacter):  Recognize letters, e.g. #\A.
	
Thu Jul 11 15:10:14 1996  Per Bothner  <bothner@deneb.cygnus.com>

	Major re-write.  All functions are now byte-compiled,
	using the codegen package.

	* kawa/lang/{Compilation,CompiledProc,Literal,SchemeLoader,
	compilefunc,loadcompiled}.java:  New classes - compilation-related.
	* Makefile.{am,in} (OBJ):  Add new classes.

	* kawa/lang/{Expression,ApplyExp,BeginExp,IfExp,LambdaExp,LetExp,
	QuoteExp,ReferenceExp,SetExp}.java: Add compile method.
	* kawa/lang/Declaration.java (getFrame, getValue, setValue):  New.
	* kawa/lang/Interpreter.java(lookup_global,define_global,resolve): New.
	* kawa/lang/LambdaExp/(staticLink, heapFrame):  New variables.
	(eval):  Actually compile to get new bytecode.
	* kawa/lang/List.java:  New makeList methods.
	* kawa/lang/Procedure{,0,2,3,4}.java:  Add default initializer.
	* kawa/lang/ReferenceExp.java (compile_load):  New method.
	* kawa/lang/ScopeExp.java:  A ScopeExp now contains Scope, which
	includes all the Variables/Declarations as a linked list.
	(num_decls, decls)  Removed.
 	(firstVar, currentLambda):  New methods.
	* kawa/lang/SetExp.java (isDefining, setDefining, compile_store):  New.

	* kawa/standard/Makefile.{am,in}: Fix typos (bogus 'eq' in string ops).
	* kawa/standard/let.java:  Remove pointless pattern.match.
	* kawa/standard/{let,letstar}.java:  Don't allocate array of
	Declarations (since we now use links).
	* kawa/standard/define.java:  Set DEFINING_FLAG on result.
	* kawa/standard/letrec.java:  Re-written to use extend Syntax.
	* kawa/standard/StandardInterpreter.java: Upadet for new letrec.
	* kawa/standard/load.java:  Close on port on eof.
	* kawa/standard/string2list.java:  Use Char.make rather than new Char.

Tue Jul  2 11:34:24 1996  Anthony Green  <green@csk3.cygnus.com>

	* Makefile.am, Makefile.in, configure.in: Added the codegen
 	directory to the build procedure.

	* */Makefile.am */Makefile.in: Added "make clean" support.

Fri Jun 28 17:47:12 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/standard/cond.java:  Re-write to use recursion.

Fri Jun 28 15:02:21 1996  R. Alexander Milowski <sgml@winternet.com>

	* kawa/standard/{list2string,list2vector,string2list,string_append,
	string_ci_equal_p,string_ci_greaterthan_p,string_ci_greaterthanequal_p,
	string_ci_lessthan_p,string_ci_lessthanequal_p,string_copy,
	string_equal_p,string_fill_b,string_greaterthan_p,
	string_greaterthanequal_p,string_lessthan_p,string_lessthanequal_p,
	substring,vector2list,vector_fill_b}.java:  New classes.
	* kawa/standard/cond.java:  Implement cond syntax.
	* kawa/standard/StandardInterpreter.java:  Update accordingly.
	* kawa/standard/Makefile{am,in}:  Add new files.

Tue Jun 25 20:40:57 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/Char.java:  New class, for representing Scheme characters,
	* kawa/lang/{SyntaxError,ReadError,EofReadError}.java:  New Exceptions.
	* kawa/lang/{EOFInComment,EOFInString,InvalidCharacterName,
	InvalidPoundConstruct,MalformedList,NotImplemented,NumberTooLong,
	UnexpectedCloseParen}.java:  Replaced by SyntaxError sub-classes.

	* kawa/lang/{InPort,OutPort}.java:  New classes, replace iport & oport.
	* kawa/lang/{iport,oport}.java:  Removed.
	
	* kawa/lang/Procedure0or1.java:  New Procedure sub-class.

	* kawa/lang/{Procedure,Expression}.java: Implement Printable interface.
	* kawa/lang/LambdaExp.java:  Add optional name field, setName method.
	* kawa/lang/LambdaProcedure.java:  Use and print LamdaExp.name.

	* kawa/lang/ErrorExp.java:  New Expression sub-class.
	* kawa/lang/Interpreter.java:  Move read-related functions to InPort.
	* kawa/lang/Interpreter.java:  Update iport->InPort, oport->OutPort.
	* kawa/lang/SetExp.java (eval):  Return voidObject.
	* kawa/lang/Symbol.java:  New makeUninterned, generate methods.
	Add make as a (preferred) synonym for intern.
	* kawa/lang/print.java:  Print obj.toString() as the default.
	Print Scheme strings with quoting if OutPort.printReadable.
	
	* kawa/{lang,standard}/Makefile.{am,in}:  Updated accordingly.

	* kawa.java, kawa/Shell.java:  Update iport->InPort, oport->OutPort.
	* kawa/Shell.java: Use eofObject.  No longer catch removed Exceptions.
	
	* kawa/standard/StandardInterpreter.java (define_proc):  new method.
	Use it to add new primitives.
	* kawa/standard/{char_equal_p,char_greater_equal_p,char_greater_p,
	char_less_equal_p,char_less_p,char_p,make_string,string,string_ref,
	string_set_b}.java:  Stylistic changes.  
	Update java.lang.Character->Char.
	* kawa/standard/{eof_object_p,load,read,readchar,write,writechar}.java:
	New classes to implement I/O primitives.
	* kawa/standard/eqv_p.java:  Chars are now equal? iff eq?.
	* kawa/standard/ifp,set_b}.java:  Use new Interpreter.syntaxError.
	* kawa/standard/define.java:  Likewise.  Also do LambdaExp.setname.

	* license.term:  New license Based on Tcl copyright.
	* COPYING:  Removed.

Fri Jun 21 00:03:34 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/Declaration (context):  New field.
	(Declaration):  Initialize index to -1.
	* kawa/lang/ScopeExp.java (assign_space, add_decl):  New methods.
	(shared, num_decls, space_needed):  New fields.
	* kawa/lang/LambdaProcedure.java (applyN):  Always allocate
	new frame using LambdaExp.space_needed field.
	* kawa/lang/LetExp.java (eval):  Use Declaration.index when setting.
	* kawa/lang/ReferenceExp.java (eval):  Search up lexical scope chain.
	* kawa/lang/SetExp.java (eval):  Likewise.
	* kawa/lang/LambdaExp.java (LambdaExp):  Use new ScopeExp.add_decl.
	* kawa/standard/{let,letstar}.java (rewrite):  Likewise.
	* kawa/lang/ApplyExp.java (print):  Fix thinko.
	* kawa/lang/BeginExp.java (eval):  Fix typo.

Wed Jun 19 17:00:03 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/Sequence.java:  New abstract class.
	* kawa/lang/List.java:  Now inherits from Sequence.
	* kawa/lang/Makefile.am:  Update accordingly.
	* kawa/lang/Pair.java (equalds, length, elementAt):  New methods.
	* kawa/lang/vector.java -> Vector.java:  Renamed and re-implemented.
	* kawa/standard/equal_p.java:  Re-implement to use equals method.
	* kawa/standard/{make_vector,vector,vector_length,vector_p}.java,
	kawa/standard/{vector_ref,vector_set_b}.java:  Use new Vector class.
	
Wed Jun 19 10:16:59 1996  Per Bothner  <bothner@deneb.cygnus.com>
	
	* kawa/lang/symbol.java -> Symbol.java:  Renamed class.
	* kawa/lang/List.java:  New class.
	* kawa/lang/pair.java -> Pair.java:  Renamed;  made sub-class of List.
	* kawa/lang/snull.java:  Removed.  Use static List.Empty instead.
	* kawa/lang/Procedure1or2.java:  New sub-class of Procedure.
	* kawa/lang/{*.java,Makefile.am,Makefile.in}:  Update accordingly.

	* kawa/standard{*.java,Makefile.am,Makefile.in}:  Update accordingly.
	* kawa/standard/{append,apply.make_vector,string,vector}.java:
	Re-write as Procedure sub-class.
	* kawa/standard/{ass,mem}.java:  Minor cleanups and optimizations.
	* kawa/standard/list_p.java:  Use List.list_length.

Tue Jun 18 12:19:46 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/Expression.java:  New abstract class.
	* kawa/lang/{ApplyExp,BeginExp,IfExp,LambdaExp,LetExp,QuoteExp,
	ReferenceExp,ScopeExp,SetExp}.java:  New sub-classes of Expression.
	* kawa/lang/Pattern.java:  New abstract class (for pattern matching).
	* kawa/lang/{ListPat,VarListPat}.java:  New sub-classes of Pattern.
	* kawa/lang/{Declaration,Environment}.java:  New classes.
	* kawa/lang/Procedure.java:  New abstract class.
	* kawa/lang/Procedure{0,1,2,3,4}.java:  Re-written to extend Procedure.
	* kawa/lang/ProcedureN.java:  New sub-class of Procedure.
	* kawa/lang/LambdaProcedure.java:  Re-written to extend Procedure.

	* kawa/lang/Syntax.java:  New abstract class.
	* kawa/lang/Syntax{0,1,2,3,4}.java:  Removed.  No longer used.
	* kawa/lang/{Lambda,Quote}.java:  Re-written to extend Syntax.
	* kawa/lang/print.java:  Handle null Object.
	* kawa/lang/symbol.java:  Re-write to intern in hashTable,
	and removed public constructor.
	* kawa/lang/Interpreter.java:  New methods: rewrite and rewrite_body.
	Removed some no-longer used stuff, and added some minor stuff.

	* kawa/Shell.java:  Re-write raw expression before eval.
	Print message if null returned.  Re-indent.

	* kawa/standard/{begin,define,ifp,let,set_b}.java:
	Re-write as sub-class of Syntax.
	* kawa/standard/letstar.java:  Syntax sub-class for "let*".
	* kawa/standard/length.java:  Add static int-returning "work" function.
	* kawa/standard/{equal_p,eqv_p}.java:  Add similar boolean function.
	* kawa/standard/{list,plus_oper}.java: Re-written to extend ProcedureN.
	* kawa/standard/string2symbol.java:  Should not fold case.
	* kawa/standard/StandardInterpreter.java:  Update accordingly.

Wed Jun 12 22:06:58 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/print.java:  New class, with just a print method (for now).
	* kawa/lang/pair.java (print):  Just call printNoParen.
	(printNoParen):  Use loop (not recursion), and kawa.lang.print.print.
	* kawa/lang/vector.java (print):  Use kawa.lang.print.print.
	* kawa/Shell.java (run):  Use kawa.lang.print.print.
	* Makefile (JAVAC):  Search ".:, not ".." for classpath.
	* kawa/lang/Makefile (OBJ):  Add print.class.

Wed Jun 12 19:34:35 1996  Per Bothner  <bothner@deneb.cygnus.com>

	* kawa/lang/Interpreter.java (trueObject, falseObject,
	nullObject, undefinedObject):  Make static.
	* kawa/lang/Procedure[01234].java:  Rename execute[0-4] -> apply[0-4].
	Remove Interpreter and frame arguments.
	* kawa/standards/*.java:  Change most execute methods to new apply
	methods.  Use static references to get trueObject etc.

	* Check in Kawa 0.2.

=============================================================================

Changes since 0.1:
==================

Kawa 0.2 (6-10-96)

Created an Executable and Syntaxable interface for procedures and syntaxes.

Changed class names to get rid of name conflicts that were causing
problems due to java compiler bugs.

Changed string to be java.lang.StringBuffer

Added Procedure0, Procedure1, Procedure2, Procedure3, Procedure4 classes
for simplifying procedure parameter checking.

Added Syntax0, Syntax1, Syntax2, Syntax3, Syntax4 classes for simplifying
syntax parameter checking.

Fixed lambda to clone the current execution frames.  Thus, the following now
works:
   (define x 5)
   (define foo (lambda () x))

   (let ((x 10)) (foo)) => 5

   -and-

   (define bar (let ((x 1)) (lambda () x)))
   (bar) => 1

Created the kawa.lang.iport and kawa.lang.oport classes for input and output
ports, respectively.

Finished the kawa.Shell class.

Create in, out, err members on the kawa.lang.Interpreter class for the stdin,
stdout, stderr respectively (as iport or oport).
