Falcon 0.9.4 - Eagle Release

不知不觉,falcon已经发布了0.9.4,我忙着加班呢,官方说的几个idea模块都没有
实现呀,继续关注中

Changelog

   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.