diff options
author | Araq <rumpf_a@web.de> | 2016-01-18 16:24:20 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2016-01-18 16:24:20 +0100 |
commit | e9537f48f3b5b425079925424da7570ba183fbbb (patch) | |
tree | 204f54d1bf598c41461ac016cf98243219afbea8 | |
parent | 293e51bd91891ecedcda7ed376465bb301a14705 (diff) | |
download | Nim-e9537f48f3b5b425079925424da7570ba183fbbb.tar.gz |
updated news for upcoming release
-rw-r--r-- | web/news.txt | 303 | ||||
-rw-r--r-- | web/ticker.txt | 10 |
2 files changed, 157 insertions, 156 deletions
diff --git a/web/news.txt b/web/news.txt index fd92e1ad2..491b0254a 100644 --- a/web/news.txt +++ b/web/news.txt @@ -2,187 +2,188 @@ News ==== -.. - 2016-01-XX Version 0.13.0 released - ================================== - Once again we are proud to announce the latest release of the Nim compiler - and related tools. This release comes just 3 months after the last - release! +2016-01-18 Version 0.13.0 released +================================== - A new version of Nimble which depends on this release, has also been - released. See `this <http://forum.nim-lang.org/t/1912>`_ forum thread for - more information about the Nimble release. +Once again we are proud to announce the latest release of the Nim compiler +and related tools. This release comes just 3 months after the last +release! - This release of Nim includes over 116 bug fixes, many of which are related - to closures. The lambda lifting algorithm in the compiler has been completely - rewritten, and some changes have been made to the semantics of closures in - Nim as a result. These changes may affect backwards compatibility and are all - described in the section below. +A new version of Nimble which depends on this release, has also been +released. See `this <http://forum.nim-lang.org/t/1912>`_ forum thread for +more information about the Nimble release. - With this release, we are one step closer to Nim version 1.0. - The 1.0 release will be a big milestone for Nim, because after that version - is released there will be no more breaking changes made to the language - or the standard library. +This release of Nim includes over 116 bug fixes, many of which are related +to closures. The lambda lifting algorithm in the compiler has been completely +rewritten, and some changes have been made to the semantics of closures in +Nim as a result. These changes may affect backwards compatibility and are all +described in the section below. - That being said, the next release will likely be Nim 0.14. It will focus on - improvements to the GC and concurrency. We will in particular be looking at - ways to add multi-core support to async await. Standard library improvements - are also on our roadmap but may not make it for Nim 0.14. +With this release, we are one step closer to Nim version 1.0. +The 1.0 release will be a big milestone for Nim, because after that version +is released there will be no more breaking changes made to the language +or the standard library. - As always you can download the latest version of Nim from the - `download <download.html>`_ page. +That being said, the next release will likely be Nim 0.14. It will focus on +improvements to the GC and concurrency. We will in particular be looking at +ways to add multi-core support to async await. Standard library improvements +are also on our roadmap but may not make it for Nim 0.14. - Happy coding! +As always you can download the latest version of Nim from the +`download <download.html>`_ page. - Changes affecting backwards compatibility - ----------------------------------------- +Happy coding! - - ``macros.newLit`` for ``bool`` now produces false/true symbols which - actually work with the bool datatype. - - When compiling to JS: ``Node``, ``NodeType`` and ``Document`` are no longer - defined. Use the types defined in ``dom.nim`` instead. - - The check ``x is iterator`` (used for instance in concepts) was always a - weird special case (you could not use ``x is proc``) and was removed from - the language. - - Top level routines cannot have the calling convention ``closure`` - anymore. - - The ``redis`` module has been moved out of the standard library. It can - now be installed via Nimble and is located here: - https://github.com/nim-lang/redis - - ``math.RunningStat`` and its associated procs have been moved from - the ``math`` module to a new ``stats`` module. +Changes affecting backwards compatibility +----------------------------------------- +- ``macros.newLit`` for ``bool`` now produces false/true symbols which + actually work with the bool datatype. +- When compiling to JS: ``Node``, ``NodeType`` and ``Document`` are no longer + defined. Use the types defined in ``dom.nim`` instead. +- The check ``x is iterator`` (used for instance in concepts) was always a + weird special case (you could not use ``x is proc``) and was removed from + the language. +- Top level routines cannot have the calling convention ``closure`` + anymore. +- The ``redis`` module has been moved out of the standard library. It can + now be installed via Nimble and is located here: + https://github.com/nim-lang/redis +- ``math.RunningStat`` and its associated procs have been moved from + the ``math`` module to a new ``stats`` module. - Syntax changes - ~~~~~~~~~~~~~~ - The parser now considers leading whitespace in front of operators - to determine if an operator is used in prefix or infix position. - This means that finally ``echo $foo`` is parsed as people expect, - which is as ``echo($foo)``. It used to be parsed as ``(echo) $ (foo)``. +Syntax changes +~~~~~~~~~~~~~~ - ``echo $ foo`` continues to be parsed as ``(echo) $ (foo)``. +The parser now considers leading whitespace in front of operators +to determine if an operator is used in prefix or infix position. +This means that finally ``echo $foo`` is parsed as people expect, +which is as ``echo($foo)``. It used to be parsed as ``(echo) $ (foo)``. - This also means that ``-1`` is always parsed as prefix operator so - code like ``0..kArraySize div 2 -1`` needs to be changed to - ``0..kArraySize div 2 - 1``. +``echo $ foo`` continues to be parsed as ``(echo) $ (foo)``. - This release also adds multi-line comments to Nim. The syntax for them is: - ``#[ comment here ]#``. For more details read the section of - the `manual <manual#multiline-comments>`_. +This also means that ``-1`` is always parsed as prefix operator so +code like ``0..kArraySize div 2 -1`` needs to be changed to +``0..kArraySize div 2 - 1``. - Iterator changes - ~~~~~~~~~~~~~~~~ +This release also adds multi-line comments to Nim. The syntax for them is: +``#[ comment here ]#``. For more details read the section of +the `manual <manual#multiline-comments>`_. - Implicit return type inference for iterators has been removed from the language. The following used to work: +Iterator changes +~~~~~~~~~~~~~~~~ - .. code-block:: nim - iterator it = - yield 7 +Implicit return type inference for iterators has been removed from the language. The following used to work: - This was a strange special case and has been removed. Now you need to write it like so which is consistent with procs: +.. code-block:: nim + iterator it = + yield 7 - .. code-block:: nim - iterator it: auto = - yield 7 +This was a strange special case and has been removed. Now you need to write it like so which is consistent with procs: +.. code-block:: nim + iterator it: auto = + yield 7 - Closure changes - ~~~~~~~~~~~~~~~ - The semantics of closures changed: Capturing variables that are in loops do not produce a new environment. Nim closures behave like JavaScript closures now. +Closure changes +~~~~~~~~~~~~~~~ - The following used to work as the environment creation used to be attached to the loop body: +The semantics of closures changed: Capturing variables that are in loops do not produce a new environment. Nim closures behave like JavaScript closures now. - .. code-block:: nim +The following used to work as the environment creation used to be attached to the loop body: - proc outer = - var s: seq[proc(): int {.closure.}] = @[] - for i in 0 ..< 30: +.. code-block:: nim + + proc outer = + var s: seq[proc(): int {.closure.}] = @[] + for i in 0 ..< 30: + let ii = i + s.add(proc(): string = return ii*ii)) + +This behaviour has changed in 0.13.0 and now needs to be written as: + +.. code-block:: nim + + proc outer = + var s: seq[proc(): int {.closure.}] = @[] + for i in 0 ..< 30: + (proc () = let ii = i - s.add(proc(): string = return ii*ii)) + s.add(proc(): int = return ii*ii))() - This behaviour has changed in 0.13.0 and now needs to be written as: +The reason is that environment creations are now only performed once +per proc call. This change is subtle and unfortunate, but: - .. code-block:: nim +1. Affects almost no code out there. +2. Is easier to implement and we are at a point in Nim's development process where simple+stable wins over perfect-in-theory+unstable-in-practice. +3. Implies programmers are more in control of where memory is allocated which is benefitical for a systems programming language. + +Bugfixes +-------- + +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 +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%222015-10-27+..+2016-01-19%22+>`_. + +- Fixed "Generic arguments cannot be used in templates (raising undeclared identifier)" + (`#3498 <https://github.com/nim-lang/Nim/issues/3498>`_) +- Fixed "multimethods: Error: internal error: cgmeth.genConv" + (`#3550 <https://github.com/nim-lang/Nim/issues/3550>`_) +- Fixed "multimethods: Error: internal error: cgmeth.genConv" + (`#3550 <https://github.com/nim-lang/Nim/issues/3550>`_) +- Fixed "nimscript - SIGSEGV in except block" + (`#3546 <https://github.com/nim-lang/Nim/issues/3546>`_) +- Fixed "Bool literals in macros do not work." + (`#3541 <https://github.com/nim-lang/Nim/issues/3541>`_) +- Fixed "Docs: nativesocket.html - 404" + (`#3582 <https://github.com/nim-lang/Nim/issues/3582>`_) +- Fixed ""not nil" return types never trigger an error or warning" + (`#2285 <https://github.com/nim-lang/Nim/issues/2285>`_) +- Fixed "No warning or error is raised even if not nil is specified " + (`#3222 <https://github.com/nim-lang/Nim/issues/3222>`_) +- Fixed "Incorrect fsmonitor add() filter logic" + (`#3611 <https://github.com/nim-lang/Nim/issues/3611>`_) +- Fixed ""nimble install nimsuggest" failed" + (`#3622 <https://github.com/nim-lang/Nim/issues/3622>`_) +- Fixed "compile time `excl ` cause SIGSEGV" + (`#3639 <https://github.com/nim-lang/Nim/issues/3639>`_) +- Fixed "Unable to echo unsigned ints at compile-time" + (`#2514 <https://github.com/nim-lang/Nim/issues/2514>`_) +- Fixed "Nested closure iterator produces internal error" + (`#1725 <https://github.com/nim-lang/Nim/issues/1725>`_) +- Fixed "C Error on walkDirRec closure" + (`#3636 <https://github.com/nim-lang/Nim/issues/3636>`_) +- Fixed "Error in generated c code" + (`#3201 <https://github.com/nim-lang/Nim/issues/3201>`_) +- Fixed "C Compile-time error with generic proc type." + (`#2659 <https://github.com/nim-lang/Nim/issues/2659>`_) +- Fixed "ICE dereferencing array pointer" + (`#2240 <https://github.com/nim-lang/Nim/issues/2240>`_) +- Fixed "Lambda lifting crash" + (`#2007 <https://github.com/nim-lang/Nim/issues/2007>`_) +- Fixed "Can't reference outer variables from a closure in an iterator" + (`#2604 <https://github.com/nim-lang/Nim/issues/2604>`_) +- Fixed "M&S collector breaks with nested for loops." + (`#603 <https://github.com/nim-lang/Nim/issues/603>`_) +- Fixed "Regression: bad C codegen" + (`#3723 <https://github.com/nim-lang/Nim/issues/3723>`_) +- Fixed "JS backend - handle bool type in case statement" + (`#3722 <https://github.com/nim-lang/Nim/issues/3722>`_) +- Fixed "linenoise compilation with cpp" + (`#3720 <https://github.com/nim-lang/Nim/issues/3720>`_) +- Fixed "(???,???) duplicate case label" + (`#3665 <https://github.com/nim-lang/Nim/issues/3665>`_) +- Fixed "linenoise compilation with cpp" + (`#3720 <https://github.com/nim-lang/Nim/issues/3720>`_) +- Fixed "Update list of backward incompatibilities for Nim 0.12.0 in the main site" + (`#3689 <https://github.com/nim-lang/Nim/issues/3689>`_) +- Fixed "Can't compile nimble with latest devel - codegen bug" + (`#3730 <https://github.com/nim-lang/Nim/issues/3730>`_) - proc outer = - var s: seq[proc(): int {.closure.}] = @[] - for i in 0 ..< 30: - (proc () = - let ii = i - s.add(proc(): int = return ii*ii))() - - The reason is that environment creations are now only performed once - per proc call. This change is subtle and unfortunate, but: - - 1. Affects almost no code out there. - 2. Is easier to implement and we are at a point in Nim's development process where simple+stable wins over perfect-in-theory+unstable-in-practice. - 3. Implies programmers are more in control of where memory is allocated which is benefitical for a systems programming language. - - Bugfixes - -------- - - 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 - 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%222015-10-27+..+2016-01-19%22+>`_. - - - Fixed "Generic arguments cannot be used in templates (raising undeclared identifier)" - (`#3498 <https://github.com/nim-lang/Nim/issues/3498>`_) - - Fixed "multimethods: Error: internal error: cgmeth.genConv" - (`#3550 <https://github.com/nim-lang/Nim/issues/3550>`_) - - Fixed "multimethods: Error: internal error: cgmeth.genConv" - (`#3550 <https://github.com/nim-lang/Nim/issues/3550>`_) - - Fixed "nimscript - SIGSEGV in except block" - (`#3546 <https://github.com/nim-lang/Nim/issues/3546>`_) - - Fixed "Bool literals in macros do not work." - (`#3541 <https://github.com/nim-lang/Nim/issues/3541>`_) - - Fixed "Docs: nativesocket.html - 404" - (`#3582 <https://github.com/nim-lang/Nim/issues/3582>`_) - - Fixed ""not nil" return types never trigger an error or warning" - (`#2285 <https://github.com/nim-lang/Nim/issues/2285>`_) - - Fixed "No warning or error is raised even if not nil is specified " - (`#3222 <https://github.com/nim-lang/Nim/issues/3222>`_) - - Fixed "Incorrect fsmonitor add() filter logic" - (`#3611 <https://github.com/nim-lang/Nim/issues/3611>`_) - - Fixed ""nimble install nimsuggest" failed" - (`#3622 <https://github.com/nim-lang/Nim/issues/3622>`_) - - Fixed "compile time `excl ` cause SIGSEGV" - (`#3639 <https://github.com/nim-lang/Nim/issues/3639>`_) - - Fixed "Unable to echo unsigned ints at compile-time" - (`#2514 <https://github.com/nim-lang/Nim/issues/2514>`_) - - Fixed "Nested closure iterator produces internal error" - (`#1725 <https://github.com/nim-lang/Nim/issues/1725>`_) - - Fixed "C Error on walkDirRec closure" - (`#3636 <https://github.com/nim-lang/Nim/issues/3636>`_) - - Fixed "Error in generated c code" - (`#3201 <https://github.com/nim-lang/Nim/issues/3201>`_) - - Fixed "C Compile-time error with generic proc type." - (`#2659 <https://github.com/nim-lang/Nim/issues/2659>`_) - - Fixed "ICE dereferencing array pointer" - (`#2240 <https://github.com/nim-lang/Nim/issues/2240>`_) - - Fixed "Lambda lifting crash" - (`#2007 <https://github.com/nim-lang/Nim/issues/2007>`_) - - Fixed "Can't reference outer variables from a closure in an iterator" - (`#2604 <https://github.com/nim-lang/Nim/issues/2604>`_) - - Fixed "M&S collector breaks with nested for loops." - (`#603 <https://github.com/nim-lang/Nim/issues/603>`_) - - Fixed "Regression: bad C codegen" - (`#3723 <https://github.com/nim-lang/Nim/issues/3723>`_) - - Fixed "JS backend - handle bool type in case statement" - (`#3722 <https://github.com/nim-lang/Nim/issues/3722>`_) - - Fixed "linenoise compilation with cpp" - (`#3720 <https://github.com/nim-lang/Nim/issues/3720>`_) - - Fixed "(???,???) duplicate case label" - (`#3665 <https://github.com/nim-lang/Nim/issues/3665>`_) - - Fixed "linenoise compilation with cpp" - (`#3720 <https://github.com/nim-lang/Nim/issues/3720>`_) - - Fixed "Update list of backward incompatibilities for Nim 0.12.0 in the main site" - (`#3689 <https://github.com/nim-lang/Nim/issues/3689>`_) - - Fixed "Can't compile nimble with latest devel - codegen bug" - (`#3730 <https://github.com/nim-lang/Nim/issues/3730>`_) 2015-10-27 Version 0.12.0 released ================================== diff --git a/web/ticker.txt b/web/ticker.txt index 106f8f008..a7ad73bc4 100644 --- a/web/ticker.txt +++ b/web/ticker.txt @@ -1,3 +1,8 @@ +<a class="news" href="news.html#Z2016-01-18-version-0-13-0-released"> + <h4>Jan 18, 2016</h4> + <p>Nim version 0.13.0 has been released!</p> +</a> + <a class="news" href="news.html#Z2015-10-27-version-0-12-0-released"> <h4>October 27, 2015</h4> <p>Nim version 0.12.0 has been released!</p> @@ -13,9 +18,4 @@ <p>Nim version 0.11.2 has been released!</p> </a> -<a class="news" href="news.html#Z2014-12-29-version-0-10-2-released"> - <h4>Dec 29, 2014</h4> - <p>Nim version 0.10.2 has been released!</p> -</a> - <a href="news.html" class="blue">See All News...</a> |