2002-06-12  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 3.3 +++

	* Makefile.mingw, mingw.h: fixed wrong copyright and version number

2002-06-11  Albert Graef  <Dr.Graef@t-online.de>

	* qc.y, qcrules.c: reinitialization of offs/plen/p needed at start
	of variable definition

2002-06-04  Albert Graef  <Dr.Graef@t-online.de>

	* qm.c, qmmatch.c: removed conditionals around inline keyword
	(already handled by configure)

2002-04-29  root  <Dr.Graef@t-online.de>

	+++ Release 3.2 +++

	* ports: interpreter cleanly builds and passes all tests on BeOS,
	Solaris and Windows

2002-04-28  root  <Dr.Graef@t-online.de>

	* clib.c, clib.q: added bounded semaphores

	* qmmatch.c: overhauled TA matching routines

2002-04-27  root  <Dr.Graef@t-online.de>

	* *.h, *.c: protoized most of the remaining sources

2002-04-26  root  <Dr.Graef@t-online.de>

	* qm.c etc.: reduced size of expression data structure from 36/40
	to 24 bytes

2002-04-09  root  <Dr.Graef@t-online.de>

	* qcdefs.h: increased size of the temporary expression table

2002-04-06  root  <Dr.Graef@t-online.de>

	* regexamp.q: added missing special declaration of the regsub
	function which was deleted by accident

2002-04-05  root  <Dr.Graef@t-online.de>

	* qdoc.texi: fixed some typos

2002-04-04  root  <Dr.Graef@t-online.de>

	+++ Release 3.1 +++

	* clib.c: massaged initialization sequence in the thread_proc
	routine

2002-04-02  root  <Dr.Graef@t-online.de>

	* ports: interpreter cleanly builds and passes all tests on BeOS,
	Solaris and Windows

	* optimizations: inlined some functions, gives a minor speed
	improvement

2002-03-31  root  <Dr.Graef@t-online.de>

	* qdoc.texi: added POSIX threads to clib documentation

2002-03-30  root  <Dr.Graef@t-online.de>

	* clib: added queens3 example

	* clib.c: fixed unref() call in unsafe section

2002-03-29  root  <Dr.Graef@t-online.de>

	* clib.q, clib.c: added spawn function

	* test.q: added pthread tests

	* q.c: added tty and fatal signal handlers

2002-03-28  root  <Dr.Graef@t-online.de>

	* q.c(rerun): proper reinitialization of ARGS variable

	* qm.c: fixed broken atfork handlers

2002-03-27  root  <Dr.Graef@t-online.de>

	* qm.c, q.c: added init_mutex to prevent threads from taking over
	during the variable initialization phase

	* qm.c, clib.c: added pthread_atfork handlers

2002-03-26  root  <Dr.Graef@t-online.de>

	* qmparse.y(assignment): fixed wrong redn and expr counts

	* clib.c(clib::thread): fixed silly bug in thread allocation

	* qctables.c(saveimps): fixed zero allocation bug

	* qbase.c(arealloc): fixed zero-length alloc bug

	* configury: added dmalloc support

2002-03-25  root  <Dr.Graef@t-online.de>

	* clib.c: implemented multithreading operations

2002-03-24  root  <Dr.Graef@t-online.de>

	* clib.q: added multithreading operations

	* modules: MT support, release mutex lock in potentially blocking
	operations

2002-03-22  root  <Dr.Graef@t-online.de>

	* stdlib: renamed the cond function to ifelse

	* libq: added multithreading-related stuff

	* interpreter: added multithreading capability: Q machine state is
	thread-local, global mutex lock in the interpreter

