2005-07-13  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 6.2 +++

	* doc/qdoc.texi: updated documentation

	* src/q.c (build_fsym_table): add completion for operator symbols

	* src/qmparse.y (whos): show operator precedence in whos command

	* stdlib/prelude.q: added builtin operator table

2005-07-12  Albert Graef  <Dr.Graef@t-online.de>

	* stdlib/cond.q: relational `in' operator is now declared here

	* src/*: added user-defined operators, eliminated builtin `in'
	operator

	* stdlib/stdlib.q: deprecated apply function; use ($) operator
	instead

	* configure.in: bumped version

	* doc/qdoc.texi: updated documentation

	* src/qc.y, src/qmparse.y: remove deprecated 1-tuple syntax. The
	syntax (X) now always denotes a parenthesized expression.

2005-07-11  Albert Graef  <Dr.Graef@t-online.de>

	* modules/xml/xml.c (xslt_apply_stylesheet): allow singleton
	(KEY,VAL) pair as PARAMS argument

2005-07-10    <Dr.Graef@t-online.de>

	+++ Release 6.1 +++

	* src\q.c (exitproc): workaround for Windows-specific bug which
	causes qcwrapped scripts to dump core at exit time under certain
	yet undetermined circumstances

2005-07-07  Albert Graef  <Dr.Graef@t-online.de>

	* README, NEWS, doc/qdoc.texi: updated documentation

2005-07-05  Albert Graef  <Dr.Graef@t-online.de>

	* stdlib/cond.q: new when and unless conditionals

	* src/qmmatch.c (match): bug fix: need an additional check for
	empty rule set when match table is nonempty

	* src/qcrules.c (definition): bug fix: handling of free lhs vars
	in def

	* etc/q-mode.in: fixes to accomodate for language changes

	* src/qclex.l, src/qmlex.l: remove deprecated % comment syntax

	* stdlib/stdlib.q (append): fix deprecated 1-tuple syntax

	* src/qc.y, src/qmparse.y, src/qmprint.c: optional trailing commas
	in lists and tuples, deprecated (X) 1-tuple syntax as suggested by
	John Cowan

2005-07-04  Albert Graef  <Dr.Graef@t-online.de>

	* src/qc.y, src/qmparse.y, src/opcodes.h, src/qctables.c,
	src/qm.c, src/qmfuns.c: added Haskell-like, right-associative
	infix application operator ($), as suggested by Tim Haynes

2005-07-02  Albert Graef  <Dr.Graef@t-online.de>

	* src/qc.y: type guards are only permitted on the lhs of an
	equation or definition

	* src/qcrules.c (definition), src/qm.c (evaldef1): add some extra
	pattern matching code to properly handle type guards on the lhs of
	def statements

	* src/q.c (evaldefs), src/qdefs.h (evaldef), src/qm.c (evaldef),
	src/qc.y (def rule): error recovery and better diagnostics in init
	code; fixes bug #1165977

2005-07-01  Albert Graef  <Dr.Graef@t-online.de>

	* configure.in: bumped version, copyright

	* src/qbase.h (Q_SIGNON): new signon message

2005-06-26  Albert Graef  <Dr.Graef@t-online.de>

	* modules/magick/magick.c (magick_colors): fix for IM 6
	compatibility

2004-10-23  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 6.0 +++

	* bumped Q version to 6.0

	* qdoc.texi: added note about SWIG support

	* modules/swig/examples: added a basic Q/Qt example

	* examples/primetest.q: added example contributed by Tim Haynes

2004-10-21  Albert Graef  <Dr.Graef@t-online.de>

	* qcc.c: add support for C++ source files

2004-10-19  Albert Graef  <Dr.Graef@t-online.de>

	* bumped libq version number (NOTE: libq ABI has changed, you'll
	need to recompile your modules)

	* modules/swig: added SWIG runtime module

	* libq.h, libq.c, q.c, qm.c: added have_lock()

2004-10-02  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 5.5 +++

	* bumped version number

	* run mangle.sh

	* examples/cgi.q: added cgi example contributed by Tim Haynes

	* README-GGI: updated information about GGI. In particular, the
	Windows version now uses Peter Ekberg's latest version of the
	DirectX driver from CVS which only needs the GGI_CONFDIR variable
	to be set (no need any more to fiddle around with GGI_DISPLAY and
	the GGI config files).

2004-10-01  Albert Graef  <Dr.Graef@t-online.de>

	* ggi.c, libggi.c, sprite.q: various bug fixes

2004-09-10  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 5.4 +++

	* xml: Windows port, improved namespace support, final polish

2004-09-08  Albert Graef  <Dr.Graef@t-online.de>

	* bumped version number to 5.4

	* README, NEWS: updated

	* configury: added xml module, upgraded to latest autotools

	* xml: added XML/XSLT interface

2004-09-04  Albert Graef  <Dr.Graef@t-online.de>

	* qmparse.y: latest bison prints 'syntax error' instead of 'parse
	error'

2004-09-02  Albert Graef  <Dr.Graef@t-online.de>

	* q.c, qbase.h, qm.c, qmlex.l, qmparse.y: added new profile and
	overhauled clear command

	* octave.c: fixes for latest octave versions

	* qm.c: debugger now correctly prints *last* value assigned to a
	local variable

	* clib.q: added null test for byte strings

	* q.c, qint.h: added qacquire() and qrelease() operations to C->Q
	interface

	* q.xml: updated for Kate 2.1

