2006-02-12  Ales Hakl  <ales at hakl dot net>

	* src/strings.c (dfsch_string_utf8_for_each): user selectable
	handling of invalid bytes in utf-8 string

	* dfsch/dfsch.h: Removed remains of DFSCH_THROW

2006-02-11  Ales Hakl  <ales at hakl dot net>

	* src/strings.c (dfsch_string_utf8_length): Length calculation
	function for utf-8 strings 
	(dfsch_string_utf8_length): Fixed bad constant
	(dfsch_string_utf8_ref): string-ref for utf-8 strings
	(dfsch_string_utf8_substring): substring for utf-8 strings
	Better handling of invalid bytes and sequences in utf-8
	(dfsch_string_utf8_for_each): Generalized UTF-8 handling
	(dfsch_string_for_each): Iteration over raw strings
	Fixed some warnings and logic bugs

2006-02-09  Ales Hakl  <ales at hakl dot net>

	* dfsch/dfsch.h: removed DFSCH_THROW

2006-02-08  Ales Hakl  <ales at hakl dot net>

	* dfsch/strings.h (dfsch_string_substring): Added declarations of
	added functions to header file

	* src/strings.c (dfsch_string_length): Return length of list
	(dfsch__string_native_register): Full set of string comparison
	predicates
	(native_substring): substring function

2006-02-07  Ales Hakl  <ales at hakl dot net>

	* dfsch/dfsch.h (DFSCH_GENERIC_ARG): generic argument handling macros 

	* src/strings.c (dfsch_string_list_append): Generic string append
	function.

2006-01-29  Ales Hakl  <ales at hakl dot net>

	* src/repl.c (main): indented option help a bit

	* dfsch/dfsch.h: Added readable parameter (discrimining between
	write and display)

	* src/repl.c (esc): Added last argument to functions defined in
	repl.c 

2006-01-28  Ales Hakl  <ales at hakl dot net>

	* src/repl.c (sigint_handler_break): Handle C-C while evaluating
	as user break.
	(sigint_handler_rl): C-c in readline works in more sane way

2006-01-27  Ales Hakl  <ales at hakl dot net>

	* src/repl.c (noninteractive_repl): Handle input from something
	that is not a terminal gracefuly

	* src/dfsch.c (lambda_extend): Fixed misbehaving lambda_extend for
	functions with variable number of srguments called without any
	arguments 
	(dfsch_raise): Thread safe exception handling
	(dfsch_make_symbol): Thread safe symbols
	(dfsch_eval_tr): Marginal performance hack

	* src/native.c (native_form_defined_p): Fixed defined? to work
	with new wxception system

	* src/hash.c (GET_HASH): Recognize nils as not being valid hash
	table objects

	* src/dfsch.c (dfsch_unintern): uninterning of symbols

	* src/native.c: Removed duplicated code

	* src/number.c: Moved number native functions to number.c

	* src/native.c: escape argument to native functions
	(native_eval): eval, apply and eval-proc are properly tail-recursive
	(native_form_let_seq): Properly tail recursive
	(native_form_letrec): Properly tail recursive
	(native_form_let): Properly tail recursive

	* src/load.c: escape argument to native functions

	* src/promise.c: escape argument to native functions

	* src/hash.c: escape argument to native functions

	* src/dfsch.c (dfsch_apply_tr): Support for tail recursive native
	functions.

	* scm/test.scm (degeneratedList): Test for special case of quasiquote

	* src/dfsch.c (dfsch_append): append accepts empty lists as
	arguments.

	* src/native.c (native_gensym): gensym function

	* src/dfsch.c (dfsch_gensym): gensyms (unique symbols)

2006-01-26  Ales Hakl  <ales at hakl dot net>

	* configure.ac: Do not add -lreadline to LIBS

	* src/strings.c: Fixed some warnings

	* src/promise.c: Fixed some warnings

	* src/hash.c: Fixed some warnings

	* src/dfsch.c: Fixed some warnings
	All warnings fixed

	* scm/test.scm (v): Test for vector manipulation

