Joined: 08 Oct 2006
|Posted: Mon May 19, 2008 7:29 pm Post subject: Falcon 0.8.10 preview
|We have released a preview of the new Falcon "Piuma" (0.8.10) version. Please, take a look and test this release. Updated! - added docpack.
Update: We have uploaded a docpack containing a PDF of the Survival Guide and of the Command Line Tools manual, with also a set of grammar files for some of the most common editors. You can download them here:
Here you can find the online function reference:
While we setup the new site and the new developer resources, and while we're finalizing documentation and hunting last bugs, we have prepared a preview of Falcon "Piuma".
You can have a look at it here:
I am sorry we have attached no special label to this preview, so it will install and show as a regular 0.8.10 - Piuma. We aplologize, but this is meant for testing, bug hunting and reporting errors . Next time we'll schedule some RC and fix versions accordingly.
This is the changelog up to date:
* minor: Now classes can be stored in object properties and called to get
* 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
* 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
* 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
* 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
* Major: Added support for 0 overhead string internationalization.
* Major: Bitfield operators grammar changed. Bitfield and is now &&, bitfield or is || and bitfield xor is ^^;
Auto assigment stays &=, |= and ^=. Bitfield 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.