2004-04-15  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 5.3 +++

	* bumped version number to 5.3 in preparation of the forthcoming
	release

2004-04-14  Albert Graef  <Dr.Graef@t-online.de>

	* qdoc.texi: updated

	* *.q: use (.) instead of compose in examples and library scripts,
	mark stdlib::compose as deprecated

	* qc.y, qmparse.y, qctables.c, qmprint.c, qmfuns.c, qm.c: new
	builtin functional composition operator (.)

2004-04-13  Albert Graef  <Dr.Graef@t-online.de>

	* qm.c: fix errorneous debugger output when performing a tail
	reduction on a special argument forming the rhs of an equation

2004-04-10  Albert Graef  <Dr.Graef@t-online.de>

	* qmfuns.c, clib.c (fopen, popen): release global mutex while
	opening a file or pipe, to avoid potential deadlocks in
	multithreaded scripts

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

	* clib.c: allow full (unsigned short) range of port numbers in
	encoding and decoding of ip addresses

2004-02-29  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 5.2 +++

	* qdoc.texi: added @dircategory/@direntry (suggested by Kari Pahula)

	* configure.in: use installed libreadline if available

	* Makefile.am (various): avoid -L<builddir>/libq flag which ends
	up in the installed .la files (reported by Kari Pahula)

	* bumped version number to 5.2

	* qdoc.texi: updated

	* cond.q: added looping constructs (dowhile, for)

	* qcrules.c (expression): improved tail call optimization

	* qm.c (evalu): bug fix: tail call of builtin needs stack frame

2004-02-27  Albert Graef  <Dr.Graef@t-online.de>

	* q.c: disabled LTDL_SET_PRELOADED_SYMBOLS in libmain for now, to
	avoid breakage when client programs are not built with libtool

2004-02-20  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 5.1 +++

	* NEWS, qdoc.texi: updated

	* lambda.q: fix a long-standing but trivial issue: lambda now
	checks that the pattern is linear

2004-02-18  Albert Graef  <Dr.Graef@t-online.de>

	* README, NEWS, qdoc.texi: final touches for release 5.1

	* Makefile.am (various): make `make dist' from a separate build
	directory work

2004-02-17  Albert Graef  <Dr.Graef@t-online.de>

	* bumped version number to 5.1

	* Makefile.am (various): fixes to support VPATH, so building in a
	separate directory works, and to make static builds
	(--disable-shared) work again

	* qdoc.texi: added qcwrap documentation

	* src/qcwrap.q: added qcwrap script

2004-02-16  Albert Graef  <Dr.Graef@t-online.de>

	* qcc.c: add explicit --mode=install to install stage

	* qdoc.texi: documented enumerations

	* qc.y, qclex.l, qmparse.y, qmlex.l, qmfuns.c, prelude.q: added
	syntactic sugar for enumerations ([X..Y] syntax, new builtin enum
	function)

	* q.c: readline initialized too late during the startup process

2004-02-15  Albert Graef  <Dr.Graef@t-online.de>

	* qmparse.y: proper quoting of help and edit command arguments

	* qm.c: make the Q machine fully tail-recursive

	The interpreter now also optimizes tail reductions on builtins and
	special arguments returned by user-defined and builtin functions.
	As a result, linear recursive definitions involving operations
	like (and then), (or else) and cond::ifelse now execute in
	constant stack space, as one might reasonably expect. Thanks are
	due to Walt Wasilev for pointing this out.

2004-02-02  Albert Graef  <Dr.Graef@t-online.de>

	* configure.in: check for /usr/include/tcl${version} directory,
	for Debian compatibility (patch contributed by Kari Pahula)

	* clib.c: fix bad return value in system function

2004-01-31  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 5.0 +++

	* qdoc.texi: updated

	* qc: added -w option to warn about undeclared function and
	variable symbols (as suggested by Mathias Bruessel); overhauled
	standard library and examples to compile without warnings

2004-01-30  Albert Graef  <Dr.Graef@t-online.de>

	* bumped up version numbers and updated docs in preparation for
	the forthcoming 5.0 release

	* debugger: fixed broken `n' command, now works correctly with
	recursive evals; added tbreak command to set temporary
	breakpoints; break and tbreak commands now accept a list of
	function or operator symbols

2004-01-29  Albert Graef  <Dr.Graef@t-online.de>

	* stdlib.q, stream.q (zip, zipwith): restore previous behaviour of
	discarding excess elements

2004-01-28  Albert Graef  <Dr.Graef@t-online.de>

	* qdoc.texi: updated

	* stdlib, modules: final touches, added cvs Id tags

	* debugger: completion_matches command, q-mode now supports
	completion in the debugger

	* qmparse.y, qm.c (debugger): set breakpoints on function symbols

2004-01-27  Albert Graef  <Dr.Graef@t-online.de>

	* regex, readline: fixed some gcc3 compiler warnings

	* q.c, qm.c (debugger): cosmetic changes in command syntax,
	readline support

