version 0.11.0

This commit is contained in:
Araq 2015-04-30 16:59:29 +02:00
commit d9d5aa60b7
2 changed files with 25 additions and 8 deletions

View file

@ -4,6 +4,11 @@ Tools available with Nim
The standard distribution ships with the following tools: The standard distribution ships with the following tools:
- | `Nimsuggest for IDE support <nimsuggest.html>`_
| Through the ``nimsuggest`` tool, any IDE can query a ``.nim`` source file
and obtain useful information like definition of symbols or suggestions for
completion.
- | `Nim Installation Generator <niminst.html>`_ - | `Nim Installation Generator <niminst.html>`_
| How to generate a nice installer for your Nim program. | How to generate a nice installer for your Nim program.

View file

@ -26,12 +26,18 @@ What's left to be done
The 1.0 release is expected by the end of this year. Rumors say it will be in The 1.0 release is expected by the end of this year. Rumors say it will be in
summer 2015. What's left: summer 2015. What's left:
* Bug fixes, bug fixes, bug fixes! * Bug fixes, bug fixes, bug fixes, in particular:
- The remaining bugs of the lambda lifting pass that is responsible to enable
closures and closure iterators need to be fixed.
- ``concept`` needs to be refined, a nice name for the feature is not enough.
- Destructors need to be refined.
- ``static[T]`` needs to be fixed.
- Finish the implementation of the 'parallel' statement.
* ``immediate`` templates and macros will be deprecated as these will soon be * ``immediate`` templates and macros will be deprecated as these will soon be
completely unnecessary, instead the ``typed`` or ``untyped`` metatypes can completely unnecessary, instead the ``typed`` or ``untyped`` metatypes can
be used. be used.
* The standard library needs cleanups and should use the features we have for * More of the standard library should be moved to Nimble packages and what's
concurrency and parallelism. left should use the features we have for concurrency and parallelism.
@ -51,6 +57,7 @@ Changes affecting backwards compatibility
doIt: doIt:
echo str # Error: undeclared identifier: 'str' echo str # Error: undeclared identifier: 'str'
..
This used to inject the ``str`` parameter into the scope of the body. This used to inject the ``str`` parameter into the scope of the body.
Declare the ``doIt`` template as ``immediate, dirty`` to get the old Declare the ``doIt`` template as ``immediate, dirty`` to get the old
@ -61,9 +68,10 @@ Changes affecting backwards compatibility
- ``logging.level`` and ``logging.handlers`` are no longer exported. - ``logging.level`` and ``logging.handlers`` are no longer exported.
``addHandler``, ``getHandlers``, ``setLogFilter`` and ``getLogFilter`` ``addHandler``, ``getHandlers``, ``setLogFilter`` and ``getLogFilter``
should be used instead. should be used instead.
- ``nim idetools`` has been replaced by a separate tool `nimsuggest`_. - ``nim idetools`` has been replaced by a separate
- *arrow like* operators are not right associative anymore. tool `nimsuggest <0.11.0/nimsuggest.html>`_.
- *arrow like* operators are now required to end with either ``->``, ``~>`` or - *arrow like* operators are not right associative anymore and are required
to end with either ``->``, ``~>`` or
``=>``, not just ``>``. Examples of operators still considered arrow like: ``=>``, not just ``>``. Examples of operators still considered arrow like:
``->``, ``==>``, ``+=>``. On the other hand, the following operators are now ``->``, ``==>``, ``+=>``. On the other hand, the following operators are now
considered regular operators again: ``|>``, ``-+>``, etc. considered regular operators again: ``|>``, ``-+>``, etc.
@ -122,7 +130,8 @@ Language Additions
of ``nil``. of ``nil``.
- Automatic dereferencing is now done for the first argument of a routine - Automatic dereferencing is now done for the first argument of a routine
call if overloading resolution produces no match otherwise. This feature call if overloading resolution produces no match otherwise. This feature
has to be enabled with the `experimental`_ pragma. has to be enabled with
the `experimental <0.11.0/manual.html#pragmas-experimental-pragma>`_ pragma.
- Objects that do not use inheritance nor ``case`` can be put into ``const`` - Objects that do not use inheritance nor ``case`` can be put into ``const``
sections. This means that finally this is possible and produces rather sections. This means that finally this is possible and produces rather
nice code: nice code:
@ -170,8 +179,11 @@ Language Additions
- ``marshal.$$`` and ``marshal.to`` can be executed at compile-time. - ``marshal.$$`` and ``marshal.to`` can be executed at compile-time.
- Interoperability with C++ improved tremendously; C++'s templates and - Interoperability with C++ improved tremendously; C++'s templates and
operators can be wrapped directly. See operators can be wrapped directly. See
`this <nimc.html#additional-features-importcpp-pragma>`_ `this <0.11.0/nimc.html#additional-features-importcpp-pragma>`_
for more information. for more information.
- ``macros.getType`` can be used to query an AST's type at compile-time. This
enables more powerful macros, for instance *currying* can now be done with
a macro.
Library additions Library additions