
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: