Falcon (0.8.14.2)
  * fixed: Array bindings was not correctly accounted by the Garbage
           Collector.
  * minor: Methods can now be called directly also on numbers.

Falcon (0.8.14)
  * fixed: Now asObject() raises an error if the item is not an object;
           this grant safety for methods that are not considered static.
  * fixed: Pow function (possibly to be deleted) was taking the first
           argument twice.
  * fixed: transcodeTo/transcodeFrom was actually not published correctly
           by the core module.
  * fixed: Expressions in "from" clauses (init expressions) may not resolve
           correctly symbols if the body of the object or class was empty.
           This caused assert and crash if generating expressions with symbols
           during "from" clauses of otherwise bodyless objects and classes.
  * fixed: Relevant warnings in array LDV/range (check order priority).
  * fixed: Relevant warnings symbol table generation (check order priority).
  * fixed: Generating a range from bogus values didn't raise a type error.
  * fixed: Import from module used "=" instead of "as" (leftover).
  * added: Reintroduced for/to grammar, (step now substituted by "," ), 
           actually a candy grammar for for/in.
  * added: OOB opcode which manages out of band items. 
  * added: OOB operators: ^+ (oob), ^- (deoob), ^? (isoob), ^! (invert oob status)
  * minor: Removed function inspectShort() and secured/empowered inspect().
  * minor: Added parameter defItem to arrayBuffer to "replicate items in arrays".
  * fixed: Range change in arrays was taking one item too much.
  * fixed: Exotic range applications (as substitutions in reverse ranges with
           negative indices) wasn't working as expected. Part of it was due to
           missing or approximative definition, part to plain errors. Now the
           semantic of ranged access is defined and enforced through all the
           operators and RTL functions.
  * minor: VMachine::launch() is now necessary to start executing the main script 
           even if launchAtLink() is true at link time. In other words, 
           launchAtLink() controls only the execution of the main symbol in the
           non-main scripts.
  * minor: falrun now returns 255 on vm error.
           
  
Falcon (0.8.12)
  * major: Support for class-driven full reflection and 0-space contstant/reflected
      classes.
  * major: Changes to FileStat interface:
      - FileStat.type becomes FileStat.ftype
      - FILE_TYPE_* constants are now static properties of FileStat.
  * major: Added support for module dynamic symbol creation on script request.
  * major: Added import [sym1, sym2, ... symN] from Module grammar.
  * fixed: Assigments shouldn't define symbols accessed or called.
  * fixed: continue dropping wasn't working for last elements in dictionaries.
  * minor: Now it is possible to alter static properties by their class name.
  * fixed: Some type error in VM should have been catchable, but was raised hard.
  * fixed: The compiler didn't always add module strings as symbol names.
  * fixed: Broadcast may have broadcast double in case of a single receiver not
            returning true.
  * minor: Added attributeByName function.
  * major: RTL module is removed (merged with core).
  * major: Now main code of modules is always executed. Added vmIsMain() function
           in core to be able to check if the current module is meant as main module
           or not.
  * minor: Added testAttribute() function to test for attributes.
  * major: Added interactive mode to Falcon command line tool.
  * minor: Option -D (set directive) has been moved to -d;
           -D sets compile time constants.
  * major: Macro and Meta compilation added. The escapes \[ and \] perform meta
           compilation, and the macro keyword and \\ escapes are candy grammar
           for macro compilation.
  * major: Added support for late binding.
  * major: Added local/late binding in functional constructs.
  * major: Added dynamic symbol resolution for arrays.
  * bufix: deadlocks at coroutine end when some context was waiting
           endless was not detected.
  * minor: added ETA functions let (assign) and lbind (make late binding).
  * minor: ',' can now be optionally used in .[] decl.
  * fixed: dolist wasn't breaking on oob(nil), but on just false.
  * major: Forward binding implemented. Currently used to resolve
           named parameter function calls.
  * minor: include() function added to Core module allowing dynamic module
           loading directly from base programs.
  * minor: added vmFalconPath() informative function.
  * major: Addition and self addition on strings now forces conversion of the
           target object into a string. I.e. "H" + 1 => "H1". Integer UNICODE
           operations are now delegated to the "*" and "*=" operators. So,
           "Hello" * 32 + "World" => "Hello World" and "H" *= 65 => "HA".
  * fixed: URI.encode() was actually decoding.
  * minor: Introduced xtimes() function which works like times(), but evaluates
           all the items in sequence instead of just running them.
  * major: Added TABULAR PROGRAMMING:
           - Added Item type "TabMethod" to store methods for arrays/tables
           - Self item is now propagated to functions called inside arrays.
           - Table column can now be used as properties of arrays inside the tables.
  * fixed: Assignments to properties and vector didn't propagate the assignand
            value.
  * fixed: Fixed compilation on Darwin.
  * fixed: Fixed missed mark of some deep item during GC (may have caused random
            crashes).
  * major: Added the concept of "blessed dictionary" that is seen as an instance.
  * minor: Much more sensible policy of EOL removal in FTD escapes.
  * minor: Added function valof returning the value of a variable or the return value
           of a callable item.
  * major: Added import aliasing.
  * major: Inheritance initialization parameter can now be any expression.
  * fixed: Disregarding old bytecode .fam files didn't work correctly.
  * minor: Added the eval unary prefix operator, first of cap-special operators: "^*"
           works a bit like eval() function, but much more efficient, expecially in
           the fast path.

Falcon (0.8.10)
  * minor: Now classes can be stored in object properties and called to get
      an instance.
  * bugfix: Indirect operator wasn't peeking the global table after having
      failed in searching the local table.
  * bugfix: When a "module provider" was given to runtime, test for already
      existing modules was always positive.
  * bugfix: fixed ftd line count, export/load directives and reenabled \n
      after a "?>"
  * minor: Added numeric() function to core
  * major: Removed forall and added formiddle which runs after every element
      except the last one (even if "forlast" isn't provided).
  * minor: dirMake() has now an extra parameter; if provided and true, the
      function works as mkdir -p; creates the whole heirarcy, and succeeds
      also if the directory is already present.
  * major: added boolean type. Now, true/false are special compilator tokens
      which generate a boolean item. Every VM check results in a boolean
      item being returned.
  * bugfix: Falcon binary didn't return the VM exit code to the shell.
  * minor: Load now supports ".module" notation to load sibling modules.
  * major: Added import directive for explicit symbol import.
  * bugfix: Fixed deep user data GC marking in methods and classmethods.
  * bugfix: Parameters in FBOM function calls was not removed from stack.
  * minor: It is now possible to call functions stored in classes; class functions
      not referencing "self" can be safely called this way, which makes them "static".
  * bugfix: Timestamp.distance() was returning a random value instead of nil.
  * Minor: Added Path reflexive class to RTL.
  * Minor: Added URI reflexive class to RTL.
  * Major: Added MemBuf type and relative support.
  * Minor: Added functions strToMemBuf and strFromMemBuf in RTL
  * Minor: Added MemBuf support for Stream.read(), Stream.write(), transcodeTo() and transcodeFrom().
  * Minor: Added start parameter to Stream.write()
  * Bugfix: size parameter was not correctly used in Stream.write()
  * Minor: Added internal SharedUserData class which can be used for data shared among many
           objects.
  * Minor: Added inspectShort() function that provides a more compact inspect().
  * Bugfix: Switches couldn't accept negative numbers.
  * Major: Now "=" always assigns, and "==" is used for comparisons.
  * Major: Remove assignment statement(s). All assignments are now expressions.
  * Major: Anonymous function declaration is now an expression.
  * Major: Anything may be place left of an assignment.
  * Major: Removed for/to loop and added a step parameter to ranges. For/in loop on steps
           have now the same functionalities as the old for/to loop. "step" is not anymore
           a reserved word.
  * Major: Now nameless functions and lambda are "closures".
  * Minor: Added statement "innerfunc" creating a non-closure function.
  * Minor: Added "enum" statement which can create a set of constants.
  * Minor: Statement give/to can now give attributes to (or remove them from) a list of
           objects.
  * Minor: Better management of INC/DEC; added INCP/DECP opcodes to allow faster inc/dec.
  * Bugfix: Error.description wasn't correctly reflected.
  * Minor: Added method Error.heading() to access the heading of an error without the stack trace.
  * Major: VM can now be interrupted in compliant waiting operations. ATM, stream and socket
           readAvailable & writeAvailable have been instrumented. Interruption will raise
           an InterruptedError, can be catched and operations can be resumed.
  * Minor: RangeError renamed into AccessError.
  * Major: Added broadcast replies (returning from broadcast with an OOB item).
  * Minor: Added function vmSystemType() to access underlying target compilation system.
  * Minor: Aliased the function paramNumber() to parameter(). The function paramNumber() is
           still available but deprecated.
  * Minor: Added first and last BOM methods.
  * Minor: Added RTL function randomDice
  * Minor: Added Stream.flush method in RTL (ops...)
  * Minor: Added RFC2822 date management.
  * Minor: Fixed unspotted bug in "-c" option for falcon.
  * Major: PCODE version moved to 2.0
  * Major: Added register Latch and Latcher in VM, working for LDP/LDV
  * Minor: Automatically disregarding outdated .fam when trying to load source modules.
  * Minor: Added "times" functional construct (ETA function). It's a kind of functional
		   for/in loop.
  * Minor: Added pluggable support for multithreading locking scheme and atomic operation
           providers (rudimental, but working).
  * Minor: Added directive "version"=number (0x[VVV]VMMmm) and the function vmModuleVersionInfo()
           to store and access script and .fam version informations.
  * Bugfix: fixed traceback corruption in error reporting when uncatching-retrhowing from a
            in-between try-frame.
  * Major: Added support for 0 overhead string internationalization.
  * Major: Binary operators grammar changed. Binary and is now &&, binary or is || and binary xor is ^^;
           Auto assigment stays &=, |= and ^=. Binary not is now ~.
           (This is because we need some of those symbols for other things in the next releases).
  * Bugfix: strFind and strBackFind didn't work correctly and may crash when receiving wrong values.
  * Major: Provided FAL_MODSTR macro (family) to create module specific string tables.

Falcon (0.8.8)
  * bugfix: TRAV opcode may destroy its parameters while setting first loop
      on rare conditions. Fixed.
  * major: VM now has a map of modules and global variables instead of two
      parallel arrays. This allows arbitrary module unlinking.
  * major: Item size is now 16 bytes. This allow space for stepped ranges.
  * major: Added WKS/WKI (Well Known Symbols/Items) system to obviate the need
      to share global items with scripts and create failsafe instances of
      classes.
  * bugfix: Fixed TimeStamp distance algorithm.
  * minor: List initialization is now possible also with non-atomic symbols.
  * bugfix: Precision in printing default flotaing point number was 6; now is
      16 (maximum precision for our number format).
  * minor: Added strWildcardMatch in RTL for simle *.*-like wildcard matching.
  * minor: Added ETA function firstOf() that retruns the first non-false parameter.
  * bugfix: When having more than one context, each stack had a different
      treshold, possibly causing some of the stacks to crash on realloc.
  * bugfix: Path of the offending module was not shown when reporting compiler errors.
  * major: Load directive can now handle dot modules "a.b"
  * bugfix: ModLoader::addSearchPath didn't locally bufferize the path, and this may
            have caused problems with incoming fixed strings.
  * minor: Added fileCopy() function in rtl (file_ext).

Falcon (0.8.6)
  * bugfix: incorrect format of 0.x floating point numbers.
  * major: Completed attribute model.
  * major: Improved functinal support. Added lit() and choice().
  * bugfix: Fixed initial search path for faltest.
  * bugfix: Fixed crash in moduleloader with empty paths.
  * major: Added message oriented programming model.
  * major: Flat VM model implemented.
  * minor: Added round, ceil, floor, fint and abs math functions.
  * minor: Fixed default representation of floating point numbers, and
      recogninzing long integer NAN.
  * minor: int() core function now raises a range error in case the given
      fp number cannot be represented in an int64.
  * minor: loop statement now accepts a statement on the same line for
      candy grammar.
  * minor: added arrayHead function in rtl.
  * minor: strHead, strHeadTrim, strTail, strTailFind have been renamed
      respectively to strFront, strFrontTrim, strBack, strBackFind for
      coherency with nomenclature.
  * major: Added List class with support in for/in and CORE iterator.
  * major: Added support for generic sequence object and deep GC marking.
  * minor: Added addSingleton method to Module class for easier embedding.
  * minor: Added marshallCB* series to dispatch events to handlers in objects.
  * bugfix: fixed self/sender sequence for callable arrays used as methods.
  * bugfix: array and property assignment now copies strings by value.
  * bugfix: One line for/in statement COLON rule caused crash.
  * minor: Changed "<" fast print into ">>".
  * bugfix: In case of callitem() from toplevel, errors were not managed correctly.
  * bugfix: Generic array resize (to smaller size) was wrong, and caused VM stack
            corruption when big arrays and recursions were performed.
  * minor: the "_" prefix for symbols is now used for private usage in classes.
  * bugfix: Lexer didn't recognize unclosed contexts at end of file.
  * major: Added dot-square array declaration, and better management of contexts
           /eol in array/list declarations.
  * major: Added compiler directive support. Now "def" wokrs on directive.

Falcon (0.8.4)
  * major: Old "lambda expressionss" are now "nameless functions". They are declared
    through variable = function(...) ... end  (which was the most common
    pattern for the old usage of lambda expressions
  * major: Lambda expression grammar is much simplified, and they allow only one
    expression as body.
  * major: Added .ftd (falcon template document) file type. It's a outer-escaped
    document (php/asp like) where unescaped literal code and escaped code
    can be seamlessly merged.
  * bugfix: Linear dictionary didn't break search loop in case of VM error.
  * bugfix: VM cleared register A when comparing items. This caused weird
    errors in dictionaries when the objects overloaded compare().
  * bugfix: Fixed try/catch sequences across internal frames
  * improvement: ^^^this also allowed to remove the ugly trypos structure.
  * bugfix: PSIN opcode extracted an unexisting second parameter; in case
    of dirty data that caused an assert.
  * design: Fixed compilation and build settings with MINGW.
  * bugfix: Fixed default load path of faltest.
  * improvement: Added a user data pointer to VM (useful for binary compatibility)
  * minor: Unclosed scoping errors now report where the scope was open.
  * improvement: added min, max, all, any, allp, anyp, map, xmap, filter, reduce,
    iff, cascade functions for minimal functional support.
  * major: callable arrays for deferred calls and functional support.
  * bugfix: AutoCString and AutoWString may convert incrrectly due to sign mismsatch
    in the return value of String::toCString()/String::toWString(). Fixed (and returing
    uint32).
  * minor: Semaphore wait() can now be timed.

Falcon (0.8.3)
  * VM optimizations of about 20-25%
  * VM Stack can now automatically shrink on need
  * Item size reduced to 12 bytes
  * GENR opcode didn't work correctly when operands were float.
  * Added lenght recording to autocstring and autowstring
  * Updated REGEX to PCRE 7.2
  * Added compare() and version() methods for Regex class.
  * in Error, added a method to stringize only the error header.
  * Fixed ROStream destruction sequence.
  * Fixed GetSystemEncoding (caused falcon cmdline to fail recognize default encodings)
  * Added ideographic space to whitespaces and ideographic quotes to string quotes.
  * Fixed some docs.

Falcon (0.8.2)
  * String::toCString now returns immediately if space is too short.
  * String::toWString now returns size of converted string or -1 on error.
  * AutoCString and AutoWString classes were not correctly exported in Windows.
  * Fassert.h didn't compile under MINGW.
  * Now switch on objects working in every case (including compare() overload)
  * Now operators - and -= remove element(s) from arrays and dictionaries
  * More rational and elegant class interface for garbage collection objects.
  * More rational and elegant string classes constructors.
  * Cleaner class interface for module loader search path specification.
  * Added load module and file interface directly from Runtime
  * END opcode now nils the A register of the VM if quitting.
  * randomSeed() in RTL now randomizes on timer if called without parameters.
  * Added VMachine::gcLock()/gcUnlock() to allow simpler registration of callbacks.

Falcon (0.8.1)
  * Fixed bug in VM allocation of temporary vardef that caused
    crash when using special memory allocator.
  * Added option -M to faltest to check for memory leaks
  * Added option -C to falcon to check for memory leaks
  * Removed memory leaks in some VM oprations, in maps, in compiler
    tree destruction, module and symbol destruction and many more.
  * Fixed timestamp method compare() that didn't allow for comparation
    against other types.
  * TimeStamp.toString() created a string too wide by one.
  * Empty loops always generate code. Optimization is to be performed
    by the (still unwritten) optimizer.
  * stdOut() &c now return a system-transcoded stream. To obtain a
    raw stream, use stdOutRaw() etc.
  * Regex.replaceAll() was broken in case of multiple submatches.
  * ProcessHandler last error was not zeroed in creation, causing random
    false negatives (process created ok, but reported error).
  * samples/procLoad.fal updated with correct Error class structure
  * Updated docs.
  * Added BOM serialization and item level cloning.
  * Added cloning support for streams.
  * Added cloning support for timestamps.
  * Items containing objects and classe were not evaluated as true; fixed
  * Added AutoCString and AutoWString class helpers for eaiser conversion
    of falcon items and strings to POD C data.
  * The Falcon::core::sleep function was correctly resolved when the application
    linked against Falcon .so in linux, but when it was loaded indirectly, in
    example, as a cascade load some app's plugin using falcon, it was resolved to the
    system sleep() instead!!!! --- so it has been renamed to Falcon::core::_f_sleep().
  * Fixed VM stack push (GenericVector couldn't push to themselves).
  * Fixed VM context rotation for coroutines managed outside plugins.

Falcon (0.8)

  * Prepared complete Debian packaging and fixed build issues.
  * Starting massive development.

 -- Chr. Giancarlo Niccolai <gc_ /at/ _falconpl.org>  2007-04-08
