Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 5a3d998cc00060c67a9a8d7f23c2d34c > files > 54

gauche-0.8.14-3.fc11.x86_64.rpm

2008-10-06  Shiro Kawai  <shiro@acm.org>

	* release 0.8.14

2008-10-05  Shiro Kawai  <shiro@acm.org>

	* test/rfc.scm, ext/net/test.scm: Avoid using sys-fork to run the
	  test server process; fork doesn't go well with windows.

	* ext/net/netlib.stub (sockaddr-name): correctly identifies the
	  length of pathname of the unix domain socket; it can be 0.

2008-10-03  Shiro Kawai  <shiro@acm.org>

	* ext/net/netlib.stub (SHUT_RD, SHUT_WR, SHUT_RDWR): defines
	  constants for 'how' argument of socket-shutdown.

	* configure.ac, ext/Makefile.in, DIST_EXCLUDE: Exclude ext/peg and
	  lib/rfc/json.scm; these are not ready for 0.8.14 release.

	* src/number.c (read_real): Fixed the bug that misunderstands the
	  case when no integral part appears right after the initial sign
	  (e.g. ++i or +/4).

2008-09-18  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/ip.scm (ipv4-global-address?): added.

	* src/Makefile.in (scmlib.c, objlib.c): added dependency on
	  ../lib/gauche/vm/insn.scm.

2008-09-11  Shiro Kawai  <shiro@acm.org>

	* src/scmlib.scm (inline-stub): just issue warning instead of
	  error, for it is sometimes useful to 'load' the source with
	  inline-stub during debugging.

2008-09-04  Shiro Kawai  <shiro@acm.org>

	* src/scmlib.scm (exit, exit-handler): Implemented exit-handler
	  feature to hook application's exit operation.  See the manual
	  for detailed explanation and design rationale.

	* src/builtin-syms.scm (SCM_SYM_PLUSP): defined to an wrong symbol
	  '+?'; should be '++'.

2008-09-02  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/cgen/cise.scm (define-referencer): Allow C++-style
	  method invocation: (-> A (B C) (D E)) expands to "A->B(C)->D(E)".

2008-08-31  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (wna), src/vmcall.c, src/proc.c (Scm_CurryProcedure),
	  src/gauche.h, src/builtin-syms.scm, src/intlib.stub,
	  lib/gauche/procedure.scm:
	  Experimentally added some code to support automatic currying.
	  This version still has an issue (see the comment in src/proc.c),
	  so the feature is commented out.

2008-08-29  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/cgen/cise.scm (values): Expands 'values' cise macro
	  into appropiate Scm_Values* call.

	* src/gauche/experimental/lamb.scm (^., ^*): added shorthand notation
	  of match-lambda and match-lambda* experimentally.

2008-08-28  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub (%open-input-file): Use Scm_SysError when
	  Scm_OpenFilePort returns #f, since if it returns #f the reason
	  is the failure of open(2).

2008-08-26  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/cgen/unit.scm (cgen-safe-comment): Added.
	* lib/gauche/cgen/literal.scm, src/gencomp: Emit more comments into
	  generated C file for ease of debugging.

	* src/gencomp, src/scmlib.scm (declare): Added ad-hoc 'declare' syntax
	  to support keep-private-macro in source instead of command-line args
	  for gencomp.  This is a purely temporary solution, since it won't
	  be needed once we can byte-compile hygienic macros.  It is
	  convenient for the time being to produce some extensions, but it
	  will disappear soon.

2008-08-23  Shiro Kawai  <shiro@acm.org>

	* src/syslib.stub (sys-lstat): On windows, make it behave just like
	  sys-stat.  Windows doesn't have lstat(), but since it works the
	  same as stat() when path is not a symlink, it is reasonable to
	  make it so (and it reduces one headache of cross-platform dev.)

	* ext/peg/peg-lib.scm: Renamed semantic-value-finalize! to
	  rope-finalize, in order to reflect its function more clearly,
	  and also avoid unecessary consing.  Added $<<.
	  (This is still a temporary snapshot; large restructuring is
	  planned.)
	* lib/rfc/json.scm: Changed accordingly.

2008-08-21  Shiro Kawai  <shiro@acm.org>

	* src/getdir_darwin.c (get_install_dir): fixed a bug that releases
	  unretained resource.  Based on a patch by Naoya Tozuka.

	* lib/gauche/experimental/*: Moved some weird syntactic experiment
	  into separate modules, so that it will be easy to track their users
	  in case if we want to change or drop the support.  NOTE: the '$'
	  experiment is now in gauche.experimental.app. (used to be built-in).
	* src/autoloads.scm, lib/gauche/procedure.scm: Moved $ and $* to
	  gauche.experimental.app.  Experimentally added .$ as an alias of
	  compose.

	* src/Makefile.in (INSTALL_SUBHEADERS): added some missing headers.

2008-08-20  Shiro Kawai  <shiro@acm.org>

	* src/port.c (SCM_PORT_CASE_FOLD), src/gauche/port.h,
	  src/read.c, src/gauche/reader.h: Moved the case folding flag from
	  read context to port.
	* src/scmlib.scm, src/extlib.stub (port-case-fold-set!): Changed
	  accordingly.
	* src/core.c: Moved InitVM much earlier than InitPort, since now
	  VM's runtime flag affects the port's case folding flag.  The VM's
	  standard I/O are set in InitPort.

	* **/*.scm: Cleaned up use of |-escapes meant to work for both case-
	  sensitive and case-insensitive mode.  Now we have #!no-case-fold,
	  so we can ensure the file is read in case-sensitive mode.

	* src/gauche/reader.h, src/gauche.h: splitted reader API from gauche.h
	  to reader.h

	* src/read.c (ScmReadContext, Scm_MakeReadContext): made read context
	  a Scheme object of class <read-context>.
	* src/class.c, src/load.c: changed accordingly.

	* src/portapi.c, src/gauche/port.h: Added 'bytes' field in ScmPort
	  that counts the cumulative bytes read from the port.  It is used
	  by the reader to distinguish the script's shebang line and
	  #!<identifier> directive.

	* src/read.c (Scm_DefineReaderDirective, read_shebang):
	  src/extlib.stub (define-reader-directive):
	  Modified the reader to recognize R6RS-style #!<identifier>
	  directive.  Now, only the '#!' of the beginning of the port,
	  followed by '/' or ' ', are recognized as the script shebang
	  line.  All other '#!'s are treated as #!<identifier> directive
	  (before, '#!'s unconditionally worked as a
	  comment-to-end-of-line).  The behavior of #!<identifier> is
	  customizable by define-reader-directive.
	* src/scmlib.scm: Added standard #!<identifier> directives:
	  #!r6rs, #!fold-case and #!no-fold-case.

	* src/gencomp (global-eq??): fixed a bug when the comparing identifier
	  is not yet defined in the host gosh.
	* src/Makefile.in (scmlib.c): use --keep-private-macro=inline-stub
	  to keep inline-stub macro definition in the core.

2008-08-19  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/cgen/cise.scm (define-cfn): Introduced define-cfn cise
	  form to enable to write pure C function (not cproc, which is a
	  Scheme subr with C body) in cise.
	* lib/gauche/cgen/stub.scm: Recognizes define-cfn within stub code.
	  (initcode): Allow cise in the code portion.
	  (make-literal, c-literal-expr): Allow cise expression in the
	  expr section of raw c literal (e.g. (c expr)).
	  (define-cclass): Allow :private qualifier to emit the CLASS_DECL and
	  standard macros into the c file.
	  (cclass-emit-standard-decls): is the body to generate standard macros
	  mentioned above.  Eventually there should be an option to emit
	  these into a separate header file.

	* ext/peg/peg-lib.scm: Rewrote a couple of C static functions within
	  inline-stub by define-cfn.

	* ext/dbm/gdbm-lib.scm, ext/dbm/ndbm-lib.scm, ext/dbm/odbm-lib.scm:
	  Include stub code in the Scheme code using init-stub.
	  *.stub are no longer needed.  {gdbm,ndbm,odbm}.scm are auto-
	  generated.
	* ext/dbm/dbm.ac: changed accordingly.

	* ext/dbm/bdbm.c, ext/dbm/bsddb.h, ext/dbm/bsddb.stub: Removed.
	  Berkeley DB licensing terms are like GPL, so it's better to be
	  supported in a separate extension to avoid complication of
	  Gauche-embedded application development.

	* ext/digest/md5-lib.scm, ext/digest/sha1-lib.scm: Include stub
	  code in the Scheme code using init-stub.  *.stub are no longer
	  needed.  {md5,sha1}.scm are autogenerated.

2008-08-17  Shiro Kawai  <shiro@acm.org>

	* src/vminsn.scm (VALUES-APPLY), src/vm.c (Scm_ApplyRec): fixed
	  a bug that caused SEGV when more than SCM_VM_MAX_VALUES args
	  are given to Scm_ApplyRec.  This hasn't been noticed since Scheme
	  version of APPLY doesn't go through this path.  (Note: This
	  is a temporary fix.  VALUES-APPLY can keep the rest list until
	  argumet adjustment, in the same way as TAIL-APPLY.)
	* src/intlib.stub: Added some procedures that uses Scm_ApplyRec
	  family for the testing purpose.

	* lib/gauche/sortutil.scm, src/autoloads.scm, test/sort.scm:
	  Added sort-by, sort-by!, stable-sort-by, stable-sort-by!.

2008-08-08  Shiro Kawai  <shiro@acm.org>

	* lib/dbm.scm (dbm-db-copy, dbm-db-move): Provides fallback methods.
	* doc/modutil.texi (dbm): Added explanation on the protocol a new
	  dbm implementation should conform.

2008-08-04  Shiro Kawai  <shiro@acm.org>

	* doc/modgauche.texi: added missing description of the return
	  value of mutex-unlock!.

2008-08-02  Shiro Kawai  <shiro@acm.org>

	* src/vminsn.scm: added LREF-CAR and LREF-CDR combined insns.  We could
	  wait for the new instruction scheme ('push' bit), but this is simple
	  and effective, so why not?
	  Also added VALUES-RET.

	* ext/peg/peg-lib.scm
	  ($fold-parsers, $fold-parsers-right): change $fold and $fold-right
	  to these names to avoid confusion.
	  ($count, $sep-end-by): rewrote to use $loop macro for speed and
	  correct behavior.
	* ext/peg/test.scm, tests/rfc.scm: moved rfc.json test under ext/peg,
	  for it depends on parser.peg.

2008-07-31  Shiro Kawai  <shiro@acm.org>

	* ext/net/netlib.stub: Added several IP socket option constants.

2008-07-28  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm (pack-iform): Fixed a bug handling $RECEIVE node.
	  (pass3/branch-core): Added an optimization to cut the unreachable
	  branch of $if.  Such $if may occur as a result of macro expansion.

2008-07-26  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm (pass1/body-wrap-intdefs): Ensure the evaluation
	  order of internal define the same as corresponding letrec.  Before
	  it was reversed and a source of confusion.  It is also consistent
	  to letrec* behavior.

	* ext/peg/peg-lib.scm
	  ($many_): Removed, for it is same as $skip-many.
	  ($fold, $fold-right, $many-chars, $many1): Added.
	  (peg-parse-string): Renamed from parse-string.
	  (peg-run-parser, peg-parse-port): Added.

2008-07-25  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/parseopt.scm (compose-entry): Allow '*' modifier in
	  option-spec, for options that can be specified multiple times.
	  This is just a preparation; the actual code to support multiple
	  appearance of an option hasn't been done yet.

2008-07-20  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/vm/insn.scm.src, lib/gauche/vm/insn-core.scm: Removed
	  the template file insn.scm.src and added a separate module
	  insn-core.scm.  The generated insn.scm extends insn-core.  This
	  is required since geninsn needs to refer to <vm-insn-info>, but
	  gauche.vm.insn doesn't exist yet when geninsn is generating it.
	* src/geninsn: changed accordingly.

2008-07-15  Shiro Kawai  <shiro@acm.org>

	* src/vminsn.svm ($insn-body), src/geninsn (insn-alist):
	  Allow insn definition to retrieve other insn body.

	* src/vminsn.scm ($arg-source,  LREF-VAL0-BNxx),
	  src/compile.scm (pass3/if-numcmp): Emit special instructions for
	  BNxx when one of the arguments are LREF.  This saves one stack
	  push/pop pair.

2008-07-14  Shiro Kawai  <shiro@acm.org>

	* src/vminsn.scm ($vm-err): Avoid expanding CISE into VM_ERR macro,
	  for some C compilers choke on #line directives between macro
	  arguments.

2008-07-10  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm (pass1/define-inline),
	  src/gencomp (check-packed-inliner): Properly emit inliner
	  information of the procedures defined by define-inline, even
	  if the target VM's instruction codes differ from host VM's.

2008-07-08  Shiro Kawai  <shiro@acm.org>

	* configure.ac: Checking for gcc by $GCC instead of $CC, to cope
	  with the case when $CC is actually "gcc -std=gnu99" etc.

2008-07-02  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/vm/insn.scm.src, src/gauche/code.h: Extended the
	  opcode width in the instruction word from 8 bits to 12 bits.

	* src/compile.scm: Instead of reading vminsn.scm to define vm
	  instruction constants, using gauche.vm.insn to do so.
	* src/geninsn: allow define-insn-lref* and define-insn-lref+,
	  that automatically defines LERFn-XXX and LREFmn-XXX combined
	  instructions from the base LREF-XXX instruction definition.

	* lib/gauche/procedure.scm (disasm): removed kludge for old versions.

	* src/code.c (Scm_CompiledCodeEmit): Adopted STN created from
	  vminsn.scm to handle instruction combination.  With this change,
	  the VM instruction set architecture is solely defined by vminsn.scm.
	* src/geninsn: some extension to handle more combined insns.
	* src/vminsn.scm: some fixes

2008-07-01  Shiro Kawai  <shiro@acm.org>

	* src/vminsn.scm, src/geninsn, src/vm.c (run_loop): Having VM loop
	  code fragment within the VM instruction definition in vminsn.scm,
	  and use geninsn to generate the "meat" of the VM loop into
	  vminsn.c.  This is a big step towards VM generation.

	* lib/gauche/cgen/literal.scm (cgen-emit-static-data),
	  lib/gauche/cgen/unit.scm (cgen-emit-c): Moved SCM_CGEN_CONST	
	  kludge emission from unit to literal, since it is only required
	  for the static data array generated by cgen-emit-static-data.

2008-06-28  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (VALUES_APPLY): Removed unnecessary code.

2008-06-27  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/cgen/cise.scm (source-info): Replaced makeshift source
	  info extractor for debug-source-info.
	  (cise-render-rec): Expose an API to call back to cise expander
	  recursievly.  Needed to write certain type of cise macros.
	  (cise-context, cise-context-copy, cise-register-macro!,
	   cise-lookup-macro): Allow to have multiple cise macro namespaces.
	  (define-cise-stmt, define-cise-expr): allow to specify a variable
	  to receive the cise environment, which is required to call
	  cise-render-rec within the expander.

2008-06-26  Shiro Kawai  <shiro@acm.org>

	* src/autoload.scm, lib/gauche/miscutil.scm (object-source-info):
	  Removed.  Use debug-source-info.

2008-06-25  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/http.scm (http-generic): fixed 'host' field being messed
	  up when redirected.

2008-06-24  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/cgen/cise.scm: Added cise macros: while, label, goto,
	  post++, post--.  Allow variable declaration only (without init
	  nor type) in let*.

2008-06-20  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/gauche.h (Scm_ApplyRec[01234]): Added these to avoid
	  consing in callback from C to Scheme.
	* src/vminsn.scm (VALUES-APPLY): Changed the name from CONST-APPLY.

2008-06-19  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (Scm_ApplyRec): Avoid allocation by using valN registers
	  to pass the arguments.
	* src/vminsn.scm (CONST-APPLY): Changed the definition since we
	  no longer need an operand.

2008-06-08  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub (hash-table-copy): added.  Why this hasn't been
	  implemented until now?  It must be an overlook.

2008-06-03  Shiro Kawai  <shiro@acm.org>

	* ext/peg/peg-lib.scm (space): recognized 'v' as a space incorrectly.
	  (patch from Masayuki Muto).

2008-06-01  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (user_eval_inner), src/gauche/vm.h (ScmCStrackRec):
	  save/restore signal mask by ourselves, since sigsetjmp's behavior
	  is platform-dependent w.r.t. threads.
	* src/signal.c (Scm_GetSigmask, Scm_SetSigmask) :added convenience
	  functions to hide sigprocmask/pthread_sigmask difference among
	  platforms.

2008-05-30  Shiro Kawai  <shiro@acm.org>

	* src/Makefile.in (INSTALL_HEADERS): install some more gc headers.

2008-05-27  Shiro Kawai  <shiro@acm.org>

	* ext/peg/peg-lib.scm (make-peg-parse-error): better error message.

2008-05-26  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub (eof-object): added from R6RS.

2008-05-25  Shiro Kawai  <shiro@acm.org>

	* rfc/json.scm : Added (written by Rui Ueyama.  Using parser.peg).

	* ext/peg/*, configure.ac, ext/Makefile.in: Added parser.peg module,
	  PEG parser combinator library originally written by Rui Ueyama.

2008-05-22  Shiro Kawai  <shiro@acm.org>

	* src/number.c (Scm_FiniteP, Scm_InfiniteP, Scm_NanP),
	  src/extlib.stub (finite?, infinite?, nan?): Added from R6RS.

2008-05-21  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-26.scm (srfi-26-internal-cut): performance fix (see the
	  comment).

	* src/load.c (Scm_DynLoad): Fixed a bug that leaves dlobj inconsisntent
	  state when dl_sym couldn't find initfn.

2008-05-19  Shiro Kawai  <shiro@acm.org>

	* src/load.c (Scm_DynLoad): Fixed a bug that caused a dead-lock
	  when the initialization function of DSO executes some Scheme
	  function (it happens if the DSO is pre-compiled from Scheme source),
	  and the execution triggers an autoload, which in turn tries to
	  dynamic-load some other module.  Before, we had a global lock for
	  dynamic-load, so the recursive call to it caused a dead lock.
	  Now the lock is per-DSO.

2008-05-12  Shiro Kawai  <shiro@acm.org>

	* src/gencomp, src/genstub, lib/gauche/cgen/stub.scm: Allow stub
	  definitions to be embedded in an ordinary *.scm file for pre-
	  compilation.  When gencomp sees a toplevel
	  (inline-stub stub-form ...) form, the stub-form ... part is
	  passed to gauche.cgen.stub to generate C code into the pre-compiled
	  output.
	* src/gencomp, src/compile.scm (global-eq??): Now gencomp takes
	  into account the module visibility when it checks the special
	  identifiers in the toplevel, so that it won't accidentally step
	  on the source where those identifiers are redefined.
	* src/scmlib.scm (inline-stub): A macro inline-stub is defined
	  to detect when the form is evaluated at runtime (it's only valid
	  for precompilation, so at runtime the form throws an error.)

	* gc/thread_local_alloc.c (GC_mark_thread_local_fls_for): Fixed
	  size-zero allocation problem.

2008-05-10  Shiro Kawai  <shiro@acm.org>

	* libsrc/file/util.scm (safe-stat): fix for platforms that don't
	  have sys-lstat.

	* src/genstub, lib/gauche/cgen/type.scm, lib/gauche/cgen/stub.scm:
	  Moved most of the stub handling stuff into gauche.cgen.type and
	  gauche.cgen.stub modules.  Now genstub is a thin frontend for
	  those modules.

2008-05-09  Shiro Kawai  <shiro@acm.org>

	* src/macro.c (Scm_VMMacroExpand): properly handles the case when
	  the operator is an indentifier.

	* libsrc/util/match.scm: Added support to a certain degree
	  for the case when match macros are used with hygienic macros.
	  Specifically it gracefully handles the case that match macros
	  are inserted as the result of hygienic macro expansion.  It's not
	  complete, but we'll patch the holes as it goes, until we replace
	  the current version with completely hygienic match macro.

2008-05-08  Shiro Kawai  <shiro@acm.org>

	* ext/dbm/ndbm-makedb.c (main): fix.  some versions of ndbm don't
	  like O_WRONLY.

	* ext/dbm/ndbm.scm (dbm-db-copy, dbm-db-move): fixed for the case
	  when ndbm uses single database file.

2008-05-07  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm (pass1/lambda): Merged EXPERIMENTAL extended-lambda
	  support (CL-style :optional, :key, :rest and :allow-other-keys args).
	  Not sure if it fits in Scheme style, but let's see how it goes.
	  Currently an extended lambda is expanded into a normal lambda and
	  let-keywords/let-optionals forms within the compiler.  Eventually
	  I prefer them being supported natively, so that the compiler can
	  do some optimizations.

	* test/system.scm (get-pwd-via-pwd): adapted to OSX's /bin/pwd
	  different behavior.

2008-05-08  ENDO Yasuyuki  <yasuyuki@kahua.org>

	* winnt/nsis/setup.nsi.in (OutFile): use "mingw" instead of "win32".

	* winnt/nsis/Makefile (TARGET): use "mingw" instead of "win32".

	* winnt/nsis/README: use "mingw" instead of "win32".

2008-05-07  Shiro Kawai  <shiro@acm.org>

	* ext/dbm/ndbm.stub, ext/dbm/ndbm.scm, ext/dbm/ndbm-makedb.c,
	  ext/dbm/ndbm-suffixes.scm, ext/dbm/Makefile.in: Since different
	  ndbm implementations attach different suffixes for the database 
	  files, we determine the suffixes at the build time by actually
	  creating the ndbm database.  The extra files (ndbm-makedb.c and
	  ndbm-suffixes.scm) are used in the build time to create
	  ndbm-suffixes.h, which is included from ndbm.c (generated from
	  ndbm.stub).  Probably some adjustment will be required for cross-
	  compilation.

	* ext/Makefile.ext.in: For the convenience, defined LOCAL_LFLAGS
	  make variable that exports library flags generated
	  from --with-local configure option.

2008-05-06  Shiro Kawai  <shiro@acm.org>

	* gc/libatomic_ops-1.2/Makefile.in etc.  Ran automake again to make
	  Makefile.in etc. keep up to the newest autoconf.

	* lib/dbm.scm, lib/dbm/fsdbm.scm, ext/dbm/*: Renamed dbm-rename to
	  dbm-move, for the consistency of copy-file/move-file.  The old
	  name dbm-rename is kept as an alias of dbm-move.  Added dbm-copy
	  and dbm-move support to dbm.fsdbm.

	* libsrc/file/util.scm, ext/file/test.scm: Added copy-directory*.
	  Fixed the behavior on dangling symlinks in copy-file.
	  Dropped copy-files and move-files, for its API need to be
	  considered more.

	* gc/tests/test.c: excluded GC_FREE(GC_MALLOC(0))-type tests for
	  they cause problems with DONT_ADD_BYTE_AT_END.

2008-05-04  Shiro Kawai  <shiro@acm.org>

	* gc/*, Makefile.in, src/Makefile.in: Bumped up to Boehm GC 7.1.

2008-05-03  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/numerical.scm (scheme): added two-argument log support.
	  (log z b) is base-b logarithm of z, i.e. (/ (log z) (log b)).  This
	  is an R6RS addition.

2008-04-28  ENDO Yasuyuki  <yasuyuki@kahua.org>

	* winnt/nsis/setup.nsi.in: delete gauche-logo.ico

2008-04-21  ENDO Yasuyuki  <yasuyuki@kahua.org>

	* winnt/nsis/setup.nsi.in: add language English.

2008-04-19  Shiro Kawai  <shiro@acm.org>

	* src/parameter.c (Scm__VMParameterTableInit): Potentially allocating
	  too few elements.

	* src/hash.c (Scm_HashTableAdd): Typo fix in the error message.

	* ext/charconv/jconv.c (jconv): Use Scm_Panic instead of Scm_Error
	  in the logically unreachable code within the critical section.

	* src/gauche/mingw-compat.h: Removed, for this is replaced by
	  win-compat.h
	* src/Makefile.in: install win-compat.h instead of mingw-compat.h.

2008-04-19  ENDO Yasuyuki <yasuyuki@kahua.org>

	* DIST: fix winnt/nsis make clean bug.

2008-04-18  Shiro Kawai  <shiro@acm.org>

	* configure.ac (RPATH_FLAG): substitutes RPATH_FLAG for
	  system-dependent compiler flags to embed library paths in the
	  DSO.  "-Wl,--rpath -Wl," for Linux, for example.
	* src/genconfig (--rpath-flag): A new flag to return RPATH_FLAG info.

	* src/gauche-package.in ("compile"): added --local option to
	  the 'compile' command to add local include paths and local library
	  search paths conveniently.
	* ext/template.configure.ac, ext/template.Makefile.in:
	  added --with-local configure option that propagates to --local
	  option of gauche-package.

	* lib/gauche/process.scm (shell-escape-string): Added a utility
	  function.

2008-04-18  ENDO Yasuyuki  <yasuyuki@kahua.org>

	* winnt/nsis/setup.nsi (VIProductVersion): get version from
	##(incdude (*current-version*)) macro.

	* winnt/nsis/file-list.scm (main): check path exists.

	* winnt/nsis/Makefile (GAUCHE_VERSION): hide error message if
	../../VVERSION not exists.

2008-04-17  ENDO Yasuyuki  <yasuyuki@kahua.org>

	* winnt/nsis/Makefile (all): add target all.
	(gen): add target gen.
	(build): add target build.
	(clean): add target clean.
	(MAKENSIS): check makensis.exe.

	* winnt/nsis/file-list.scm (include): fix match bug.

	* winnt/nsis/setup.nsi.in: include version from
	  "##(include (*current-version*))".

	* winnt/nsis/Makefile (setup.nsi): add argument <dist-path>,
	<gauche-version> for file-list.scm.
	version from `cat ../../VERSION`.

	* winnt/nsis/file-list.scm (*current-version*): add.
	(main): required args: <dist-path> <template-file> <gauche-version>
	(include): match inline "##(include exp)" template.

2008-04-15  ENDO Yasuyuki  <yasuyuki@kahua.org>

	* winnt/nsis/Makefile (setup.nsi): generate setup.nsi from
	setup.nsi.in.

	* winnt/nsis/file-list.scm: list Gauche-mingw files and generate
	NSIS script.

	* winnt/nsis/setup.nsi.in: add. (template for NSIS script)

	* winnt/nsis/README: add.

	* winnt/nsis/gauche-logo.ico: Windows icon file for Gauche.

2008-04-11  Shiro Kawai  <shiro@acm.org>

	* src/main.c (main, getopt): fixed argument processing on Windows.

2008-03-03  Shiro Kawai  <shiro@acm.org>

	* lib/util/trie.scm (call-with-builder): incorrect argument order
	* lib/util/relation.scm (relation-column-getters): typo fix
	* lib/gauche/cgen/literal.scm (cgen-emit-xtrn): fixed incorrect
	  variable name.
	  (Thanks to koguro for the above three fixes.)

2008-02-26  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/dictionary.scm: removed undefined dict-map-to from
	  export list.

	* lib/gauche/common-macros.scm, src/autoloads.scm, src/scmlib.scm
	  (let-optionals*, let-keywords, let-keywords*): moved from
	  common-macros to scmlib.  This is a step toward supporting
	  keyword and optional args in VM core.

	* lib/gauche/test.scm (read-summary): avoid using file-exists?, for
	  it triggers autoload which may not be tested in the early stage
	  of testing.

2008-02-24  Shiro Kawai  <shiro@acm.org>

	* various scm files: cosmetic changes and adoption of rlet1.

	* lib/gauche/common-macros.scm: added if-let1 and rlet1.

	* libsrc/file/util.scm: added touch-files, copy-files, move-files,
	  remove-files, and delete-files.

2008-02-23  Shiro Kawai  <shiro@acm.org>

	* lib/binary/pack.scm (read-count): fixed wrong arguments
	  in function call.

	* lib/srfi-27.scm (random-source-make-reals): fixed nonexistent
	  function call.

2008-02-20  Shiro Kawai  <shiro@acm.org>

	* src/write.c (format_proc): raise an error on incomplete tilde
	  sequence in format string.

	* lib/gauche/time.scm (with-time-counter): avoid multiple
	  evaluation of time-counter expression.

2008-02-16  Shiro Kawai  <shiro@acm.org>

	* lib/www/cgi.scm (get-mime-parts): allow :mode option for mime
	  part handler.

2008-02-14  Shiro Kawai  <shiro@acm.org>

	* src/vmcall.c (ADJUST_ARGUMENT_FRAME): Fixed a bug that apply didn't
	  copy the argument list when it needed to 'unfold' the passed
	  argument list.

2008-02-13  Shiro Kawai  <shiro@acm.org>

	* release 0.8.13

2008-02-12  Shiro Kawai  <shiro@acm.org>

	* src/load.c (Scm_ResolveAutoload): fixed another bug that, when N
	  threads (N >= 3) tried to resolve the same autoload and N-1 threads
	  goes to wait, only one of them is ever waked up.

2008-02-09  Shiro Kawai  <shiro@acm.org>

	* src/load.c (Scm_ResolveAutoload): fix a bug that caused malfunction
	  of autoload resolving in multithreaded environment.

2008-02-08  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h (ScmDefaultCPL): make SCM_EXTERN to extern, for cygwin
	  to treat them as compile-time constants.  (Needs more work for
	  Win/VC platform).

2008-02-07  Shiro Kawai  <shiro@acm.org>

	* src/char.c (charset_print_ch): Safer print method for charset
	  literal.

2008-02-06  Shiro Kawai  <shiro@acm.org>

	* ext/net/netlib.stub: Added some more socket option constants.

2008-02-05  Shiro Kawai  <shiro@acm.org>

	* src/scmlib.scm (rxmatch->string): added.

	* src/system.c (Scm_CurrentMicroseconds), src/extlib.stub
	  (greatest-fixnum, least-fixnum): fixes for 64bit architecture.

2008-02-04  Shiro Kawai  <shiro@acm.org>

	* test/system.scm, ext/termios/test.scm: excluded some tests from
	  cygwin, for they are not supported well on it.

	* src/vmcall.c: fixed a bug that takes calling context
	  (normal or applyargs) incorrectly when a next-method object is
	  created in applyargs context, is invoked in normal calling
	  context, a new next-method is created during it, and the new
	  next-method is invoked in the normal calling context.

2008-02-03  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/test.scm (closure-grefs): We've been missing checking
	  the closures in the operand of LOCAL-ENV-CLOSURES.  Check added.

	* configure.ac, */Makefile.in, src/genconfig.in: Adapted for
	  cross compilation. (Parch from YOKOTA Hiroshi).

	* src/bignum.c, src/gauche/config.h.in: checks malloc.h to use
	  alloca on mingw. (Parch from YOKOTA Hiroshi).

	* src/string.c, src/system.c, src/number.c, src/dl_win.c,
	  src/class.c, ext/mt-random/mt-random.c: removing inline from
	  externed procs, and some other fixes for better portability.
	  (Parch from YOKOTA Hiroshi).

	* Makefile.in (uninstall): avoid going into gc/, since we don't
	  install a separate libgc.a so we shouldn't uninstall it.

2008-02-02  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/parseopt.scm (next-option): fixed a problem that regexp
	  might run out the stack when very long option arg is given.

2008-02-01  Shiro Kawai  <shiro@acm.org>

	* libsrc/file/util.scm (copy-file): Fixed a bug that didn't
	  preserve the mode of dst when dst already exists, safe is #f
	  and keep-mode is #f.

	* src/read.c (read_char): allow 5, 6, or 7 hex digits in unicode char
	  literal (#\uxxxxx etc.)  The old code only allows 4 or 8 digits,
	  which is too restrictive (and not much point since Unicode is now
	  only up to #\u10ffff.)

	* src/extlib.stub (fixnum-width, greatest-fixnum, least-fixnum):
	  Added.

	* src/syslib.stub (current-microseconds): Experimentally
	  added.  Returns # of microseconds since system-dependent epoch,
	  wrapped around fixnum resolution (possibly negative).  Useful
	  for micro benchmarking since it doesnt' allocate.

2008-01-31  Shiro Kawai  <shiro@acm.org>

	* 0.8.13_pre1

	* lib/gauche/procedure.scm, src/autoloads.scm: Experimentally
	  added '$' and '$*' macro.  It's unofficial yet.  See how it
	  works.

2008-01-26  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/process.scm (handle-abnormal-exit): Fix not to call
	  :on-error-exit handler if the process' exit status is zero.

2008-01-23  Shiro Kawai  <shiro@acm.org>

	* src/class.c (generic_print): Reverted the display format of
	  generic functions; maxReqargs is not relevant for most users,
	  so it's just confusing.

2008-01-04  Shiro Kawai  <shiro@acm.org>

	* lib/slib.scm.in (require, provide, provided?): adapted to
	  slib3a5 (using slib:require instead of require:require, etc).
	  This should also work with slib 3a4 as well, since 3a4 exports
	  both APIs.

2007-12-31  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (run_loop): Implemented an optimization on TAIL-APPLY
	  instruction.  Since arguments are already on the stack except 
	  the last one, we can share large part of processing with TAIL-CALL
	  instruction, with a modification of the special treatment of
	  the last argument.  This eliminates the need to call Scm_VMApply,
	  and also allows large argument list to be applied, such as
	  (apply + (iota 10000)).
	  (Scm_VMApply): changed to use TAIL-APPLY instruction.  This also
	  eliminates need of unfoling the passed args.
	* src/vmcall.c: Added to refactor the similar code between CALL
	  and TAIL-APPLY instruction handling.

	* src/compile.scm (pass3/$ASM), src/stdlib.stub (apply):
	  A little hack to make *every* 'apply' call a tail-call, so that
	  it is compiled as TAIL-APPLY instruction.

2007-12-28  Shiro Kawai  <shiro@acm.org>

	* src/class.c (Scm_ComputeApplicableMethods): Optimized inner loop
	  a little bit.  General code cleanup.
	* src/moplib.stub: Rewrote some procs using cise.

2007-12-25  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/numerical.scm (asin, asinh): fixed a problem of avoiding
	  numerical instability.
	  (exp, expt, cos, cosh, sin, sinh): use real-part/imag-part instead
	  of %complex->real/imag, for the former is slightly faster.

2007-12-22  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub (rxmatch-num-matches): returns 0 if #f is passed,
	  as described in the manual.

2007-12-18  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/822.scm (rfc822-write-headers): Added generic message
	  header generation routine.
	  (rfc822-read-headers): Renamed rfx822-header->list for the
	  symmetry with rfc822-write-headers.  We keep the old name
	  for the backward compatibility.

2007-12-11  Shiro Kawai  <shiro@acm.org>

	* src/read.c (read_string): Supports R6RS-style line folding in
	  string literal.  This should be reworked once we support all
	  kind of whitespaces and line endings, but for the time being
	  we just hardcode treatment of SPC and TABs.

	* lib/rfc/mime.scm (mime-decode-text, mime-encode-word,
	  mime-encode-text): Added utilities to encode/decode header fields
	  according to RFC2047.

2007-12-09  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/quoted-printable.scm (quoted-printable-encode): Added line-
	  width and binary keyword arguments.  Encode '?' to avoid interference
	  with RFC2047 encoded header body.

2007-12-07  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/base64.scm (base64-encode): Added line-width keyword argument
	  to specify line width or suppress line breaking of the output.

2007-12-06  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/http.scm (request-response): Fixed to pass the port number
	  to host header field (RFC2616 section 14.23).

2007-11-30  Shiro Kawai  <shiro@acm.org>

	* src/port.c (Scm__InitPort): Set stdout buffering mode to FULL if
	  the file descriptor 1 is not connected to a terminal.  This greatly
	  improves performance when large number of lines of output are
	  redirected to a file.

2007-11-23  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/fileutil.scm (glob-fold, make-glob-fs-fold): Removed
	  :root and :current args from glob-fold, for they should belong to
	  the 'folder' function rather than the glob-fold function itself.
	  Instead, we added a utility function make-glob-fs-fold to generate
	  a customized 'folder' function with root/current dirs.
	  (glob-fold-1): Added support of '**' wildcard.

2007-11-20  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/fileutil.scm (glob-fold): Added :root and :current
	  keyword arguments for the flexibility.

	* lib/gauche/regexp.scm, src/scmlib.scm, src/autoloads.scm:
	  Moved regexp-replace, regexp-replace-all, regexp-replace*,
	  regexp-replace-all* and regexp-quote from the autoloaded regexp.scm
	  to the compiled scmlib.scm.
	* src/regexp.c, src/objlib.scm: Implemented regexp printer in
	  Scheme write-object instead of C's class print function.  Properly
	  escapes slashes in the regexp and adds 'i' suffix for case-folded
	  regexp, so that read/write invariance is sufficed for trivial
	  cases.  (See the comment before write-object (<regexp> <top>) for
	  the work to do to realize full read/write invariance).
	* src/read.c (read_regexp): let the reader consume a backslash before
	  a slash, for it has nothing to do with regexp parser (and it will
	  be consistent from the regexp created via string->regexp).
	* src/preload.scm: use gauche.regexp explicitly, for it is needed
	  to compile HEAD with 0.8.12.  Can be removed after 0.8.13 release.

2007-11-09  Shiro Kawai  <shiro@acm.org>

	* configure.ac, src/gauche/config.h.in: Enabled large file support
	  (AC_SYS_LARGEFILE).  On Linux this defines _FILE_OFFSET_BITS as 64.
	  COMPATIBILITY NOTE: The definition may affect the behavior of the
	  standard libraries.  It is crucial to include <gauche.h> *before*
	  any other standard headers.
	* src/system.c (Scm_IntegerToOffset, Scm_OffsetToInteger, ScmSysStat):
	  properly handles 64bit offsets.
	* ext/fcntl/fcntl.c: properly handles 64bit offsets.

	* examples/mqueue-cpp/README: added explanation to include
	  gauche.h first.

2007-11-08  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/regexp.scm (regexp-parse-subpattern): allow named
	  reference in the replace string in regexp-replace etc.
	  Patch from Rui Ueyama.

2007-11-07  Shiro Kawai  <shiro@acm.org>

	* configure.ac, src/gauche/config.h.in (HAVE_SYS_RESOURCE_H,
	  SIZEOF_RLIM_T): configuration for getrlimit/setrlimit
	* src/syslib.stub (sys-getrlimit, sys-setrlimit): Added.
	  (Patch from Tatsuya BIZENN).

	* src/extlib.stub (tree-map-floor etc.): Added Scheme-level interface
	  to find the closest entry in the treemap.  Also added tree-map-clear!

2007-11-06  Shiro Kawai  <shiro@acm.org>

	* lib/text/gettext.scm, lib/text/tr.scm: Moved to ext/text.
	* libsrc/text/tr.scm, ext/text/*: Made text.gettext and text.tr
	  compiled modules.

	* src/gencomp (compile-toplevel-form): Modified to recognize
	  define-constant form so that constant-folding works in
	  pre-compilation.

	* ext/srfi/srfi-19-lib.scm: switched back julian-day calculation
	  to use exact numbers (Cf. ChangeLog at 2007-01-16 below).  By
	  scaling everything except nanoseconds first, we can avoid
	  ratnums in intermediate calculations.  With working constant folding
	  in pre-compilation, the overhead isn't as bad as before.  See
	  the comment near TM_EXACT_CALC for the details.

	* src/gauche/system.h (ScmTime): use ScmInt64 to represent seconds
	  to avoid year 2038 problem.
	* src/system.c: Changed accordingly.  Added Scm_MakeTime64() and
	  Scm_Int64SecondsToTime().
	* src/gauche/int64.h, src/number.c: Added macros (SCM_INT64_EQV,
	  SCM_INT64_CMP, SCM_SET_INT64_BY_LONG, SCM_SET_INT64_BY_DOUBLE)
	  and APIs (Scm_Int64ToDouble, Scm_UInt64ToDouble, Scm_DoubleToInt64,
	  Scm_UInt64ToDouble).

2007-10-29  Shiro Kawai  <shiro@acm.org>

	* release 0.8.12

	* winnt/winvc-prep.sh, DIST: enable preparation for winvc from
	  the distribution tarball.
	* src/system.c: Some fixes for MinGW.

2007-10-27  Shiro Kawai  <shiro@acm.org>

	* gc/configure.in: Added CFLAGS to compile on Leopard.

	* src/objlib.scm (x->integer, x->string): a bit of simplification.

2007-10-23  Shiro Kawai  <shiro@acm.org>

	* ext/dbm/gdbm.scm (dbm.gdbm): added missing exports (gdbm-errno,
	  GDBM_SYNCMODE.

2007-10-01  Shiro Kawai  <shiro@acm.org>

	* src/number.c (read_number, double_print): Changed infinities and
	  NaN notation to +inf.0, -inf.0 and +nan.0, according to R6RS.
	  The old syntax #i1/0, #i-1/0 and #i0/0 are recognized for
	  the compatibility.

	* ext/net/net.ac, ext/net/net.c: Removed dependency on inet_aton
	  (always using inet_pton).

	* lib/gauche/parseopt.scm: When "f" is specified as the option's
	  argument type, it allows rational number to be given but coerces
	  it to flonum.

2007-09-28  Shiro Kawai  <shiro@acm.org>

	* ext/auxsys/auxsys.c (Scm_Environ),
	  ext/auxsys/auxsyslib.stub (sys-environ),
	  ext/auxsys/auxsys.scm (sys-environ->alist): Added sys-environ
	  and sys-environ->alist to obtain all environment variable bindings
	  of the current process.

2007-09-27  Shiro Kawai  <shiro@acm.org>

	* ext/sxml/Makefile.in, ext/sxml/sxml-sxpath.scm.in: avoid dependency
	  on sxml-tools at generation time, by turning the references to
	  it into autoloads.

	* lib/gauche/fileutil.scm (glob-fold-1): Changed the traversal
	  procedure from 'lister' (returns a list) to 'folder' (works like
	  fold), for better flexibility.

2007-09-24  Shiro Kawai  <shiro@acm.org>

	* lib/text/progress.scm (make-text-progress-bar): added a feature to
	  show information text on right, and allow to alter header and info
	  text on the fly.
	* ext/sxml/Makefile.in: temporarily reverted to make sxml-sxpath.c
	  to depend on sxml-tools.so, because of the build problem.  This
	  doesn't work on windows port, though, so we might need to find
	  some trick.

2007-09-18  Shiro Kawai  <shiro@acm.org>

	* libsrc/gauche/sequence.scm: added permute and shuffle.

2007-09-17  Shiro Kawai  <shiro@acm.org>

	* src/system.c, src/syslib.stub, src/auxsyslib.stub, src/process.scm:
	  Implemented an abstraction layer for kill and waitpid (Scm_SysKill,
	  Scm_SysWait) to support windows process smoothly.  For Windows 
	  processes we keep its process handle instead of an integer pid.

2007-09-16  Shiro Kawai  <shiro@acm.org>

	* src/number.c (Scm_NumCmp): apply short cut path for the case when
	  both args are negative.

2007-09-13  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h, src/class.c: Resurrected windows DLL data import hack
	  we used to had for cygwin support (back in 2002).   We have dropped
	  the hack since the newer gcc supports auto data importing (by
	  runtime pseudo reloc), but we found that the same technique can
	  be used for Windows/VC++.  This supersedes the kludge in 2007-09-10
	  changes.  
	* src/gauche/extend.h: SCM_EXTENSION_ENTRY macro to indicate
	  the initialization function entry of extension modules; needed
	  for Win/VC.
	* src/* : various additions for MSVC support.  shouldn't affect
	  unix build.

2007-09-10  Shiro Kawai  <shiro@acm.org>

	* src/gencomp: make it accept -D option to specify preprocessor
	  symbols.

	* src/gauche/extern.h: added to hide windows dll insanity.
	* src/gauche.h, src/gauche/class.h, src/gauche/string.h,
	  src/gauche/code.h, src/genstub, src/gencomp,
	  lib/gauche/cgen/literal.scm: Experimentally added a workaround
	  to the MSVC linker limitation that the address of external variables
	  in a separate DLL can't be used in a constant expression to
	  initialize static variables.  It defeats the Gauche's tag
	  architecture.  This fix makes the static Scheme objects to be
	  initialized with dummy tags (see SCM_CLASS_STATIC_TAG in gauche.h),
	  and "patches" the correct tag in the initializatin code.

2007-09-06  Shiro Kawai  <shiro@acm.org>

	* src/char.c, src/read.c, src/port.c, ext/charconv/charconv.c,
	  ext/uvector/uvinit.c: Instead of letting extensions set the hook
	  function pointer, added an explicit API to set the hook (for
	  easier handling in windows dll).

2007-08-29  Shiro Kawai  <shiro@acm.org>

	* ext/net/net.scm, ext/net/gauche/net.h, lib/gauche/cgen/cise.scm:
	  typo fix.

	* src/number.c (numcmp3): optimization in case when all args are
	  fixnums (can happen on 64bit machines).

2007-08-28  Shiro Kawai  <shiro@acm.org>

	* src/number.c, src/string.c, src/class.c, src/bignum.c: various
	  small fixes.

	* lib/gauche/fileutil.scm (glob, glob-fold, sys-glob): Implemented
	  glob functionality in Scheme.
	* src/autoload.scm (glob, glob-fold, sys-glob): sets these autoloads.
	* src/syslib.stub (sys-glob), src/system.c (Scm_GlobDirectory):
	  removed C-function for the glob() interface.

	* src/extlib.stub (read-char-set): Expose char-set parser to
	  the Scheme level.

2007-08-26  Shiro Kawai  <shiro@acm.org>

	* libsrc/file/util.scm (file->string etc.): made them gracefully
	  return #f if the file doesn't exist and :if-does-not-exist #f
	  is given.
	  (temporary-directory): look at TMPDIR environment variable.
	  (current-directory): clean up.

	* src/number.c (Scm_NumCmp): fixed a bug in the short cut path
	  of ratnum vs ratnum comparison.

	* ext/net/netlib.stub (socket-input-port, socket-output-port): 
	  Fixed a bug that (effectively) forces socket input mode to be
	  :full, making many network applications behave incorrectly.

2007-08-25  Shiro Kawai  <shiro@acm.org>

	* src/regexp.c (regmatch_ref): fixed a bug that the failed named
	  submatch returns "" instead of #f.
	* lib/gauche/cgen/cise.scm (render-rec): handles character constants
	  outside of alphanumeric range.

2007-08-24  Shiro Kawai  <shiro@acm.org>

	* Start adding Windows/MSVC support.
	* DIST: added 'winvc' target to pre-generate files necessary to
	  compile with VisualStudio.
	* winnt/*: files for VisualStudio.
	* src/gauche/win-compat.h: renamed from mingw-compat.h and 
	  integrated MSVC support.
	* src/*.c : various touch-up for Windows support.

2007-08-21  Shiro Kawai  <shiro@acm.org>

	* DIST, */Makefile.in : adjusted pre-package make target so that 
	  it will do most of the pre-packaging job, hence can make DIST script
	  less cluttered.

2007-08-16  Shiro Kawai  <shiro@acm.org>

	* release 0.8.11

2007-08-15  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/cgen/cise.scm (define-cise-stmt, define-cise-expr):
	  A bit of touch-up for cise API.
	* src/genstub: recognize define-cise-stmt and define-cise-expr as
	  a stub forms, so that one doesn't need to use eval* form.
	  I'm ambivalent on the eval* stub form; maybe it should be removed.
	* src/stdlib.stub, src/extlib.stub: changed accordingly.

2007-08-14  Shiro Kawai  <shiro@acm.org>

	* configure.ac: fixed a problem to set GAUCHE_USE_PTHREADS correctly
	  when thread type isn't specified.

2007-08-13  Shiro Kawai  <shiro@acm.org>

	* src/port.c (Scm_PortFdDup), src/extlib.stub (port-fd-dup!):
	  Added an interface to dup2(2).  Patch from Rui Ueyama.

	* src/bignum.c (Scm_BignumToDouble): Fixed a double rounding bug
	  caused from using flonum arithmetic (see the comment for the
	  details).
	* src/bignum.c (Scm_BignumLogCount), src/extlib.stub (logcount):
	  Implemented logcount natively on top of ScmBits API.
	* src/gauche/float.h (ScmIEEEDouble): moved the structure definition
	  from src/number.c, for it is now used by both number.c and
	  bignum.c.
	* lib/gauche/logical.scm: removed logcount.
	* src/bits.c: finally a working version.

2007-08-11  Shiro Kawai  <shiro@acm.org>

	* src/load.c (Scm_ResolveAutoload): Renamed from Scm_LoadAutoload,
	  and changed so that it returns SCM_UNBOUND instead of raising an
	  error when it detects the autoload is recursive.  That allows
	  more natural handling in implicit binding checks like implicit
	  generic definition by define-method or implicit redefinition
	  check by define-class.  Note that the caller of Scm_ResolveAutoload
	  must check if the return value is SCM_UNBOUND and take an appropriate
	  action.

	* src/gauche.h: Because of the above change, we dropped
	  SCM_BINDING_KEEP_AUTOLOAD flag for Scm_GlobalVariableRef, since
	  it was introduced only to avoid the recursive autoload in the
	  implicit generic definition.  We no longer need it.
	* src/module.c (Scm_GlobalVariableRef): Changed accordingly.
	* src/moplib.stub (%ensure-generic-function): Changed accordingly.

	* src/class.c (Scm_CheckClassBinding): Simplified according to
	  the above change.

	* test/load2.scm: Added to test the above autoload mechanisms.
	  This can't be in load.scm, since we have to test it after
	  object.scm.

2007-08-10  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/test.scm (test-end): Let it return the number of
	  failed tests.  May be useful if the test script wants to return
	  non-zero exit status when test fails (e.g. (exit (test-end)) ).
	  Suggested by Masatake YAMATO.

2007-08-09  Shiro Kawai  <shiro@acm.org>

	* configure.ac: When --enable-threads is not given (or 'default' is
	  given) we turn on pthreads support on available platforms, and
	  turn off on others.  
	  Also defines _POSIX_PTHREAD_SEMANTICS on Solaris with threads 
	  so that we can get a pthread-compatible API 
	  (more specifically, sigwait()).
	* gc/configure.in: Adapted to the above change; now we ignore
	  --enable-threads, and rely on the info the main 'configure.ac'
	  left in 'config.threads'.
	* src/gauche/config.h.in: added _POSIX_PTHREAD_SEMANTICS.
	* src/gauche.h: Include gauche/config.h before any headers so that
	  the definitions like _POSIX_PTHREAD_SEMANTICS can affect the
	  system headers.
	* src/signal.c: removed system header includes, since they are
	  included in gauche.h anyway.

	* libsrc/srfi-1.scm (list=): bug fix for handling more than three
	  lists.  (Patch from OGURISU Osamu).

	* ext/template.Makefile.in, lib/gauche/package/compile.scm:
	  Supports separate buiddir during compiling extension packages
	  (Patch from Leonardo Boiko).

	* doc/corelib.texi (Symbols): removed the remark of "symbols are always
	  interned", since gensym'ed symbols are not interned.

	* src/gencomp (allocate-code-vector): properly escape '/*' and '*/'
	  in the inserted comments.

	* src/class.c, src/port.c, src/vm.c: added casts between intptr_t and
	  void* for proper operation on LP64.  (Patch from Rui Ueyama).

	* lib/gauche/time.scm (gauche.time): export <time-counter>.  Although
	  it is a pure abstract class, user may want to define a method
	  specializing for a bunch of time-counter subclasses.

2007-08-08  Shiro Kawai  <shiro@acm.org>

	* src/intlib.stub: include gauche/memory.h to get decl of 
	  GC_print_static_roots.

	* src/core.c (Scm_Init): added missing call to Scm__InitCollection().

2007-08-07  Shiro Kawai  <shiro@acm.org>

	* src/port.c (port_cleanup): resurrected unregister_buffered_port
	  to remove active buffererd port entry when a port is closed.
	  It was removed before, since when port_cleanup is called via
	  port's finalizer, the entry is already cleared by GC.  However,
	  it turned out that there was a case that number of closed ports
	  retained from GC grew, prohibiting new ports from being registered
	  to the active buffered port vector.  Note: maybe we can also
	  clear some pointers in the port when it is closed, so that the
	  stuff referenced from the port can be GCed even the closed port
	  itself lives longer.

2007-08-06  Shiro Kawai  <shiro@acm.org>

	* src/number.c (Scm_DoubleToHalf): fixed to make sure shifting long
	  literal instead of int literal to generate a mask larger than 32bits.
	  The bug yielded incorrect rounding behaviour on 64bit platforms.

2007-08-05  Shiro Kawai  <shiro@acm.org>

	* ext/net/test.scm: Avoid using "ip" for testing getprotobyname/
	  getprotobynumber, since the official name of protocol number 0
	  has been changed and we're in transition phase.  Using "icmp"
	  instead.

	* libsrc/file/util.scm (copy-file): Added :keep-mode keyword arg.

2007-08-02  Shiro Kawai  <shiro@acm.org>

	* src/syslib.stub (sys-umask): Support omitting mode to query
	  the current umask without changing it.

2007-07-31  Shiro Kawai  <shiro@acm.org>

	* libsrc/srfi-13.scm (%string-*case!): fixed a bug that caused an
	  error when the last optional args are omitted for string-downcase!
	  etc.

2007-07-25  Shiro Kawai  <shiro@acm.org>

	* src/hash.c (string_access): fixed invalid argument passed to
	  Scm_Error (ScmHashTableCore* is not ScmObj).

2007-07-16  Shiro Kawai  <shiro@acm.org>

	* src/number.c (Scm_GetDouble): fixed a bug on big ratnum coercion
	  that caused SEGV in some cases.
	  (Scm_NumCmp): fixed a bug on comparing small ratnum with big
	  denominator with fixnum.

2007-07-10  Shiro Kawai  <shiro@acm.org>

	* libsrc/gauche/collection.scm: Added find-min, find-max, and 
	  find-min&max.

2007-06-30  Shiro Kawai  <shiro@acm.org>

	* src/scmlib.scm (error): error message formatting routines didn't
	  consider circular structure, causing SEGV when such a structure
	  is given to error/errorf.

2007-06-22  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm (cond, case): exclude dotted list from clauses
	  and properly reports syntax error instead of SEGV.
	* lib/rfc/http.scm (request-response): fixed a bug that ignores
	  :sink and :flusher keyword arguments.
	* lib/gauche/interactive/info.scm (viewer): fixed malformed
	  with-signal-handlers (enbugged when we rewrite with-error-handler
	  to guard?)
	* ext/uvector/uvector.c.tmpl (Scm_WriteBlock): added a missing breaks.
	  (Scm_UVectorCopy, Scm_UVectorSwapBytes, Scm_UVectorSwapBytesX):
	  f16vector support was missing.
	* src/vm.c (get_debug_info): fixed a bug in the range check.

2007-05-31  Shiro Kawai  <shiro@acm.org>

	* src/hash.c, src/weak.c, src/gauche/hash.h, src/gauche/weak.h,
	  src/extlib.stub: some additions for weak hash tables.  unfortunately
	  I found the current hash core implementation doesn't go well with
	  key-weak hash table, and am planning to replace hash core
	  implementation; for the time being, I freeze development of 
	  weak hash tables.

2007-05-22  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/ftp.scm (req&send, ftp-put-unique): made ftp-put-unique
	  to return two values, a final server's response and the remote
	  file path given by 1xx response.  AN INCOMPATIBLE API CHANGE.
	  But I assume nobody has been used ftp-put-unique seriously,
	  for it is almost useless without obtaining the generated remote path.

	* configure.ac: shows some of the configuration parameters
	  at the end, upon a request.

	* ext/net/netlib.stub (sockaddr-addr): fixed inet6 address bug
	  in LP64 architectures, and also adaped to gauche.cgen.cise.

	* lib/rfc/ftp.scm (call-with-ftp-connection): Fix passing wrong
	  keyword argument to ftp-login.

	* src/number.c (Scm_NumCmp): Fixed a bug that raises an error when
	  attempted to compare bignum and infinity.

	* lib/slib.scm.in (force-output): oversight.  made it an alias of
	  flush.

	* src/main.c (main): temporarily avoided using new Scm_Apply API
	  due to the bug that lost stack traces.

2007-05-21  Shiro Kawai  <shiro@acm.org>

	* src/gauche/charset.h (SCM_CHAR_SET etc): Changed CHARSET in
	  macro names to CHAR_SET for the consistency.  Old names are
	  defined for compatibility but will fade out.
	* src/char.c, src/regexp.c, src/class.c: changed accordingly.

	* lib/gauche/cgen/cise.scm: Allow embedding Scheme constants
	  by quote form.  Allow omitting type declaration if it's ScmObj.
	  Some more conveniece macros.
	* src/extlib.stub: changed to use gauche.cgen.cise more.

2007-05-19  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/miscutil.scm: added.
	* src/autoload.scm: added autoload for gauche.miscutil.

	* lib/gauche/cgen/cise.scm: added.  A utility to generate C code
	  from S-expression.  The spec is still experimental and may be
	  tweaked.
	* src/genstub, src/stdlib.stub, src/extlib.stub: changed to use
	  gauche.cgen.cise module.
	* lib/Makefile.in, lib/gauche/cgen/unit.scm: changed accordingly.

2007-05-15  Shiro Kawai  <shiro@acm.org>

	* ext/fcntl/fcntl.c, ext/net/netdb.c, ext/termios/termios.c,
	  ext/threads/mutex.c, src/class.c, src/codec, src/compaux.c,
	  src/error.c, src/genstub, src/proc.c, src/system.c:
	  Use SCM_CLASS_SLOT_SPEC_END() macro instead of literal constant.
	  Patch from MUTOU Masayuki.

2007-05-04  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/interpolate.scm (%string-interpolate): recognize '[' and
	  '{' as the beginning of unquoted expression as well.

	* src/genstub, lib/gauche/cgen/unit.scm, lib/gauche/cgen/literal.scm:
	  Further integrated genstub's code into gauche.cgen.*.  Changes
	  include: Cpp conditions are now supported by <cgen-node>.
	  The subclass of <cgen-node> should override cgen-emit-* methods,
	  not the cgen-emit method.  Some of literal handling code
	  are moved to gauche.cgen.*.
	  Also experimentally testing shorthand notation of ref.

2007-04-26  Shiro Kawai  <shiro@acm.org>

	* src/genstub: Refactored to utilize more features of gauche.cgen;
	  the original genstub predated gauche.cgen and had many kludges
	  that gauche.cgen solved better.

	* src/gauche/port.h: Fixed a problem that compatibility functions
	  are not declared when necessary (#ifdef area got wrong).

2007-04-23  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/cgen.scm, lib/gauche/cgen/unit.scm,
	  lib/gauche/cgen/literal.scm: Splitted gauche.cgen module for
	  modularity and readability.

2007-04-22  Shiro Kawai  <shiro@acm.org>

	* ext/auxsys/auxsys.scm (sys-realpath): typo fix.

2007-04-21  Shiro Kawai  <shiro@acm.org>

	* src/gauche/weak.h, src/weak.c: Start adding weak hash table
	  (not finished yet).
	* src/hash.c: added Scm_HashCoreInitGeneral.

2007-04-20  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub (hash-table-clear!): added.

	* ext/net/net.c (init_winsock): typo fix for mingw.

2007-04-18  Shiro Kawai  <shiro@acm.org>

	* release 0.8.10

	* lib/www/cgi.scm (cgi-main): fix to make error handler called 
	  correctly.
	* src/system.c (copy_win32_path): bug fix on mingw.

2007-04-17  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/vminsn.scm, src/compile.scm: Inline inexact arithmetic
	  operators (+., -., *. and /., as NUMIADD2, NUMISUB2, NUMIMUL2, and
	  NUMIDIV2).  These operators are meant for performance tuning, so
	  it's better to make them as fast as normal operators.

	* ext/net/netlib.stub (inet-checksum): fix for big-endian machines.
	* src/hash.c (NOTFOUND): added missing 'return'.
	* src/gauche/bits.h (SCM_BITS_TEST): fix for 64bit platform

2007-04-16  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/cvt.scm (generate-utf8->eucj): fix for not generating
	  mappings from U+0080-U+009f range; they produced wrong EUC sequence,
	  causing troubles.  Now they are replaced to alternative characters.

2007-04-15  Shiro Kawai  <shiro@acm.org>

	* src/port.c, src/scmlib.scm, src/stdlib.stub, src/extlib.stub,
	  src/gauche/port.h:  Made current-{input|output|error}-port
	  like parameters, allowing replacing them.  Moved implementation
	  of with-input-from-port etc. to Scheme (scmlib.scm), hence dropping
	  them from extlib.stub.  Scm_WithPort is also dropped.
	  New API Scm_SetCurrentInputPort etc.
	  The old Scm_WithPort had a bug that didn't set a proper "before"
	  thunk for dynamic-wind.  The bug doesn't exist in the new version.

	* src/genstub (emit-definition): removed remanings of GAUCHE_SUBR_VM
	  support.
	  (<procstub>): moved several slots from <cproc> to fix define-cmethod.
	  (define-cmethod): fixed incorrectly placed close paren.
	  (parse-specialized-args): reversing parsed arglist.
	  (process-body-spec): removed remainings of GAUCHE_VMAPI_VM support

	* src/gauche/mingw-compat.h: added #undef small, for <windows.h>
	  defines 'small' to 'char'.
	
2007-04-13  Shiro Kawai  <shiro@acm.org>

	* lib/www/cgi.scm: Fixed a bug that hangs when Content-Length is zero
	  (Patch from Tatsuya BIZENN).

	* src/hash.c (Scm_HashIterInit, Scm_HashIterNext): changed so that
	  the initial iterator points "one before the first entry" and
	  the 'next' operation returns an entry after proceeding the pointer.
	  It is consistent with Scm_TreeMapInit/Next. - Nope.  Reverted.
	  If the caller happens to delete the curent entry from the table,
	  the new version of the iterator loses the iteration.  We can prevent
	  that by letting the iterator prefetch the next entry---but the code
	  to do prefetch is exactly the same the previous version was doing!
	  (The change would be visible if we have HashIterCurrent, but it
	  seems little use so we dropped it.  If we ever re-adopt
	  HashIterCurrent do not forget to keep the current entry pointer
	  as well as the 'next' prefetch pointer).

2007-04-11  Shiro Kawai  <shiro@acm.org>

	* src/write.c (Scm_Sprintf, Scm_SprintfShared, Scm_Vsprintf): added
	  convenience functions.
	* src/error.c : changed to use above new APIs.

	* src/load.c, src/gauche/load.h (Scm_Load, Scm_LoadFromPort,
	  Scm_Require): New APIs for better error handling.
	* src/read.c, src/main.c, src/extlib.stub, src/char.c:
	  changed accordingly.

2007-04-08  Shiro Kawai  <shiro@acm.org>

	* src/collection.c, src/gauche/colleciton.h: Make SCM_DICT_SET_VALUE
	  to check iff given value isn't an obviously illegal value (e.g. 
	  NULL or SCM_UNBOUND), for the safety.
	* src/module.c: Replaced old hashtable APIs for the new ones.

2007-04-07  Shiro Kawai  <shiro@acm.org>

	* src/char.c (Scm_CharSetLE): fixed a bug.

	* lib/gauche/test.scm: record "abort count", the # of test processes
	  aborted, as well.

	* src/hash.c, src/gauche/hash.h, src/gauche.h: Changed hashtable API
	  for consistency of dictionary API.  This introduces incompatibility
	  in Scm_HashIterInit and Scm_HashIterNext, which we provide the
	  backward compatibility routines by default; defining GAUCHE_API_0_9
	  make the new API visible.  Also we deprecate Scm_HashTableGet,
	  Scm_HashTablePut, and Scm_HashTableAdd, in favor of the new
	  APIs Scm_HashTableRef and Scm_HashTableSet.  (Scm_HashTableDelete
	  is also changed, but it only changes its return type which isn't
	  used much.)   All the "raw" hashtable support is dropped, in favor
	  of ScmHashTableCore.
	* src/class.c, src/extilb.stub, src/module.c: Changed to adapt the
	  new hashtable API.

2007-04-06  Shiro Kawai  <shiro@acm.org>

	* lib/text/progress.scm: fix.
	* examples/text-progress.scm: added.

2007-04-04  Shiro Kawai  <shiro@acm.org>

	* src/gauche/charset.h: splitted char-set related API decls.
	* src/char.c: rewrote ScmCharSet using ScmBits and ScmTreeCore.
	  API rename for consistency: Scm_CopyCharSet -> ScmCharSetCopy.
	* src/treemap.c: adjust some APIs based on the experience of
	  reimplementing ScmCharSet.

	* src/gauche/collection.h (ScmDictEntry): make 'key' member const.

2007-03-31  Shiro Kawai  <shiro@acm.org>

	* src/gauche/bits.h, src/bits.c: added ScmBits, generic bitarray
	  operation support.  A plan is to use this to cleanup charset
	  implementation and also for CL-ish bitvector.  Some other
	  datastuructures may take advantage of this.
	* src/char.c: using ScmBits for the small character maps.

	* src/core.c (init_cond_features): adds the feature gauche.sys.pthreads
	  if Gauche is compiled w/ pthread support.

	* src/syslib.stub (sys-symlink): defines sys-symlink conditionally,
	  with the feature identifier gauche.sys.symlink.

2007-03-28  Shiro Kawai  <shiro@acm.org>

	* src/core.c: defines the feature identifier gauche.sys.pthreads
	  if Gauche is compiled with pthreads enabled.

2007-03-27  Shiro Kawai  <shiro@acm.org>

	* test/system.scm: use sys-nanosleep instead of sys-sleep if
	  possible, to reduce the time of test.

	* ext/auxsys/auxsys.c (Scm_SetEnv): added a wrapper routine for
	  sys-putenv and sys-setenv, so that we can use whichever available
	  on the system.  Importantly, this will fix the leak problem of
	  sys-putenv on the common platform that supports setenv(3).
	* ext/auxsys/auxsys.scm: cleanup some cond-expands.

2007-03-26  Shiro Kawai  <shiro@acm.org>

	* src/stdlib.stub (vector-ref, vector-set!),
	  src/vector.c (Scm_VectorRef, Scm_VectorSet): we can't use ::<fixnum>
	  type for the index of vector-ref, since bignum is allowed if
	  fallback is also given.  Because of this, we moved range check
	  to stub, and made Scm_VectorRef not raise an error.  Similar change
	  on vector-set! for consistency.

	* src/vm.c (SCM_VEC_REF etc): fix error message.  if bignum is given
	  as an index, the message should be "out of bound" instead of
	  wrong type argument.

	* src/number.c (Scm_GetDouble): handles the corner case when ratnum
	  has very large denominator and/or numerator.

	* src/treemap.c, src/gauche/treemap.h: Renamed and cleaned up some
	  treemap API for the consistency.

2007-03-24  Shiro Kawai  <shiro@acm.org>

	* ext/net/net.ac: added a hack to avoid dragonfly's broken 
	  gethostbyaddr_r.

2007-03-23  Shiro Kawai  <shiro@acm.org>

	* configure.ac, gc/configure.in, gc/libtool.m4: Patched to support
	  DragonFly BSD.

	* ext/net/addr.c, ext/net/test.scm: struct in6_addr.s6_addr32 isn't
	  portable, so we roll our own.  also make sure we won't run ipv6
	  inet_pton/ntop if Gauche isn't configured with ipv6.  Patch from
	  Tatsuya BIZENN.

2007-03-22  Shiro Kawai  <shiro@acm.org>

	* ext/sxml/sxml-ssax.scm.in: extend text.parse as well, for
	  ssax:make-parser inserts assert-curr-char.

	* ext/mt-random/mt-random.c (mt_allocate): Seed initialization was
	  broken when seed is given to the initialization argument.
	  Consolidated mt-random-set-seed! and seed initialization into
	  Scm_MTSetSeed.

	* ext/net/netaux.scm, ext/net/netlib.stub, ext/net/net.c:
	  Implemented inet-address->string and inet-string->address in C,
	  using inet_pton and inet_ntop.

2007-03-21  Shiro Kawai  <shiro@acm.org>

	* ext/srfi/srfi-19-lib.scm (tm:directives): fix date formats to make
	  them iso-8601 compliant.

2007-03-16  Shiro Kawai  <shiro@acm.org>

	* ext/dbm/dbm.ac: checks for ndbm funcs in more libraries.
	* ext/xlink: allow no file arguments; depending on configuration,
	  both $(LIBFILES) and $(SCMFILES) can be empty in ext/Makefile.ext.
	* src/genconfig.in: be friendly to autoconf 2.60.

	* lib/gauche/dictionary.scm: dictionary generic functions.
	  experimental.
	* src/objlib.scm: added 'ref' and 'set!' methods for tree-map.

2007-03-15  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/icmp.scm: added ICMPv6 support.

	* ext/net/net.c, ext/net/netlib.stub (inet-checksum+): added
	  inet-checksum+, which can be used to combine checksums; handy
	  for IPv6 packet checksum calculation, for it requires including
	  pseudo-IPv6 header.  See RFC2460 sectin 8.1.
	  Nope! reverted.  Kernel takes care of IPv6 checksum, so we
	  don't need it.

2007-03-14  Shiro Kawai  <shiro@acm.org>

	* ext/net/addr.c (sockaddr_in6_allocate): fixed memory leak (missing
	  freeaddrinfo).

2007-03-12  Shiro Kawai  <shiro@acm.org>

	* src/error.c, src/gauche/exception.h: Dropped <application-exit>
	  exception; it doesn't work well.  The most annoying part is
	  that the exception may be shadowed by other exceptions if the
	  latter is thrown within the error handler; it does happen, for
	  example, in the cleanup clause of unwind-protect.  We still want
	  the applictation to exit without reporting stack trace even something
	  fails in cleanup handlers.  It seems that application-exit needs
	  different mechanism to trap (e.g. exit-handler) after all.

2007-03-11  Shiro Kawai  <shiro@acm.org>

	* src/number.c (Scm_RoundToExact), src/extlib.stub (round->exact etc):
	  implemented round->exact etc in C, for it can avoid some overhead
	  and makes them much faster.  Since the operation is so common I
	  think it's worth of it.
	* lib/gauche/numerical.scm, src/autoloads.scm: removed round->exact
	  etc, for they're in extlib.stub now.

2007-03-10  Shiro Kawai  <shiro@acm.org>

	* src/genconfig.in : Lets genconfig generate lib/gauche/config.scm,
	  so that gauche.config no longer needs to call gauche-config command.
	* lib/gauche/config.scm: Removed from repository, for it is now
	  generated by src/genconfig.

2007-03-09  Shiro Kawai  <shiro@acm.org>

	* src/Makefile.in (HOSTGOSH): reset GAUCHE_LOAD_PATH and 
	  GAUCHE_DYNLOAD_PATH to avoid unexpected interference.

	* ext/auxsys/auxsys.scm (sys-fdset): added a convenience constructor
	  of <sys-fdset>.

2007-03-06  Shiro Kawai  <shiro@acm.org>

	* lib/text/progress.scm: added.

	* src/gauche-init.scm, src/scmlib.scm: moved string-interpolate
	  read-ctor and <exception> definition from gauche-init.scm to
	  scmlib.scm.  We can't move three define-macro stuff yet, since
	  gencomp doens't preserve macro definitions, but eventually we
	  want to eliminate gauche-init.scm totally.
	* lib/gauche/numerical.scm, src/autoloads.scm: added
	  round->exact, floor->exact, ceiling->exact and truncate->exact.

2007-03-05  Shiro Kawai  <shiro@acm.org>

	* src/main.c: Added -F<feature> option and -L<file> option.

2007-03-04  Shiro Kawai  <shiro@acm.org>

	* src/main.c: Handle <application-exit> during execution of 'main'
	  procedure.

	* lib/gauche/process.scm: Added support of remove execution by
	  :host keyword argument.

	* ext/net/addr.c: Allow <sockaddr-in> and <sockaddr-in6> constructors
	  to take integer and u8vector IP address as :host initializer
	  keywords.
	* ext/net/netlib.stub, ext/net/netaux.scm: Implements sockaddr-name
	  of <sockaddr-in> and <sockaddr-in6> in Scheme, since now we have
	  inet-address->string so they're more concise in Scheme.
	* ext/net/net.c (socket-setsockopt): Accepts uniform vector as
	  a value.  We'll phase out the use of string as a binary data
	  and replace them for uvectors.

2007-03-03  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/time.scm: use inexact arithmetics to avoid the timer
	  results being ratnums.

	* src/number.c (div_internal): fix: (/ 0 <inexact-number>) must be
	  the inexact zero, not the exact zero.
	* src/extlib.stub: added inexact arithmetics: +. -. *. /.

	* ext/net/netaux.scm: added inet-address->string, inet->string->address
	  and inet-string->address! (these have replaced the provisional
	  address parsers in rfc.ip).

2007-03-01  Shiro Kawai  <shiro@acm.org>

	* ext/net/net.c: cleaned up winsock-specific code using
	  Scm_AddCleanupHandler.  Also add the feature gauche.net.ipv6
	  conditionally.

	* src/core.c (Scm_AddFeature): Moved cond-features management code
	  here from load.c, and cleaned up API.
	* src/intlib.stub (cond-features): ditto.
	* lib/srfi-0.scm (cond-expand): ditto.

	* src/genstub: added 'when' directive.

	* src/char.c: added a feature, either one of gauche.ces.utf8,
	  gauche.ces.sjis, gauche.ces.eucjp, or gauche.ces.none, according
	  to the compile-time option.
	* src/syslib.stub: conditionally add features: gauche.sys.sigwait,
	  gauche.sys.nanosleep, gauche.sys.crypt, gauche.sys.symlink,
	  gauche.sys.readlink, gauche.sys.select.
	* ext/auxsys/*: conditionally add features: gauche.sys.realpath,
	  gauche.sys.getloadavg, gauche.sys.putenv, gauche.sys.setenv,
	  gauche.sys.unsetenv, gauche.sys.lchown.
	* ext/fcntl/fcntl.c: conditionally add a feature: gauche.sys.fcntl.
	* ext/termios/termiolib.stub: conditionally add features:
	  gauche.sys.openpty, gauche.sys.forkpty.
	* ext/syslog/syslog.stub: conditionally add features: 
	  gauche.sys.syslog, gauche.sys.setlogmask

2007-02-26  Shiro Kawai  <shiro@acm.org>

	* src/error.c, src/vm.c, src/gauche/exception.h: Support
	  <application-exit> condition experimentally.

2007-02-24  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/ip.scm: added ip-parse-address and ip-parse-address!

2007-02-21  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/*: added Scm_UVectorSizeInBytes and uvector-size to
	  get uvector's size in bytes.  Useful to treat uvectors as a
	  binary buffer.
	* ext/binary/binary.c: changed to use above API.
	
	* ext/net/netlib.stub: added inet-checksum routine; the same checksum
	  routine is used for various protocols, so it may be worth to have
	  it (and it's pretty fast in C).
	
	* lib/rfc/ip.scm: Added experimentally.

2007-02-20  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/uri.scm (uri-encode-string, uri-decode-string): Support
	  :encoding keyword argument.
	  (*rfc2396-unreserved-char-set*, *rfc3986-unreserved-char-set*):
	  Export two slightly different "unreserved" char set, so that
	  the application can choose (or modify from) either one.
	  (uri-encode): Change the default :noescape value to
	  *rfc3986-unreserved-char-set*.  Patch by Tatsuya BIZENN.

	* ext/net/*: Added socket-recv! and socket-recvfrom!.  Changed
	  socket-send and socket-sendto to accept uniform vectors as well
	  as strings.  These are a part of shift towards using uniform
	  vectors uniformly for binary data, instead of strings.

	* lib/rfc/icmp.scm: added experimentally.

	* ext/binary/*: reconsidered and changed the argument order of put-*!
	  to be consistent with u*vector-set!; after some coding I found that
	  the original one was too confusing.

2007-02-19  Shiro Kawai  <shiro@acm.org>

	* configure.ac: added check for sys/types.h; gauche.h includes it
	  unconditionally, but some configure check (on some specific OS)
	  needs it to be included, so it is convenient to force all checks
	  include sys/types.h.  (Specifically, sys/socket.h requires
	  sys/types.h on older MacOSX).

	* ext/binary/*: Made default-endian a parameter; it eliminates
	  need to provide endian argument in almost all cases.
	  The peculiar endianness of double floats in ARM processors are
	  supported as arm-little-endian.
	  Renamed read-binary-uint8 etc. to read-u8 etc. for
	  brevity and consistency with uniform vectors (old names are
	  supported for the compatibility, but deprecated).
	  Added support of read from and write to uniform vectors.

2007-02-18  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/*, src/read.c: added f16vector support.  changed
	  {s,u}{8,16} unbox routine to use the new conversion API below.

	* src/gauche/number.h, src/number.c: Introduced ScmObj -> C integer
	  conversion routines for u8, s8, u16, and s16.

2007-02-17  Shiro Kawai  <shiro@acm.org>

	* src/gauche/parameter.h, src/parameter.c: Cleaned up Parameter-related
	  API.  Introduced ScmParameterLoc and Scm_DefinePrimitiveParameter
	  to make it easier to create and access (builtin) parameters from C.
	* src/vm.c, src/gauche/vm.h, src/gauche.h, src/extlib.stub: Changed
	  accordingly.

	* src/number.c (Scm_HalfToDouble, Scm_DoubleToHalf): Added conversion
	  functions for 16-bit float (half).
	* src/gauche/float.h: added.
	* configure.ac, src/gauche/config.h.in: added checks for uint16_t
	  and long double.
	* src/test-arith.c: added tests for 16-bit float support.
	* ext/binary/binarylib.stub, ext/binary/binary.c, ext/binary/io.scm:
	  added {read|write}-binary-half-float.

2007-02-16  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/test.scm: Added an experimental feature to report
	  the total test result across multiple test processes.  If
	  the environment variable GAUCHE_TEST_RECORD_FILE is defined,
	  gauche.test accumulates the test result stats into the named
	  file.
	* Makefile.in, src/Makefile.in, ext/Makefile.ext.in: modified
	  to support the above feature.

2007-02-13  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm (iform-copy-lvar): fixed bug (compared lvars
	  by assoc, now by assq).  Patch from Rui Ueyama.

2007-02-12  Shiro Kawai  <shiro@acm.org>

	* src/treemap.c, src/gauche/treemap.h, lib/gauche/treeutil.scm:
	  Added native support of red-black tree, for it is useful to
	  implement efficient char-set, character attribute map, and
	  readtable.
	* src/collection.c, src/gauche/collection.h: Besides <collection>
	  and <sequence>, added two more abstract classes, <dictionary>
	  and <ordered-dictionary>.  These files implement some of
	  common stuff for these classes.
	* src/hash.c: Now inherits <dictionary> as well.
	* src/genstub: added <tree-map> as a builtin type.
	* src/extlib.stub: added some tree-map native cprocs.
	* src/autoloads.scm: added autoloads for gauche.treeutil.

	* lib/util/rbtree.scm: removed the previous content and changed
	  to use builtin tree-map.  This is kept for the backward
	  compatibility.

2007-02-10  Rui Ueyama  <rui314@gmail.com>

	* src/char.c (charset_print): write a character at once instead of
	  byte-by-byte.

	* src/write.c: fixed a bug of handling multibyte character,
	  causing Scm_WriteLimited to raise an error.

2007-02-09  Rui Ueyama  <rui314@gmail.com>

	* test/rfc.scm: Added tests for rfc.html module.

	* lib/rfc/http.scm: Added <http-error>.  Fixed a bug in the case
	  of HTTP request is redirected, causing malformed request-line is
	  sent to a server.

2007-02-04  Shiro Kawai  <shiro@acm.org>

	* lib/www/cgi/test.scm: Renamed www.cgi-test module to www.cgi.test
	  module (www.cgi-test is kept for backward compatibility).

	* src/port.c, src/gauche.h (Scm_GetOutputString,
	  Scm_GetOutputStringUnsafe, Scm_GetRemainingInputString): API CHANGE:
	  New API takes string constructor flags.  Compatibility macros
	  are provided by default; defining GAUCHE_API_0_9 makes the new
	  API visible.

	* src/gauche/string.h: Splitted String API.
	* src/string.c, src/extlib.stub: Removed string mutating APIs:
	  Scm_StringSet(), Scm_StringByteSet(), Scm_StringSubstitute(),
	  and Scm_StringFill().  Since string bodies are immutable,
	  there's little advantage for providing these operations in C.
	  Instead, String_ReplaceBody() and Scheme-level
	  %string-replace-body! are added.  Scheme-level string mutators
	  are built on top of this.
	* src/scmlib.scm: Defines string-set!, string-byte-set! and
	  string-fill! here.  Note: There's no more string-substitute!.
	* libsrc/srfi-13.scm: Changed string-copy!, string-upcase!,
	  string-downcase!, string-titlecase!, string-reverse!,
	  string-map! and string-xcopy! to use %string-replace-body!
	  instead of string-substitute!.

2007-02-02  Shiro Kawai  <shiro@acm.org>

	* src/core.c (Scm_GC): added an API to trigger GC.

	* src/gauche.h (SCM_NEW_ATOMIC_ARRAY): added for consistency.

	* src/gauche/symbol.h, src/gauche/gloc.h, src/gauche/keyword.h,
	  src/gloc.c, src/Makefile.in:  Reorganized the sources.

2007-02-01  Shiro Kawai  <shiro@acm.org>

	* ext/dbm/dbm.ac, ext/dbm/dbmconf.h.in, ext/dbm/ndbm.stub,
	  ext/dbm/odbm.stub: Some platform has gdbm-ndbm.h etc., and/or
	  requires -lgdbm_compat, for dbm/ndbm compatibility.  Added
	  autoconf stuff to detect that.  It became unnecessarily complicated
	  because of the defect of autoconf design (its name translation
	  scheme can't distinguish gdbm/ndbm.h and gdbm-ndbm.h!)

	* test/system.scm: Changed tests for mkdir/chmod/fchmod to tolerate
	  the case that the directory is sgid-ed.

	* lib/gauche/process.scm (run-process): Changed the API to be
	  consistent with other keyword-argument taking procedures.
	  Old API is still supported but deprecated.  The reasons of
	  the change are (1) STk compatibility is much less important
	  now, and (2) it's easier to write code that calls run-process
	  if it takes keyword arguments canonically.

2007-01-30  Rui Ueyama  <rui314@gmail.com>

	* src/read.c (read_internal, process_sharp_comma), src/gauche.h:
	  avoid evaluating SRFI-10 sharp-comma expression within SRFI-62
	  S-expression comment.

2007-01-21  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/package/compile.scm
	  (gauche-package-link, gauche-package-compile): let them recognize
	  extra keyword args, for such keywords can be passed via
	  gauche-package-compile-and-link.	  

	* lib/www/cgi-test.scm (call-with-cgi-script): added :on-abnormal-exit
	  :ignore to call-with-process-io.  (Note: the proper fix may be to
	  mask SIGPIPE when running the child process instead of ignoring
	  the error.)

2007-01-21  Rui Ueyama  <rui314@gmail.com>

	* lib/gauche/common-macros.scm (let-keywords): added let-keywords.
	* src/autoloads.scm, test/procedure.scm: changed accordingly.

	* lib/gauche/common-macros.scm (let-keywords*): issue a warning if
	  given argument list contains unknown keyword.  It will be
	  changed to raise an error soon.

	* src/genstub (define-cproc etc.): added check for unknown keyword
	  parameter.  A new keyword argument, &allow-other-keys is
	  introduced to disables the checking.

	* ext/charconv/convaux.scm, ext/net/netaux.scm,
	  ext/vport/vport.scm, lib/dbi.scm, lib/dbm.scm,
	  lib/file/filter.scm, lib/gauche/libutil.scm,
	  lib/gauche/package.scm, lib/gauche/portutil.scm,
	  lib/gauche/process.scm, lib/gauche/test.scm,
	  lib/gauche/package/build.scm, lib/gauche/package/compile.scm,
	  lib/gauche/package/fetch.scm, lib/gauche/package/util.scm,
	  lib/gauche/vm/profiler.scm, lib/net/client.scm, lib/rfc/822.scm,
	  lib/rfc/hmac.scm, lib/rfc/telnet.scm, lib/rfc/uri.scm,
	  lib/text/diff.scm, lib/text/html-lite.scm, , lib/text/tr.scm,
	  lib/www/cgi-test.scm, lib/www/cgi.scm, libsrc/file/util.scm,
	  libsrc/gauche/collection.scm, libsrc/gauche/sequence.scm:
	  changed to use let-keywords instead of let-keywords* or
	  get-keyword.

	* ext/threads/test.scm: typo fix.

	* ext/uvector/uvseq.scm: call-with-iterator for uniform vector
	  classes didn't recognize `:size' keyword.

	* lib/binary/pack.scm: removed unused variable `keys'.  added
	  keyword check.

2007-01-21  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/process.scm: added a mechanism to handle child process'
	  abnormal exit status via <process-abnormal-exit> condition.
	  This changes the default behavior of process port procedures,
	  which used to ignore nonzero exit status, now raises an error.
	  To get the old behavior, add ':on-abnormal-exit :ignore' to
	  the call of those procedures.

2007-01-18  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/convaux.scm, ext/dbm/gdbm.scm, ext/net/netaux.scm,
	  ext/uvector/uvgen.scm, lib/dbm.scm, lib/file/filter.scm,
	  lib/gauche/cgen.scm, lib/gauche/interpolate.scm, 
	  lib/gauche/libutil.scm, lib/gauche/parseopt.scm,
	  lib/gauche/process.scm, lib/gauche/redefutil.scm,
	  lib/gauche/test.scm, lib/gauche/interactive/info.scm,
	  lib/gauche/package/fetch.scm, lib/rfc/mime.scm,
	  lib/text/gettext.scm, lib/www/cgi.scm, libsrc/file/util.scm,
	  src/compile.scm: Replaced 'with-error-handler' for 'guard' or
	  'unwind-protect'.   There are some left in src/scmlib.scm, which
	  should be replaced after the next release, since 0.8.9 doesn't
	  know about unwind-protect yet so it wouln't build the CVS HEAD
	  if we replace them now.

	* lib/rfc/ftp.scm: Added.  Based on the contribution from
	  OOHASHI Daichi.

2007-01-17  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/common-macros.scm (unwind-protect): added unwind-protect,
	  finally.
	* src/autoload.scm: changed accordingly.

	* release 0.8.9

2007-01-16  Shiro Kawai  <shiro@acm.org>

	* ext/net/net.ac: on mingw, we need to inlcude <windows.h> to check
	  struct sockaddr_storage.

	* ext/srfi/srfi-19-lib.scm: make julian-day calculation in inexact
	  numbers to avoid the huge overhead of rational arithmetic.
	* config.guess, config.sub: updated to the newer version.

2007-01-15  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h: reintroduced the compatibility macros for Scm_Eval,
	  Scm_EvalCString and Scm_Apply, since there are extension packages
	  that need more time to migrate.  By default, these are defined
	  to Scm_EvalRec etc.  If GAUCHE_API_0_8_8 is defined, these becomes
	  the new APIs.

2007-01-14  Shiro Kawai  <shiro@acm.org>

	* src/signal.c (Scm_SigWait): Added a wrapper of sigwait to ensure
	  removing signal handlers for the signals to wait.  The behavior
	  of sigwait with signal handlers is underined in the spec, and
	  it causes unpleasant effect on some systems.  We also need to ensure
	  removing signals from the passed masks that are not under control
	  of Gauche.
	  (sig_handle): treat signalPendingLimit == 0 case separately to avoid
	  potential overflow of sigcounts.

2007-01-13  Shiro Kawai  <shiro@acm.org>

	* src/system.c (Scm_GlobDirectory): dropped SCM_SYSCALL around
	  glob(), since it doesn't necessarily return a negative value
	  on error, and it doesn't necessarily set errno.  Well, eventually
	  this function should go away, but for the time being this fix
	  may be effective.

	* gc/darwin_stop_world.c (GC_stop_world): applied a patch posted
	  to gc-list by Allan Hsu that prevents SEGV on OSX.

	* src/class.c (find_core_allocator): added more precise check for
	  inheritance; the previous code incorrectly rejected a valid
	  inheritance in which more than one BASE class are included but
	  they form a single inheritance.  The previous code also incorrectly
	  accepted a class that inherits from BUILTIN class.

2007-01-11  Shiro Kawai  <shiro@acm.org>

	* src/syslib.stub (sys-fchmod): added.  Patch from UEYAMA Rui.

	* lib/slib.scm.in: adapted to slib3a4 changes.  Based on a patch
	  by YOKOTA Hiroshi.  There're some hacks to make it work with
	  both old and new slibs.

2007-01-10  Shiro Kawai  <shiro@acm.org>

	* src/signal.c:
	  (Scm_SetSignalHandler): set up C-level signal handler so that all
	  signals are blocked during its execution, in order to avoid race
	  condition.
	  (sig_handle): interpret signalPendingLimit==0 as no limit.

2007-01-09  Shiro Kawai  <shiro@acm.org>

	* src/signal.c, src/gauche/vm.h: changed signal handling; we no longer
	  queue the signals; instead the C-level signal handler just counts
	  what signals it received.  The order of signal arrival isn't
	  preserved, but it's ok for most Unixes doesn't guarantee that
	  anyway.  The upper limit of the # of occurrences of the same
	  signal before	VM handles them can be configured by
	  set-signal-pending-limit; if the signals excceds this limit,
	  Scm_Abort() is called.
	* src/syslib.stub (set-signal-pending-limit, get-signal-pending-limit):
	  added.

2007-01-09  Rui Ueyama  <rui314@gmail.com>

	* configure.ac, src/syslib.stub, test/system.scm,
	  src/gauche/config.h.in : added sys-sigwait
	
2007-01-08  Shiro Kawai  <shiro@acm.org>

	* Makefile.in, src/Makefile.in, ...: added datarootdir = @datarootdir@
	  definition for autoconf 2.60 and after.  It works for both pre-2.60
	  and 2.60; pre-2.60 leaves @datarootdir@ as is, but no other place
	  refers $(datarootdir) so it is ok; for 2.60, @datadir@ is replaced
	  for reference of $(datarootdir), so it also works.

2007-01-07  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/listener.scm (listener-read-handler): fixed a bug
	  that exits the listener when an error is signaleld during
	  evaluation.  This fix is temporary; more complete fix is required.

	* src/mingw-exify : Adapted to Scm_Apply API change.

	* src/signal.c (Scm_SetSignalHandler, Scm_SigCheck): Added "mask"
	  argument to Scm_SetSignalHandler so that one can ensure a signal
	  handler is executed while certain signals are blocked.
	  Also added Scm_GetSignalHandlerMask().
	* src/syslib.stub (set-signal-handler!, get-signal-handler-mask):
	  changed accordingly.

	* src/scmlib.scm (sys-sigset): added the convenience function.

2007-01-06  Shiro Kawai  <shiro@acm.org>

	* configure.ac: Removed warning of defaulting encoding to utf-8.
	  0.8.9_pre1.

2007-01-03  Shiro Kawai  <shiro@acm.org>

	* src/number.c (Scm_Mul): fixed a silly bug in the short cut paths,
	  which resulted (* +i 0.0) => +i etc.

2006-12-26  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/process.scm (%run-process): Fixed a leak bug that didn't
	  delete a process from the active process list if :wait #t is
	  given.  Thanks for Tomas Stanek to point this out.

2006-12-21  Shiro Kawai  <shiro@acm.org>

	* lib/dbi.scm (dbi-execute-query): fixed a wrong way of passing
	  :pass-through arg to dbi-do.  This bug only surfaced if the
	  app was using compatibility APIs.

2006-12-09  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (run_loop): fix tail-recursive APPLY.

	* src/compile.scm (pass2/$LREF): Added a check for circle in
	  initialization of local variables introduced by letrec.  It
	  have caused an infinite loop in the compiler.  Patch from
	  Rui Ueyama.

2006-12-08  Shiro Kawai  <shiro@acm.org>

	* src/hash.c (Scm_EqvHash): didn't considered RATNUMs.

2006-12-06  Shiro Kawai  <shiro@acm.org>

	* vm.c: removed obsoleted experimental code (SMALL_REGS switch and 
	  SAVE_REGS/RESTORE_REGS stuff).

2006-11-30  Shiro Kawai  <shiro@acm.org>

	* src/string.c (get_string_from_body), src/gauche.h: Avoid accessing
	  out-of-bound element of the string content to check whether the
	  string is NUL-terminated.  Instead, we introduced a new flag
	  SCM_STRING_TERMINATED to track whether the string content is
	  NUL-terminated.
	  Also we deprecate SCM_MAKSTR_* flags, and consolidated them to
	  SCM_STRING_* flags.
	* various files: Replaced SCM_MAKSTR_* flags for SCM_STRING_* flags.

2006-11-27  Shiro Kawai  <shiro@acm.org>

	* src/number.c (Scm_InexactToExact): Rule out NaN and Inf before
	  applying modf.

2006-11-26  Shiro Kawai  <shiro@acm.org>

	* src/intlib.stub (global-call-type): Experimentally added a feature
	  to record modules used during expansion, to be used by test-module
	  later.

2006-11-23  Shiro Kawai  <shiro@acm.org>

	* src/regexp.c (Scm_RegMatchStart etc.): Optimized counting length
	  of submatch strings.  Patch from Rui Ueyama.

2006-11-20  Shiro Kawai  <shiro@acm.org>

	* src/class.c (Scm__InitClass): Added missing initialization of
	  <rational> class.  

2006-11-19  Shiro Kawai  <shiro@acm.org>

	* src/string.c (substring): avoid counting characters when the end
	  of the substring is equal to the end of the source string.
	  Patch from Rui Ueyama.

	* src/vm.c (Scm_NewVM): a newly created VM didn't inherit current
	  ports from the prototype.  This became visible when a new thread
	  was created when current ports were bound to ports other than
	  the standard ones.

2006-11-17  Shiro Kawai  <shiro@acm.org>

	* src/main.c (main): the change to use the new Scm_Apply was
	  incorrect; (1) it returns exit_code == 0 when 'main' returns
	  non-integer, and (2) it exits silently when non-captured
	  error occurs.

	* lib/gauche/condutil.scm (define-condition-type): automatically add
	  :init-keyword to slots, for the convenience.  Based on the patch
	  from Rui Ueyama.

2006-11-15  Shiro Kawai  <shiro@acm.org>

	* src/class.c (Scm__InternalClassName): make sure to return a string,
	  for some code in error.c assumes a string and SEGVs otherwise.

2006-11-13  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/gauche.h: removed compatibility stuff about
	  Scm_Eval etc.

2006-11-12  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (Scm_EvalCStringRec): typo fix (was: Scm_EvalRecCString).

	* src/gauche.h, src/gauche/vector.h: splitted vector API header.

	* src/compile.scm (case, cond): Applied srfi-61/srfi-87 patch from
	  Rui Ueyama.

2006-11-11  Shiro Kawai  <shiro@acm.org>

	* release 0.8.8

2006-11-10  Shiro Kawai  <shiro@acm.org>

	* configure.ac, src/gauche/config.h.in (sunmath): Solaris's compiler
	  provides isinf() in a separate header/library.  Added checks for it.
	
	* src/class.c (unlock_class_redefinition): reset
	  class_redefition_lock.owner to NULL as well, otherwise the
	  redefinition lock keeps other threads waiting until the lock holding
	  thread terminates.

	* src/number.c (SCM_IS_INF): Provide an alternative function when
	  the system does not provide isinf().  We used to inline the check,
	  but some version of gcc appears to assume incorrectly the condition
	  would never be satisfied and optimizes it away.  (It happened on
	  gcc-3.3.2/Solaris 5.9/i86pc).

	* lib/gauche/logger.scm: We can't determine lock policy statically,
	  since the lock file may be placed on a filesystem that doesn't
	  support fcntl lock.  So I changed the lock policy to be dynamically
	  determined at the first access to the file-based log drain.

2006-11-09  Shiro Kawai  <shiro@acm.org>

	* INSTALL.in, doc/extract: moved away from escm to generate INSTALL
	  and INSTALL.eucjp, since it is awkward for escm to handle eucjp doc
	  with utf-8 gauche.  Instead I use doc/extract.

	* src/vm.c (Scm_VMDefaultExceptionHandler),
	  src/gauche/vm.h (ScmEscapePoint): added a flag in ScmEscapePoint
	  to specify whether the dynamic handlers should be rewind before
	  or after the error handler is invoked.  Legacy with-error-handler
	  assumes they are invoked after the error handler.  SRFI-34's guard
	  requires the handler clauses are invoked after the dynamic env
	  is rewound.  It may be better to change with-error-handler semantics,
	  but for now, we go with this flag.  Do not count on this flag
	  kept in future.
	* src/exclib.stub (with-error-handler): added a keyword arg to
	  set the ScmEscapePoint flag mentioned above.  This is a temporary
	  solution; applications should not cound on this feature.
	* lib/gauche/common-macros.scm (guard): fixed guard semantics
	  to conform srfi-34, using the above feature.
	  

2006-11-08  Shiro Kawai  <shiro@acm.org>

	* ext/sxml/sxml-tools.scm.in: Avoid mutual dependency between
	  sxml.sxpath and sxml.tools by autoloads.

	* configre.ac, src/gauche/config.h.in, src/syslib.stub (HAVE_CRYPT_H):
	  Adds crypt.h if exists, to suppress warnings.  Patch from
	  David Mosberger-Tang and YAEGASHI Takeshi.

	* ext/dbm/gdbm.stub (gdbm-open): improved error message.

	* src/read.c (ref_val): added missing type declaration of the argument,
	  which became a problem on 64bit architecture.  Patch from
	  David Mosberger-Tang and YAEGASHI Takeshi.

	* lib/gauche/test.scm (closure-grefs): fixed to trace code in the
	  internal closures.  Thanks to Rui Ueyama.
	* ext/srfi/srfi-19-lib.scm, ext/sxml/sxml-sxpath.scm.in, 
	  ext/sxml/sxml-tools.scm.in, ext/sxml/sxml/adaptor-scm,
	  lib/text/gettext.scm, lib/util/stream.scm: fixed the undefined
	  global reference found by the above patch.

	* gc/darwin_stop_world.c, gc/include/private/gc_priv.h,
	  gc/os_dep.c: Applied Allan Hsu's GC patch for Xcode-2.4/OSX.

	* gc/*: bumped to Boehm GC 6.8.

2006-11-07  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h: define SCM_ILLEGAL_CHAR_* enums to specify illegal
	  character handling mode.
	
	* src/string.c, src/extlib.stub: add 'handling' argument to
	  string-incomplete->complete, so that the caller can ensure to
	  obtain a complete string by omitting or replacing incomplete
	  chars in the original string.  The linear-update versions,
	  string-complete->incomplete! and string-incomplete->complete!,
	  are obsoleted (the latter is kept for backward compatibility,
	  but will go away soon).

	* src/gauche/char_utf_8.h (scm_CharUtf8Getc): more strict error
	  checking.

2006-11-05  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h (ScmModule): added a field to track module dependency.

	* src/error.c (Scm_TypeError): added a convenience API to report
	  argument type error.

2006-11-04  Shiro Kawai  <shiro@acm.org>

	* src/gauche/port.h (PORT_SAFE_CALL): Remove bogus check of lockOwner.

	* src/class.c (lock_class_redefinition): There was an off-by-one
	  error in the recursive lock count.

2006-11-02  Shiro Kawai  <shiro@acm.org>

	* gauche.h, vm.c (Scm_Eval etc.): changed my mind about the names
	  of the new Eval API.  If GAUCHE_API_0_8_8 is defined before including
	  gauche.h, Scm_Eval, Scm_EvalCString and Scm_Apply have the new
	  APIs (the old ones are accessible as Scm_EvalRec etc.).  If 
	  GAUCHE_API_0_8_8 is not defined, Scm_Eval, Scm_EvalCString
	  and Scm_Apply have the original API (and Scm_EvalRec etc., are
	  also available).  This helps the transition, while maintaining
	  compatibility and avoid further extra names like SafeEval.
	  NB: I'm still not sure about what Scm_Eval etc. should return.
	  May change my mind again.
	* various files: updated accordingly.

2006-10-29  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (Scm_SafeEval etc.): The previous version was broken.
	  Needed to set up error handler properly.

2006-10-28  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h, src/vm.c (Scm_SafeEval): Added convenient and robust
	  API to call Scheme program casually from C code.  Scm_Safe* APIs
	  catch errors and returns the info in the packet.  They also handle
	  multiple values.
	  The existing Scm_Eval and Scm_Apply are renamed to Scm_EvalRec
	  and Scm_ApplyRec, for they call VM recursively.  The old names
	  are #defined for backward compatibility.  The plan is to give
	  Scm_Eval etc. to Scm_SafeEval eventually.  The reason is that
	  Scm_EvalRec etc. are not really for end-user programming, since
	  handling errors are still cumbersome.  Scm_SafeEval is more
	  intuitive that it (almost) always returns, error or no error.
	  So Scm_SafeEval is more suitable to get the simpler name, Scm_Eval.

2006-10-21  Shiro Kawai  <shiro@acm.org>

	* ext/net/test.scm: On some systems IPv6 loopback host name isn't
	  "localhost" by default, so we apply some heuristics.  Patch from
	  Rui Ueyama.

	* src/number.c (read_real): some fixes to handle divide-by-zero cases.
	  Patch from OOHASHI Daichi.

	* lib/util/rbtree.scm, test/util.scm, lib/Makefile.in:
	  added util.rbtree, contributed from Rui Ueyama.

2006-10-20  Shiro Kawai  <shiro@acm.org>

	* libsrc/gauche/collection.scm: original 'fold' is now built-in
	  instead of srfi-1.
	* libsrc/gauche/sequence.scm (fold-right): added generic version
	  of fold-right.  It is sequence's operation, since collections
	  don't care about the order of elements.

2006-10-18  Shiro Kawai  <shiro@acm.org>

	* src/port.c (Scm_FlushAllPorts): fixed MT-hazard in Scm_FlushAllPorts.

	* src/number.c (read_real): Fixed the behavior when too big or
	  too small exponent is given.  Also fixed the handling of explicitly
	  exact fractional numbers (e.g. #e12.34e3 or #e4e-2).

2006-10-16  Shiro Kawai  <shiro@acm.org>

	* lib/util/list.scm (cond-list): extended the syntax to allow
	  splicing, using '@' modifier.
	* lib/util/trie.scm (make-trie): revised using new cond-list syntax.

2006-10-15  Shiro Kawai  <shiro@acm.org>

	* lib/util/trie.scm, lib/Makefile.in, test/util.scm: Added util.trie
	  module, contributed by OOHASHI Daichi and other people on WiLiKi.

2006-10-14  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub (boolean): added boolean procedure, which is
	  just (compose not not), but convenient if you want to guarantee
	  the returned value is boolean.

2006-10-07  Shiro Kawai  <shiro@acm.org>

	* ext/threads/threads.h:
	  ScmConditionVariable and ScmMutexRec should have SCM_INSTANCE_HEADER,
	  for they are BASE class (I'm not sure whether I should let them
	  inheritable or not, so I may revert this and change them to
	  BUILTIN class in future; but for now, let's maintain the
	  consistency.)

	* src/write.c (Scm_WriteCircular, Scm_WriteLimited):
	  Fix for write/ss is called during walk pass of outer write/ss.
	  Patch from Rui Ueyama.

	* ext/charconv/convaux.scm (%open-{input|output}-file/conv): 
	  Avoid creating conversion ports when it is unnecessary.
	  Patch from Tatsuya BIZENN.

	* configure.ac: bumped to 0.8.8_pre1.

	* ext/sxml/src/serializer.scm, ext/sxml/sxml-serializer.scm.in,
	  ext/sxml/Makefile.in, doc/modutil.texi:
	  Added sxml.serializer module, a customizable SXML serializer.
	  Original code is by Dmitry Lizorkin.  Ported to Gauche and
	  documented by Leonardo Boiko.

	* ext/sxml/test.scm:
	  Added simple tests for sxml.serializer

2006-10-06  Shiro Kawai  <shiro@acm.org>

	* src/number.c (Scm_Div, Scm_DivInexact): provide backward-compatible
	  version of division, Scm_DivInexact, which returns flonum when
	  arguments are exact integers and the result isn't a whole number.
	* src/extlib.stub (inexact-/): make the backward-compatible version
	  of division as 'inexact-/'.
	* lib/compat/norational.scm: when used, redefines '/' by 'inexact-/',
	  so that the existing code that counts on the old behavior can
	  work as before.

2006-10-05  Shiro Kawai  <shiro@acm.org>

	* src/port.c (register_buffered_port): Run global GC when the port
	  vector gets full, so that we may be able to clean up some entries
	  for garbaged ports.  I also found unregister_buffered_port wasn't
	  necessary.  See the comment titled "Tracking buffered ports" in
	  the source.
	  The original fix is provided from Michal Maruška.

2006-10-01  Shiro Kawai  <shiro@acm.org>

	* ext/srfi/srfi-19-lib.scm (date->string): allow '@' option in
	  the format directive (e.g. ~@b) to gurantee the 'C' locale is
	  used.  Since srfi-19 only provides locale-sensitive directives
	  for month and day-of-week names, without such extention you
	  cannot write a library whose output isn't affected with locale 
	  settings.

2006-09-30  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/cookie.scm (construct-cookie-string): accepts srfi-19
	  <time> and <date> as well as number and string for :expires
	  argument.

	* src/write.c (Scm_Vprintf): fixed lone '%' in the printf format
	  string.

2006-09-28  Shiro Kawai  <shiro@acm.org>

	* libsrc/util/match.scm: fixed a bug that multiple values were not
	  handled properly under the existence of failure continuations.
	  Failure handler was expanded into (k <body>), which should be
	  (call-with-values (lambda () <body>) k).

2006-09-25  Shiro Kawai  <shiro@acm.org>

	* src/system.c (Scm_YieldCPU): typo fix.

2006-08-27  Shiro Kawai  <shiro@acm.org>

	* libsrc/file/util.scm: fixed directory-fold to make lister returns
	  new seed value as well as directory contents, so that it can process
	  directory pathnames.

2006-08-03  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/822.scm (rfc822-date->date): fixed treatment of sub-hour
	  timezone value.

2006-07-25  Shiro Kawai  <shiro@acm.org>

	* src/gauche/system.h, src/gauche.h : splitted system-related API
	  declarations to gauche/system.h.

2006-07-22  Shiro Kawai  <shiro@acm.org>

	* src/gauche/port.h (PORT_LOCK, PORT_UNLOCK, ScmPort): fixed a race
	  condition caused from PORT_UNLOCK having not been an atomic
	  operation (setting lockOwner, then calling cond_signal).  Now
	  we drop using condition variable, which also decreases overhead.
	  See the comment for more detailed discussion.

	* src/system.c (Scm_YieldCPU): added an API to yield CPU.

	* ext/thread/thread.c, ext/thread/thrlib.stub (thread-yield!):
	  changed to use Scm_YieldCPU.  Dropped Scm_ThreadYield.

2006-07-18  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/charconv.c (conv_input_closer): Fixed file descriptor
	  leak by adding code to close the source port if the input port
	  owns it.  Tracked down by Tatsuya BIZENN.

	* lib/gauche/vm/profiler.scm (show-stats): properly round the result
	  of division so that the result won't be shown as a rational number.

2006-07-05  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h, src/gauche/port.h: splitted public port API
	  into port.h.

2006-07-04  Shiro Kawai  <shiro@acm.org>

	* ext/net/net.ac, ext/net/gauche/net.h (struct sockaddr_storage): added
	  check for struct sockaddr_storage and provides an alternative
	  if the system doesn't have it.  Also rewrote the check of
	  SIN_LEN etc by AC_CHECK_MEMBERS.
	* ext/net/net.c (Scm_SocketRecvFrom): fixed a bug that didn't
	  retrieve sender's sockaddr correctly.  Also applied some cosmetic
	  fixes by Tatsuya BIZENN.

	* configure.ac, src/gauche/config.h.in, src/system.c: use 
	  AC_CHECK_MEMBERS to check struct passwd/group members such 
	  as PW_GECOS.

	* ext/net/netlib.stub: fixed typo (SO_RCVBUF).  added some more
	  SO_* constants.

2006-07-03  Shiro Kawai  <shiro@acm.org>

	* configure.ac: check pthread_spinlock_t type instead of
	  pthread_spinlock_init() function.

	* ext/threads/threads.c (Scm_ThreadStart): fixed a bug of passing
	  invalid value to pthread_attr_setdetachstate().
	* lib/dbi.scm (dbi-parse-dsn): treat "dbi:driver:" as no-option,
	  i.e. same as "dbi:driver".  Suggested by Tatsuya BIZENN.

	* ext/sxml/sxml/adaptor.scm (string-rindex): added alias for missing
	  definition of string-rindex used in sxml-tools.scm

2006-06-23  Shiro Kawai  <shiro@acm.org>

	* lib/dbi.scm (dbi-make-driver): use module-name->path instead of
	  library-fold to get a path component of the requested dbd module;
	  if we get full pathname from library-fold, requiring it doesn't
	  match with provided path component in the module, causing the
	  module to be loaded every time dbi-make-driver is called.

2006-06-04  Shiro Kawai  <shiro@acm.org>

	* src/number.c: Introduced exact rational numbers.  Arithmetic
	  API changed for consistency.  Dropped n-ary APIs, since we hardly
	  see n-ary cases now (the compiler expands primitive arithmetics
	  to binary applications).
	* src/gauche.h, src/gauche/number.h : Splitted numeric APIs to
	  subfile.  This is a first step of slimming down gauche.h.
	* src/vm.c, src/test-arith.h, src/stdlib.stub, src/hash.c,
	  src/bignum.c, src/autoloads.scm, lib/gauche/numerical.scm,
	  lib/gauche/cgen.scm, lib/srfi-42.scm, ext/uvector/uvgen.scm,
	  ext/uvector/uvector.c.tmpl, ext/srfi-srfi-19-lib.scm:
	  Reflected the API changes.

2006-05-30  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h, src/number.c, src/stdlib.stub: API CHANGE:
	  changed complex number C API for consistency.

2006-05-27  Shiro Kawai  <shiro@acm.org>

	* src/regexp.c, test/regexp.scm: fixed bugs that resulted
	  regexp compilation error.

	* lib/rfc/http.scm (send-request): avoid sending "\r\n" after
	  body (RFC2616 section 4.1).

	* lib/gauche/package/compile.scm: dropped quote around CC, for
	  it may contain options such as 'gcc -std=gnu99'.

2006-05-05  Shiro Kawai  <shiro@acm.org>

	* src/error.c (Scm_PrintDefaultErrorHeading): fix error message.
	* src/genstub (emit-definition): fix error message.

2006-04-28  Shiro Kawai  <shiro@acm.org>

	* src/char.c (Scm_DigitToInt): fix digit->integer.
	  (digit->integer #\2 2) yielded 2, should be #f.

2006-04-13  Shiro Kawai  <shiro@acm.org>

	* doc/Makefile.in: conversion of japanese html lang spec was wrong:
	  'jp' should be 'ja'.

2006-04-12  Shiro Kawai  <shiro@acm.org>

	* release 0.8.7

2006-04-07  Shiro Kawai  <shiro@acm.org>

	* src/autoloads.scm : set autoload for 'time' macro---it seems that
	  quite a few people who used other Schemes expect it and have
	  difficulty to find gauche.time module.

	* src/gauche-install.in (ensure-directory): made mode/owner/group
	  change effective for the directory creation by gauche-install -d.
	  (currently it is only effective on the last component of the
	  directory).

2006-04-06  Shiro Kawai  <shiro@acm.org>

	* doc/Makefile.in: reverted jp document from utf-8 to euc-jp,
	  for some tools still don't like utf-8.
	
	* src/compile.scm (pass1/define-inline): made define-inline keeps
	  its effect outside its compiler unit.

	* ext/net/net.c (socket_finalize, Scm_SocketClose): clear
	  inPort/outPort when we're done to help GC.

	* lib/srfi-0.scm: added some newly supported srfis.

	* lib/gauche/test.scm (test-module): added a check to find out
	  referencing undefined global variables, as suggested by
	  Kazuki Tsujimoto.  A new keyword argument, :allow-undefined,
	  is introduced to disable the checking on certain variables.
	* ext/net/test.scm, ext/auxsys/test.scm: changed accordingly.

2006-04-05  Shiro Kawai  <shiro@acm.org>

	* ext/srfi/srfi-19-lib.scm, ext/uvector/matrix.scm,
	  libsrc/srfi-13.scm: fixed typo of local variable names.

2006-03-26  Shiro Kawai  <shiro@acm.org>

	* src/module.c (Scm_FindBinding, Scm_GlobalVariableRef): API CHANGE:
	  instead of stay_in_module boolean flag, it takes bitmasks so that
	  we can extend it later.  Scm_GlobalVaribleRef takes a new flag,
	  SCM_BINDING_KEEP_AUTOLOAD, to choose not to resolve autoload, which
	  is required in some special occasions.
	* src/vm.c, src/moplib.stub, src/macro.c, src/load.c, src/intlib.stub,
	  src/gauche.h, src/extlib.stub, src/compaux.c, src/class.c:
	  changed accordingly.

	* ext/net/netlib.stub (SOMAXCONN): added SOMAXCONN constant (suggested
	  by Tatsuya BIZENN).

2006-03-25  Shiro Kawai  <shiro@acm.org>

	* ext/termios/termiolib.stub (sys-forkpty-and-exec): changed 
	  argument from optionals to keywords, to support :sigmask.

2006-03-24  Shiro Kawai  <shiro@acm.org>

	* src/system.c (Scm_SysExec): added support of setting signal mask
	  before exec.
	* src/syslib.stub (sys-exec, sys-fork-and-exec): Changed API to take
	  keyword arguments :iomap and :sigmask.  The old signature (optional
	  iomap) is supported for backward compatibility, but will be gone 
	  in future.
	* lib/gauche/process.c (run-process): allow :sigmask keyword argument.

2006-03-17  Shiro Kawai  <shiro@acm.org>

	* lib/util/queue.scm (dequeue!): avoid non weak-GC-robust pattern.
	  See the comment for the details.

	* src/objlib.scm (ref*): Added utility procedure ref*, as suggested
	  by Issac Trotts.  Ref methods for some builtin classes are also
	  added here.

2006-03-14  Shiro Kawai  <shiro@acm.org>

	* lib/util/stream.scm (stream-cons): The original srfi-40 reference
	  implementation evaluates the second argument twice within delay.

2006-03-12  Shiro Kawai  <shiro@acm.org>

	* ext/auxsys.c, ext/auxsyslib.stub: moved sys-gettimeofday to
	  main system.  support sys-times on mingw32, emulating times()
	  by GetProcessTimes.
	* src/system.c, src/syslib.stub: added Scm_GetTimeOfDay, an
	  abstraction of gettimeofday() call.  On mingw32 we emulate it
	  with GetSystemTime.  sys-gettimeofday is moved here.
	* src/gauche/mingw-compat.h : some addition for above changes.

2006-03-11  Shiro Kawai  <shiro@acm.org>

	* src/system.c (Scm_BaseName, Sys_DirName): handles drive letters
	  sensibly on mingw32.
	* src/syslib.stub (sys-sleep): Use Sleep() win32api call on mingw32.

2006-03-10  Shiro Kawai  <shiro@acm.org>

	* src/autoloads.scm, lib/gauche/procedure.scm: added forgotten exports
	  and autoloads (filter$ etc.)  Patch from Michael Campbell.

2006-03-09  Shiro Kawai  <shiro@acm.org>

	* src/regexp.c etc.  Added support of backreferences, named captures,
	  and lookback assertions to regexp.  (Patch from Rui Ueyama).
	* src/gauche/regexp.h: Splitted regexp-related objects into this
	  header; their internals are not of general interest.

	* lib/dbi.scm (dbi-execute-query): the adapter to the legacy dbd
	  interface passes :pass-through option to the dbi-do for compatibiliy.
	  This change doesn't affect the new dbd interface.

	* ext/net/netaux.scm (make-server-socket): added :backlog keyword
	  argument to customize the backlog number passed to socket-listen.
	  (Patch from Tatsuya BIZENN).

	* src/genstub: fixed setter procedure generation.  By looking up
	  the stub name of setter procedure, instead of assuming naming
	  convention, we can now handle setter defintion in define-cgeneric
	  clause (it needs different treatment since their C stub name would
	  differ from normal cproc/cmethod).

2006-03-07  Shiro Kawai  <shiro@acm.org>

	* src/genstub: fixed several typos in cgeneric setter generation
	  code (Patch from Takahiro Horii).

2006-03-04  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm (module-qualified-variable?): filtered out the
	  case that non-variable could be passed to cenv-lookup.

	* src/gauche.h (SCM__DEFINE_CLASS_COMMON),
	  src/gauche/pthread.h, src/gauche/uthread.h:
	  Iniitalize the mutex and condition variable in the statically
	  defined builtin classes.

	* src/class.c (method_more_specific): fixed a bug when comparing
	  methods both of which have rest arg.

2006-03-03  Shiro Kawai  <shiro@acm.org>

	* gc/*, src/genstub, src/gauche/config.h.in: Bumped to Boehm GC 6.7.
	  Support NetBSD threads.  (Patch from Tatsuya BIZENN).

	* lib/www/cgi.scm (cgi-header): changed line terminators from '\n' to
	  '\r\n', in order to follow the spec precisely.  Some httpds don't
	  like '\n'.

2006-02-17  Shiro Kawai  <shiro@acm.org>

	* src/genconfig.in: Avoid using '\"' sequence within the string that
	  is generated by shell script---apparantly some shells treat
	  backslashes differently in this case, causing compatibility problem.
	  Using single quotes is an easy solution.  (Thanks to Robbert
	  Haarman for pointing this out).

2006-02-10  Shiro Kawai  <shiro@acm.org>

	* libsrc/srfi-13.scm (string-copy!): fixed argument range check bug
	  (Thanks to Jeff Read).

2006-02-08  Shiro Kawai  <shiro@acm.org>

	* 0.8.7_pre1.  Entered release test cycle.

	* gc/darwin_stop_world.c: applied Bruce Mitchener's memory leak patch
	  posted on Boehm GC list.

2006-01-27  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/vm/debugger.scm (debug-print): made the width of
	  information to print customizable by the parameter
	  debug-print-width.
	  (debug-source-info): added.
	* src/autoloads.scm: added debug-print-width and debug-source-info.

	* src/write.c (Scm_WriteLimited, Scm_Format): Fixed a bug that
	  didn't propagate shared-structure-mode flags, causing write routine
	  to go infinite loop even it is called with ss-mode.

	* src/signal.c (Scm_SysSigmask): Allow NULL to newmask arg, if
	  the caller just want to obtain the mask without modifying it.

2006-01-26  Shiro Kawai  <shiro@acm.org>

	* ext/net/netdb.c: rewrote some code using Scm_CStringArrayToList.

	* ext/termios/termiolib.stub (sys-forkpty-and-exec): added.
	* ext/termios/termios.c (Scm_ForkptyAndExec): ditto.

	* src/string.c (Scm_CStringArrayToList): API Change - integrated
	  copying and non-copying version, and added FLAGS argument to
	  specify which.

	* src/system.c (Scm_SysPrepareFdMap, Scm_SysSwapFds):
	  extracted core functionality of I/O remapping in Scm_SysExec,
	  so that it can be used from other extensions.

	* src/string.c (Scm_ListToConstCStringArray, Scm_ListToCStringArray):
	  added.

	* lib/dbi.scm (generate-sql/parameters): fix referencing out-of-scope
	  variable.

	* ext/binary/io.scm: some optimization and cosmetic changes.
	* doc/modutil.texi: made "binary.io" official.

2006-01-22  Shiro Kawai  <shiro@acm.org>

	* src/gauche/exception.h, src/error.c : added Scm_UnhandledSignalError.
	* src/signal.c (default_sighandler): the default signal handler now
	  throws <unhandled-signal-error>.

	* src/extlib.stub (with-ports): added.

2006-01-21  Shiro Kawai  <shiro@acm.org>

	* lib/text/sql.scm (sql-tokenize): fixed the regexp stack overflow
	  problem when very long input is given.

	* src/compile.scm (pass1/body): handles ((with-module x y) arg ...)
	  form in the beginning of lambda body.

	* src/syslib.stub (sys-wait, sys-waitpid): syscall wasn't restarted
	  when wait/waitpid was interrupted.

2006-01-20  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm (pass1/body): added a check for improper list
	  in the lambda body.

	* src/load.c (Scm_VMLoad), src/main.c, lib/gauche/vm/profiler.scm:
	  added -pload profiler option.
	* src/vm.c (Scm_VMUnwindProtect, Scm_VMNextHandler, Scm_VMRewindProtect):
	  added.

	* src/port.c (Scm_GetRemainingInputString): fixed a bug that didn't
	  consider ungotten chars.

2006-01-19  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm (module-qualified-variable?): fixed to check if
	  with-module has the right binding when parsing
	  ((with-module m v) ...) form.

2006-01-15  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm (pass1): support compilation of a form in which
	  the head position has (with-module mod identifier).  This allows
	  one to refer syntactic keyword from other module, e.g.
	  ((with-module gauche define) x 4).  This, in turn, gives more
	  flexibility for modules to redefine syntaxes.

2006-01-10  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub (global-variable-ref): added second optional
	  argument to limit the lookup within the module.
	* src/module.c (Scm_GlobalVariableRef): dropped Scm_SymbolValue
	  and added this corresponding to global-variable-ref.
	* src/gauche.h (Scm_SymbolValue): definds it as a macro which
	  expands to Scm_GlobalVariableRef call.

	* src/vm.c (throw_cont_calculate_handlers, user_eval_inner):
	  dynamic handlers didn't properly invoked when error occurred
	  during reinstallation of dynamic handlers via call/cc.
	  (Patch from Kazuki Tsujimoto).

2006-01-09  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/vminsn.scm: added some experimental VM insns.
	  not really used yet.
	
	* src/Makefile.in (newinsn): added a special build sequence 
	  in case the VM insn set has been changed.

	* src/compile.scm (iform-copy): lvar in $LSET insn wasn't copied,
	  causing compiler internal error (Patch from Kazuki Tsujimoto).
	  Also fixed wrong handling of label assoc list in copying $LABEL
	  node.

2006-01-07  Shiro Kawai  <shiro@acm.org>

	* libsrc/gauche/collection.scm (maybe-minimum-size): should return
	  #f if any of collection's size isn't immediately known.  Patch
	  from Takahiro Horii.

	* src/compile.scm (pass1/body): fixed a bug in an argument of
	  error function (Patch from Kazuki Tsujimoto).

2006-01-06  Shiro Kawai  <shiro@acm.org>

	* ext/net/net.c (Scm_SocketInputPort, Scm_SocketInputPort):
	  prohibit creating i/o ports from closed socket.

	* src/gauche.h: removed SCM_VECTOR_FOR_EACH, for it was buggy and
	  not a very useful API.
	* src/hash.c: rewrote the only instance of using SCM_VECTOR_FOR_EACH.

	* libsrc/gauche/collection.scm (map-to): size estimatin was wrong when
	  multiple collections of uneven lengths are given.
	* libsrc/gauche/sequence.scm (map-to-with-index): ditto.

	* lib/util/stream.scm (write-stream, ->stream-char): fix let-optionals
	  -> let-optionals*.

	* lib/gauche/procedure.scm (complement): added complement.

	* src/compile.scm (pass2/$CALL): fixed a bug that caused an internal
	  compiler error when local function inline expansion happens
	  recursively.  Many thanks to Jun Inoue for tracking this bug
	  down.

	* lib/text/sql.scm (sql-tokenize): INCOMPATIBLE CHANGE: changed to
	  return SQL unquoted identifiers as strings.  This is because
	  we want to preserve the case of identifiers; although SQL is
	  case-insensitive, some RDBMS honors the case of table and
	  column names.  It would be very confusing if pass-through SQL and
	  SQL parsed by sql-tokenize behaves differently.
	* lib/dbi.scm (generate-sql/parameters): adapted to the above change.

	* src/port.c (bufport_read): fixed a bug that could block read
	  from non-full-buffered port even there are some data in the
	  buffer.

	* INSTALL.esc: corrected the default encoding (euc-jp -> utf-8).

2006-01-03  Shiro Kawai  <shiro@acm.org>

	* src/system.c (Scm_DirName): fixed a bug that doesn't handle a
	  pathnames with a single slash at the beginning, like "/abc".

2005-12-21  Shiro Kawai  <shiro@acm.org>

	* src/write.c (write_object_fallback), src/class.c (class_print):
	  Show whether the class is redefined.  This helps to avoid confusions
	  during interactive development when the class is redefined.

2005-12-04  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub (read-block): fixed a bug that may cause SEGV later.
	  (patch from Tatsuya BIZENN).

2005-11-23  Shiro Kawai  <shiro@acm.org>

	* lib/util/relation.scm (util.relation): relation-rows wasn't exported.

2005-11-17  Shiro Kawai  <shiro@acm.org>

	* lib/util/stream.scm (stream-filter): fixed a bug from the reference
	  implementation that didn't handle the end of stream correctly.

2005-11-11  Shiro Kawai  <shiro@acm.org>

	* ext/template.Makefile.in : add $(DESTDIR)

2005-11-10  Shiro Kawai  <shiro@acm.org>

	* src/signal.c (sig_handle): in the sigqueue overflow warning,
	  show the signal name and number as the debugging aid.

	* src/number.c (Scm_Divide): fixed a bug that busts VM when 
	  a bignum is divided by zero.

	* lib/gauche/collection.scm, lib/gauche/sequence.scm,
	  lib/gauche/hook.scm, lib/gauche/parameter.scm: moved to libsrc/,
	  and compiled into DSOs under ext/gauche.
	* test/colseq.scm, test/hook.scm, test/parameter.scm: moved into
	  ext/gauche.
	* ext/gauche/* : compile some of gauche.* modules into DSOs
	* configure.ac, ext/Makefile.in, lib/Makefile.in: adjusted
	  accordingly.

2005-11-09  Shiro Kawai  <shiro@acm.org>

	* src/gencomp: added --keep-private-macro option to emit some
	  private macros into the generated Scheme file by --ext-module
	  option.  It's a kludge, but needed to compile gauche.parameter.

	* src/preload.scm: added to make HOSTGOSH more compact.  See the file
	  for the detailed explanation.
	* src/Makefile.in (HOSTGOSH): rewrote using preload.scm

2005-11-07  Shiro Kawai  <shiro@acm.org>

	* src/main.c (main): recognize drive letter in argv on MinGW32.

	* configure.ac: fixed a problem for configuring with
	  --enable-multibyte=none.  (Pointed by Sven Hartrumpf).

2005-11-04  Shiro Kawai  <shiro@acm.org>

	* release 0.8.6

	* src/genconfig.in: added --prefix optoin.
	* ext/template.configure.ac: override the default prefix by the prefix
	  used to compile installed Gauche.

2005-11-03  Shiro Kawai  <shiro@acm.org>

	* src/Makefile.in : fixed to make sure lib/gauche/vm/insn.scm is
	  generated at pre-package stage.

	* src/genconfig.in: generates src/gauche/arch.h simultaneously as
	  src/gauche-config.c, for it's simpler to synchronize (esp. in
	  MinGW).
	* src/Makefile.in : changed accordingly.

	* src/genarch : removed.

	* lib/util/relation.scm (<relation>): no longer inherits <collection>,
	  since <sequence> can also become as a relation.  It now behaves
	  like a mixin.  Added the relation-rows method to adapt to the
	  collection.

	* lib/gauche/sequence.scm (ref): restrict second arg to <integer>,
	  so that it won't interfere if the object inherits <sequence> and
	  something else.

2005-11-02  Shiro Kawai  <shiro@acm.org>

	* src/regexp.c (rc_setup_context): fixed a bug that caused
	  regexp-compile to choke if an external AST containing non-greedy
	  match, assertin, etc.

2005-11-01  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/charconv.c, ext/net/netdb.c : force static data to
	  be in .data section instead of .bss section, for .bss section can't
	  be reliably scanned by GC.

	* src/syslib.stub (sys-fork): force GC_gcollect() just before fork(),
	  to avoid the page dirty bits synchronization problem on Solaris.
	  (See my post in the Boehm gc mailing list on Nov 1).

2005-10-30  Shiro Kawai  <shiro@acm.org>

	* lib/www/cgi.scm (cgi-main): ensure error page output goes to the
	  current-output at the time cgi-main is called.

2005-10-29  Shiro Kawai  <shiro@acm.org>

	* src/syslib.stub (sys-close): added for low-level tweaking.

2005-10-28  Shiro Kawai  <shiro@acm.org>

	* src/regexp.c (rc_setup_context): fixed a bug that caused
	  regexp-compile to choke if an external AST containing 'wb' or
	  'nwb' node is given.
	  (rc3_rec): fixed bad assertion.

	* lib/binary/pack.scm (read-one-packer): fix 'V' directive, and
	  added n!, N!, v!, V! directives as the signed variants of
	  n, N, v, and V.  (Patch from Masatake YAMATO).

2005-10-27  Shiro Kawai  <shiro@acm.org>

	* lib/www/cgi.scm (get-mime-parts): put a code to accomodate broken
	  IE sending improperly quoted value to content-disposition field.
	  (Patch from Tatsuya BIZENN).

	* src/system.c (time_compare): implement proper compare function
	  so that equal? will work on <time>'s.
	* ext/srfi/srfi-19-lib.scm (time<=? etc): changed accordingly.

	* src/char.c (charset_compare): implement compare function properly,
	  so that equal? will work on charsets.

	* ext/vport/vport.c (bport_allocate): accept :buffer-size keyword
	  argument to specify the size of the buffer (Patch from Tatsuya
	  BIZENN).

2005-10-26  Shiro Kawai  <shiro@acm.org>

	* src/system.c (Scm_NormalizePathname, Scm_BaseName, Scm_DirName):
	  rewrote to handle multibyte pathnames correctly (even with sjis
	  that may contain 0x5c in the second byte).

2005-10-25  Shiro Kawai  <shiro@acm.org>

	* src/gencomp (insert-ext-initializer): emit SCM_INIT_EXTENSION
	  in the initialization routine when it is compiling stand-alone
	  Scheme file (i.e. --ext-module option is given).

2005-10-23  Shiro Kawai  <shiro@acm.org>

	* configure.ac, Makefile.in, src/genconfig.in : added experimenal 
	  support to build Gauche as a private framework on MacOSX.  
	  After installing Gauche as usual, configure the source with
	  --enable-framework, then do 'make framework'.
	* src/genarch, src/paths.c, src/gauche/paths.h, src/getdir_*.c,
	  src/core.c:
	  splitted out the routines to obtain runtime pathnames.

2005-10-21  Shiro Kawai  <shiro@acm.org>

	* src/genconfig.in: added --pkg{inc|lib|arch}dir option for more
	  flexible extension configuration.  
	* ext/template.Makefile.in, ext/template.configure.ac: adapted to
	  --pkg*dir option of gauche-config.  With the generated configure
	  script, the package installer can choose installation location
	  by command-line options such as --prefix, --exec-prefix, --libdir
	  or --datadir.

2005-10-12  Shiro Kawai  <shiro@acm.org>

	* src/string.c, src/gauche.h (ScmString): API CHANGE: ScmString
	  is splitted into the header part and the immutable body
	  (ScmStringBody), for thread safety.  See the lengthy comment
	  in the STRING section of gauche.h.  New thread-safe API,
	  Scm_GetStringContent and SCM_STRING_BODY* macros are added.
	  Use of SCM_STRING_LENGTH, SCM_STRING_SIZE and SCM_STRING_START
	  is deprecated.
	* src/*.{c,stub}, ext/*/*.{c,stub}: adapted to the above changes.

2005-10-09  Shiro Kawai  <shiro@acm.org>

	* doc/libgauche-ref.texi: dumped.
	* doc/gauche-dev.texi: started.

2005-10-07  Shiro Kawai  <shiro@acm.org>

	* ext/srfi/srfi-19-lib.scm (tm:integer-reader-exact): fixed typo.

2005-10-06  Shiro Kawai  <shiro@acm.org>

	* src/class.c (generic_initialize): It turned out we don't need a
	  special initialization method for <generic>.  We can just let
	  the default initialization method to handle it.  The custom
	  initialization method had a problem of initializing slots defined
	  in a subclass of <generic>.
	* lib/dbi.scm : added some more backward-compatibility code.

2005-10-05  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-55.scm (require-extension): when srfi number unknown to
	  the Gauche runtime is given, it expands to (use srfi-N) anyway,
	  so that it may work if the user put srfi-N.scm in the load-path.
	  (This is useful to make Alex Shinn's common-scheme work).

2005-10-04  Shiro Kawai  <shiro@acm.org>

	* src/vector.c (Scm_MakeVector): check the size argument.
	* ext/srfi/srfi-43-lib.scm: added support of srfi-43.
	* ext/srfi/test.scm: ditto.

2005-10-03  Shiro Kawai  <shiro@acm.org>

	* src/list.c (Scm_ListTail): added fallback argument for consistency.
	* src/vector.c (Scm_ListToVector): added start and end arguments
	  to support srfi-43's extended list->vector.
	* src/*.c : some files are affected by the above API changes.

2005-10-02  Shiro Kawai  <shiro@acm.org>

	* src/prof.c (Scm_ProfilerStart): fixed bugs that the temporary file
	  wasn't reopened after profiler reset, and profiler-show/profiler-stop
	  segfaulted if profiler-start hadn't been called.  Patch from
	  Michael Campbell.
	* src/autoloads.scm (profiler-show): autoloads gauche.vm.profiler.

2005-09-30  Shiro Kawai  <shiro@acm.org>

	* src/system.c (Scm_NormalizePathname): fixed memory corrupting bug.

2005-09-22  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/http.scm (receive-body-chunked): added error checking of
	  premature end of chunked body, and fixed a bug referring a
	  nonexistent variable (patch from Michael Campbell).

2005-09-20  Shiro Kawai  <shiro@acm.org>

	* src/load.c (Scm_LoadAutoload): fixed a bug that autoload's
	  definition enviornment and resolution environment didn't match.

2005-09-18  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/common-macros.scm (until): missing => as a literal
	  identifier.

2005-09-13  Shiro Kawai  <shiro@acm.org>

	* libsrc/file/util.scm (relative-path?): recognize pathnames beginning
	  with '~' as a relative pathname.  Tilda expansion must be done
	  before any operation on pathnames anyway.

2005-09-12  Shiro Kawai  <shiro@acm.org>

	* lib/dbi.scm, lib/dbd/null.scm, test/dbidbd.scm : reverted the change
	  in 9/6, and we use <dbi-query> and dbi-execute again.  It is because
	  some drivers require an explicit deallocation of resources used
	  by prepared query, and we can't do it nicely with closures.

2005-09-11  Shiro Kawai  <shiro@acm.org>

	* src/class.c (accessor_get_proc, accessor_set_proc): fixed a long
	  standing bug about an undesired interaction of modules and accessor
	  methods.  Check out test/object.scm "module and accessor" section
	  for an explanation and an example.

	* lib/gauche/let-opt.scm, lib/gauche/singleton.scm,
	  lib/gauche/validator.scm : issue warning when used.  preparation
	  of removing these obsoleted modules.

	* src/genstub, *.stub : added define-enum-conditionally to abbreviate
	  the common idiom of defining Scheme enum constant only if it is
	  defined in C.  Rewrote some .stub files by using it.
	* ext/net/netaux.scm, ext/net/net.scm: compile Scheme part into
	  libnet.so.

	* ext/net/netlib.stub (socket-status): made returned symbol lowercase,
	  in sync with the documentation.

	* src/gauche.h (SCM_FOREIGN_POINTER_P): use SCM_ISA to check.

	* src/syslib.stub: exposed some unix error codes (such as EINTR)
	  as predefined constants.

2005-09-10  Shiro Kawai  <shiro@acm.org>

	* configure.ac (--enable-multibyte): Switched the default encoding
	  from euc-jp to utf-8.  Issue a warning and wait for user's
	  reaction if --enable-multibyte is not given to ./configure,
	  in order to avoid confusion.

	* lib/dbi.scm, lib/dbd/null.scm : dropped <dbi-object> and 
	  <dbi-result-set>.  Moved dbi-get-value to the deprecated section.
	  Defines fallbacks of dbi-open? and dbi-close.

	* lib/util/relation.scm (util.relation): exports <simple-relation>
	  and <object-set-relation>.

	* src/module.c (Scm_FindBinding): fixed a bug that inadvertently
	  exposes non-exported symbols to outside.

2005-09-09  Shiro Kawai  <shiro@acm.org>

	* ext/mt-random/mt-random.c (mt_allocate): allow u32vector to be 
	  given to :seed initarg.

	* ext/srfi/srfi-19-lib.scm (tm:integer-reader-exact): fixed typo
	  in function name.

	* src/genstub : added 'code' spec to the cproc body so that
	  the cproc can perform some checking before 'call' or 'expr' spec.
	
	* ext/charconv/convaux.scm: splitted Scheme-defined functions
	  from charconv.scm and compile them into charconv.so.

2005-09-06  Shiro Kawai  <shiro@acm.org>

	* lib/dbi.scm, lib/dbd/null.scm: Revised API.  Now dbi-prepare
	  returns a closure that executes the prepared query when invoked.
	  Dropped dbi-execute.  Dropped dbd-prepare and dbd-execute, since
	  the driver can now just overload dbi-prepare.
	  Renamed dbd-make-connection to dbi-make-connection to make
	  every method is called dbi-* now (the legacy dbi-make-connection
	  can be distinguished by the signature).  Sets the default method
	  of legacy dbi-make-query and dbi-execute-query so that the old
	  client code that uses legacy DBI API can work with the new dbi/dbd.

	* libsrc/srfi-13.scm (%string-prefix-int): fix (Patch by
	  Michal Maruška).

2005-09-05  Shiro Kawai  <shiro@acm.org>

	* src/main.c (further_options): comment options for internal use.

2005-09-04  Shiro Kawai  <shiro@acm.org>

	* m4/*, aclocal.m4 : adapetd to the newer autotools convention.
	* acinclude.m4: removed. superseded by m4/gauche.m4.

2005-09-03  Shiro Kawai  <shiro@acm.org>

	* ext/template.configure.ac : renamed configure.in -> configure.ac
	* src/gauche-package.in : ditto
	* examples/mqueue-cpp/configure.ac: ditto
	* examples/spigot/configure.ac: ditto

2005-09-02  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/common-macros.scm (while, until): now these are
	  supported officially, with additional syntax to bind a variable
	  during execution of repetition body.

	* src/class.c (Scm_ForeignPointerAttr etc): added 'attributes' alist
	  to a foreign pointer.  See the comments in gauche.h for its usage.

2005-09-01  Shiro Kawai  <shiro@acm.org>

	* lib/dbi.scm : ensure dbi-parse-dsn always return a string and
	  a list as option-string and option-alist.

2005-08-31  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/interactive/info.scm (viewer): check whether TERM is
	  "dumb", for the newer XEmacs sets it.

	* src/genstub: reverted to tolerate 'void' to be a return type
	  as well as '<void>' (to accept legacy stub files).
	  (define-type): fixed the behavior when #f is specified for
	  predicate/unboxer/boxer names.

	* src/gencomp: adds #include <gauche/macro.h> to the output C code
	  (necessary if a traditional macro is compiled in).
	* lib/gauche/package/util.scm, lib/gauche/package/build.scm: changed
	  to ask password immediately after "gauche-package install" command
	  is invoked with "--install-as" option.  The previous versions asked
	  pass before actual installation, which was annoying when the build
	  process took long.

2005-08-30  Shiro Kawai  <shiro@acm.org>

	* doc/extract : switched to generate Japanese document in utf-8.
	  Partly because the new texi2html uses utf-8 if I specify --lang=jp.
	* lib/text/sql.scm: renamed text.sxql to text.sql, since I keep
	  being confused (was it sqxl or sxql?) and also it's awkward to type.
	
2005-08-29  Shiro Kawai  <shiro@acm.org>

	* lib/dbi.scm (dbi-escape-sql): changed not to add surrounding quotes.

	* src/module.c (Scm_FindBinding): fixed a problem that export
	  shadowed the binding that should be visible in the module body.
	* src/moplib.stub (%ensure-generic-function): ensure the method
	  definition always inserts the binding of the generic function 
	  in the current module.

	* lib/dbi.scm: let the default methods for legacy API raise an
	  error, to catch the case a dbd implentation fails to implement
	  necessary methods.

	* util/relation.scm : changed its name to singular for the consistency
	  of gauche.collection etc.

2005-08-28  Shiro Kawai  <shiro@acm.org>

	* src/gencomp: improved macro handling

	* Reorganized to compile some Scheme libraries as extension modules.
	* libsrc/* : library sources that are compiled as extension modules,
	  _and_ required during compilation, are moved here from lib.
	* src/main.c : when -ftest flag is given, add ../libsrc to the 
	  search path as well.
	* lib/gauche/cgen.scm : added regexp literal support.
	* src/stdlib.stub : added regexp-case-fold?
	* lib/gauche/procedure.scm: partial evaluated versions of srfi-1
	  procedures are moved here.

2005-08-27  Shiro Kawai  <shiro@acm.org>

	* src/main.c (main): reversed search priority of 'lib' and 'src'
	  when -ftest option is given.  See the comment for the details.
	* src/gencomp: added -o option to specify the output .c name
	  (experimental).

2005-08-26  Shiro Kawai  <shiro@acm.org>

	* src/Makefile.in: introduced HOSTGOSH macro to be used whenever 
	  host gosh is required.

	* gc/configure.in: set LARGE_CONFIG.

2005-08-25  Shiro Kawai  <shiro@acm.org>

	* ext/xlink: removed dependency to the library modules.

2005-08-24  Shiro Kawai  <shiro@acm.org>

	* src/objlib.scm (%expand-define-class): avoid embedding literal
	  closure to the macro output, for it prevents the code using
	  define-class from being pre-compiled by gencomp.  Instead we
	  insert an identifier.

	* src/gauche-init.scm: removed compatibility hack of loading 
	  gauche.object for transition of 0.8.3->0.8.4.
	* lib/gauche/object.scm: removed, for it is no longer needed.

	* src/gencomp: Experimentally added --ext-module option to allow
	  gencomp to emit a module interface scm file, so that it can be
	  used to compile extension modules out of Scheme library easily.
	  This is highly experimental; interface and build process may
	  likely change.
	* src/core.c: changed accordingly.
	* ext/sxml/*: using the above change, compile sxml.ssax, sxml.sxpath
	  and sxml.tools into extension modules.
	* ext/uvector/uvseq.scm : added to compile collection & sequence 
	  framework stuff into libgauche-uvector.so.
	* ext/srfi-19/*: this is also turned to an extension.

2005-08-23  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/cgen.scm (<cgen-scheme-char-set>): added support for
	  the literal char-set.

2005-08-22  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h (SCM_FOREIGN_POINTER_REF): takes type argument for
	  casting.

	* lib/gauche/logger.scm (log-default-drain): exposed the default
	  drain as a parameter.

	* src/module.c, src/gauche.h, src/symbol.c: put the information 
	  of whether a binding is exported or not in gloc, instead of 
	  module->exported list.  We keep the exported list only for backward
	  compatibility and the convenience of meta-module utilities.
	  This change makes Scm_FindBinding faster, since it doens't need
	  to scan the exported list.  We also removed the weird convention
	  of putting #t to the exported list to show export-all status---now
	  exported list always keeps the list of exported symbols, even
	  the module is export-all-ed ('define' adds the defined symbol to
	  the exported list).
	  As a side effects, the 'export' syntax is interpreted in more
	  strict way; specifically, you shouldn't export a symbol which you
	  don't define in the module.  It used to be ignored, but now it
	  shadows the earlier binding of the symbol.

2005-08-19  Shiro Kawai  <shiro@acm.org>

	* src/main.c (main): use GC_INIT macro instead of our own #ifdef-ed
	  GC initialization stuff.

2005-08-18  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (Scm_EvalCString): added for convenience.

2005-08-15  Shiro Kawai  <shiro@acm.org>

	* src/number.c (IEXPT10_TABLESIZ): we need to enlarge pre-calculated
	  exp10 table to handle denormalized numbers.

2005-08-12  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/vmstat.c: added some code to record instruction
	  and instruction pair frequency (enabled only if vm.c is compiled
	  with COUNT_INSN_FREQUENCY defined).  The collected data will be
	  useful for tuning.

	* src/extlib.stub: the spec of hash-table-update! was broken.  PROC
	  should be called with the default value, when the given key hasn't
	  been in the table.

2005-08-11  Shiro Kawai  <shiro@acm.org>

	* src/vm.c: experimentally added the custom mark procedure for the
	  VM stack under USE_CUSTOM_STACK_MARKER flag.  It doesn't show
	  any improvement, so currently it's turned off.

2005-08-10  Shiro Kawai  <shiro@acm.org>

	* gc/* : upgraded to Boehm GC 6.5.

2005-08-09  Shiro Kawai  <shiro@acm.org>

	* ext/net/netlib.stub, ext/net/net.scm : added sys-htonl, sys-htons,
	  sys-ntohl and sys-ntohs (based on the patch by John Kilburg).
	* src/genstub: fixed a bug in <uint> stub-type handling.

2005-08-07  Shiro Kawai  <shiro@acm.org>

	* lib/Makefile.in: enable installation of dbi.

	* lib/util/queue.scm: added copy-queue.
	* src/genstub: allow 'maybe' type qualifier to have stub-generated
	  code to handle #f <-> NULL conversion.  also supports multiple
	  value return in 'body' spec.
	* *.stub: adapted to the new specs.

2005-08-06  Shiro Kawai  <shiro@acm.org>

	* lib/util/isomorph.scm (object-isomorphic?): was a normal procedure,
	  which should be a generic function.

2005-08-05  Shiro Kawai  <shiro@acm.org>

	* src/hash.c, test/hash.scm: hash-table-type has been broken for
	  a while.  (Patch from Ueyama Rui)

2005-08-04  Shiro Kawai  <shiro@schemearts.com>

	* src/gauche/char_utf_8.h: fixed u_char*/char* pointer confusion.

2005-08-01  Shiro Kawai  <shiro@acm.org>

	* configure.ac: 0.8.6_pre1

	* examples/mqueue-cpp: An example of writing bindings to C++ libraries.

	* src/genstub: rewriting genstub 2nd stage: added new CPROC specs,
	  'body' and 'expr'.  They can make typical cproc body much shorter.
	  The 'return' spec is deprecated, in favor of 'call' spec.
	  Also added C++ exception handling support---with 'catch' spec,
	  the stub body is surrounded by try-catch construct and C++ exceptions
	  raised in the body is converted to Gauche exception.
	* *.stub: adapted to the new CPROC specs.

2005-07-31  Shiro Kawai  <shiro@acm.org>

	* src/genstub: rewriting genstub 1st stage: adopted gauche.cgen
	  framework to generate code.

2005-07-30  Shiro Kawai  <shiro@acm.org>

	* lib/file/util.scm (path-sans-extension): fixed abnormality when
	  passed a pathname without dirname part.

	* lib/gauche/logger.scm (default-lock-policy): select 'file lock
	  policy only for MacOSX 10.2 and before.  10.3 and later supports
	  fcntl (Patch from Tatsuya BIZENN).

	* src/gauche-package.in: add --cc flag in 'compile' command to
	  specify alternative C compiler; handy when you're writing a bridge
	  to C++ library.
	* src/genstub: added <const-cstring> stub type.
	
	* src/class.c: revised foreign-pointer API to take flags.  supports
	  the mode that keeps one-to-one mapping between foreign pointer and
	  wrapping ScmObj, for easier resource management.

	* src/weak.c: added WeakBox C API.

2005-07-28  Shiro Kawai  <shiro@acm.org>

	* src/hash.c, src/gauche.h, src/*: rehashed hashtable API to allow
	  raw C data in keys and values.

	* src/*: code cleanup: replaced SCM_HASHTABLE -> SCM_HASH_TABLE and
	  SCM_WEAKVECTOR -> SCM_WEAK_VECTOR for naming consistency.
	  SCM_HASHTABLE remains as alias for a while, since it may be used
	  in some extensions, but should go away very soon.

2005-07-24  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (run_loop): Fixed handling of numVals.  Some instructions
	  used not to set numVals so that the previous numVals 'leaked',
	  yielding incorrect result.

2005-07-22  Shiro Kawai  <shiro@acm.org>

	* src/core.c (Scm_AddCleanupHandler, Scm_DeleteCleanupHandler):
	  Added API for C-level handlers that are called before exitting
	  Scheme.
	  (Scm_Exit, Scm_Cleanup): allows the application to call cleanup
	  part separately, for the apps that wants some operation after
	  shutting down Scheme system.
	* src/main.c : rewritten profiler and statistics output using
	  the new cleanup handler API.

2005-07-21  Shiro Kawai  <shiro@acm.org>

	* src/module.c (Scm_FindModule): API CHANGE for consistency.  Now
	  it takes bitflags as the second arg, and returns ScmModule*
	  instead of ScmObj.  Also it signals an error if flags = 0 and
	  named module doesn't exist.
	  This shouldn't affect typical usages, for most of them are either
	  passing TRUE in the second arg (in new API it's the same meaning),
	  and casting the returned value immediately to ScmModule*.
	* src/error.c (Scm_Raise): Make Scm_VMThrowException an internal API,
	  and provide Scm_Raise instead.
	  (Scm_RaiseCondition): A convenience procedure to create a condition
	  and raise it.
	* src/gauche.h, src/vm.c, src/read.c, src/main.c, src/load.c,
	  src/gencomp, src/extlib.stub, src/exclib.stub, ext/* :
	  Changed accordingly.

2005-07-18  Shiro Kawai  <shiro@acm.org>

	* src/class.c, src/gauche.h (ScmForeignPointer): added convenience
	  procedures to wrap foreign pointers.

	* src/syslib.stub (sys-strerror): added.

2005-07-16  Shiro Kawai  <shiro@acm.org>

	* lib/file/util.scm (make-directory*): do not call sys-mkdir if the
	  last component of the path is ".".

	* src/gauche-install.in : added -U (uninstall) option.

	* ext/template.DIST, src/gauche-package.in, examples/spigot/README:
	  Let "gauche-package generate" put DIST script, too.  Changed
	  description in spigot/README to reflect the new way of using
	  gauche-package.

	* lib/util/stream.scm: added srfi-40 and more.

2005-07-15  Shiro Kawai  <shiro@acm.org>

	* src/promise.c, src/gauche.h, src/compile.c, src/extlib.stub,
	  src/vm.c: Adopted srfi-45 semantics of lazy evaluation.  A new
	  primitive syntax 'lazy' is added.  See srfi-45 for the details.

	* lib/util/relations.scm (util.relations): added.  A generic
	  framework of dealing with relations.  This module will grow later.

2005-07-11  Shiro Kawai  <shiro@acm.org>

	* src/error.c, src/exclib.stub, src/scmlib.scm (error, errorf):
	  implement error and errorf in Scheme, allowing to specify
	  condition class to throw.
	
	* lib/slib.scm.in : additional interface for slib3 (patch from
	  Dai Inukai).

2005-07-10  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub: deprecate symbol-bound?, superceded by
	  global-variable-bound?.  See the manual for the reason.
	  Also added global-variable-ref.
	* src/scmlib.scm (symbol-bound?): implemented here for the backward
	  compatibility; will go away in future.
	* ext/auxsys/auxsys.scm, ext/net/net.scm, ext/net/test.scm,
	  ext/termios/test.scm, lib/gauche/modutil.scm, test/*.scm:
	  replaced symbol-bound? for global-variable-bound?

2005-07-06  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (save_env, save_cont): improved stack-overflow handling
	  performance. (x5.7 compared to 0.8.5).

2005-07-02  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/package/compile.scm : utility to compile & link 
	  extension modules.
	* src/gauche-package.in: added 'compile' and 'generate' command
	  to ease extension module building.
	* ext/template.*: template files for extension modules. 
	  "gauche-package generate" creates the skeleton from these files.

2005-07-01  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/regexp.scm (regexp-replace*, regexp-replace-all*): 
	  useful fns to apply multiple regexp replace on a string.

2005-06-30  Shiro Kawai  <shiro@acm.org>

	* release 0.8.5
	
	* src/signal.c : fixed a problem that with-signal-handlers reset
	  SIGCHLD handler to SIG_IGN afterwards.

	* src/number.c (double_print): changed notation of infinity to #i1/0
	  to emphasize inexactness.  (this notation might change depending
	  on how srfi-70 comes out).

	* src/port.c, src/system.c : set O_BINARY by default on MinGW.
	  For sys-rename, unlink the destination file before calling rename()
	  on MinGW, since Windows doesn't allow rename over an existing file.
	  (NB: this breaks atomicity of rename operation).
	* src/mingw-exify, src/Makefile.in : to run gauche-* utilities on
	  Windows, we decided to generate .exe files for them.
	* lib/file/util.scm (find-file-in-paths): Adapt MinGW, which uses
	  #\; for PATH directory separator.

2005-06-29  Shiro Kawai  <shiro@acm.org>

	* src/genconfig.in, Makefiles : better MinGW support
	* src/system.c (Scm_Globdirectory): support on MinGW
	* lib/file/util.scm: better MinGW support

2005-06-27  Shiro Kawai  <shiro@acm.org>

	* lib/www/cgi.scm (cgi-default-output): make sure cgi-default-output
	  writes out everthing even if output conversion port is inserted.

2005-06-23  Shiro Kawai  <shiro@acm.org>

	* src/genconfig.in : introduced to make gauche-config a compiled
	  executable.
	* src/gauche-config.in : removed, for a shell script doesn't work
	  well on Windows/MinGW.  Instead, src/genconfig generates a C
	  file gauche-config.c, which is then compiled to gauche-config.

2005-06-22  Shiro Kawai  <shiro@acm.org>

	* src/Gauche.spec : change Copyright: entry to License: for newer
	  version of rpm.
	* src/gauche.h, src/string.c, ext/uvector/uvector.c.tmpl,
	  ext/mt-random/mt-lib.stub, ext/digest/sha1.stub,
	  ext/digest/md5.stub : code cleanup to eliminate warnings.

2005-06-20  Shiro Kawai  <shiro@acm.org>

	* src/vector.c (Scm_VectorCopy): added fill argument to adopt srfi-43.
	* src/extlib.stub (vector-copy): ditto.

2005-06-16  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/cgen.scm (cgen-emit-c): added some kludge to save cygwin.

	* src/number.c : let division by zero yields infinity instead of
	  an error.  Adopted a notation of 1/0 and -1/0 for positive and
	  negative infinity, following the current srfi-70 draft.
	  Treatment of NaN should be considered later.

2005-06-15  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/cgen.scm (cgen-with-output-file): close the port
	  before unlinking or renaming the file, since Win32 doesn't like
	  a unclosed file to be removed.

	* src/compile.scm (inliner/-): There was a bug in constant-folding
	  path that yields a wrong value.  Gosh!

2005-06-08  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm (and-let*): fix to handle lone BOUND-VARIABLE
	  case (patch provided by Michael Campbell).

2005-06-05  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm : typo fix (Patch from Hisazumi Kenji).

2005-06-01  Shiro Kawai  <shiro@acm.org>

	* src/system.c (time_nsec_set): fixed a format string bug in the
	  error message that caused double fault.

2005-05-31  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/cgen.scm (cgen-allocate-static-datum): avoid generating
	  cast exprsesion when the value can be used as an lvalue.

2005-05-30  Shiro Kawai  <shiro@acm.org>

	* release 0.8.4

	* src/compile.scm (stmt-context): fixed typo.
	* src/gencomp (compile-toplevel-form): avoid emitting useless toplevel
	  code that only contains CONSTU-RET instruction (such code is
	  sometimes generated as the result of macro expansion).
	* src/code.c : expose codeSize field as size slot.

2005-05-29  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/cgen.scm: revised handling of static C data for Scheme
	  literals to avoid forward-reference problem.
	* src/gencomp: ditto

2005-05-28  Shiro Kawai  <shiro@acm.org>

	* src/macro.c: fixed module handing during syntax-rules compilation
	  (passing current module explicitly instead of relying on
	  CURRENT_MODULE).

	* src/gauche/compaux.c (Scm_MakeIdentifier): API fix.  Removed
	  Scm_MakeIdentifierWithModule.
	* src/gauche/vm.h, src/macro.c, src/intlib.stub, src/gencomp,
	  src/compile.scm: changed accordingly

2005-05-27  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm (pass1 program): added a check for function
	  application syntax being a proper list.

2005-05-26  Shiro Kawai  <shiro@acm.org>

	* configure.ac: added --enable-runtime-pseudo-reloc ld flag for MinGW.

2005-05-25  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/procedure.scm (compose): allow zero or one arguments
	  to compose (Suggested by Ueyama Rui).

2005-05-24  Shiro Kawai  <shiro@acm.org>

	* examples/spigot/Makefile.in : remove rpath link option, for it is
	  not portable and not necessary anyway.

2005-05-23  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-55.scm: added srfi-55.

	* ext/auxsys/auxsys.scm (sys-getloadavg), ext/auxsys/auxsyslib.stub,
	  ext/auxsys/auxsysconf.h.in, configure.ac, src/autoloads.scm:
	  Added sys-getloadavg (based on a patch from John Kilburg).

	* ltmain.sh, configu.guess, config.sub: updated for the latest version.

	* src/gauche/arith_i386.h : Applied patch from NIIBE Yutaka for
	  better register allocation.

	* src/regexp.c, test/regexp.scm, src/builtin-syms.scm : Added
	  support of lookahead assertion (Patch from Ueyama Rui)

2005-05-22  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-42.scm : Added srfi-42 support; it is a port of srfi-42
	  reference implementation.  Contributed by Alex Shinn.
	* lib/Makefile.in : changed accordingly.

2005-05-21  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h (ScmSyntax), src/compaux.c: simplified ScmSyntax
	  handling.  Now syntax handlers are defined in Scheme and called
	  from VM, so we can use Scm_VMApply to call them.
	* src/compile.scm : we don't change vm-current-module during
	  compilation anymore.   VM's current module info is taken at
	  the beginning of COMPILE as the default module, but then the
	  info is kept private throughout the compiler and the constructs
	  such as WITH-MODULE won't affect the VM's current module.
	  This may affect CURRENT-MODULE call in the traditional macro
	  (which used to be the module of the code being compiled).
	  This is a provisional change: we need to consider semantics of
	  SELECT-MODULE.
	  Also various small optimization is done.
	* src/autoloads.scm, src/gauche-init.scm, lib/gauche/modutil.scm:
	  EXTEND, EXPORT-ALL and REQUIRE are now recognized by the compiler.

2005-05-17  Shiro Kawai  <shiro@acm.org>

	* ext/threads/mutex.c (Scm_MutexLock, Scm_MutexUnlock): added
	  protection for the case that mutex can be locked indefinitely
	  by killed thread. (Patch from Michael Campbell).
	* lib/srfi-19/format.scm (tm:locale-long-month->index): fixed
	  incorrect call to find-index (Patch from Michael Campbell).

2005-05-16  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm (compile), src/compaux.c (Scm_Compile): API fix.

2005-05-15  Shiro Kawai  <shiro@acm.org>

	* src/gencomp (vectorize-code): fix to make the dumped code work on
	  both 32bit and 64bit architecture.

2005-05-13  Shiro Kawai  <shiro@acm.org>

	* src/load.c (Scm_VMLoadFromPort): Lock port during loading.  This
	  slightly improves script loading performance.

	* src/compile.scm, src/code.c: rewrote instruction emitting & combining
	  routine (pass3/emit!) in C for better compiler performance.
	  (20-25% gain!).  Also optimized pass1/global-call.
	* src/intlib.stub: changed accordingly.

2005-05-11  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (Scm_NewVM): removed redundant 'module' parameter.
	  (Scm_AttachVM): added API.
	* ext/threads/threads.c: changed accordingly.

	* src/regexp.c : added range check of jump offset.

2005-05-10  Shiro Kawai  <shiro@acm.org>

	* ext/dbm/gdbm.scm (dbm-db-copy, dbm-db-rename): didn't work. fixed.
	* ext/uvector/uvlib.stub.tmpl: some linear-updating binop didn't
	  reuse the arg.


2005-05-01  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-1.scm, lib/srfi-1/*.scm: removed some procedures that are
	  already defined in the core.

2005-04-30  Shiro Kawai  <shiro@acm.org>

	* src/objlib.scm: embed gauche/object.scm into the core library.
	* src/gencomp: Fixed handling of identifiers.
	* src/compile.scm: Object system macros (define-class etc) are now
	  handled as syntax, though this should be transient until gencomp
	  properly handles macros.
	* src/gauche-init.scm, src/core.c, src/autoloads.scm:
	  changed accordingly.

2005-04-28  Shiro Kawai  <shiro@acm.org>

	* src/code.c (Scm_CompiledCodeDump): unwrap syntax from the source
	  code info display of the disassembler output.

2005-04-27  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm: fixed a critical bug in the stack handling.

2005-04-26  Shiro Kawai  <shiro@acm.org>

	* src/configure.ac: 0.8.4_pre2
	* src/vm.c, src/compile.scm: changed sematics of LOCAL_ENV_JUMP's
	  parameter to indicate the # of environment frame to discard.
	  It is required to keep the correct frame adjustment.
	  NB: you need working 0.8.4_pre2 to build this version.

2005-04-24  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm (define-simple-struct): rewrote the macro for
	  simpler use.
	* lib/gauche/cgen.scm: improved literal registration handling.
	  The time for compiling compile.scm becomes a tenth of the previous
	  version.

2005-04-22  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (run_loop): changed LOCAL-ENV-JUMP, LOCAL-ENV-CALL, and
	  LOCAL-ENV-TAIL-CALL to get the nargs from SP - ARGP, instead of
	  the insn param.  The insn param will be used for other purpose.

2005-04-21  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/vm/debugger.scm, src/autoloads.scm: removed procedures
	  obsoleted by the new VM.

	* src/main.c: changed the profiler option to '-p' from '-fprofiler',
	  to allow future extensions.

2005-04-20  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/interpolate.scm (%string-interpolate): insert bare symbols
	  instead of procedures themselves.  Not hygiene, but necessary for
	  the program that reads and writes the forms that containts #`"..."
	  syntax.
	* src/gencomp: allow the filename to have '+'/'-' char.
	* src/compile.scm: fixed a few serious bugs.

2005-04-19  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/cgen.scm: define scm__staticStrings as const.
	* src/gencomp: substitute (current-module) during compilation to
	  avoid the expanded form from containing literal modules, and from
	  exposing temporary anonymous module used in the compilation.
	  In the dumped code, a call to current-module becomes a call to
	  find-module.

2005-04-18  Shiro Kawai  <shiro@acm.org>

	* src/stdlib.stub (real-part, imag-part): moved back here, for there's
	  not much advantage to having these outside the core.
	* lib/gauche/numerical.scm: changed accordingly.
	* src/autoload.scm: changed accordingly.

	* lib/slib.scm.in (*features*): removed slib from *features* list
	  to avoid (use slib) to load srfi-29, which overrides builtin 'format'
	  by the incompatible srfi-29's format.
	* src/gauche.h (SCM_EXTENDED_PAIR_P): fixed a bug that caused SEGV
	  when the macor was applied to statically allocated objects.
	* src/extlib.stub (hash-table-update!): added, based on John Kilburg's
	  patch.
	* test/hash.scm: added test for hash-table-update!, based on
	  John Kilburg's patch.

2005-04-13  Shiro Kawai  <shiro@acm.org>

	* src/prof.c: do not use one-shot timer, for it misses too many
	  samples.

	* src/link-dylib: fix build problem on MacOS X (Patch from
	  Tatsuya BIZENN).

	* src/compile.scm (pass2/local-call-optimizer): fixed a bug that
	  messes up argument list when the lambda node is traversed twice
	  in pass2.

2005-04-11  Shiro Kawai  <shiro@acm.org>

	* joined NVM0_8_3 branch to the trunc.
	* configure.ac: version 0.8.4_pre1

	* src/compile.scm, src/vm.c, src/vminsn.scm : Removed most of
	  the new instructions in the past several days, since it turned
	  out that they don't have much effect on the performance.  Let's
	  keep the VM ISA simple for now; we might find more effective way
	  later.

2005-04-10  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm: emit BNEQC, BNEQVC, BNUMNEF, BNLTF, etc.

	* src/vm.c (Scm_VMDefaultExceptionHandler), src/gauche/vm.h:
	  fixed a bug that may cause SEGV when stack overflow occurs
	  during error handlers.  The 'cont' pointer of currently
	  executing escape point wasn't updated by the continuation
	  frame relocation.  

2005-04-05  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm : refactored.
	* src/vminsn.c : added quite a few new instructions.

2005-04-03  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm (pass2): fixed closure optimizer.

2005-04-02  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm (pass3): calculate maximum stack depth.
	  (pass2/$IF): more optimization.
	* src/code.c (Scm_CompiledCodeFinish): take maximum stack depth arg.
	* src/vm.c: now we know how much stack each closure would consume,
	  we need to CHECK_STACK only when we enter a new closure (and some
	  stack-manipulating places at runtime).
	* src/vminsn.scm: renamed from EXTEND-ENV to
	  LOCAL-ENV-CLOSURES, and removed unused insns PRE-TAIL, POP and DUP
	  EXTEND-ENV-POP1 is also dropped for now, since it seems too
	  kludgy (we may be resurrect it, but only after we try other
	  optimization strategies).

2005-04-01  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm (pass2/$IF): optimize to omit redundant jumps.
	* src/vminsn.scm, src/vm.c : added LOCAL-ENV-TAIL-CALL insn.

2005-03-31  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm, src/compaux.scm, src/intlib.stub : implement the
	  most frequently called procedure "cenv-lookup" in C to improve
	  compiler performance.

2005-03-30  Shiro Kawai  <shiro@acm.org>

	* src/compile.scm, src/vminsn.scm, src/vm.c, src/code.c: start adding
	  closure analysis.   Also cleaned up some code.

2005-03-22  Shiro Kawai  <shiro@acm.org>

	* src/comp.scm -> src/compile.scm : renamd
	* src/compile.c -> src/compaux.c : renamed
	* src/core.c, src/Makefile.in : changed accordingly.

	* src/gauche/vm.h, src/comp.scm, src/intlib.stub, src/main.c:
	  splitted COMPILE_NOINLINE flag into three categories for the
	  better debuggability.

2005-03-21  Shiro Kawai  <shiro@acm.org>

	* src/comp.scm: more local closure inlining
	* src/scmlib.scm: some more srfi-1 procedures implemented here
	  to be used in comp.scm.

2005-03-20  Shiro Kawai  <shiro@acm.org>

	* src/comp.scm: eliminate binding of some locally bound closures and
	  inline it.

2005-03-19  Shiro Kawai  <shiro@acm.org>

	* src/comp.scm: enable closure inlining (global inlining of
	  define-inline'd procedures, and local inlining of directly
	  called lambdas).
	  NOTE: With this feature enabled, the compiled code (by gencomp)
	  contains a literal vector of intermediate form.  If we change the
	  IForm definition, make sure to build the bootstrap version of
	  compiler with -fno-inline.
	* src/gauche/code.h (ScmCompiledCode): added intermediateForm slot
	  to keep IForm for later inlining.
	* lib/gauche/cgen.scm : allow literal vectors to be emitted
	  statically.

2005-03-16  Shiro Kawai  <shiro@acm.org>

	* src/comp.scm: tweaked typical patterns of letrec and named let.
	* src/vminsn.scm: added more combined instructions, and removed
	  obsoleted ones.

2005-03-15  Shiro Kawai  <shiro@acm.org>

	* prefix.scm (%string-suffix-int): fixed a bug that returned wrong
	  character count.

2005-03-14  Shiro Kawai  <shiro@acm.org>

	* src/comp.scm: turned on the pass2 optimization.  added some more
	  combined instructions.  selection of specialized instructions
	  (e.g. NUMADDI) is pushed back to pass3/$ASM, instead of in the
	  inliner functions, so that we can take advantage of constant
	  folding and local variable renaming.
	* src/vminsn.scm, src/vm.c: added CONSTx, CONSTx-PUSH, EQVI, BNEQVI,
	  PEEK-CHAR, CURIN, CUROUT, CURERR instructions.

2005-03-13  Shiro Kawai  <shiro@acm.org>

	* src/comp.scm: separate $let and $letrec intermediate forms.  emit
	  EXTEND-ENV-CLOSURES instruction for letrec.
	* src/vminsn.scm, src/vm.c, src/code.c:
	  Support EXTEND-ENV-CLOSURES instruction.  Removed a few obsoleted
	  instructions.  Made Scm_Apply more efficient.

2005-03-12  Shiro Kawai  <shiro@acm.org>

	* src/vminsn.scm, src/vm.c: removed obsoleted LET and TAIL-LET
	  instructions.

2005-03-11  Shiro Kawai  <shiro@acm.org>

	* src/*: removed SCM_VM_INSN stuff.  The compiled code vector is
	  created by compiled code builder API (in code.c), and the VM
	  instruction themselves are no longer distinct Scheme objects.
	  Instead, the VM instructions are dealt with simple integers.
	  By this change, the older-style compiled program representation,
	  i.e. a directed graph of VM instructions, is completely gone.

2005-02-28  Shiro Kawai  <shiro@acm.org>

	* src/code.c, src/gauche/code.h: refactored out compiled-code stuff
	  to separate files.

2005-02-21  Shiro Kawai  <shiro@acm.org>

	* src/comp.scm: improved quasiquote handling so that it generates
	  compile-time constant structure if the unquoted expressions are
	  all constant (including references to the constant variables).
	* test/primsym.scm: added more tests for quasiquotes.

2005-02-19  Shiro Kawai  <shiro@acm.org>

	* src/scmlib.scm: moved some autoloaded built-ins into this, which
	  is compiled into libgauche.
	* src/autoload.scm, src/core.c, src/Makefile.in: changed accordingly.
	* lib/gauche/listutil.scm, lib/gauche/with.scm: removed accordingly.
	* src/gauche-init.scm: moved some definitions to scmlib.scm.

2005-02-17  Shiro Kawai  <shiro@acm.org>

	* src/load.c (Scm_Load): fixed a bug that treats LOAD_QUIET_NOFILE
	  flag incorrectly.

	* src/main.c: added -fprofile option to profile the script.
	* lib/gauche/vm/profiler.scm : fix

2005-02-16  Shiro Kawai  <shiro@acm.org>

	* src/vminsn.scm, src/vm.c : changed LAMBDA insn to CLOSURE insn,
	  dropping arg # parameters (now they're in compiled code).  Also
	  integrated DEFINE-CONST into DEFINE; two are now distinguished
	  by its parameter.
	* src/gauche/vm.h : added evalSituation field to ScmVMRec to support
	  eval-when construct.
	* src/comp.scm: added eval-when construct.

2005-02-13  Shiro Kawai  <shiro@acm.org>

	* src/comp.scm (and-let* form cenv): support and-let* natively.
	  (quasiquote): improved generated code.
	* src/gauche-init.scm, src/load.c : provide srfi-2 by default, for
	  and-let* is now supported natively.
	* lib/srfi-2.scm: removed.

2005-02-12  Shiro Kawai  <shiro@acm.org>

	* src/vm.c: fix positions of SCM_PROF_COUNT_CALL to properly record
	  method invocation.  assign names to the code created internally
	  at runtime (e.g. apply, eval) so that they can be shown in the
	  profiler output.
	* src/builtin-syms.scm: added some symbols for the profiling purpose
	  described above.
	* src/comp.scm: series of performance tuning.

2005-02-09  Shiro Kawai  <shiro@acm.org>

	* src/prof.c, src/gauche/prof.h: moved experimental profiler code
	  from core.c to here, and make the profiler buffer VM-local instead
	  of global.

2005-02-05  Shiro Kawai  <shiro@acm.org>

	* src/comp.scm: changed intermediate structure to use nested vectors.
	  changed define-builtin-inliner to assign inliner function directly
	  to the builtin subrs.

2005-02-04  Shiro Kawai  <shiro@acm.org>

	* src/core.c: added experimental sampling profiler code.  it uses
	  ITIMER_PROF, so it won't be available for all platforms.
	* lib/gauche/vm/profiler.scm: profiler utilities.

2005-02-02  Shiro Kawai  <shiro@acm.org>

	* configure.ac, src/gauche/config.h.in (DOUBLE_ARMENDIAN):
	  added check to support ARM processor.
	* src/number.c (union ieee_double), ext/binary/binary.c (SWAPD):
	  support ARM's mixed endian
	* ext/uvector/uvectorP.h (s8unbox): ensure return type is signed
	  char.

2005-01-25  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/condutil.scm (extract-condition): fixed a bug that
	  error was used where errorf should have been.  Patch from
	  Ueyama Rui.

2005-01-24  Shiro Kawai  <shiro@acm.org>

	* extlib.stub (append!): fixed to allow non-list in the last arg,
	  for consistency of srfi-1.

2005-01-16  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/vm/insn.scm.src, src/gencomp: calculate generated code
	  vector using the target compiler's instruction set, instead of 
	  the host compiler's.
	* src/vminsn.scm: rearranged.

2005-01-15  Shiro Kawai  <shiro@acm.org>

	* src/comp.scm: implemented builtin procedure inlining.

2005-01-14  Shiro Kawai  <shiro@acm.org>

	* src/compile.c, src/vm.c, src/comp.scm, etc: snapshot of replacing
	  the legacy compiler for the new compiler.  Legacy code is #ifdef-ed
	  out.  Procedure inlining is not supported, but other functionalities
	  work.

2005-01-09  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/gauche/vm.h (ScmSyntacticClosure): Added syntactic
	  closure object.  Although most functionalities that deal with
	  syntactic closures will be written in Scheme, we need a disjoint
	  type for this, and we need it without bootstrapping.

2005-01-08  Shiro Kawai  <shiro@acm.org>

	* src/list.c (Scm_Length): changed API to return distinct values for
	  dotted and circulare lists (SCM_LIST_DOTTED and SCM_LIST_CIRCULAR,
	  respectively).  This shouldn't affect existing code, since they
	  all checks if the return value is negative or not.
	* src/gauche.h : added the enums for above change, and also added
	  three macros, SCM_PROPER_LIST_P, SCM_DOTTED_LIST_P and
	  SCM_CIRCULAR_LIST_P.
	* src/extlib.stub : included srfi-1's proper-list?, dotted-list?
	  and circular-list?.

2005-01-07  Shiro Kawai  <shiro@acm.org>

	* ext/net/net.scm (make-server-socket, make-server-sockets): added
	  :sock-init keyword arguments (Patch from Tatsuya BIZENN).

2005-01-05  Shiro Kawai  <shiro@acm.org>

	* ext/mt-random/mt-random.scm (mt-random-integer): fixed a bug in
	  rarely-executed branch of the code.

2004-12-30  Shiro Kawai  <shiro@acm.org>

	* src/intlib.stub : moved some APIs from extlib which are only intended
	  to be used by Gauche internal routines.

2004-12-27  Shiro Kawai  <shiro@acm.org>

	* src/class.c (Scm_ClassOf, Scm_EOFObjectClass, Scm_UndefinedObjectClass):
	  added classes for singleton immediate object #<eof> and #<undef>.
	* src/vm.c : added some API needed to run pre-compiled code.
	* src/gencomp : added initial version of a script to pre-compile
	  the compiler.
	* src/comp.scm : added a skeleton of the compiler.

2004-12-26  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/condutil.scm, lib/gauche/object.scm (object-apply):
	  moved object-apply of <condition-type> from condutil.scm to
	  object.scm, so that condition-type-as-predicate works without
	  loading condutil.scm.

	* src/compile.c, src/class.c (<identifier>): expose identifier
	  internals to Scheme.  This is temporary solution until the compiler
	  is revised.

	* lib/gauche/cgen.scm : handles static literals more wisely.
	* src/autoloads.scm, src/builtin-syms.scm : changed accordingly.

	* src/gauche.h (SCM_STRING_CONST_INITIALIZER): separated constant
	  string initializer to an individual macro.

2004-12-24  Shiro Kawai  <shiro@acm.org>

	* lib/file/util.scm: added decompose-path, path-extension,
	  path-sans-extension and path-swap-extension.
	* Makefile.in, src/Makefile.in, lib/Makefile.in (pre-package):
	  added a target 'pre-package', which should be run before creating
	  distribution tarball.  It generates some files that requires
	  pre-installed Gauche.
	* lib/gauche/vm/insn.scm.src : added.  It generates insn.scm from
	  src/vminsn.scm.
	* src/compile.c (Scm_Compile): changed API to make Scm_Compile as
	  the default gate to the compiler module.
	* src/vm.c, src/gauche.h: changed accordingly.

2004-12-23  Shiro Kawai  <shiro@acm.org>

	* src/vminsn.scm, src/geninsn: added.  manage VM insn definition
	  in Scheme format instead of *.h and cpp trick.
	* src/gauche/vminsn.h: removed.  Now it is generated from vminsn.scm.
	* src/gauche/vm.h: no longer include vminsn.h.  The C files that needs
	  vminsn symbols must include gauche/vminsn.h explicitly.
	* src/vm.c, src/compile.c, src/macro.c, src/stdlib.stub,
	  src/extlib.stub, src/moplib.stub: changed accordingly.
	* src/Makefile.in: added rules to generate vminsn.[ch].

2004-12-22  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/gauche/vm.h,
	  src/compile.c, src/proc.c, src/builtin-syms.scm :
	  Changed VM to use code-vector instead of directed graph.
	  The compiled code is now converted to ScmCompiledCode before
	  executed.  This is the first stage of the new VM/compiler
	  architecture.
	* src/core.c, src/main.c :
	  Added -fcollect-stats option experimentally, to collect and
	  display VM stats info.
	* lib/gauche/vm/disasm.scm : removed.  the functionality is
	  supported by core.
	* lib/gauche/procedure.scm : the 'disasm' function (wrapper
	  of more primitive subrs) are defined here.

2004-12-21  Shiro Kawai  <shiro@acm.org>

	* src/gauche/arith_i386.h (UMULOV, SMULOV): use "g" constraint to
	  avoid gcc from failing to allocate registers in some cases.
	* acinclude.m4, aclocal.m4 (AC_GAUCHE_OPTFLAGS): check $target instead
	  of $host.  Use 'case' to check if the compiler is gcc or not.

2004-12-18  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/sortutil.scm (stable-sort!): fixed a bug when sorting
	  vectors.

2004-12-17  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h, src/gauche/class.h, src/gauche/memory.h, 
	  src/list.c, src/compile.c, src/macro.c, src/read.c, src/vm.c,
	  src/error.c, src/builtin-syms.scm:  Changed tagging scheme
	  to make ScmPair 2 words.

2004-12-15  Shiro Kawai  <shiro@acm.org>

	* ext/digest/md5.stub, ext/digest/md5.scm,
	  ext/digest/sha1.stub, ext/digest/sha1.scm,
	  ext/digest/Makeifle.in: modified to use u8vector as a buffer
	  instead of string.  Based on the patch from Michal Maruška.
	
2004-12-14  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/collection.scm (fold2, fold3, map-accum,
	  group-collection): added these procedures.
	* lib/gauche/sequence.scm (group-sequence): added a procedure.
	* test/colseq.scm, doc/modgauche.texi: updated accordingly.

2004-12-11  Shiro Kawai  <shiro@acm.org>

	* lib/util/queue.scm (queue-push-unique!, enqueue-unique!): added
	  these procedures.
	* test/util.scm, doc/modutil.texi: updated accordingly.

2004-12-03  Shiro Kawai  <shiro@acm.org>

	* src/Makefile.in: changed LDFLAGS to have -L. before the directories
	  given in --with-local=DIR, to avoid conflicts against the existing
	  libgauche in DIRs.

2004-12-02  Shiro Kawai  <shiro@acm.org>

	* release 0.8.3

	* lib/slib.scm.in (software-type): check architecture so that
	  it returns MS-DOS on Windows/MinGW version.
	* src/port.c (look_for_encoding): ignore '-(unix|dos|mac)' suffix
	  of encoding name in the coding magic comment, for Emacs
	  compatibility.
	* src/number.c (Scm_PrintDouble): added API to use Burger&Dybvig
	  algorithm.
	* ext/uvector/uvgen.scm: fixed to print values of f32 and f64 vectors
	  accurately.

2004-12-01  Shiro Kawai  <shiro@acm.org>

	* src/port.c (coding_port_recognize_encoding): fixed a bug that
	  caused misbehavior of coding-aware ports with CRLF line terminators.

2004-11-29  Shiro Kawai  <shiro@acm.org>

	* release 0.8.2

	* src/error.c (porterror_cpl): added missing terminating NULL of CPA.
	  (porterror_allocate): added missing initialization of 'message slot.
	* src/gauche/vm.h (SCM_SIGPENDING): recovered, for some extensions
	  use this macro.  Should be considered deprecated.
	* lib/gauche/exclib.stub (extract-condition): added slot-bound check.

2004-11-28  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/condutil.scm (define-condition-type): extended to
	  allow #f as predicate and omitting accessors.

	* lib/www/cgi.scm: added some condition types to be raised on
	  invalid requests.

2004-11-27  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/array.scm (share-array): fix to support uniform arrays
	  (pointed out by OGURISU Osamu).

2004-11-25  Shiro Kawai  <shiro@acm.org>

	* src/core.c (Scm_Init): setting of GC_finalize_on_demand was
	  reversed.  fixed.

	* lib/rfc/mime.scm (make-mime-port): fixed a bug that incorrectly
	  treated CR-CR-LF sequence just before a boundary.

	* lib/www/cgi.scm (cgi-parse-parameters): use limited-length-port
	  to read POST message body if content-length is specified.  It is
	  necessary when the progam is communicating with persistent
	  connection, which doesn't delimit the message body by EOF.

2004-11-24  Shiro Kawai  <shiro@acm.org>

	* ext/vport/vport.scm (open-input-limited-length-port): added
	  experimentally.

	* lib/www/cgi.scm (cgi-parse-parameters): better API to support
	  POST with multipart/form-data.

2004-11-23  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/charconv.scm (ces-convert): close temporary ports
	  properly to avoid unnecessary finalizer invocation.

2004-11-22  Shiro Kawai  <shiro@acm.org>

	* src/write.c (write_ss): close temporary port to avoid unnecessary
	  finalizer call.
	* src/vm.c (run_loop): fixed a bug that didn't save VM regs before
	  calling Scm_SigCheck, which sometimes caused SEGV after getting
	  signals.  Also changed to check queued finalizer as well.
	  (process_queued_requests): handles queued signal handlers and
	  finalizers properly.
	* src/core.c: implemented finalizer queue.
	* src/signal.c: slightly changed data structure.
	* src/gauche/vm.h: ditto

	* ext/uvector/array.scm (initialize): fixed write-object method
	  to avoid stale shared-structure output.

2004-11-21  Shiro Kawai  <shiro@acm.org>

	* src/core.c (Scm_LibraryDirectory etc): made these API instead of
	  configure-time macro reference, to hide difference in MinGW.
	* src/load.c (Scm__InitLoad): ditto

	* DIST, src/Makefile.in: tweaks to create MinGW binary distribution.

2004-11-20  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/mime.scm (make-mime-port): fixed a bug that didn't
	  consume '\n' following '\r' after the boundary.

	* lib/www/cgi.scm (get-mime-parts): supports file+name handler
	  action.

2004-11-19  Shiro Kawai  <shiro@acm.org>

	* ext/vport/vport.c (Scm_Init_vport): added missing SCM_INIT_EXTENSION

2004-11-13  Shiro Kawai  <shiro@acm.org>

	* ext/binary/test.scm: exclude denormalized 32-bit floating point 
	  test on Alpha, since they're not precisely supported on that
	  architecture.
	* src/number.c, ext/uvector/*: various fixed on LP64 architecture.

2004-11-12  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/mime.scm (mime-parse-message etc.):
	  INCOMPATIBLE CHANGE: Re-implemented MIME body parser to use 
	  procedural port to recognize MIME boundary.  The previous approach
	  turned not to work if the body contains raw binary data.
	  This change make the 'READER' argument for handlers unnecessary,
	  and the API has been changed accordingly.
	* lib/www/cgi.scm : Adjusted to the above API change.

2004-11-11  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/procedure.scm (let-keywords*): fixed a bug that corrupts
	  expansion when used in r5rs macro.

	* src/builtin-syms.scm: added SCM_SYM_BIG_ENDIAN and
	  SCM_SYM_LITTLE_ENDIAN.
	* ext/binary/binarylib.stub: changed accordingly.

	* ext/uvector: EXPERIMENTAL: added byte-swapping APIs
	  (TAGvector-byte-swap, TAGvector-byte-swap!, uvector-byte-swap, 
	  uvector-byte-swap!), and added optional `endian' argument to
	  read-block! and write-block.  Not completely sure if they have to
	  be here, so let's say they're experimental.

	* ext/vport: added open-input-uvector and open-output-uvector,
	  uvector backed-up ports.

2004-11-10  Shiro Kawai  <shiro@acm.org>

	* src/class.c (Scm_DeleteMethod): fixed a bug that caused infinite
	  loop during class redefinition.

	* lib/text/csv.scm (make-csv-reader|writer): made quote-char
	  customizable (Patch from Alex Shinn).

2004-11-09  Shiro Kawai  <shiro@acm.org>

	* lib/binary/pack.scm (read-one-packer): fixed a bug of '@' handling
	  in unpack.

2004-11-04  Shiro Kawai  <shiro@acm.org>

	* src/number.c, src/bignum.c: fixed bugs in boundary cases of
	  integer conversions.  changed API of Scm_GetInteger* to allow
	  more flexible handling of clamping behavior.  See the comment
	  in src/gauche.h (`Converting a Scheme number to a C number'
	  for the details.
	* src/gauche.h: changed accodringly.
	* src/extlib.stub: changed acoodringly.
	* src/test-arith.c : added test for integer conversion APIs.
	* src/gauche/scmconst.h, src/number.c (SCM_2_64_MINUS_1): new constant.

	* ext/uvector/*: replaced the dreaded shell scripts for friendy
	  Scheme scripts (uvgen.scm) to generate C code.  The API is
	  cleaned up a lot, particularly the humble task of conversions
	  and clamping between Scheme integers and 32/64-bit C integers 
	  are integrated to the Gauche core.
	- also added string->[su]8vector!
	- also changed the API of TAGvector-copy! to be parallel with
	  srfi-13(string-copy!) and srfi-43(vector-copy!).  The old API
	  is still supported, dispatched by the argument type, but will
	  be deprecated.

	* ext/mt-random/*: changed according to the modification of uvector.

2004-11-03  Shiro Kawai  <shiro@acm.org>

	* src/portapi.c (Scm_Putb, Scm_Putc): size argument of the
	  bufport_flush call was not good, causing excess flusing of
	  buffer to make buffered output inefficient.
	* ext/vport/* : supported bufferd-input|output-port.

2004-11-01  Shiro Kawai  <shiro@acm.org>

	* lib/file/util.scm (directory-list): fix not to include "." and
	  ".." even if :filter-add-path? is #t.

	* lib/srfi-19.scm (date->julian-day): fix a bug to honor tz-offset.

	* configure.ac, ext/Makefile.in : added ext/vport
	* src/gauche.h : removed 'Getline' entry from ScmPortVTableRec; it
	  seems only to add extra complexity.  Also changed the return value
	  of Scm_ClosePort to void, since the return value hasn't used at all.
	* src/port.c : fixed accordingly.
	* ext/vport/* : the first phase of supporting virtual ports.

2004-10-31  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub (byte-ready?): added.

2004-10-21  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h, src/port.c : fixed return type of vtable entries.

2004-10-17  Shiro Kawai  <shiro@acm.org>

	* src/error.c, src/gauche.h, src/gauche/exception.h: added
	  <io-unit-error>.

	* lib/gauche/parseopt.scm (let-args): fixed a bug of 'else' clause
	  formal parameter handling.

2004-10-12  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h: avoid using 'template' as an argument name.

2004-10-10  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/condutil.scm : added.  defines miscellaneous srfi-35
	  compatible APIs.  autoloaded.
	* lib/Makefile.in : added condutil.scm
	* src/error.c : changed the name of 'conditions' slot of
	  <compound-condition> to '%conditions', to avoid name conflict
	  with its members.

2004-10-09  Shiro Kawai  <shiro@acm.org>


	* src/port.c, src/portapi.c : revised to use Scm_PortError instead
	  of Scm_Error when appropriate.
	* src/read.c : replaced some Scm_Error by Scm_ReadError.
	* src/class.c (Scm_InitStaticClassWithMeta): exported for tricky
	  use, if the builtin class wants to control both metaclasses and
	  superclasses.
	  (Scm_ObjectAllocate): expose object_allocate so that
	  other C-defined placeholding "base" class (i.e. classes only
	  introduced for inheritance, but does not introduce C-specific
	  slots) can be used as a a superclass of other C-defined classes.
	* src/error.c (Scm_PortError): added utility function.
	  (Scm_PrintDefaultErrorHeading): use condition's class name to
	  display the error message heading.
	  (Scm_ConditionTypeName): for convenicne.
	* src/exclib.stub : some srfi-35 procedures.
	* src/vm.c (Scm_VMThrowException): changed the non-continuable
	  exception check according to the new condition hierarchy.
	* test/exception.scm : modified according to the recent change.

2004-10-08  Shiro Kawai  <shiro@acm.org>

	* src/class.c: revised class initialization API.  Scm_InitBuiltinClass
	  is obsoleted; use Scm_InitStaticClass instead.
	  Also added Scm_InitStaticClassWithSupers for the builtin class
	  with multiple inheritance (used for condition hierarchy).
	* src/error.c, src/gauche/exception.h : revised to support condition
	  hierarchy.  Renamed ScmException -> ScmCondition, for the consistency
	  with srfi-35.
	* src/gauche-init.scm : make <exception> a synonym of <condition>,
	  for backward compatibility.
	* various files: modified according to the change of class
	  initialization API.

2004-10-05  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/guess.c: fixed initializer type mismatch.

	* lib/rfc/822.scm (rfc822-parse-date) : fix off-by-one error of
	  return value of month.
	* test/rfc.scm : ditto
	
	* src/gauche.h, src/portapi.c : code clean up

2004-10-03  Shiro Kawai  <shiro@acm.org>

	* src/port.c: removed dead code.
	* test/dynwind.scm: added a few tests (Patch from Ueyama Rui)

2004-09-20  Shiro Kawai  <shiro@acm.org>

	* src/portapi.c, src/gauche.h : changed ScmPortVTable.Ready to take
	  extra arg to distinguish between byte-ready? and char-ready?.

2004-09-19  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h : added missing prototypes of several number-related
	  APIs. (Thanks to OGURISU Osamu for pointing this out).
	* src/number.c (roundeven): fixed a bug.
	  (Scm_PromoteToComplex): fixed a bug (Patch from OGURISU Osamu).

2004-09-17  Shiro Kawai  <shiro@acm.org>

	* src/load.c (Scm_VMLoad): use coding-aware port to load source file
	  by default.  Changed the API to take bitmask flags.
	* src/port.c : changed some API to allow port subclasses.
	* src/gauche.h : changed accordingly.

	* src/gauche.h (ScmPort): supports line counting feature in generic
	  port level, instead of only in buffered ports.
	* src/port.c, src/portapi.c, src/read.c : changed accordingly.

2004-09-16  Shiro Kawai  <shiro@acm.org>

	* src/port.c (Scm_MakeCodingAwarePort): preparation of enabling
          'coding:' magic comment in the source file.
	* src/gauche.h: ditto
	* src/extlib.stub (open-coding-aware-port): ditto
	* ext/charconv/charconv.c: ditto
	* tests/io.scm, ext/charconv/test.scm: ditto.
	* src/portapi.c (Scm_ByteReady): added
	* src/gauche/char_sjis.h: added some more encoding aliases of sjis.
	* src/char.c (Scm_SupportedCharacterEncodingP): compare the encoding
	  names case-insensitively.

2004-09-14  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/jconv.c (sjis2eucj): fix for sjis 2nd plane convesion
	  (patch from Kimura Fuyuki).

	* lib/www/cgi.scm (cgi-header): put :status first if specified.

2004-09-13  Shiro Kawai  <shiro@acm.org>

	* gc/* : updated to gc6.3
	* src/Makefile.in : ditto

	* ext/uvector/array.scm (gauche.array): added exported symbols.

2004-09-12  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/regexp.scm (regexp-replace-all): detect the case when
	  regexp matched to null string, and raises an error to avoid infinite
	  loop.
	* lib/dbm/fsdbm.scm : allow binary data to be stored.

2004-09-11  Shiro Kawai  <shiro@acm.org>

	* ext/termios/* : Added support of termios.c_cc (Based on the patch
	  from Kogule, Ryo).

2004-09-01  Shiro Kawai  <shiro@acm.org>

	* ext/fcntl/fcntl.c (Scm_SysFcntl): Supports F_GETOWN and F_SETOWN
	  if the system provides them.
	* ext/fcntl/fcntl.scm, ext/fcntl/fcntlib.stub: ditto

2004-08-28  Kimura Fuyuki  <fuyuki@hadaly.org>

	* src/bignum.c (Scm_BignumToUI64): Avoid using `a=a=1' style
	assignment. Newer gcc versions don't like it and say that
	operation "may be undefined".

	* ext/termios/gauche/termios.h, ext/uvector/uvlib.stub.sh,
	src/bignum.c: Include more header files to suppress compiler
	warnings such like "implicit declaration".

2004-08-23  Shiro Kawai  <shiro@acm.org>

	* lib/util/match.scm (validate-pattern): fixed a bug in quasipattern.

2004-08-19  Shiro Kawai  <shiro@acm.org>

	* src/compile.c, src/genstub, src/stlib.stub, src/gauche.h,
	  src/gauche/vm.h: got rid of Scm_CompileInliner.

2004-08-18  Shiro Kawai  <shiro@acm.org>

	* configure.ac (SONAME_FLAG), src/Makefile.in : attach
	  SONAME to libgauche.so when the linker takes --soname flag.
	
	* src/compile.c, src/stdlib.stub, src/gauche/vm.h:
	  making an inliner into a generic compiler macro, stage 3.
	  Now the inliner is (Sexpr, Env, Context) -> (Sexpr), which is
	  the same as the macro transformer.
	
2004-08-14  Shiro Kawai  <shiro@acm.org>

	* src/compile.c, src/macro.c, src/genstub, src/gauche.h:
	  making an inliner into a generic compiler macro, stage 2.

2004-08-12  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h (ScmSubr, ScmInliner),
	  src/compile.c (compile_int),
	  src/genstub, src/stdlib.stub: making an inliner into a generic
	  compiler macro, stage 1.

2004-08-04  Shiro Kawai  <shiro@acm.org>

	* lib/Makefile.in (slibcat-in-place): fix.  patch from Kogulé, Ryo.
	* ltmain.sh (EGREP): fix.  patch from Kogulé, Ryo.

2004-08-02  Shiro Kawai  <shiro@acm.org>

	* release 0.8.1

	* ext/net/net.h : moved to ext/net/gauche/net.h, for consistency.
	* ext/net/*.c : adapted to the above change
	* ext/Makefile.ext.in : fixed header installation.

2004-08-01  Shiro Kawai  <shiro@acm.org>

	* configure.ac : disable using -rpath if --with-rpath=no is given.
	  disable using makeverslink on cygwin.

	* Makefile.in (install-pkg): make install under lib/ and ext/ before
	  src/.	 Since "make install" under lib and ext requires gosh, we want
	  to make sure we use just-built libgauche.so; thus we want to run them
	  before relinking with new -rpath.

	* ext/sxml/ssax.scm.in (sxml.ssax): extend srfi-11 and sxml.adaptor,
	  since the macro generated by ssax:make-parser will include references
	  to the symbols defined in them.  This won't be a problem once
	  ssax is rewritten by R5RS macros, so this should be regarded as
	  a temporary fix.

	* src/link-hpux : fixed dynamic link search path problem.
	* src/makeverslink : avoid creating links if they are already created.
	* ext/Makefile.ext.in, src/charconv/Makefile.in, src/sxml/Makefile.in:
	  avoid using GNU make specific feature.

2004-07-31  Shiro Kawai  <shiro@acm.org>

	* src/compile.c (Scm_UnwrapSyntax): expose this as an API.
	* src/extlib.c (unwrap-syntax): made it a subr.
	* lib/gauche/common-macros.scm (unwrap-syntax): made it a subr.
	* src/error.c (Scm_ShowStackTrace): a bit of cleanup.
	* src/gauche/char_euc_jp.h (SCM_CHAR_GET): tighten the rules to
	  accept euc-jp sequence.

2004-07-29  Shiro Kawai  <shiro@acm.org>

	* lib/www/cgi.scm (cgi-add-temporary-file, cgi-main): added capability
	  to clean up temporary files upon exit of cgi-main.

2004-07-28  Shiro Kawai  <shiro@acm.org>

	* lib/util/match.scm (gen) : fixed a bug that reused a temporary
	  variable for intermediate match, which confused the match optimizer.
	  (Pointed out by HIRAUCHI Hideyuki).

2004-07-27  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-0.scm: typo fix
	* src/load.c: typo fix

	* src/system.c (Scm_GlobDirectory): fixed potential memory leak on
	  error of glob() call.

2004-07-26  Shiro Kawai  <shiro@acm.org>

	* lib/www/cgi.scm (cgi-parse-parameters): added support for
	  multipart/form-data posting (e.g. file uploading).
	* lib/file/util.scm (temporary-directory): added.
	* src/module.c (Scm_FindBinding): fixed meaningless if-condition.
	* lib/gauche/package/fetch.scm (gauche-package-ensure): typo fix.

2004-07-25  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-0.scm (cond-expand) : changed to a legacy macro, in order
	  to use different feature ids depending compiler options.
	* src/load.c (Scm__InitLoad) : initialize *cond-features* list
	  with compiler-options specific values.
	* src/buildin-syms.scm : added some symbols for pre-defined feature
	  ids for *cond-features*.
	* test/srfi.scm : added more srfi-0 tests.

2004-07-24  Shiro Kawai  <shiro@acm.org>

	* lib/file/util.scm (make-directory*) : remove trailing '/' if any,
	  for mkdir of some platforms complains on it.

2004-07-20  Shiro Kawai  <shiro@acm.org>

	* src/makeverslink: fixed to follow the convention of symlinks, i.e.
	  it renames the real sofile to libgauche.so.$(VERSION), and make
	  libgauche.so a symlink to it, etc.
	
	* src/syslib.stub, src/system.c (Scm_SysMkstemp): provides alternative
	  of mkstemp() for platforms that don't have one (e.g. Win32).
	* src/load.c : for MinGW, changed the default load path to look for
	  subdirectories.
	* DIST: preparing MinGW packaging (not quite working yet).

2004-07-20  Kimura Fuyuki  <fuyuki@hadaly.org>

	* ext/charconv/Makefile.in: Add three C files to the GENERATED
	  variable since they should be cleaned out by `make distclean'.

2004-07-18  Shiro Kawai  <shiro@acm.org>

	* src/write.c (write_ss_rec): fixed a bug to avoid numbers from
	  begin written out by srfi-38 notation.

2004-07-17  Kimura Fuyuki  <fuyuki@hadaly.org>

	* ext/dbm/test.scm: Some ndbm implementations create a single file
	  with the suffix .db and it needs to be cleaned up even though
	  that behavior is considered an XPG violation.

2004-07-16  Shiro Kawai  <shiro@acm.org>

	* src/port.c (bufport_fill): somehow it called filler() with
	  minimum buffer size when the buffering mode is PORT_BUFFER_LINE.
	  It should be able to use maximum buffer size---only PORT_BUFFER_NONE
	  need to fetch minimum chunk at a time.

	* src/system.c (pipe): implemented via _pipe().
	  (fork, kill, etc): sets windows error ERROR_CALL_NOT_IMPLEMENTED
	  before returning.

	* src/error.c (Scm_SysError): on MinGW, retrieve error message using
	  FormatMessage instead of strerr; the former covers wider range of
	  Windows errors.
	* ext/net/net.c, ext/net/net.h: adapted to winsock on MinGW. 
	  At least TCP connection seems working.

2004-07-15  Shiro Kawai  <shiro@acm.org>

	* src/load.c (Scm__InitLoad): on MinGW, use the program path to resolve
	  library/dll directories, instead of embedding them at make time.

	* src/parameter.c (Scm_ParameterTableInit etc.): fixed a problem that
	  a thread may inadvertently refer to wrong parameter which the thread
	  does not have.
	* lib/gauche/parameter.scm: ditto
	* src/gauche/vm.h: ditto
	* src/core.c: ditto
	* ext/threads/test.scm: ditto

2004-07-14  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-19.scm (tm:time-difference): fixed bad args for error
	  procedure (pointed out by Michal Maruška)

	* src/gauche/mingw-compat.h: added for MinGW port.
	* doc/mingw-memo.txt: added for MinGW port.
	* DIST, configure.ac, src/system.c, src/syslib.stub, src/load.c,
	  src/dl_win.c, src/signal.c, src/main.c, ext/auxsys/auxsys.c,
	  ext/auxsys/auxsyslib.stub, ext/fcntl/fcntl.c, ext/net/net.c
	  ext/net/net.h, ext/termios/termiolib.stub, ext/termios/temios.c,
	  gc/gc.h: 
	  added MinGW support (first stage; very rudimentatl).

2004-07-13  Shiro Kawai  <shiro@acm.org>

	* src/compile.c (compile_body): fixed a bug that passes
	  (define (a) 1 (define b 2) b)

2004-07-12  Shiro Kawai  <shiro@acm.org>

	* src/compile.c (compile_body): supports internal defines generated
	  by macro expansion.
	* macro.c, compile.c, gauche.h, class.c : introduced ScmMacro structure
	  apart from ScmSyntax to represent macros.  necessary to separate
	  the transform pass and the compile pass, in order to support
	  internal defines generated as a result of macro expansion.

2004-07-10  Shiro Kawai  <shiro@acm.org>

	* examples/spigot/configure.in: removed AC_PROG_INSTALL and commented
	  out AC_CANONICAL_SYSTEM, since they are not really necessary.

2004-07-09  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/uri.scm (uri-parse): added.
	  (uri-decompose-hierarchical): accept #f as an argument for the
	  convenience.
	  (uri-decompose-authority): ditto.

2004-07-05  Shiro Kawai  <shiro@acm.org>

	* src/load.c (Scm_MakeAutoload): fixed a bug of autoload that
	  fails assertion.  (Reported from SEINO Katsuhiro).
	* src/autoloads.scm : ditto
	* src/gauche.h (Scm_MakeAutoload): ditto
	* src/extlib.stub (%make-autoload): commented out since it isn't
	  (shouldn't) used.

2004-06-27  Shiro Kawai  <shiro@acm.org>

	* src/macro.c (macro_autoload, Scm_MacroExpand): resolve autoloaded
	  macro in macroexpand as well.

	* lib/gauche/interactive.scm (%apropos): search ancestors of imported
	  modules as well.

	* src/gauche-cesconv.in (main): fixed --help.

	* src/number.c (Scm_Divide): fixed a bug when complex numbers
	  appear in more than 2 arg cases.

2004-06-22  Shiro Kawai  <shiro@acm.org>

	* examples/spigot/Makefile.in (*_INSTALL_DIR): there shouldn't
	  be a '/' between $(DESTDIR) and the actual pathname.

2004-06-17  Shiro Kawai  <shiro@acm.org>

	* src/compile.c (unwrap_identifier): fixed a bug when expanded
	  syntax has a quoted vector (patch by teranishi).

	* src/number.c (Scm_Divide): fixed a bug when '/' takes more than
	  two args and involves bignum. (patch by anonymous).

	* src/bignum.c (bignum_gdiv): fixed the problem of bignum division,
	  when the estimated quotient becomes greater than one digit value
	  (e.g. #x10001).  Pointed out by 'hipster'.

2004-06-04  Shiro Kawai  <shiro@acm.org>

	* src/compile.c (compile_cond_int): fixed a bug that 'case' didn't
	  work when it appeared in the macro-expanded form (Pointed out by
	  Grzegorz Chrupała).

2004-05-31  Shiro Kawai  <shiro@acm.org>

	* src/regexp.c: enable regexps to be compared by equal?.

	* ext/net/net.ac: avoid checking getprotobyname_r etc on NetBSD,
	  since these are not supposed to be used by user programs on the
	  current NetBSD.  (Patch from MINOURA Makoto)
	* ext/net/netdb.c (Scm_GetHostByAddr): fix for referring a wrong
	  preprocessor symbol (Patch from MINOURA Makoto)
	* doc/extract (filter pattern-in pattern-out): fix for breaking
	  dirs entry (Patch from MINOURA Makoto).

	* ext/Makefile.ext.in (install-std): use gauche-install to install
	  extension files instead of @INSTALL@.  It can be
	  $(top_srcdir)/install-sh as a fallback, but $(top_srcdir) isn't
	  what we desired.  Besides that, using gauche-install makes rules
	  simpler.

	* ext/net/net.scm (make-sockaddrs): check the return value of
	  sys-getservbyname and sys-gethostbyname for more comprehensive
	  error.

2004-05-22  Shiro Kawai  <shiro@acm.org>

	* release 0.8

	* lib/gauche/package/build.scm (gauche-package-build): clean builddir
	  before untar.
	* src/gauche-cesconv.in: fixed command-line argument handling bug.

2004-05-21  Shiro Kawai  <shiro@acm.org>

	* src/module.c (modules): make sure the global module name map is
	  placed in the data region instead of bss.

	* src/gauche.h, src/gauche/class.h : avoid using C++ reserved words
	  (pointed out by Laurent Marzullo).

	* src/extlib.stub (rxmatch-num-matches): added.

	* lib/gauche/object.scm: added 'ref' method specialized for hash-table.

	* doc/modgauche.texi (Low-level socket interface): added descrption
	  of socket-getsockname, socket-getpeername, socket-send,
	  socket-sendto, socket-recv, and socket-recvfrom.
	  (Array): added description of uniform numeric arrays.

	* src/compile.c (compile_define): added check to prevent non-toplevel
	  use of define family ('internal' defines should be resolved
	  elsewhere).

	* lib/text/html-lite.scm (frameset): added frame-related tags
	  (patch from Nekoie).

	* lib/file/util.scm (build-path): ignore empty string in the components
	  (patch from Grzegorz Chrupała).

2004-05-20  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (run_loop): fixed a problem of application of user-defined
	  <generic> subclass.
	* src/class.c (class_cpl_set): set 'applicable' bit of the class if
	  it inherits applicable base class.
	* lib/gauche/object.scm (define-generic): allow :class keyword argument
	  to specify the class of the generic fn.

	* src/keyword.c, src/extlib.stub :
	  added delete-keyword and delete-keyword!.

	* src/gauche-init.scm (add-load-path): reverted afterp optional
	  argument that was dropped inadvertently.

	* src/portapi.c (port-seek): invalidate ungotten character if
	  port position is moved.  Pointed out by Alex Shinn.

	* src/gauche.h (ScmReadError): added <read-error>
	* src/error.c: ditto
	* src/read.c: ditto

2004-05-19  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/test.scm (write-object): fixed output of display.

	* lib/gauche/common-macro.scm (guard): added srfi-34 guard.
	* src/autoloads.scm (guard): added guard as a autoloaded macro.
	* test/exception.scm: added.

	* src/exclib.stub:
	* src/error.scm: moved the definitions of exception classes from
	  exclib.stub to error.scm.  Needed to allow user-defined error
	  types.

2004-05-16  Shiro Kawai  <shiro@acm.org>

	* src/gauche-package.in: added --reconfigure option for install
	  and build.
	* lib/gauche/package/build.scm (gauche-package-build): fetch older
	  verion's configure options if reconfigure is specified.
	* lib/gauche/package.scm (call-with-iterator): avoid getting duplicate
	  gpd entries; only picks the most recent ones.

2004-05-15  Shiro Kawai  <shiro@acm.org>

	* src/gauche-package.in: added --install-as option for install.
	  use :all-versions to search gpd files for reconfigure and list.
	
	* lib/gauche/package.scm (gauche-package-description-paths): added
	  :all-versions keyword argument to search library directories
	  of older Gauche versions.
	
	* lib/gauche/package/build.scm: allow sudo option to specify the
	  username.

2004-05-14  Shiro Kawai  <shiro@acm.org>

	* lib/file/util.scm (file->string, file->string-list, file->ilst,
	  file->sexp-list): added convenience procedures.

	* lib/gauche/ioutil.scm, src/gauche-init.scm: moved contents of
	  ioutil to gauche-init.scm, and removed ioutil.scm.
	* src/autoloads.scm: removed reference to ioutil.  added autoload
	  of values-ref.

2004-05-13  Shiro Kawai  <shiro@acm.org>

	* src/stdlib.stub : moved open-input-file and open-output-file to
	  the autoloaded file lib/gauche/with.scm
	* lib/gauche/with.scm (open-input-file, open-output-file): defined
	  them here, and calls either internal %open-*-file or charconv's
	  %open-*-file/conv depending on :encoding keyword argument.
	* src/extlib.stub (%open-input-file, %open-output-file): implements
	  core part of open-*-file here.
	* ext/charconv/charconv.scm : removed open-input-file etc.  Instead,
	  defines %open-*-file/conv, which is called from the system's
	  open-*-file when :encoding is given.   Handles :if-does-not-exist #f
	  case, according to HIRAUCHI Hideyuki's patch.
	* src/autoloads.scm: added autoloads for open-*-file and
	  %open-*-file/conv.
	
	* lib/util/match.scm (get-setter, get-getter): cleaned up by using
	  srfi-17 and srfi-26 mechanism.

2004-05-12  Shiro Kawai  <shiro@acm.org>

	* lib/www/cgi.scm: export cgi-get-metavariables (alias of get-meta).

	* lib/util/match.scm: changed object pattern syntax.

2004-05-11  Shiro Kawai  <shiro@acm.org>

	* lib/util/match.scm: added Andrew Wright's match macro, tailored
	  for Gauche.
	* lib/Makefile.in: ditto
	* test/match.scm: test for util.match
	* test/TESTS: ditto
	
	* src/test.scm : added *test-report-error* variable to control
	  showing stack trace of captured errors.

2004-05-07  Shiro Kawai  <shiro@acm.org>

	* src/Makefile.in : added dependency of symbol.o on builtin-syms.c

2004-05-06  Shiro Kawai  <shiro@acm.org>

	* src/gauche-package.in : cleaned up the source a bit.
	* src/Makefile.in : echo script generation.

2004-05-05  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/sortutil.scm (stable-sort, stable-sort!): added stable
	  sort API.
	* src/autoloads.scm : added stable sort API.

2004-05-04  Kimura Fuyuki  <fuyuki@hadaly.org>

	* doc/gosh.1.in: added the ENVIRONMENT section.

	* src/load.c (break_env_paths): Don't trust environment variables
	  only if setugid'd. This change allows the superuser to set his
	  own GAUCHE_LOAD_PATH or GAUCHE_DYNLOAD_PATH.

2004-04-27  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/process.scm (gauche.process): export process-command.

2004-04-24  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/package/build.scm, src/gauche-package: added --sudo
	  option for 'install' command.

	* src/system.c (Scm_SysExec): display program name as well when
	  failed (Patch from Kouhei Sutou).

2004-04-23  Shiro Kawai  <shiro@acm.org>

	* src/module.c (Scm_FindBinding): avoid using cons and memq in
	  temporary data.  It speeds up loading quite a bit.
	  (other fns): changed to use global lock instead of per-module
	  lock for module operations.  It is faster.
	* src/gauche.h (ScmModule) : dropped mutex according to above change.

	* src/port.c, src/gauche/port.h: added PORT_PRELOCK macro for
	  'pre-owned' private port, i.e. the ports that are known to be
	  used privately in a thread.  It avoids call to pthread_mutex_lock.

	* src/write.c (write_ss_rec): integrated the non-shared-structure
	  writer inner loop and shared-structure write inner loop.

2004-04-22  Shiro Kawai  <shiro@acm.org>

	* src/gauche-package.in, src/gauche-install.in : added.
	* src/gauche-cesconv.in : renamed from cesconv.
	* src/Makefile.in : installs gauche-* scripts to bindir.

	* examples/spigot/configure.in : adapted to the package manager

	* lib/gauche/package/build.scm : added
	* lib/gauche/package/util.scm : added
	* lib/gauche/package/fetch.scm : added
	* acinclude.m4 (AC_GAUCHE_MAKE_GPD): a macro to create PACKAGE.gpd
	  file.

2004-04-21  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/package.scm : added (experiemntal; not completed).

2004-04-20  Kimura Fuyuki  <fuyuki@hadaly.org>

	* config.guess, config.sub, install-sh, mkinstalldirs : updated
	  autotools' scripts.

2004-04-16  Shiro Kawai  <shiro@acm.org>

	* lib/file/util.scm (file-is-symlink?): added.

2004-04-13  Kimura Fuyuki  <fuyuki@hadaly.org>

	* doc/corelib.texi, doc/mapping.texi : enhanced documentation for
	  pathname normalizers.

2004-04-11  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/parseopt.scm (get-optargs, compose-entry): added support
	  for "optional option-argument".

2004-04-10  Kimura Fuyuki  <fuyuki@hadaly.org>

	* configure.ac, ext/auxsys/*, src/autoloads.scm,
	  src/gauche/config.h.in : added sys-lchown and sys-realpath

2004-04-01  Shiro Kawai  <shiro@acm.org>

	* src/read.c (read_internal): added #;expr style commend (a la Chez).

	* lib/gauche/common-macros.scm (let/cc): added let/cc (a la PLT).
	* src/autoloads.scm: ditto.

2004-03-15  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (user_eval_inner): saves signal mask.  it appears that
	  not saving mask here would cause hang on cygwin (Reported by
	  HIRAUCHI Hideyuki).

2004-03-14  Shiro Kawai  <shiro@acm.org>

	* src/genstub (process-setter): fixed typo (Pointed by Michal Maruška)

2004-03-13  Shiro Kawai  <shiro@acm.org>

	* ext/xlink : not to make a link when there's already a desired link.

	* ext/charconv/guess.c (guess_jp): returns IAEA-compliant CES name.

	* lib/srfi-13/searcher.scm (string-contains, string-contains-ci):
	  Return value was wrong when start1 is given (patch from 
	  Grzegorz Chrupała).

2004-03-04  Shiro Kawai  <shiro@acm.org>

	* src/gauche/vm.h, src/vm.c and src/regexp.c: make sigsetjmp not
	  to save signal mask.   Those sigsetjmps were introduced around
	  release 0.5 when I implemented the signal stuff.  But I cannot
	  recall why I needed to save a signal mask. (The initial version
	  of Scm_SigCheck did use SCM_UNWIND_PROTECT while it altered
	  signal mask, so it needed some handling.  It is irrelevant for
	  the current version, however).  Since sigsetjmp(_, TRUE) issues
	  a system call every time while sigsetjmp(_, FALSE) doesn't,
	  the latter has significant performance advantage.

2004-02-29  Shiro Kawai  <shiro@acm.org>

	* src/read.c (skipws): fixed a bug that didn't increment line count
	  after comments.

2004-02-26  Shiro Kawai  <shiro@acm.org>

	* release 0.7.4.2

2004-02-25  Shiro Kawai  <shiro@acm.org>

	* src/class.c (Scm_UpdateDirectMethod): updates the new class'
	  direct-method as well.   This bug caused the re-redefined classes
	  to lose original methods.

	* ext/threads/threads.c (thread_entry): displays thread's stack trace
	  when non-handled error is thrown and the thread is about to die
	  (by unhandled-exception).  It will help debugging, and won't be
	  a problem of apps that properly handles errors in threads.

2004-02-24  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-13/revapp.scm (string-concatenate-reverse): optional arg
	  handling was missing.
	* lib/www/cgi.scm (cgi-get-query): fixed a funky behavior when used
	  interactively (Patch from Grzegorz Chrupała).
	* lib/srfi-1/set.scm (lset-xor, lset-xor!): fixed bad call
	  of lset-difference (pointed out by Ueyama Rui).

2004-02-23  Shiro Kawai  <shiro@acm.org>

	* src/read.c (skipws): comment may contain unexpected character
	  encoding, so using getb to skip the comment after semicolon.
	  (We can't do that for srfi-30 nested comment, since the second
	  byte of shift_jis code can be '|', so we can't determine the end
	  of the srfi-30 comment without knowing the encoding.)

2004-02-20  Shiro Kawai  <shiro@acm.org>

	* src/hash.c (delete_entry): fixed a bug that didn't decrement
	  numEntries when an entry was deleted.

2004-02-17  Shiro Kawai  <shiro@acm.org>

	* src/portapi.c (readline_body): fixed a line count problem
	  (Patch from HIRAUCHI Hideyuki).

2004-02-08  Shiro Kawai  <shiro@acm.org>

	* ext/sxml/src/sxpath-ext.scm (sxml:equality-cmp): replaced
	  let-values* for let*-values (latter is srfi-11; the former was
	  used in the original sxml).

2004-02-04  Shiro Kawai  <shiro@acm.org>

	* src/number.c (Scm_GetInteger32Clamp, Scm_GetIntegerU32Clamp):
	  APIs for routines sensitive to integer width.
	* ext/binary/binary.c : adopted the above APIs.

	* release 0.7.4.1

	* lib/dbm/fsdbm.scm (path->hash): avoid using string-hash, since
	  the current implementation doesn't produce a portable hash value.
	  Instead, I use Scheme-implemented version.

2004-02-03  Shiro Kawai  <shiro@acm.org>

	* release 0.7.4
	
	* src/link-dylib : avoid linking old library to gosh.

	* ext/net/netlib.stub : check existence of definitions of MSG_*
	  symbols.

	* configure.ac, gc/configure.in (LOCAL_INC, LOCAL_LIB): avoid
	  putting newlines in the command line when more than one paths
	  are given to --with-local.
	  (CFLAGS): when the architecture is alpha, add -mieee option to
	  avoid SIGFPE on denormalized/infinity numbers.

	* src/read.c (define-reader-ctor): Experimental feature to process
	  srfi-38 syntax in srfi-10 read-time constructor.  define-reader-ctor
	  takes a optional procedure, which is responsible to fix up the
	  read reference objects.  This API isn't official yet.
	* src/write.c (Scm_Format, Scm_PrintfShared): added features
	  to handle shared structure writing.
	* src/extlib.stub (read-reference? etc.) : added read-reference object
	  related API.  These are not official yet.
	  (%format): now a part of 'format' is handled in Scheme.
	* lib/gauche/ioutil.scm : added.  definition of 'format' API etc.
	* lib/gauche/vm/debugger.scm, lib/gauche/test.scm, src/error.c:
	  adapted to the changes.

2004-02-02  Shiro Kawai  <shiro@acm.org>

	* src/system.c (Scm_SysExec): added a flag argument to enable
	  fork&exec.  It is essential to do fork&exec atomically when
	  multiple thread is running.
	* src/syslib.stub (sys-fork-and-exec): new API that does fork&exec
	  atomically.
	* lib/gauche/process.scm : use sys-fork-and-exec.

2004-02-01  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h, src/port.c, src/write.c, src/gauche-init.scm :
	  first batch of proper srfi-38 support w/ user-defined writers.

2004-01-30  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h, src/port.c, ...: rearranged port structure.
	  dropped open-*-string/private, and used keyword arg :private?
	  instead. (NB: it is still an experimental feature and shouldn't
	  be relied on).  some fixups.

	* lib/gauche/listener.scm (output-port): typo fix.

2004-01-29  Shiro Kawai  <shiro@acm.org>

	* doc/modutil.texi : added text.gettext description.

2004-01-28  Kimura Fuyuki  <fuyuki@nigredo.org>

	* ext/net/* : added socket-getsockname, socket-getpeername,
	  socket-send, socket-sendto, socket-recv, socket-recvfrom.
	  Note that these features aren't officially supported yet.

2004-01-27  Shiro Kawai  <shiro@acm.org>

	* ext/binary/* : implemented primitive binary i/o in C.
	  NOTE: the API is likely to be changed when binary i/o srfi
	  is done.  This module shouldn't be used directly unless you're
	  aware of it.  Use binary.pack whenever possible.
	* lib/binary/io.scm, test/binary.scm : moved to ext/binary.
	
	* src/read.c (read_escaped_symbol): recognize single escape '\'
	  within multiple escapes '|' while reading symbol name.  This
	  is CL compatible.  I haven't decided how to treat a single escape
	  outside of multipe escapes.

	* src/gauche.h, src/number.c, src/bignum.c, src/gauche/int64.h,
	  src/gauche/scmconst.h : fixup for 64bit integer support.
	* ext/uvector/*, ext/digest/sha.* : changed accordingly.
	  uvector isn't rewritten to use the new API, but just renamed
	  some typedefs to avoid conflict.   it will be revised to use
	  the new API soon.

2004-01-26  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/mime.scm (mime-decode-word): capture the error from
	  ces-convert so that illegal encoded sequence won't stop the
	  processing.

	* src/cesconv : added generally useful CES conversion script.

	* lib/text/gettext.scm : updated to the new version from Alex Shinn.

	* test/gettext.scm, test/data/Makefile, test/gettext.data.utf-8.scm,
	  test/data/locale/* : added test routines for gettext, written by
	  Alex Shinn.

2004-01-25  Shiro Kawai  <shiro@acm.org>

	* lib/math/const.scm : added missing definition of 2pi.

	* lib/www/cgi-test.scm : documented officially.

	* src/gauche.h, src/number.c (Scm_GetIntegerCheck etc), src/bignum.c
	  (Scm_BignumToSICheck etc): added boundary-checking integer
	  extraction primitives.

2004-01-23  Shiro Kawai  <shiro@acm.org>

	* doc/*.texi : reorganized a bit.  Made each index to an individual
	  appendix, so texinfo-multiple-files-update won't mangle the toplevel
	  menu.
	
	* lib/srfi-7.scm (program) : added srfi-7 support
	* lib/srfi-29.scm, lib/srfi-29/bundle.scm, lib/srfi-29/format.scm:
	  added srfi-29 support
	* above two changes are based on the code form Alex Shinn.
	* lib/srfi-0.scm : updated accordingly.
	
	* lib/srfi-13/revapp.scm (string-concatenate): made it robust for
	  long list.
	* lib/rfc/mime.scm (mime-retrieve-body): use string-port for
	  intermediate buffer.
	* above two changes are based on the patch from Tatsuya BIZENN.
	
2004-01-19  Shiro Kawai  <shiro@acm.org>

	* src/read.c, src/gauche.h (Scm_ReadReference) : added support of
	  SRFI-38 reference syntax.  For the time being, circular reference
	  is only supported for lists and vectors.

	* src/compile.c (compile_quote) : added a workaround so that
	  the quoted literal that contains circular reference won't cause
	  circular recursion during unwrap_identifier.

	* src/extlib.stub (hash-table-num-entries) : added.

	* src/hash.c (STRING_HASH, HASH2INDEX) : improved hash function.
	  the previous one isn't optimal for string keys.

2004-01-18  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub (promise?): added promise?.

	* lib/gauche/procedure.scm (case-lambda): added case-lambda.
	* lib/srfi-5.scm : added.
	* lib/srfi-0.scm : updated to support new srfis.

	* doc/*.texi : removed module name from the node names, for the dot
	  in the module names interferes with some info browsers.  Also
	  added detailmenu of index sections in the master menu, so that
	  'i' command works in the emacs info mode.
	  (Suggested by Katsuhiro Seino).

2004-01-17  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/cgen.scm : added experimentally.  An internal utility
	  module for C code generators.

	* src/builtin-syms.scm : This generates the C files that
	  defines and creates builtin symbols.  Replaces gauche/predef-syms.
	* src/gauche/predef-syms.h : removed.
	* src/symbol.c : changed to include C code generated by builtin-syms.
	* src/*.c : includes builtin-syms.h necessary, and replaced the code
	  that creates symbols at init time for static references.

	* src/autoloads.scm : revised using gauche.cgen.

2004-01-16  Shiro Kawai  <shiro@acm.org>

	* src/boolean.c (Scm_EqualP) : loop over list spine instead of
	  recursive call to CDR - it's more robust for very long lists.
	* src/list.c (Scm_Length) : removed redundant code.
	  (Scm_Delete, Scm_AssocDelete) : loop over list spine instead of
	  recursive call to CDR.
	* src/char.c (Scm_CharsetAddRange): removed redundant code.
	* src/string.c (count_size_and_length): fixed a bug that potentially
	  access beyond a terminating char.
	  (Scm_ConstCStringArrayToList, Scm_CStringArrayToList): fixed bugs
	  that doesn't make intended result when size is given.
	* src/system.c (Scm_SysGlob): handles the case when GLOB_NOMATCH
	  isn't defined.
	* test/* : added some more tests.
	* The above changes are based on a patch from Ueyama Rui.

	* src/vm.c (save_env): discarded the old sloppy code that took
	  too much time when recursion gets very deep.  Rewritten with a
	  new code which runs proportional in the amount of stack-allocated
	  activation records, whose upper bound is not large.  This change
	  improves performance of deep recursion code in order of magnitude.

	* src/extlib.stub (read-block) : allow 0 to be passed as nbytes.
	  read-block returns a null string in such a case.

2004-01-12  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/uri.scm (uri-decompose-authority): fixed regexp to exclude
	  the following '@' from userinfo.

2004-01-08  Shiro Kawai  <shiro@acm.org>

	* src/gauche/char_euc_jp.h (Scm_CharBackwardEUC): made the algorithm
	  more permissive, so that it will be more robust when illegal
	  mbstring is passed accidentally.

2004-01-06  Shiro Kawai  <shiro@acm.org>

	* src/syslib.stub (sys-truncate, sys-ftruncate): Added interface
	  to truncate(2) and ftruncate(2).

2004-01-04  Shiro Kawai  <shiro@acm.org>

	* ext/net/netlib.stub (socket-output-port): fixed buffering keyword
	  argument handling.  (Pointed by Yoshiharu Fujisawa).

2004-01-02  Shiro Kawai  <shiro@acm.org>

	* src/main.c (sig_setup): fixed a problem that threads hang on
	  FreeBSD.   SIGUSR[12] is used by GC on FreeBSD!

2003-12-29  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/822.scm (rfc822-header->list): changed to deal with
	  the cases that header field contains illegal character sequences
	  (thus the line reader yields incomplete strings).

2003-12-26  Shiro Kawai  <shiro@acm.org>

	* lib/util/list.scm (util.list): it no longer inherits srfi-1.
	  inheriting srfi-1 causes a problem when this module is imported
	  after gauche.collection---then procedures like 'find' or 'map'
	  are resolved as srfi-1's, which is usually not the intended
	  behavior.
	* src/system.c (Scm_GlobDirectory): fixed return value check
	  for portability (pointed by kou).
	* src/main.c (sig_setup): exclude SIGPROF from Scheme-monitored
	  signals.
	* src/module.c (Scm_ImportModules) : reorder multiply imported
	  modules, so that the last "import" supercedes the previous ones.

2003-12-18  Shiro Kawai  <shiro@acm.org>

	* lib/www/cgi-test.scm : added.
	* test/www.scm : added tests for www.cgi-test.

2003-12-17  Shiro Kawai  <shiro@acm.org>

	* lib/slib.scm.in : let (require 'format) use slib's format.

	* configure.ac, src/link-hpux : fixed compilation problem on
	  HP-UX 11.11.

	* src/port.c (MIN, MAX): #undef before defining.  Some platforms
	  defines them and warns the duplicate definition.

2003-12-16  Shiro Kawai  <shiro@acm.org>

	* release 0.7.3

	* src/boolean.c (Scm_EqualP): Experimentally put code that compares
	  identifiers by name in equal?.  See the comment in the source.

2003-12-15  Shiro Kawai  <shiro@acm.org>

	* Makefile.in (install-pkg): fix aclocal.m4 installation directory;
	  there shouldn't be a slash after $(DESTDIR); it would cause error
	  on cygwin.
	
	* src/core.c (Scm_Init), src/gauche.h, src/gauche/config.h.in,
	  src/main.c : API Change: Scm_Init now takes const char *signature
	  argument, in order to detect version mismatch between main
	  app and libgauche.so.

	* ext/charconv/jconv.c (jconv_open): conversion to/from "none"
	  should always be allowed, and it should be just pass-through.

	* src/autoloads.scm : added missing #define LIBGAUCHE_BODY --- it
	  matters on cygwin.

	* src/main.c, src/load.c : added ad-hoc support of legacy DOS
	  drive letter under __CYGWIN__.

2003-12-14  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/mime.scm (mime-parse-message, etc): revised API.

2003-12-13  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/redefutil.scm, lib/gauche/object.scm : Oops. 
	  Yesterday's support of the optional slot specifier doesn't work
	  well with inheritance.   I remove the feature for now.

	* src/macro.c (compile_rule1): Checks if template ellipsis level
	  matches pattern variables'.  Without catching this error, such
	  erroneous macro would cause infinite loop at expansion time.
	  (add_pvar) : fixed wrong condition to check duplicated pattern
	  variables.
	  (These patches from teranishi)

2003-12-12  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/redefutil.scm (change-object-class): properly support
	  the optional slots argument.  also made the default slot carry-over
	  routine handles class-allocated slots.

	* lib/gauche/mop/propagate.scm (compute-get-n-set): changed to
	  support bound?-protocol, and make it robust for class redefinition.

	* lib/gauche/object.scm (class-slot-bound?): added bound?-protocol
	  to the class slot accessor.

	* lib/slib.scm.in (home-vicinity): make sure it ends with directory
	  separator.
	  (slib:load): adjusted to SCM behavior.

	* lib/rfc/mime.scm : added experimentally.

2003-12-11  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/822.scm : added basic tokenizers.

2003-12-09  Shiro Kawai  <shiro@acm.org>

	* src/autoloads.scm, src/gauche-init.scm, lib/gauche/fileutil.scm,
	  lib/gauche/modutil.scm : Moved autoload settings from gauche-init.scm
	  to autoloads.scm, which is compiled into the binary; this improve
	  start-up time of gosh quite a bit.

	* src/gauche.h, src/load.c (Scm_DefineAutoload), src/extlib.stub:
	  Implemented autoload feature in C.

	* src/gauche-init.scm, src/gauche/interactive.scm : moved the
	  feature to load ~/.gaucherc from gauche-init to gauche.interactive.

2003-12-08  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h (SCM_NEW_ARRAY), src/*.c : replaced most of SCM_NEW2
	  to SCM_NEW_ARRAY for clearity.

	* src/parameter.c (Scm_ParameterTableInit): fixed a bug that corrupts
	  memory.

2003-12-07  Shiro Kawai  <shiro@acm.org>

	* src/list.c (Scm_MonotonicMerge), src/class.c, src/module.c,
	  src/gauche.h, src/extlib.stub : Changed to use C3 linearization
	  instead of Dylan linearization.  C3 is more intuitive.

	* ext/charconv/charconv.c (Scm_MakeInputConversionPort,
	  Scm_MakeOutputConversionPort) : fixed a bug that didn't
	  initialize all the members of ScmPortBuffer.

2003-12-05  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h (SCM_SYSCALL), src/system.c, src/syslib.stub,
	  src/port.c, ext/net/net.c, ext/fcntl/fcntl.c,
	  ext/auxsys/auxsyslib.stub: Wrapped system call by a macro
	  so that signal-interrupted system calls are restarted unless
	  signal handler throws an exception.   The old wrappers,
	  Scm_SysCall and Scm_PreSysCall, which didn't restart syscall,
	  are obsoleted.
	
2003-12-04  Shiro Kawai  <shiro@acm.org>

	* src/genstub : updated according to Scm_InitBuiltinClass change.
	* lib/text/html-lite.scm (html-doctype):  added missing dtd url.
	  handles XHTML doctypes as well.
	* lib/slib.scm.in : added system -> sys-system alias (Patch from
	  KIMURA Fuyuki).
	* src/error.c (Scm_SError) : allow non-string as a first arg.
	  This is only for supporting third-party code without obscuring
	  where an error occurred.  New code should pass a string there
	  specified SRFI-23.  Suggestion and patch from Kimura Fuyuki.

2003-12-03  Shiro Kawai  <shiro@acm.org>

	* lib/text/tr.scm (build-transliterator) : changed it to
	  use current-i/o ports when the created transliterator is
	  called instead of the ones when the transliterator is created;
	  the former is more useful, since the latter can be achieved
	  by passing :input (current-input-port) etc., to build-transliterator.
	  Patch from Alex Shinn.

	* lib/text/html-lite.scm (html-escape-string): call x->string on
	  the argument so that it can handle non-string argument.
	  (Suggested by Kouhei Sutou).

2003-11-27  Shiro Kawai  <shiro@acm.org>

	* src/class.c : cleaned up internal protocols.  The fourth
	  argument of Scm_InitBuiltinClass is changed to a flag withMeta.
	  Treatment of ScmClass.coreSize is straighten up.

	* lib/gauche/object.scm, lib/gauche/redefutil.scm : splitted
	  class-redefinition implementation into an autoloaded file.
	  Fix instance update protocol so that only instance-allocated
	  slots (in the old instance) will be carried over.

2003-11-24  Shiro Kawai  <shiro@acm.org>

	* lib/dbm.scm : added dbm-db-* to the export list.  (Pointed out
	  by Hosaka Y).

2003-11-22  Shiro Kawai  <shiro@acm.org>

	* src/port.c (Scm_GetRemainingInputString), src/extlib.stub,
	  src/gauche.h, test/string.scm : Added get-remaining-input-string.

2003-11-21  Shiro Kawai  <shiro@acm.org>

	* acinclude.m4, aclocal.m4 : make sure OBJEXT and EXEEXT are
	  substituted.
	* examples/spigot/Makefile.in : parameterize OBJEXT and DSOEXT.

	* src/number.c (read_uint): Now the number reader recognizes
	  '#'-padded numeric literal format.

	* src/portapi.c (Scm_ReadLine):
	* src/extlib.stub (read-line): Added allow-byte-string parameter
	  so that read-line can be used for a port whose character encoding
	  is unknown.

2003-11-20  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-14.scm (ucs-range->char-set!) : this procedure didn't
	  work for large charset if gauche was compiled for other than utf-8.

2003-11-19  Shiro Kawai  <shiro@acm.org>

	* src/hash.c (Scm_EqHash, Scm_EqvHash), src/extlib.stub :
	  experimentally added eq-hash and eqv-hash functions.

2003-11-18  Shiro Kawai  <shiro@acm.org>

	* src/list.c (Scm_Assoc, Scm_AssocDelete, Scm_AssocDeleteX) :
	  added (fixed) checks of 'alist' argument.

2003-11-18  Kimura Fuyuki  <fuyuki@nigredo.org>

	* ext/net/test.scm : Relax checking of (sockaddr-name v6addr).
	  The result string of inet_ntop() varies among implementations.

2003-11-14  Shiro Kawai  <shiro@acm.org>

	* src/class.c (Scm_VMSlotSet) : fix calling slot-missing.

	* src/list.c (Scm_Assq, Scm_Assv) : check 'alist' argument if
	  it's a list.

2003-11-11  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/mop/validator.scm : make slot-bound? work on a slot
	  with validator, using new :slot-bound? protocol of virtual slots.

	* lib/gauche/object.scm (change-class) : exclude builtin slots
	  from processing.  They are copied by %transplant-instance
	  anyway, and sometimes cause problems if we copy them in Scheme
	  level.
	  (compute-slot-accessor) : Changed according to <slot-accessor>
	  class change.  Virtual slot now can have :slot-bound? option.

	* lib/gauche/mop/instance-pool.scm : export some accessors; without
	  them, weird things happen when other modules creates subclasses
	  of <instance-pool-meta>.  This fix is just to dodge the real
	  problem, which is the interaction between generic function and
	  namespaces.

	* src/class.c : added missing delete-method! generic function
	  registration.   Changed Scm_SlotAccessor structure to have
	  Scheme-defined bound? procedure, so that the virtual slot can
	  specify a way to determine whether the slot is bound or not.

2003-11-10  Shiro Kawai  <shiro@acm.org>

	* src/class.c, lib/gauche/object.scm, src/moplib.stub,
	  src/gauche/class.h, src/gauche.h : implemented change-class
	  method, which completes class redefinition protocol.

	* ext/*/test.scm : removed kludge code that allowed to load modules
	  from the testing directory---now 'make' creates links so we
	  no longer need them.

	* lib/srfi-1.scm : added missing autoload fro list=  (Patch from
	  Michal Maruška).

2003-11-09  Shiro Kawai  <shiro@acm.org>

	* ext/sxml/adaptor.scm (make-char-quotator) : the signature didn't
	  match with usage.  Patch from Nobuo YAMASHITA.

2003-11-08  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/process.scm (process-wait-any) : avoid calling
	  sys-waitpid unless there are child processes regsitered in
	  process-list; sys-waitpid raises an error when no child
	  process to wait.

2003-11-07  Shiro Kawai  <shiro@acm.org>

	* example/oointro.scm, doc/object.texi : added "introduction to
	  the object system" section, and the code snippet of the
	  examples.

2003-11-05  Shiro Kawai  <shiro@acm.org>

	* ext/sxml/sxpath.scm.in, ext/sxml/tools.scm.in : added missing
	  APIs to export list (sxml:id-alist, sxml:not-equal?,
	  sxml:string->xml) and corrected misspelling of exported fn
	  (sxml:attr-list-node).   Pointed by Nobuo YAMASHITA.

2003-11-02  Kimura Fuyuki  <fuyuki@nigredo.org>

	* aclocal.m4, acinclude.m4 : Add a description for GAUCHE_VERSION
	  to make autoheader happy.

2003-10-30  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/selector.scm (selector-delete!): fixed an error when
	  only procedure is specified.  Also added unit test for selector.

2003-10-29  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/process.scm (process-wait, process-wait-any) : added
	  nohang optional arg to process-wait, so the user can just check
	  the exit status without suspending.  Also added process-wait-any
	  for convenience.

2003-10-28  Shiro Kawai  <shiro@acm.org>

	* lib/util/queue.scm (remove-from-queue!): fixed a bug that raises
	  an error when the only element in the queue is removed.

2003-10-28  Kimura Fuyuki  <fuyuki@nigredo.org>

	* ext/mt-random/mt-random.c (genrand_int_small): Add a special
	  case for n==1. Now (random-integer 1) correctly returns 0.

2003-10-27  Kimura Fuyuki  <fuyuki@nigredo.org>

	* configure.ac : Add a missing comma.

2003-10-25  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h, src/class.c, src/gauche/class.h, src/moplib.stub,
	  lib/gauche/object.scm : snapshot of class redefinition logic.
	  Not enabled yet, but closer to the final structure.

	* lib/dbm/fsdbm.scm (dbm-fold): fixed a bug that dbm-fold passes
	  a bogus key to the iteratee procedure.

2003-10-25  Kimura Fuyuki  <fuyuki@nigredo.org>

	* examples/spigot/Makefile.in : Respect DESTDIR.

2003-10-24  Shiro Kawai  <shiro@acm.org>

	* src/regexp.c : added non-greedy match (*?, +?, ??, {n,[m]}?).

2003-10-24  Kimura Fuyuki  <fuyuki@nigredo.org>

	* Makefile.in, examples/spigot/Makefile.in : Add configure.lineno
	  to CONFIG_GENERATED. That file is automatically generated by the
	  configure script if /bin/sh does not support the LINENO
	  environment variable. (i.e. most Linux users never see it.)

2003-10-23  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub (bufport_flusher): updated according to the
	  protocol change on 2003-10-20.  Note that the Scheme buffered port
	  API itself is not final, and will probably be replaced.

	* src/gauche.h, src/class.c, src/genstub, src/moplib.stub,
	  src/gauche/class.h : fixed low-level mechanism for class
	  redefinition, still a snapshot.  Cleaned up the meaning of
	  "flags" of class---now the role of class categories are well
	  defined and commented in gauche.h, and the class category is
	  visible from Scheme as well.

	* lib/gauche/object.scm : a snapshot of skeleton code for
	  class redefinition stuff.  Not active yet.

2003-10-22  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/charconv.scm (with-input-conversion,
	  with-output-conversion): added.  Manual entry is also created
	  accordingly.

2003-10-23  Kimura Fuyuki  <fuyuki@nigredo.org>

	* ext/dbm/gdbm.scm, ext/dbm/ndbm.scm, ext/dbm/odbm.scm,
	  lib/dbm/fsdbm.scm, lib/rfc/cookie.scm, lib/srfi-19/format.scm :
	  Use "error" rather than "errorf" if not needed.

2003-10-21  Shiro Kawai  <shiro@acm.org>

	* Makefile.in, Gauche.spec : installs acinclude.m4 as gauche.m4 under
	  $(datadir)/aclocal.  Patch from Kimura Fuyuki.

	* src/Makefile.in : make uninstall remove libgauche.so.  Patch from
	  Kimura Fuyuki.

	* src/gauche-init.scm : evaluates "~/.gaucherc" in the user module.
	  NB: this is still not an official feature, and might be moved to
	  gauche.interactive in future.

2003-10-20  Shiro Kawai  <shiro@acm.org>

	* src/port.c, src/portapi.c, ext/charconv/charconv.c : changed the
	  internal protocol of flush routine of buffered port, so that it
	  can behave differently when the flush request is a final one or not.
	  See the comment at buffererd port implementation of port.c for
	  the detailed discussion.

2003-10-20  Kimura Fuyuki  <fuyuki@nigredo.org>

	* ext/net/*, doc/modgauche.texi : added sockaddr-addr and
	  sockaddr-port.

	* lib/srfi-37.scm : Fixed a typo in the export list. We seem to
	  need some sort of "duplication checker".

2003-10-18  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/jconv.c : fixed a bug in utf8->eucjp conversion routine
	  that incorrectly rejected 2-byte utf8 sequences which end with 0xbf
	  (Thanks to Kimura Fuyuki for identifying the problem).

2003-10-17  Shiro Kawai  <shiro@acm.org>

	* src/class.c, src/gauche.h, src/moplib.stub, lib/gauche/object.scm :
	  Checked in the preparation of class-redefinition support.
	  Instance slots are now stored in an array separately allocated
	  from the object itself (so the number of instance slots can be
	  changed).  Some bookkeeping routines are added to the ScmClass.
	  Class flags has been changed, but not fixed its meanings.

	* src/vm.c, src/gauche/vminsn.h : added some code to support
	  instruction vectorization.   Not yet finalized.

	* lib/dbm.scm (dbm-open): fixed a bug when a custom accessor
	  specification is given (Patch from Grzegorz Chrupała).

2003-10-08  Shiro Kawai  <shiro@acm.org>

	* lib/Makefile.in (slibcat-in-place): use $(top_builddir)
	  instead of $(exec_prefix), since at this moment gosh isn't
	  installed there yet.

2003-10-07  Shiro Kawai  <shiro@acm.org>

	* src/regexp.c (is_distinct): fixed a bug in the optimizer, which
	  makes a regexp that contains "a repeat of complemented charset
	  followed by something except a char or a charset" fails.

2003-10-07  Kimura Fuyuki  <fuyuki@nigredo.org>

	* lib/dbm/fsdbm.scm: typo fix

2003-10-05  Shiro Kawai  <shiro@acm.org>

	* configure.ac, ext/auxsys/auxsys.scm, ext/auxsys/auxsyslib.stub :
	  added sys-setenv and sys-unsetenv (Patch from Kimura Fuyuki).

	* src/gauche/config.h.in, ext/auxsys/auxsysconf.h.in : moved
	  #defines that only used in auxsys into auxsysconf.h.in.
	
	* lib/util/lcs.scm (lcs-with-positions) : fixed an error in
	  the edge case, when both sequences are empty.

2003-10-04  Shiro Kawai  <shiro@acm.org>

	* release 0.7.2

	* src/gauche-config.in : records OBJEXT and EXEEXT.

	* aclocal.m4, acinclude.m4 : added adjustment of OBJEXT, EXEEXT,
	  SOEXT and DYLIBEXT in AC_GAUCHE_CC macro.
	
	* ext/Makefile.ext.in : expose BIN_INSTALL_DIR etc.

2003-10-03  Shiro Kawai  <shiro@acm.org>

	* ext/fcntl/fcntl.scm: added missing F_SETFD to the export list
	  (patch from Kimura Fuyuki).

	* src/compare.c, lib/gauche/sortutil.scm, src/extlib.stub,
	  src/gauche.h :
	  use the internal sort function when a compare fn is not given.

	* lib/gauche/stringutil.scm (string-split) : raises an error when
	  splitter matches a null string.

2003-10-02  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/process.scm (run-process): make sure the fds opened for
	  redirection are closed in the parent process side.

	* src/gauche/extend.h (SCM_INIT_EXTENSION): under __CYGWIN__, add
	  a region between _bss_start__ and _bss_end__ to the root set,
	  instead of Scm__bssstart/end.  The new ld reorders bss area,
	  so the latter doesn't work.   (It may be the case with other
	  lds.  Need to investigate).

2003-09-29  Shiro Kawai  <shiro@acm.org>

	* ext/net/net.scm, example/scheme-server.scm : added 'proto' optional
	  argument to make-sockaddrs, and refactored make-server|client-socket
	  using make-sockaddrs (Patch provided by Kimura Fuyuki).

2003-09-28  Shiro Kawai  <shiro@acm.org>

	* ext/mt-random/mt-random.c : fixed a bug that
	  (random-integer (expt 2 16)) generates a value larger than 2^16.
	  Patch provided by Alex Shinn.

2003-09-27  Shiro Kawai  <shiro@acm.org>

	* ext/net/net.scm : added make-server-sockets and make-sockaddrs
	  in order to open multiple server sockets (esp., when the host
	  has both ipv4 and ipv6 interface).  Patch provided by Kimura Fuyuki.

	* ext/charconv/charconv.scm : added call-with-input|output-conversion.

	* src/macro.c (compile_rule1): fixed the problem of macro-defining
	  macro.

	* ext/net/net.c (Scm_SocketClose) : do not shutdown the connection
	  when a socket is closed; other forked process may still be using
	  it.  Also fixed a socket's finalizer not to refer to the ports
	  (it is not guaranteed that they are valid when the finalizer is
	  called).

2003-09-24  Shiro Kawai  <shiro@acm.org>

	* ext/sxml/sxpath.scm.in : fixed typo in the export list (pointed out
	  by Makoto Satoh).

2003-09-22  Shiro Kawai  <shiro@acm.org>

	* src/srfi-1/filter.scm : fixed typo, and changed (not (pair? ...))
	  to (null-list? ...).  The latter change makes the code check an
	  improper list more strictly, and the original srfi-1 reference
	  implmentation uses null-list? consistently, but "not pair?" sneaked
	  in when I tuned some procedures.  (Patch from Grzegorz Chrupała).

2003-09-18  Shiro Kawai  <shiro@acm.org>

	* src/number.c (Scm_Quotient, Scm_Modulo): fixed a bug that yielded
	  wrong error message when the first arg wasn't a number.

2003-09-15  Shiro Kawai  <shiro@acm.org>

	* lib/dbm/fsdbm.scm : added.

2003-09-14  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub : added gauche-dso-suffix to query dlopen()-able
	  suffix of the system.

	* src/compare.c, lib/gauche/sortutil.scm, src/extlib.stub :
	  replaced sort and sort! implementation with Scheme version
	  (by Richard A. O'Keefe, based on the code by D.H.D.Warren).
	  The C version performs terribly when compare function is
	  provided from Scheme; more than 15 times slower than Scheme
	  version.
	* src/gauche-init.scm : sets autoload to sort and sort!.

2003-09-13  Shiro Kawai  <shiro@acm.org>

	* ext/*/Makefile.in : added missing $(LIBS) in the link rule.
	  This caused hang in the test of ext/threads during pthrad_cond_wait
	  (see http://sources.redhat.com/ml/libc-hacker/2003-09/msg00002.html)
	
	* lib/gauche/libutil.scm, lib/gauche/reload.scm : added libutuil.
	* src/gauche-init.scm : set autoloads for gauche.libutil.

2003-09-12  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/jconv.c : fixed a bug that caused buffer overflow
	  and/or premature conversion output under certain condition.
	  Also added test cases (jp4.*) that particularly tests the condition.

	* lib/gauche/interactive.scm : added autoloads for gauche.reload,
	  so that `reload' would be available in interactive development
	  by default.  It's useful enough to do so.

2003-09-08  Shiro Kawai  <shiro@acm.org>

	* src/hash.c, src/class.c, src/gauche.h, src/extlib.stub : Exposed
	  hash procedure to Scheme.  Added object-hash generic function
	  so that the user-defined class can be used in hash table with
	  its own hash function.

2003-09-07  Shiro Kawai  <shiro@acm.org>

	* lib/dbm.scm, lib/dbm/* : moved abstract dbm implementation under lib.

2003-09-06  Shiro Kawai  <shiro@acm.org>

	* src/module.c, src/gauche-init.scm : incorporate module-name->path
	  in the core binary, so that the future extension can add
	  nontrivial translations between module names and pathnames.
	  From now on, any interface that needs to translate module name
	  to pathname or vice versa must go through this API (they shouldn't
	  assume replacing '.' to '/' is enough).

	* lib/gauche/common-macros.scm : moved check-arg and get-keyword*
	  to here from gauche-init.scm, as autoloaded macros.

2003-09-04  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/process.scm : Added various keyword arguments to
	  process ports to allow redirection and character encoding conversion.
	  Also extended the command syntax so that it can take a list of
	  argv and call exec directly.
	  (INCOMPATIBLE CHANGE) open-{input|output}-process-port now return
	  two values, the port and the process object.  I found they are pretty
	  useless without getting process object.

2003-09-03  Shiro Kawai  <shiro@acm.org>

	* lib/util/lcs.scm (lcs-with-positions) : rewrote to use Eugene Myers'
	  O(ND) algorithm which performs much better in typical case,
	  then the previous DP algorithm that requires O(NM).

2003-09-01  Shiro Kawai  <shiro@acm.org>

	* lib/www/cgi.scm (cgi-parse-parameters) : accept ';' as well as '&'
	  as a parameter separator.  (Support of ';' is recommended in the
	  B.2.2 of HTML4.01 specification).

2003-08-30  Shiro Kawai  <shiro@acm.org>

	* src/list.c (Scm_ListTail): fixed error message when arg is out
	  of range.

2003-08-29  Shiro Kawai  <shiro@acm.org>

	* ext/sxml/sxpath.scm.in: added missing txpath.scm (Patch from
	  Hisazumi Kenji).

2003-08-25  Shiro Kawai  <shiro@acm.org>

	* ext/Makefile.ext.in, ext/xlink : let each 'make' in exit/$dir
	  to create appropriate links in the source tree, so that the
	  newly built gosh can run without installation.

2003-08-17  Shiro Kawai  <shiro@acm.org>

	* src/compile.c (Scm__InitCompiler): moved with-module and
	  select-module from 'null' module to gauche module.  This makes
	  'null' and 'scheme' module pure R5RS.  Side-effect: once
	  you enter these modules, there will be no way to get out from them.

2003-08-16  Shiro Kawai  <shiro@acm.org>

	* ext/net/test.scm : adapted to ipv6

2003-08-09  Shiro Kawai  <shiro@acm.org>

	* src/portapi.c (Scm_ReadLine): removed the big overhead of
	  read-line related to port locking.

2003-08-08  Shiro Kawai  <shiro@acm.org>

	* ext/fcntl/fcntl.c, ext/net/addr.c, ext/termios/termios.c :
	  corrected usage of memset() (Pointed by NISHIO Yasuhiro)

	* ext/charconv/Makefile.in : changed LDFLAGS so that @ICONV_LDFLAGS@
	  will be added before $LDFLAGS.  Patch from Kogule, Ryo.

2003-08-07  Shiro Kawai  <shiro@acm.org>

	* lib/slib.scm.in : provides substitute of slib's "byte" module---
	  the original one uses a string for a byte-string, which doesn't
	  work on Gauche.

	* aclocal.m4, ext/net/net.ac, src/gauche/config.h : added test for
	  socklen_t, which appears to be necessary on MacOS X when using
	  ipv6.  (Patch from Hisazumi Kenji).

	* Makefile.in, lib/Makefile.in, lib/mklibcat : added 'slibcat-in-place'
	  make target which creates 'slibcat' within the source tree before
	  installing gauche.  This is useful to make a package of the
	  system that doesn't allow to run a postinstall script.

2003-08-05  Shiro Kawai  <shiro@acm.org>

	* lib/util/record.scm : added SCM compatible make-record-type
	  and other stuff, built on top of srfi-9.  This is derived from
	  the patch provided by Alex Shinn.

2003-07-23  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/uri.scm (uri-decode): handle gracefully the case that
	  input string ends with '%'.

	* release 0.7.1

2003-07-22  Shiro Kawai  <shiro@acm.org>

	* configure.ac, src/Makefile.in, src/link-dylib, src/makeverslink:
	  fixed link and installation process.  Introduced a couple of
	  helper script to keep configure.ac and Makefile.in simple.
	
	* ext/sxml/adaptor.scm : added cerr, cout and nl for sxml-tools
	* ext/sxml/sxpath.scm.in : use srfi-2 and srfi-11.

2003-07-21  Shiro Kawai  <shiro@acm.org>

	* src/Makefile.in : On Cygwin, installs libgauche.dll to bindir
	  as well as libdir, or it won't be found by the shell.

	* doc/Makefile.in : honors DESTDIR for installation.

	* ext/sxml : updated SXPath to the newer version in sxml-tools
	  by Kirill Lisovsky and Dmitry Lizorkin.  Also added sxml.tools.

2003-07-20  Shiro Kawai  <shiro@acm.org>

	* ext/sxml/sxpath.scm, ext/sxml/trans.scm : incorporated Alex Shinn's
	  patch for sxpath support, and Kiyoka Nishiyama's patch on it.

	* ext/sxml/src/SSAX.scm : updated to the newest CVS version of SSAX.scm

2003-07-19  Shiro Kawai  <shiro@acm.org>

	* ext/dbm/dbmconf.h.in : splitted dbm-specific configure settings
	  to this file from the main config.h.in.
	
	* configure.ac, src/Makefile.in : run relink before installing
	  gosh with --relink option, so that the installed gosh dynamically
	  links the proper libgauche.so.

2003-07-18  Shiro Kawai  <shiro@acm.org>

	* configure.ac, src/gauche-config.in, ext/Makefile.ext.in :
	  revised some compiler options.  removed spurious -lgauche-uvector
	  flag from gauche-config.

2003-07-16  Shiro Kawai  <shiro@acm.org>

	* ext/sxml : integrated Oleg Kiselyov's SXML.  Just incorporated
	  sxml-gauche 0.9 sources with minor modifications; need to catch
	  up the current SXML versions.

2003-07-15  Shiro Kawai  <shiro@acm.org>

	* gc/*, src/gauche/memory.h : upgraded to Boehm GC 6.2

2003-07-14  Shiro Kawai  <shiro@acm.org>

	* ext/Makefile.ext.in : Added $(DESTDIR) to the install
	  destination (Thanks to Kogule Ryo for a patch).

2003-07-09  Shiro Kawai  <shiro@acm.org>

	* src/gauche/char_none.h (SCM_CHAR_GET): make sure retrieval of
	  char is not sign-extended.

2003-07-08  Shiro Kawai  <shiro@acm.org>

	* configure.in, configure.ac, ext/charconv/charconv.ac,
	  ext/dbm/dbm.ac, ext/net/net.ac : renamed configure.in to
	  configure.ac.  Splitted out the extension-specific tests
	  into ext/*/*.ac files.

	* src/main.c (main): changed to set up *program-name* and *argv*
	  before evaluating -u, -l, and -e options, so that the files
	  loaded by these options can refer to the proper *program-name*
	  and *argv*.

	* ext/dbm/gdbm.scm (dbm-fold): fixed to use %dbm-s2v to convert
	  value field (it was %dbm-s2k).  Thanks to Alex Shinn for pointing
	  this out.

2003-07-05  Shiro Kawai  <shiro@acm.org>

	* lib/www/cgi.scm : allow cgi-header to accept arbitrary keyword
	  argument to add extra headers.  :location argument no longer
	  suppresses set-cookie header.

2003-07-04  Shiro Kawai  <shiro@acm.org>

	* lib/text/html-lite.scm : generate "<tag />" for empty element.

2003-06-25  Shiro Kawai  <shiro@acm.org>

	* configure.in, Makefiles : de-libtool-ized.  Tested on Cygwin,
	  possibly breaking build process on other platforms.
	  On cygwin, you need to add $(libdir) to PATH in order to
	  run gosh after installation.

2003-06-20  Shiro Kawai  <shiro@acm.org>

	* doc/extract : fixed a problem of @include when Gauche is compiled
	  other than euc-jp as a native encoding.

2003-06-19  Shiro Kawai  <shiro@acm.org>

	* src/stdlib.stub (char-ready?) : made char-ready?'s argument optional
	  to comply R5RS.

2003-06-16  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/http.scm (receive-body) : added fallback case when neither
	  content-length nor transfer-encoding is provided by the server.

2003-06-11  Shiro Kawai  <shiro@acm.org>

	* doc/gauche-ref.texi : splitted chapters into separate texi files.

2003-06-10  Shiro Kawai  <shiro@acm.org>

	* example/spigot/* : added example of an extension module.

2003-06-08  Shiro Kawai  <shiro@acm.org>

	* src/gauche-init.scm, lib/gauche/common-macros.scm : added fluid-let
	  macro provided by Dorai Sitaram.

2003-06-04  Shiro Kawai  <shiro@acm.org>

	* Makefile.in, lib/Makefile.in : recover the rule to create slibcat
	  after installation; it was inadvertently dropped sometime
	  since 0.6.8.

2003-06-03  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h (ScmPortRec): renamed a member 'private' to 'priv',
	  to be C++ friendly.

2003-05-31  Shiro Kawai  <shiro@acm.org>

	* src/number.c (read_number), src/stdlib.stub (make-polar): changed
	  to use a common function Scm_MakeComplexPolar, to avoid the
	  difference of the result due to compiler's optimization.

2003-05-30  Shiro Kawai  <shiro@acm.org>

	* release 0.7

	* src/gauche.h (SCM_CHAR_MAX), src/extlib.stub (%char-set-add-range!):
	  fixed the range check bug that prevents
	  (char-set-delete char-set:full #\;) from running.

	* src/syslib.stub (sys-access): the last change didn't work.
	  Reverted to the original code, but kept the check if we're
	  running suid/sgid code.

	* ext/uvector/Makefile.in : changed again the name of the DSO to
	  libgauche-uvector.la; some extension modules depended on the name.
	
2003-05-29  Shiro Kawai  <shiro@acm.org>

	* src/syslib.stub (sys-access): let it signal an error if real
	  uid/gid differs from effective uid/gid.  Sys-access should never
	  be used in suid/sgid program anyway.  And if we exclude that,
	  there's no difference between access() and stat(), so I changed
	  it to use stat() on all platforms.

	* src/Makefile.in (install): avoid using -m 444 to install
	  libgauche.la, for on some platforms libtool tries to run ranlib
	  on the installed libgauche.a and fails if it is not writable.
	  libtool then changes its permission to 644; it is hardcoded in
	  the AC_PROG_LIBTOOL macro.

	* mkinstalldirs, src/Makefile.in, ext/Makefile.ext.in, lib/Makefile.in,
	  doc/Makefile.in : changed to use mkinstalldirs instead of
	  "install -d", for some system's install doesn't understand -d option.

	* ext/*/Makefile.in : added explicit dependency between *.stub and *.c
	  files, for some 'make' can't infer how to make .lo from .stub
	  only by the inference rules.

	* ext/syslog/syslog.scm : exported LOG_* constants only when they
	  are defined.
	
	* configure.in : bypasses the test for select(2) on HP-UX; it doesn't
	  like the way autoconf tests the select's existence.  Also replaced
	  reference of $host for $target, for better support of
	  cross-compiling.

2003-05-28  Shiro Kawai  <shiro@acm.org>

	* src/syslib.stub : exclude sys-fdset and sys-select if select(2) is
	  not available on the system.
	
	* Makefile.in, src/Makefile.in, ext/Makefile.in, ext/Makefile.ext.in,
	  test/*, ext/*/test.scm : created install-check target, which runs
	  tests with installed gosh.

	* src/load.c (Scm_DynLoad): reports dynamic loading if -fload-verbose
	  flag is set.

2003-05-27  Shiro Kawai  <shiro@acm.org>

	* ext/net/net.scm : made make-client-socket and make-server-socket
	  take a <sockaddr> instance as well.

	* lib/text/diff.scm : changed API.

	* INSTALL.esc : added description of --enable-ipv6

	* ext/uvector/ : changed to create libuvector.la instead of uvector.la,
	  for linking by -luvector is required by ext/mt-random.

2003-05-25  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/vm/debugger.scm : removed dependency on gauche.thread

	* lib/util/lcs.scm : added lcs-fold and lcs-edit-list.

2003-05-23  Shiro Kawai  <shiro@acm.org>

	* ext/threads/thrlib.stub, src/extlib.stub : moved current-thread
	  back to the main library.  It is handy to have it even if we're
	  not using threads.

2003-05-20  Shiro Kawai  <shiro@acm.org>

	* lib/binary/pack.scm, lib/binary/io.scm, test/binary.scm :
	  incorporated Alex Shinn's binary.pack module.

2003-05-18  Shiro Kawai  <shiro@acm.org>

	* configure.in, */Makefile.in's : tweaks to make them work on Cygwin.

2003-05-17  Shiro Kawai  <shiro@acm.org>

	* ext/net/net.scm : export some constants of socket options
	  conditionally by export-if-defined.
	
2003-05-16  Shiro Kawai  <shiro@acm.org>

	* configure.in, ext/Makefile.ext.in, ext/mt-random/Makefile.in,
	  src/Makefile.in : more support for compiling on MacOSX

2003-05-15  Shiro Kawai  <shiro@acm.org>

	* gc/include/private/gcconfig.h: undef MPROTECT_VDB on MACOSX, for
	  it caused 'make check' to stall.  This flag is undefined in newer
	  boehm gc anyway.

	* src/dl_darwin.c: include <mach-o/dyld.h>

	* src/load.c : changed DynLoad stuff so that the platform-dependent
	  code are in separate files and #included in src/load.c conditionally.
	* src/dl_dlopen.c, src/dl_dummy.c, src/dl_win.c, src/dl_darwin.c :
	  platform-dependent dynload stubs.   Not tested yet except dl_dlopen.

2003-05-10  Shiro Kawai  <shiro@acm.org>

	* lib/util/lcs.scm, lib/text/diff.scm, lib/Makefile.in : added
	  Alex Shinn's LCS finding utility.

	* lib/net/netlib.stub, lib/net/net.scm : made 'flags' argument of
	  sys-getnameinfo optional, and export a bunch of IPPROTO_* enums.
	  (Patch from Kimura Fuyuki)

	* lib/util/list.scm : incorporated Alex Shinn's associative list
	  library.

	* src/bignum.c (Scm_BignumCmp3U): fixed a bug that caused the last
	  digit of certain floating point numbers to be printed incorrectly.
	  (Thanks to OGURISU Osamu for finding this bug).

2003-05-02  Shiro Kawai  <shiro@acm.org>

	* ext/net/addr.c, ext/net/net.scm, ext/net/netdb.c,
	  ext/net/netlib.stub: added seamless ipv6 support in
	  make-{server|client}-socket, and sys-getnameinfo support.
	  (Patch from Kimura Fuyuki).

	* configure.in, src/gauche/config.h.in : checks if sin_len is in
	  sockaddr_in (and sin6_len in sockaddr_in6).  It is reported that
	  FreeBSD has them, and needs them to be set up for getnameinfo
	  to work correctly.
	
	* src/Makefile: ensure BIN_INSTALL_DIR's existence at the installation
	  time.

2003-05-01  Shiro Kawai  <shiro@acm.org>

	* src/configure.in, src/gauche/config.h.in (HAVE_IPV6),
	  ext/net/addr.c, ext/net/net.scm, ext/net/netdb.c,
	  ext/net/netlib.stub, ext/net/net.h : applied experimental IPv6
	  support patch from Kimura Fuyuki.  The support can be turned on
	  by giving --enable-ipv6 to configure (and your OS supports it,
	  of course).

2003-04-30  Shiro Kawai  <shiro@acm.org>

	* src/gauche-init.scm (export-if-defined): added.  This macro
	  is to overcome the difficulty to keep exported symbol list
	  consistent when some of module's external APIs are defined
	  conditionally.  The implementation is a kludge, though.
	  Should be used with care.

	* src/genstub (define-cclass): fixed a bug that #if directive was
	  ineffective for define-cclass.

	* src/*.c: avoid having uninitialized variables.  On some platforms,
	  gc doesn't scan bss area of DSO modules, which causes a problem
	  when libgauche is used as a DSO.   (Note that in dlopen-ed
	  extensions gc is properly informed to scan bss area, by
	  SCM_INIT_EXTENSION).

	* src/load.c (Scm_DynLoad): use requested library name to derive
	  init function name, instead of the one given in libtool .la library
	  when the requested name is libtool library.  On some platforms
	  (e.g. cygwin) a different name is used for actual DLL and
	  libtool library).

	* ext/mt-random/* : enabled functinality that uses uvector on cygwin,
	  which has been disabled because of link problem on cygwin.

2003-04-29  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/Makefile.in, ext/mt-random/Makefile.in : avoid
	  making separate libgauche-uvector - this causes libtool
	  to issue warning, but the separate library doesn't work well
	  on cygwin.

	* configure.in: fixes to support cygwin and darwin

	* gc/configure.in: let the toplevel --with-local argument propagate
	  to gc compilation.   Define GC_PTHREADS to 1 on darwin to make
	  it parallel with toplevel config.h.

2003-04-25  Shiro Kawai  <shiro@acm.org>

	* ext/Makefile.ext.in (check): make 'check' depend on 'all' (Patch
	  from Kimura Fuyuki)

2003-04-24  Shiro Kawai  <shiro@acm.org>

	* src/system.c, doc/gauche-ref.texi: typo fix
	 (Patch from Kimura Fuyuki)

2003-04-21  Shiro Kawai  <shiro@acm.org>

	* Makefile.in, acinclude.m4, aclocal.m4, configure.in, 
	  gc/configure.in, ltmain.sh, gc/Makefile.am, src/Makefile.in,
	  src/core.c : snapshot to make things work on cygwin (not quite, yet).

	* doc/gauche-ref.texi : fix in srfi-37 description
	  (patch from Grzegorz Chrupała).

	* Makefile.am's, Makefile.in's, ext/Makefile.ext.in, DIST:
	  Removed automake dependency.
	* ltmain.sh, config.guess, config.sub, aclocal.m4 : added to
	  CVS, so that the developer can build from CVS without having
	  the same version of libtool on his/her machine.  Requires
	  autoconf 2.54 or higher, though.
	* src/load.c : removed libltdl dependency.  libltdl is nice,
	  but it has a subtle problem when libgauche is linked with other
	  libraries that embeds libltdl.
	* src/gauche-config.in : added -lgauche-uvector -lgauche to
	  "gauche-config -l" output.

2003-04-16  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/parseopt.scm (let-args): added Alex Shinn's let-args
	  macro.

2003-04-14  Shiro Kawai  <shiro@acm.org>

	* various Makefile.am's and configure.in: made "make install" work.
	
	* various files: revised build process of built-in extensions (ext/*).
	  They no longer have separate configure.in; the toplevel configure.in
	  takes care of all the Makefiles.  All of them uses Makefile.am now.
	  Removed ext/example, for the example of extension must be shown
	  elsewhere.   This check-in passes "make check", but not tested
	  for installation.
	* Replace src/gauche/config.h for src/gauche-config.h, because
	  automake adds -I flag for config.h.in location automatically
	  even I don't want that.
	* In ext/uvector, arranged the Makefile so that libuvector.so is
	  created as a shared library which is used by a dlopen module
	  uvector.so.  This should help to solve the DLL problem on cygwin
	  but not tested.

2003-04-11  Shiro Kawai  <shiro@acm.org>

	* various files: automake+libtoolized, based on a patch from
	  Yokota Hiroshi.
	  The building process from CVS tree has been siginificantly changed;
	  see HACKING file for the details.
	  This check-in is a kind of working snapshot; it builds and passes
	  tests, but haven't yet checked if it can be properly packaged and
	  installed.

2003-03-31  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/array.scm (tabulate-array): referred to non-existent
	  procedure.  (Patch from Alex Shinn).

2003-03-30  Shiro Kawai  <shiro@acm.org>

	* release 0.6.8

2003-03-29  Shiro Kawai  <shiro@acm.org>

	* src/char.c, src/regexp.c : #[\w] to include underscore (following
	  the convention of Perl's).

2003-03-28  Shiro Kawai  <shiro@acm.org>

	* configure.in, gc/configure.in, gc/include/gc.h,
	  gc/include/private/gc_priv.h, gc/linux_threads.c,
	  src/gauche/config.h.in : applied a patch from HISAZUMI Kenji
	  to make pthreads work on Darwin.

2003-03-23  Shiro Kawai  <shiro@acm.org>

	* src/charset.c (Scm_CharSetLE): implemented two-arg char-set<= in C,
	  for it is used in regexp optimizer.  Available as %char-set<=?
	  from Scheme.
	* lib/srfi-14.scm (char-set<=): revised to use the native %char-set<=?.
	* src/regexp.c (Scm_RegOptimizeAST, rex_rec): added regexp optimizer
	  that works on AST.   Added regexp byte-code instructions that
	  works on the special optimized paths.
	* lib/slib.scm : provided object->string and object->limited-string.

2003-03-22  Shiro Kawai  <shiro@acm.org>
	* src/regexp.c : Total rewrite.  The compilation paths are divided
	  more clearly.  Pass 1 and pass 2 are available individually from
	  Scheme, as regexp-parse and regexp-compile.  Added bounded repetition
	  "{n,m}", non-capturing group "(?:...)", scoped case sensitivity
	  control "(?i:...)" and "(?-i:...)".

2003-03-03  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/822.scm (rfc822-parse-date): fixed behavior to conform
	  RFC2822 more closely (Patch provided from OGURISU Osamu).

2003-03-01  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h, src/bignum.c: takes more bits for bignum size,
	  and checks vailidity of bignum size in make_bignum.

2003-02-28  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (Scm_VMEval): resets numVals before evaluating the
	  compiled code, in order to prevent wrong numVals from propagating.

2003-02-27  Shiro Kawai  <shiro@acm.org>

	* lib/util/list.scm : extends srfi-1, instead of uses it.
	* src/regexp.c (Scm_RegExec): fixed a bug regarding multibyte
	  regexp match.
	* src/char.c (Scm_CharSetCaseFold): fixed a bug that case folding
	  charset didn't consider 'z' and 'Z'.

2003-02-26  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/common-macros.scm (values-ref): added values-ref
	  experimentally.
	* lib/util/list.scm (intersperse): added intersperse

2003-02-17  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-19.scm (make-time): Fix the order of argument to match
	  SRFI specification.  This whould break existing code that depends
	  on the wrong definition of make-time.

2003-02-15  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h (SCM_CHECK_START_END): pass through start==end case.
	* src/load.c, src/gauche.h : made autoload MT-safe.
	* src/vm.c, src/gauche/vm.h : renamed PCTYPE to SCM_PCTYPE to avoid
	  namespace pollution.

2003-02-14  Shiro Kawai  <shiro@acm.org>

	* ext/net/netdb.c (Scm_GetHostByName etc.): made the fallback code
	  (when no reentrant version of gethostbyaddr_r etc. are found)
	  thread-safe, using global lock.
	* ext/net/addr.c (sockaddr_in_allocate): made address lookup
	  thread-safe.

2003-02-10  Shiro Kawai  <shiro@acm.org>

	* lib/text/parse.scm (next-token) : fixed error message handling
	  (Patch from Grzegorz Chrupała).

2003-02-09  Shiro Kawai  <shiro@acm.org>

	* src/compile.c (compile_define): check the module existence in
	  define-in-module (Patch from Kimura Fuyuki).
	* lib/gauche/collection.scm : fixed hash table's call-with-iterator
	  which wasn't updated for the new hash table iterator.
	  (Patch from Kimura Fuyuki).

2003-02-08  Shiro Kawai  <shiro@acm.org>

	* src/gauche/char_euc_jp.h (Scm_CharBackwardEUC): made string pointer
	  backward operation work more precisely so that it won't be confused
	  with ASCII/Kanji mixed situation.

2003-02-07  Shiro Kawai  <shiro@acm.org>

	* release 0.6.7.1
	* lib/gauche/portutil.scm : fixed typo (%do-copy/limitN).
	* ext/charconv/charconv.c : fixed a bug that caused ces-convert
	  returns null string when it tried to convert one kanji character
	  string in EUCJP or SJIS to UTF8.  The cause was that the allocated
	  buffer was too small in that case.  I set minimum size of buffer.

2003-02-06  Shiro Kawai  <shiro@acm.org>

	* release 0.6.7
	* lib/charconv/charconv.scm : fixed bug in wrap-* (keyword typo)
	* doc/extract : fixed extract script so that it can deal with the
	  euc-jp document under gosh with any internal encodings.
	* src/gauche/char_none.h : add "NONE" to the compatible encoding names.
	* src/compile.c, src/macro.c : added some code to support NVM (not
	  yet completed).
	* lib/text/html-lite.scm : inserting newlines before closing tags
	  instead of after, to prevent extra whitespaces appear in the rendered
	  output.

2003-02-05  Shiro Kawai  <shiro@acm.org>

	* lib/www/cgi.scm : allow character encoding conversion of CGI output
	  via cgi-output-character-encoding parameter.  Added output-proc
	  keyword arg to cgi-main.
	* ext/charconv/charconv.c : allows a symbol as a CES name, as well
	  as a string.   Supports a special CES name "none".
	  Also added ces-equivalent?, ces-upper-compatible?,
	  wrap-with-{input|output}-conversion.
	* lib/file/util.scm (directory-list) : added :filter-add-path?
	  keyword argument.  refactored using cond-list and every-pred.

2003-02-04  Shiro Kawai  <shiro@acm.org>

	* src/port.c : added privatep flag to Scm_MakeInputStringPort and
	  Scm_MakeOutputStringPort, which pre-locks the created string port
	  so that mutex will be omitted.  Various files that uses those
	  functions are revised.
	* src/portapi.c, src/stdlib.stub, src/extlib.stub : added peek-byte,
	  and incorporated Scm_Peek* functions into the core from stub files.
	* lib/util/combinations.scm : revised to support duplicated entries.
	* lib/util/list.scm : added.  additional list library.
	* lib/gauche/sequence.scm : added fold-with-index, map-with-index,
	  map-to-with-index, for-each-with-index, find-index,
	  and find-with-index.

2003-02-03  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub (sort, sort!): allowed sorting vectors as well.

2003-01-31  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/charconv.scm: adjust semantics of replaced call-with*
	  and with-*-file functions to close ports only when escaping
	  condition occurs.

2003-01-30  Shiro Kawai  <shiro@acm.org>

	* src/portapi.c, src/extlib.stub, lib/gauche/portutil.scm :
	  formerly supported with-port-locking.  made I/O primitives
	  skip port locking if the port is already locked by the calling
	  thread (this eliminates the need of undocumented %-unsafe version
	  of I/O primitives).  
	* src/error.c : clear ERROR_BEING_REPORTED flag after normal exit
	  of Scm_ReportError.
	* ext/net/net.c : keep a back reference to the socket in its
	  input/output stream, so that the socket won't be GCed when
	  the application only grabs the reference of the streams.

2003-01-29  Shiro Kawai  <shiro@acm.org>

	* lib/text/gettext.scm : updated to Alex's new version.
	* lib/util/combinations.scm : added.

2003-01-20  Shiro Kawai  <shiro@acm.org>

	* src/class.c (Scm__InitClass) : initialization of <boolean> and
	  <character> to follow standard convention, i.e. defines
	  <boolean-meta> and <character-meta>.

2003-01-16  Shiro Kawai  <shiro@acm.org>

	* ext/auxsys/auxsyslib.stub (sys-putenv) : use system malloc to
	  allocate string to be passed to putenv(), to avoid the string
	  from being GCed.
	
2003-01-15  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-37.scm : added.

2003-01-14  Shiro Kawai  <shiro@acm.org>

	* lib/text/gettext.scm : added text.gettext contributed from
	  Alex Shinn.
	* src/genstub : fix in :base qualified define-cclass, which used
	  to pass wrong C type to calculate C object size.
	* src/gauche/class.h : fixed a bug in the default value of
	  slotNumber of static slot accessors, which created invalid
	  setter access when the slot is read-only.

2003-01-11  Shiro Kawai  <shiro@acm.org>

	* src/vm.c : added experimental runtime flag that disables mutation
	  of binding from outside of the definining module.

2003-01-10  Shiro Kawai  <shiro@acm.org>

	* src/module.c, src/extlib.stub : added make-module, and allow
	  anonymous modules.

2003-01-08  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-13.scm : fixed autoload typos.  Patch from Kimura Fuyuki.
	* lib/gauche/test.scm : added test-module procedure, which tests
	  autoloads and exported symbol bindings of the module, hopefully
	  to catch careless typos.

2003-01-07  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-1.scm : added some missing autoloads.  Patch provided
	  by Kimura Fuyuki.

2003-01-06  Shiro Kawai  <shiro@acm.org>

	* src/gauche/test.scm : Made default 'test' procedure catch an error.
	  The *test-error* variable is introduced to hold the "error value".
	  Introduced test* macro.  The original primitive 'test' is renamed
	  to 'prim-test', and used to test primitive syntaxes before
	  error handler is tested.

2003-01-05  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub, lib/gauche/hashutil.scm : fixed the problem that
	  #<eof> in hash key stopped iteration.  Also added hash-table
	  and hash-table-fold.

2003-01-04  Shiro Kawai  <shiro@acm.org>

	* ext/net/net.[ch]: applied a patch from John Kilburg to support
	  datagram socket.

2003-01-03  Shiro Kawai  <shiro@acm.org>

	* src/boolean.c (Scm_EqualP): check eq?-ness first.
	* lib/gauche/mop/instance-pool.scm : renamed *-remove methods to
	  *-remove!.  added map fns.

2003-01-01  Shiro Kawai  <shiro@acm.org>

	* src/vm.c : fixed Scm_VMEval to set the module to the specified
	  one during _executing_ the code, not only _compiling_ the code.
	  It involves dynamic-wind to restore the original module when
	  and error occurs.  If the given module is the current module,
	  however, we skip the dynamic-wind (the previous version pushed
	  extra continuation, but it seems we don't need it).
	* src/load.c : added :environment keyword argument to load and
	  load-from-port; this is necessary to force a specific file to
	  be loaded in the environment specified by the caller.  (Since
	  'load' form itself is evaluated at run time, even
	  (eval '(load "foo") module) doesn't work, for the module
	  given to 'eval' is only effective during compiling the form
	  (load "foo").)

2002-12-29  Shiro Kawai  <shiro@acm.org>

	* src/load.c, src/read.c, ext/uvector/uvector.c.sh : added
	  read-context flag to control whether literal structure should
	  be immutable or not.   The default ScmRead reads as mutable
	  object, while ScmLoad reads as immutable object.
	  Currently this only affects literal uvectors.  (It's debatable
	  that string should obey this flag).

2002-12-26  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/uri.scm (uri-encode): process byte-wise, instead of
	  character-wise, to avoid complexity of different character
	  encodings.  Suggested by Fumitoshi UKAI.

2002-12-25  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/* : added immutability check for all destructive ops.
	  made literal uvectors immutable.
	* doc/gauche-ref.texi : added japanese translation of rfc.http etc.
	  provided by Makoto Satoh.

2002-12-24  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/uvector.[ch].sh : added immutable and owner field
	  to uvector (preparation of immutable uvectors, and uvectors
	  pointing to somebody else's memory).

2002-12-23  Shiro Kawai  <shiro@acm.org>

	* ext/digest/sha.h : removed dependency on sys/cdefs.h
	* src/genstub : added support of direct-supers specifier in
	  define-cclass.  NB: this is an ad hoc kludge.  Define-cclass
	  need to be redesigned.

2002-12-22  Shiro Kawai  <shiro@acm.org>

	* src/string.c : made string equality be tested by separate function
	  from comparison, so that a complete string and incomplete string
	  can be tested.
	* src/class.c, src/gauche/class.h : made generic allocation macro
	  SCM_ALLOCATE to call Scm_AllocateInstance, which initializes
	  Scheme-slots defined in Scheme subclasses safely.  The task used
	  to be a responsibility of *_allocate method, which was error-prone.

2002-12-21  Shiro Kawai  <shiro@acm.org>

	* src/genstub : supports :base qualifier in define-cclass to allow
	  to define base class in stub file.
	* lib/text/csv.scm : provisional fix for the problem that the
	  consecutive tabs are ignored even if the separator is a tab.
	  The real fix should be to add the flag to csv-reader to
	  tell whether the reader should strip whitespaces surrounding
	  field data.
	* ext/mt-random/mt-lib.stub : fixed a bug the mt-set-random-seed!
	  always sets the same value if a bignum is given.

2002-12-19  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/regexp.scm (rxmatch-case): catch the case that caused
	  infinite loop (patch from Kimura Fuyuki)

2002-12-17  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-0.scm : added srfi-31 and some missing feature ids.

2002-12-14  Shiro Kawai  <shiro@acm.org>

	* release 0.6.6
	* ext/digest/{configure.in,md5.h,sha.h} : slight fix for portability.
	* src/vm.c : added Scm_VMApply3

2002-12-13  Shiro Kawai  <shiro@acm.org>

	* ext/auxsys/* : moved sys-getgroups, sys-getlogin and sys-localeconv
	  here.
	* src/genstub : have been generating a redundant type checking code
	  for scheme object.  fixed.

2002-12-12  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/test.scm, test/* : added test-error API, and rewrote
	  some tests with it.
	* src/port.c, src/portapi.c : added Scm_PortSeek() API.
	* src/stdlib.stub : allow :if-exists :overwrite option in
	  open-output-file.

2002-12-11  Shiro Kawai  <shiro@acm.org>

	* ext/digest/*.scm, lib/util/digest.scm : define digest-string
	  in util.digest (patch from Kimura Fuyuki).
	* src/list.c, src/stdlib.stub, lib/gauche/listutil.scm : made
	  caar..cddr be inlined.  got rid of less-frequently used
	  caaar...cddddr from gosh core and defines them in autoloaded
	  Scheme file.

2002-12-10  Shiro Kawai  <shiro@acm.org>

	* src/regexp.c : made regexp printed as #/.../
	* lib/gauche/collection.scm (call-with-iterator): fixed a bug
	  (patch provided from Kimura Fuyuki).
	* ext/digest/*, lib/util/digest.scm : revise some APIs.

2002-12-09  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/hook.scm : added gauche.hook.
	* src/port.c, src/vm.c, src/extlib.stub : allow with-*-to-port and
	  dynamic-wind to take non-procedure objects, enables object-apply
	  hook.
	* src/gauche/vm.h, src/vm.c, src/parameter.c : added per-thread
	  parameter support.

2002-12-08  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/mop/validator.scm (compute-get-n-set): added
	  :post-validator slot option.

2002-12-06  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-14.scm : made ucs-range->char-set work on non-ASCII chars.
	* src/string.c : added string-pointer-ref.
	* lib/gauche/stringutil.scm, src/extlib.stub, src/gauche-init.scm:
	  now string-split can accept not only a character but also a char-set,
	  a string, a regexp or a predicate.  The character case is handled
	  by built-in (Scm_StringSplitByChar, %string-split-by-char), and
	  the other cases are handled by autoloaded module gauche.stringutil.
	* src/extlib.stub :added make-byte-string.
	* lib/util/digest.scm, lib/rfc/hmac.scm, ext/digest/* : renamed
	  *-update and *-final for *-update! and *-final!, respectively.
	* lib/srfi-31.scm : added srfi-31.
	* src/object.scm : fixed the default method of slot-unbound and
	  slot-missin to avoid infinite loop in formatting the error message
	  via write-object.

2002-12-05  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/regexp.c (regexp-quote): added regexp-quote,
	  contributed by Alex Shinn
	* src/regexp.c : fixed a bug that didn't treat escaped '$' at
	  the end of expr as a literal character.
	* lib/gauche/time.scm : fixed misspelling of slot name (patch from
	  Kimura Fuyuki).

2002-12-04  Shiro Kawai  <shiro@acm.org>

	* src/proc.c, src/extlib.stub : added has-setter?
	* lib/gauche/mop/propagate.scm : added <propagate-mixin>.

2002-12-03  Shiro Kawai  <shiro@acm.org>

	* src/gauche/arith_i386.h (UADD): modified to avoid a "register
	  spilling error" on some processors.
	* lib/gauche/procedure.scm (let-keywords*): take care of syntactic
	  unwrapping in case when let-keywords* appear in the expanded
	  form of R5RS macro.
	* src/list.c : let <list> inherit <sequence> for clearity.

2002-12-02  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-19/format.scm : fixed a bug in locale-dependent date
	  reader (Thanks to Shin-ichi Hirata for a patch).
	* ext/digest/*, lib/util/digest.scm, lib/rfc/hmac.scm : integrated
	  Kimura Fuyuki's message digesting packages.

2002-12-01  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/logger.scm : added lock-policy slot to <log-drain>
	  class to specify the file lock policy.  This allows logger to
	  be used in MacOSX.
	* lib/file/util.scm (define-time-comparer): fixed a bug that caused
	  file-mtime<? etc. to fail if filename is given.

2002-11-29  Shiro Kawai  <shiro@acm.org>

	* ext/net/addr.c (Scm_MakeSockAddr): fixed a nasty bug that
	  potentially clobbers heap area.  (Thanks to KIMURA Shigenobu
	  for helping to identify the bug).
	* doc/Makefile.in : put a sed line in generating html docs to fix
	  LANG attribute, as suggested by Kimura Fuyuki.

2002-11-28  Shiro Kawai  <shiro@acm.org>

	* src/read.c : fixed SRFI-30 syntax reader (Thanks to KIMURA 
	  Shigenobu for pointing out this bug).
	* src/compile.c, src/vm.c : dropped TAILBIND instruction, for it
	  doesn't work when the constructing argument frame is moved
	  to the heap by call/cc.  I can't come up a nice way to fix that
	  without performance penalty.  Instead, the do form is expanded
	  into letrec form in the compiler.  And believe it or not, the
	  performance is actually better.
	  The compiler is also modified to keep hygienity on some
	  compiler-inserted symbols.
	* src/regexp.c (re_exec_rec): fixed a bug in matching multibyte
	  char against RE_NSET1.  (Thanks to Alex Shinn for reporting this).

2002-11-25  Shiro Kawai  <shiro@acm.org>

	* doc/gauche-ref.texi : applied patch from Kimura Fuyuki and
	  Jiro KANAYAMA.  Added descriptions about SRFI-10 syntax as well.

2002-11-24  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/cookie.scm, doc/gauche-ref.texi : applied patch from
	  KIMURA Shigenobu.

2002-11-20  Shiro Kawai  <shiro@acm.org>

	* src/read.c, src/gauche-init.scm, lib/gauche/interpolate.scm :
	  made string interpolation syntax is expanded in reader instead
	  of in macro; if it is done in macro, the read symbols do not
	  properly "see" their surrounding environment, and fail to work
	  if the referenced symbols are introduced by R5RS macro.
	  For example: (define-syntax foo (syntax-rules () ((_ a) #`",a")))
	  fails in the previous version.
	* src/main.c : removed the special treatment of argv[0]=="./gosh"
	  for in-place test; instead, added -ftest option to do the job.

2002-11-19  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/822.scm : deal with empty header (patch from Kimura
	  Shigenobu)	  

2002-11-17  Shiro Kawai  <shiro@acm.org>

	* src/string.c (Scm_MakeFillString): added arg range check (pointed
	  out by Kimura Fuyuki).

2002-11-15  Shiro Kawai  <shiro@acm.org>

	* release 0.6.5

2002-11-15  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/reload.scm : updated to the Alex's newest version.
	
2002-11-13  Shiro Kawai  <shiro@acm.org>

	* lib/port/* -> lib/compat/* : moved.  port.* is obsoleted.
	* lib/japanize-euc.scm : moved to test/japanize-euc.scm
	* lib/rfc/http.scm : added

2002-11-12  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/uri.scm (uri-compose) : added uri-compose.
	* src/read.c (read_internal): Finally, make old incomplete syntax
	  #"..." obsolete.  The reader signals an error.
	* lib/gauche/portutil.scm, src/gauche/extlib.stub : Renamed
	  gauche/port.scm to gauche/portutil.scm.  Implemented copy-port
	  in Scheme instead of C (actually, it became faster by
	  locking the port during copying).

2002-11-10  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/charconv.c (conv_input_filler): fixed a bug
	  of attempting to read from closed remote port.  (pointed out
	  by Kimura Fuyuki).
	* lib/srfi-19.scm : added missing exports (pointed out by
	  Kimura Fuyuki).

2002-11-09  Shiro Kawai  <shiro@acm.org>

	* gc/* : updated to Boehm GC 6.1
	* lib/gauche/reload.scm : added module reloading utility
	  contributed by Alex Shinn.

2002-11-08  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (Scm_VMApply): check if the length of argument list is
	  smaller than the VM stack size; otherwise VM can't handle it.
	  This fixes SEGV problem reported in bug #634598.
	* src/genstub : typo fix (patch from Kimura Fuyuki).
	* various files: started nvm-experiment branch for next VM
	  experiments.

2002-11-01  Shiro Kawai  <shiro@acm.org>

	* src/string.c (Scm_DStringAdd): fixed a bug that didn't handle
	  complete-string addition to DString.
	* src/write.c : fixed a format problem that counts # of characters
	  incorrectly when maxcol argument is given to the ~a or ~s directive
	  (a bug pointed out by Kimura Shigenobu).  Test cases for this is
	  also added.

2002-10-30  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/gauche/vm.h : start adding experimental new VM
	  code under USE_NVM cpp flag.  not working yet.

2002-10-25  Shiro Kawai  <shiro@acm.org>

	* various files: removed obsoleted macro l_ and reference to
	  gauche.get-opt.  rewrote some procedures using new macros.
	* lib/gauche/procedure.scm : moved let-optionals* here, with new
	  macros get-optional and let-keyword*.  These are "official"
	  autoloaded macros now.   Also added procedures any-pred and
	  every-pred.
	* src/gauche-init.scm : added get-keyword* macro

2002-10-24  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/listener.scm : fixed a bug around error handling.
	  The read buffer is cleared on error, and make prompt printed
	  correctly.

2002-10-23  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/interactive/info.scm : use gauche.config module to
	  get info file path.
	* lib/gauche/config.scm : added

2002-10-21  Shiro Kawai  <shiro@acm.org>

	* src/exclib.stub (report-error): exposed Scm_ReportError to Scheme.
	* lib/gauche/mop/* : added <singleton-mixin> and <validator-mixin>
	  classes, to use the features of <singleton-meta> and
	  <validator-meta> conveniently.
	* lib/gauche/listener.scm : added.  working, but error handling
	  is not completed.

2002-10-20  Shiro Kawai  <shiro@acm.org>

	* src/genstub : renamed ulong -> u_long etc. in the generated
	  code.  (a bug pointed out by Kimura Fuyuki)

2002-10-19  Shiro Kawai  <shiro@acm.org>

	* src/class.c (method_initialize): allow methods without required
	  arguments.  (a bug pointed out by Kimura Fuyuki)

2002-10-17  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/procedure.scm (arity-at-least-value): fixed a bug
	  (Thanks to Kimura Fuyuki).
	* ext/auxsys/auxsyslib.stub (sys-times): fixed a bug that caused
	  sys-times fails on some platforms (Thanks to Kimura Fuyuki).

2002-10-16  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/uvlib.stub.sh : fixed a bug that prevents uvlib.c
	  from compiling under some platforms.
	* doc/gauche-ref.texi : applied a patch to fix many of erroneous
	  examples.  (Thanks to Kimura Fuyuki for providing the patch).
	* src/gauche-config.in : added --mandir and --infodir

2002-10-14  Shiro Kawai  <shiro@acm.org>

	* release 0.6.4
	* doc/Makefile.in : reverted to use autoconf's default mandir and
	  infodir.  For rpm files, let spec file override them.  (Suggested
	  by MINOURA Makoto).
	* ext/uvector/* : added read-block!, write-block, and uvector-alias.
	* lib/gauche/singleton.scm : moved to lib/gauche/mop/singleton,
	  keeping the old file for compatibility.
	* lib/gauche/propagated-slot.scm : renamed to propagate.scm.

2002-10-13  Shiro Kawai  <shiro@acm.org>

	* src/bignum.c (Scm_MakeBignumFromUIArray): accepts 2's complement
	  representation if sign == 0.
	* ext/uvector/* : store true 64bit integer in s64 and u64 vector
	  on 32-bit architecture.
	* lib/file/util.scm : added home-directory
	* src/main.c : added -A and -E option.  makes -A, -I, -E, -e, -l, -u
	  options be processed in the order of appearance.
	* doc/gauche.ref.texi : added @direntry (suggested by MINOURA Makoto).

2002-10-12  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-1/* : replaced several non-tail-recursive calls for 
	  tail-recursive calls, since tail-recursion + reverse! is faster
	  in Gauche than simple non-tail-recursive calls.
	* lib/gauche/time.scm : added

2002-10-11  Shiro Kawai  <shiro@acm.org>

	* src/port.c, lib/gauche/port.scm, src/extlib.stub : exposed 'unsafe'
	  port operations as well as %with-port-locking, for efficient port
	  handling.  Removed redundant C-version of port->string (it hasn't
	  been used anyway).

2002-10-06  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/mop/propagate-slot.scm : added
	* lib/gauche/validator.scm, lib/gauche/mop/validator.scm :
	  moved gauche.validator to gauche.mop.validator.
	  keep gauche.validator as an alias of gauche.mop.validator.
	* test/logger.scm ("log-open"): fixed test case that failed when
	  the day of month was between 1 and 9.

2002-09-26  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/uvlib.stub.sh : added conversion routines between
	  string and uvectors (u8, s8, u32, s32).  These are convenient to
	  manipulate strings in low-level.
	* ext/uvector/uvector.[ch].sh : changed uvector struture to have
	  separate data area from the object header.  This increases the
	  cost of allocation, but enables the future extensions to share
	  the vector storage.
	* ext/charconv/jconv.c : use internal conversion routine for
	  "iso-2022-jp" as well.

2002-09-25  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/jconv.c (jconv_iconv_reset): fixed a bug that caused
	  infinite loop when iconv is used and the output encoding is
	  stateful.   A bug reported by Satoru Takabayashi.

2002-09-24  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/sequence.scm : make gauche.sequence inherit
	  gauche.collection.   Added (setter subseq).

2002-09-21  Shiro Kawai  <shiro@acm.org>

	* release 0.6.3
	* ext/syslog/* : added syslog(3) interface.
	* lib/gauche/logger.scm : allow a procedure for log prefix generator.
	  Also integrated to the syslog feature.

2002-09-20  Shiro Kawai  <shiro@acm.org>

	* src/read.c, src/string.c : changed incomplete string syntax
	  from #"..." to #*"...".  The old syntax is still recognized,
	  but the written representation is switched to the new syntax.
	  This is a preparation for string interpolation to take #"..." syntax.
	* lib/gauche/object.scm : added object-apply definitions for
	  <regexp> and <regmatch>.
	* src/char.c (Scm_CharSetRead): support POSIX character class
	  notation such as '[:alpha:]'.
	* src/regexp.c, src/char.c, src/read.c, src/extlib.stub : added
	  case-fold regexp match.  New syntax #/.../i for it.

2002-09-19  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/compile.c, src/gauche/vminsn.h : implemented
	 "combined push" instructions, like LREF-PUSH and PUSHI.
	* src/compile.c : fixed a bug that didn't add bind-info of
	  internal defines properly.

2002-09-18  Shiro Kawai  <shiro@acm.org>

	* src/proc.c, src/vm.c, src/class.c : extend object-apply mechanism
	  to setter, i.e. defining (setter object-apply) allows non-procedural
	  object to be used as (set! (obj arg ...) arg ...).
	* ext/mt-random/mt-random.scm, ext/threads/threads.scm : make symbols
	  in *.so exported.  (Based on the discussion in gauche-devel).

2002-09-17  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/compile.c, src/proc.c : changed VM_LAMBDA instruction
	  as well, to keep binding information in 'bind-info' pair attribute.
	  cleaned up stack dump and debug code to use the new bind-info
	  attribute.

2002-09-16  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/compile.c : changed VM_LET, VM_VALUES_BIND and
	  VM_TAILBIND not to take extra debug info word after the instruction.
	  This shortens instruction stream and makes execution slightly faster.
	  The debug information is kept in the pair attribute 'bind-info'
	  of the instruction stream.
	* src/vm.c : fixed a problem of inlined procedures being confused
	  if they passed multiple values.

2002-09-15  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/quoted-printable.scm : fixed several bugs using test cases.

2002-09-12  Shiro Kawai  <shiro@acm.org>

	* lib/file/util.scm : fixed a problem in directory-fold etc. that
	  failed when there was a dangling symlink.
	* src/promise.c : fixed a bug in force.
	* src/core.c : added Scm_RegisterFinalizer
	* configure.in, src/gauche/config.h.in : added GAUCHE_MAJOR_VERSION et al.
	* src/gauche.h : added SCM_DECL_{BEGIN|END} macro

2002-09-11  Shiro Kawai  <shiro@acm.org>

	* src/compile.c, src/gauche/vm.h : changed the compiler to
	  generate local frame referencer and modifier counting from the end
	  of the frame, and modified ENV_DATA macro accordingly.
	* src/vm.c : further optimization, and fixed a bug in the last change
	  that left env ptr invalid after tail call argument shifting.
	* src/compile.c, src/vm.c : further optimization of omitting an empty
	  environment frames.

2002-09-10  Shiro Kawai  <shiro@acm.org>

	* src/stdlib.stub, src/proc.c : let map and for-each accept non-procedure
	  object as the 1st arg so that object-apply hook can work.
	* src/vm.c : optimized subr call by omitting environment frame header.
	* src/vm.c, src/class.c : added object-apply hook.  If non-procedure
	  object is applied, like ("abc" 1), a method object-apply is
	  called as (object-apply "abc" 1).

2002-09-09  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/gauche/vm.h : changed environment frame layout.  see
	  the comment of vm.h.
	* src/vm.c, src/gauche/vminsn.h, src/stdlib.stub : inline apply to
	  use SCM_VM_APPLY instruction.

2002-09-08  Shiro Kawai  <shiro@acm.org>

	* src/genstub (get-c-name): changed to preserve case of the input
	  scheme name.
	* src/gauche/arith_i386.h, configure.in, src/gauche/config.h.in :
	  use some inline asm for primitive ops of bignum arithmetic.

2002-09-07  Shiro Kawai  <shiro@acm.org>

	* configure.in, doc/Makefile.in : changed autoconf variable GZIP to
	  GZIP_PROGRAM, for it interferes gzip's operation.

2002-09-06  Shiro Kawai  <shiro@acm.org>

	* src/genstub : fixed a bug that generates bad C predicate for <uint32>
	  stub type.

2002-09-02  Shiro Kawai  <shiro@acm.org>

	* release 0.6.2
	* src/module.c : fixed for cygwin.
	* src/syslib.stub : dropped sys-usleep, for the prototype of usleep(3)
	  doesn't agree among BSD and SysV, and it's obsolete anyway.
	  Instead, added sys-nanosleep.

2002-09-01  Shiro Kawai  <shiro@acm.org>

	* src/regexp.c : fixed a bug that compiled a regexp like #/a|(b)|c/
	  incorrectly.  (Thanks to Alex Shinn for pointing it out).
	* src/repl.c : changed API of read-eval-print-loop.
	* src/main.c (usage): added explanation of -l and -e options.

2002-08-29  Shiro Kawai  <shiro@acm.org>

	* src/module.c (Scm_FindBinding): searches parent modules of imported
	  modules as well.
	* src/gauche-init.scm (extend) : if specified module is not found,
	  try %require.
	* src/repl.c (repl_proc): fixed a bug that didn't treat arguments
	  correctly.

2002-08-28  Shiro Kawai  <shiro@acm.org>

	* genstub : renamed the stub directive define-const to define-constant
	  for consistency, and allow boolean value for it.
	* src/signal.c : changed the default handler behavior for SIGHUP,
	  SIGQUIT and SIGTERM to call Scm_Exit() instead of raise an error.
	  (This fixes the problem of remaining process under Emacs).
	* src/write.c (Scm_Vprintf): added check if argument for %s is NULL.

2002-08-27  Shiro Kawai  <shiro@acm.org>

	* src/class.c (initialize_builtin_class) : made it recognize inherited
	  slots properly.
	* ext/threads/thrlib.stub : adapted to the above fix of class.c.
	* lib/gauche/mop/instance-pool.scm : added expreimentally.

2002-08-26  Shiro Kawai  <shiro@acm.org>

	* lib/util/queue.scm : added queue-length, list->queue, queue->list,
	  find-in-queue, remove-from-queue!.
	* src/genstub : fixed a bug in string literal handling.

2002-08-25  Shiro Kawai  <shiro@acm.org>

	* src/genstub : snapshot of new architecture.  Old syntax of
	  define-symbol (with initialization) is obsoleted and replaced by
	  define-variable.
	* src/extlib.stub : added keyword->string

2002-08-24  Shiro Kawai  <shiro@acm.org>

	* src/genstub : reorganizing code.
	* lib/gauche/interactive.scm (apropos): adapted to the new module
	  inheitance mechanism.

2002-08-23  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub : added fixnum? and bignum?
	* src/string.c, src/extlib.stub : added string-pointer-copy,
	  string-pointer-byte-index and string-pointer-dump (under
	  SCM_DEBUG_HELPER), as suggested by Alex Shinn.

2002-08-22  Shiro Kawai  <shiro@acm.org>

	* src/gauche-init.scm, src/module.c : made them more robust for
	  invalid arguments.
	* ext/uvector/srfi-4.scm : adapted to extend syntax.

2002-08-20  Shiro Kawai  <shiro@acm.org>

	* src/module.c, src/extlib.stub, src/gauche-init.scm : implements
	  module inheritance by extend syntax.

2002-08-19  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h : added SCM_SIGPENDING macro (needed in gauche-gtk)

2002-08-18  Shiro Kawai  <shiro@acm.org>

	* src/read.c : added SRFI-30 nested multiline comment (#|...|#).

2002-08-17  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/vm/debugger.scm : fixed an error in enable-debug
	  (was using obsolete 'current-vm' procedure).
	* src/genstub : recognize <short>, <ushort> as stub types.

2002-08-16  Shiro Kawai  <shiro@acm.org>

	* src/module.c (Scm_DefineConst): don't issue warning if the redefined
	  constant has the same value (in the sense of equal?) to the old one.
	* src/port.c (file_filler): fixed a bug that file_filler returned 0
	  when read(2) was interrupted by a signal, causing Scm_Read to
	  return EOF in such case.  (Thanks to Julian Fondren for pointing
	  out the bug.)

2002-08-10  Shiro Kawai  <shiro@acm.org>

	* src/read.c: protect read ctor table by mutex.

2002-08-08  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/uvector.scm : defines object-[+-*/] methods for uvectors.
	* src/number.c : adding generic arithmetic mechanism: operations such
	  as '+' calls a generic function (object-+ for '+') when the
	  argument is not a built-in numeric type.

2002-07-31  Shiro Kawai  <shiro@acm.org>

	* release 0.6.1
	* src/main.c : warn if pre-0.5 compatible mode is used.
	* src/gauche/vm.h, src/error.c, src/vm.c : prevent an infinite loop
	  when an uncaptured erorr occurs inside the error reporter.
	  Introduced SCM_ERROR_BEING_REPORTED runtime flag to keep the
	  dynamic context of error handling; see the comment of Scm_ReportError
	  and Scm_VMWithErrorHandler.

2002-07-30  Shiro Kawai  <shiro@acm.org>

	* src/genstub : changed suffixes of autogenerated auxiliary C
	  variable names to avoid potential name collision.   For example,
	  "__NAME" was used for C variable to keep the name of symbols,
	  instead of "_NAME".
	* ext/dbm/gdbm.stub, ext/dbm/ndbm.stub : changed C predicate name
	  to follow the convention (SCM_GDBM_P -> SCM_GDBMP, etc).

2002-07-28  Shiro Kawai  <shiro@acm.org>

	* src/vm.c (Scm_VMDefaultExceptionHandler): fix the problem that
	  user-defined error handler can't get a proper stack trace.
	* gc/configure.in: enable DONT_ADD_BYTE_AT_END option.  Otherwise,
	  pair attribute field of cons wasn't scanned properly, losing
	  source-code information after GC.

2002-07-23  Shiro Kawai  <shiro@acm.org>

	* src/genstub : obsoleted 'assert' form, replacing it for bigloo-like
	  argument type annotations.  revised stub type system management.
	* various *.stub : rewrote according to the above change.

2002-07-22  Shiro Kawai  <shiro@acm.org>

	* src/genstub : added include, define-const, define-enum and return
	  forms.
	* various *.stub : rewrote C-enum stuff by define-enum form,
	  and many SCM_RETURNs by return form.

2002-07-21  Shiro Kawai  <shiro@acm.org>

	* src/Makefile (INSTALL_SUBHEADERS): gauche/class.h to be installed.

2002-07-18  Shiro Kawai  <shiro@acm.org>

	* release 0.6
	* DIST : includes pre-extracted info files in the distribution;
	  'extract' script doesn't work unless gosh is compiled with euc-jp
	  support.
	* doc/Makefile.in : fixed info file installation when info directory
	  doesn't exist.
	* aclocal.m4, configure.in, src/gauche-config.in : save the default
	  CFLAGS in gauche-config.  includes AC_GAUCHE_OPTFLAGS in
	  AC_GAUCHE_FLAGS.

2002-07-17  Shiro Kawai  <shiro@acm.org>

	* src/main.c (main): fixed a bug that didn't flush buffered ports
	  after Scheme main procedure returns.  (Thanks to Fujii-san for
	  pointing this out).
	* all configure.in's and Makefile.in's : set OPTFLAGS on some
	  platforms by default.  propagates it to submodules.
	* src/port.c, src/write.c, src/gauche/port.h : inlined port lock
	  primitives in write.c.
	* gc/configure.in: disabled THREAD_LOCAL_ALLOC for now, since it
	  caused significant performance loss on Linux/x86 when gosh is
	  compiled with pthreads but not using threads.  The difference
	  of GC lock implementation may be the cause.  Disabling local alloc
	  may damage multithreaded app, but at least on gosh, MT is more
	  for asynchronous event handling than performance benefit, I think.

2002-07-16  Shiro Kawai  <shiro@acm.org>

	* src/load.c (break_env_paths): fixed a bug (thanks to Alex Shinn).
	* configure.in, src/gauche/config.h.in : check existence of sched_yield
	  and the library that includes it.
	* src/core.c : refer to GC_pthread_create so that the GC thread
	  module will be linked in the gosh body.
	* src/syslib.stub : avoid calling pause() from sys-pause; it won't
	  work in race conditions.  sys-pause now uses sigsuspend instead.
	  also added sys-sigsuspend.
	* src/signal.c, src/main.c : fixed a bug that messed up threads'
	  signal mask.  Also add Scheme level support of sigsuspend.

2002-07-15  Shiro Kawai  <shiro@acm.org>

	* src/exclib.stub, src/extlib.stub, ext/threads/thrlib.stub : moved
	  the thread-exception stuff from core interpreter to ext/threads.
	  moved back the vm debugging support procs from ext/threads to
	  src/extlib.

2002-07-14  Shiro Kawai  <shiro@acm.org>

	* src/write.c (Scm_Vprintf): fixed to retrieve varargs before calling
	  a closure function, so that we can avoid fiddling va_list around.
	* src/gauche.h, ext/threads/* : fixed some declarations for cygwin.

2002-07-13  Shiro Kawai  <shiro@acm.org>

	* src/thread.c, src/mutex.c, ext/threads/* : moved Scheme-level
	  thread support to ext/threads (module gauche.threads).  This keeps
	  gosh core small, and also explicitly specifying (use gauche.threads)
	  may be a good idea for readers to be aware of the use of threads.
	* src/read.c, src/write.c : let Scm_Read and Scm_Write (and likes)
	  to hold the port lock so that they can call faster version of
	  port primitives.
	* src/port.c (PORT_UNLOCK): fixed a bug that didn't unlock mutex
	  properly inside recursive lock.

2002-07-12  Shiro Kawai  <shiro@acm.org>

	* gc/configure.in : undefine GC_GCJ_SUPPORT.
	* ext/net/net.c (Scm_SocketGetOpt): fixed a bug that may returned
	  smaller data.
	* ext/uvector/uvector.c.sh, ext/uvector/uvectorP.h : fixed a bug
	  that caused s64/u64 vector code crash.  SCM_NEW2 should be used
	  instead of SCM_NEW_ATOMIC2 for these vectors on ILP32 architecture.
	* configure.in, src/gauche/config.h.in : set proper thread-supporting
	  #defines accodring to the platform.

2002-07-11  Shiro Kawai  <shiro@acm.org>

	* src/port.c : added error flag to ScmPort and mark the port that
	  raised an error.  Avoid calling flush to close such ports.
	* lib/gauche/process.cm (call-with-input-process) : avoid sending
	  SIGTERM in call-with-input-process, for it may not succeed.
	  Instead, it counts on that closing pipe causes termination of
	  the source process.
	* configure.in : check -lpthread by AC_CHECK_LIB.  For FreeBSD,
	  check -lc_r as well.
	* doc/Makefile.in : 
	* lib/gauche/interactive/info.scm : added gauche.interactive.info,
	  on-line info viewer (experimental).
	* lib/file/util.scm (find-file-in-paths) : fixed keyword argument
	  spec to match the document.

2002-07-10  Shiro Kawai  <shiro@acm.org>

	* doc/Makefile.in : added rule to create gzipped info files
	* src/main.c (version): the output of gosh -V shows pthreads
	  availability.
	* lib/text/info.scm : added text.info module that can read and
	  parse info files.
	* lib/gauche/interpolate.scm (%string-interpolate): fixed a bug
	  that doesn't interpolate variables starting with 'f' properly.

2002-07-09  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h, src/char.c, src/regexp.c, src/read.c : consolidated
	  \x, \u and \U escape sequence reader of literal string, regexp and
	  char-set.
	* various files: changed macro GAUCHE_USE_PTHREAD to
	  GAUCHE_USE_PTHREADS.

2002-07-08  Shiro Kawai  <shiro@acm.org>

	* src/thread.c (Scm_ThreadStart): made all signals blocked for newly
	  created thread by default.
	* src/main.c (sig_setup): enable SIGCHLD and SIGWINCH to be handled
	  in Scheme.  They are ignored by default, but a handler can be set.
	* src/signal.c, src/syslib.stub : added get-signal-handlers,
	  sys-sigset-fill!, sys-sigset-empty!, sys-sigmask.
	* lib/gauche/signal.scm : made with-signal-handlers work with the
	  new signal handling mechanism

2002-07-07  Shiro Kawai  <shiro@acm.org>

	* src/signal.c, src/gauche.h, src/vm.c, src/extlib.stub: revised
	  signal handling mechanism.  Now the signal handler vector is
	  shared by all threads.  This check-in breaks backward compatibility
	  of the signal handling mechanism---the compatible
	  with-signal-handlers interface should be written later.

2002-07-06  Shiro Kawai  <shiro@acm.org>

	* src/exclib.stub : fix slot name of uncaught-exception.
	* ext/net/net.c (Scm_SocketBind): call getsockaddr to get the actual
	  address after binding.  (Thanks to ODA Hideo for a patch).
	* src/vm.c, src/thread.c : separated Scheme thread API-related
	  routines from vm.c to thread.c.  Fixed thread cleanup routine;
	  now it's called by pthread_cleanup_push mechanism.
	  Scm_ThreadTerminate is implemented.

2002-07-05  Shiro Kawai  <shiro@acm.org>

	* src/port.c: added mutex protection to getc, getz and readline.
	  separated duplicated code of 'safe' and 'unsafe' version of
	  generic interface into portapi.c, and include it twice.

2002-07-04  Shiro Kawai  <shiro@acm.org>

	* src/repl.c : rewrote to use trampoline instead of C-level loop.
	  This avoids extra C-stack overhead, and makes captured toplevel
	  continuation valid throughout the entire session.
	* src/error.c : added Scm_ReportError() formerly defined in vm.c as
	  report_error.
	* src/vm.c : fixed a bug that caused run_loop() to return prematurely.

2002-07-02  Shiro Kawai  <shiro@acm.org>

	* src/port.c, src/gauche.h : first attempt of protecting port access
	  in threaded env.  Finished for putb, putc, puts and putz.
	* src/vm.c (Scm_VMCallCC): fixed to take a procedure with variable-
	  length arguments.
	* configure.in: changed thread option from --with-thread to
	  --enable-threads to match the same configuration option in GC.

2002-07-01  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/test.scm : fixed test cases accodring to the fix
	  of eqv? and equal?
	* src/boolean.c (Scm_EqvP, Scm_EqualP): fixed a bug that made
	  (eqv? 1 1.0) ==> #t and (equal? 1 1.0) ==> #t, which
	  should return #f.

2002-06-30  Shiro Kawai  <shiro@acm.org>

	* src/class.c, src/boolean.c, src/compare.c, src/extlib.stub : added
	  compare procedure and object-compare generic function.  Changed
	  the signature of ScmClass.compare so that it can be called both
	  equality test (delegates to object-equal?) and comparison (object-
	  compare).

	* release 0.5.7
	* src/class.c : added object-equal? generic function to extend equal?.
	* ext/uvector/array.scm (generate-amap): fixed a bug in the boundary
	  check that passes an index equal to the array-end.

2002-06-28  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/array.scm : more array utils, and array reader/write
	  method.

2002-06-27  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/array.scm : moved to ext/uvector.  added some more
	  array utilities.
	* ext/uvector/*, src/read.c : uniform vector is now supported in
	  gauche.uvector module instead of srfi-4.  srfi-4 module is kept
	  for compatibility.

2002-06-26  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-26.scm, test/srfi.scm, src/gauche-init.scm : added SRFI-26
	  and its test, and set cut and cute to be autoloaded.
	* src/extlib.stub (format): allow to omit the port argument, so that
	  it conforms SRFI-28 (basic format strings).

2002-06-25  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/* : allow a list and a vector as the second operand
	  of most vector arithmetic procedures.

2002-06-24  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/* : added TAGvector-range-check, TAGvector-clamp,
	  and TAGvector-clamp!.
	* src/vector.c, src/extlib.stub : added start/end optional argument
	  for vector->list (consistency with SRFI-13 string->list), and
	  added vector-copy.

2002-06-23  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/array.scm : added.  right now, it is just a prototype.

2002-06-22  Shiro Kawai  <shiro@acm.org>

	* src/gauche/arith.h : added macros that checks integer arithmetic
	  overflow.
	* ext/uvector/uvutil.c.sh : added TAGvector-dot, dot product operator.

2002-06-21  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/uvectorP.h : fixed bugs on LP64 architecture
	* missing, ltmain.sh : moved from gc/* to here, so that other
	  autoconf scripts (config.sub, config.guess and install-sh) can
	  be shared by gc and libgauche.

2002-06-20  Shiro Kawai  <shiro@acm.org>

	* gc/* : upgraded to BoehmGC 6.1alpha5.
	* src/core.c : moved GC registration code for dynamic-loadable
	  extensions (used to be GC_register_dlopen_data) here, renaming to
	  Scm_RegisterDL, so that I don't need to touch gc sources.
	* configure.in, Makefile.in, src/Makefile.in : changed for new
	  gc build process.

2002-06-19  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/* : revised macro strategy of uvutil.c.  Adding tests
	  for arithmetic functions.

2002-06-18  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/* : finishing uniform vector utility functions.

2002-06-17  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/* : adding uniform vector utility functions (not
	  finished yet)
	* src/bignum.c, src/gauche/arith.h, src/test-arith.c : separated
	  basic integer arithmetic macros to arith.h, for there will be
	  machine-dependent optimizations.  Added C test program for
	  arith.h macros.
	* src/read.c : added reader syntax for UCS characters: #\uXXXX
	  for character literal,  and \uXXXX escape sequence in string literal.

2002-06-16  Shiro Kawai  <shiro@acm.org>

	* src/char.c, src/extlib.stub : added ucs<->char conversion routine
	  scheme: ucs->char, char->ucs, c: Scm_UcsToChar, Scm_CharToUcs.
	* ext/charconv/cvt.scm (generate-utf8->eucj): bug fix: the table for
	  utf8 [d0 xx] and [d1 xx] sequence was missing in utf8->eucjp table.
	* ext/xlink : avoid calling sys-symlink when there's already a link.
	* src/read.c (maybe_uvector): use Scm_Require instead of Scm_Load
	  to initialize Scm_ReadUvectorHook.

2002-06-14  Shiro Kawai  <shiro@acm.org>

	* release 0.5.6

2002-06-13  Shiro Kawai  <shiro@acm.org>

	* ext/charconv.c : fixed int* and size_t* discrepancy
	* src/port.c (Scm_Getc): fixed a bug that getc didn't work when
	  the size of character was bigger than the size of the buffer
	  (pretty rare case, but bug is bug).
	* src/error.c, src/extlib.stub : fixed a bug in Scm_Warn.  Added
	  Scheme-level interface (warn).

2002-06-12  Shiro Kawai  <shiro@acm.org>

	* lib/file/util.scm : experimentally added file->string, file->list,
	  file->string-list and file->sexp-list.
	* src/gauche/char_euc_jp.h: adapted to 3-byte sequence (8F xx xx).
	* ext/charconv/guess.scm, ext/charconv/guess.c : improved automatic
	  character encoding detection, by using probabilistic DFA.

2002-06-11  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/object.scm : insert the binding of |setter of ref| into
	  gauche module, or it doesn't work well with gauche.sequence module.
	* src/moplib.stub (slot-ref): set setter of slot-ref to slot-set!.

2002-06-10  Shiro Kawai  <shiro@acm.org>

	* src/module.c: fixed a bug that Scm_Import added imported module
	  to the imported list multiple times.  Also added proper mutex for
	  module access.
	* src/core.c (Scm_Warn) : added Scm_Warn.
	* src/vector.c (Scm_VectorFill), src/extlib.stub (vector-fill!) :
	  allow to take optional start and end argument (parallel to
	  SRFI-13 string-fill!).

2002-06-09  Shiro Kawai  <shiro@acm.org>

	* gc/dyn_load.c (GC_register_dlopen_data), src/gauche/extend.h,
	  aclocal.m4 : fixed a GC problem that the bss data in the dlopened
	  module was not added to the GC root.  This caused memory fault
	  on Cygwin etc.
	* ext/charconv/jconv.c : added #ifdef's to compile without iconv.

2002-06-08  Shiro Kawai  <shiro@acm.org>

	* src/main.c : fixed usage message.  disabled SIGWINCH by default.
	* ext/charconv/jconv.c : added iso2022jp support and cleanup routine.
	  added more tests.
	
2002-06-07  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h, src/string.c : fixed a problem of signed/unsigned
	  char inconsistency (bug pointed out by Sven Hartrumpf).

2002-06-05  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/jconv.c : wrapping up.  passes the current tests.
	* lib/srfi-27.scm : added srfi-27 support.
	* src/vm.c (report_error): limit the depth of stack dump of the
	  default error reporter.

2002-06-04  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/* : reorganized to make jconv intercept iconv (but
	  jconv itself is inactivated yet).

2002-06-03  Shiro Kawai  <shiro@acm.org>

	* src/gauche-init.scm, lib/gauche/common-macros.scm : added dolist
	* src/write.c (Scm_Format): fixed a problem that raises a "too many
	  argument" error when ~:* is used.

2002-05-28  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/jconv.c, ext/charconv/cvt.scm : added for japanese
	  characte encoding conversions.

2002-05-27  Shiro Kawai  <shiro@acm.org>

	* release 0.5.5
	* ext/mt-random : more fix for cygwin.  right now, some procedures that
	  refer to uvector don't work on cygwin, because of DLL problem.
	* src/compare.c : further improvement.

2002-05-26  Shiro Kawai  <shiro@acm.org>

	* ext/mt-random : fixed missing initialization code.
	* src/compare.c : changed sort algorithm from simple quicksort to
	  the hybrid of quicksort and heapsort.

2002-05-25  Shiro Kawai  <shiro@acm.org>

	* ext/mt-random/mt-random.c (genrand_int_small): fixed a bug in LP64
	  architecture.
	* src/number.c (Scm_InexactToExact): fixed a bug in 64bit architecture

2002-05-24  Shiro Kawai  <shiro@acm.org>

	* src/load.c : finished the routine to detect require dependency loop.
	* lib/srfi-1* : added partial-application version of some list
	  procedures: count$, fold$, fold-right$, reduce$, reduce-right$,
	  filter$, partition$, remove$, member$, find$, find-tail$,
	  any$, every$, delete$, assoc$.
	* src/gauche.h : fixed a bug of uninitialized ScmProcedure field.
	* lib/gauche/procedure.scm, lib/gauche/collection.scm : added map$,
	  for-each$, apply$.
	* lib/math/const.scm : added.
	
2002-05-23  Shiro Kawai  <shiro@acm.org>

	* src/srfi-19.scm, src/srfi-19/format.scm : fixes bugs.
	* test/srfi.scm : added tests for srfi-19.
	* src/system.c : allowed negative value in Scm_Time slots; required
	  to represent negative time duration.
	* src/proc.c (proc_print): prints closure info.

2002-05-22  Shiro Kawai  <shiro@acm.org>

	* ext/auxsys/auxsyslib.stub (sys-times): fixed the way to find out
	  clock ticks.
	* ext/charconv/configure.in : add proper include path when --with-iconv
	  is specified.

2002-05-21  Shiro Kawai  <shiro@acm.org>

	* src/load.c : protecting some system-wide static states by mutexes.
	* src/stdlib.stub, src/extlib.stub : moved definitions of Scheme
	  subrs load and load-from-port to load.c.

2002-05-20  Shiro Kawai  <shiro@acm.org>

	* src/genstub : define-cclass starts working.  The interface may
	  change.
	* src/exclib.stub, src/error.c : moved exception class hierarchy
	  definition to exclib.stub from error.c
	* src/thrlib.stub, src/mutex.c, lib/gauche/thread.scm : made basic
	  thread primitives as builtin classes, and autoload SRFI-18
	  procedural APIs.

2002-05-19  Shiro Kawai  <shiro@acm.org>

	* src/write.c (Scm_Format): added ~* directive.
	* src/genstub : reorganized <type> class to handle types more
	  generally.

2002-05-18  Shiro Kawai  <shiro@acm.org>

	* src/genstub : removed obsolete definition of print and println, and
	  rewrote to use new print.  some code to support define-cclass is
	  added, but not finished.
	* src/gauche/exception.h : added
	* src/error.c : adding exception hieararchy support; not finished yet.

2002-05-17  Shiro Kawai  <shiro@acm.org>

	* src/write.c (Scm_Vprintf): the precision parameter of %S directive
	  now specifies the minimum padding width; e.g. %50.20S prints at
	  least 20 chars and at most 50 chars.

2002-05-16  Shiro Kawai  <shiro@acm.org>

	* src/mutex.c (Scm_GetTimeSpec): fixed according to SRFI-18 spec
	  (real number for relative time from now).
	* src/system.c : moved Scm_GetTimeSpec here.
	* src/vm.c : more thread interface.  made Scm_ThreadJoin take
	  timeout arg.
	* test/thread.scm : more tests.

2002-05-15  Shiro Kawai  <shiro@acm.org>

	* src/mutex.c : fixed mutex-unlock! to handle timeout and condition
	  variable.

2002-05-14  Shiro Kawai  <shiro@acm.org>

	* src/mutex.c : fixed mutex-lock! to handle timeout and owner-thread
	  properly.  Added condition variable.
	* ext/mt-random/test.scm : make test work without installing srfi-4
	* configure.in, src/gauche/config.h.in : moved check of gettimeofday
	  here
	* src/gauche.h, src/system.c, src/syslib.stub : added <time> object
	* lib/gauche/time.scm, lib/srfi-19.scm : removed time.scm

2002-05-13  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h, src/mutex.c, etc. : rewriting Scheme-level mutex
	* test/thread.scm : added basic thread API tests

2002-05-12  Shiro Kawai  <shiro@acm.org>

	* ext/mt-random/test.scm : added some tests

2002-05-11  Shiro Kawai  <shiro@acm.org>

	* ext/mt-random/* : added mt-random-real0
	* src/symbol.c, src/module.c, src/vm.c, etc. : added setter/getter
	  hook to gloc.  added define-constant syntax.
	* src/compile.c : inline constant reference defined by define-constant.

2002-05-10  Shiro Kawai  <shiro@acm.org>

	* lib/file/util.scm : added find-file-in-paths and move-file.
	* ext/mt-random/* : added mt-random-integer with arbitrary range.

2002-05-09  Shiro Kawai  <shiro@acm.org>

	* ext/mt-random/* : added math.mt-random.

2002-05-08  Shiro Kawai  <shiro@acm.org>

	* lib/file/util.scm : added touch-file and copy-file.
	* lib/gauche/defvalues.scm : moved define-values here, and added
	  set!-values.
	* ext/auxsys/auxsyslib.stub : added sys-utime.

2002-05-06  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/procedure.scm : added.
	* src/proc.c : exposed procedure information as slots of <procecure>
	  object.
	* lib/gauche/object.scm : added default ref and (setter ref) method
	  for slot reference.

2002-05-04  Shiro Kawai  <shiro@acm.org>

	* release 0.5.4
	* src/gauche.h, src/system.c : rename some tokens to avoid name
	  conflicts to macros in Darwin.
	* lib/file/util.scm : more procedures.

2002-05-02  Shiro Kawai  <shiro@acm.org>

	* src/repl.c : clears VM val0 register after evaluating prompt
	  string; it showed up when (begin) was evaluated at the toplevel
	  and was ugly.
	* src/gauche-init.scm : added compose
	* lib/file/util.scm : more procedures.

2002-05-01  Shiro Kawai  <shiro@acm.org>

	* src/port.c : fixed a memory-overwriting bug in bufport_read.
	* lib/file/util.scm : more procedures.

2002-04-30  Shiro Kawai  <shiro@acm.org>

	* lib/file/util.scm : added.

2002-04-29  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub : added open-input-fd-port and open-output-fd-port.
	* src/port.c, src/stdlib.stub, src/extlib.stub : refactored port
	  buffering mode check routine.
	* ext/termios/* : added pty interface (openpty and forkpty).
	* src/system.c, ext/extlib.stub : made system object information
	  accessible as slots.

2002-04-28  Shiro Kawai  <shiro@acm.org>

	* src/port.c, src/extlib.stub : added buffering mode keyword argument
	  to open-input-port and open-output-port.  added Scheme-level API
	  to get/set port buffering mode.
	* ext/net/* : adapted to the new port buffering mode API.

2002-04-27  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/common-macros.scm, src/gauche-init.scm : experimentally
	  added utility macros let1, pa, let_, l_, if_, when_ and while_.
	  See how it's useful.

2002-04-26  Shiro Kawai  <shiro@acm.org>

	* src/port.c, src/extlib.stub : getc, getb and getz can now work
	  interchangebly on the same port.

2002-04-25  Shiro Kawai  <shiro@acm.org>

	* src/port.c, src/gauche.h, src/extlib.stub, ext/charconv/charconv.c,
	  ext/net/net.c : Changed file port API.
	* src/stdlib.stub : added port?
	* src/extlib.stub : added weak-vector-length
	* lib/gauche/collection.scm, lib/gauche/sequence.scm : added a
	  weak vector to the collection and sequence framework.

2002-04-24  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/charconv.c : adapted to the new port API.
	* src/port.c, src/gauche.h, src/extlib.stub : completely rewritten
	  the file I/O code; now Gauche does its own buffering instead of
	  using FILE*.   Implemented proper char-ready?.
	
2002-04-23  Shiro Kawai  <shiro@acm.org>

	* src/weak.c, src/gauche.h, src/class.c, src/extlib.stub : added
	  weak vector which is needed for Gauche's own buffering port
	  implementation.

2002-04-21  Shiro Kawai  <shiro@acm.org>

	* src/compile.c : eliminated the "merger" NOP instruction at the
	  tail position; that prevented proper tail recursion in some cases.
	* src/gauche-init.scm (define-values):  added define-values.
	* lib/www.cgi.scm : checks CONTENT_TYPE and CONTENT_LENGTH.
	  Introduced cgi-metavariables parameter for better customizability.

2002-04-19  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/parameter.scm : added.
	* src/genstub, *.stub : changed the way to handle C preprocessor
	  symbols; instead of read C headers and parse them, genstub just
	  emits cpp directives to the C source and let cpp handle them.
	  Stub files are modified accordingly.
	* src/gauche.h src/bignum.c, src/string.c, src/regexp.c, src/char.c :
	  Introduced SCM_DEBUG_HELPER cpp symbol to exclude debug-only
	  routines from the release code.

2002-04-17  Shiro Kawai  <shiro@acm.org>

	* src/class.c (scheme_slot_index) : damn it!  this routine has
	  returned bogus index that causes illegal memory access.  It's
	  a wonder that it hasn't revealed until now.  This was the reason
	  of the bug described in the entry below.
	* src/string.c, src/gauche.h: a snapshot of improving dynamic string
	  handling by avoiding realloc.   NB: this version contains a nasty
	  memory bug.

2002-04-16  Shiro Kawai  <shiro@acm.org>

	* src/main.c : adds "." and "../lib" to the *load-path* if gosh is
	  invoked from the source tree, for the convenience of testing.
	  Checks are performed to see if we're really in the source tree.
	* Makefile.in, ext/xlink, ext/*/Makefile.in: added make target to
	  create some symlinks for the convenience of development.

2002-04-15  Shiro Kawai  <shiro@acm.org>

	* release 0.5.3
	* various files : fixes to LP64 architecture.
	* Makefile.in, lib/Makefile.in : run slib initialization routine after
	  installation to generate slibcat.
	* Gauche.spec : added post script to generate slibcat.

2002-04-14  Shiro Kawai  <shiro@acm.org>

	* src/compile.c (lookup_env): fixed the variable reference algorithm
	  so that it can handle the case when a frame contains more than
	  one variable with the same name, in the case like
	  '(let* ((x 1) (x 2)) ...)'.  A bug pointed out by Paul Stodghill.
	* src/bignum.c : further optimization.
	
2002-04-13  Shiro Kawai  <shiro@acm.org>

	* src/number.c (double_print): switched back to the MP version
	  of Burger&Dybvig, for it was difficult to get the consistent
	  result by flonum version on multiple platforms.
	* src/bignum.c : fixed a bug in bignum_gdiv that missed a carry
	  in some occasion.

2002-04-12  Shiro Kawai  <shiro@acm.org>
	
	* configure.in, src/gauche/config.h.in : added a test for alloca().
	* src/bignum.c, src/number.c : adding denormalized bignum APIs.
	* src/number.c : changed Scm_MinMax interface.  canonicalize
	  complex return (imag==0.0 coerced to flonum).
	* src/extlib.stub : added min&max.

2002-04-10  Shiro Kawai  <shiro@acm.org>

	* src/number.c : number reader/writer passes r4rstest.

2002-04-08  Shiro Kawai  <shiro@acm.org>

	* src/write.c: fixed a bug that produced bogus output for
	  (write* '#()).   Thanks for HAbe to point this out.

2002-04-07  Shiro Kawai  <shiro@acm.org>

	* src/number.c : modified Burger&Dybvig algorithm to use floating-
	  point arithmetic instead of multiple-precision integer arithmetic.
	  The routine doesn't work for very small numbers yet.

2002-04-05  Shiro Kawai  <shiro@acm.org>

	* src/number.c : naively implemented Burger&Dybvig printing algorithm.
	  This is just an experiment to see how it works.

2002-04-04  Shiro Kawai  <shiro@acm.org>

	* src/number.c : fixed read_real to avoid underflow of reading
	  very small numbers.  still needs to work on denormalized flonum
	  case.
	* src/number.c, src/bignum.c, src/extlib.stub : added floating
	  number decode routine.

2002-04-03  Shiro Kawai  <shiro@acm.org>

	* src/number.c : improved integer reader to do bignum calculation
	  with chunk of digits, instead of every digits.
	* src/number.c, src/stdlib.stub : integrated Scm_Min and Scm_Max.

2002-04-02  Shiro Kawai  <shiro@acm.org>

	* src/number.c, src/read.c : rewrote number reader to handle
	  properly exactness, rational representation, and "#e#x" etc.
	* lib/gauche/numerical.scm, src/gauche-init.scm, src/stlib.stub :
	  changed 'make-polar' to a subr from a Scheme-defined function,
          since the result of make-polar didn't exactly match the
	  result of polar representation (<real>@<real>) on x86, because of
	  the Intel's 80-bit floating-point arithmetic, and which was
	  confusing.

2002-04-01  Shiro Kawai  <shiro@acm.org>

	* configure.in : search slib from /usr/share/slib first, for
	  it appears to be the default location of slib installation.
	* lib/slib.scm.in : incorporated the changes of the slib2d3's
	  Template.scm

2002-03-30  Shiro Kawai  <shiro@acm.org>

	* src/gauche-init.scm, lib/slib.scm.in : fixed a problem with
	  slib2d3 which was caused because cond-expand in slib's
	  require.scm expanded to a form that referred slib's require
	  instead of gauche's.

2002-03-27  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/vm.h : adding more thread support.
	* src/mutex.c : added.
	* configure.in, Makefile.in, gc/Makefile.in : compile GC with
	  pthred support when requested.   It was the cause of hang
	  problem found in 3/13.

2002-03-13  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/vm.h : added initial code for make-thread and
	  thread-start!.  There's a problem that main thread hangs at
	  sigsuspend in exit().

2002-03-12  Shiro Kawai  <shiro@acm.org>

	* configure.in, src/gauche/config.h.in : added --with-pthread.
	* src/vm.c, src/vm.h : adding pthread support.

2002-03-10  Shiro Kawai  <shiro@acm.org>

	* aclocal.m4 (AC_GAUCHE_INIT_EXT) : substitute GAUCHE_VERSION as well.
	* src/gauche-init.scm : added print.
	* Gauche.spec : ensure the build install destination is clean.

2002-03-09  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-19.scm, lib/srfi-19/* : added srfi-19 support (not
	  finished yet).
	* lib/gauche/common-macros.scm : added update! (experimentally).

2002-03-08  Shiro Kawai  <shiro@acm.org>

	* src/number.c (read_integer): allow ratinal number syntax (when read,
	  it is converted to real number).  Still it doesn't accept
	  complex number with rational coefficients.

2002-03-07  Shiro Kawai  <shiro@acm.org>

	* release 0.5.2
	* Gauche.spec : added.
	* src/Makefile.in, src/gauche-config.in : changed the installaion
	  directory of header files from share to lib --- header files contain
	  configured information that may be architecture specific.
	* aclocal.m4: further workaround for cygwin.
	  "rm -f foo; echo ... > foo" still sometimes failed, so removed rm.

2002-03-06  Shiro Kawai  <shiro@acm.org>

	* ext/auxsyslib.stub : removed sys-setpgrp, for the function 
	  prototype differs among platforms.  it is redundant anyways.
	* Makefile.in, doc/Makefile.in : makes realclean really clean.
	* doc/gosh.1.in, doc/gauche-config.1.in : added manpages.

2002-03-05  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub, src/gauche/predef-syms.h : changed macro-expand
	  -> macroexpand etc.
	* ext/auxsys: added sys-gettimeofday.  moved sys-ctermid here.
	* lib/gauche/time.scm : added <time> class, commonly used by
	  SRFI-18 and SRFI-19.

2002-03-03  Shiro Kawai  <shiro@acm.org>

	* ext/auxsys: added wrappters for functions that are not POSIx.
	* src/gauche-init.scm : added autoload for auxsys functions
	* src/gauche.h, src/gauche/pthread.h, src/gauche/uthread.h :
	  start adding thread-related structures.

2002-03-01  Shiro Kawai  <shiro@acm.org>

	* lib/text/html-lite.scm (make-html-element): fixed a bug that escapes
	  backslash in parameters illegaly.

2002-02-25  Shiro Kawai  <shiro@acm.org>

	* src/compile.c (compile_define): added define-in-module syntax.
	* src/gauche-init.scm, lib/gauche/with.scm, lib/gauche/numerical.scm :
	  adapted to define-in-module.
	* lib/gauche/with.scm : fixed semantics of closing file ports.
	* lib/port/stk.scm: added posix-* compatibility functions.

2002-02-22  Shiro Kawai  <shiro@acm.org>

	* src/compile.c : it turned out select-module has to be visible
	  from the scheme module for autoload to work.
	* lib/Makefile.in : fixed installation of file/filter.scm and
	  gauche/interpolate.scm.

2002-02-21  Shiro Kawai  <shiro@acm.org>

	* lib/file/filter.scm : added.
	* src/syslib.stub : fixed sys-mkstemp that wasn't working.

2002-02-20  Shiro Kawai  <shiro@acm.org>

	* ext/auxsys/*, src/syslib.stub : added auxiliary system function
	  extension.  sys-putenv, sys-uname and sys-times are moved from
	  gosh body to auxsys.so.

2002-02-18  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/interpolate.scm : fixed the interpolation syntax.
	* src/ldwrap.sh.in : fix for cygwin (remove -lsomething from command
	  line for dlltool).
	* src/macro.c, src/extlib.stub : added procedure version of
	  macro-expand and macro-expand-1.

2002-02-17  Shiro Kawai  <shiro@acm.org>

	* src/macro.c (compile_macro_expand) : bug fix for expanding
	  traditional macros.
	* src/read.c, lib/gauche/interpolate.scm  : added special syntax
	  #`"..." for string interpolation.
	* src/extlib.stub : added read-list.

2002-02-16  Shiro Kawai  <shiro@acm.org>

	* gc/dyn_load.c, src/core.c : fix required to link dyn_load.o
	  on MacOS X.
	* src/syslib.stub : use stat(2) for sys-access on MacOS X as well.

2002-02-15  Shiro Kawai  <shiro@acm.org>

	* aclocal.m4 : the rule to generate *_head.c and *_tail.c in
	  configure sometimes fails on cygwin, where the timing of
	  "rm" and following "echo" seems to create a race condition.
	  Fixed to guarantee "rm" is executed before "echo".

2002-02-14  Shiro Kawai  <shiro@acm.org>

	* release 0.5.1
	
2002-02-13  Shiro Kawai  <shiro@acm.org>

	* src/gauche-init.scm : fixed the definition of use to accept
	  identifier; needed to make cond-expand work.
	* lib/srfi-0.scm : added SRFI-22 to the feature set, and fixed
	  a bug that prevents cond-expand from working.
	* src/main.c : INCOMPATIBLE CHANGE - fix the convention to pass
	  the list of arguments to 'main' according to the final SRFI-22.
	  Now the argument list includes the script name itself.  For
	  backward compatibility, -fcompat-0.5 command-line option is
	  added.
	* src/genstub : adapted to the change of main.c
	* lib/gauche/test.scm (test-end) : reports descrepancies in the
	  order of tests (instead of reverse order).
	* lib/gauche/version.scm : added.

2002-02-12  Shiro Kawai  <shiro@acm.org>

	* ext/net/test.scm : allow sys-stat->file-type to return 'fifo
	  instead of 'socket, for some OSes doesn't distinguish them.
	* src/read.c : change debug-print shorthand syntax from #? to #?=
	* src/vm.c (arrange_application), src/gauche/vminsn.h : fix a bug
	  that confused Scm_VMApply when VM instruction is given to arguments.
	  (patch from Abe Hiroshi).
	* src/load.c : patch to compile on FreeBSD 2.x (from Abe Hiroshi)
	* src/gauche/portmacros.h (SCM__ISTR_GETB): fixed a bug that returned
	  EOF  on some platforms when read-byte reads char > 0x80.
	  (patch from Abe Hiroshi).
	* gc/dyn_load.c : the previous fix isn't enough for the platforms
	  such as FreeBSD 2.x.

2002-02-11  Shiro Kawai  <shiro@acm.org>

	* src/number.c (Scm_InexactToExact): fixed the case when an inexact
	  number is passed.
	* src/main.c (main): if the script file name is given in relative
	  path, search it from the current directory even "." is not in the
	  load path.
	* configure.in : recovered GOSH_USE_SHLIB substitution that was
	  accidentally dropped.
	* lib/rfc/cookie.scm : avoid using %T in strftime, for it's not POSIX.

2002-02-10  Shiro Kawai  <shiro@acm.org>

	* aclocal.m4 (AC_GAUCHE_EXT_FIXUP): allow optional second arg.
	* Makefile.in, src/gauche-config.in : install aclocal.m4.
	* src/read.c : fixed a bug in the character reader so that it
	  recognizes character name in case-insensitive way.
	* src/syslib.stub : for freebsd, sys-access uses stat(2) instead
	  of somewhat unreliable access(2).
	* src/gauche-config.h : autoloads srfi-0 (cond-expand).
	* ext/net/configure.in, ext/net/netconfig.h.in, ext/net/net.h :
	  includes rpc/types.h if the system has it.  (Suggested by
	  Abe Hiroshi).
	* src/number.c, src/bignum.c, ext/uvector/uvectorP.h : applied
	  patch from Abe Hiroshi to make it work on HP_UX.

2002-02-09  Shiro Kawai  <shiro@acm.org>

	* ext/*/configure.in : modified to use aclocal.m4
	* aclocal.m4, gc/dyn_load.c, src/gauche/extend.c: for the platforms
	  that GC doesn't support dlopened object, added the way of explicit
	  registration of the data section. (Thanks for this idea from
	  Abe Hiroshi).

2002-02-08  Shiro Kawai  <shiro@acm.org>

	* src/genstub, src/class.c : fixed to compile extensions under cygwin.
	* aclocal.m4 : added

2002-02-07  Shiro Kawai  <shiro@acm.org>

	* various files: snapshot of further modification for cygwin.
	  the core part is working.   works on other platforms.
	  need more work for extensions.

2002-02-06  Shiro Kawai  <shiro@acm.org>

	* various files: snapshot of further modification for cygwin.
	  not finished yet.  this check-in doesn't work for other
	  platforms, since gosh fails to load libgauche.so.

2002-02-02  Shiro Kawai  <shiro@acm.org>

	* various files: added support for cygwin (not finished yet).
	  gosh is now built using libgauche.so, instead of statically
	  linking libgauche.a.  The link is done in a shell script
	  src/ldwrap.sh.

2002-01-30  Shiro Kawai  <shiro@acm.org>

	* release 0.5

2002-01-29  Shiro Kawai  <shiro@acm.org>

	* src/core.c : unwind dynamic handlers upon exit().  this is a
	  temporary solution and has to be rewritten for MT support.

2002-01-28  Shiro Kawai  <shiro@acm.org>

	* src/read.c : added support for back-reference reader syntax
	  (#digit= and #digit#).  It doesn't work well yet for recursive
          structures.

2002-01-24  Shiro Kawai  <shiro@acm.org>

	* configure.in, gc/include/private/gc_priv.h : applied patch from
	  ABE Hiroshi to fix configuration under FreeBSD 2.x and HP-UX.
	* src/signal.c, src/syslib.stub : fix signal masking (temporary).
	  added sys-signal-name.

2002-01-23  Shiro Kawai  <shiro@acm.org>

	* configure.in, src/gauche-config.in : experimentally added
	  --reconfigure option to gauche-config script.
	* src/syslib.stub : added sys-alarm
	* src/*.c : added checks for interrupted system calls.

2002-01-22  Shiro Kawai  <shiro@acm.org>

	* src/signal.c : added default signal handler, and make signal queue
	  calling routine work
	* lib/gauche/signal.scm : added with-signal-handlers.

2002-01-21  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/regexp.c, src/gauche/vm.h : use sig{set|long}jmp
	  instead of {set|long}jmp.
	* src/signal.c : added master signal handling mechanism.

2002-01-20  Shiro Kawai  <shiro@acm.org>

	* src/stdlib.stub : fix a bug in the code generator of
	  immediate_integer_inliner (thanks for Nobuo YAMASHITA to
	  point this out).

2002-01-15  Shiro Kawai  <shiro@acm.org>

	* src/signal.c : added sys-sigset class.

2002-01-14  Shiro Kawai  <shiro@acm.org>

	* src/load.c : make Scm_Load() return a boolean value as
	  Scheme's load.

2002-01-13  Shiro Kawai  <shiro@acm.org>

	* src/load.c, src/extlib.stub : added paths keyword arg to load.
	  fix load_next feature.
	* lib/gauche/with.scm : fixed a bug in call-with-*-file and
	  with-*-file when used with :if-does-not-exist #f.

2002-01-11  Shiro Kawai  <shiro@acm.org>

	* src/number.c (Scm_Sign): fixed to conform its comment (thanks for
	  Iwao KIMURA).
	* src/gauche-config.in : -l option includes -lgauche (thanks for
	  Iwao KIMURA).
	* ext/charconv/charconv.scm : experimentally overloaded open-*-file
	  functions to accept :encoding keyword argument.
	* src/write.c, src/symbol.c : support writer in case-sensitive mode
	* src/Makefile.in, test/symcase.scm : added tests for
	  case (in)sensitive mode

2002-01-10  Shiro Kawai  <shiro@acm.org>

	* src/read.c : implemented case-sensitive reader.
	* src/main.c : added -fcase-fold flag to turn on the case-insensitive
	  (R5RS-comformant) reader.  The default is case-sensitive.

2002-01-09  Shiro Kawai  <shiro@acm.org>

	* src/Makefile.in : fixed install action on creating
	  {BIN|LIB}_INSTALL_DIR when they don't exist (Thanks for Mr. Ogawa
	  to point this out).
	   

2002-01-07  Shiro Kawai  <shiro@acm.org>

	* release 0.4.12
	* ext/charconv/* : made the name of iconv.h header file configurable
	  as well as the library name through --with-iconv-lib
	  configuration option.
	  charconv.h is now generated from charconv.h.in.
	* src/main.c : display internal encoding name for gosh -V
	* INSTALL.esc : added notes on FreeBSD iconv problem.

2002-01-06  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/repl.c : fixed the bug of VM stack rewinding problem.
	* src/extlib.stub : added port-type
	* lib/srfi-0.scm : added module stuff

2002-01-05  Shiro Kawai  <shiro@acm.org>

	* src/macro.c : fixed the traditional macro transformer spec.
	  In the form like (define-macro foo (lambda args ...)), args was
	  bound to the entire form (including foo) but it was
	  inconsisntent with tranditional Scheme implementation and also
	  with (define-macro (foo . args) ...) form.   Now args receives
	  the arguments of foo, as expected.

2002-01-04  Shiro Kawai  <shiro@acm.org>

	* src/read.c : made Scm_ReadError public.  improve the error message
	  of "EOF inside list" error.
	* lib/gauche/vm/debugger.scm : avoid error on the form that doesn't
	  have source-info.

2002-01-03  Shiro Kawai  <shiro@acm.org>

	* src/signal.c : added.

2002-01-02  Shiro Kawai  <shiro@acm.org>

	* src/gauche/class.h, src/class.c, src/error.c, src/system.c :
	  defined SCM_ALLOCATE macro for cliche in the *_allocate methods.
	* ext/charconv/configure.in : fixed a bug that didn't find iconv.h
	  even --with-iconv is given.
	* test/TESTS, src/Makefile.in : list tests in a separate file.

2002-01-01  Shiro Kawai  <shiro@acm.org>

	* src/error.c : added some error classes.

2001-12-22  Shiro Kawai  <shiro@acm.org>

	* src/compile.c, src/macro.c : intern syntactic bindings to the
	  appropriate modules (either null or gauche).
	* src/vm.c : added code to honor the second argument of eval
	* src/extlib.stub : fix a bug that null-environment didn't take
	  version argument.
	* src/gauche/char_sjis.h : fixed broken Shift-JIS support.
	* src/gauche/char_utf_8.h : fixed a bug.
	* src/string.c : fixed count_length that works incorrectly on
	  the encodings other than EUC-JP.
	* ext/charconv : fixed bugs that appears in the encodings
	  other than EUC-JP.

2001-12-21  Shiro Kawai  <shiro@acm.org>

	* src/repl.c : quick bug fix for the problem of VM stack rewinding
	  on error.
	* INSTALL.esc : added note for ISO8859 encoding users

2001-12-20  Shiro Kawai  <shiro@acm.org>

	* release 0.4.11
	* src/vm.c : make the default exception handler not capture
	  non-fatal exception when user-defined exception handler is
	  active.  Tests are added accordingly.
	* gc/dyn_load.c, gc/include/private/gcconfig.h : enabled
	  DYNAMIC_LOADING for FREEBSD.  I'm not sure it is the right
	  thing and work on all cases, though.

2001-12-19  Shiro Kawai  <shiro@acm.org>

	* src/vm.c : dynamic-wind properly returns multiple values.
	  Fixed bad continuation frame handling in user_eval_inner and
	  Scm_VMDefaultErrorHandler.  Fixed bad order of thunk to be
	  called in the nested dynamic wind.

2001-12-18  Shiro Kawai  <shiro@acm.org>

	* src/vm.c : reorganized exception handling scheme.  merged SRFI-18
	  compatible with-exception-handler.

2001-12-15  Shiro Kawai  <shiro@acm.org>

	* src/read.c : added convenience function Scm_ReadFromString and
	  Scm_ReadFromCString.
	* src/main.c : added command line options -l (load) and -e (eval).

2001-12-14  Shiro Kawai  <shiro@acm.org>

	* src/vm.c : improved default stack trace display to include source
	  file info.
	* src/load.c, src/gauche-init.scm, src/extlib.stub : made autoloading
	  modules work.
	* lib/gauche/vm/debugger.scm : added further features.

2001-12-13  Shiro Kawai  <shiro@acm.org>

	* src/write.c : added maxcol parameter to ~A and ~S format directive
	  to limit the length of formatted string
	* src/Makefile.in : ensure the binary installation directory
	  (pointed out by Bengt Kleberg).

2001-12-09  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub: added GC interface, gc and gc-stat (experimentally)
	* src/vm.c, src/load.c : made loading program info (*load-history*
	  etc.) VM-local.

2001-12-08  Shiro Kawai  <shiro@acm.org>

	* src/read.c, src/gauche.h : added the read context to the internal
	  reader, although it doesn't do anything now.

2001-12-07  Shiro Kawai  <shiro@acm.org>

	* src/main.c : removed -fin-place option, for its usage is very
	  limited.

2001-12-06  Shiro Kawai  <shiro@acm.org>

	* src/macro.c : enable autoloading macros.  define-macro can now
	  take either transformer or autoload object.  fixed define-macro
	  to check valid transformer.
	* src/gauche-init.scm : made common-macros.scm be autoloaded.
	* src/load.c, src/main.c, src/gauche/vm.h : added LOAD_VERBOSE flag.
	* src/main.c, various Makefile.in's : INCOMPATIBLE CHANGE: excluded
	  the current directory from the load-path by default.  changed
	  test target of Makefiles to include the current dir explicitly.

2001-12-04  Shiro Kawai  <shiro@acm.org>

	* src/macro.c : fixed a bug that didn't expand a template (x ... . y)
	  when x ... is empty.

2001-12-02  Shiro Kawai  <shiro@acm.org>

	* release 0.4.10
	
2001-12-01  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/common-macros.scm (dotimes): fixed a bug that sneaked
	  in by the last change.
	* src/class.c, lib/gauche/object.scm : cleaned up the SlotAccessor
	  initialization code.  Added initializable flag to SlotAccessor
	  to indicate whether :init-value/:init-keyword should be honored
	  or not; this allows procedural slot to be initialized.
	* src/gauche/sequence.scm : finalizing API of sequence framework.
	* src/module.c (Scm_ImportModules): fixed the order of imported
	  modules.  The last imported module should be searched first.
	* ext/uvector/srfi-4.scm : added collection and sequence API.

2001-11-30  Shiro Kawai  <shiro@acm.org>

	* src/class.c : Correctly initialize implicit metaclass hierarchy
	  when the builtin class has hierarchy.
	* lib/gauche/common-macros.scm : added while and until experimentally
	  to see how usable they are.
	* lib/gauche/collection.scm : finalizing API of collection framework.

2001-11-28  Shiro Kawai  <shiro@acm.org>

	* src/list.c (Scm_ListRef) : fixed a bug that caused SEGV.
	* src/class.c : experimentally added a feature that inserts
	  implicit metaclass for builtin classes, which allows to define
	  ``class-method''.
	* src/moplib.stub : fixed a bug in is-a? that rejects a descendant
	  of <class> in the second argument.

2001-11-23  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-1.scm : fixed a bug in alist-delete!
	
2001-11-22  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/object.scm : added a customizable method
	  compute-slot-accessor
	* lib/gauche/validator.scm : added
	
2001-11-21  Shiro Kawai  <shiro@acm.org>

	* lib/www/cgi.scm : fixed a bug in the default error method of
	  cgi-main that used old interface of text.html-lite.
	
2001-11-20  Shiro Kawai  <shiro@acm.org>

	* lib/port/jfilter.scm : fixed a bug in cv-file.
	* lib/gauche/object.scm : changed the protocol of compute-get-n-set
	  so that it returns a _list_ of getter and setter procedure (as
	  opposed to a cons).  The new behavior is compatible to STklos.

2001-11-19  Shiro Kawai  <shiro@acm.org>

	* src/write.c : write 'a instead of (quote a), etc.
	* lib/text/tree.scm : handles dotted list as well.
	* ext/charconv.c : fixed a bug that didn't allow to open an empty
	  port for automatic conversion.
	
2001-11-18  Shiro Kawai  <shiro@acm.org>

	* src/hash.c : fixed a bug in MakeHashTable that sets incorrect type
	  for eqv? hash.  removed smallint_hash stuff, for eqv?-hash covers it.
	* src/extlib.stub: added hash-table-type

2001-11-16  Shiro Kawai  <shiro@acm.org>

	* ext/dbm/bsddb.[ch] : added (not quite finished).

2001-11-15  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/logical.scm : made bit-field and copy-bit-field
	  work even if start >= end.
	* src/extlib.stub : added hash-table-delete!
	* src/main.c : fixed typo (thanks for Sven Hartrumpf).

2001-11-14  Shiro Kawai  <shiro@acm.org>

	* release 0.4.9
	* src/syslib.stub (sys-symlink) : typo fix
	* lib/gauche/logical.scm, src/gauche-init.scm : added a bunch of
	  bitwise operations.

2001-11-13  Shiro Kawai  <shiro@acm.org>

	* configure.in : fixed the support of --with-local.  added support
	  for Darwin1.3 and later.
	* lib/gauche/object.scm : allow '(setter foo)' style method definition
	* src/extlib.stub, src/gauche-init.scm : moved hash table mappers
	  to the Scheme code.
	
2001-11-12  Shiro Kawai  <shiro@scm.org>

	* ext/dbm/configure.in : more robust support on the systems that
	  has both gdbm and ndbm.
	
2001-11-11  Shiro Kawai  <shiro@scm.org>

	* lib/www/cgi.scm : fixed more bugs.
	* lib/text/html-lite.stm : changed tag procedure names from
	  html-<element> to html:<element>
	* src/port.c : read-line recognizes various line terminators
	  (\r, \n, and \r\n)

2001-11-10  Shiro Kawai  <shiro@acm.org>

	* ext/dbm/dbm.scm : introduced <dbm-meta>, metaclass for all <dbm>
	  instances.
	* lib/www/cgi.scm : fixed a bug in cgi-parse-parameters that returned
	  a redundant result for a null query string.  added cgi-main.

2001-11-09  Shiro Kawai  <shiro@acm.org>

	* src/regexp.c : fixed a bug that estimated the bytecode size
	  incorrectly for the patterns like #/(x|y)+/.
	* lib/www/cgi.scm : added cgi-header
	* lib/text/html-lite.scm : changed passing convention of the
	  parameters.   added html-doctype.

2001-11-08  Shiro Kawai  <shiro@acm.org>

	* lib/text/html-lite.scm : experimentally added.
	* configure.in : added --with-local flag to allow to use site-local
	  libraries throught the compilation process.
	* src/extlib.stub : added hash-table-push! and hash-table-pop!

2001-11-07  Shiro Kawai  <shiro@acm.org>

	* lib/slib.scm.in : fixed a bug that made building a new catalog
	  fail.  Thanks to Hiroshi INAMURA for the patch.
	* lib/gauche/singleton.scm : experimentally added.

2001-11-06  Shiro Kawai  <shiro@acm.org>

	* various files : fixed a bug that didn't instantiate metaobjects
	  correctly when defined in Scheme sublassing a C-defined class.
	  This fix changed the interface of Scm_InitBuiltinClass, and
	  several files were updated accordingly.

2001-11-05  Shiro Kawai  <shiro@acm.org>

	* ext/fcntl : added some test methods.

2001-11-03  Shiro Kawai  <shiro@acm.org>

	* src/load.c : guaranteed to return #t on successful load
	* src/char.c, src/read.c, src/regexp.c : fixed charset reader.
	  #[] is read an empty charset.   In regexp, however, the closing
	  bracket at the beginning of charset is interpreted as the character
	  itself, for compatibility to the POSIX regexp.  That is,
	  #/[]]/ is valid.

2001-11-02  Shiro Kawai  <shiro@acm.org>

	* lib/util/queue.scm : added dequeue-all!
	* src/io.c, src/port.c, src/gauche-init.scm, lib/gauche/with.scm :
	  defined call-with-*-file and with-*-file procedures in Scheme
	  instead of C.  io.c is removed.

2001-11-01  Shiro Kawai  <shiro@acm.org>

	* lib/util/queue.scm : added

2001-10-31  Shiro Kawai  <shiro@acm.org>

	* release 0.4.8
	* doc/gauche-ref.texi : wrapping up the document.

2001-10-29  Shiro Kawai  <shiro@acm.org>

	* various files: adapted to LP64 architecture.

2001-10-28  Shiro Kawai  <shiro@acm.org>

	* configure.in's and Makefile.in's : made it work on more
	  configurations.
	* src/string.c, lib/srfi-13/* : fixed the buf of string-index with
	  start/end args.  added make-string-pointer start/end optional
	  args, and optimized srfi-13 functions to it.
	* src/string.c (string_substitute) : fixed an evil bug that
	  overwritten the out-of-range memory area.
	* src/load.c, src/vm.c : fixed autoload bug that doesn't load
	  the file when autoload symbol is referenced as a variable.
	* ext/dbm/* : made it pass through the test.

2001-10-27  Shiro Kawai  <shiro@acm.org>

	* gc : upgraded Boehm GC package from 5.3 to 6.0.
	* ext/dbm : made the basic functions work.

2001-10-26  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/with.scm : added read-from-string and write-to-string
	  to be autoloaded.

2001-10-23  Shiro Kawai  <shiro@acm.org>

	* lib/text/tree.scm : added.  fast concatenation and rendering of text.
	* lib/gauche/object.scm : packaged in gauche.object, hiding auxiliary
	  procedures in it.  This change prevents genstub from running with
	  gosh 0.4.7; compile.c has to be rev 1.66.
	* src/compile.c : fixed with-module to work when generated by macros.
	* src/class.c, src/gauche/class.h, src/moplib.stub : overhauled
	  slot accessing protocol.  Slot accessor object becomes more robust,
	  and can be utilized in metaprogram easily.  Several internal
	  functions are exposed for metaprograming.

2001-10-22  Shiro Kawai  <shiro@acm.org>

	* test/algorithm.scm : testing algorithm.* modules.
	* src/gauche-init.scm : added use-version macro.  removed compatibility
	  stuff for r_ok etc.
	
2001-10-21  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub : added clamp
	* lib/gauche/object.scm : made coercion functions work for characters.
	
2001-10-20  Shiro Kawai  <shiro@acm.org>

	* src/genstub : prevent generated code from calling SCM_MAKE_KEYWORD
	  at the subr application time; keywords are now created at setup time.
	  Also added initcode form.
	* ext/dbm : made it compile.
	
2001-10-19  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/object.scm : added generic coercion methods,
	  x->string, x->integer and x->number.
	* ext/dbm : added.  not working yet.

2001-10-18  Shiro Kawai  <shiro@acm.org>

	* lib/algorithm/isomorph.scm : added
	* lib/algorithm/toposort.scm : added
	
2001-10-17  Shiro Kawai  <shiro@acm.org>

	* lib/w3c/cgi.scm : renamed to lib/www/cgi.scm

2001-10-16  Shiro Kawai  <shiro@acm.org>

	* lib/port/stk.scm : added.
	* lib/rfc/quoted-printable.scm : added quoted-printable-encode
	* DIST : fixed `doc' target.

2001-10-15  Shiro Kawai  <shiro@acm.org>

	* src/hash.c : fixed equal?-hash.
	* INSTALL.esc : added description about --with-rpath option.

2001-10-14  Shiro Kawai  <shiro@acm.org>

	* release 0.4.7
	* lib/gauche/interactive.scm : disable debugger by default.
	* doc/* : cleaned up.  Stopped including HTML version in dist.

2001-10-12  Shiro Kawai  <shiro@acm.org>

	* doc/extract : added a feature to substitute node names and
	  reference with japanese one.
	* src/regexp.c (re_exec_rec): fixed a bug of interpretation of NSET1
	  in multi-byte case.
	* src/hash.c, src/extlib.stub : allow Scheme code to specify
	  hash type among predefined types.

2001-10-10  Shiro Kawai  <shiro@acm.org>

	* src/number.c (Scm_Expt): fixed a bug that (expt 0.0 1) returned
	  1.0 (Thanks to TAGA Yoshitaka).
	* src/class.c : fixed a bug in method_more_specific comparing
	  methods with optional arg (Thanks to TAGA Yoshitaka).
	* src/vm.c, lib/gauche/vm/debugger.c : fixed a problem that the
	  debugger printed only the innermost environment.
	* lib/gauche/collection.scm : added experimentally.
	  
2001-10-09  Shiro Kawai  <shiro@acm.org>

	* src/number.c : fixed a number class hierarchy bug.
	* ext/uvlib.stub.sh : added setter definition to the *-ref.

2001-10-08  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/common-macros.scm : added inc! and dec!.

2001-10-07  Shiro Kawai  <shiro@acm.org>

	* doc/gauche-ref.texi : more translations.

2001-10-05  Shiro Kawai  <shiro@acm.org>

	* lib/text/parse.scm : extended functions to be more orthogonal,
	  i.e. those which take char-list also take predicate.
	* src/compile.c, src/genstub : made auto-generated inliner code
	  a bit more compact.
	
2001-10-04  Shiro Kawai  <shiro@acm.org>

	* src/syslib.stub : added sys-mkstemp.
	* lib/text/parse.scm : implements the input stream parsing
	  primitives compatible with Oleg Kiselyov.
	* lib/gauche/port.scm : added port-position-prefix.
	* doc/gauche-ref.texi : making bilingual.

2001-10-03  Shiro Kawai  <shiro@acm.org>

	* src/list.c, etc. : merged safe version of accessors (*-ref+)
	  to the normal version (*-ref).  Now normal version takes an
	  optinal argument.
	* src/extlib.stub : added standard-input-port, standard-output-port
	  and standard-error-port.
	* lib/gauche/port.scm : added.  implements several useful
	  utilities for port input to be autoloaded.   some functions are
	  moved from with.scm.

2001-10-02  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/common-macros.scm : added several useful macros,
	  such as push! and dotimes.  They are ugly, but sometimes its
	  so convenient that I couldn't regist adding them.  It also
	  has the convenient macro syntax-error.
	* src/list.c, src/vector.c, src/string.c, src/extlib.stub :
	  added safe version of accessors: list-ref+, vector-ref+ and
	  string-ref+.

2001-10-01  Shiro Kawai  <shiro@acm.org>

	* src/main.c : inhibit argument permutation of getopt, so that the
	  options after script file name can be passed to the users' script.

2001-09-30  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub : make logand, logior and logxor take more than
	  two args.

2001-09-29  Shiro Kawai  <shiro@acm.org>

	* release 0.4.6
	* src/compiler.c : changed to emit meaningful information for env.
	* lib/gauche/vm/debugger.scm : added minimal debugging commands.
	* src/genstub : added real? type assertion.
	
2001-09-28  Shiro Kawai  <shiro@acm.org>

	* ext/net : INCOMPATIBLE CHANGE: made system constants upper case
	  (e.g. |AF_INET|).

2001-09-27  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/extlib.stub, src/gauche/vm.h : added Scm_VMGetStack
	  and its Scheme interface.  added a hook function in VM for
	  debugger.
	* lib/gauche/vm/debugger.scm: added

2001-09-26  Shiro Kawai  <shiro@acm.org>

	* src/syslib.stub, src/gauche-init.scm : INCOMPATIBLE CHANGE:
	  use uppercase for all system symbols, such as |R_OK| (for 
	  sys-access) or |SIGINT|.
	* src/vm.c : fixed continuation stack trace in the default error
	  handler.

2001-09-25  Shiro Kawai  <shiro@acm.org>

	* src/gauche-init.scm : added file-exists?, file-is-directory? and
	  file-is-regular?.
	* lib/gauche/vm/disasm.scm : fixed TAILBIND

2001-09-24  Shiro Kawai  <shiro@acm.org>

	* src/vm.c : added one word to the continuation frame for debug
	  info.  This impacts performance (<2% in rudimental tests).
	* configure.in : added --with-rpath experimentally.  
	* configure.in, src/gauche/config.h.in, src/main.c : applied a fix
	  from Hiroshi INAMURA for cygwin.   Added -i (force interactive)
	  option to main.c.

2001-09-23  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/cookie.scm : added construct-cookie-string
	* lib/gauche/regexp.scm : allow user-specified  procedure to be
	  called in regexp-replace[-all].
	* lib/text/tr.scm, lib/text/cvs.scm, lib/w3c/cgi.scm : added
	  more features.
	* src/vm.c : fixed a bug that exception handler didn't get a
	  proper stack trace.
	* src/*.c : removed source-info stuff.
	* lib/gauche/vm/disasm.scm : adapted to new LET-family insns.

2001-09-22  Shiro Kawai  <shiro@acm.org>

	* lib/rfc/cookie.scm : added
	* src/string.c, src/extlib.stub : made string-scan in place of
	  the broken string-contains.
	* lib/gauche/regexp.scm : added regexp-replace and
	  regexp-replace-all.

2001-09-21  Shiro Kawai  <shiro@acm.org>

	* src/syslib.stub : added sys-putenv if the system has putenv().
	* lib/text/tr.scm : finished.

2001-09-20  Shiro Kawai  <shiro@acm.org>

	* lib/slib.scm (defmacro) : fixed a bug.
	* lib/w3c/cgi.scm : moved under w3c.
	* lib/text/csv.scm : added.
	* src/stdlib.stub (open-output-string) : allow #f to :if-exists

2001-09-19  Shiro Kawai  <shiro@acm.org>

	* src/write.c : fixed a bug in format (thanks to Abe Hiroshi)
	* src/bignum.c : fixed BignumLogXor
	* lib/text/tr.scm : made basic function work
	
2001-09-18  Shiro Kawai  <shiro@acm.org>

	* src/char.c, src/extlib.stub : added digit->integer and
	  integer->digit, for converting digit char <-> number.
	* lib/cgi.scm : added
	* lib/text/tr.scm : added

2001-09-17  Shiro Kawai  <shiro@acm.org>

	* release 0.4.5
	* src/regexp.c : fixed two bugs.  Jump offset overflowed in the large
	  regexp.  Top level `?' didn't compiled correctly.
	* lib/gauche/logger.scm : added.
	* src/system.c : made members of struct tm visible from Scheme.
	* src/bignum.c, src/char.c, src/port.c : applied a patch from
	  Abe Hiroshi to fix bugs on LP64 architecture.
	* src/gauche.h : fixed SCM_CHAR_MAX on LP64 architecture.
	
2001-09-16  Shiro Kawai  <shiro@acm.org>

	* src/stdlib.stub, src/port.c : added :if-exists, :if-does-not-exist
	  and :element-type flags to open-input-file and open-output-file to
	  control file operations precisely.
	* src/read.c : added SRFI-10 sharp-comma reader extension.
	
2001-09-15  Shiro Kawai  <shiro@acm.org>

	* src/vm.c : fixed a bug that caused assertion failed when an
	  unhandled error is thrown from non-interactive script.
	* src/class.c and other files: changed built-in class initialization
	  routines.
	* src/system.c : added Scm_GetPortFd to eliminate duplicated code
	  on several files.
	* ext/fcntl : added fcntl interface module.

2001-09-12  Shiro Kawai  <shiro@acm.org>

	* release 0.4.4
	* src/repl.c, src/vm.c : cleaned up default exception handling.
	* lib/gauche/process.scm : added process-output->string
	
2001-09-11  Shiro Kawai  <shiro@acm.org>

	* src/error.c : implemented exception class hierarchy.

2001-09-10  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/extlib.stub : added error handling mechanism,
	  with-error-handler.
	* test/error.scm : added to test error handler mechanism.

2001-09-07  Shiro Kawai  <shiro@acm.org>

	* src/vm.c, src/gauche/vm.h : fixed continuations thrown across
	  C stack boundary.
	* ext/termios : added cf[gs]et[io]speed.   use #ifdef's for non-POSIX
	  constants.

2001-09-06  Shiro Kawai  <shiro@acm.org>

	* ext/termios : added termios support.

2001-09-05  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/selector.scm : added
	* lib/gauche/interactive.scm : added describe
	* ext/net : added socket-fd
	* src/genstub : added a feature to read config.h and to generate
	  stubs conditionally depending on the defined preprocessor symbols.
	* src/syslib.stub : added sys-ctermid and sys-readlink.  Adapted
	  to the new genstub.
	* doc/gauche-ref.texi : added a chapter of describing mappings
	  from C library functions to Scheme functions.
	* src/vm.c (use_eval_inner) : cleaned up interaction between C
	  stack and Scheme stack.
	
2001-09-04  Shiro Kawai  <shiro@acm.org>

	* src/vm.c and other files: realized that stack-gc won't improve
	  performance unless I implement a special marking method in the
	  stack area.  Reverted stack handling to the previous way.

2001-09-01  Shiro Kawai  <shiro@acm.org>

	* src/vm.c and other files: implemented stack garbage collector.
	  however, somehow it slows down things significantly; need to
	  redesign.

2001-08-05  Shiro Kawai  <shiro@acm.org>

	* release 0.4.3
	* */configure.in : adapted to autoconf-2.52
	* lib/gauche/interactive.scm : added.  defines useful functions
	  for the interactive session.
	* src/main.c : loads gauche.interactive when in the interactive
	  mode.
	
2001-08-04  Shiro Kawai  <shiro@acm.org>

	* src/symbol.c : removed Scm_Apropos - it'll be implemented in Scheme.
	* src/extlib.stub : added hash-table-map

2001-08-03  Shiro Kawai  <shiro@acm.org>

	* src/vm.c : prevent a continuation from being thrown across C
	  stack boundary for now.  Supporting it requires lots of VM
	  modification.
	* src/read.c : arrow more flexible symbol syntax.
	
2001-07-24  Shiro Kawai  <shiro@acm.org>

	* src/compile.c (compile_do): fixed a bug that reported an error
	  on a valid do form (thanks to KIMURA Shigenobu).
	* src/read.c : allow numbers to begin with dot, e.g. ``.12''
	* ext/uvector/* : generate uvector.h under the subdirectory 'gauche',
	  so that other extension module can use #include "gauche/uvector.h".
	* test/primsyn.scm : added tricky case tests of "case" and "do".

2001-07-14  Shiro Kawai  <shiro@acm.org>

	* release 0.4.2

2001-07-13  Shiro Kawai  <shiro@acm.org>

	* various files: applied a patch for MacOS X provided from
	  KIMURA Shigenobu.

2001-07-10  Shiro Kawai  <shiro@acm.org>

	* src/compile.c (compile_case): fixed a bug that reported an error
	  on a valid case form (thanks to KIMURA Shigenobu).

2001-07-08  Shiro Kawai  <shiro@acm.org>

	* src/macro.c : fixed a bug that couldn't handle pattern variables
	  appear in the higher level than its defined level.
	* lib/srfi-9.scm : added SRFI-9, record types.
	* src/read.c (read_char): recognize #\xXXX type character name.
	* src/number.c (Scm_NumberToString): fixed a bug that didn't print
	  negative small integer correctly in radix 8 and 16.
	* src/write.c (Scm_Forat): extended format to take parameters and
	  flags for the format directives, and to handle format directive
	  ~d, ~b, ~o and ~x.
	* test/io.scm : added to test format.

2001-07-07  Shiro Kawai  <shiro@acm.org>

	* release 0.4.1
	* src/vm.c, src/compile.c, src/gauche/vm.h : refined and tested
	  stack overflow handling.
	* configure.in, src/gauche/config.h.in, src/gauche-config.in,
	  ext/net/net.h : added checks for sysint.h, and removed spaces
	  after -I and -L options, in order to make MacOS X happy
	  (thanks to Shigenobu KIMURA skimu @ mac.com for pointing
	  this out.)

2001-07-04  Shiro Kawai  <shiro@acm.org>

	* src/compile.c, src/vm.c : modified the compiler to add CHECK_STACK
	  instructions to appropriate places.

2001-07-02  Shiro Kawai  <shiro@acm.org>

	* ext/net/configure.in : added check for -lnsl on Solaris
	* ext/net/net.scm (make-server-socket): fixed bug about
	  :reuse-addr? keyword argument.

2001-07-01  Shiro Kawai  <shiro@acm.org>

	* src/load.c : added :export-symbols argument to dynamic-load.
	* lib/gauche/parseopt.scm : added yet another command-line option
	  parser.

2001-06-30  Shiro Kawai  <shiro@acm.org>

	* release 0.4
	* src/gauche/vm.h (SCM_VM_VALUES): fixed a bug in assertion.
	* doc/gauche-ref.texi : added description of "error" and some more.

2001-06-29  Shiro Kawai  <shiro@acm.org>

	* src/error.c and most *.scm : INCOMPATIBLE CHANGE: made "error"
	  procedure SRFI-23 compliant, i.e. the first argument is just
	  a string, and "format" is not called.   The former version which
	  uses format is renamed to "errorf".
	* ext/net/netlib.stub : INCOMPATIBLE CHANGE: sockaddr-family now
	  returns a symbol, rather than a keyword.
	* src/Makefile.in, src/gauche-config.in : changed install location
	  of site-specific DSOs; includes version number in the path.
	* src/main.c : use main's return value for exit code in script mode.
	* src/vm.c : remove reference to sysexits.h - it causes a duplicate
	  definition warning of EX_OK on IRIX, and we don't really need it.

2001-06-28  Shiro Kawai  <shiro@acm.org>

	* doc/gauche-ref.texi: added docs of sys-random and sys-srandom,
	  and some more.

2001-06-25  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/process.scm: changed call-with-io-process to
	  call-with-process-io
	* lib/gauche/with.scm : added call-with-string-io and
	  with-string-io
	* src/syslib.stub : added sys-random and sys-srandom.

2001-06-24  Shiro Kawai  <shiro@acm.org>

	* src/syslib.stub (sys-pipe): INCOMPATIBLE CHANGE: sys-pipe now
	  returns two values, instead of one value of a list of two ports.
	  Other files are fixed accordingly.
	* src/syslib.stub (sys-wait): INCOMPATIBLE CHANGE: sys-wait
	  and sys-waitpid now returns two values, pid and exit code,
	  instead of cons of them.
	  Other files are fixed accordingly.
	* src/vm.c, src/gauche/vminsn.h, src/stdlib.stub: added instructions
	  for values, char?, pair?, string?,... and make them inline.
	* ext/net/net.scm : fixed bugs.

2001-06-23  Shiro Kawai  <shiro@acm.org>

	* ext/net/configure.in : check existence of get*by*_r functions
	  before checking their synopsys.  Suggested by MINOURA Makoto.
	* release 0.3.15
	* doc/gauche-ref.texi : added description of process ports.

2001-06-22  Shiro Kawai  <shiro@acm.org>

	* ext/net/net.scm : cleaned up the API of make-client-socket and
	  make-server-socket.
	* ext/* : fixed installation location of extension modules.
	* lib/gauche/process.scm : added process ports.
	* src/main.c : fixed the calling scheme of ``main'' procedure,
	  according to the change of SRFI-22 draft.

2001-06-21  Shiro Kawai  <shiro@acm.org>

	* sys/class.c : changed API of Scm_InitBuiltinClass to allow
	  hardcoded slots.
	* ext/net/netdb.c : added netdb interface (hostent, protoent
	  and servent).

2001-06-20  Shiro Kawai  <shiro@acm.org>

	* src/Makefile.in : added system test
	* src/syslib.stub, src/system.c: various bug fixes

2001-06-19  Shiro Kawai  <shiro@acm.org>

	* src/syslib.stuc, src/system.c : added sys-select[!], the select(2)
	  interface.   added sys-mkdir, sys-umask and sys-chmod as well.
	* doc/gauche-ref.texi : enhanced description.
	* test/system.scm : added test for the system library.

2001-06-18  Shiro Kawai  <shiro@acm.org>

	* src/syslib.stub: added fdset operations

2001-06-17  Shiro Kawai  <shiro@acm.org>

	* src/proc.c, src/compile.c, src/vm.c, src/gauche/vminsn.c :
	  support generalized setter natively.
	* lib/srfi-17.scm : removed.
	* src/genstub : added 'setter' directive to define generalized
	  setter in C code.

2001-06-16  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h, src/genstub : changed to use macros rather than
	  bare static initializer in generated code

2001-06-14  Shiro Kawai  <shiro@acm.org>

	* src/genstub : reorganized the structure in more object-oriented
	  way.

2001-06-13  Shiro Kawai  <shiro@acm.org>

	* configure.in : made work with Solaris
	* ext/net/configure.in : made work with IRIX and Solaris
	* src/* : changed SCM_DEFINE_BUILTIN_CLASS macro to allow to set
	  allocation routine.

2001-06-12  Shiro Kawai  <shiro@acm.org>

	* ext/net/* : added more functions.
	* doc/gauche-ref.texi : added gauche.net description
	* src/main.c : when invoked with a script file, call "main" procedure
	  if defined.  proposed SRFi-22 behavior.
	
2001-06-11  Shiro Kawai  <shiro@acm.org>

	* ext/net/* : made low-level functions work

2001-06-10  Shiro Kawai  <shiro@acm.org>

	* ext/net/addr.c : added 

2001-06-07  Shiro Kawai  <shiro@acm.org>

	* release 0.3.14
	* gc/dyn_load.c : fixed a bug that failed to find data segments
	  in dynamically loaded module on IRIX 6.5.
	* ext/charconv/* : fixed small bugs around compilation and
	  installation.
	* lib/port/jfilter.scm : added this compatibility module.
	* lib/Makefile.in : fixed a bug that some modules were not installed
	  properly.

2001-06-06  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/* : made it work with Bruno Haible's libiconv as well.
	  Added automatic character detection routine.
	* src/regexp.c : fixed a bug with unused submatches.  added
	  Scm_RegMatchBefore and Scm_RegMatchAfter
	* src/extlib.stub : added rxmatch-before and rxmatch-after

2001-06-05  Shiro Kawai  <shiro@acm.org>

	* ext/charconv/* : added workaround for glibc-2.1 iconv() bug in
	  Shift-JIS handling.  added concept of ownership in the conversion
	  port to control whether the conversion port should close the remote
	  port.  changed Scheme API to use keyword arguments to specify
	  various parameters.

2001-06-04  Shiro Kawai  <shiro@acm.org>

	* src/port.c : allow bufport's flusher to flush less bytes than
	  specified.  unflushed bytes are shifted by the bufport routine.

2001-06-03  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub : added port->string, port->byte-string
	* ext/charconv/* : made it work.

2001-06-02  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub : added copy-port

2001-06-01  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h, src/gauche/portmacros.h, src/*.c : changed API of
	  Scm_Getz to be consisntent with C's fgets (port comes last), and
	  added len parameter to Scm_Putz.
	* src/port.c : fixed bugs in bufport_putz.
	* src/extlib.stub : added open-output-buffered-port.
	* lib/rfc/822.scm : added.
	* lib/gauche/regexp.scm, test/regexp.scm : added test and changed
	  semantics of rxmatch-case.

2001-05-31  Shiro Kawai  <shiro@acm.org>

	* src/port.c, test/euc-jp.scm : more tests and bug fixes for the
	  buffered port.
	* src/Makefile.in, test/mb-chars.scm : included a multibyte character
	  test to the standard tests.  mb-chars.scm loads tests specific
	  to the native character encoding.

2001-05-30  Shiro Kawai  <shiro@acm.org>

	* src/port.c, src/extlib.stub: added open-input-buffered-port.
	  fixed some bugs in buffered port implementation.

2001-05-29  Shiro Kawai  <shiro@acm.org>

	* release 0.3.13
	* configure.in, ext/charconv/* : check existence of iconv() to avoid
	  compilation error.  Added a new configure option --with-iconv
	  to tell if iconv is installed in a non-trivial location.
	* ext/uvector/* : added a test suite, and fixed bugs found by it.
	* src/load.c : use RTLD_NOW for dlopen() to avoid segfault when
	  loaded DSO has unresolved reference.
	* src/bignum.c : fixed a bug in Scm_MakeBignumFromSI that made wrong
	  result if the argument was LONG_MIN.
	* src/main.c : added batch mode, i.e. to evaluate input without
	  prompting and printing the result.  Useful for filter programs.

2001-05-28  Shiro Kawai  <shiro@acm.org>

	* release 0.3.12
	* configure.in, lib/slib.scm.in : let configure.in to find the slib
	  location.  the user can specify it by --with-slib=PATH,
	  alternatively.

2001-05-26  Shiro Kawai  <shiro@acm.org>

	* src/system.c, src/syslib.stub, configure.in, src/gauche/config.h.in:
	  Convert time_t to a number in Scheme world, instead of <sys-time>
	  object.  Since time_t need not be an integer, a new configure test
	  is added to check how to convert between time_t and Scheme number.

2001-05-25  Shiro Kawai  <shiro@acm.org>

	* src/port.c : finished buffered ports.
	* ext/charconv/* : adding more

2001-05-24  Shiro Kawai  <shiro@acm.org>

	* src/port.c : added buffered ports (not finished).
	* ext/net/* : fixed configuration strategy.

2001-05-22  Shiro Kawai  <shiro@acm.org>

	* configure.in, src/*: applied a patch by MINOURA Makoto
	  (makoto@hauN.ORG) to run on various NetBSD platforms.
	* doc/gauche-ref.texi: more docs.

2001-05-21  Shiro Kawai  <shiro@acm.org>

	* lib/slib.scm : added SLIB initialization file for Gauche.
	  Say (require "slib") and you can use slib.
	* src/string.c (count_length): fixed a bug that didn't recognize
	  an incomplete character at the end of a string.

2001-05-20  Shiro Kawai  <shiro@acm.org>

	* release 0.3.11
	* src/port.c, src/gauche/portmacros.h : added code to input string
	  port to handle the case that rest bytes consist an incomplete
	  character.
	* src/string.c : disallow string-ref on an incomplete string.
	* test/euc-jp.scm : added tests for incomplete strings

2001-05-19  Shiro Kawai  <shiro@acm.org>

	* src/string.c : revised for handling of incomplete string.
	* src/symbol.c (Scm_Intern): make symbol name immutable string.
	* src/* : renamed <something>CStr, <something>Cstr and <something>CSTR
	  to <something>z or <something>Z, for consistency.  This made
	  incompatible change in API.

2001-05-18  Shiro Kawai  <shiro@acm.org>

	* src/string.c, src/gauche.h and other files : changed ScmString
	  structure to handle incomplete and/or immutable string in
	  better way.  API of string construction is changed in incompatible
	  way.

2001-05-17  Shiro Kawai  <shiro@acm.org>

	* src/bignum.c, src/extlib.stub, test/number.scm : finished logand
	  and logior

2001-05-16  Shiro Kawai  <shiro@acm.org>

	* src/number.c, src/extlib.stub : added lognot.

2001-05-15  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub: removed some subrs that are defined somewhere
	  else.
	* doc/gauche-ref.texi: start writing this.

2001-05-14  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h, src/gauche/portmacros.h, src/port.c : separated
	  port macros (SCM_GETC, etc.) to a subheader.  added fill function
	  pointer to the input string port, so that it can be a general
	  buffered input port.
	* src/bignum.c, src/number.c : start adding logical operations.
	  finished ash.
	* src/number.c (exact_expt): fixed a bug in the shortcut of -1^y.

2001-05-12  Shiro Kawai  <shiro@acm.org>

	* release 0.3.10
	* src/number.c (Scm_Expt): properly handles fraction power of
	  negative real numbers, and exact powers.
	* src/vm.c: added Scm_Values2 and Scm_Values3, C-interfaces to
	  return multiple values.
	* src/stdlib.stub, lib/gauche/numerical.scm: made
	  %complex->real/imag to return multiple values, avoiding consing.

2001-05-11  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/numerical.scm : fixed more numeric instability of
	  acos, asinh, acosh.  Finally Gauche can plot the fascinating
	  pictures shown in the "Numbers" section of "Common Lisp, the
	  Language, 2nd edition".

2001-05-10  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/numeric.c: fixed asin and acos to avoid numeric
	  instabilities.
	* src/number.c: fixed wrong definition of SCM_IS_NAN when
	  HAVE_ISNAN is not defined.
	* src/stdlib.stub: allow to pass 0.0 to %log, letting the system
	  log() to yield NaN.
	
2001-05-09  Shiro Kawai  <shiro@acm.org>

	* lib/gauche/numeric.c: fixed some bugs in the definition of
	  complex trigonometric functions.
	* src/number.c (Scm_NumberToString): prints #<nan> and #<inf>.
	  extended # of digits of flonum to 20 so that it is properly
	  read back.  prints small int with arbitrary radix.
	* src/number.c (Scm_Max): still had a bug in treating inexactness.

2001-05-08  Shiro Kawai  <shiro@acm.org>

	* src/gauche-init.scm: fixed a bug in the definition of atan.
	* src/stdlib.stub: fixed a bug in =, which made it fail for
	  complex numbers.
	* src/vm.c (run_loop): fixed a bug that caused SEGV when the error
	  handler tries to obtain stack trace.   fixed a bug in NUMEQ2
	  instruction.
	* src/stdlib.stub (symbol->string): fixed a bug that didn't check
	  if arg is symbol (Thanks to Yuuichi Teranishi).

2001-05-07  Shiro Kawai  <shiro@acm.org>

	* test/cmpplane.scm : a port of the program shown in CLtL2 to plot
	  complex functions in complex plane.  it seems that this reveals
	  a serious bug in VM...

2001-05-06  Shiro Kawai  <shiro@acm.org>

	* src/number.c (read_complex) : fixed a bug that read +0i and -0i
	  as a complex number, instead of flonum 0.0.
	* src/hash.c, src/extlib.stub, lib/srfi-13/hash.scm: added %hash-string
	  which exposes internal string hash function, and implemented
	  string-hash (SRFI-13) on top of it.

2001-05-05  Shiro Kawai  <shiro@acm.org>

	* src/number.c : fixed number reader to recognize x+0i as x (real
	  number).  added Scm_OddP to deal with inexact numbers.  re-added
	  Scm_NumEq, for Scm_NumCmp doesn't handle complex numbers.
	  Moved most of transcendental functions to stdlib.stub.
	* src/stdlib.stub : fixed several domain bugs in numeric predicates.
	  Implemented most of real transcendental functions here.
	* src/gauche-init.scm, lib/gauche/numerical.scm : Implemented
	  transcendental functions for complex domain.
	* src/boolean.c : use Scm_NumEq instead of Scm_NumCmp.
	* test/number.scm : added tests for numeric predicates, complex
	  readers, and arithmetic functions.

2001-05-04  Shiro Kawai  <shiro@acm.org>

	* src/number.c : fixed Scm_Max and Scm_Min to treat exactness
	  correctly (at least one arg is inexact, result is always inexact).
	* src/string.c : Scm_ListToString and Scm_MakeStringFromList were
	  using the same routines.  Integrated them to one function.

2001-05-03  Shiro Kawai  <shiro@acm.org>

	* release 0.3.9
	* INSTALL: added explanation about --enable-multibyte option.
	* test/euc-jp.scm: added Japanese tests of string-library.

2001-05-02  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-13/*.scm : fixed number of bugs
	* src/string.c, src/extlib.stub : removed redundant 'end' parameter
	  from Scm_StringSubstitute and string-substitute!
	* test/srfi.scm : finished tests for SRFI-13

2001-05-01  Shiro Kawai  <shiro@acm.org>

	* test/string.scm : added more tests for builtin string ops
	* test/srfi.scm : start adding SRFI-13 functions
	* lib/srfi-13/*.scm : fixing bugs

2001-04-30  Shiro Kawai  <shiro@acm.org>

	* src/gauche.h, src/string.c, src/extlib.stub: added 'grammer'
	  argument to Scm_StringJoin and string-join, so that it will be
	  compatible to SRFI-13.
	* lib/srfi-13/*.scm: added some more srfi-13 stuff.

2001-04-26  Shiro Kawai  <shiro@acm.org>

	* src/srfi-13/*: added some more.
	* src/string.c, src/gauche.h, src/extlib.stub: added string-pointer
	  object.  removed StringTake stuff which are moved to srfi-13.
	* test/string.scm, test/euc-jp.scm: added test for string-pointer
	  object.
	* src/gauche/char_euc_jp.h, src/gauche/char_utf_8.h: improved
	  CHAR_BACKWARD macros.

2001-04-25  Shiro Kawai  <shiro@acm.org>

	* configure.in, src/gauche/config.h.in, src/gauche/char_*.h:  added
	  --enable-multibyte=ENCODING option so that the user can choose
	  native encoding system.
	* many files: changed SCM_STR_{GET|PUT}C to SCM_CHAR_{GET|PUT} for
	  consistency.
	* src/string.c : start adding StringPointer object.

2001-04-24  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-14/query.scm, lib/srfi-14/set.scm: splitted srfi-14.
	
2001-04-23  Shiro Kawai  <shiro@acm.org>

	* lib/srfi-13/generator.scm, lib/srfi-13/pred.scm,
	  lib/srfi-13/selector.scm: added some srfi-13 functions.

2001-04-22  Shiro Kawai  <shiro@acm.org>

	* release 0.3.8
	* lib/srfi-13.scm: began to implement this.
	* src/string.c, src/stdlib.stub: modified string-fill!, string->list
	  and string-copy to take optional start/end arguments as in SRFI-13.
	* src/gauche-init.scm, lib/gauche/numerical.scm: implemented some
	  R5RS numerical functions (e.g. gcd and lcm) in Scheme, and set
	  autoload for it.
	* src/bignum.c: further debugging for the infrequent path of the
	  division code.

2001-04-21  Shiro Kawai  <shiro@acm.org>

	* src/bignum.c, src/number.c, test/number.scm: fixed integer
	  division/remainer/modulo routines.
	* src/Makefile.in: added test/number.scm for test targets.

2001-04-19  Shiro Kawai  <shiro@acm.org>

	* release 0.3.7
	* src/read.c (read_charset): added #[...] extension for literal
	  charset syntax.
	* src/char.c: adapted print syntax to the literal charset syntax.
	  added charset reading function (Scm_CharSetRead).
	  added predefined charsets.
	* src/extlib.stub, lib/srfi-14.scm: adapted predefined charset.
	* src/regexp.c: added \s, \S, \w, \W, \d and \D character
	  classes.  Added stack boundary check to protect from too deep
	  recursive calls.
	* configure.in, gc/mach_dep.c: applied a patch from Shigenobu
	  Kimura (skimu@ti.com) in order to compile under NetBSD.

2001-04-18  Shiro Kawai  <shiro@acm.org>

	* test/number.scm: added.
	* src/vm.c: fixed a bug that related to NUMADDI, NUMSUBI.
	* src/number.c, src/bignum.c: fixed number of bugs related to
	  bignum reader and bignum addition/subtraction.

2001-04-17  Shiro Kawai  <shiro@acm.org>

	* release 0.3.6
	* src/bignum.c: added Scm_BignumDivSI, and a conversion routine
	  from bignum to string; not debugged well.
	* src/number.c (read_complex): fixed a bug that caused segfault.
	* src/regexp.c: correctly recognize ']' at the beginning of the
	  character range.

2001-04-16  Shiro Kawai  <shiro@acm.org>

	* src/regexp.c: added BOL/EOL anchors (^ and $).  Fixed some bugs
	  in character range operator.
	* test/regexp.scm: more tests.

2001-04-15  Shiro Kawai  <shiro@acm.org>

	* release 0.3.5
	* src/read.c: added #/.../ extension to embed literal regexp.
	* src/regexp.c: the first version of regexp starts working.

2001-04-14  Shiro Kawai  <shiro@acm.org>

	* ext/uvector/*: finished the first version of uvector module.
	* src/read.c (Scm_Read): added a hook function for srfi-4 extended
	  syntax when uvector module is loaded.
	* src/load.c (Scm_Load): added a second parameter that specifies
	  whether an error should be signalled when the file is not found.
	* ext/example/*.in: for "in-place" configuration, automatically
	  give appropriate -I option to gosh.
	* ext/Makefile: added uvector

2001-04-12  Shiro Kawai  <shiro@acm.org>

	* release 0.3.4
	* src/regexp.c: started to write this one.

2001-04-09  Shiro Kawai  <shiro@acm.org>

	* src/list.c, src/extlib.c, lib/srfi-1.scm: added %assoc-delete[!]
	  and rewrite assoc-delete[!] to use them if possible.

2001-04-08  Shiro Kawai  <shiro@acm.org>

	* src/compile.c (compile_body): body of "begin" is correctly spliced
	  into it's surrounding body.

2001-04-07  Shiro Kawai  <shiro@acm.org>

	* release 0.3.3
	* lib/Makefile.in: oops, forgot to install with.scm
	* test/srfi.scm: more tests for srfi-1 functions.

2001-04-06  Shiro Kawai  <shiro@acm.org>

	* release 0.3.2
	* src/gauche-init.scm: moved some functions into library, and
	  define autoload for them.
	* src/char.c, src/extlib.stub: added gauche-char-encoding
	* src/vm.c: support multi-value continuation.  fixed a bug for
	  multiple value handling.
	* test/srfi.scm: added tests for srfi-1 functions.

2001-04-05  Shiro Kawai  <shiro@acm.org>

	* release 0.3.1
	* lib/srfi-1.scm, lib/srfi-1/*: splitted srfi-1.scm into a bunch of
	  small files that will be autoloaded on demand.
	* src/list.c, src/extlib.stub: added %delete[!], %delete-duplicates[!]
	* src/load.c: use stat() instead of access() to check existence of
	  the file, in order to rule out a directory with the same name.

2001-04-04  Shiro Kawai  <shiro@acm.org>

	* release 0.3
	* src/*.[ch]: changed object write protocol.  Object writers receive
	  ScmWriteContext that encapsulates various information instead of
	  an simple interger.  Further enhancement will be done, without
	  breaking the protocol.
	* lib/srfi-14.scm, src/char.c: finished working version of char-set
	  srfi (although the UCS support is limited).

2001-04-03  Shiro Kawai  <shiro@acm.org>

	* release 0.2.20:
	* src/char.c, src/extlib.stub: added more charset stuff.
	* src/syslib.stub (sys-tmpnam): use mkstemp() instead of tmpnam()
	  if possible.

2001-04-02  Shiro Kawai  <shiro@acm.org>

	* release 0.2.19:
	* gauche/serializer.scm, gauche/serializer/aserializer.scm: ports
	  from the modules written for STk.  This is an experimental code
	  and its API may change later.
	* test/object.scm: more test for metaclass.
	* src/class.c: fixed a bug to set a appropriate allocator.  added
	  consistency checks in native slot setters.
	* src/vm.c (run_loop): fixed a bug that didn't adjust argument
	  frame size upon calling a method.

2001-04-01  Shiro Kawai  <shiro@acm.org>

	* release 0.2.18
	* lib/gauche/object.scm: finishing metaclass stuff (not well tested
	  yet).
	* src/char.c: start adding character set stuff.
	* src/boolean.c (Scm_EqualP): added a hook for class compare routine.
	* lib/gauche/object.scm, src/vm.c: generic function application
	  metaobject protocol implemented (not tested, though).
	* src/moplib.stub: added %make-next-method
	* src/list.c: added Scm_ListToArray.
	* src/compare.c, src/extlib.stub: added sorting-related routines
	  and Scheme functions sort and sort!.
	* src/number.c (Scm_NumCmp): fixed a bug that didn't work properly
	  for flonums.

2001-03-31  Shiro Kawai  <shiro@acm.org>

	* release 0.2.17
	* src/class.c: implement default method of compute-applicable-methods
	  and method-more-specific?
	* src/string.c, src/stdlib.stub: consolidated string comparison
	  routines to Scm_StringCmp and Scm_StringCiCmp.
	* src/number.c, src/stdlib.stub, src/vm.c: consolidated number
	  comparison routines to a single function, Scm_NumCmp.
	* lib/srfi-17.scm, lib/gauche/object.scm: srfi-17 (generalized set!)
	  is now a part of Gauche module.  No need to say "(use srfi-17)"
	  anymore.
	* src/load.c: allow filename without default suffix.
	* lib/rfc/base64.scm: added.  Base64 encode/decode routine.
	* src/gauche.h: fixed a bug in SCM_GETB.
	* src/stdlib.stub, src/vm.c, src/gauche/vminsn.h : inline
	  read-char and write-char.
	* src/genstub (emit-inliner-header): fixed a bug in the case of
	  optional arg.  Start using the object system.

2001-03-30  Shiro Kawai  <shiro@acm.org>

	* release 0.2.16
	* src/vm.c, src/compile.c, src/gauche/vminsn.h, src/stdlib.stub:
	  added SCM_VM_LREF1[0-5] instructions.   inline memq, assq, assv.
	* src/extlib.stub: added read-byte
	* src/symbol.c: escape illegal charcters in a symbol when wrote.
	* src/class.c: added slot-bound? and slot-bound-using-class?
	* src/compile.c: fixed a bug that didn't compile SCM_VM_LSET[0-5]
	  properly.
	* lib/gauche/object.scm: added slot-exists? and
	  slot-exists-using-class?

2001-03-29  Shiro Kawai  <shiro@acm.org>

	* release 0.2.15
	* src/*.c: removed "equal" protocol from class definition.  clean up
	  builtin class definition macros.
	* src/class.c, src/write.c: moved write-object stuff from class.c
	  to write.c
	* lib/gauche/process.scm: added.  mostly STk-compatible process
	  module, but implemented as an object.
	* src/system.c, src/syslib.stub: added Scm_SysExec, that calls
	  execvp() with taking care of file discriptors.  Changed sys-exec
	  accordingly.

2001-03-28  Shiro Kawai  <shiro@acm.org>

	* release 0.2.14
	* src/class.c: added generic function write-object.
	* src/error.c, src/vm.c, src/gauche/vm.h: added vm->errorFlags,
	  and use SCM_ERROR_BEING_HANDLED flag to avoid inifinite loop
	  of calling error function.

2001-03-27  Shiro Kawai  <shiro@acm.org>

	* release 0.2.13
	* src/vm.c, src/compile.c: finally deals with let-family, do and
	  receive properly tail recursive way.
	  consolidate compiler flags.
	* src/main.c: added -fno-source-info option.  it disables inserting
	  debug information into the final code, and improves performance
	  considerably.
	* lib/gauche/vm/disasm.scm: more reasonable output format.
	* lib/gauche/object.scm: added class-slot-ref and class-slot-set!

2001-03-26  Shiro Kawai  <shiro@acm.org>

	* release 0.2.12
	* lib/gauche/object.scm (compute-get-n-set): implemented class,
	  each-subclass and virtual slot allocation.
	* src/class.c: if a slot accessor returns UNDEFINED, regard it
	  as an unbound slot and call slot-missing.  Necessary for virtual
	  slots to tell the system that slot is unbound.
	* src/class.c (method_more_specific): fixed a bug.
	* src/class.c (Scm_AddMethod): check for method redefinition of
	  the same signature.
	* src/extlib.stub: added undefined and undefined? to treat undefined
	  value explicitly in Scheme.
	* src/vm.c: fixed a bug with inlined slot-ref and slot-set!, that
	  broke VM stack when Scm_VMApply was called internally.

2001-03-25  Shiro Kawai  <shiro@acm.org>

	* release 0.2.11
	* lib/gauche/object.scm: support :getter, :setter and :accessor
	  slot options.
	* src/class.c: implemented SortMethod.
	* src/vm.c, src/moplib.stub: made slot-ref and slot-set! inlinable.
	* src/vm.c (ADJUST_ARGUMENT_FRAME): fixed a bug that didn't saved
	  VM regs before calling Scm_Error.

2001-03-24  Shiro Kawai  <shiro@acm.org>

	* release 0.2.10
	* test/object.scm: test file for object system.
	* src/moplib.stub: added %ensure-generic-function.
	* src/class.c: finished slot initialization protocol.  implemented
	  code to deal with Scheme-defined slots.
	* src/class.c (Scm_MakeBaseGeneric): added for C code to create
	  a generic fucntion.
	* src/gauche-init.scm: load object system as well.
	* src/main.c: adapted to the changes of load.c and core.c.
	  redesigned command-line options.
	* src/load.c: current dir is not added to the load-path by default.
	  it's also up to the application.
	* src/core.c (Scm_Init): it no longer loads initfile.  loading
	  initfile is up to the application.
	* src/list.c: Scm_Delete added.

2001-03-23  Shiro Kawai  <shiro@acm.org>

	* release 0.2.9
	* lib/*: reorganized library structure.  gauche-specific stuff
	  go into gauche/ subdirectory, and can be used by
	  "(use gauche.something)".
	* src/class.c, src/gauche/class.h: changed ScmClassAccessor to
	  ScmSlotAccessor and made it have more information for slot
	  initialization and access.   Basic features such as defining
	  class in Scheme, instancing it, and accessing slots, start
	  working---a lot has to be done for completeness.
	* src/compile.c (compile_qq_list): fixed a bug that messed up
	  the stack by quasiquoted forms with unquote and unquote-splicing
	  intertwined.

2001-03-21  Shiro Kawai  <shiro@acm.org>

	* release 0.2.8
	* src/class.c, lib/object.scm: (initialize <method> <list>) is
	  finished.  (make <class> . initargs) works.  define-generic
	  and define-method written.  still working on slot construction
	  in the class initializer.
	* src/macro.c: fixed a bug to treat dotted pattern.

	* release 0.2.7
	* src/gauche.h, src/class.c, src/moplib.stub: finished protocol
	  to define generic functions and methods only in C.  removed some
	  stub functions from moplib.stub that are implemented genuine
	  generic functions / methods.
	* src/vm.c: integration of method invocation.

2001-03-19  Shiro Kawai  <shiro@acm.org>

	* release 0.2.6
	* src/gauche.h, src/proc.c, src/class.c: changed procedure
	  structure.  there's no longer separate classes for closure and
	  subr; they're <procuedure>.  "type" field in ScmProcedure structure
	  discriminates closures, subrs, and other applicable metaobjects.
	* src/vm.c: method dispatching code is embedded in VM loop.  Not
	  quite working, but it's on the way.
	* src/gauche-init.scm: added code to load ~/.gaucherc if exists.
	* src/list.c: added Scm_ArrayToList.
	* src/vector.c: rewrote Scm_VectorToList using Scm_ArrayToList.
	* src/system.c (Scm_NormalizePathname): fix bug in expanding "~".

2001-03-18  Shiro Kawai  <shiro@acm.org>

	* release 0.2.5
	* src/gauche.h, src/proc.c: applicable objects (including subrs
	  and closures) are marked so in its class structure.  SCM_PROCEDUREP
	  is changed accordingly.
	* src/class.c, src/moplib.stub: further code for mop support.
	* src/vm.c, src/compile.c, src/gauche/vminsn.h: optimization by
	  adding shortcut operation of LREF/LSET.

2001-03-17  Shiro Kawai  <shiro@acm.org>

	* doc/Makefile: added.
	* src/gauche.h, src/gauche/class.h: ScmGeneric and ScmMethod
	  is now inherits ScmProcedure, for they share the common part
	  as applicable objects.
	* src/vm.c: a bit of optimization.

2001-03-16  Shiro Kawai  <shiro@acm.org>

	* release 0.2.4
	* src/*: restructured defining scheme of builtin classes.  Macro
	  SCM_DEFINE_BUILTIN_CLASS is introduced instead of SCM_DEFCLASS.
	  Now builtin class requires to be initialized by
	  Scm_InitBuiltinClass.
	* src/string.c, src/extlib.c: added string-contains (srfi-13).
	* src/symbol.c, src/extlib.c: added apropos.
	* src/hash.c: fixed bug in string hash function.  added
	  hash-table-stat.

2001-03-15  Shiro Kawai  <shiro@acm.org>

	* release 0.2.3
	* src/class.c, src/gauche/class.h, src/moplib.stub, lib/object.scm:
	  gradually developing class allocation protocol and slot access
	  protocol.
	* src/repl.c: fixed a bug that didn't let repl exit when EOF read.

2001-03-14  Shiro Kawai  <shiro@acm.org>

	* release 0.2.2
	* COPYING: clearify the copyright and distributing condition.
	* src/class.c, src/moplib.stub: added some OO stuff.  not quite
	  working.
	* src/hash.c, src/extlib.stub: added Scm_HashTableKeys and
	  Scm_HashTableValues.  hash-table-keys and hash-table-values
	  in Scheme.
	* src/main.c: expose argv[0] to Scheme as *program-name*.
	* configure.in, src/system.c, src/syslib.stub: include time.h and
	  sys/time.h, depending on the system configuration.

2001-03-13  Shiro Kawai  <shiro@acm.org>

	* release 0.2.1
	* src/gauche.h, src/class.c: further designing.  not much code yet.
        * configure.in: made to work on sparc-sun-solaris2.6
	* ext/example/Makefile.in: install rule was broken.  fixed.
	
2001-03-12  Shiro Kawai  <shiro@acm.org>

	* release 0.2
	* src/class.c: start implementing core protocol of metaobjects.
	* ext/example: fixed configure.in and Makefile.in to handle
	  installation process as well.
	* src/syslib.stub: added a part of signal stuff and exec().
	
2001-03-11  Shiro Kawai  <shiro@acm.org>

	* release 0.1.8
	* src/srfi-2.scm: rewrote completely using define-syntax.
	* src/macro.c (compile_define_macro): fixed a bug that called
	  Scm_MakeClosure with env argument pointing to VM stack.  The env
	  should be saved to the heap.
	* src/genstub, src/syslib.stub: added define-type stub directive,
	  which allows stub files to include type parameters.
	* src/syslib.stub: added interface for setlocale and localeconv
	  by Yuuki Takahashi (t.yuuki@mbc.nifty.com).
	* src/port.c, src/syslib.stub: complete procedural port protocol.
	  added "port over file descriptor" as a class of procedural port,
	  and implement sys-pipe using it.
	* src/port.c, src/extlib.stub: Added read-line.

2001-03-10  Shiro Kawai  <shiro@acm.org>

	* release 0.1.7
	* src/genstub: Now the stub generator runs under gosh itself; no need
	  for external scheme system.
	* src/stdlib.stub (integer?): fixed bug that caused an error when
	  non-number was given.
	* src/compile.c (compile_int): fixed a bug that didn't recognize
	  syntactic binding inserted in different module.
	* src/main.c: invoked as a script, command line arguments are
	  available in the variable *argv*.
	* src/io.c, src/extlib.stub: with-{output-to|input-from}-{port|string}
	* lib/srfi-17.scm: added srfi-17, generalized set!
	* test/srfi.scm: test file for srfi's.  not completed yet.

2001-03-09  Shiro Kawai  <shiro@acm.org>

	* release 0.1.6
	* configure.in etc.: revised configuration process.  fixed protocol
	  of build, test and call extension modules.
	* ext/example: example of dynamic loadable extension.
	* src/port.c: implement procedural port protocol.
	* src/load.c: looks environment variable GAUCHE_LOAD_PATH for
	  initial *load-path* (in addition to the system default)
	* src/gauche-init.scm: added USE macro, which combines function of
	  require and import.  Changed library and test files accordingly.
	* src/genstub: added define-symbol directive to pre-create symbols.

2001-03-08  Shiro Kawai  <shiro@acm.org>

	* release 0.1.5
	* configure.in, src/Makefile.in: start putting configuration stuff
	  for dynamic linking.  Far from complete yet.
	* src/genstub, src/core.c: initialization function generated by
	  the stub generator now takes a module as an arg.
        * src/load.c, src/extlib.stub, src/gauche-init.scm: require, provide
	  and provided? are supported in C level.  Require and add-load-path
	  are processed at compile time.
	* src/syslib.stub: added sys/time.h related system interface functions
	  by Yuuki Takahashi (t.yuuki@mbc.nifty.com).
	* src/vm.c (user_eval_inner): didn't restore VM registers properly;
	  fixed.
	* lib/srfi-11.scm: srfi-11 support added.

2001-03-07  Shiro Kawai  <shiro@acm.org>

	* release 0.1.4
	* configure.in: changed installation directory of architecture
	  dependent files.   Compiled DSO files should go under exec_prefix,
	  while Scheme files go under prefix.
	* src/port.c: line count starts from 1.
	* src/gauche/config.h.in, configure.in: added check for members
	  of struct group and struct passwd.
	* src/system.c, src/syslib.stub: complete group and password interface.
	  added stat interface.  added times interface.  added class
	  definitions for time_t and struct tm.
	  added crypt interface by Yuuki Takahashi (t.yuuki@mbc.nifty.com).
	* src/load.c: changed *load-filename* to *load-port*, since it's more
	  general.  implemented *load-history*.

2001-03-06  Shiro Kawai  <shiro@acm.org>

	* release 0.1.3
	* various files: clean up the testing and installation scheme.  Now
	  the architecture dependent files go to the directory designated
	  by the architecture name.  Add INSTALL file to describe the process
	  shortly.  See lib/tester/tester.scm for testing method.
	* src/load.c: dynamic loading now uses *dynamic-load-path* instead of
	  *load-path*.  When add-load-path is used, it tries to find an
	  architecture dependent counterparts of the specified directory and
	  add it to *dynamic-load-path*.
	* lib/japanize-euc.scm: for fun.
	* src/system.c, src/syslib.stub: Add getpwuid and getpwnam interface
	  provided by Yuuki Takahashi (t.yuuki@mbc.nifty.com).
	* src/syslib.stub: Add convenient routine to convert
	  between gid/pid and group/user name.
	* configure.in, src/syslib.stub: added check for existence of symlink.

2001-03-05  Shiro Kawai  <shiro@acm.org>

	* release 0.1.2
	* src/macro.c, src/gauche-init.scm: define-macro and define-syntax
	  is moved from gauche-init.scm into macro.c, since global syntactic
	  binding should be visible at compile time.
	* src/load.c: added dynamic handler to restore the current module,
	  and properly close the port.
	* src/vm.c (Scm_VMThrowExcpeption): throwing fatal exception shouldn't
	  return!  Fixed.
	* configure.in, src/number.c, src/gauche/config.h.in: applied a patch
	  from Yuuki Takahashi (t.yuuki@mbc.nifty.com) to check existence
	  of trunc() and rint().

2001-03-04  Shiro Kawai  <shiro@acm.org>

	* release 0.1.1
	* src/module.c, src/compile.c: implemented module selection
 	  mechanism.  Module binding is resolved during compile time,
	  so the Scheme interface such as with-module, select-module and
	  current-module are implemented as a built-in syntax.
	* src/core.c (Scm_Init): initialize builtin functions within
	  appropriate modules.
	* src/boolean.c etc.: equivalent preicate C API now returns C boolean
	  instead of Scheme boolean; easier for C programs.
	* src/list.c: added topological sort function and some more list
	  manipulaton functions, generally useful from C.

2001-03-03  Shiro Kawai  <shiro@acm.org>
	
	* release 0.1: almost covered R5RS
	* src/compile.c: fixed lookup_env to lookup identifiers with
	  local environment.   fixed a problem in nested quasiquotes.
	* src/macro.c: implemented let-syntax and letrec-syntax.  make
	  vector pattern and template work correctly.
	* src/macrotest.c: more tests
	* src/boolean.c (Scm_EqualP): fixed a bug.
	* src/write.c (write_internal): fixed a bug which didn't print
	  a character in "display" mode.
	* src/symbol.c (Scm_Intern): fixed a bug which inserted given string
	  into obtable without copying.
	* src/number.c: revised string->number algorithm

2001-03-02  Shiro Kawai  <shiro@acm.org>

	* release 0.0.20
	* src/macro.c: fixed problem with nested repeat patterns.
	* test/macrotest.scm: added more tests to cover various cases.

2001-02-28  Shiro Kawai  <shiro@acm.org>

	* release 0.0.19
	* src/macro.c: fixed to handle templates like (?a ... ?b ...)
	  correctly.
	* lib/srfi-0.scm: srfi-0 added.

2001-02-27  Shiro Kawai  <shiro@acm.org>

	* src/extlib.stub: added some nonstandard procedures (identifier?,
	  identifier->symbol, flush)
        * lib/test.scm: added to support simple self-testing.
	* test/macrotest.scm: more tests.

2001-02-26  Shiro Kawai  <shiro@acm.org>

	* release 0.0.18
	* src/macro.c: almost finished implementing syntax-rules.  not tested
	  well yet.
	* src/vm.c: added immediate integer arithmetic instructions
	  (NUMADDI and NUMSUBI)
	* src/genstub, src/stdlib.stub: experimentally added a feature
	  to write arbitrary inliner function in C.  Inliner functions
	  for immediate integer addition/subtraction is added to stdlib.stub.

2001-02-23  Shiro Kawai  <shiro@acm.org>

        * release 0.0.17
	* src/macro.c, src/gauche/macro.h: pattern language compiler and
	  matcher test code.

2001-02-21  Shiro Kawai  <shiro@acm.org>

	* release 0.0.16
	* src/macro.c, src/compile.c: more code for r5rs macro system (not
	  finished yet)
	* src/vm.c: fix error message of "unbound variables" to show
	  symbols instead of identifiers.
	* src/list.c, src/extlib.stub: added acons

2001-02-20  Shiro Kawai  <shiro@acm.org>

	* release 0.0.15
	* src/compile.c, src/gauche/vm.h: changed the compile-time
	  environment structure so that it can handle locally defined macros.
	  ScmIdentifier object is introduced to realize hygienic macros.
	* src/vm.c: changed to use ScmIdentifier objects for global variable
	  reference instead of bare symbols.   fixed a bug in VALUES_BIND
	  which messed up argp.

2001-02-19  Shiro Kawai  <shiro@acm.org>

	* release 0.0.14
        * configure.in, src/gauche/config.h.in: start using config.h instead
	  of long $(DEFS).
	* src/load.c, src/gauche-init.scm: autoload feature implemented
	* src/compile.c: compile toplevel begin properly.  fix bug in
	  compile_receive to handle an improper list as a binding list.

2001-02-18  Shiro Kawai  <shiro@acm.org>

	* release 0.0.13
	* src/bignum.c, src/number.c: bignum support added (partly)
	* src/load.c: dynamic link loader starts working
	* ext/uvector/*: uvector extention module added (not working yet)

2001-02-16  Shiro Kawai  <shiro@acm.org>

	* src/system.c: fix bug in Scm_NormalizePathname for "~user" expansion
	* src/proc.c: added Scm_NullProc.
	* src/vm.c: added Scm_VMDynamicWindC, a C-friendly interface of
	  dynamic-wind.
	* src/module.c: Scm_Define returns Gloc object instead of symbol

2001-02-15  Shiro Kawai  <shiro@acm.org>

	* release 0.0.12
	* src/vm.c, src/compile.c: implemented receive and values.
	* src/extlib.stub: added string port functions.
	* src/load.c: added some code to support dynamic linking

2001-02-14  Shiro Kawai  <shiro@acm.org>

	* release 0.0.11
	* src/vm.c: Fix problem of user_eval_inner.  Complete call/cc
	  implementation.  Added multiple values support (not finished yet).
	* src/gauche.h, src/gauche/vm.h, src/stdlib.stub, src/comple.c:
	  Added multiple values support (not finished yet).
	* lib/srfi-1.scm: SRFI-1 support added.  Not working completely
	  because of lack of multiple values.
	* lib/srfi-2.scm: SRFI-2 support added.
	
2001-02-13  Shiro Kawai  <shiro@acm.org>

	* release 0.0.10
	* src/vm.c: added REVERSE instruction.  added code to support
	  call/cc (but not working yet---call/cc crashes in the current
	  version)
	* src/system.c, src/syslib.stub: avoid using PATH_MAX
	* src/string.c, src/extlib.stub: added string-split

2001-02-12  Shiro Kawai  <shiro@acm.org>

	* release 0.0.9
	* src/file.c: removed.  pathname functions are moved to system.c
	* src/system.c: added pathname functions (dirname, basename,
	  normalize-pathname)

2001-02-11  Shiro Kawai  <shiro@acm.org>

	* sys/string.c: fix to handle the case that c-string's length is
	  unknown but size is given.

2001-02-10  Shiro Kawai  <shiro@acm.org>

	* src/genstub: allow &keyword args
	* src/system.c, src/syslib.stub: added system interface.

2001-02-09  Shiro Kawai  <shiro@acm.org>

	* src/gauche/vm.h: fix bug in SCM_PROPAGATE_ERROR

2001-02-08  Shiro Kawai  <shiro@acm.org>

	* src/vm.c: use label address feature of gcc to dispatch instructions
	* src/read.c: allow "#!"-line in the script file

2001-02-06  Shiro Kawai  <shiro@acm.org>

	* release 0.0.6
	* src/string.c: added a few new functions following SRFI-13.
	* src/repl.c: the caller can specify the prompt now.

2001-02-05  Shiro Kawai  <shiro@acm.org>

	* release 0.0.5
	* src/core.c, src/main.c, src/gauche-init.scm: now Scm_Init() takes
	  a name of Scheme file for initialization.  gauche-init.scm is
	  the default one for gosh.
	* src/vm.c, src/compile.c: fix compilation of case, and clean up
	  the code related to compile_if_family.
	* src/load.c: added *load-path*
	* src/keyword.c: added

2001-02-04  Shiro Kawai  <shiro@acm.org>

	* release 0.0.4
	* src/vm.c: clearify interaction between user-level eval/apply and
	  exception handlers.
        * src/compile.c: added traditional macro system.
	* src/class.c, et.al.: code cleanup around statically defined
	  built-in classes

2001-02-02  Shiro Kawai  <shiro@acm.org>

	* release 0.0.3
	* src/vm.c, src/gauche/vminsn.h, src/stdlib.stub: inline several
	  numeric operations.
        * src/compile.c: fix quasiquote code and clean up.
	* make installation procedure clearer.
	* src/gauche-config.in: added

2001-02-01  Shiro Kawai  <shiro@acm.org>

	* release 0.0.2
	* src/class.c: added Scm_MakeBuiltinClass.
	* src/string.c, extlib.stub: added string-append, string-join
	* src/file.c: added
	
2001-01-31  Shiro Kawai  <shiro@acm.org>

	* internal release 0.0.1

;; Local Variables:
;; coding: utf-8
;; End: