Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > ce28a7166724e825c2f68e362f5daca9 > files > 253

Falcon-0.9.6.8-1.fc15.i686.rpm

Falcon (0.9.6.7)
  * fixed: pow() din't reset the numeric error on startup.
  * fixed: FTD not correctly escaping if using CRLF as EOL.
  * fixed: In WOPI, missing function Uploaded.read()
  * fixed: Continuations had several implementation bugs.
  * added: Continuation callers can now send parameters to suspended
           continuations.
  * minor: Reversed startup continuation parameter list (now the
           call-with-continuation parameter is the first one).
  * fixed: Json escaping (\uNNNN) wasn't correctly generated.
  * minor: Added function vmModuleLine, that returns the number of the
	    line it has been called at.
  * fixed: Several problems in module loading and marking caused random
           crashes with complex inter-module linking.
  * fixed: Error traceback doesn't include Error_init anymore.
  * fixed: Several bugs in class inheritance calculus and class equality
           check.
  * minor: Better error reporting thanks to error boxing.
  * fixed: load/import with files from relative paths now working.
  * fixed: Fixed off-by-one error in ftrim()
  * added: DBI - odbc module.
  * added: Support for encoding IBM850 (code page 850 - western latin).
  * added: DBI - Firebird (fbsql) module.

Falcon (0.9.6.6)
  * fixed: Default CoreObject clone didn't try to clone the falcon-data even
           if it was possible to do that.
  * fixed: When importing from namespaces, inheritance (derivedFrom) from 
           classes coming from namespaces wasn't correctly detected.
  * fixed: In interactive mode (and whenever using the interactive compiler)
           modules with symbols already known in the VM couldn't be loaded
           even if stored in their own namespace.
  * fixed: CoreSlot wasn't exported so it couldn't be used in modules.
  * fixed: "a" * 10000 taking ages because of parser error in first allocation.
           Thanks maxm for this.
  * minor: Added option "-s" in CLT to send error output on stdout, and --cgi
           option to load "cgi" module and add -s option in one step.
  * minor: strSplit() returns an array containing all the elements if the token
           is not given.
  * fixed: toString() crashed when called without a parameter.
  * fixed: include() didn't take the engine encodings as the default.
  * fixed: language level second() was not using the new system independent api 
           Falcon::Sys::_seconds(). As a result, some embeddings using _second()
           may have provided mismatched timings on windows.
  * minor: When used with invalid parameters, falpack points out that -h will 
           print help text.
  * fixed: Sys::fal_mkdir (unix) didn't handle absolute paths proper. 
  * added: Method Dictionary.dop (default operation).
  * fixed: falpack wasn't correctly storing the plugins in the app subtree.
  * fixed: Immediate array unpack was causing an assert in case of wrong sizes.
  * added: Module cache acting directly in ModuleLoader. Should be reviewed for
           finer control in next version.
  * added: Methods Dictionary.do and Array.concat
  * fixed: passvp() was failing if calling function had local vars (!)
  * fixed: First trace step of errors didn't report the target file name.
  * fixed: import <module> in <namespace> used the "as" instead of "in" keyword.
  * added: Base64 class.
  * fixed: String.escape() enscaped only below chr(8) and not below chr(32).
  * added: epoch() function returning exactly the seconds since UNIX epoch.
  * fixed: Comparation with timestamps and other kind of items caused an
           endless recursion.
  * fixed: strSplit(":",":") should logically return an array of two empty items,
           but returned ":" instead.

Falcon (0.9.6.4)
  * fixed: returning oob(1) from a filter in comp() & single sequence mfcomp
           didn't discard the value.
  * fixed: Path::uriToWin() (used to post-normalize paths on MS-Windows system)
           didn't translate '+' into ' ', which meant troubles with filenames
           including spaces on MS-Windows.
  * fixed: falpack used the user-provided main script path as-is, without prior
           normalization, causing all the scripts to be considered 
           non-applciation (system) when the path was given in non-canonical
           format.
  * minor: Asynchronous messages are now handled more smoothly.
  * fixed: future binding (named parameters) "invaded" local variables in target 
           function symbol table. 
  * fixed: strSplitTrimmed (and FBOM.splittr) put an extra empty string at the end
           of the array when multiple separators was at the end of the parsed
           input strings.
  * fixed: Failing to init the frame in new VMContexts would have caused random
           crashes depending on linkage or memory conditions (thanks Mordae).
  * added: Function.trace() to get the traceback steps.
  * fixed: Invalid loop condition caused fself.caller() to segfault (all
           thanks to fgenesis).
  * fixed: Fordot statement (.=) couldn't be used after for/in...: (after a colon)
  * added: Methodic functions strEsq, strUnesq, strEscape, strUnescape (and 
           similarly named methods in String) helping string transformation in
           web modules.
  * fixed: URI::URLEscape needed much more escaping...
  * fixed: Error reporting in include() may crash.
  * fixed: def statement crashed if declared variables was not assigned.
  * fixed: Directory.descend can be called with nil as directory handler function.
  * fixed: URI::URLDecode was a bit too strict; there's no need to filter chars
           under 0x20.
  * added: Event model to VMSlot (children named slots). 
  * fixed: StreamBuffer may cause hangs on partial reads in net-based streams.
  * fixed: clone() and *comp() didn't duplicate strings as semantic would suggest.
  * added: Now unknown messages are optionally marshalled to "__on_event" in objects.

Falcon (0.9.6.2)
  * fixed: Random crash on runtime errors during object init.
  * fixed: fileExt() returned the file part since first dot.
  * added: Support for OEM - IBM473 code page.
  * fixed: fileType() and FileStat return values were not initialized, cusing
           weird values in case of file not found errors.
  * added: First version of falpack.
  * fixed: Error in class symbol de-serialization caused failure of fam
           loading. The default fallback to .fal re-compilation hid the
           problem.
  * fixed: In c++ API, Path::getWindowsFormat went in endless loop.
  * added: Path.fulloc, Path.winpath, Path.winloc and Path.winfulloc properties
           to the Path class.
  * added: falpack CLT tool.
  * fixed: Module loader now takes into account also disk specifiers.
  * fixed: Path::isAbsolute wasn't considering relative paths under disk 
           specificators.
  * fixed: Local symbol tables of functions may have been broken, causing
           string expansion and other language elements in need of dynamic
           access to local symbol table to break.
  * added: mcomp and mfcomp methods to sequences for multiple comprehension.
  * fixed: Comprehension support is now not atomic (and supports 
           continuations).
  * fixed: Continuation.clone wasn't correctly working -- currently disabled
           because causes segfaults.
  * major: "state" keyword removed. Now, states are declared with [statename] 
  * fixed: Asynchronous message processing was basically broken, but the breakage
           could be spotted only at random conditions.
  * fixed: Addressing issue on sparc64 caused segfault on __leave handling in
           state transitions.
  * fixed: the check on VMContext::preParam was totally bogus and
           may have caused to return 0 even if proper pre-parameter existed.
  
