Finishes news article for 0.15.0 release.

This commit is contained in:
Dominik Picheta 2016-09-30 23:23:06 +02:00
commit 871a3bedc4
3 changed files with 90 additions and 3 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 MiB

View file

@ -3,9 +3,88 @@ Version 0.15.0 released
.. container:: metadata .. container:: metadata
Posted by Dominik Picheta and Andreas Rumpf on 17/09/2016 Posted by Dominik Picheta and Andreas Rumpf on 30/09/2016
Some text here. We're happy to announce that the latest release of Nim, version 0.15.0, is now
available!
As always, you can grab the latest version from the
`downloads page <http://nim-lang.org/download.html>`_.
This release includes almost 180 bug fixes and improvements. To see a full list
of changes, take a look at the detailed changelog
`below <#changelog>`_.
Some of the most significant changes in this release include: improvements to
the documentation, addition of a new ``multisync`` macro, and a new
``HttpClient`` implementation.
Documentation
~~~~~~~~~~~~~
All pages in the documentation now contain a search box and a drop down to
select how procedures should be sorted. This allows you to search for
procedures, types, macros and more from any documentation page.
.. raw::html
<a href="../assets/news/images/0.15.0/doc_search.gif">
<img src="../assets/news/images/0.15.0/doc_search.gif" alt="Doc search" style="width:100%"/>
</a>
Sorting the procedures by type shows a more natural table of contents. This
should also help you to find procedures and other identifiers.
.. raw::html
<a href="../assets/news/images/0.15.0/doc_sort.gif">
<img src="../assets/news/images/0.15.0/doc_sort.gif" alt="Doc sort" style="width:100%"/>
</a>
Multisync macro
~~~~~~~~~~~~~~~
The ``multisync`` macro was implemented to enable you to define both
synchronous and asynchronous IO procedures without having to duplicate a
lot of code.
As an example, consider the ``recvTwice`` procedure below:
.. code-block:: nim
proc recvTwice(socket: Socket | AsyncSocket): Future[string] {.multisync.} =
result = ""
result.add(await socket.recv(25))
result.add(await socket.recv(20))
The ``multisync`` macro will transform this procedure into the following:
.. code-block:: nim
proc recvTwice(socket: Socket): string =
result = ""
result.add(socket.recv(25))
result.add(socket.recv(20))
proc recvTwice(socket: AsyncSocket): Future[string] {.async.} =
result = ""
result.add(await socket.recv(25))
result.add(await socket.recv(20))
Allowing you to use ``recvTwice`` with both synchronous and asynchronous sockets.
HttpClient
~~~~~~~~~~
Many of the ``httpclient`` module's procedures have been deprecated in
favour of a new implementation using the ``multisync`` macro. There are now
two types: ``HttpClient`` and ``AsyncHttpClient``. Both of these implement the
same procedures and functionality, the only difference is timeout support and
whether they are blocking or not.
See the `httpclient <http://nim-lang.org/docs/httpclient.html>`_ module
documentation for more information.
Changelog
~~~~~~~~~
Changes affecting backwards compatibility Changes affecting backwards compatibility
----------------------------------------- -----------------------------------------
@ -140,6 +219,14 @@ Library Additions
- The ``async`` macro will now complete ``FutureVar[T]`` parameters - The ``async`` macro will now complete ``FutureVar[T]`` parameters
automatically unless they have been completed already. automatically unless they have been completed already.
Tool Additions
--------------
- The documentation is now searchable and sortable by type.
- Pragmas are now hidden by default in the documentation to reduce noise.
- Edit links are now present in the documentation.
Compiler Additions Compiler Additions
------------------ ------------------
@ -174,7 +261,7 @@ Bugfixes
The list below has been generated based on the commits in Nim's git The list below has been generated based on the commits in Nim's git
repository. As such it lists only the issues which have been closed repository. As such it lists only the issues which have been closed
via a commit, for a full list see via a commit, for a full list see
`this link on Github <https://github.com/nim-lang/Nim/issues?utf8=%E2%9C%93&q=is%3Aissue+closed%3A%222016-06-22+..+2016-09-28%22+>`_. `this link on Github <https://github.com/nim-lang/Nim/issues?utf8=%E2%9C%93&q=is%3Aissue+closed%3A%222016-06-22+..+2016-09-30%22+>`_.
- Fixed "RFC: should startsWith and endsWith work with characters?" - Fixed "RFC: should startsWith and endsWith work with characters?"
(`#4252 <https://github.com/nim-lang/Nim/issues/4252>`_) (`#4252 <https://github.com/nim-lang/Nim/issues/4252>`_)