2004-01-26  Albert Graef  <Dr.Graef@t-online.de>

	* stdlib, examples: overhaul of scan operations

	A semantically complete set of scanl/scanl1/scanr/scanr1
	operations is now provided, which is also compatible with
	Haskell. The old scan/scan1 operations are gone, you'll have to
	change your scripts accordingly. The following declarations should
	do the trick for most purposes:

	public stdlib:scanl F A Xs as scan;
	public stdlib:scanl1 F Xs as scan1;
	
	* modules/curl, configury: added new curl module

2004-01-21  Albert Graef  <Dr.Graef@t-online.de>

	* stdlib.q, stream.q: bug fixes, cosmetic changes, overhaul of
	zip/unzip operations

2004-01-20  Albert Graef  <Dr.Graef@t-online.de>

	* stdlib.q: added curry and uncurry functions

	* clib: `bytes' is no longer a synonym for list, but `list' is
	overloaded on byte strings instead

	* mod_q: now also works with Apache 1.3

2004-01-18  Albert Graef  <Dr.Graef@t-online.de>

	* mod_q: added the Q Apache module (Apache2+prefork MPM only for
	now)

2004-01-15  Albert Graef  <Dr.Graef@t-online.de>

	* qdoc.texi: added a section about the libqint interface

2004-01-14  Albert Graef  <Dr.Graef@t-online.de>

	* src/Makefile.mingw, qint.h, qint.c: ported libqint to Windows

2004-01-13  Albert Graef  <Dr.Graef@t-online.de>

	* libq: removed xv{alloc,realloc,free} routines, as they conflict
	with the latest dmalloc

	These were still in there for backward compatibility, but aren't
	really needed any more, so now that the binary interface changed
	anyway we may as well remove them. Use malloc/realloc/free
	instead.

	* q.c, qint.h: added new libqint (C->Q) interface -- this also
	affects a number of other source files; see qint.h for details

2004-01-10  Albert Graef  <Dr.Graef@t-online.de>

	* libq, modules: Finally added some routines to libq which are
	used in many modules, but haven't been in libq up to now, namely
	mkuint, isuint, mkbool and isbool.

	Unfortunately, the binary interface to libq had to be changed for
	that in a non-backward-compatible way, so I bumped up the libq
	version number. This implies that you *must* recompile all your
	modules (including Q-Audio and Q-Midi if you use those).

2004-01-05  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 4.6 +++

	* README, NEWS: final touches

	* magick.c: bug fixes in flood fill operations

	* sprite.q: Windows usability fixes

	* magick, tk, odbc: fixes to Makefile.msc

2004-01-03  Albert Graef  <Dr.Graef@t-online.de>

	* qdoc.texi: updated

	* graphics.q: overhaul of the standard devices section; this now
	works automagically on Windows, no need to patch the script any
	more

	* clib.c: fixed segfault in tmpnam on Windows

	* ggi, magick: more Windows compatibility fixes and code cleanup

2004-01-02  Albert Graef  <Dr.Graef@t-online.de>

	* Windows port, changed build system to latest mingw, bug fixes

2003-12-31  Albert Graef  <Dr.Graef@t-online.de>

	* magick: added drawing ops, this one is finished!

2003-12-30  Albert Graef  <Dr.Graef@t-online.de>

	* magick: finished basic image manipulation functions, code
	cleanup, bug fixes

2003-12-28  Albert Graef  <Dr.Graef@t-online.de>

	* magick: new resource management functions, started work on image
	manipulation operations

2003-12-26  Albert Graef  <Dr.Graef@t-online.de>

	* magick: new magick_info and ping_image operations

	* magick: read_image and write_image now fully support multi-frame
	image files, which are represented as image lists in Q land

2003-12-24  Albert Graef  <Dr.Graef@t-online.de>

	* magick: create_image now takes an additional PIXEL parameter
	used to initialize the pixels of the image; improved magicktest.q
	example; bug fixes

2003-12-23  Albert Graef  <Dr.Graef@t-online.de>

	* magick: added blob conversion operations; new MAGICK field in
	INFO structure, MATTE field is now an integer

2003-12-22  Albert Graef  <Dr.Graef@t-online.de>

	* ggi: yet another major overhaul of the ggi module

	Support for the GGI buffer extension has been dropped for now, as
	the current libggibuf from cvs really isn't ready for prime time
	yet. Support for simple alpha blending is now provided through our
	own code, but no z buffers yet. The API has been simplified
	accordingly, and has been dubbed "stable" now.

	Note that there a few incompatibilities between the new API and
	the one from the Q 4.5 release, namely that ggi_fill_screen has
	been replaced by ggi_clear (which now fills the screen with the
	background instead of the foreground color), and that
	ggi_get_char_size has been replaced by the more general
	ggi_get_string_size (which takes a string to be measured as the
	second argument, and also works for FreeType-managed fonts).

	TODO: 1. Optimizations. 2. Alpha blending for text rendered in the
	builtin font -- probably not worth the effort, so please don't ask
	for it. ;-)

2003-12-21  Albert Graef  <Dr.Graef@t-online.de>

	* ggi_demo.q: replaced ggi_get_char_size with ggi_get_string_size

	* ggi.c: more bug fixes in text renderer

2003-12-20  Albert Graef  <Dr.Graef@t-online.de>

	* ggi.q, ggi.c: added ggi_get_string_bbox operation to determine
	the bounding box of a string relative to the baseline, more
	elaborate ggi_get_font_info, additional operations to retrieve
	antialiasing status and current transform, more bug fixes

	* ggi.c: fixed mono text rendering, optimizations in renderer, bug
	fix in bbox calculation

	* ggi.c: implemented alpha blending in text renderer

	* ggi.c: make transformed glyphs work in text renderer, plug
	memory leaks

2003-12-19  Albert Graef  <Dr.Graef@t-online.de>

	* README-GGI: add information about FreeType support

	* ggi.q, ggi.c: replaced ggi_get_char_size with the more general
	ggi_get_string_size function which calculates the dimensions of
	the bounding box of a rendered string

	* ggi.q, ggi.c, configury: added FreeType2 support (TODO: add
	support for linear transformations and alpha blending in the text
	rendering algorithm)

2003-12-16  Albert Graef  <Dr.Graef@t-online.de>

	* README: add information on ImageMagick support

	* magick: added ImageMagick module

	* configure.in, modules/ggi/Makefile.am: fixed some ggi-related
	quirks in configury

	* README, NEWS: bump version to 4.6, add a NEWS entry for ongoing
	development for the 4.6 release, add pointers to the q-lang
	SourceForge project

2003-12-14  Albert Graef  <Dr.Graef@t-online.de>

	* configury: renamed bootstrap script to autogen.sh

	* ggi_demo.q: adapted to new interface

	* ggi.q, ggi.c: major overhaul of the interface. In particular,
	pixel values are now always represented in device-independent
	form, as byte strings of 16 bit RGBA values. Moreover, the
	ggi_fill_screen operation has been replaced by the more useful
	ggi_clear function which fills the clip area with the current
	*background* color, and also clears all buffers attached to the
	visual.

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

	* ggi.c: changed buffer initialization code to allow for changing
	the GGI_BUF_DISPOSE flag; this still doesn't work for z buffers,
	probably a libggibuf bug?

	* ggi.q, ggi.c: alpha and z buffers are now specified with
	ggi_setmode instead of separate ggi_add_buffer operation

	* ggi.q: remark that only 8 bit depth alpha and z buffers are
	supported right now (libggibuf limitation)

	* ggi.c (ggi_add_buffer): fixed a segfault occuring when
	ggiBufCladVis fails

	* ggi.q, ggi.c: support for packing pixels in byte string format

2003-11-27  Albert Graef  <Dr.Graef@t-online.de>

	* ggi.c: made buffer support optional, to make the module build if
	libggibuf is not installed

2003-11-02  Albert Graef  <Dr.Graef@t-online.de>

	* ggi.c: added alpha/z buffer support (requires buffer extension)

2003-10-23  Albert Graef  <Dr.Graef@t-online.de>

	* tk.c: kludge to work around some spurious X error messages
	occuring when Tk is used with GGI

2003-10-14  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 4.5 +++

	* README, NEWS, qdoc.texi: updated

	* qm.c: fixed potential deadlocks on tty mutex (acquire_tty,
	release_tty, exit_thread) and on global mutex (evalu)

	* qm.c: optimized locking during init phase (start_init, etc.)

	* qm.c: overhauled debugger: fixed argument parsing of `d' and `u'
	commands, renamed `l' command to `v', added a new `l' command for
	listing source lines, and added a new `? <expr>' command to
	evaluate a Q expression in the debugger, with the local variables
	bound to their lhs values

	* ggi: added libggi module

2003-09-19  Albert Graef  <Dr.Graef@t-online.de>

	* gdbm.c: fixed a memory leak in gdbm_open

2003-09-16  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 4.4 +++

	* README, NEWS, qdoc.texi: updated

	* configury: updated

	* odbc: added odbc module

2003-09-09  Albert Graef  <Dr.Graef@t-online.de>

	* qdoc.texi: document new syntax of prompt command

	* q.c, qm.c, qmparse.y, qbase.h: make continuation and debug
	prompt configurable (extended prompt command)

	* libq.c, dxl.c: removed isobjm()

2003-08-28  Albert Graef  <Dr.Graef@t-online.de>

	* modules/tk/Makefile.msc: build tk module with thread support
	under Windows

2003-08-15  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 4.3.2 +++

	* tk.c(tk_start, INIT): check whether Tcl supports mutithreading

2003-08-14  Albert Graef  <Dr.Graef@t-online.de>

	* README, qdoc.texi: updated

2003-08-13  Albert Graef  <Dr.Graef@t-online.de>

	* configure.in, qm.c: added test for pthread_atfork

2003-08-11  Charlie &  <Dr.Graef@t-online.de>

	* clib/examples/pty.q: bug fix: pty driver routine hangs when
	interpreter has been built without threading support

	* glob.h: avoid name clashes with possibly incompatible system
	libraries

2003-08-08  Charlie Root  <root@obelix.local>

	* configury, clib.c: additional fixes for BSD compatibility

2003-07-28  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 4.3.1 +++

	* readline-4.2/configure.in: fixed broken library versioning

	* octave.c (writescalar): missing return value

2003-07-24  Albert Graef  <Dr.Graef@t-online.de>

	* configury: reverted to previous autotools (autoconf 2.52,
	automake 1.5, libtool 1.4.2) because of OSX compatibility problems

2003-07-21  Albert Graef  <Dr.Graef@t-online.de>

	* qdoc.texi (clib section): add note about cyclic reference chains

	* configury: updated to latest autotools (autoconf 2.57, automake
	1.7.6, libtool 1.5)

	* regex.h: additional #define's to prevent name clashes with
	system libraries

2003-07-14  Albert Graef  <Dr.Graef@t-online.de>

	* configury: fixes for latest autotools

2003-06-24  Albert Graef  <Dr.Graef@t-online.de>

	* clib.c: fixes for FreeBSD compatibility (thanks to Ralph Dratman
	for pointing this out)

	* glob.h: prevent redefinition of size_t which causes compile
	problems on some systems; use AC_TYPE_SIZE_T in configury instead

2003-06-13  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 4.3 +++

	* qdoc.texi: updated

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

	* qmparse.y (whos): print const attributes of var symbols

	* clib.q, gdbm.q: use var const for manifest constants

	* qc.y: implemented const var attribute

	* qctables.c (inittables): mark builtin variables (ARGS, INPUT,
	etc.) as const

	* q.c (rerun): bypass setvar when purging variables

	* qm.c (setvar): check for const variables; change error message
	for BAD_REDEF and BAD_UNDEF codes

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

	* qcc.c: intermediate object files are created in the build
	directory

	* libq.c (mklistv): fixed potential memory leak

	* libq.h, libq.c: added workaround for memory management quirks
	under Windows

	* gdbm.q: added missing import of clib (needed for non-standard
	preludes since clib::ByteStr is used in the C implementation)

2003-05-26  Albert Graef  <Dr.Graef@t-online.de>

	* qdoc.texi: fixed description of fcntl interface

2003-05-06  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 4.2.3 +++

	* gdbm: added some documentation to README-Gdbm, added testdb.q
	and gdbm_dict.q examples

2003-05-05  Albert Graef  <Dr.Graef@t-online.de>

	* qdoc.texi: updated

	* gdbm: implemented gdbm interface; added gdbm.q, gdbm.c,
	README-Gdbm and the necessary configury

	* except.q: updated

	* clib.q, clib.c: added isbytestr and crypt functions

2003-05-03  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 4.2.2 +++

	* qdoc.texi: updated

	* except.q: updated

	* clib.q, clib.c: renamed `suspend' to `await'

2003-05-02  Albert Graef  <Dr.Graef@t-online.de>

	* clib.q, clib.c: new Ref data structure

2003-04-28  Albert Graef  <Dr.Graef@t-online.de>

	* stdlib.q, clib.c: append now also applies to tuples

2003-04-25  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 4.2.1 +++

	* src: Solaris compatibility fixes

2003-04-24  Albert Graef  <Dr.Graef@t-online.de>

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

	* clib.c (fprintf, sprintf): automatic float/int coercion

	* clib.c: OS X compatibility fixes

2003-04-21  Albert Graef  <Dr.Graef@t-online.de>

	* clib: added openpty and forkpty functions, pty.q example

2003-03-26  Albert Graef  <ag@muwiinfc.geschichte.uni-mainz.de>

	+++ Release 4.2 +++

	* qm.c: evaluate lists and pairs non-recursively, to prevent C
	stack overflows

	* clib.c: OS X compatibility fixes

	* libq.h, libq.c: new xvrealloc function

2003-03-25  Albert Graef  <Dr.Graef@t-online.de>

	* qdoc.texi: final touches

	* clib.c: 2nd attempt to fix a hairy bug which would cause the
	thread destructor to wait for a dead thread after fork. See also
	the ChangeLog entry from 2002-08-29. The previously attempted fix
	would resolve the bug but cause another one instead, namely
	prevent thread objects to be garbage-collected at all. Hopefully
	this all is fixed now.

	* qm.c: removed locks on tty and parser mutexes in atfork handlers
	(these would block a fork in a background thread when the
	interpreter sits waiting in the main loop)

	* q.c, qmparse.y: removed all fflush(NULL) calls except in exitproc
	(these could block when secondary threads were busy doing I/O)

	* qmfuns.c, qmparse.y: moved parser mutex locks to the qmparse
	interface routines, and made the parser mutex recursive

2003-03-24  Albert Graef  <Dr.Graef@t-online.de>

	* clib.q, clib.c: recv/recvfrom: additional SIZE argument

2003-03-21  Albert Graef  <Dr.Graef@t-online.de>

	* qmfuns.c, clib.c: fixes for BEOS and Windows compatibility

	* examples: added flush calls (required for Windows)

	* q.c: reset errno after startup

	* clib.c: some more Windows fixes

2003-03-20  Albert Graef  <Dr.Graef@t-online.de>

	* clib.q, clib.q: reworked spawn and new _spawn function

	Note that the `spawn' function now returns immediately, without
	waiting for the child to finish, to make its interface consistent
	with the `exec' function. The `_spawn' function provides the
	former functionality, but it also accepts a new MODE argument
	which specifies whether the child should be waited for or not.

	* q.c: interpreter now checks its own invokation path, to exec
	the compiler from the same path

	* clib.c: BSD/OSX portability fixes

