2007-01-28  ivan demakov  <idema@mail.ru>

	* License changed to LGPL

2004-07-08  ivan demakov  <ivan@ac-sw.com>

	* si/ksi_numb.c (ksi_div): fixed division bignum by shortnum

2002-06-08  ivan demakov  <idema@mail.ru>

	* si/ksi_numb.h (CNT_ZERO): fixed bug

2002-06-07  ivan demakov  <ivan@ac-sw.com>

	* si/ksi_sign.c: disable use of SIGPOLL on sun
	(INOUT_BY_SIGIO): use of SIGPOLL replaced by SIGIO

	* interp/ksi.c (main): ksi_malloc replaced by ksi_malloc_eternal

2002-06-06  ivan demakov  <idema@mail.ru>

	* si/ksi_conf.h: fixed KSI_INT_BITS definition

2002-02-08  ivan demakov  <ivan@ac-sw.com>

	* si/ksi_shel.c (ksi_split_path): added new function

2002-02-07  ivan demakov  <idema@mail.ru>

	* si/ksi_str.c (string_less_p, string_ci_less_p): strings compared using
	current collation ordering

2002-01-19  ivan demakov  <idema@mail.ru>

	* doc/ksi-lang.texi: some stylistic improvments

	* si/ksi_int.h (struct Ksi_Interp): sym_var renamed to sym_locvar

	* si/ksi_core.h (CORE_LOCVAR_*): CORE_VAR_* macros renamed to CORE_LOCVAR_*

2001-12-12  ivan demakov  <idema@mail.ru>

	* si/ksi_bool.c (ksi_equal_p): added core test

2001-11-24  ivan demakov  <idema@mail.ru>

	* si/ksi_char.c: chars compared using current collation ordering

2001-11-18  ivan demakov  <idema@mail.ru>

	* si/ksi_writ.c (ksi_obj2str): short cases moved to begin of switch
	(ksi_obj2str): added printing of core

2001-11-10  ivan demakov  <idema@mail.ru>

	* si/ksi_vect.c (ksi_alloc_vector): added parameter TAG

2001-10-10  ivan demakov  <idema@mail.ru>

	* si/ksi_socket.c (socket_set_async): fixed typo

2001-09-15  ivan demakov  <idema@mail.ru>

	* si/ksi_misc.c	(ksi_make_const_pointer): new function

2001-08-28  ivan demakov  <idema@mail.ru>

	* configure.in: use of automake-2.52

2001-08-27  ivan demakov  <ivan@ac-sw.com>

	* gc_build/Makefile.am (libgc.la): libgc now compiled as shared library

	* use of gc-6.0, libtool 1.4, automake-1.5

2001-07-28  ivan demakov  <idema@mail.ru>

	* lib/klos.scm (change-class): implemented initial version

2001-07-27  ivan demakov  <idema@mail.ru>

	* si/ksi_klos.c (ksi_modify_instance): new primitive
	(ksi_new_instance): new allocation as `struct Ksi_Instance' changed
	(ksi_slot_exist_in_class_p): new primitive

	* si/ksi_klos.h (struct Ksi_Instance): `slots' now pointer to array of slots

2001-06-19  ivan demakov  <ivan@ac-sw.com>

	* ext/regexp/ksi_regexp.c (ksi_regexp_exec): switched to pcre-3.4

2001-05-21  ivan demakov  <idema@mail.ru>

	* si/ksi_sign.c (INOUT_BY_ALRM): if INOUT_BY_ALRM defined, SIGALRM handler
	tests waiting input/output events, and def_wait_input/def_wait_output
	install timer with period INOUT_POLL_TICK to force periodical test of
	wainting input/output events

2001-05-11  ivan demakov  <idema@mail.ru>

	* configure.in (TERMCAP_LIB): if cannot find termcap lib, try ncurses

	* ext/record.scm (make-record-type): srfi-9 implemented

	* si/ksi_env.c (ksi_defined_p): if variable not defined in current
	environment, see in global environment

2001-04-29  ivan demakov  <idema@mail.ru>

	* si/ksi_evt.c (ksi_current_event_mgr): new function that returns
	current event manager

	* si/ksi_type.h (struct Ksi_Event_Mgr): `init' and `term' functions added

	* si/ksi_evt.c (ksi_register_event_mgr): returns old event manager,
	calls `init' and `term' on registering and deregistering event manager

2001-04-16  ivan demakov  <idema@mail.ru>

	* acconfig.h (KLOS_EXTENTION): removed
	And all references to KLOS_EXTENSION removed

	* configure.in (--enable-klos): removed
	It is no reason that this option can break a program, but
	absence of this option can break some

	* si/ksi_port.c: magical number 4096 replaced with MAX_BUFSZ
	(ksi_read_block): if size >= MAX_BUFSZ alloc buf with ksi_malloc_data,
	not with alloca, to save stack space

	* si/ksi_init.c (ksi_copyright): new procedure
	that returns string with ksi copyrights
	(ksi_banner): returned string has no copyrights

2001-04-13  ivan demakov  <idema@mail.ru>

	* si/ksi_load.c (ksi_load_msg): write informational message only if
	KSI->inited > 2.  This suppress messages about loading
	while initialisation.

	* si/ksi_init.c (ksi_init): set KSI->inited to 1 after call
	of ksi_init_interp; to 2 before load of "Init.scm";
	and to 3 at end of `ksi_init'.  If set KSI-inited too late, scheme scripts
	do not execute termination code (see `ksi_term') and as example,
	open files do not flushed and closed.

	* interp/ksi.c (main): rewriten

	* si/ksi_load.c (ksi_load_dumped): Port now closed with `ksi_close_port',
	not `close' function.

2001-04-04  ivan demakov  <idema@mail.ru>

	* si/ksi_evt.c: rewriten

	* si/ksi_exep.c (ksi_throw_fatal): renamed from ksi_throw_exit

2001-03-25  ivan demakov  <idema@mail.ru>

	* si/ksi_misc.c (printf_double): check for -0.0

	* si/ksi_numb.c (double2str, ksi_rectangular): check for -0.0


