diff --git a/web/assets/news/images/0.16.0/nimble.png b/web/assets/news/images/0.16.0/nimble.png new file mode 100644 index 000000000..8faa3f04f Binary files /dev/null and b/web/assets/news/images/0.16.0/nimble.png differ diff --git a/web/news/e029_version_0_16_0.rst b/web/news/e029_version_0_16_0.rst index a1cc54417..d34ff1b26 100644 --- a/web/news/e029_version_0_16_0.rst +++ b/web/news/e029_version_0_16_0.rst @@ -3,7 +3,7 @@ Version 0.16.0 released .. container:: metadata - Posted by xyz on dd/mm/yyyy + Posted by The Nim Team on dd/mm/yyyy We're happy to announce that the latest release of Nim, version 0.16.0, is now available! @@ -11,12 +11,39 @@ available! As always, you can grab the latest version from the `downloads page `_. -This release includes almost xyz bug fixes and improvements. To see a full list +This release includes over 80 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: xyz +Some of the most significant changes in this release include: a major new +Nimble release, an improved import syntax, and the stabilisation of +name mangling rules enabling faster compile times. +The new Nimble release that is included with Nim 0.16.0 includes a variety of +new features and bug fixes. The most prominent of which is the improved output +system, as shown in the figure below. + +.. raw::html + + + Nimble 0.8.0 + + +For a full list of changes in Nimble, see its +`changelog `_. + +The new import syntax makes it easier to import multiple modules from the same +package or directory. For example: + +.. code-block:: nim + import compiler/ast, compiler/parser, compiler/lexer + import compiler / [ast, parser, lexer] + +The two are equivalent, but the new latter syntax is less redundant. + +Finally, the code responsible for name mangling in the generated C and C++ code +has been improved to reduce compile times. In particular, compile-time for +the common edit-compile-run cycles have been reduced. Changelog ~~~~~~~~~ @@ -103,4 +130,93 @@ 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 `_. +`this link on Github `_. + +- Fixed "staticRead and staticExec have different working directories" + (`#4871 `_) +- Fixed "CountTable doesn't support the '==' operator" + (`#4901 `_) +- Fixed "documentation for module sequtls apply proc" + (`#4386 `_) +- Fixed "Operator `==` for CountTable does not work." + (`#4946 `_) +- Fixed "sysFatal (IndexError) with parseUri and the / operator" + (`#4959 `_) +- Fixed "initialSize parameter does not work in OrderedTableRef" + (`#4940 `_) +- Fixed "error proc from macro library could have a node parameter" + (`#4915 `_) +- Fixed "Segfault when comparing OrderedTableRef with nil" + (`#4974 `_) +- Fixed "Bad codegen when comparing isNil results" + (`#4975 `_) +- Fixed "OrderedTable cannot delete entry with empty string or 0 key" + (`#5035 `_) +- Fixed "Deleting specific keys from ordered table leaves it in invalid state." + (`#5057 `_) +- Fixed "Paths are converted to lowercase on Windows" + (`#5076 `_) +- Fixed "toTime(getGMTime(...)) doesn't work correctly when local timezone is not UTC" + (`#5065 `_) +- Fixed "out of memory error from `test=` type proc call when parameter is a call to a table's `[]` proc" + (`#5079 `_) +- Fixed "Incorrect field order in object construction" + (`#5055 `_) +- Fixed "Incorrect codegen when importing nre with C++ backend (commit 8494338)" + (`#5081 `_) +- Fixed "Templates, {.emit.}, and backtick interpolation do not work together" + (`#4730 `_) +- Fixed "Regression: getType fails in certain cases" + (`#5129 `_) +- Fixed "CreateThread doesn't accept functions with generics" + (`#43 `_) +- Fixed "No instantiation information when template has error" + (`#4308 `_) +- Fixed "realloc leaks" + (`#4818 `_) +- Fixed "Regression: getType" + (`#5131 `_) +- Fixed "Code generation for generics broken by sighashes" + (`#5135 `_) +- Fixed "Regression: importc functions are not declared in generated C code" + (`#5136 `_) +- Fixed "Calling split("") on string hangs program" + (`#5119 `_) +- Fixed "Building dynamic library: undefined references (Linux)" + (`#4775 `_) +- Fixed "Bad codegen for distinct + importc - sighashes regression" + (`#5137 `_) +- Fixed "C++ codegen regression: memset called on a result variable of `importcpp` type" + (`#5140 `_) +- Fixed "C++ codegen regression: using channels leads to broken C++ code" + (`#5142 `_) +- Fixed "Ambiguous call when overloading var and non-var with generic type" + (`#4519 `_) +- Fixed "[Debian]: build.sh error: unknown processor: aarch64" + (`#2147 `_) +- Fixed "RFC: asyncdispatch.poll behaviour" + (`#5155 `_) +- Fixed "Can't access enum members through alias (possible sighashes regression)" + (`#5148 `_) +- Fixed "Type, declared in generic proc body, leads to incorrect codegen (sighashes regression)" + (`#5147 `_) +- Fixed "Compiler SIGSEGV when mixing method and proc" + (`#5161 `_) +- Fixed "Compile-time SIGSEGV when declaring .importcpp method with return value " + (`#3848 `_) +- Fixed "Variable declaration incorrectly parsed" + (`#2050 `_) +- Fixed "Invalid C code when naming a object member "linux"" + (`#5171 `_) +- Fixed "[Windows] MinGW within Nim install is missing libraries" + (`#2723 `_) +- Fixed "async: annoying warning for future.finished" + (`#4948 `_) +- Fixed "new import syntax doesn't work?" + (`#5185 `_) +- Fixed "Fixes #1994" + (`#4874 `_) +- Fixed "Can't tell return value of programs with staticExec" + (`#1994 `_) +- Fixed "startProcess() on Windows with poInteractive: Second call fails ("Alle Pipeinstanzen sind ausgelastet")" + (`#5179 `_)