* do not show module paths (with getModuleHash() for example) and do not allow access to ENV and QORE_ENV with NO_EXTERNAL_INFO
* add domain to constant definitions
* implement new calling convention for functions & methods with ignore rv param
* fix class member initialization order to be same as declaration order
  (currently is alphabetic)
* make it so that a call ref/closure can be imported as a function in a
  Program
* implement warning for the case when an unquoted hash or object key is also a
  constant
* implement support for implicit typing in the parser
* implement a mechanism for a thread to sleep until another thread terminates
  (join)
* cover case when multiple types could be returned (? : operator, functions,
  etc)
* fix memory leaks caused by circular references
* implement support for specifying base class methods like this:
  $exp.Base::method()
* implement a new C++ API for adding functions internally, check
  BuiltinFunctionList::add*() for duplicates when used by modules
* fix %n and %N to not output private members when called outside the class
* fix parse directives to ignore comments after them
* make sure exit() will exit - may need to interrupt threads (ex: thread
  waiting on accept() will not exit)
* fix crash on exit() with running threads on Darwin <- CANNOT REPRODUCE
* optimize object method calls from the same object to avoid the reference and
  dereference
* fix broken callstacks - only reports for calls since the try statement
* implement auto-reconnect for pgsql (possibly not needed?)
* implement find_key operator, taking a regular expression to find a key in a
  hash
* implement split operator taking regular expression
* add support for ranges [2..9]
* track include files, make sure they are only included once
* have QoreStringNode::getAsString() return a standard empty string ("") when
  possible (also should not be reference counted)
* remove QoreNothingNode and use 0 everywhere instead
* add API compatibility info to module data
* update round() to allow the specification of significant digits
* implement public_instanceof operator
* add support for special ::toString() method to serialize an object to a
  string (very useful for debugging)
* add support for break and continue arguments to affect outer loops
* add error code to exceptions for XML-RPC fault reporting
* allow customizable QORE_INCLUDE_DIR searches
* implement GZFile and BZFile classes

done 0.8.6.1:
* add invalid operation warnings for keys and elements operators with invalid
  types

done 0.8.5:
* implement pseudo-methods to run on lists, hashes, and strings as if they
  were classes (ex: <hash>.lastKey(), etc)
* add context functions
* implement support for universal references - removed checking for passing a
  reference to user code with declared param
* document Datasource::getAutoCommit()
* implement a way to tell if signal handling is enabled or not from qore code

done 0.8.4:
* add context functions
* implement common initialization for global thead-local variables in all
  threads 
* implement optimized foreach statement for hash key iteration
* add warning for "." and {} operators where operand cannot be converted to a
  string
* implement parse options for pushing and restoring formatting options
* implement function class hierarchies for returning different types (bool,
  int64, double, node)

done 0.8.3:
* implement parse option for setting the time zone offset/region

done 0.8.1:
* add HTTPClient methods: setUserPassword(), setProxyUserPassword(),
  clearUserPassword(), clearProxyUserPassword()
* fix class constant searches from within class code to look in class first
* detect error when a function does not return a value but has a declared
  return value type
* fixed $.method() calls to use the optimization like with $obj.method() call
  syntax so that calling overridden methods from base classes works
* add $# for list element offset in list operators (map, select)

done 0.8.0:
* allow variants with the "constant" flag be be used in constant expressions
* add warning for local variables that are not referenced/used
* add warning for duplicate hash keys: duplicate-hash-keys
* add warning about supplying extra arguments: excess-args
* add warning about using deprecated functions/features: deprecated
* add function information to parse exceptions (parse_code)
* raise a warning if a function is used that has no effect except returning a value and the return value is ignored: return-value-ignored
* implemented optimization for method calls (save method and compare class at runtime)
* fixed class copying in subprograms; subprograms can no longer modify parent classes
* ensure only one variant for methodGate(), memberGate(), and memberNotification() methods, check signatures
* implemented "extract" operator like splice but returns list elements or characters removed from lists and strings
* implemented "remove" operator like delete but does not destroy objects and also returns value removed from lvalue
* made "delete" an operator instead of a statement
* hard typing for closures
* domain implementation on method variants
* implemented hard typing
* implemented function and method overloading
* implemented default argument values
* verify behavior of private copy methods
* make changes so constructors can be private
* check for illegal arguments to copy methods in self calls ($.copy())
* check object method references at parse time to verify the type of the object expression if available (and then check if the the method exists)

docs:
* add links to HTTPClient::connect() text
* update tibae module docs regarding function class, can be hash lookup or direct class string
* document thread resource tracking
* add examples for modules
* write ncurses module documentation
* document optimizations

done 0.7.4:
* fix signal handling after fork()
* fix crash with printing recursive data structures

done:
* auto-reconnect for sybase, oracle, mysql

done 0.7.0:
* make ThreadResourceList private
* implemented license tagging and checking for the qore library and modules
* implemented auto-reconnect for oracle
* change get/test_*params() to return const values
* make QoreHashNode implementation private
* change getExistingVarValue to take a ReferenceHolder argument instead of a temporary QoreNode * arg
* implement bool_eval(), etc for VarRefNode
* make it so that there is only ever one Nothing and Null object
* eliminate needs_eval() and is_value() as virtual functions, including bitfield bools (when reimplementing QoreType as an 20-bit integer)
* implement -,-= with hash, list of strings to remove lists of hash keys
* update Operator.cc ex: op_plus_eq: use getAsFloat() on evaluated argument instead of convert()
* migrate to "pimpl" approach for exported classes in qore library
* fix QoreSocket.cc to replace spaces with %20 in paths
* fix qt QShortcut to work on dynamic slots by saving the slot and calling the slot when the shortcut's signal is raised
* added support for dereferencing strings with []
* implement a way to modify table names in queries (support table name prefixes, for example)

done in previous releases:
* update QoreString::trim*() functions to trim all whitespace, and not just blanks, with an optional character array giving the character to trim
* fix +=, -= to use the rhs type if the lhs is NOTHING
* fix signal thread to be a special thread with a special thread list entry
* fix %d Datasource specifier to work with floats
* do block allocations of per-thread local variable slots for performance reasons
* add signal constants/infrastructure
* remove thread call stack tracing in non-debugging mode
* make lists of items disabled with parse restrictions
* make a section for each parse restriction
* implement support for regular expressions in case expressions
* implement function and object/method pointers
* fix Queue class (destructor must wake up any sleeping threads)
* add file functions (is_file() is_dir() is_symlink(), etc)
* do not allow global variable initialization at the top level if NO_TOP_LEVEL is set
* allow user to specify sort callback function for sort()
* implement BigIntOperator for more efficient evaluation of operators returning integer values
* implement a forward-compatible/extensible interface for DBI driver registration