2001-03-24  ivan demakov  <idema@mail.ru>

	* lib/modules.scm (define-global): new syntax

	* si/*.c `*load-expand-hook*' renamed to `*system-expander*'

2001-03-14  ivan demakov  <ksion@narod.ru>

	* si/ksi_port.c (file_r_ready, file_w_ready): use poll if exists

2001-01-30  ivan demakov  <idema@mail.ru>

	* si/ksi_numb.c (ksi_str2flo): fixed bug with numbers like `#x1La'
	(double2str): exponent symbol now is `E' (was `e').

2001-01-09  ivan demakov  <idema@mail.ru>

	* si/ksi_read.c (ksi_read_const): new function,
	works like `ksi_read' but return constant objects

2000-12-26  ivan demakov  <idema@mail.ru>

	* si/ksi_evt.c (ksi_ready_event): new event type -- event that always ready

2000-12-02  ivan demakov  <idema@mail.ru>

	* ext/regexp: switched to pcre-2.05

2000-12-01  ivan demakov  <idema@mail.ru>

	* ext/z/ksi_z.c: rewritten

	* si/ksi_init.c (ksi_term): function `ksi_term_dynl' called before
	`ksi_term_event' and `ksi_term_ports'.

2000-11-14  ivan demakov  <demakov@users.sourceforge.net>

	* si/ksi_dump.c: rewritten

2000-11-12  ivan demakov  <demakov@users.sourceforge.net>

	* si/ksi_prim.c: completly rewritten

2000-10-30  ivan demakov  <demakov@users.sourceforge.net>

	* 3.3.3 released

Wed Oct 18 19:05:07 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* lib/modules.scm: file "modules" from application directory
	not more loaded.  This feature no more need.

	* lib/modules.scm ((use-module name . args)): argument NAME
	may be list with path to "modules" file that contains
	module definitions.

	* si/ksi_env.c (ksi_set_current_env): new primitive function

Tue Oct 17 19:02:10 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* (bzero): memset(p,0,n) replaced by bzero(p,n)

Sun Oct 15 19:19:33 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* 3.3.2 released

	* si/ksi_port.c (ksi_write_block): new function

Sun Oct  8 16:58:55 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_evt.c (ksi_sleep): new function

	* si/ksi_misc.c: time functions moved to "si/ksi_time.c"

Mon Oct  2 02:11:16 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_sign.c (ksi_init_signals): remove SA_RESTART flag from SIGINT
	sigaction.

Thu Sep 21 20:21:54 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* ksi-3.3.1 released

Mon Sep 18 20:38:59 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_port.c (file_close, file_flush, ksi_term_ports):
 	if port in async (nonblocking) mode do not wait for write readiness,
 	but set blocking mode before writing buffered data.
  	So we can get error if port will never be ready.

Sun Sep 10 19:45:59 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_shel.c (ksi_exp_fname): if dir == ksi_false do not
	expand file name

	* si/ksi_port.c (file_read): read all requested bytes
	(was: when reading large amount of bytes can read less
	that available)

	* si/ksi_str.c (ksi_str2string, ksi_make_string): string object
	alloc'ed with typed allocation to avoid garabage collecting
	the context of string when `ptr' field of string assigned
	somewhere (string ports is example)

Sat Sep  9 14:33:43 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* ksi-3.3.0 released

	* si/ksi.h (KSI_CONS2 ... KSI_CONS9): new macros (like KSI_LISTn
	but make improper list).

	* si/ksi_misc.c (gc_free_size): new primitive `ksi:gc-free'
 	* si/ksi_misc.c (gc_collections): new primitives `ksi:gcollections'

Sat Aug 26 16:02:17 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/*.c: all file and socket code rewritten

	* si/ksi_int.h (struct Ksi_FdPort): structure for all fd port
 	(files, socket, etc).

	* si/ksi_type.h (struct Ksi_Port): structure changed

Fri Aug 18 22:50:51 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_jump.c (ksi_init_jump): new function that initialize
	long jump buffer and copies stack

	* si/ksi_exep.c (ksi_new_continuation, ksi_continuation):
	ksi_new_continuation now creates escape procedure only,
	new function ksi_continuation do what old ksi_new_continuation
	did (creates escape procedure and calls setjmp)

	* si/ksi_int.h (struct Ksi_Interp): field jump_val added

	* si/ksi_jump.h (struct Ksi_Jump): field jump_val removed

	* si/ksi_eval.c (ksi_eval_int): call/cc code now copies minimum
	amount of stack and directly call setjmp (old code used
	ksi_new_continuation for creating continuation and catching
	a call escape procedure).  This allows collect more garbage.

	* si/ksi_evt.c (port_invoke, port_check, port_setup): if port
	closed, event removed automaticaly

Wed Aug 16 16:25:23 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_misc.c (ksi_vprintf): implemented my own version
	of printf family functions.  So ksi_printf and friends
	are system indepented and works on all supported platform
	in equal fashion.

Thu Jul 27 20:45:54 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_gc.c (ksi_malloc_data): new function, that
	replaces ksi_malloc_atomic and ksi_malloc_large_data

	* si/ksi.h (ksi_unspec): removed (use ksi_void insteed)

	* si/ksi_bio.c (ksi_getc): function removed

	* si/ksi_base.c (ksi_init_std_input, ksi_init_std_output,
	ksi_init_std_error):  functions removed
	(ksi_init_std_ports): arguments now is fd, not FILE*

Fri Jul 21 18:45:06 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* lib/compiler.scm ((info-progress n)): progress indicator changed

Thu Jul 13 22:32:07 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_load.c (correct_version): do range check
	(ko_version): contains 2 elems -- min and max version

	* si/ksi_misc.c (gc_set_heap_size): new primitive `ksi:gc-set-size!'

Wed Jul 12 21:14:44 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* ksi-3.2.5 released

	* example/Makefile.am: emp example removed.
	It no more need for me, and as example is a garbage

	* si/ksi_evt.c (ksi_do_events): fixed bug with restart events
	(ksi_start_event): if active event started, it stoped and restarted

Sun Jul  9 18:41:08 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* ksi-3.2.4 released

Wed Jul  5 19:59:59 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_socket.c (INBUFSZ, OUTBUFSZ): defined to 4096, not 512
	(socket_close): flushes buffered output by own hands and
	frees buffers before throwing exception (if any),
	that can prevent heap growing in some unusual cases.

	* gc_build/Makefile.am:  Use of gc-5.1

	* si/ksi_evt.c (port_setup): in async mode calls port's
	input_ready/output_ready function to check for port readiness.
  	If not to do this, next check for readiness occur only after
 	timeout expired (and async input/output is very slow).

	* si/ksi_type.h (struct Ksi_Event): new field `result' added

	* si/ksi_evt.c (ksi_do_events): rewritten to fix problem
	with many ready events

Tue Jul  4 17:53:52 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_socket.c (ksi_open_server_socket): set SO_REUSEADDR
	socket option

	* lib/Main.scm: `-L' option added

	* lib/record.scm: fixed bug that prevents use of record module

Sat Jul  1 15:44:23 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_socket.c (socket_out): if not all data can be sent
	immedialy, creates async event that send data in background.

	* si/ksi_type.h (struct Ksi_Port_Tag): input_fd and output_fd now
	are 1-argument functions (2'nd argument not need now)

	* si/ksi_err.c (ksi_errlog_priority): renamed ksi_set_errlog_priority

Thu Jun 15 23:06:09 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* ksi-3.2.3 released

Thu Jun  8 21:41:06 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_socket.c (ksi_open_client_socket): nonblocking mode
	is set before connecting, this allows async connection
	(ksi_accept_connection): nonblock argument removed
	(ksi_set_nonblocking_mode): new function that set and reset
	nonblocking mode on socket.

Tue Jun  6 19:51:27 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_str.c (ksi_string_append): can append chars

	* lib/Boot.scm: all from "util.scm" and "sort.scm" moved here

	* lib/util.scm, lib/sort.scm: removed

Tue May 23 20:15:07 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_load.c (ksi_try_load): argument init added

Wed May 17 17:25:52 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_evt.c (setup_events): clear r_set and w_set before return.
	Without this wait-event signals error when no one event active.

Mon May 15 23:11:06 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_numb.h: use `long long int' if compiler supports it

	* joke/joke.c: renamed from "joke.cc"

	* configure.in (KSI_LIBS): -lsocket check added

Sat May 13 15:49:19 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_init.c (ksi_app_path): new public function

	* lib/Init.scm, lib/Boot.scm, lib/modules.scm:
 	removed `*module-catalog*' and `add-module-path!';
	additional "modules.scm" now loaded from app-dir
	when main "modules.scm" loaded

	* lib/modules.scm (define-module): variable with the same name as
	module name initialized with the module itself not a symbol

	* ext/modules.scm: file deleted, all module definition moved
 	to "lib/modules.scm"

	* ext/Makefile.am: all data files now installed
 	to "$(VERSION)" directory, not "ext"

Fri May 12 01:24:49 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* ksi-3.2.2 released

Tue May  2 17:46:14 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_comp.c (gen_let_body, ksi_comp_sym): letrec bindings
	sorted by dependence order

Wed Apr 26 00:00:35 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_port.c (ksi_port_ready_p): new primitive.
	Works like `ksi_char_ready_p', but checks readiness for output.

Tue Apr 18 16:10:27 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* ksi_time.c (ksi_cpu_time, ksi_eval_time): under Windows-NT
	make use of Win32 API `GetProcessTimes' function

Sat Apr 15 21:17:31 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_time.c (ksi_cpu_time, ksi_eval_time, ksi_real_time): now
	returns the time in the seconds, not miliseconds, and so corresponding
	scheme primitives (see `ksi_int_cpu_time', `ksi_int_eval_time',
	`ksi_int_real_time')

	* si/ksi_misc.c (ksi_gmtime, ksi_localtime): argument now can
	be any real number, not only exact integer

Fri Apr 14 01:13:06 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* ext/store/phs_data.c (phs_del_data): fixed bug when deleted
	item deletes the data page too (when deleted item is the last
	item on the data page).

Wed Apr 12 15:01:34 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_load.c (ksi_load_dumped, ksi_load_file):
 	call ksi_handle_error in case of error while loading file
	and propogate that error

	* si/ksi_exep.c (ksi_handle_error): new function that can be
	called to handle error
	(ksi_throw_error, ksi_throw_exit): do not call error handlers
	before jumping to catch.

	* si/ksi_err.c: error handling rewritten

Sun Apr  9 23:54:28 2000  Ivan Demakov  <demakov@users.sourceforge.net>

	* si/ksi_err.c (ksi_pr_error): removed

	* si/ksi_exep.c (ksi_throw_exit): first arg removed

Fri Apr  7 08:17:26 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_init.c (ksi_init_interp): *error-verbose*
 	and *warning-verbose* removed

Thu Apr  6 12:06:46 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi.h (ksi_errlog_priority): added

Tue Apr  4 00:08:50 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_socket.c (ksi_open_client_socket): async connection

Mon Apr  3 23:03:42 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_socket.c (ksi_accept_connection): new function

	* si/ksi_evt.c: new file

Fri Mar 31 21:14:22 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_numb.c: fp_zero renamed to ksi_fp_zero

Wed Mar 29 19:17:52 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_klos.c (ksi_slot_bound_p): 'cos ksi_apply_1_with_catch
	now returns EXN if case of error, check this type of value

Tue Mar 28 22:38:55 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_ctrl.c (ksi_apply_proc_with_catch):
	(ksi_eval_str_with_catch):
	(ksi_eval_with_catch): in case of error return the EXN structure,
	not useless ksi_unspec.

Mon Mar 27 01:21:06 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_port.c (nul_port_tag, file_port_tag, str_port_tag): changed
	to conform the new struct Ksi_Port_Tag
	(file_port_tag): check and report i/o errors

	* si/ksi_type.h (struct Ksi_Port_Tag): ops renamed, rearanged
	and added the output_ready op

Sun Mar 26 01:33:49 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_port.c (str_read_char): protection from signed chars
	that can be disinterpreted as EOF

Tue Mar 21 00:33:28 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* ksi-3.2.1 released

	* si/ksi_numb.c (ksi_acosh, ksi_atanh, ksi_asin, ksi_acos): fixed
	bug with real argument that produce complex result.

Mon Mar 20 18:25:27 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/*.c: make use of typed exceptions.

	* si/ksi_err.c (ksi_make_exn, ksi_exn_p, ksi_exn_type,
 	                ksi_exn_message, ksi_exn_value): new primitives

Tue Feb 29 00:31:59 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_dynl.c (fname2pname): the library prefix `lib' removed
 	from library name when bulding the names of init&term procedures

	* si/ksi.h (ksi_void): added alias for ksi_unspec

	* si/ksi_read.c: internal reading functions make use of
	structure `read_state' and so the `read' primitive
	now reenterable.

Mon Feb 28 19:31:00 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_numb.c (ksi_str2flo): {+-}inf.0 and {+-}nan.0 recognized
	same as {+-}inf. and {+-}nan.

Sun Feb 20 17:39:33 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_init.c (load_file): primitive `ksi:loading-file' added.
	Returns name of the loaded file or #f if no such file.

	* si/ksi_int.h (struct Ksi_Interp): `char* loading_file' added

Tue Feb  1 18:38:18 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* ksi-3.2.0 released

Thu Jan 13 21:20:00 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_misc.c (ksi_mktime): new function

	* lib/compiler.scm ((file-time-stamp fn)): time-stamp is written as
	date string not as unix-time number

Wed Jan 12 23:18:12 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_numb.c (ksi_num2int, ksi_int2num): works with long's now
	(ksi_num2uint, ksi_uint2num): new functions

Mon Jan 10 02:14:41 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_numb.c (ksi_num2long, ksi_long2num): `long' now is realy
	the `long long' if it supported by compiler

Sat Jan  8 03:43:47 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* gc_build/Makefile.am: Use of gc-5.0alpha4

Thu Jan  6 02:23:20 2000  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_misc.c (ksi_strftime, ksi_localtime, ksi_gmtime): new
	primitives

	* si/ksi_read.c (skip_ws): fixed detecting of the end of balanced
	comments

	* si/ksi_port.c (ksi_port_ungetc): added test for port unread
	buffer overflow
	(ksi_port_getc, ksi_port_ungetc): added port read position counting
	(ksi_rewind_port): zero'ing port read position and unread buffer

Thu Dec 16 20:29:05 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_init.c (ksi_init_lib_path): more sophisticated
	path resolusion under WIN32.  As usual, environment variable
	`KSI_LIBRARY' points the path where ksi libraries resides.
	But if it is not set, initialization files searched
	first in the "ksi.dll" directory and then in parent directory
	("ksi.dll" can be places into "bin" subdirectory of entire
	distribution).  And only if not found, initialization files
	searched in the executable file directory (and its parent
	disrectory).

	* si/ksi_load.c (ksi_load_dumped): mmap file when available

	* ext/store/phs_rt.c: rtree now can store any value

Wed Dec 15 18:24:45 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/syncase.scm (and-let*): implementation of SRFI-2

	* si/ksi_repl.c (ksi_repl): `KSI->interactive' initialized now
	in this procedure.

	* si/ksi_init.c (ksi_init): `KSI->interactive' initialization removed

	* lib/modules.scm ((module-repl module-name)): new procedure

	* si/ksi_ctrl.c (ksi_repl_1): argument `env' added

	* si/ksi_str.c (ksi_substring): last argument optional now

Sun Dec  5 07:57:48 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_proc.c (ksi_fold_left): new primitive `foldl'
	(ksi_fold_right): new primitive `foldr'

Mon Nov 29 20:36:39 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_port.c (ksi_open_file): filename argument now may be
 	list, symbol or string, like in `load' procedure.

Fri Nov 26 00:35:24 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/Main.scm: -S option added (same as -s but load compiled code)

Thu Nov 25 23:31:26 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_load.c (ksi_load_dump): new primitive

Sun Nov 21 00:21:16 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/modules.scm (define-module): fixed error message for invalid
	module option.
	The `export' option may be in any place now in module option list

Tue Nov 16 20:33:09 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_shel.c (defs): primitive `has-suffix?' is renamed to
	`file-name-has-suffix?'
	(ksi_has_suffix_p): the `name' argument now can be any proper filename

Mon Nov 15 18:06:40 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_bool.c (ksi_equal_p): detecting circular lists added

	* Makefile.am (ksi-config): new script for buiding applications
 	that use ksi library

	* si/ksi_init.c (inst_include_dir, inst_lib_dir, inst_bin_dir,
	inst_info_dir, inst_man_dir, build_cflags, build_libs):
 	new primitives, returns strings with build information

	* si/Makefile.am (stamp-path-h): write instalation dirs and
	build flags into `ksi_path.h'

	* configure.in (KSI_LIBS): new variable, contains extra libraries
 	linked with libksi

	* lib/comparse.scm: new file

Sun Nov 14 23:39:45 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_bio.c (ksi_compliter, init_readline): fixed some bugs

Tue Nov  9 00:10:13 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_shel.c (ksi_readdir): under Visual-C the last filename
	was returned twice before eof

	* si/ksi_comp.c (gen_let_body): avoid creating begin-expression
	with only one subexpression

Mon Nov  8 23:45:46 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_mod.c (ksi_add_module_use): fixed if-condition for already
 	used modules (it compared already used modules with the module in
 	that added new module, not with the added module)

Thu Nov  4 04:32:12 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_load.c (ko_version):
 	contains full versions now not patch-level only

	* si/ksi_load.c (ksi_load_dumped, ksi_load_file):
	evaluation of env moved from read-eval loop -- env eval'ed once
	before loading not in each iteration

	* si/ksi_str.c (ksi_ptr02string):
 	removed second argument, function always create constant string

	* si/ksi_ctrl.c: ksi_eval_x removed (it is the same as ksi_eval)

Wed Nov  3 16:01:50 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_comp.c (find_var): fixed search variable with level > 0

	* si/ksi_comp.h (struct Ksi_Promise):
 	keep frame and body insteed of full closure

	* si/ksi_eval.c (ksi_force): moved from "si/ksi_ctrl.c"

Tue Nov  2 03:50:41 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_dump.c: length of strings coded by one byte if posssible

Mon Oct 18 03:50:10 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/modules.scm (list-lib): module `list-lib'

	* lib/list.scm: new file -- SRFI-1 list library

	* si/ksi_pair.c (ksi_member, ksi_assoc): argument `predicate' added

Sat Oct 16 23:31:54 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_pair.c (ksi_xcons, ksi_cons_a): new primitives

Thu Oct 14 18:30:49 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/syncase.scm (receive): new syntax

	* si/ksi_port.c (ksi_port_string): new function

	* si/ksi_type.h (ksi_port_flags): new flag KSI_PORT_STRING

Mon Sep 27 02:15:28 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/modules.scm (define-module): syntax extented,
	added parameterized modules.

	* si/ksi_mod.c (ksi_make_module): argument `env' added

Sun Sep 26 14:17:31 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/modules.scm ((use-module name . args)): optional argument added.
	The argument suplies a prefix for the names of exported variables.

	* si/ksi_bool.c (ksi_equal_p): can compare closures now

	* si/ksi_env.c (ksi_define, ksi_define_p, ksi_var_p,
	ksi_var_ref, ksi_var_set): argument `env' can accept
	a module object as an environment.

Fri Sep 17 12:20:20 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_load.c (ksi_load_dumped): now can load a file
	that compiled by previous version of ksi if it compatible with
	current version.

Sun Aug 15 06:36:51 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* ksi-3.1.5 released

	* si/ksi_str.c, si/ksi_bio.c (upper/lower case functions):
	under MS-Windows work differently in console and windowing apps

	* si/ksi_bio.c (ksi_win_console): new function:
 	return 1 if current app is a console app;
 	return 0 if current app is a windowing app
	(ksi_win_error_text): new function:
	returns text string that describe windows error code

	* visual.mak: some bugs fixed

Tue Aug 10 00:47:58 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_port.c (ksi_port_p): new function

	* lib/Main.scm ((help x)): new procedure

Mon Aug  9 21:58:15 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_comp.c, si/ksi_eval.c, si/ksi_env.c:
	rewritten code for lambda, let and letrec expressions

Mon Jul 26 00:47:05 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_prim.c (ksi_reg_prim,ksi_reg_unit,ksi_defun):
	 argument `module_name' perished

	* si/ksi_type.h (struct Ksi_Obj): type of field `itag' changed
 	from int to unsigned (it is more efficient for some compilers)

Sun Jul 25 02:15:53 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_vtab.c (ksi_clear_vtab): new function

	* acconfig.h, configure.in: MODULES option removed (it now  required).

	* New libtool: 1.3.2

Tue Jul 20 17:24:50 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_str.c: unsigned char used to compare strings
 	and convert case

Wed Jul  7 19:50:53 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* ksi-3.1.4 released

	* doc/ksi-lang.texi: first version complited

	* lib/klos.scm: generic-function `no-method' removed
	(it is overrided by `no-applicable-method')

Tue Jul  6 00:01:19 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/klos.scm (with-slots): new syntax

Fri Jul  2 02:19:14 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/pp.scm: completly rewriten

	* lib/klos.scm (define-class): #:metaclass syntax changed.
	Now all `define-class', `define-generic' and `define-method'
	has similar syntax.

Thu Jul  1 03:22:46 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* Makefiles and minor changes to compile under Visual C.

Sat Jun 26 00:38:28 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/klos.scm (define-class): slot names checked for uniq

Thu Jun 17 14:39:48 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_gc.c (ksi_gcollect): returns zero if no more garbage
 	to collect

Sat Jun  5 20:44:05 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	*  ksi-3.1.3 released

Fri Jun  4 19:47:07 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_gc.c (ksi_gcollect): now takes argument that indicates
	what type of garbage collection to perform -- full or partial

Thu Jun  3 17:32:31 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_read.c (ksi_read_annotation): new function added
	(ksi_read_obj): changed to allow annotated reading

Wed Jun  2 00:31:01 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_repl.c (ksi_call_with_dynamic_context): new function
	(ksi_repl): if argument `prompt' is NULL it set to default

Mon May 31 20:05:42 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_gc.c (ksi_enable_gc, ksi_disable_gc): new functions
	(ksi_gc_protect, ksi_gc_unprotect): new functions

Sat May 29 03:10:53 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/srfi.scm: new file -- implements SRFI-0

Fri May 28 22:47:50 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_str.c (ksi_string_upcase_x, ksi_string_downcase_x):
	see bellow

	* si/ksi_conf.h (tolower, toupper, isalpha, etc):
 	redifined under MSWIN32 to support national language

Thu May 27 19:40:05 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* ext/store/*: yet another big step to make the real database :)

Wed May 26 10:55:03 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_socket.c: "wsock32.dll" is loaded dynamicaly now.

Thu May 20 13:14:55 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* ksi-3.1.2 released

Wed May 19 19:17:53 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_dump.c (undump): fixed string undumping

	* si/ksi_comp.c (ksi_comp_quote): strings and vectors are copied and
	made constant objects

Thu May 13 00:51:38 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_dump.c: definitions of `D_*' constants changed
	from `#define' to `enum', and values of constants changed too
	(format of `*.ko' files already changed, so why not?).
	Also added constants for constant Scheme objects (not modifiable
	strings, vectors and so on).

	* si/ksi_comp.c (ksi_comp_quote): constants (strings, numbers etc)
	compiled into themself

	* si/ksi_conf.h: STRICT_R4RS is renamed to STRICT_R5RS

	* si/ksi_vect.c (ksi_vector_set_x): assigment to elements of
	constant vector are forbiden

	* si/ksi_read.c (read_vector): vectors are readed as constants now
	(i.e. has KSI_TAG_CONST_VECTOR as their tag).

	* si/ksi_type.h (ksi_tc_tag): new object types added:
	`KSI_TAG_CONST_PAIR' and `KSI_TAG_CONST_VECTOR'.
	By that stucture of all dumped objects, including compiled files,
	changed.  So, all `*.ko' files need recompiling.

Wed May 12 00:55:30 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* gc_build/Makefile.am: Use of gc-4.14

	* si/ksi_dump.c (dump, undump): dumping/undumping of long objects

Sun May  9 05:58:36 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi.h, si/ksi_type.h: fixed comments

Sat May  8 02:26:13 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_socket.c: new file

	* si/ksi_writ.c (ksi_print_port): now sufficient memory is allocated
	for output string

Tue May  4 05:59:30 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_char.c (ksi_str2char): `#\0ooo' where `o' is any octal digit
 	recognized as octal character code
	(ksi_str2char): hex codes of characters now properly parsed
	(later hex digits from `a' to `f' misinterpreted)

	* si/ksi_read.c (read_ch): recognizing some strange character
	names (such as `#\..'), that is error in fact

Mon May  3 01:14:38 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_prim.c (ksi_defun, ksi_reg_prim): return type is `ksi_obj',
	not `void'.  Both functions return the new cretated procedure.

Sat May  1 02:13:16 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* Use of libtool-1.3

Wed Apr 21 03:59:34 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* Use of autoconf-2.13, automake-1.4

Sat Apr 17 01:41:03 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi.h: `ksi_get_arg' is made public

Thu Apr 15 20:39:50 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/klos.scm (compute-slot-option): added argument to allow
	selection of a method by the metaclass of the class.

	* si/ksi_klos.c (ksi_slot_ref, ksi_slot_set): given integer
	as slot name, takes slot with that number
	(ksi_get_arg): added `default' argument

Wed Apr 14 18:59:43 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_writ.c (ksi_obj2name): new function

Fri Apr  9 02:18:04 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_repl.c (ksi_toplevel): now does not call ksi_init_std_ports
	if standart ports already init'ed.

	* si/ksi_init.c (ksi_init): when `ksi_init' is called second time,
	all params of interpreter (such as KSI->interactive) are reset.

Wed Apr  7 20:03:13 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_eval.c (ksi_eval_int): minor changes

Mon Apr  5 01:11:20 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/klos.scm ((@allocate-slot-index class)): new procedure

Sat Apr  3 02:07:24 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_exep.c (cont_prim): escape procedure of call/cc
	can now accept any number of arguments.

	* lib/klos.scm, si/ksi_klos.c: get-n-set slot of <class> now
 	is a list of vectors not lists.

	* si/ksi_klos.c (ksi_get_arg): second argument may be #f.

Sun Mar 28 22:40:34 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_vect.c (ksi_vector_for_each): vector elements are
	processed in order from zero to last element

Sat Mar 27 05:30:13 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_comp.c (ksi_comp_delay): delay of constant now
	compiled into quote expression.

Thu Mar 25 19:22:26 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_load.c (ksi_load_init_file): fixed error message if file
	can't be loaded.

Wed Mar 24 01:18:42 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/klos.scm (compute-get-n-set): inherited slots with
 	class allocation now realy shares state with superclasses

Tue Mar 23 19:01:11 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_klos.c (ksi_slot_ref, ksi_slot_set): protocol
	for slot refering/setting changes.  Now when slot is unbound
	generic function `slot-unbound' is called, and when slot does not
	exist generic function `slot-missing' is called.

	* lib/klos.scm (slot-unbound, slot-missing): new generic

	* si/ksi_klos.c (ksi_inst_slot_missing): new function
	(ksi_inst_slot_unbound): new function

Sat Mar 20 16:52:31 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_klos.c
 	(more_specific_p): now can compare methods without argument list,
 	in that case can return 3 values -- more, less and not compariable.
	When argument list is supplayed, work as before.
	(add_method): if all methods of a generic function are compariable,
	sort the methods.
	(ksi_compute_applicable_methods): if methods already sorted (ie,
	all method are compariable and sorted in `add_method') do not
	sort them.

	* si/ksi_exep.c: exception system (catch/throw) modified

Thu Mar 18 00:01:56 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* ksi-3.1.1 released

	* libtool (): hacked for resolving of inter-library dependecies

Wed Mar 17 23:09:07 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* ext/z/ksi_z.c, ext/z/ksi_z.h: simple interface to zlib

Tue Mar 16 21:46:24 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/compiler.scm ((write-compiled-header header stamp port)):
	time stamp now put in compiled code

	* si/ksi_init.c (ksi_init_lib_path): the string "app" is replaced
 	by APP_DIR macro
	(ksi_init_lib_path): under MSDOS & MSWIN init directory
	searched in directory where the executable resides
	and, then, in the parent directory

	* si/ksi_conf.h (APP_DIR): macro definition added

	* ext/html.scm: new file
	To use in a simple cgi-scripts to generate a html forms

Thu Mar 11 04:34:16 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_shel.c (ksi_getenv): if called without an argument,
	returns assosiative list of all environment variables

	* lib/syncase.scm (fluid-let): new syntax

	* si/ksi_mod.c (ksi_set_module_export): new primitive

Thu Mar  4 22:37:08 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* ksi-3.1.0 released.

Tue Mar  2 03:22:44 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/klos.scm (define-generic): options of generic function
	moved to second position (after name of generic, like in
 	`define-method' syntax)
	(define-generic): added body to `define-generic' syntax,
	this body used as default method.

Sat Feb 27 02:30:22 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_load.c (ksi_load_dumped): added checks of compiler version

	* si/ksi_eval.c (ksi_eval_int): added environment cache to
	speedup variables lookups

	* si/ksi_type.h (ksi_tc_tag): unused tags are removed;
	existing tags are rearanged for quick checks of self-evaled objects

Wed Feb 24 01:13:32 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_gc.c (ksi_malloc_large_data): new function intended
	for allocating memory for large data not containing pointers
	such as buffers for reading/writing files

	* si/ksi_load.c (ksi_load_dumped): under *nix memory for loaded
	a file alloc'ed with `alloca'

	* switched to gc-4.13

Mon Feb 15 20:55:12 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_shel.c (ksi_mkdir): new primitive (mkdir)
	(ksi_rmdir): new primitive (rmdir)

Fri Feb 12 00:36:03 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_read.c (read_sharp): sequence "#:|keyword|" now
	interpreted as case sensitive keyword.
	(ksi_read_obj): reader options checked in `ksi_read',
	not before reading each token.  Redear now three time faster.

Thu Feb 11 22:25:35 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi.h (KSI_SINT_P, KSI_SINT_COD, KSI_MK_SINT):
	new names for KSI_INT_P, KSI_INT_COD, KSI_MK_INT

Thu Jan 28 16:38:38 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_load.c: added loading of dumped code (.ko files)

	* si/ksi_dump.c: added dumping/undumping of code

	* si/ksi_port.c: port structure modified

Tue Jan 26 21:35:59 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_shel.c (ksi_opendir, ksi_readdir, ksi_closedir):
	new primitives (opendir, readdir, closedir)

Mon Jan 25 19:46:01 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_shel.c (has_suffix_p): added new primitive (has-suffix?)
	(cwd): added new primitive (cwd)
	(ksi_getenv, ksi_syscall): moved from si/ksi_misc.c
	(ksi_delete_file, ksi_file_exists): moved from si/ksi_misc.c
	(ksi_rename_file): new primitive (rename-file)
	(ksi_mk_filename): moved from si/ksi_load.c
	(ksi_exp_fname, ksi_split_fname): moved from si/ksi_load.c
	(ksi_stat): new primitive (stat)

Thu Jan 21 10:23:03 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/Init.scm: Make use of `ksi:app-path'.

	* si/ksi_init.c (defs): new primitive `ksi:app-path' added.
	(ksi_init_lib_path): Under MS-DOS and MS-Windows systems
	`ksi:app-path' is selected from ksi library directory and
 	directory where executable is placed depending on existens of
	such directories.

Thu Jan 14 00:38:55 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_eval.c (clos_env): fixed call to WNA macro.
	Should be passed name of procedure (char*), not procedure itself.

	* si/ksi_mod.c (ksi_get_module_opt): number of arguments corrected
	with declaration.

Wed Jan 13 00:13:31 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_read.c (read_c_string): escape sequience `\a' now recognized.

	* lib/Boot.scm (set-ksi-option!): added option `*print-8bit-chars*'.

	* si/ksi_str.c (ksi_string2str): `*print-8bit-chars*' used
	to write character >= 128.

	* si/ksi_char.c (ksi_char2str): `*print-8bit-chars*' used
	to write character >= 128.

Tue Jan 12 19:59:18 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/klos.scm: many bugs fixed.

	* si/ksi_env.c (ksi_define): Error message about 3 arg fixed.

	* si/ksi_ctrl.c (ksi_add_exit_handler)
	(ksi_add_error_handler):
	(ksi_remove_error_handler): BASE_CHECK_INIT added at begining of
	the functions.  Now they can be called before full initialization
	of the library.

	* si/ksi_prim.h, si/ksi_type.h, ksi_vtab.h: usage from C++ fixed.

Sun Jan 10 21:32:53 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/Main.scm: Error, usage and version messages modified.

Sat Jan  9 08:49:47 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_comp.c, si/ksi_klos.c: work around for WATCOM C.
	Too complex expressions are breaked into several more simple
	expressions.

Tue Jan  5 12:46:54 1999  Ivan Demakov  <ivan@tgrad.nsk.su>

	* Ksi-3.0.1 released.

Sun Dec 27 02:51:02 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_dump.c (ksi_obj2dump, ksi_dump2obj): moved from ksi_misc.c
	(ksi_read_dump, ksi_write_dump): new function.

Sat Dec 26 03:23:48 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_comp.c: rewriten.

Wed Dec 23 00:44:18 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_repl.c (ksi_repl): If expression evaled in
	the `unspecified' (or `#void') value, that value is not printed.

Thu Dec 17 19:09:50 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/syncase.scm (begin0): new syntax.
	Like begin, but the value of first expression returned.

	* si/ksi_read.c (read_sharp): added read macro `#void',
	that yields `unspecified' value.

	* si/ksi_proc.c (ksi_void_p): new function.
	Return `#t' iff argument is `unspecified' value.
	Scheme procedure `void?'.

Tue Dec  8 07:43:28 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_char.c (ksi_setlocale): fixed.
	Segmentation fault if category was not symbol or keyword.

Fri Dec  4 00:45:38 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_numb.c (ksi_str2flo): Fixed.
	Strict R5RS complex number parsing.

	* si/ksi_eval.c, si/ksi_load.c, lib/Boot.scm, lib/Init.scm,
	lib/modules.scm:
	More correct work with module environments, mostly conserning
 	`eval' and `load' procedures.

	* si/ksi_eval.c (ksi_eval_int):
	Some minor speedups.

Thu Dec  3 20:24:21 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_load.c (ksi_load_file):
	Loading is perfomed in environment of module that calls load.

Wed Dec  2 20:52:59 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_misc.c (ksi_vprintf):
	When passed string in port argument, output directed to file
	with this name.

Thu Nov 26 18:10:18 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_bio.c (ksi_input_ready_p): new function.
	Return 1 if file ready for input.

	* si/ksi_read.c (read_c_string, read_list): changed.
 	Prompt are changed while reading from tty port.

	* si/ksi_numb.c (ksi_div): bug fixed.
 	Division floating number by integer yielded wrong result.

Mon Nov 16 21:21:18 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* Ksi-3.0.0 released.

Fri Nov  6 09:22:04 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_ctrl.c (ksi_add_error_handler): new function.
	Installed error handlers called when error thrown,
	allowing application to restore its state or to perform
	additional actions to common error processing.

	(ksi_remove_error_handler): new function.
	Removes installed error handler.

Wed Oct 21 03:01:04 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_numb.c (ksi_str2flo): "nan.", "+inf." and "-inf."
	now parsed as IEEE Not-a-Number, positive and
 	negative infinity.

Fri Oct  9 00:10:06 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_char.c (ksi_setlocale): new procedure added.
	Scheme name is `setlocale'.

Thu Oct  8 01:48:19 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_klos.c: slightly modified to improve clearness.

Mon Oct  5 21:41:10 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* Removed all static variables with pointers on allocated
	memory. Now GC can be used on platforms without dymamic loading
	support.

Sun Sep 27 05:03:29 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_gc.c (ksi_malloc_typed): replacement of `ksi_malloc_typed_0'
	`ksi_malloc_typed_1' and `ksi_malloc_typed_2' functions.

Fri Sep 25 22:01:42 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/Main.scm: when `-s' option without `-e' option given
	action fixed.

Sat Sep 19 20:01:57 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* interp/Makefile.am: -rdynamic flag added to allow dynamic
	loading of additional modules.

	* lib/syncase.scm (eval): global `eval' primitive.

	* lib/modules.scm ((load-module name)): `eval' is defined
	in each module locally.

	* si/ksi_comp.c (ksi_comp_do, ksi_comp_letstar): implemented.
	Now scheme code that don't use R5RS macro, can be loaded
	without syntax-case macro expander.

	* lib/util.scm (ormap): new procedure added.

Sat Sep 12 00:44:43 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/Main.scm: Command line is parsed with new getopt module,
	not with 'slib' package.
  	And so 'slib' not required now to run the ksi interpreter.

	* lib/getopt.scm: New file. Parsing command line options.

	* lib/sort.scm: New file. `Sort' and `sort!' procedures defined.

Fri Sep 11 05:10:35 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* interpreter rewriten to C.

Mon Aug 31 19:32:34 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* new evaluator and environment funcs.

Thu Aug 13 13:41:17 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_synt.cc: removed.

	* si/ksi_comp.cc: new file.

	* si/ksi_eval.cc (ksi_eval_int): Evaluator is rewriten.

Mon Aug  3 22:42:43 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_gc.cc (ksi_malloc_typed): new functions.

	* si/: typed allocation of objects.

Tue Jul 28 00:56:31 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/Boot.scm (set-ksi-option!): new function.
	It can set some global variables from any module.

	* si/: setting top-level (global) variables no more allowed
	from modules.

Fri Jul 24 05:06:56 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* doc/ksi.texi: file is up to date.

Thu Jul 23 20:13:40 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_dynl.cc (ksi_dynload_file): added protection from
	calling `ksi_init_<libname>' more than once.
	(ksi_term_dynl): `ksi_term_<libname>' called for each loaded
	dynamic library.

	* si/ksi_dump.cc: moved to main ksi library from `ext/io'

Sat Jul 11 21:18:48 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* gc/dyn_load.c, gc/config.h, gc/os_dep.c:
	simple support for dynamic loading on FreeBSD.

Mon Jul  6 19:20:53 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* : FreeBSD port.

Sat Jul  4 02:51:58 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_proc.cc (ksi_map_int): for-each returns `unspecified' now,
	not '().

	* ext/regexp/regexp1.scm: new file.

	* ext/regexp/ksi_regexp.h,ext/regexp/ksi_regexp.cc: new files.

	* si/ksi.h: added ``extern "C"'' and else things that may allow
	use "ksi.h" from pure-C programs.

Thu Jul  2 20:17:50 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_str.cc (ksi_string_capitalize_x): new function.

Tue Jun 30 03:28:59 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_str.cc (ksi_string_upcase_x, ksi_string_downcase_x):
 	new functions.

Sun Jun 28 05:58:03 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_numb.cc (bitwise logical functions): now not limited
	to small integers.

Thu Jun 25 05:51:13 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_load.cc (ksi_split_fname): added.

	* si/ksi_str.cc (ksi_string_rindex): added.
	(ksi_string_index): added.

Wed Jun 24 21:38:40 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_proc.cc (ksi_internal_format): added "~?" spec.

Fri Jun 19 18:55:06 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_bio.cc (ksi_getc): clear KSI->sigint before return.

Thu Jun 18 06:18:34 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_sign.cc. si/ksi_sign.h: New files.
	Signal handling (very reduntant).

	* si/ksi_exep.cc: New file.  New exception system.
	Also modified "si/ksi_err.cc", "si/ksi_ctrl.cc", "si/ksi_load.cc",
	"si/ksi_repl.cc".
	All exceptions (raised by error, exit or throw) are
	handled similary.
	Errors may be catched from a scheme program now.

Tue Jun 16 01:25:07 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_symb.cc (ksi_symbol2str): `:' char in symbol name are
	no more considered as special.

Mon Jun 15 22:43:50 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_numb.cc (sub_big_u): fixed bug when size of `min' and
	`sub' is equal and substraction ends with carry.

Mon Jun  8 01:28:02 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_proc.cc (ksi_error_format): if first argument is a symbol,
	it's name is printed followed by ": ".  Others arguments printed
	as usual.  Scheme example: (error 'foo "blah-blah ~a" 'bar).
	Error message will be like "ERROR! foo: blah-blah bar".

Sun Jun  7 05:32:04 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/klos.scm, si/ksi_klos.cc: primary, before, after
 	and around method combinations implemented.
	Slot `arity' aded to class <generic>.  Procedure `@add-method'
	now signals error if method specializers are not conform
	generic function arity.

	* si/, lib/: names of scheme procedures that starts
 	with persent ``%'' are renamed to starting with at-sign ``@''.


Tue May 19 18:26:54 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_dynl.cc (ksi_dynload_file): fixed loading already
 	loaded libraries.

Mon May  4 17:21:51 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_synt.cc, si/ksi_eval.cc: syntax checking is relaxed.
	(syntax is checked already by syntax-case macro package).


Wed Apr 29 12:43:07 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_load.cc (ksi_load): if filename is not absolute path,
	file allways looked up in *load-path*.
	(ksi_load_init_file,ksi_try_load_file): files with suffix `.pp'
	are not macro-expanded.

	* si/ksi_init.cc (ksi_init): added `-b' option parsing.

Sat Apr 18 14:09:57 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/symprop.scm: (new file) symbol properties.

	* lib/modules.scm: added begin clause in define-module.

	* si/ksi_stab.cc (ksi_abbrev): added support for modules.

Fri Apr 17 20:07:00 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/Boot.scm: complex numbers added.

	* si/ksi_numb.cc: complex numbers added.

Wed Apr 15 16:32:17 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_ctrl.cc (ksi_exit): if argument is bool, exit code
	is KSI_ERROR_EXIT_CODE or KSI_NORMAL_EXIT_CODE.

Tue Apr 14 19:01:57 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* lib/modules.scm: (new file) scheme part of module system.

Mon Apr 13 20:09:40 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_mod.cc: (new file) low module primitives.

Sun Mar 22 00:56:47 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_ctrl.cc (ksi_catch, ksi_throw): added.

Sat Mar 14 02:49:14 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* si/ksi_ctrl.cc (ksi_mk_continuation): added.

	* call/cc and call-with-values are imm's now, not primitives.
	This allow make them tail-recursive.

	* lib/Main.scm: Scsh'ish program argument parssing.

Sun Feb 22 20:56:49 1998  Ivan Demakov  <ivan@tgrad.nsk.su>

	* ChangeLog: start this file.