2002-03-15  root  <Dr.Graef@t-online.de>

	+++ Release 3.0 +++

	* ports: interpreter cleanly builds and passes all tests on BeOS,
	Solaris and Windows

	* bootstrapped from scratch

	* bootstrap: latest libtool apparently has a broken configure
	script, therefore added autoconf in libltdl to the bootstrap
	process

	* clib.c, sys.h: work around a bug in some gmp versions which causes
	mpz_fits_xxx_p(z) to return false when mpz_size(z) is zero

	* qctables.c: fixed segfault in compiler on solaris: we have to
	properly initialize *all* symbol table entries

	* Makefile.am: added a simple test script (run with `make test'
	after interpreter has been installed)

	* configury: converted to latest autotools

2002-03-14  root  <Dr.Graef@t-online.de>

	* qdoc.texi: doc updated once more

	* stream.q: stream constructors are now simply named `bin' and `nil'

	* compiler, interpreter: `in' is now a relational operator symbol

2002-03-13  root  <Dr.Graef@t-online.de>

	* qdoc.texi: doc updated, added some missing index entries

	* clib.q, clib.c: added clock and clocks_per_sec functions

	* qmparse.y: stats command prints cpu time, not total elapsed time

2002-03-12  root  <Dr.Graef@t-online.de>

	* src/Makefile.mingw: Windows portability fixes

	* qc.y, qclex.l: various bug fixes in compiler: treatment of
	qualified variable symbols; made `_' a predefined variable symbol;
	check that aliased symbol in redeclarations is already declared

	* qdoc.texi: description of import interpreter command: added
	usage without args

	* qmparse.y, qmlex.l: fixed a bug in the command parser:
	def/undef/imports keywords incorrectly recognized after ? escape

	* qdoc.texi: final touches on the docs

2002-03-11  root  <Dr.Graef@t-online.de>

	* clib.q: added missing declaration for regerr

	* stdlib.q: added isexcept type predicate

	* stdlib.q: cosmetic changes in the eq and neq functions

	* array.q: made bin constructor symbol, turned constructor
	equations into separate mkbin operation

	* qmparse.y: bug fix in which command: add .q suffix if necessary

	* qmfuns.c: fixed bug in qmdef(): treatment of anonymous variable

2002-03-10  root  <Dr.Graef@t-online.de>

	* qdoc.texi, q.1: updated documentation

2002-03-09  root  <Dr.Graef@t-online.de>

	* lambda.q: changed declaration of normal mode combinators to
	include the (non-special) lambda argument

2002-03-07  root  <Dr.Graef@t-online.de>

	* graphics.q: GRAPHICS variable now assigned to standard output by
	default

2002-03-06  root  <Dr.Graef@t-online.de>

	* qc.y: fixed a compiler bug: expression stack mark 2 placed too
	early, must be placed *after* qualifier

	* q-mode.in: fixed a bug in syntactic fontification: _ must be
	word constituent in the local font-lock syntax table

2002-03-05  root  <Dr.Graef@t-online.de>

	* qmlex.l: fixed bug in lexical analyzer: save start state when
	starting nested parse

	* qmfuns.c: fixed a bug in the qmdef/qmundef functions: don't
	count these as reductions for stats

	* modules: module examples are now installed in separate
	subdirectories

	* dxl: added the dxl_file data file generation routine, overhauled
	examples

	* prelude: clib is now loaded by default

2002-03-04  root  <Dr.Graef@t-online.de>

	* qc.y, qmcode.c: implemented new "#!" header in bytecode files

	* stdlib, clib: added exception handler modules

	* stdlib.q: some cosmetic changes

	* qclex.l: handle different aliases for the same source script by
	manufacturing aliases for all symbols of the module, to prevent
	duplication of the module

	* q.c: fixed bug in module loader: filename of module is now
	derived from the basename of the script filename, not the module
	name which could be aliased

2002-03-03  root  <Dr.Graef@t-online.de>

	* modules: updated to new compiler version

	* examples: updated to new compiler version

	* stdlib: updated to new compiler version

	* compiler/interpreter: endless number of bugfixes in the new
	symbol table code, should work now :)

2002-03-02  root  <Dr.Graef@t-online.de>

	* stream.q: bugfix in streamcat function

	* type.q: stuff now included in stdlib.q

	* array.q: added missing emptyarray operation

	* stdtypes: container constructors are private now

	* q-mode.in: fixed various bugs and updated to new syntax

	* qmparse.y: implemented dynamic import and unimport of modules in
	the interpreter

2002-03-01  root  <Dr.Graef@t-online.de>

	* qclex.l: extra modules specified on the command line are
	automatically imported into the main module

	* libq: FUNCTION, DESTRUCTOR and FUNCALL macros now take the
	module name as first argument; updated standard modules
	accordingly

	* qm.c: EXT_ERR and user exceptions now invoke the debugger if
	break is on

	* qm.c: show "where" bindings in debugger

2002-02-28  root  <Dr.Graef@t-online.de>

	* added where clauses for local variable bindings

2002-02-27  root  <Dr.Graef@t-online.de>

	* hard exceptions are now represented using builtin Exception type

	* added pattern-matching variable bindings

	* changed variable defs/undefs to builtin function

2002-02-25  root  <Dr.Graef@t-online.de>

	* qbase.c: fixed a bug in the searchlib routine (uses stat now to
	avoid directories)

2002-02-24  root  <Dr.Graef@t-online.de>

	* interpreter: implemented symbol table logic for new namespacing
	system

2002-02-23  root  <Dr.Graef@t-online.de>

	* compiler: implemented new import/include facility, qualified
	identifiers, added new error messages

	eliminated -w option, as the compiler does not emit warnings any
	more

	eliminated overlapping rules warning, made cyclic module refs an
	error

2001-11-06  root  <Dr.Graef@t-online.de>

	* configure.in, acinclude.m4: fixes for latest autotools versions

2001-09-17  root  <Dr.Graef@t-online.de>

	+++ Release 2.3 +++

	* regex.h: redefined names of regcomp/regexec routines to prevent
	clashes with incompatible system routines

2001-09-16  root  <Dr.Graef@t-online.de>

	* q-mode.in: fixed broken library path

	* README updated (Solaris info)

	* configure.in: -lDXL needs -lsocket -lnsl on Solaris

	* Makefile.am (etc, src): $< doesn't work with SUN make

	* glob.c: some minor fixes for Solaris compatibility

2001-08-12  root  <Dr.Graef@t-online.de>

	+++ Release 2.2 +++

	* ported to Windows, Cygwin and BeOS

	* final touches and last-minute bug fixes

2001-08-11  root  <Dr.Graef@t-online.de>

	* manual updated

	* qm.c (eval, evalu), qmfuns.c (qmcatch): handle hard exceptions
	with catch

2001-08-09  root  <Dr.Graef@t-online.de>

	* automake/libtool support for bundled readline, glob and regex
	packages (quick and dirty, but needed to make everything work
	properly)

2001-08-08  root  <Dr.Graef@t-online.de>

	* src/Makefile.am, qld.in: added libqmain and qld program

	* qmparse.y (save command): always unparse floating point values
	with maximum precision

	* q.c(rerun): don't restart interpreter after run

	* qclex.l(opensrc): allow null source file names in compiler

2001-08-07  root  <Dr.Graef@t-online.de>
	
	* qdoc.texi: integrated clibdoc.texi

	* q.c (resolve): private external symbols are now also mangled
	with module name to prevent clashes between same private extern
	identifier in different modules

	* portability fixes: added the necessary bits to make the package
	compile with mingw again

	* `which' on empty script once more prints nothing rather than the
	prelude script

2001-08-06  root  <Dr.Graef@t-online.de>

	* src/Makefile.am: added -dlopen flags for standard modules

	* qmparse.y: modules command now shows external modules with a
	trailing `*'

	* libq.h: modified for global symbol stropping [see below]; to
	these ends, INIT and FINI now require module name as parameter,
	changed standard module sources accordingly

	* q.c: __initmod/__init/__fini globals in modules are now stropped
	with module name, to prevent name clashes when modules are linked
	statically

	* q.c: mangled global symbols in interpreter to prevent name
	clashes with dlopened modules [see also mangle.sh]

2001-08-05  root  <Dr.Graef@t-online.de>

	* qcc: changed --no-compile to --dry-run and --cygwin to --mingw

	* qcc: now uses libtool instead of gcc

2001-08-04  root  <Dr.Graef@t-online.de>

	* libq: make module initialization return module name, which is
	now checked in the dl loader in q.c (resolve)

	* libq: stropped FAIL and ERROR with `__' to prevent collisions with
	macro definitions in other libraries; updated modules accordingly

	* sources: reorganized, automakified and libtoolized

	* ChangeLog started