Falcon (0.9.6)
  * minor: On windows, stream functions now accept paths also in windows 
           format. This is controlled by an engine global setting that
           is ON by default on windows and OFF elsewhere.
  * fixed: Throws to manage return frames was a bit excessive. This
           wasted lots of time in atomic calls.
  * fixed: Timestamp.dayOfWeek() wasn't working correctly.
  * fixed: Extra error field was always set to "_init" when raised during
           the link process in VM.
  * minor: Using libedit on unix for a more handy interactive mode.
  * fixed: Items generated in interactive mode may have been randomly ripped
           by the GC.
  * fixed: Calling an item referencing a callable item wasn't working.
  * major: overrides are PREFIXED by __, and not suffixed anymore.
  * fixed: Deserialization of objects didn't dereference the class item;
           classes coming from remote modules would crash.
  * major: Added states in classes. Now "state" is a keyword.
  * minor: Added fileExt() and fileUnit() functions for completeness.
  * fixed: Immediate circular dependencies in inheritance lists caused
           endless loop in VMachine::link
  * fixed: Errors in the expression part of for/in statements may have caused 
           the compiler to lose track of context levels. This caused segfaults
           on some statements nearby those erroneous for/in decls.
  * fixed: for-to construct failed to enter the loop in 0 to 0. Also it didn't
           loop the correct times when starting and ending in negative ranges.
  * fixed: EOF in ReadFile (windows streams) was not always correctly detected.
  * fixed: Read of multi-byte filenames on POSIX systems caused double-utf8 
           encoding.
  * major: Added Continuation class, allowing to suspend & resume arbitrary code.
  * major: Added unbound variables, created with the "_" symbol, as a new 
           "UnboundType" with relative metaclass and item type.
  * fixed: Garbage collection during link steps (i.e. on sub-module main(), and
           in instance initialization) would cause a safe crash, as it would
           destroy the LiveModules that are in the runtime, but not yet linked.
           Pitifully, this fix is useless, as LiveModules are to be removed in
           0.9.6.
  * fixed: __getIndex() accessor was broken if the expression in the accessor
           was a complex expression.
  * fixed: Macros used in per-property reflection was possibly broken under very
           rare conditions.
  * fixed: URI reflection was a mess (and slow); cleaned and simplified.
  * minor: Added function passvp() that can be used to retrieve or pass variable
           parameters.
  * major: Now compare() (vm level) checks for deep equality in arrays and
           dictionaries. The relation [1,2] < [1,3] holds. Circular reference
           prevention during those deep scans is in place too.
  * major: Added the "eq" identity operator, so that 1 eq 1 is true, as a eq a,
           but b = a.clone(); a eq b is false (if a is deep).
  * fixed: falconeer.fal relied on the old(incorrect) behavior of 
           regex.replace
  * fixed: Item compare may not work correctly if applied to ints that were too
           distant (> int32 range).
  * fixed: In falcon command line tool, fixed loading of source files not 
           terminating with .fal, and when forcing execution of fam files via the
           -x options.
  * fixed: indirection didn't work for classes so classnames and enums couldn't be used
  * fixed: fallc was left behind of a version or so.
  * fixed: Error in array generation when small grow sizes are involved in GENA 
           opcode.
  * fixed: Error in array generation when small grow sizes are involved in 
           arrayBuffer() core function.
  * fixed: In ItemArray::append( Item& ) the parameter is passed as a pointer. If
           the array data must be relocate and the item is coming from the array
           itself, the old memory may be gone by the time the final copy is 
           performed. This hit particularly hard with PUSH, which puts data on
           the stack and may get data from local vars and parameters (both in
           the stack).
  
         
Falcon (0.9.4.4)
  * fixed: CoreTables used as sequences in for/in loops didn't mark their 
           Falcon side Table item as owner. This caused crash with some
           GC patterns.
  * fixed: The context stack was lengthened, but not resized, when calling an 
           array. This may have caused direct crashes when calling arrays on 
           brand new stack frames (a rare, but possible situation).
  * fixed: Grammar error on def statement caused crash.
  * added: Object.retrieve and Object.apply BOM methods to extract and apply
           data to objects.
  * major: Added property accessors to classes and objects.
  * fixed: Raising a class in the error hierarchy caused segfault.
  * fixed: Coroutines terminating with a simple return may have killed a
           useful value in the A register of the swapped-in new coroutine.
  * fixed: StringStream didn't reset eof() at seek(0).
  * minor: Better interface and improved features for Tokenizer class.
  * fixed: In tables, Table.insert at bottom didn't work correctly.
  * added: Methods Table.append and Table.set
  * minor: Now tables support [] accessors (accessing a row in current page).
  * added: TableError class for generic errors in table operations.
  * minor: Table.find() now accepts an extra default parameter.
  * fixed: Cleaned and clarified several error messages in table ops.
  * fixed: Under windows, FileStat(".") wasn't working.
           