2003-03-18  Albert Graef  <Dr.Graef@t-online.de>
	
	* qdoc.texi: updated

	* except.q: updated (new clib operations)

	* clib: reworked dgram.q example

	* clib: socket functions (getsockopt, setsockopt, send/receive
	operations) now use ByteStr's as well; this allows arbitrary socket
	options to be retrieved and changed, and arbitrary binary data to
	be transmitted on sockets

2003-03-17  Albert Graef  <Dr.Graef@t-online.de>

	* clib: added ByteStr data structure, reworked binary file
	operations (see bread, bwrite) to use the new type

	* clib: added WHENCE argument to fcntl file locking operations, as
	well as the fseek function; new rewind and lseek functions

	* clib: added dgram.q example

	* qmparse.y (parse): fix multithreaded-related bugs

2003-03-16  Albert Graef  <Dr.Graef@t-online.de>

	* clib.q, clib.c: new functions: gethostname, gethostbyname,
	gethostbyaddr, gethostent, getprotobyname, getprotobynumber,
	getprotoent, getservbyname, getservbyport, getservent

	* clib.q, clib.c: added BSD socket interface; new functions:
	socket, socketpair, shutdown, closesocket, bind, listen, accept,
	connect, getsockname, getpeername, getsockopt, setsockopt, recv,
	send, recvfrom, sendto

2003-03-15  Albert Graef  <Dr.Graef@t-online.de>

	* clib.q, clib.c: added termios interface (tcsetattr and friends)

2003-03-14  Albert Graef  <Dr.Graef@t-online.de>

	* clib.c: added a yield (release_lock/acquire_lock) to a couple of
	potentially blocking operations

	* qm.c, qmfuns.c, etc.: new trap builtin

2003-03-12  Albert Graef  <Dr.Graef@t-online.de>

	* qmfuns.c: removed evil automatic flushes of the standard output
	stream; note that this breaks some things under Windows (user
	scripts doing interactive prompt/input might have to use flush to
	work properly under Qpad)

	* clib.c (Thread destructor): fixed a bug which prevented
	terminated threads from being garbage-collected

	* qmparse.y, qdefs.h, qm.c: invalid command parameters now all
	raise a simple syntax error message

	* qmparse.y: `stats all' and `who all' commands

	* clib.q, clib.c: major overhaul:

	new aliases for builtin I/O functions: getc, fgetc, putc, fputc,
	puts, fputs; new ungetc/fungetc functions
	
	fixed mkdir, mkfifo, wait, waitpid to follow POSIX-compatible
	semantics

	overhauled the calendar time functions to make them more closely
	correspond with the corresponding C functions; added tzname,
	daylight, localtime, mktime, asctime, strftime

	new system functions: fdopen, fileno, setvbuf, select, open,
	close, dup, dup2, pipe, fstat, fchdir, fchmod, fchown, ftruncate,
	fsync, fdatasync, fcntl, isatty, ttyname, ctermid, tcgetpgrp,
	tcsetpgrp, truncate, readdir, link, symlink, readlink, access,
	chmod, chown, lchown, utime, nice, pause, raise, getppid, uname,
	getpwuid, getpwnam, getpwent, getgrgid, getgrnam, getgrent,
	getgroups, setgroups, setuid, setgid, seteuid, setegid, setreuid,
	setregid, getuid, geteuid, getgid, getegid, getlogin, getpgid,
	setpgid, getpgrp, setpgrp, getsid, setsid, errno, seterrno,
	perror, strerror

	added a bunch of "manifest constants" for the various option
	parameters of the system functions

2003-03-09  Albert Graef  <Dr.Graef@t-online.de>

	* qmparse.y: the who command now only lists user-defined variables

2003-03-07  Albert Graef  <Dr.Graef@t-online.de>

	* clib.c: fix for only partially implemented POSIX sempahores on
	MacOS X

	* clib.c: eliminated a race condition which could cause a thread
	object to be garbage-collected while its thread is still running