2006-01-25  Ales Hakl  <ales at hakl dot net>

	* src/native.c (dfsch_native_register): assq, assv in scheme

	* src/dfsch.c (dfsch_assq, dfsch_assv): Other variants of assoc 
	(dfsch_assv): Fixed

	* src/strings.c (string_equal_p): Fixed string comparison function

	* src/hash.c: Multiple options of comparison for hash tables

	* src/promise.c: Moved promise and stream primitives to separate file

	* src/hash.c (dfsch__hash_native_register): Moved hash primitives
	to separate file

	* src/internal.h: Header file for internal functions (i.e. Native
	function registration)

	* src/dfsch.c (dfsch_vector_2_list): Fixed segfaults in list->vector
	(type definitions): Made types' methods static 
	(vector_equal_p): Vector comparison
	(vector_write): Vector writer
	(dfsch_obj_write): Removed unused parts of code
	(dfsch_make_object): Optional logging of object creations

	* New way of handling objects in memory 

2006-01-23  Ales Hakl  <ales at hakl dot net>

	* src/dfsch.c: Fixed various warnings about type safety and undefined
	functions

	* dfsch/dfsch.h: Fixed tzpos in argument proocessing macros

	* src/strings.c: New handling of strings is working

2006-01-22  Ales Hakl  <ales at hakl dot net>

	* dfsch/strings.h: We should be able to create empty strings

2006-01-05  Ales Hakl  <ales at hakl dot net>

	* dfsch/strings.h: Some basic idea of API.

	* src/strings.c dfsch/strings.h: Files for new implementation of
	string handling

2005-12-25  Ales Hakl  <ales at hakl dot net>

	* src/native.c (native_hash_unset): hash-unset acessible to scheme
	code 

	* src/hash.c (dfsch_hash_unset): Deleting keys and shrinking of 
	hash-tables

	* src/native.c: Promises avaiable as native functions
	(native_form_cons_stream): Streams avaiable as native functions
	(native_form_stream_*): Renamed to match SRFI 40 

	* dfsch/hash.h: Documentation update

	* src/promise.c: Promises

2005-12-20  Ales Hakl  <ales at hakl dot net>

	* src/object.h: Moved dfsch_object_t definition into separate
	reusable file 

2005-12-19  Ales Hakl  <ales at hakl dot net>

	* configure.ac: Bumped version number to 0.2.0-pre1

2005-12-18  Ales Hakl  <ales at hakl dot net>

	* src/native.c (native_call_ec): Escape continuations
	(native_raise, native_error, native_abort ...): Exception wrappers 

2005-12-17  Ales Hakl  <ales at hakl dot net>

	* src/dfsch.c: Removed checks for exception datatype

	* src/repl.c: Adapted for new exceptions.

	* src/dfsch.c (dfsch_raise): Escape continuations based exceptions
	(dfsch_try): Removed debug hooks

	* src/native.c (native_string_append): string-append for arbitrary
	number of arguments

	* src/dfsch.c (eval_proc_impl): Tail recursion support

2005-12-05  Ales Hakl  <ales at hakl dot net>

	* src/native.c (native_eval_proc): eval-proc is avaiable to scheme code
	(native_modulo) modulo (%) operator

2005-11-29  Ales Hakl  <ales at hakl dot net>

	* src/repl.c: Support for logging of executed forms

2005-11-20  Ales Hakl  <ales at hakl dot net>

	* scm/test.scm: Extended test suite 

	* tests/scm-test.sh, Makefile.am: integrated test suite into build
	process  

	* src/native.c (native_vector_length): Fixed bug concerning type
	identification 

	* src/repl.c (main): argv variable

	* src/native.c (native_macro_cond): Support for alternate form
	with "=>"

	* src/dfsch.c (dfsch_assoc): assoc works correctly

	* src/native.c: assoc and listref native functions 

2005-11-19  Ales Hakl  <ales at hakl dot net>

	* src/repl.c (main): Use dfsch_exception_write() consistently

	* src/dfsch.c (dfsch_eval_proc): Propagate exceptions correctly

	* src/stream.c: Cleaned up vector (and other special values) handling

	* src/native.c: Non-comutative number operators behaves correctly

	* scm/test.scm (condAlt): Updated to match dfsch's notion of booleans

2005-11-18  Ales Hakl  <ales at hakl dot net>

	* src/stream.c (dispatch_string): Hexadecimal string escapes.
	
	* src/stream.c, src/util.c: Include correct header for string functions

	* src/native.c (native_vector_length): Test for datatype
	