Falcon (0.9.4.2)
  * fixed: After engine shutdown, some permanent memory object was not
           cleaned (Thanks Klaim).
  * fixed: Added method Array.NM and arrayNM function to declare "never
           methodic" arrays, that is, arrays meant to store data and
           that aren't to be seen as methods even when they are in
           properties.
  * minor: Moved VMachine::lock() (GarbageLock management) from VMachine to
           memPool. This allow easier moving of data across VMs. Should
           require recompilation of just a small subset of embedding
           applications.
  * fixed: VMachine::currentLiveModule() returned a const LiveModule by error.
  * fixed: VMachine::setWKS wasn't properly working on singletons, due to a
           glitch in the code.
  * minor: Added a userItems() vector in LiveModule, that can be used safely
           by extensions and embeddings.
  * fixed: Stream.readLine and Stream.grabLine were not returning the last line
           when it was broken by an EOF.
  * minor: Better return behavior of Stream.readLine: now returns false at EOF
           when it can't read anything.
  * minor: Better return behavior of Stream.grabLine: now it returns an oob(0)
           when hitting EOF after last read; this allows to use it directly
           in comprehensions and for/in loops.
  * minor: Added a "stream" parameter to redirect dump to another stream.
  * fixed: Some operations on buffered streams didn't update correctly the tell()
           indicator.
  * fixed: overloading was not working when returning defaultProperty() in
           synthetic classes.
  * added: Complex class.
  * fixed: Search for file stats (including modules) is now case sensitive on 
           MS-Windows, at least in the last part of the file name.
           
