Revision history
----------------
v0.2.7 2015-09-23
  * Change to raise an exception when a pattern matching fails
  * Change and improve API about actors to control remote actors
v0.2.6 2015-07-27
  * Add mochi.actor.mailbox.SQSMailbox
v0.2.5 2015-07-21
  * Add mailbox module
  * Remove ActorHub, RemoteActor and ActorAddressBook
  * Set debug to false as default to avoid tokens to be displayed in IPython Notebooks
  * Add -o --outfile option to pyc file generation
  * Add commandline option to generate pretty-printed AST
  * Add commandline options to convert mochi file Python source file
  * Fix some bugs
v0.2.4.2, 2015-05-06
  * Fix a bug related to eventlet's monkey patching on Python 3.2 (pypy3)
v0.2.4.1, 2015-05-06
  * Make Importer import a mochi file if the mochi file is newer than pyc file
v0.2.4, 2015-05-06
  * Support importing mochi file format by import-syntax
v0.2.3, 2015-04-30
  * Fix a bug about translating getattr syntax
  * Add -no-mp option and remove -pyc-no-mp option
  * Fix a bug that always execute eventlet's monkey_patch
  * Fix a bug introduced by fixing a bug that always execute eventlet's monkey_patch
  * Change lexer to ignore new lines at front of ".<NAME>"
  * Change a version of pyrsistent to 0.10.1
  * Improve parsing error message a little (this is associated with #29)
  * Fix a grammar bug of 'match'
    [before]
    match 10 + 10:
        20: "success!"
    # => ParsingError
    [after]
    match 10 + 10:
        20: "success!"
    # => success!
    Add binary infix operators
v0.2.2, 2015-04-26
  * Ignore sorrounding newlines of a infix operator
    [example]
    def fizzbuzz(n):
      match [n % 3, n % 5]:
          [0, 0]: "fizzbuzz"
          [0, _]: "fizz"
          [_, 0]: "buzz"
          _: n
    range(1, 31)
    |> map(fizzbuzz)
    |> pvector()
    |> print()
  * Add lexical tokens showing command option (--show-tokens)
  * Add automatic tests for development of mochi
  * Add first Dockerfile
  * Clean some source codes and setup scripts
v0.2.1, 2015-04-09
  * Use 'MessagePack' instead of 'Pickle' to encode messages for a remote actor
  * Add ActorAddressBook
    [example:server]
    >>> hub = ActorHub() # equals to ActorHub('tcp://*:9999')
    >>> hub.register('test', spawn(() -> print('test!')))
    >>> hub.run()
    >>> address_book = ActorAddressBook('127.0.0.1:2181') # specify ZooKeeper's address
    >>> address_book.register('print_test', 'tcp://127.0.0.1:9999/test')
    [example:client]
    >>> address_book = ActorAddressBook('127.0.0.1:2181')
    >>> actor = address_book.lookup('print_test')
    >>> actor ! 'any message'
v0.2.0.1, 2015-04-02
  * Add a workaround for a monkey_patch's bug on Windows
v0.2.0, 2015-04-02
  * Add ActorHub and RemoteActor
v0.1.9, 2015-03-23
  * Support type annotation to each fields of a record
  * Support checking type of each fields at runtime
  * Add typed vector syntax
    [example]
    >>> vector IntVector[int]
    >>> IntVector([1, 2, 3])
    IntVector([1, 2, 3])
  * Add functions in typeannotations module to builtin functions
v0.1.8.2, 2015-02-26
  * Change required version of Eventlet to 0.17.1
v0.1.8.1, 2015-02-14
  * Install Eventlet from GitHub for Py3
v0.1.8, 2015-02-07
  * Support the trailing if-expression (Fix #12)
  * Support the list comprehension with a conditional expression (Fix #11)
  * Support generating .pyc file
    mochi -pyc foo.mochi > foo.pyc
  * Fix some bugs
v0.1.7, 2015-02-01
  * Change the type-pattern syntax form
     [old]
      typename(pattern)
     [new]
      typename pattern
      # the typename is name of any type.
  * Fix some bugs
v0.1.6, 2015-01-22
  * Change the trailing closure syntax so that a trailing closure expression is passed to a function as the function’s final argument
     [old]
      func() : (args) -> closure_body
     [new]
      func() @ (args) -> closure_body
  * Support triple-quoted string literal
  * Update version of requirements (pyrsistent >= 0.8.0)
v0.1.5, 2015-01-18
  * Add support for multiple imports (e.g. import math, time)
  * Implement that 'None' does not appear at the REPL
  * Update version of requirements (eventlet >= 0.16.1, pyrsistent >= 0.7.1)
v0.1.4, 2014-12-31
  * Change the trailing closure syntax so that a trailing closure expression is passed to a function as the function’s first argument
    * func() (args) -> closure_body
  * Introduce the trailing closure syntax so that a trailing closure expression is passed to a function as the function’s final argument
    * func() : (args) -> closure_body
v0.1.3, 2014-12-29
  * Modify the record statement to be able to specify a non-record class as a parent
  * Replace '-' in name of the builtin functions with '_'
  * Fix some bugs
v0.1.2, 2014-12-24
  * Support the trailing closure syntax
  * Support the slicing and indexing syntax
  * Implement short form for keyword arguments and dict keys
v0.1.1, 2014-12-21
  * Implement raw strings. Fix a bug in strings
  * Add support for multiple imports from single source
  * Change the dot_expr to be able to specify a reserved word as a attribute name
  * Modify REPL to be able to exit with CTRL-D
v0.1.0, 2014-12-18
  * Modify the type of the take function to pvector from tuple
  * Modify the eval function
  * Change the display contents of an exception information
v0.0.9, 2014-12-14
  * Add the !> operator, the !&> operator and the distinct function
v0.0.8, 2014-12-09
  * Add some actor functions (link, unlink, cancel, kill, wait)
  * Add the quote expression and the quasi_quote expression
v0.0.7, 2014-12-08
  * Add the macro statement, the quote statement, the quasi_quote statement, the unquote expression and the unquote_splicing expression
v0.0.6, 2014-12-08
  * Add the with statement
v0.0.5, 2014-12-05
  * Change defm syntax form
v0.0.4, 2014-12-01
  * Add Actor
  * Add bind function and |>? operator
v0.0.2, 2014-11-17
  * Tweak grammer of module syntax. Introduce export keyword
  * Tweak a meaning of the require syntax
  * Add CHANGES.txt