2005-11-17  Ales Hakl  <ales at hakl dot net>

	* src/load.c (dfsch_read_scm_*): handle invalid syntax correctly

	* src/dfsch.c (dfsch_list_read): handle invalid syntax correctly

	* src/repl.c (main): Evaluate expression from command line, -i option

	* src/dfsch.c (dfsch_obj_write_exception): Pretty-printing exceptions

	* src/load.c (dfsch_read_scm_*): Detect unclosed S-expressions 

	* src/repl.c (main): dfsch-repl is now usable as interpreter in
	shebang 

	* scm/test.scm: Test for interpreter

	* src/dfsch.c (lambda_extend): FIXED: extending new frames behaved
	wildly 

	* src/hash.c (dfsch_hash_2_alist): Routine for converting hash
	tables into association lists

	* src/repl.c (command_print): Ad-hoc printing mechanism in
	commandline interpreter

	* src/native.c (native_macro_case): "case" construct (see 4.2.1 of
	R5RS) 

	* src/dfsch.c (dfsch_eval_proc): Comment describing ways to
	implement tail-recursion

2005-11-16  Ales Hakl  <ales at hakl dot net>

	* src/dfsch.c (dfsch_new_frame, dfsch_lookup, dfsch_define,
	dfsch_set): Hash-table based environment frames 

	* src/hash.c (dfsch_hash_set_if_exists): Performance hack:
	hash-set-if-exists! 

	* src/native.c (native_form_let, native_form_letrec, 
	native_form_let_seq): All three variants of let, implemented using
	environment manipulation functions from dfsch.c

	* src/dfsch.c: Moved all (probably) manipulations of environment
	into one place.

	* src/native.c (native_macro_if): Reimplemented "if" to support
	both forms mentioned in R5RS

	* src/hash.c (hash_t): Native representation of hash tables

	* src/native.c (native_form_or, native_form_and): Working forms
	"or" and "and"

	* src/hash.c: Hash implementation on top of scheme objects

	* dfsch/hash.h: Hash data type

	* src/dfsch.c (dfsch_vector): varargs constructor for vectors

	* FIXED various warnings throghout the code.

	* src/dfsch.c (dfsch_make_form, dfsch_make_macro): Cleaned up
	terminology:
	     flow-macro -> macro
	     macro -> special-form

2005-11-15  Ales Hakl  <ales at hakl dot net>

	* src/dfsch.c (dfsch_append): Fixed seg-fault when appending nothing.
	(dfsch_define): Fixed growth of top-level env. when redefining

	* src/util.c: Moved utility functions to separate source file

	* src/native.c (dfsch_native_register): Moved native functions
	into separate source file.

2005-11-14  Ales Hakl  <ales at hakl dot net>

	* src/stream.c (parse_vector): Vector support

	* dfsch/dfsch.h (DFSCH_*ARG*): Argument helpers for native functions 

	* src/dfsch.c: In-core representation of vectors 
	Removed expression parser code from dfsch.c
	(dfsch_define): Allow redefining on top-level
	Vector datatype support

2005-11-07  Ales Hakl  <ales at hakl dot net>

	* src/dfsch.c (string_hash): Another string hashing function

	* bootstrap.sh: Added autoheader

2005-11-06  Ales Hakl  <ales at hakl dot net>

	* src/dfsch.c (dfsch_ctx_define): Works like scheme's define
	i.e. fails when variable is already defined in current environment

	* configure.ac: Support for config.h
	
2005-10-30  Ales Hakl  <ales at hakl dot net>

	* src/load.c (dfsch_load_so): Binary modules loading support

2005-09-03  Ales Hakl  <ales at hakl dot net>

	* configure.ac: Added option for profiling (need to be used in 
	conjunction with --disable-shared)

2005-08-16  Ales Hakl  <ales at hakl dot net>

	* src/load.c (dfsch_read_scm_stream): BUGFIX: Correct counting of 
	lines longer then 8KiB

2005-08-14  Ales Hakl  <ales at hakl dot net>

	* Makefile.am (libdfsch_load_la_LIBADD): Explicitly link libdfsch

	* src/dfsch.c: Added eval and apply primitives
	(dfsch_make_context): added top-level-environment function
	(dfsch_make_context): Renamed env to current-environment

	* src/load.c (dfsch_load_scm_fd): Split core from dfsch_load_scm
	into separate function
	(dfsch_load_scm_stream): stdio streams based version (aware of
	line numbers)
	(dfsch_load_scm_...): Better error reporting 
	(load_callback): Generalized the thing - now  it's posible to load
	data by same code as is used for loading code.

	* dfsch/load.h: Added include guard

	* src/repl.c (command_exit): (exit) in interactive interpreter
	(requested by Pavel Kacha)

	* configure.ac: Check for some basic functions in libc
	Check for readline.

	* Makefile.am (dfsch_repl): Name clash between includes directory
	and interpreter binary. 

	* configure.ac: Check for gc.h and -lgc