2003-03-06  Albert Graef  <Dr.Graef@t-online.de>

	* qdoc.texi: added some notes on realtime scheduling

	* clib.c: some kludges to make realtime scheduling work under
	Windows; see the comment preceding the setsched function for
	details

	* givertcap: added sources to modules/clib, added givertcap
	support to clib.c

	NOTE: Under Linux, this program allows your applications to enjoy
	realtime scheduling without having to run them as root. That is,
	the clib::setsched function will now work even if the Q
	interpreter is run as an ordinary user. To make this work, you
	need to patch your kernel and install givertcap on your system;
	see modules/clib/givertcap/README for details.

	* clib.q, clib.c: added `getsched' function, `schedule' renamed to
	`setsched'

	* q.c: reenabled the backtrace mechanism; this still doesn't work
	properly with the multithreaded interpreter on Linux, but that is
	supposed to be fixed with kernel 2.6 and the next Linux pthread
	version

	* libq, clib, regex, src: some fixes for MacOS X compatibility

	Unfortunately, one of these fixes breaks binary compatibility in
	libq (the __error function had to be renamed to something else),
	so we're going to a new libq version.

2003-02-18  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 4.1.3 +++

	* qdoc.texi: updated

	* qm.c (rule): added missing gnuserv command for recording
	debugger options

	* stddecl.q, stdtypes: some minor code cleanup; members2 is now an
	alias for list2

	* except.q: merged with clib_except.q and graphics_except.q

	* hdict.q: fixed a typo in the deletek function

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

	* qdoc.texi: fixed some typos

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

	+++ Release 4.1.2 +++

	* README-DXL, sombrero.q: added a comment about a new bug in
	recent OpenDX versions which affects Tk applications with embedded
	OpenDX image windows used in hardware rendering mode

	(Maybe that's actually a bug in the OpenGL library on my Linux
	system? Have to look into that sometime.)

	* qm.c (evalu): only invoke debugger on conditional error when no
	catch is pending

	* qclex.l (yywrap): fixed garbled error messages at eof

	* dxl.q: bug fixes in the dxl_file function -- OpenDX apparently
	does not like empty position, connection or data components, so we
	prevent empty components from being written to the data file

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

	* clib.c: missing initialization in clib::strcat

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

	+++ Release 4.1.1 +++

	* qmfuns.c (qmcatch): must clean up activation stack on exception

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

	+++ Release 4.1 +++

	* qdoc.texi: updated documentation

	* qctables.c, qmfuns.c, opcodes.h: added new `which' builtin (see
	the manual for details)

	* qbase.c (pfloat): fix weird infinity printouts with Windows sprintf

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

	* q.c, tk.c: fixes for Windows compatibility

	* qm.c: added debugger command to list local variables of a rule

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

	* q-mode.in: debugger-related improvements:

	- record --debug-options

	- fontify `where', `if' and `  ==>  ' as keywords

	* qbase.h, q.c: --debug-options option

	* qm.c: various improvements in the debugger:

	- debugger now prints real names of variables bound in where clauses

	- default expression detail level is now 2

	- new format for debugger options: `pathnames=y|n' (print long
	pathnames of scripts, yes/no), `detail=N|all' (number of
	expression levels to print), `maxitems=N|all' (number of
	list/tuple items to print), `maxchars=N|all' (number of string
	chars to print), `maxstack=N|all' (number of stack levels to
	print), `options' (print current settings).

	All these options can now be entered either at the "dot" command
	in the debugger, or with the `debug' command at the interpreter's
	prompt, or with the interpreter's --debug-options option
	(which replaces --debug-long-filenames).

	* stdlib.q: fixed broken definitions of pred and succ

	* stddecls.q: `members' is now a synonym for `list'

	* stdlib: moved list/tuple comparisons and type-checking
	predicates from stdlib.q to separate comp.q and typec.q scripts

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

	* tk.c, tk/Makefile.msc: fixes for latest stable Tcl/Tk release
	8.4

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

	+++ Release 4.0 +++

	* stdlib, clib.q: parenthesized equality checks

	* qc.y, qmparse.y: `=' operator must now be parenthesized on
	*both* the left- and right-hand side of a rule

	* tk.q, tk.c: added new tk_set, tk_unset and tk_get functions

	* tk.c: fixed random lockups and async replies in event
	processing; events are now always processed in the main thread
	only

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

	* qm.c, qmfuns.c: fixes in the exception handling code; as the
	manual says, non-break exceptions now *only* trigger the debugger
	if there's no `catch' on the stack

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

	* clib.c: fixed buffer allocation bug in external clib::sprintf
	function

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

	* qdoc.texi, q.1: updated documentation

	* qm.c (qmid): fixed bug in syntactic comparison of vectors

	* qmfuns.c (qmval, qmvalq, qmread, qmreadq): fixed an unhandled
	"unterminated string" error condition

	* q.c (rerun): fixed garbled error message when the compiler bails
	out with an error while compiling the empty script

	* qcdefs.h: increased harcoded compiler table sizes

2002-10-31  Albert Graef  <Dr.Graef@t-online.de>

	* stdlib, clib: exception modules moved to the examples directory

	* qm.c: nicer formatting in debugger display of def's and undef's

	* qmfuns.c (xmatch): bugfix in variable definition code

	* qm.c: modified debugger to acommodate for the language changes

	The debugger now stops on the current rule also after a
	condition/where clause has been processed, and always displays the
	current condition/where clause while it is being processed.

	* qc.y: allow arbitrary list of conditions and where clauses in
	the qualifier

2002-10-28  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 3.5.5 +++

	* tk.c: fixed segfaults and other quirks in the finalization
	procedure

2002-10-27  Albert Graef  <Dr.Graef@t-online.de>

	* qmfuns.c: fixed segfaults on negative integers in builtin hash
	function

2002-10-18  Albert Graef  <Dr.Graef@t-online.de>

	* graphics.q: replace include of stdlib and string with import

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

	+++ Release 3.5.4 +++

	* clib.c: work around a bug in the MSVC sscanf function

	* qcrules.c (clearexpr): reset variable table when parsing
	multiple right-hand sides for the same left-hand side

2002-10-08  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 3.5.3 +++

	* qm.c (clearvartb): reset vartb to NULL after freeing it

	* qmfuns.c (tupleconcat): initialize n when x1 is a vector

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

	+++ Release 3.5.2 +++

	* qdoc.texi: updated documentation

	* qmparse.y: the `save' command now uses a larger precision to
	reduce rounding errors when rereading floating point values

2002-10-05  Albert Graef  <Dr.Graef@t-online.de>

	* qmparse.y: default variable file name now named .q_vars

	* qmlex.l, qmparse.y: experimental support for the C99 printf %a
	flag which allows you to save exact floating point variable values
	represented in hexadecimal textual format on some systems (use
	-DHAVE_ISO99_PRINTF to enable this feature)

	* tk.c: fixed bogus warning in call to Tcl_CreateCommand

	* qcc.c: missing parameter type in fatal() function

2002-09-28  Albert Graef  <Dr.Graef@t-online.de>

	* configure.in: updated for Tcl/Tk 8.4

2002-09-19  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 3.5.1 +++

	* qdoc.texi: updated documentation

	* clib: new gets and fgets functions

2002-09-18  Albert Graef  <Dr.Graef@t-online.de>

	* clib: renamed the `gets' operation to `fget'

	* list.q, stream.q: filter out unmatched items in binding clauses
	of listof and streamof

	* cond.q: new matchp predicate, additional check in match before
	applying lambda, to prevent combinator exceptions when except.q is
	loaded

	* qbase.h: increased default stack size to 1024000

	* qm.c (x_copy): implemented non-recursively to prevent C stack
	overflows

	* qm.c (x_collect): bug fix in garbage collector (segfaults on
	tuple values)

	* qmfuns.c (xeq): fixed broken non-recursive implementation

2002-09-07  Albert Graef  <Dr.Graef@t-online.de>

	* qdoc.texi: fixed some typos in the documentation

2002-09-02  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 3.5 +++

	* qdoc.texi: updated documentation

	* qm.c: changed debugger's rule printer to handle multiple `where's

	* qcdefs.h: increased the compiler's expression and variable table
	sizes (needed since now the where clauses are kept in memory until
	a whole rule has been parsed)

	* qc.y, qcrules.c: allow where clauses both before and after
	condition

2002-09-01  Albert Graef  <Dr.Graef@t-online.de>

	* qc.y: bug fix in option parser

	* clib.q, clib.c: new gets function which reads an entire file at
	once

	* stdtypes.q: added hdict.q

	* except.q: added hdict exceptions

	* hdict.q: new hashed dictionary type

2002-08-31  Albert Graef  <Dr.Graef@t-online.de>

	* qmfuns.c, qctables.c: added new `hash' builtin

	* q-mode.in: bug fixes and general improvements in the indentation
	rules; q-query-before-kill is now disabled by default

2002-08-30  Albert Graef  <Dr.Graef@t-online.de>

	* qc.y, q.c, qbase.c, qbase.h: path/--path argument starting/
	ending with `:' is now appended/prepended to existing path

	* qc.y, qctables.c, qmcode.c: removed the useless codefile shebang
	stuff

2002-08-29  Albert Graef  <Dr.Graef@t-online.de>

	* clib.c (Thread destructor): fixed a bug that could cause a child
	process to kill itself or other threads in the parent at fork time
	(the latter misbehaviour is probably LinuxThreads-specific?)

2002-08-27  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 3.4.3 +++

	* qmfuns.c (xeq): implemented non-recursively to prevent C stack
	overflows

2002-08-25  Albert Graef  <Dr.Graef@t-online.de>

	* qmlex.l: allow ' as string delimiter in special commands

2002-07-31  Albert Graef  <Dr.Graef@t-online.de>

	+++ Release 3.4.2 +++

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

	* qdoc.texi: updated description of the import command

	* q.c (quotearg): quote empty arguments on Windows

	* q.c (rerun): clear imports list when loading bytecode file

	* q.c (main): set up qc command line for rerun() even if source is
	a bytecode file

2002-07-30  Albert Graef  <Dr.Graef@t-online.de>

	* qmparse.y (print_modlist, print_implist): suppress printing of
	dummy ("") main module

	* qclex.l: create dummy main module for holding global imports
	when "" is the main script

	* qclex.l: main module is now always first script argument on
	command line, even if it is the empty script, ""; this also
	affects the behaviour of the import command

	* q.c: \\m and \\M now print the true main module name, even if it
	is empty

2002-07-26  Albert Graef  <Dr.Graef@t-online.de>

	* qmparse.y: fixed parse stack overflows for large lists and
	tuples

	* qmparse.y: don't echo lines with `load'

	* q.c: .qinitrc and .qexitrc are sourced correctly again

2002-07-25  Albert Graef  <Dr.Graef@t-online.de>

	* qm.c (init_thread): block SIGINT and SIGTERM signals

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

	+++ Release 3.4.1 +++

	* tk.c: all interpreter-related data is now thread-local, so you
	can have multiple interpreters in different threads

	* tk.c: tk, tk_reads, etc. now release the interpreter's mutex, to
	prevent long Tk commands from locking up the Q interpreter

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

	+++ Release 3.4 +++

	* clib.c, octave.c: used xvalloc()/xvfree() where appropriate

	* libq.h, libq.c: added xvalloc()/xvfree() routines to
	allocate/free expression vectors to be passed to mklistv/mktuplev.
	Apparently this solves some weird Windoze-only malloc/free-related
	segfaults in some modules.

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