Falcon (0.9.4)
  * fixed: ClassMethod couldn't be used as classes for new instances, and
           any class in a property would have generated a class method when
           accessed.
  * fixed: exit() and other termination requests are honoured in interactive
           compiler.
  * fixed: Re-enabled falconeer and updated falcon skeleton module.
  * added: methods bind(), unbind(), bound() and value() to LateBind metaclass.
  * minor: Removed VMachine::raise*Error functions. This removal has also
           helped to spot many buglests in various modules that consisted in
           calling the old functions, now actually shortcuts for "throw",
           before doing some cleanup.
  * major: VM main loop and context (coroutine) support redesigned.
  * fixed: Some issues in coroutine swapping and spurious wakeups are now solved
           indirectly by the new VMContext system. This also greatly improves
           context switches times.
  * added: Methodic function properties() to determine properties of OOP items.
  * fixed: GC Marking of items stored uniquely as method "self" part was broken.
  * fixed: Methods of methods was not correctly dereferenced into vm->self.
  * major: Added support annotation attributes.
  * major: The CoreArray is now based on an inner element derived from Sequence.
           This makes possible to abstract many operations (but this is not visible
           at language level).
  * major: Added comprehension method to Array and List classes (this can be used
           to create lists from list definitions very similarly to Python, but
           still being more flexible.
  * fixed: Some string methods renamed: 
             String.backFind => String.rfind  (wasn't working anyhow)
             String.backTrim => String.rtrim
             String.frontTrim => String.ftrim
  * added: Functions argv() and argd() returning respectively the vector and the
           dictionary of the received parameters.
  * fixed: Substring primitive wasn't correctly working when switching to 
           international strings.
  * fixed: Better behavior of the interactive compiler, now a bit more resistant
           to user error.
  * fixed: interactive mode didn't work with wide strings and international 
           characters.
  * added: Methodic function describe() that can be used as a reflective inspect()
  * minor: Now using describe() instead of toString() in interactive mode.
  * fixed: Access to static methods in classes was broken.
  * fixed: In ranges, step 0 now represents the "default step"; open range is
           indicated with a special value.
  * minor: Ranged access to membuf now creates membuf slices.
  * minor: Added function arrayCompact and method Array.compact() for finer memory
           usage control.
  * minor: .ptr() for integer dereferenced them; this seems to be unneeded, at
            least in the main engine; now ptr() on integers just returns the
            integer itself.
  * fixed: Representation of memory buffers on big endian machines.
  * fixed: Slowness on Sparc32 bit platform.
  * minor: Performance issue on Big endian platforms.
  * minor: TypeID returned by typeOf and typeId for integer items is now
           NumericType.
  * major: Closures are not anymore transparent (arrays). From the outside, they
           look as functions, but they record the value of local variable.
  * major: A more flexible definition of methods, and a more formal definition of
           call points and call structures allowed to fix some weirdness in the
           resolution of "self" with methodic arrays.
  * fixed: Closures can now refer to symbols in any parent, not just in the topmost
           parent.
  * minor: Closed variables in closures are now always received by reference. This
           allows all the closures created in a function to share and be able to
           modify the same variable environment.
  * minor: Rationalized iterators; as a result, they won't work on Strings and
           MemBuf, for a few releases at least.
  * minor: removed List.erase() and List.insert() (now done via iterators).
  * major: Added comprehension to dictionaries (just as other sequences, but with 
           pair being taken as [key, value] items for addition).
  * major: Now, '*' operator on strings replicates them. Unicode addition is done
           via '%', while '/' adds its argument to the last character of the string,
           so that "a" / 1 => "b"
  * minor: Added Set() VM assisted (sequence) class.
  * major: Added support for generators in for/in sequences.
  * fixed: Fixed error reporting in faldisass.
  * fixed: Fixed error reporting in falrun.
    
Falcon (0.9.2)
  * fixed: using more modern throw instead of the obsolete raise() functions
           in many points.
  * fixed: "find" method in strings was erroneusly named "strFind".
  * minor: Added brigade() ETA function.
  * fixed: Directory class wasn't masked; as a result, using it caused crash.
           As a fix, we removed DirectoryOpen function and allowed Directory
           constructor to work as previously done by DirectoryOpen.
  * added: Directory.descend (it's meant to be a reminder for a complete
           do() framework).
  * fixed: List.first() wasn't returning a fully prepared iterator.
  * fixed: Oob wasn't working properly on immediate strings.
  * fixed: isoob() was returning 0 or 1 instead or false/true.
  * fixed: PostMessage() wasn't forwarding errors to the main VM loop in case
           of asynchronous message posting.
  * fixed: More correct error messages in case of problems loading submodules.
  * added: Method wordSize() to MemBuf metaclass.
  * fixed: Particular errors in class declaration may have caused error detection
           to segfault.
  * fixed: Array back-mark to its table did not deep-mark its data; as a result,
           the table got marked with the current generation and skipped its mark
           processing loop as a standard object. This exposes the need to
           rationalize and simplify the Garbage/mark Object/gcMark interface.
  * fixed: LiveModule::detach() was nilling the original (imported) values
           rather than the local objects.
  * fixed: fself wasn't working in init blocks.
  * fixed: Error class couldn't be inherited from scripts.
  * fixed: For/in loops with negative step exited immediately when start == stop
  * added: Added String.startsWith, String.endsWith, strStartWith(), strEndWith()
  * fixed: Multiline strings in MS-Win text file format sources (CRLF) couldn't
           be correctly parsed.

Falcon (0.9.1.8)
  * fixed: faltest didn't output help text when called with -h/-?
  * fixed: Operator overriding in blessed dictionaries had many issues.
  * fixed: prefix inc/dec operator overriding now returns what is returned
           by the overriding function (formerly, it returned the item itself).
  * fixed: StringStream wasn't respecting stream copy semantic (copy shell,
           respect underlying stream). As a result, it couldn't be used to
           communicate across threads.
  * minor: StringStream is now interlocked; it can be proficiently used as
           an interthread safe raw data exchange device.
  * fixed: Obviating the need for ";" in function declared inside
           dictionaries.
  * minor: Falcon command line doesn't require full module generation to generate
           the debug grammar tree module.
  * major: Now allowing circular references in module loads.
  * fixed: Unpack is now working in every situation (and generally, more
           efficiently).
  * fixed: Didn't set correctly the default .ftt extension for -y options, and
           caused the original file to be overwritten.
  * fixed: Issues on multilanguage and internationalization.
  * minor: Added search path to the engine and to all the items involved into
           compilation. Also, added vmSearchPath() script function to allow
           scripts to get the path as set by the application.
  * fixed: Format wasn't correctly parsing ":0" (zero-length variable length
           integer formatting).
  * fixed: Escapes at the beginning of multiline double-quote strings were lost.
  * fixed: Possible reaping of table pages by an execessive GC usage.