2005-08-13  Ales Hakl  <ales at hakl dot net>

	* src/dfsch.c (dfsch_obj_write): Write out names of closures.

	* src/stream.c (consume_queue): Added one debugging output

	* src/dfsch.c (make_symbol): Similar problem in symbol handling

	* src/stream.c (dfsch_parser_create): BUGFIX: parser context
	wasn't garbage collected -> various parts of it (esp. input
	buffer) was blown away by collector considering it to be
	unreachable (this shoul hopefully fix some of SEGVs when using
	large heap)

2005-08-11  Ales Hakl  <ales at hakl dot net>

	* ChangeLog: reformated old entries to match style of new ones (to
	some extent)
	
	* README: Added paragraph about interactive interpreter

	* NEWS: Removed contents, it needs to have some system instead of
	current chaos (absolute chaos)

	* ChangeLog: added old entries from svn's ChangeLogs

	* src/repl.c: Added support for loading code on runtime

	* src/load.c: Renamed import to load
	Moved loading of scheme code from repl.c to load.c

	* src/repl.c: Readline TAB completion for scheme symbols
	(main): Cleaned up indentation support a bit

2005-08-10  Ales Hakl  <ales at hakl dot net>

	* Makefile.am: Moved libdfsch specific shared libraries to
	libdfsch_la_LIBADD.

2005-08-06  Ales Hakl  <ales at hakl dot net>

	* src/repl.c: Fixed race condition in SIGINT handling.

2005-08-05  Ales Hakl  <ales at hakl dot net>

	* src/stream.c, src/repl.c: Automatic indenting of interactive
	interpreter prompts

	* src/dfsch.c: Some basic support for features like symbol
	completion

2005-07-10  Ales Hakl  <ales at hakl dot net>
  
	* src/dfsch.c: Calculate hash size correctly from macros
  
  
2005-06-23  Ales Hakl  <ales at hakl dot net>
  
	* Makefile.am: removed targets and dependencies of dsc
  
  
2005-06-23  Ales Hakl  <dfox at users dot sourceforge dot net>
  
	* dsc: Removed from trunk branch (this thing is not interesting) 
  
  
2005-06-23  Ales Hakl  <ales at hakl dot net>
  
	* src/dfsch.c: Added PI constant
  
2005-05-25  Ales Hakl  <ales at hakl dot net>
  
	* Basics of scheme compiler.
  
2005-05-22  Ales Hakl  <ales at hakl dot net>
  
	* First phase of modularization - header for module for 
	importing modules
  
2005-05-22  Ales Hakl  <ales at hakl dot net>
  
	* Removed stream_repl.c
  
2005-05-22  Ales Hakl  <ales at hakl dot net>
  
	* dfsch_ctx_lookup() function
  
2005-05-22  Ales Hakl  <ales at hakl dot net>
  
	* Added missing implementation of dfsch_nil().
	* Tests directory.
  
2005-05-22  Ales Hakl  <ales at hakl dot net>
  
	* Minor cleanups
  
2005-05-15  Ales Hakl  <ales at hakl dot net>
  
	* ...
  
2005-05-15  Ales Hakl  <ales at hakl dot net>
  
	* Removed debugging hooks
  
2005-05-15  Ales Hakl  <ales at hakl dot net>
  
	* Stream parser fixes
  
2005-05-15  Ales Hakl  <ales at hakl dot net>
  
	* Fixed weird behaviour of parser when processing '
  
2005-05-15  Ales Hakl  <ales at hakl dot net>
  
	* reworked REP loop
	* dfsch_ctx_lambda() function
	* DFSCH_RETHROW() macro
  
2005-05-15  Ales Hakl  <ales at hakl dot net>
  
	* BUGFIX: let works correctly now
	* Added some documentation here and there
  
2005-05-15  Ales Hakl  <ales at hakl dot net>
  
	* Reworked error-handling
  
2005-05-15  Ales Hakl  <ales at hakl dot net>
  
	* count_list renamed to list_length
  
2005-05-15  Ales Hakl  <ales at hakl dot net>
  
	* DFSCH_THROW() and dfsch_throw() for better exception handling.
	* dfsch_list_item() and dfsch_count_list()
  
