(linenum→info "unix/slp.c:2238")

gauche/0.8.12/ChangeLog

    1: 2007-10-29  Shiro Kawai  <shiro@acm.org>
    2: 
    3:         * release 0.8.12
    4: 
    5:         * winnt/winvc-prep.sh, DIST: enable preparation for winvc from
    6:           the distribution tarball.
    7:         * src/system.c: Some fixes for MinGW.
    8: 
    9: 2007-10-27  Shiro Kawai  <shiro@acm.org>
   10: 
   11:         * gc/configure.in: Added CFLAGS to compile on Leopard.
   12: 
   13:         * src/objlib.scm (x->integer, x->string): a bit of simplification.
   14: 
   15: 2007-10-23  Shiro Kawai  <shiro@acm.org>
   16: 
   17:         * ext/dbm/gdbm.scm (dbm.gdbm): added missing exports (gdbm-errno,
   18:           GDBM_SYNCMODE.
   19: 
   20: 2007-10-01  Shiro Kawai  <shiro@acm.org>
   21: 
   22:         * src/number.c (read_number, double_print): Changed infinities and
   23:           NaN notation to +inf.0, -inf.0 and +nan.0, according to R6RS.
   24:           The old syntax #i1/0, #i-1/0 and #i0/0 are recognized for
   25:           the compatibility.
   26: 
   27:         * ext/net/net.ac, ext/net/net.c: Removed dependency on inet_aton
   28:           (always using inet_pton).
   29: 
   30:         * lib/gauche/parseopt.scm: When "f" is specified as the option's
   31:           argument type, it allows rational number to be given but coerces
   32:           it to flonum.
   33: 
   34: 2007-09-28  Shiro Kawai  <shiro@acm.org>
   35: 
   36:         * ext/auxsys/auxsys.c (Scm_Environ),
   37:           ext/auxsys/auxsyslib.stub (sys-environ),
   38:           ext/auxsys/auxsys.scm (sys-environ->alist): Added sys-environ
   39:           and sys-environ->alist to obtain all environment variable bindings
   40:           of the current process.
   41: 
   42: 2007-09-27  Shiro Kawai  <shiro@acm.org>
   43: 
   44:         * ext/sxml/Makefile.in, ext/sxml/sxml-sxpath.scm.in: avoid dependency
   45:           on sxml-tools at generation time, by turning the references to
   46:           it into autoloads.
   47: 
   48:         * lib/gauche/fileutil.scm (glob-fold-1): Changed the traversal
   49:           procedure from 'lister' (returns a list) to 'folder' (works like
   50:           fold), for better flexibility.
   51: 
   52: 2007-09-24  Shiro Kawai  <shiro@acm.org>
   53: 
   54:         * lib/text/progress.scm (make-text-progress-bar): added a feature to
   55:           show information text on right, and allow to alter header and info
   56:           text on the fly.
   57:         * ext/sxml/Makefile.in: temporarily reverted to make sxml-sxpath.c
   58:           to depend on sxml-tools.so, because of the build problem.  This
   59:           doesn't work on windows port, though, so we might need to find
   60:           some trick.
   61: 
   62: 2007-09-18  Shiro Kawai  <shiro@acm.org>
   63: 
   64:         * libsrc/gauche/sequence.scm: added permute and shuffle.
   65: 
   66: 2007-09-17  Shiro Kawai  <shiro@acm.org>
   67: 
   68:         * src/system.c, src/syslib.stub, src/auxsyslib.stub, src/process.scm:
   69:           Implemented an abstraction layer for kill and waitpid (Scm_SysKill,
   70:           Scm_SysWait) to support windows process smoothly.  For Windows 
   71:           processes we keep its process handle instead of an integer pid.
   72: 
   73: 2007-09-16  Shiro Kawai  <shiro@acm.org>
   74: 
   75:         * src/number.c (Scm_NumCmp): apply short cut path for the case when
   76:           both args are negative.
   77: 
   78: 2007-09-13  Shiro Kawai  <shiro@acm.org>
   79: 
   80:         * src/gauche.h, src/class.c: Resurrected windows DLL data import hack
   81:           we used to had for cygwin support (back in 2002).   We have dropped
   82:           the hack since the newer gcc supports auto data importing (by
   83:           runtime pseudo reloc), but we found that the same technique can
   84:           be used for Windows/VC++.  This supersedes the kludge in 2007-09-10
   85:           changes.  
   86:         * src/gauche/extend.h: SCM_EXTENSION_ENTRY macro to indicate
   87:           the initialization function entry of extension modules; needed
   88:           for Win/VC.
   89:         * src/* : various additions for MSVC support.  shouldn't affect
   90:           unix build.
   91: 
   92: 2007-09-10  Shiro Kawai  <shiro@acm.org>
   93: 
   94:         * src/gencomp: make it accept -D option to specify preprocessor
   95:           symbols.
   96: 
   97:         * src/gauche/extern.h: added to hide windows dll insanity.
   98:         * src/gauche.h, src/gauche/class.h, src/gauche/string.h,
   99:           src/gauche/code.h, src/genstub, src/gencomp,
  100:           lib/gauche/cgen/literal.scm: Experimentally added a workaround
  101:           to the MSVC linker limitation that the address of external variables
  102:           in a separate DLL can't be used in a constant expression to
  103:           initialize static variables.  It defeats the Gauche's tag
  104:           architecture.  This fix makes the static Scheme objects to be
  105:           initialized with dummy tags (see SCM_CLASS_STATIC_TAG in gauche.h),
  106:           and "patches" the correct tag in the initializatin code.
  107: 
  108: 2007-09-06  Shiro Kawai  <shiro@acm.org>
  109: 
  110:         * src/char.c, src/read.c, src/port.c, ext/charconv/charconv.c,
  111:           ext/uvector/uvinit.c: Instead of letting extensions set the hook
  112:           function pointer, added an explicit API to set the hook (for
  113:           easier handling in windows dll).
  114: 
  115: 2007-08-29  Shiro Kawai  <shiro@acm.org>
  116: 
  117:         * ext/net/net.scm, ext/net/gauche/net.h, lib/gauche/cgen/cise.scm:
  118:           typo fix.
  119: 
  120:         * src/number.c (numcmp3): optimization in case when all args are
  121:           fixnums (can happen on 64bit machines).
  122: 
  123: 2007-08-28  Shiro Kawai  <shiro@acm.org>
  124: 
  125:         * src/number.c, src/string.c, src/class.c, src/bignum.c: various
  126:           small fixes.
  127: 
  128:         * lib/gauche/fileutil.scm (glob, glob-fold, sys-glob): Implemented
  129:           glob functionality in Scheme.
  130:         * src/autoload.scm (glob, glob-fold, sys-glob): sets these autoloads.
  131:         * src/syslib.stub (sys-glob), src/system.c (Scm_GlobDirectory):
  132:           removed C-function for the glob() interface.
  133: 
  134:         * src/extlib.stub (read-char-set): Expose char-set parser to
  135:           the Scheme level.
  136: 
  137: 2007-08-26  Shiro Kawai  <shiro@acm.org>
  138: 
  139:         * libsrc/file/util.scm (file->string etc.): made them gracefully
  140:           return #f if the file doesn't exist and :if-does-not-exist #f
  141:           is given.
  142:           (temporary-directory): look at TMPDIR environment variable.
  143:           (current-directory): clean up.
  144: 
  145:         * src/number.c (Scm_NumCmp): fixed a bug in the short cut path
  146:           of ratnum vs ratnum comparison.
  147: 
  148:         * ext/net/netlib.stub (socket-input-port, socket-output-port): 
  149:           Fixed a bug that (effectively) forces socket input mode to be
  150:           :full, making many network applications behave incorrectly.
  151: 
  152: 2007-08-25  Shiro Kawai  <shiro@acm.org>
  153: 
  154:         * src/regexp.c (regmatch_ref): fixed a bug that the failed named
  155:           submatch returns "" instead of #f.
  156:         * lib/gauche/cgen/cise.scm (render-rec): handles character constants
  157:           outside of alphanumeric range.
  158: 
  159: 2007-08-24  Shiro Kawai  <shiro@acm.org>
  160: 
  161:         * Start adding Windows/MSVC support.
  162:         * DIST: added 'winvc' target to pre-generate files necessary to
  163:           compile with VisualStudio.
  164:         * winnt/*: files for VisualStudio.
  165:         * src/gauche/win-compat.h: renamed from mingw-compat.h and 
  166:           integrated MSVC support.
  167:         * src/*.c : various touch-up for Windows support.
  168: 
  169: 2007-08-21  Shiro Kawai  <shiro@acm.org>
  170: 
  171:         * DIST, */Makefile.in : adjusted pre-package make target so that 
  172:           it will do most of the pre-packaging job, hence can make DIST script
  173:           less cluttered.
  174: 
  175: 2007-08-16  Shiro Kawai  <shiro@acm.org>
  176: 
  177:         * release 0.8.11
  178: 
  179: 2007-08-15  Shiro Kawai  <shiro@acm.org>
  180: 
  181:         * lib/gauche/cgen/cise.scm (define-cise-stmt, define-cise-expr):
  182:           A bit of touch-up for cise API.
  183:         * src/genstub: recognize define-cise-stmt and define-cise-expr as
  184:           a stub forms, so that one doesn't need to use eval* form.
  185:           I'm ambivalent on the eval* stub form; maybe it should be removed.
  186:         * src/stdlib.stub, src/extlib.stub: changed accordingly.
  187: 
  188: 2007-08-14  Shiro Kawai  <shiro@acm.org>
  189: 
  190:         * configure.ac: fixed a problem to set GAUCHE_USE_PTHREADS correctly
  191:           when thread type isn't specified.
  192: 
  193: 2007-08-13  Shiro Kawai  <shiro@acm.org>
  194: 
  195:         * src/port.c (Scm_PortFdDup), src/extlib.stub (port-fd-dup!):
  196:           Added an interface to dup2(2).  Patch from Rui Ueyama.
  197: 
  198:         * src/bignum.c (Scm_BignumToDouble): Fixed a double rounding bug
  199:           caused from using flonum arithmetic (see the comment for the
  200:           details).
  201:         * src/bignum.c (Scm_BignumLogCount), src/extlib.stub (logcount):
  202:           Implemented logcount natively on top of ScmBits API.
  203:         * src/gauche/float.h (ScmIEEEDouble): moved the structure definition
  204:           from src/number.c, for it is now used by both number.c and
  205:           bignum.c.
  206:         * lib/gauche/logical.scm: removed logcount.
  207:         * src/bits.c: finally a working version.
  208: 
  209: 2007-08-11  Shiro Kawai  <shiro@acm.org>
  210: 
  211:         * src/load.c (Scm_ResolveAutoload): Renamed from Scm_LoadAutoload,
  212:           and changed so that it returns SCM_UNBOUND instead of raising an
  213:           error when it detects the autoload is recursive.  That allows
  214:           more natural handling in implicit binding checks like implicit
  215:           generic definition by define-method or implicit redefinition
  216:           check by define-class.  Note that the caller of Scm_ResolveAutoload
  217:           must check if the return value is SCM_UNBOUND and take an appropriate
  218:           action.
  219: 
  220:         * src/gauche.h: Because of the above change, we dropped
  221:           SCM_BINDING_KEEP_AUTOLOAD flag for Scm_GlobalVariableRef, since
  222:           it was introduced only to avoid the recursive autoload in the
  223:           implicit generic definition.  We no longer need it.
  224:         * src/module.c (Scm_GlobalVariableRef): Changed accordingly.
  225:         * src/moplib.stub (%ensure-generic-function): Changed accordingly.
  226: 
  227:         * src/class.c (Scm_CheckClassBinding): Simplified according to
  228:           the above change.
  229: 
  230:         * test/load2.scm: Added to test the above autoload mechanisms.
  231:           This can't be in load.scm, since we have to test it after
  232:           object.scm.
  233: 
  234: 2007-08-10  Shiro Kawai  <shiro@acm.org>
  235: 
  236:         * lib/gauche/test.scm (test-end): Let it return the number of
  237:           failed tests.  May be useful if the test script wants to return
  238:           non-zero exit status when test fails (e.g. (exit (test-end)) ).
  239:           Suggested by Masatake YAMATO.
  240: 
  241: 2007-08-09  Shiro Kawai  <shiro@acm.org>
  242: 
  243:         * configure.ac: When --enable-threads is not given (or 'default' is
  244:           given) we turn on pthreads support on available platforms, and
  245:           turn off on others.  
  246:           Also defines _POSIX_PTHREAD_SEMANTICS on Solaris with threads 
  247:           so that we can get a pthread-compatible API 
  248:           (more specifically, sigwait()).
  249:         * gc/configure.in: Adapted to the above change; now we ignore
  250:           --enable-threads, and rely on the info the main 'configure.ac'
  251:           left in 'config.threads'.
  252:         * src/gauche/config.h.in: added _POSIX_PTHREAD_SEMANTICS.
  253:         * src/gauche.h: Include gauche/config.h before any headers so that
  254:           the definitions like _POSIX_PTHREAD_SEMANTICS can affect the
  255:           system headers.
  256:         * src/signal.c: removed system header includes, since they are
  257:           included in gauche.h anyway.
  258: 
  259:         * libsrc/srfi-1.scm (list=): bug fix for handling more than three
  260:           lists.  (Patch from OGURISU Osamu).
  261: 
  262:         * ext/template.Makefile.in, lib/gauche/package/compile.scm:
  263:           Supports separate buiddir during compiling extension packages
  264:           (Patch from Leonardo Boiko).
  265: 
  266:         * doc/corelib.texi (Symbols): removed the remark of "symbols are always
  267:           interned", since gensym'ed symbols are not interned.
  268: 
  269:         * src/gencomp (allocate-code-vector): properly escape '/*' and '*/'
  270:           in the inserted comments.
  271: 
  272:         * src/class.c, src/port.c, src/vm.c: added casts between intptr_t and
  273:           void* for proper operation on LP64.  (Patch from Rui Ueyama).
  274: 
  275:         * lib/gauche/time.scm (gauche.time): export <time-counter>.  Although
  276:           it is a pure abstract class, user may want to define a method
  277:           specializing for a bunch of time-counter subclasses.
  278: 
  279: 2007-08-08  Shiro Kawai  <shiro@acm.org>
  280: 
  281:         * src/intlib.stub: include gauche/memory.h to get decl of 
  282:           GC_print_static_roots.
  283: 
  284:         * src/core.c (Scm_Init): added missing call to Scm__InitCollection().
  285: 
  286: 2007-08-07  Shiro Kawai  <shiro@acm.org>
  287: 
  288:         * src/port.c (port_cleanup): resurrected unregister_buffered_port
  289:           to remove active buffererd port entry when a port is closed.
  290:           It was removed before, since when port_cleanup is called via
  291:           port's finalizer, the entry is already cleared by GC.  However,
  292:           it turned out that there was a case that number of closed ports
  293:           retained from GC grew, prohibiting new ports from being registered
  294:           to the active buffered port vector.  Note: maybe we can also
  295:           clear some pointers in the port when it is closed, so that the
  296:           stuff referenced from the port can be GCed even the closed port
  297:           itself lives longer.
  298: 
  299: 2007-08-06  Shiro Kawai  <shiro@acm.org>
  300: 
  301:         * src/number.c (Scm_DoubleToHalf): fixed to make sure shifting long
  302:           literal instead of int literal to generate a mask larger than 32bits.
  303:           The bug yielded incorrect rounding behaviour on 64bit platforms.
  304: 
  305: 2007-08-05  Shiro Kawai  <shiro@acm.org>
  306: 
  307:         * ext/net/test.scm: Avoid using "ip" for testing getprotobyname/
  308:           getprotobynumber, since the official name of protocol number 0
  309:           has been changed and we're in transition phase.  Using "icmp"
  310:           instead.
  311: 
  312:         * libsrc/file/util.scm (copy-file): Added :keep-mode keyword arg.
  313: 
  314: 2007-08-02  Shiro Kawai  <shiro@acm.org>
  315: 
  316:         * src/syslib.stub (sys-umask): Support omitting mode to query
  317:           the current umask without changing it.
  318: 
  319: 2007-07-31  Shiro Kawai  <shiro@acm.org>
  320: 
  321:         * libsrc/srfi-13.scm (%string-*case!): fixed a bug that caused an
  322:           error when the last optional args are omitted for string-downcase!
  323:           etc.
  324: 
  325: 2007-07-25  Shiro Kawai  <shiro@acm.org>
  326: 
  327:         * src/hash.c (string_access): fixed invalid argument passed to
  328:           Scm_Error (ScmHashTableCore* is not ScmObj).
  329: 
  330: 2007-07-16  Shiro Kawai  <shiro@acm.org>
  331: 
  332:         * src/number.c (Scm_GetDouble): fixed a bug on big ratnum coercion
  333:           that caused SEGV in some cases.
  334:           (Scm_NumCmp): fixed a bug on comparing small ratnum with big
  335:           denominator with fixnum.
  336: 
  337: 2007-07-10  Shiro Kawai  <shiro@acm.org>
  338: 
  339:         * libsrc/gauche/collection.scm: Added find-min, find-max, and 
  340:           find-min&max.
  341: 
  342: 2007-06-30  Shiro Kawai  <shiro@acm.org>
  343: 
  344:         * src/scmlib.scm (error): error message formatting routines didn't
  345:           consider circular structure, causing SEGV when such a structure
  346:           is given to error/errorf.
  347: 
  348: 2007-06-22  Shiro Kawai  <shiro@acm.org>
  349: 
  350:         * src/compile.scm (cond, case): exclude dotted list from clauses
  351:           and properly reports syntax error instead of SEGV.
  352:         * lib/rfc/http.scm (request-response): fixed a bug that ignores
  353:           :sink and :flusher keyword arguments.
  354:         * lib/gauche/interactive/info.scm (viewer): fixed malformed
  355:           with-signal-handlers (enbugged when we rewrite with-error-handler
  356:           to guard?)
  357:         * ext/uvector/uvector.c.tmpl (Scm_WriteBlock): added a missing breaks.
  358:           (Scm_UVectorCopy, Scm_UVectorSwapBytes, Scm_UVectorSwapBytesX):
  359:           f16vector support was missing.
  360:         * src/vm.c (get_debug_info): fixed a bug in the range check.
  361: 
  362: 2007-05-31  Shiro Kawai  <shiro@acm.org>
  363: 
  364:         * src/hash.c, src/weak.c, src/gauche/hash.h, src/gauche/weak.h,
  365:           src/extlib.stub: some additions for weak hash tables.  unfortunately
  366:           I found the current hash core implementation doesn't go well with
  367:           key-weak hash table, and am planning to replace hash core
  368:           implementation; for the time being, I freeze development of 
  369:           weak hash tables.
  370: 
  371: 2007-05-22  Shiro Kawai  <shiro@acm.org>
  372: 
  373:         * lib/rfc/ftp.scm (req&send, ftp-put-unique): made ftp-put-unique
  374:           to return two values, a final server's response and the remote
  375:           file path given by 1xx response.  AN INCOMPATIBLE API CHANGE.
  376:           But I assume nobody has been used ftp-put-unique seriously,
  377:           for it is almost useless without obtaining the generated remote path.
  378: 
  379:         * configure.ac: shows some of the configuration parameters
  380:           at the end, upon a request.
  381: 
  382:         * ext/net/netlib.stub (sockaddr-addr): fixed inet6 address bug
  383:           in LP64 architectures, and also adaped to gauche.cgen.cise.
  384: 
  385:         * lib/rfc/ftp.scm (call-with-ftp-connection): Fix passing wrong
  386:           keyword argument to ftp-login.
  387: 
  388:         * src/number.c (Scm_NumCmp): Fixed a bug that raises an error when
  389:           attempted to compare bignum and infinity.
  390: 
  391:         * lib/slib.scm.in (force-output): oversight.  made it an alias of
  392:           flush.
  393: 
  394:         * src/main.c (main): temporarily avoided using new Scm_Apply API
  395:           due to the bug that lost stack traces.
  396: 
  397: 2007-05-21  Shiro Kawai  <shiro@acm.org>
  398: 
  399:         * src/gauche/charset.h (SCM_CHAR_SET etc): Changed CHARSET in
  400:           macro names to CHAR_SET for the consistency.  Old names are
  401:           defined for compatibility but will fade out.
  402:         * src/char.c, src/regexp.c, src/class.c: changed accordingly.
  403: 
  404:         * lib/gauche/cgen/cise.scm: Allow embedding Scheme constants
  405:           by quote form.  Allow omitting type declaration if it's ScmObj.
  406:           Some more conveniece macros.
  407:         * src/extlib.stub: changed to use gauche.cgen.cise more.
  408: 
  409: 2007-05-19  Shiro Kawai  <shiro@acm.org>
  410: 
  411:         * lib/gauche/miscutil.scm: added.
  412:         * src/autoload.scm: added autoload for gauche.miscutil.
  413: 
  414:         * lib/gauche/cgen/cise.scm: added.  A utility to generate C code
  415:           from S-expression.  The spec is still experimental and may be
  416:           tweaked.
  417:         * src/genstub, src/stdlib.stub, src/extlib.stub: changed to use
  418:           gauche.cgen.cise module.
  419:         * lib/Makefile.in, lib/gauche/cgen/unit.scm: changed accordingly.
  420: 
  421: 2007-05-15  Shiro Kawai  <shiro@acm.org>
  422: 
  423:         * ext/fcntl/fcntl.c, ext/net/netdb.c, ext/termios/termios.c,
  424:           ext/threads/mutex.c, src/class.c, src/codec, src/compaux.c,
  425:           src/error.c, src/genstub, src/proc.c, src/system.c:
  426:           Use SCM_CLASS_SLOT_SPEC_END() macro instead of literal constant.
  427:           Patch from MUTOU Masayuki.
  428: 
  429: 2007-05-04  Shiro Kawai  <shiro@acm.org>
  430: 
  431:         * lib/gauche/interpolate.scm (%string-interpolate): recognize '[' and
  432:           '{' as the beginning of unquoted expression as well.
  433: 
  434:         * src/genstub, lib/gauche/cgen/unit.scm, lib/gauche/cgen/literal.scm:
  435:           Further integrated genstub's code into gauche.cgen.*.  Changes
  436:           include: Cpp conditions are now supported by <cgen-node>.
  437:           The subclass of <cgen-node> should override cgen-emit-* methods,
  438:           not the cgen-emit method.  Some of literal handling code
  439:           are moved to gauche.cgen.*.
  440:           Also experimentally testing shorthand notation of ref.
  441: 
  442: 2007-04-26  Shiro Kawai  <shiro@acm.org>
  443: 
  444:         * src/genstub: Refactored to utilize more features of gauche.cgen;
  445:           the original genstub predated gauche.cgen and had many kludges
  446:           that gauche.cgen solved better.
  447: 
  448:         * src/gauche/port.h: Fixed a problem that compatibility functions
  449:           are not declared when necessary (#ifdef area got wrong).
  450: 
  451: 2007-04-23  Shiro Kawai  <shiro@acm.org>
  452: 
  453:         * lib/gauche/cgen.scm, lib/gauche/cgen/unit.scm,
  454:           lib/gauche/cgen/literal.scm: Splitted gauche.cgen module for
  455:           modularity and readability.
  456: 
  457: 2007-04-22  Shiro Kawai  <shiro@acm.org>
  458: 
  459:         * ext/auxsys/auxsys.scm (sys-realpath): typo fix.
  460: 
  461: 2007-04-21  Shiro Kawai  <shiro@acm.org>
  462: 
  463:         * src/gauche/weak.h, src/weak.c: Start adding weak hash table
  464:           (not finished yet).
  465:         * src/hash.c: added Scm_HashCoreInitGeneral.
  466: 
  467: 2007-04-20  Shiro Kawai  <shiro@acm.org>
  468: 
  469:         * src/extlib.stub (hash-table-clear!): added.
  470: 
  471:         * ext/net/net.c (init_winsock): typo fix for mingw.
  472: 
  473: 2007-04-18  Shiro Kawai  <shiro@acm.org>
  474: 
  475:         * release 0.8.10
  476: 
  477:         * lib/www/cgi.scm (cgi-main): fix to make error handler called 
  478:           correctly.
  479:         * src/system.c (copy_win32_path): bug fix on mingw.
  480: 
  481: 2007-04-17  Shiro Kawai  <shiro@acm.org>
  482: 
  483:         * src/vm.c, src/vminsn.scm, src/compile.scm: Inline inexact arithmetic
  484:           operators (+., -., *. and /., as NUMIADD2, NUMISUB2, NUMIMUL2, and
  485:           NUMIDIV2).  These operators are meant for performance tuning, so
  486:           it's better to make them as fast as normal operators.
  487: 
  488:         * ext/net/netlib.stub (inet-checksum): fix for big-endian machines.
  489:         * src/hash.c (NOTFOUND): added missing 'return'.
  490:         * src/gauche/bits.h (SCM_BITS_TEST): fix for 64bit platform
  491: 
  492: 2007-04-16  Shiro Kawai  <shiro@acm.org>
  493: 
  494:         * ext/charconv/cvt.scm (generate-utf8->eucj): fix for not generating
  495:           mappings from U+0080-U+009f range; they produced wrong EUC sequence,
  496:           causing troubles.  Now they are replaced to alternative characters.
  497: 
  498: 2007-04-15  Shiro Kawai  <shiro@acm.org>
  499: 
  500:         * src/port.c, src/scmlib.scm, src/stdlib.stub, src/extlib.stub,
  501:           src/gauche/port.h:  Made current-{input|output|error}-port
  502:           like parameters, allowing replacing them.  Moved implementation
  503:           of with-input-from-port etc. to Scheme (scmlib.scm), hence dropping
  504:           them from extlib.stub.  Scm_WithPort is also dropped.
  505:           New API Scm_SetCurrentInputPort etc.
  506:           The old Scm_WithPort had a bug that didn't set a proper "before"
  507:           thunk for dynamic-wind.  The bug doesn't exist in the new version.
  508: 
  509:         * src/genstub (emit-definition): removed remanings of GAUCHE_SUBR_VM
  510:           support.
  511:           (<procstub>): moved several slots from <cproc> to fix define-cmethod.
  512:           (define-cmethod): fixed incorrectly placed close paren.
  513:           (parse-specialized-args): reversing parsed arglist.
  514:           (process-body-spec): removed remainings of GAUCHE_VMAPI_VM support
  515: 
  516:         * src/gauche/mingw-compat.h: added #undef small, for <windows.h>
  517:           defines 'small' to 'char'.
  518:         
  519: 2007-04-13  Shiro Kawai  <shiro@acm.org>
  520: 
  521:         * lib/www/cgi.scm: Fixed a bug that hangs when Content-Length is zero
  522:           (Patch from Tatsuya BIZENN).
  523: 
  524:         * src/hash.c (Scm_HashIterInit, Scm_HashIterNext): changed so that
  525:           the initial iterator points "one before the first entry" and
  526:           the 'next' operation returns an entry after proceeding the pointer.
  527:           It is consistent with Scm_TreeMapInit/Next. - Nope.  Reverted.
  528:           If the caller happens to delete the curent entry from the table,
  529:           the new version of the iterator loses the iteration.  We can prevent
  530:           that by letting the iterator prefetch the next entry---but the code
  531:           to do prefetch is exactly the same the previous version was doing!
  532:           (The change would be visible if we have HashIterCurrent, but it
  533:           seems little use so we dropped it.  If we ever re-adopt
  534:           HashIterCurrent do not forget to keep the current entry pointer
  535:           as well as the 'next' prefetch pointer).
  536: 
  537: 2007-04-11  Shiro Kawai  <shiro@acm.org>
  538: 
  539:         * src/write.c (Scm_Sprintf, Scm_SprintfShared, Scm_Vsprintf): added
  540:           convenience functions.
  541:         * src/error.c : changed to use above new APIs.
  542: 
  543:         * src/load.c, src/gauche/load.h (Scm_Load, Scm_LoadFromPort,
  544:           Scm_Require): New APIs for better error handling.
  545:         * src/read.c, src/main.c, src/extlib.stub, src/char.c:
  546:           changed accordingly.
  547: 
  548: 2007-04-08  Shiro Kawai  <shiro@acm.org>
  549: 
  550:         * src/collection.c, src/gauche/colleciton.h: Make SCM_DICT_SET_VALUE
  551:           to check iff given value isn't an obviously illegal value (e.g. 
  552:           NULL or SCM_UNBOUND), for the safety.
  553:         * src/module.c: Replaced old hashtable APIs for the new ones.
  554: 
  555: 2007-04-07  Shiro Kawai  <shiro@acm.org>
  556: 
  557:         * src/char.c (Scm_CharSetLE): fixed a bug.
  558: 
  559:         * lib/gauche/test.scm: record "abort count", the # of test processes
  560:           aborted, as well.
  561: 
  562:         * src/hash.c, src/gauche/hash.h, src/gauche.h: Changed hashtable API
  563:           for consistency of dictionary API.  This introduces incompatibility
  564:           in Scm_HashIterInit and Scm_HashIterNext, which we provide the
  565:           backward compatibility routines by default; defining GAUCHE_API_0_9
  566:           make the new API visible.  Also we deprecate Scm_HashTableGet,
  567:           Scm_HashTablePut, and Scm_HashTableAdd, in favor of the new
  568:           APIs Scm_HashTableRef and Scm_HashTableSet.  (Scm_HashTableDelete
  569:           is also changed, but it only changes its return type which isn't
  570:           used much.)   All the "raw" hashtable support is dropped, in favor
  571:           of ScmHashTableCore.
  572:         * src/class.c, src/extilb.stub, src/module.c: Changed to adapt the
  573:           new hashtable API.
  574: 
  575: 2007-04-06  Shiro Kawai  <shiro@acm.org>
  576: 
  577:         * lib/text/progress.scm: fix.
  578:         * examples/text-progress.scm: added.
  579: 
  580: 2007-04-04  Shiro Kawai  <shiro@acm.org>
  581: 
  582:         * src/gauche/charset.h: splitted char-set related API decls.
  583:         * src/char.c: rewrote ScmCharSet using ScmBits and ScmTreeCore.
  584:           API rename for consistency: Scm_CopyCharSet -> ScmCharSetCopy.
  585:         * src/treemap.c: adjust some APIs based on the experience of
  586:           reimplementing ScmCharSet.
  587: 
  588:         * src/gauche/collection.h (ScmDictEntry): make 'key' member const.
  589: 
  590: 2007-03-31  Shiro Kawai  <shiro@acm.org>
  591: 
  592:         * src/gauche/bits.h, src/bits.c: added ScmBits, generic bitarray
  593:           operation support.  A plan is to use this to cleanup charset
  594:           implementation and also for CL-ish bitvector.  Some other
  595:           datastuructures may take advantage of this.
  596:         * src/char.c: using ScmBits for the small character maps.
  597: 
  598:         * src/core.c (init_cond_features): adds the feature gauche.sys.pthreads
  599:           if Gauche is compiled w/ pthread support.
  600: 
  601:         * src/syslib.stub (sys-symlink): defines sys-symlink conditionally,
  602:           with the feature identifier gauche.sys.symlink.
  603: 
  604: 2007-03-28  Shiro Kawai  <shiro@acm.org>
  605: 
  606:         * src/core.c: defines the feature identifier gauche.sys.pthreads
  607:           if Gauche is compiled with pthreads enabled.
  608: 
  609: 2007-03-27  Shiro Kawai  <shiro@acm.org>
  610: 
  611:         * test/system.scm: use sys-nanosleep instead of sys-sleep if
  612:           possible, to reduce the time of test.
  613: 
  614:         * ext/auxsys/auxsys.c (Scm_SetEnv): added a wrapper routine for
  615:           sys-putenv and sys-setenv, so that we can use whichever available
  616:           on the system.  Importantly, this will fix the leak problem of
  617:           sys-putenv on the common platform that supports setenv(3).
  618:         * ext/auxsys/auxsys.scm: cleanup some cond-expands.
  619: 
  620: 2007-03-26  Shiro Kawai  <shiro@acm.org>
  621: 
  622:         * src/stdlib.stub (vector-ref, vector-set!),
  623:           src/vector.c (Scm_VectorRef, Scm_VectorSet): we can't use ::<fixnum>
  624:           type for the index of vector-ref, since bignum is allowed if
  625:           fallback is also given.  Because of this, we moved range check
  626:           to stub, and made Scm_VectorRef not raise an error.  Similar change
  627:           on vector-set! for consistency.
  628: 
  629:         * src/vm.c (SCM_VEC_REF etc): fix error message.  if bignum is given
  630:           as an index, the message should be "out of bound" instead of
  631:           wrong type argument.
  632: 
  633:         * src/number.c (Scm_GetDouble): handles the corner case when ratnum
  634:           has very large denominator and/or numerator.
  635: 
  636:         * src/treemap.c, src/gauche/treemap.h: Renamed and cleaned up some
  637:           treemap API for the consistency.
  638: 
  639: 2007-03-24  Shiro Kawai  <shiro@acm.org>
  640: 
  641:         * ext/net/net.ac: added a hack to avoid dragonfly's broken 
  642:           gethostbyaddr_r.
  643: 
  644: 2007-03-23  Shiro Kawai  <shiro@acm.org>
  645: 
  646:         * configure.ac, gc/configure.in, gc/libtool.m4: Patched to support
  647:           DragonFly BSD.
  648: 
  649:         * ext/net/addr.c, ext/net/test.scm: struct in6_addr.s6_addr32 isn't
  650:           portable, so we roll our own.  also make sure we won't run ipv6
  651:           inet_pton/ntop if Gauche isn't configured with ipv6.  Patch from
  652:           Tatsuya BIZENN.
  653: 
  654: 2007-03-22  Shiro Kawai  <shiro@acm.org>
  655: 
  656:         * ext/sxml/sxml-ssax.scm.in: extend text.parse as well, for
  657:           ssax:make-parser inserts assert-curr-char.
  658: 
  659:         * ext/mt-random/mt-random.c (mt_allocate): Seed initialization was
  660:           broken when seed is given to the initialization argument.
  661:           Consolidated mt-random-set-seed! and seed initialization into
  662:           Scm_MTSetSeed.
  663: 
  664:         * ext/net/netaux.scm, ext/net/netlib.stub, ext/net/net.c:
  665:           Implemented inet-address->string and inet-string->address in C,
  666:           using inet_pton and inet_ntop.
  667: 
  668: 2007-03-21  Shiro Kawai  <shiro@acm.org>
  669: 
  670:         * ext/srfi/srfi-19-lib.scm (tm:directives): fix date formats to make
  671:           them iso-8601 compliant.
  672: 
  673: 2007-03-16  Shiro Kawai  <shiro@acm.org>
  674: 
  675:         * ext/dbm/dbm.ac: checks for ndbm funcs in more libraries.
  676:         * ext/xlink: allow no file arguments; depending on configuration,
  677:           both $(LIBFILES) and $(SCMFILES) can be empty in ext/Makefile.ext.
  678:         * src/genconfig.in: be friendly to autoconf 2.60.
  679: 
  680:         * lib/gauche/dictionary.scm: dictionary generic functions.
  681:           experimental.
  682:         * src/objlib.scm: added 'ref' and 'set!' methods for tree-map.
  683: 
  684: 2007-03-15  Shiro Kawai  <shiro@acm.org>
  685: 
  686:         * lib/rfc/icmp.scm: added ICMPv6 support.
  687:         
  688:         * ext/net/net.c, ext/net/netlib.stub (inet-checksum+): added 
  689:           inet-checksum+, which can be used to combine checksums; handy
  690:           for IPv6 packet checksum calculation, for it requires including
  691:           pseudo-IPv6 header.  See RFC2460 sectin 8.1.
  692:           Nope! reverted.  Kernel takes care of IPv6 checksum, so we
  693:           don't need it.
  694: 
  695: 2007-03-14  Shiro Kawai  <shiro@acm.org>
  696: 
  697:         * ext/net/addr.c (sockaddr_in6_allocate): fixed memory leak (missing
  698:           freeaddrinfo).
  699: 
  700: 2007-03-12  Shiro Kawai  <shiro@acm.org>
  701: 
  702:         * src/error.c, src/gauche/exception.h: Dropped <application-exit>
  703:           exception; it doesn't work well.  The most annoying part is
  704:           that the exception may be shadowed by other exceptions if the
  705:           latter is thrown within the error handler; it does happen, for
  706:           example, in the cleanup clause of unwind-protect.  We still want
  707:           the applictation to exit without reporting stack trace even something
  708:           fails in cleanup handlers.  It seems that application-exit needs
  709:           different mechanism to trap (e.g. exit-handler) after all.
  710: 
  711: 2007-03-11  Shiro Kawai  <shiro@acm.org>
  712: 
  713:         * src/number.c (Scm_RoundToExact), src/extlib.stub (round->exact etc):
  714:           implemented round->exact etc in C, for it can avoid some overhead
  715:           and makes them much faster.  Since the operation is so common I
  716:           think it's worth of it.
  717:         * lib/gauche/numerical.scm, src/autoloads.scm: removed round->exact
  718:           etc, for they're in extlib.stub now.
  719: 
  720: 2007-03-10  Shiro Kawai  <shiro@acm.org>
  721: 
  722:         * src/genconfig.in : Lets genconfig generate lib/gauche/config.scm,
  723:           so that gauche.config no longer needs to call gauche-config command.
  724:         * lib/gauche/config.scm: Removed from repository, for it is now
  725:           generated by src/genconfig.
  726: 
  727: 2007-03-09  Shiro Kawai  <shiro@acm.org>
  728: 
  729:         * src/Makefile.in (HOSTGOSH): reset GAUCHE_LOAD_PATH and 
  730:           GAUCHE_DYNLOAD_PATH to avoid unexpected interference.
  731: 
  732:         * ext/auxsys/auxsys.scm (sys-fdset): added a convenience constructor
  733:           of <sys-fdset>.
  734: 
  735: 2007-03-06  Shiro Kawai  <shiro@acm.org>
  736: 
  737:         * lib/text/progress.scm: added.
  738: 
  739:         * src/gauche-init.scm, src/scmlib.scm: moved string-interpolate
  740:           read-ctor and <exception> definition from gauche-init.scm to
  741:           scmlib.scm.  We can't move three define-macro stuff yet, since
  742:           gencomp doens't preserve macro definitions, but eventually we
  743:           want to eliminate gauche-init.scm totally.
  744:         * lib/gauche/numerical.scm, src/autoloads.scm: added
  745:           round->exact, floor->exact, ceiling->exact and truncate->exact.
  746: 
  747: 2007-03-05  Shiro Kawai  <shiro@acm.org>
  748: 
  749:         * src/main.c: Added -F<feature> option and -L<file> option.
  750: 
  751: 2007-03-04  Shiro Kawai  <shiro@acm.org>
  752: 
  753:         * src/main.c: Handle <application-exit> during execution of 'main'
  754:           procedure.
  755: 
  756: