mio 0.0.6 (2013-11-02)
- Allow an optional object to be passed to the Object id method.
- Implemented hex builtin.
- Implemented Bytes and Tuple objects.
- Implemented State core object and sample loop builtin (in testing).
- Refactored all of the context state management code (stopStatus) and exposed it to the end user.
- This means we can now write flow based constructs such as loops directly in mio.
- Fixed a minor bug in the parser where not(0) ifTrue(print("foo")) would parse as not(0, ifTrue(print("foo")))
- Fixed a minor bug in the parser where isError would parse as is(Error). Parse identifiers before operators.
- Implemented basic excpetion handling and error object(s) (no stack traces yet).
- Moved exit to builtins.
- Moved the setting of .binding attribute to Object set/del methods.
- Added support for .. operator and added this to Number. This allows you to write:
x = 1 .. 5 # a Range from 1 to 5
- Added + and - operators to the Range object so you can do things like:
x = (1 .. 5) + 2 # a Range from 1 to 5 in increment of 2
- Changed default REPL prompt to:
- Implemented sum builtin.
- Added try and raise builtins. (``raise`` is not implemented yet...).
- Added support for User level Error(s) and implemented Exception raise
- Replaced Continuation call with activatable object semantics. This means:
c = Continuation current()
print("foo")
c()
- Object evalArg should evaluate the argument with context as the receiver.
- Added List __getitem__ and List __len__ methods.
- Added TIterable trait to the mio bootstrap library and added this to List.
- Removed foreach, whilte, continue, break and return Object methods. These will be re-implemented as traits and builtins.
- Changed the way the parser parses and treats operators. They are no longer parsed in a deep right tree.
Example:
OLD:
NEW:
- This will probably make reshuffling and therefore implementing operator precedence a lot easier.
- This also makes the following expressions possible (used in the builtins module):
- Added TypeError, KeyError and AttributeError to the mio std. lib.
- Made it possible to import members from a module with: from foo import bar