2005-05-14  Ales Hakl  <ales at hakl dot net>
  
	* dfsch_bool()
	* Minor hacks
  
2005-05-14  Ales Hakl  <ales at hakl dot net>
  
	* Fixed configure
  
2005-05-14  Ales Hakl  <ales at hakl dot net>
  
	* Fixed include files
  
2005-05-14  Ales Hakl  <ales at hakl dot net>
  
	* Release 0.1
  
2005-05-14  Ales Hakl  <ales at hakl dot net>
  
	* Minor text files modifications
  
2005-05-14  Ales Hakl  <ales at hakl dot net>
  
	* NEWS and README
  
2005-05-14  Ales Hakl  <ales at hakl dot net>
  
	* Minor pre-dist modifications
  
2005-05-14  Ales Hakl  <ales at hakl dot net>
  
	* Better exception handling
	* New functions
  
2005-05-14  Ales Hakl  <ales at hakl dot net>
  
	* Cleaned it up a bit
  
2005-05-14  Ales Hakl  <ales at hakl dot net>
  
	* Symbol hashing
  
2005-05-03  Ales Hakl  <ales at hakl dot net>
  
	* This works on debian (and probably only on debian)
  
2005-05-02  Ales Hakl  <ales at hakl dot net>
  
	* Usual `buildhere' directory
  
2005-05-02  Ales Hakl  <ales at hakl dot net>
  
	* This should maybe work (libtool is black magic)
  
2005-05-02  Ales Hakl  <ales at hakl dot net>
  
	* Transition to autotools, phase 1.
  
2005-05-02  Ales Hakl  <ales at hakl dot net>
  
	* Minor stability related fixes.
  
2005-04-11  Ales Hakl  <ales at hakl dot net>
  
	* Makefile update for fscking debian
  
2005-03-18  Ales Hakl  <ales at hakl dot net>
  
	* redefining symbol yields error
  
2005-03-16  Ales Hakl  <ales at hakl dot net>
  
	* Removed declaration of dfsch_parser_destroy() - handled by gc now
  
	* Reindented header files
  
2005-03-16  Ales Hakl  <ales at hakl dot net>
  
	* Fixed what was broken by gc update.. etc. etc.
  
2005-03-16  Ales Hakl  <ales at hakl dot net>
  
	* minor gc fixes
  
2005-03-16  Ales Hakl  <ales at hakl dot net>
  
	* Native data support (untested)
  
2005-03-16  Ales Hakl  <ales at hakl dot net>
  
	* minor optimalizations
  
2005-03-16  Ales Hakl  <ales at hakl dot net>
  
	* Boehm's conservative garbage collector instead of that ugly hack.
  
2005-03-16  Ales Hakl  <ales at hakl dot net>
  
	* Minor fixes around gc.
	* Documentation fixes
  
2005-03-15  Ales Hakl  <ales at hakl dot net>
  
	* Error reporting
  
2005-03-15  Ales Hakl  <ales at hakl dot net>
  
	* Eent driven parser is working - but doesn't detect any errors
  
2005-03-14  Ales Hakl  <ales at hakl dot net>
  
	* Event driven tokenizer
  
2005-03-10  Ales Hakl  <ales at hakl dot net>
  
	* Fixed infinite loop in parser code
  
2005-03-06  Ales Hakl  <ales at hakl dot net>
  
	* string-append in standard functions
  
2005-03-06  Ales Hakl  <ales at hakl dot net>
  
	* Morse code example
  
2005-02-26  Ales Hakl  <ales at hakl dot net>
  
	* Fixed fatal bug in try
  
2005-02-26  Ales Hakl  <ales at hakl dot net>
  
	* Bugfix - multiple comments in a row should not cause problems anymore
  
2005-02-26  Ales Hakl  <ales at hakl dot net>
  
	* Exception support
  
2005-02-25  Ales Hakl  <ales at hakl dot net>
  
	* ObjectFramework + accopanying bugfixes
  
2005-02-25  Ales Hakl  <ales at hakl dot net>
  
	* New primitives
  
2005-02-25  Ales Hakl  <ales at hakl dot net>
  
	* C++ support
  
2005-02-24  Ales Hakl  <ales at hakl dot net>
  
	* Removed clutter
  
2005-02-24  Ales Hakl  <ales at hakl dot net>
  
	* Initial import
  