Falcon (0.9.1.6)
  * fixed: In loop statement, continue looped from the top skipping the
           loop condition (if it was present).
  * fixed: Function "any" was STILL returning 0 instead of false.
  * major: Added method ptr() to FBOM and various metaclasses.
  * major: Added explicit character size scaling and c-zation of
           Falcon::Strings.
  * fixed: Repeated assert() may have crashed depending on the stack
           status.
  * fixed: Due to faulty method equality check, method unsubscription
           was failing.
  * minor: Added subscription priority parameter.
  * fixed: getAssert() didn't get the correct default parameter when
           the required slot wasn't found, and VMSlot.getAssert wasn't parsing
           correctly its parameters.
  * fixed: MessageError wasn't exported to the Core module.
  * minor: Added CoreSlot.name() method.
  * fixed: VMSlot wasn't properly setting the user data, so for/in didn't
           know it was a sequence.
  * minor: Added first() and last() methods to VMSlot to allow iterators
           to work.
  * fixed: Detach() sequence was just a draft, and didn't actually free
           app-side data.
  * fixed: Respecting ThreadParams settings in POSIX thread creation.
  * fixed: Dind't correctly generate InterruptedError on VM interruption
           requests.
  * fixed: Function parameters were still hard-limited to 255. Now they
           are limited to uint32 (2^32).
  * fixed: std I/O blocked on Win7 (inheritance rights on DuplicateHandle).
  * fixed: crash in call__ callback for functors.
  * fixed: static initializer in classes didn't use standard definition of
           const_atom.
  * fixed: Secured deserialization on almost-last item.
  * major: Added support for operator overloading in poop, and Dictionary.set()
           /dictSet() to be able to bypass [] overloading if needed.
  * fixed: Interoperability of FAM and serialization across endianity.
  * fixed: Module unloading is now secure.
  * minor: Added readURI and writeURI functions.

Falcon (0.9.1.4)
  * fixed: As now files and modules loads are URIs, and URI decoding was
           strict, modules with international names could not be loaded
           unless the name was previously URI escaped.
  * minor: Now it's possible to prevent parsing (un-escaping) from URI
           constructor.
  * minor: Fixed error failed DLL load error report string in Windows.
  * fixed: Now correctly importing symbols from modules named with
           strings.

Falcon (0.9.1.2)
  * fixed: Correct parsing of octal number (0 and 7 was out...)
  * fixed: Crash with statements == just numbers, and allowing interactive
           compiler to parse non-stand alone expressions and evaluate them.
  * fixed: A leftover from version 0.8.14 caused tables not to properly mark
           their contents on garbage collection.
  * fixed: More flexible int() and numeric() functions (thanks Kless).
  * minor: Added functions vmModuleName, vmModulePath and vmRelativePath to
           help solving dynamic dependencies.
  * fixed: [DANGER]: Fixed missing GC marking of items in frame stacks (mainly
           self and binding registers). This was in since 0.8.0; it was less
           evident because 0.8 had sender which cached the last minus one
           self objects, saving at least the previous caller, and it was
           unlikely that the nth-2 caller wasn't cached somewhere else in the
           VM.
  * fixed: include() was using a cached pointer variable to create the error
           message; the VM stack may have been (usually is) dirtied, so the
           pointer was invalidated. This could have caused random crashes
           and errors in reporting the failing module name.
  * fixed: Finetuned module loader error reporting (now it indicates the module
           whose dependency wasn't found).
  * fixed: Some functional selectors (any & c) still returned 0 on false and 1
           on true.
  * minor: String.merge() now accepts only an array as parameters, and works
           as String.join() does with its parameters.
  * fixed: Const atoms din't include negative numbers (i.e. negative numbers
           couldn't be used in enum declarations).
  * fixed: Reporting a consistent error when aliasing different modules to the
           same namespace.
  * fxied: Now the VM correctly lets imported undefined symbols not being
           part of namespaces to generate a proper error.

Falcon (0.9.1)
  * fixed: String-blocks closed with " alone on a line werent' recognized.
  * fixed: Octal numbers weren't properly scanned.
  * added: Support for binary numbers (0b..., "\B...") and octal with 0c...
           and numeric neuter separator "_".
  * fixed: (possible) race condition in VM destruction and re-creation and GC
           VM marking.
  * fixed: Long existing latent bug in Lists and iterators: if the GC destroyed
           the list, the iterators may still refer to it.
  * fixed: Some latent problem in deep marking of object/classes.
  * major: Now lazy unload of modules on-the-fly is supported (some wip)
  * fixed: Missing rethrow at frame return (errors inside second level
           callItem()).
  * fixed: Error reporting from inner compilations (include etc).
  * fixed: Line number of errors in FTDs.
  * fixed: Stream::readString exchanged a success for an error...
  * fixed: Syntax errors in global statements caused the compiler to crash.
  * fixed: Indirect operator didn't methodize callable properties.
  * fixed: Buffered streams returned an error on EOF instead of 0.
  * fixed: Fixed date "%m" field in to-string.
  * fixed: Small memory leak in compiler re-initialization.
  * fixed: Loading of deep paths (due to 0.9)
  * fixed: Some short-to-wide chars transformation code on buffered strings
           (latent from 0.8).
  * fixed: Path class was working a bit randomly.
  * fixed: FileStat class wasn't correctly caching the mtime member.
  * major: Added detection of statements without effect (or with partial effect)
           at compile time; useful to detect "str1"\n"str2" left from 0.8.x
  * fixed: Errors in "loop" definitions may have caused a segfault.
  * fixed: Seek from current position wasn't working in buffered streams.
  * fixed: Better to always fill the error backtrace, for now.
  * fixed: Ops, totally forgot to add the -L load path in falcon exe.
  * fixed: Re-enabled copy-on-assign on strings; too dangerous without.
  * fixed: As Falcon didn't destroy the VM at end, items where not propery finalized.
  * fixed: Rare crash on static string live module owner marking. This poses a question
           on validity of current marking algorithm for live string (to be checked out).
  * fixed: Stream.readAvaliable() may have reported spurious false positive on UNIces.
  * fixed: Callback frame termination handler was not set if there was just one frame
           the stack.
  * major: It is now possible to launch symbols as coroutines without a FORK opcode.
  * fixed: Since 0.8.0, VMachine::callReturn restored caller exit value in case of
           context termination. This caused spurious wakeups and signal consumptions
           in coroutine semaphores, as the return value of the wait() function must
           be mangled from inside the sleeping context, and may be applied when a
           context dies. As 0.9 uses small coroutines (dying often) to send messages,
           the effect was dramatically visible.

Falcon (0.9)
  * major: Removed "sender" from grammar.
  * fixed: Array bindings was not correctly accounted by the Garbage
           Collector.
  * minor: Methods can now be called directly also on numbers.
  * minor: Removed VMachine::compareItems; using inbound item
           comparators.
  * minor: Fallc now saves in UTF-8 in merge mode.
  * major: Removed "pass" and "pass/in" statements.
  * minor: Removed "itemCopy()" function (changed into clone() methodic FBOM).
  * minor: Renamed FBom method into typeId (type is too useful as property name for users).
  * minor: Revamped and methodized strFront and strBack (String.front()/String.back()).
  * major: Removed attributes.
  * major: Added class VMSlot, broadcast, consume, assert, retract, register and unregister
           message oriented functions.
  * major: Revamped Engine Message and Error system; now, they are centralized in
           eng_messages.h, where new generic messages and errors can be simply added.
  * minor: The engine string table is now expoerted as for any module and can be
           internationalized.
  * fixed: String Copy constructor didn't set export to false.
  * minor: -L option in falcon and falrun excluded automatically the system default path.
  * major: VFS in loading modules implemented.
  * major: Removed the obsolete ErrorHandler mechanism and using C++ exceptions.
  * minor: MemBuf now provides an interface with Java NIO Buffer semantics.
  * minor: Removed factory function FileReadStats(); now the constructor in FileStats()
           does everything.
  * minor: Method FileStat.readStats is renamed as FileStat.read
  * minor: Changed the order of parameters in RTL serialize() function (first the item,
           then the stream).
  * minor: Swapped wildcard and string parameters in strWilcardMatch.
  * minor: Added String.join method.
  * major: Methodized all Item API related functions.
  * minor: Removed now useless functions arrayCopy, arrayFilter and arrayMap.
  * minor: Removed indirect function (call, callMethod, marshal*), as they are now easily
           available through eval() and languge operators.
  * minor: Removed now useless function dictInsert().
  * minor: Added methodic function strFill() / String.fill().
  * minor: Added methodic function arrayFill() / Array.fill().
  * minor: Added methodic function dictFill() / Dictionary.fill().
  * major: Standard streams and local filesystem VFS providers are now
           serving buffered streams.
  * minor: Added getBuffering()/setBuffering() methods to Stream.
  * fixed: Transcoding control (it is now possible to change
           transcoders more than once).
  * minor: Added grab(), grabLine() and grabText() methods to streams. The
           older functions cannot return newly allocated buffers anymore.
  * minor: read/write functions on streams now can take advantage of NIO
           MemBuf interface.
  * fixed: abs() was mapped to fract(!)
  * major: Assignment does not causes strings to be automatically copied
           anymore. Automatic copy is performed on modify (if the string
           is static), and in deep copies of containers. Modify of non-static
           string doesn't cause the strings to be copied (explicit .clone() is
           required). So, a = "...", b = a, b and a will be disconnected
           when one is modified, while a = strMerge(...), b = a, b and a would
           reflect each other changes. This is a bit hybrid, but consequences
           are hardly visible. The point is that if you want a mutable string
           to be different, use an explicit .clone(), and if you want just
           read-only strings use "...".
  * major: New GC support: Added singleton GC with static members usedMem,
           aliveMem, items, th_normal th_active and with static functions
           enable() and perform(), reflecting the new engine wide GC. The
           old functions gcEnable, gcSetThreshold, gcPerform, gcSetTimeout,
           gcGetParams are removed.
  * major: Introduced parametric evaluation, and oob(0/1) now works at
           VMachine::functionalEval() level. Parametric eval is done by
           setting &N where N 1..parmCount() to the nth parameter.
  * minor: Removed xtimes() and empowered times(). Also, times() is now
           methodic for Integers and Ranges. Times passes the loop number
           via parametric evaluation (&1).
  * minor: Added ETA methods upto() and downto() for Integer metaclass.
  * major: Added { param => body } fast nameless function declaration.
  * major: Binary module logical names are resolved adding _fm to the
           searched module name. In example, "load module" searches for
           module_fm.dll. Fam/fal/ftd file resolution is unchanged.
  * major: The loop statement now supports a conditional ending.
           The end keyword of the loop statement block can be followed by
           an expression; the loop terminates when the condition is true
           (same as repeat/until).
  * fixed: Naming two times a closed variable in closures caused the
           parameter resolution order to be messed up.
  * major: Removed 'lambda' keyword. Use {=>} instead.
  * major: Added 'fself' keyword referring to the current symbol being
           executed. Won't work with methods for now.
  * minor: Added 'getProperty' and 'setProperty' methods to deep items
           meta-classes.
  * minor: Added 'name' and 'caller' methods to function metaclass.
  * fixed: Fixed crash when inserting just single constants in interactive
           compiler.
  * major: Removed dot-quoted strings (.")
  * major: Removed automatic joining of adjiacent double quoted string.
           Now, "a" "b" are two separated tokens.
  * minor: Added compiletime parsing of + and * operators on strings. This
           means that it is possible to join strings at compile time via
           "a" + "b"
  * minor: Binary operators can accept an optional EOL after them. A line can
           terminate with a + and the expression can continue on the next
           line without a \ to join them.
  * major: Literal strings now never escape with a \. "\" is always
           considered just a \; to add a single quote in a literal (single
           quoted) string, write a single quote twice ('').
  * major: Multiline strings are now initiated with a single open " or '
           followed by an EOL. They terminate to the matching " or ', and
           the context coninues to the end of the terminator line.
           Double-quoted strings are non-literal, and compress new line and
           leading whitespace characters into a single space, while single
           quoted strings are literal, and insert into the string any space
           and line break in the source. This means that double quoted
           strings can be used to break a long string across multiple lines
           and arbitrarily indented, while single quoted strings define a
           verbatim block.


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