476 lines
24 KiB
ReStructuredText
476 lines
24 KiB
ReStructuredText
Version 0.14.0 released
|
|
=======================
|
|
|
|
.. container:: metadata
|
|
|
|
Posted by Dominik Picheta on 07/06/2016
|
|
|
|
It's been a while since the last release, but we've been very busy in the
|
|
meantime. In
|
|
addition to working on Nim we have started a
|
|
`BountySource campaign <https://salt.bountysource.com/teams/nim>`_ and
|
|
announced the pre-release of a new Nim book titled
|
|
`Nim in Action <https://manning.com/books/nim-in-action?a_aid=niminaction&a_bid=78a27e81>`_.
|
|
Our BountySource campaign has already been very successful, helping us raise
|
|
enough funds to surpass 4 of our monthly goals. The companies and individuals
|
|
that made this possible are listed on our brand new
|
|
`sponsors page <http://nim-lang.org/sponsors.html>`_.
|
|
|
|
This release includes over 260 bug fixes. As mentioned in the previous release
|
|
announcement, one of the focuses of this release was going to be improvements
|
|
to the GC. Indeed, the most prominent fixes are related to the GC not collecting
|
|
cycles properly. This was a major problem that was triggered typically when
|
|
applications using asynchronous I/O were left running for long periods of time.
|
|
|
|
There have also been many fixes to the way that the compiler sources are
|
|
installed. Some applications such as Nimble depend on these sources and they
|
|
are now included in the release tarballs. This should fix many of the problems
|
|
that users experienced trying to compile the Nimble package manager.
|
|
|
|
Finally, you will find multiple changes in the standard library. Some of which
|
|
unfortunately affects backwards compatibility. This includes the ``random``
|
|
procedures being moved to a new ``random`` module, HTTP headers being stored
|
|
in a new ``HttpHeaders`` object and the ``round`` procedure in the ``math`` module
|
|
being changed to return a ``float`` instead of an ``int``. You can find a full
|
|
list of such changes below.
|
|
|
|
Together with the new release of Nim, we are also releasing a new version of
|
|
Nimble. The release notes for it are available on
|
|
`GitHub <https://github.com/nim-lang/nimble/blob/master/changelog.markdown#074---06062016>`_.
|
|
|
|
As always you can download the latest version of Nim from the
|
|
`download <http://nim-lang.org/download.html>`_ page.
|
|
|
|
We hope that you will like this new release. Let us know if you run into
|
|
any trouble, have any questions or want to give some feedback. You can get
|
|
in touch with us on the `Forum <http://forum.nim-lang.org/>`_,
|
|
`IRC <http://webchat.freenode.net/?channels=nim>`_,
|
|
`Twitter <http://twitter.com/nim_lang>`_,
|
|
or via email contact@nim-lang.org.
|
|
|
|
Happy coding!
|
|
|
|
Changes affecting backwards compatibility
|
|
-----------------------------------------
|
|
|
|
- ``--out`` and ``--nimcache`` command line arguments are now relative to
|
|
current directory. Previously they were relative to project directory.
|
|
- The json module now stores the name/value pairs in objects internally as a
|
|
hash table of type ``fields*: Table[string, JsonNode]`` instead of a
|
|
sequence. This means that order is no longer preserved. When using the
|
|
``table.mpairs`` iterator only the returned values can be modified, no
|
|
longer the keys.
|
|
- The deprecated Nim shebang notation ``#!`` was removed from the language. Use ``#?`` instead.
|
|
- Typeless parameters have been removed from the language since it would
|
|
clash with ``using``.
|
|
- Procedures in ``mersenne.nim`` (Mersenne Twister implementation) no longer
|
|
accept and produce ``int`` values which have platform-dependent size -
|
|
they use ``uint32`` instead.
|
|
- The ``strutils.unindent`` procedure has been rewritten. Its parameters now
|
|
match the parameters of ``strutils.indent``. See issue `#4037 <https://github.com/nim-lang/Nim/issues/4037>`_
|
|
for more details.
|
|
- The ``matchers`` module has been deprecated. See issue `#2446 <https://github.com/nim-lang/Nim/issues/2446>`_
|
|
for more details.
|
|
- The ``json.[]`` no longer returns ``nil`` when a key is not found. Instead it
|
|
raises a ``KeyError`` exception. You can compile with the ``-d:nimJsonGet``
|
|
flag to get a list of usages of ``[]``, as well as to restore the operator's
|
|
previous behaviour.
|
|
- When using ``useMalloc``, an additional header containing the size of the
|
|
allocation will be allocated, to support zeroing memory on realloc as expected
|
|
by the language. With this change, ``alloc`` and ``dealloc`` are no longer
|
|
aliases for ``malloc`` and ``free`` - use ``c_malloc`` and ``c_free`` if
|
|
you need that.
|
|
- The ``json.%`` operator is now overloaded for ``object``, ``ref object`` and
|
|
``openarray[T]``.
|
|
- The procs related to ``random`` number generation in ``math.nim`` have
|
|
been moved to its own ``random`` module and been reimplemented in pure
|
|
Nim.
|
|
- The path handling changed. The project directory is not added to the
|
|
search path automatically anymore. Add this line to your project's
|
|
config to get back the old behaviour: ``--path:"$projectdir"``. (The compiler
|
|
replaces ``$projectdir`` with your project's absolute directory when compiling,
|
|
so you don't need to replace ``$projectdir`` by your project's actual
|
|
directory!). See issue `#546 <https://github.com/nim-lang/Nim/issues/546>`_
|
|
and `this forum thread <http://forum.nim-lang.org/t/2277>`_ for more
|
|
information.
|
|
- The ``round`` function in ``math.nim`` now returns a float and has been
|
|
corrected such that the C implementation always rounds up from .5 rather
|
|
than changing the operation for even and odd numbers.
|
|
- The ``round`` function now accepts a ``places`` argument to round to a
|
|
given number of places (e.g. round 4.35 to 4.4 if ``places`` is 1).
|
|
- In ``strutils.nim``, ``formatSize`` now returns a number representing the
|
|
size in conventional decimal format (e.g. 2.234GB meaning 2.234 GB rather
|
|
than meaning 2.285 GB as in the previous implementation). By default it
|
|
also uses IEC prefixes (KiB, MiB) etc and optionally uses colloquial names
|
|
(kB, MB etc) and the (SI-preferred) space.
|
|
- The ``==`` operator for ``cstring`` now implements a value comparison
|
|
for the C backend (using ``strcmp``), not reference comparisons anymore.
|
|
Convert the cstrings to pointers if you really want reference equality
|
|
for speed.
|
|
- HTTP headers are now stored in a ``HttpHeaders`` object instead of a
|
|
``StringTableRef``. This object allows multiple values to be associated with
|
|
a single key. A new ``httpcore`` module implements it and it is used by
|
|
both ``asynchttpserver`` and ``httpclient``.
|
|
|
|
The ``using`` statement
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The ``using`` statement now has a different meaning.
|
|
|
|
In version 0.13.0, it
|
|
was used to provide syntactic convenience for procedures that heavily use
|
|
a single contextual parameter. For example:
|
|
|
|
.. code-block:: nim
|
|
var socket = newSocket()
|
|
using socket
|
|
|
|
connect("google.com", Port(80))
|
|
send("GET / HTTP/1.1\c\l")
|
|
|
|
|
|
The ``connect`` and ``send`` calls are both transformed so that they pass
|
|
``socket`` as the first argument:
|
|
|
|
.. code-block:: nim
|
|
var socket = newSocket()
|
|
|
|
socket.connect("google.com", Port(80))
|
|
socket.send("GET / HTTP/1.1\c\l")
|
|
|
|
Take a look at the old version of the
|
|
`manual <http://nim-lang.org/0.13.0/manual.html#statements-and-expressions-using-statement>`_
|
|
to learn more about the old behaviour.
|
|
|
|
In 0.14.0,
|
|
the ``using`` statement
|
|
instead provides a syntactic convenience for procedure definitions where the
|
|
same parameter names and types are used repeatedly. For example, instead of
|
|
writing:
|
|
|
|
.. code-block:: nim
|
|
proc foo(c: Context; n: Node) = ...
|
|
proc bar(c: Context; n: Node, counter: int) = ...
|
|
proc baz(c: Context; n: Node) = ...
|
|
|
|
|
|
You can simply write:
|
|
|
|
.. code-block:: nim
|
|
{.experimental.}
|
|
using
|
|
c: Context
|
|
n: Node
|
|
counter: int
|
|
|
|
proc foo(c, n) = ...
|
|
proc bar(c, n, counter) = ...
|
|
proc baz(c, n) = ...
|
|
|
|
Again, the
|
|
`manual <http://nim-lang.org/docs/manual.html#statements-and-expressions-using-statement>`_
|
|
has more details.
|
|
|
|
You can still achieve a similar effect to what the old ``using`` statement
|
|
tried to achieve by using the new experimental ``this`` pragma, documented
|
|
`here <http://nim-lang.org/docs/manual.html#overloading-resolution-automatic-self-insertions>`_.
|
|
|
|
Generic type classes
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Generic type classes are now handled properly in the compiler, but this
|
|
means code like the following does not compile any longer:
|
|
|
|
.. code-block:: nim
|
|
type
|
|
Vec3[T] = distinct array[3, T]
|
|
|
|
proc vec3*[T](a, b, c: T): Vec3[T] = Vec3([a, b, c])
|
|
|
|
While every ``Vec3[T]`` is part of the ``Vec3`` type class, the reverse
|
|
is not true, not every ``Vec3`` is a ``Vec3[T]``. Otherwise there would
|
|
be a subtype relation between ``Vec3[int]`` and ``Vec3[float]`` and there
|
|
is none for Nim. The fix is to write this instead:
|
|
|
|
.. code-block:: nim
|
|
type
|
|
Vec3[T] = distinct array[3, T]
|
|
|
|
proc vec3*[T](a, b, c: T): Vec3[T] = Vec3[T]([a, b, c])
|
|
|
|
Note that in general we don't advise to use ``distinct array``,
|
|
use ``object`` instead.
|
|
|
|
|
|
Library Additions
|
|
-----------------
|
|
|
|
- The rlocks module has been added providing a reentrant lock synchronization
|
|
primitive.
|
|
- A generic "sink operator" written as ``&=`` has been added to the
|
|
``system`` and the ``net`` modules. This operator is similar to the C++
|
|
``<<`` operator which writes data to a stream.
|
|
- Added ``strscans`` module that implements a ``scanf`` for easy input extraction.
|
|
- Added a version of ``parseutils.parseUntil`` that can deal with a string
|
|
``until`` token. The other versions are for ``char`` and ``set[char]``.
|
|
- Added ``splitDecimal`` to ``math.nim`` to split a floating point value
|
|
into an integer part and a floating part (in the range -1<x<1).
|
|
- Added ``trimZeros`` to ``strutils.nim`` to trim trailing zeros in a
|
|
floating point number.
|
|
- Added ``formatEng`` to ``strutils.nim`` to format numbers using engineering
|
|
notation.
|
|
|
|
|
|
Compiler Additions
|
|
------------------
|
|
|
|
- Added a new ``--noCppExceptions`` switch that allows to use default exception
|
|
handling (no ``throw`` or ``try``/``catch`` generated) when compiling to C++
|
|
code.
|
|
|
|
Language Additions
|
|
------------------
|
|
|
|
- Nim now supports a ``.this`` pragma for more notational convenience.
|
|
See `automatic-self-insertions <../docs/manual.html#overloading-resolution-automatic-self-insertions>`_ for more information.
|
|
- Nim now supports a different ``using`` statement for more convenience.
|
|
Consult `using-statement <../docs/manual.html#statements-and-expressions-using-statement>`_ for more information.
|
|
- ``include`` statements are not restricted to top level statements anymore.
|
|
|
|
..
|
|
- Nim now supports ``partial`` object declarations to mitigate the problems
|
|
that arise when types are mutually dependent and yet should be kept in
|
|
different modules.
|
|
|
|
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%222016-01-19+..+2016-06-06%22+>`_.
|
|
|
|
|
|
- Fixed "Calling generic templates with explicit generic arguments crashes compiler"
|
|
(`#3496 <https://github.com/nim-lang/Nim/issues/3496>`_)
|
|
- Fixed "JS backend - strange utf-8 handling"
|
|
(`#3714 <https://github.com/nim-lang/Nim/issues/3714>`_)
|
|
- Fixed "execvpe is glibc specific"
|
|
(`#3759 <https://github.com/nim-lang/Nim/issues/3759>`_)
|
|
- Fixed "GC stack overflow with in data structures with circular references."
|
|
(`#1895 <https://github.com/nim-lang/Nim/issues/1895>`_)
|
|
- Fixed "Internal compiler error in genTraverseProc"
|
|
(`#3794 <https://github.com/nim-lang/Nim/issues/3794>`_)
|
|
- Fixed "unsafeAddr fails in generic context"
|
|
(`#3736 <https://github.com/nim-lang/Nim/issues/3736>`_)
|
|
- Fixed "Generic converters produce internal errors"
|
|
(`#3799 <https://github.com/nim-lang/Nim/issues/3799>`_)
|
|
- Fixed "Cannot have two anonymous iterators in one proc"
|
|
(`#3788 <https://github.com/nim-lang/Nim/issues/3788>`_)
|
|
- Fixed "pure/net.nim fails to compile with --taintMode:on on HEAD"
|
|
(`#3789 <https://github.com/nim-lang/Nim/issues/3789>`_)
|
|
- Fixed "Using break inside iterator may produce memory/resource leak"
|
|
(`#3802 <https://github.com/nim-lang/Nim/issues/3802>`_)
|
|
|
|
- Fixed "--out and --nimcache wrong paths"
|
|
(`#3871 <https://github.com/nim-lang/Nim/issues/3871>`_)
|
|
- Fixed "Release 0.13.0: documentation build failure"
|
|
(`#3823 <https://github.com/nim-lang/Nim/issues/3823>`_)
|
|
- Fixed "https post request"
|
|
(`#3895 <https://github.com/nim-lang/Nim/issues/3895>`_)
|
|
- Fixed "writeFile regression in nimscript"
|
|
(`#3901 <https://github.com/nim-lang/Nim/issues/3901>`_)
|
|
- Fixed "Cannot convert variables to int16 at compile time"
|
|
(`#3916 <https://github.com/nim-lang/Nim/issues/3916>`_)
|
|
- Fixed "Error in concepts when using functions on typedesc"
|
|
(`#3686 <https://github.com/nim-lang/Nim/issues/3686>`_)
|
|
- Fixed "Multiple generic table types with different type signatures lead to compilation errors."
|
|
(`#3669 <https://github.com/nim-lang/Nim/issues/3669>`_)
|
|
- Fixed "Explicit arguments with overloaded procedure?"
|
|
(`#3836 <https://github.com/nim-lang/Nim/issues/3836>`_)
|
|
- Fixed "doc2 generates strange output for proc generated by template"
|
|
(`#3868 <https://github.com/nim-lang/Nim/issues/3868>`_)
|
|
- Fixed "Passing const value as static[] argument to immediate macro leads to infinite memory consumption by compiler"
|
|
(`#3872 <https://github.com/nim-lang/Nim/issues/3872>`_)
|
|
- Fixed "`..<` is not happy with `BiggestInt` from `intVal`"
|
|
(`#3767 <https://github.com/nim-lang/Nim/issues/3767>`_)
|
|
- Fixed "stdtmpl filter does not support anything apart from '#' metachar"
|
|
(`#3924 <https://github.com/nim-lang/Nim/issues/3924>`_)
|
|
- Fixed "lib/pure/net: Can't bind to ports >= 32768"
|
|
(`#3484 <https://github.com/nim-lang/Nim/issues/3484>`_)
|
|
- Fixed "int and float assignment compatibility badly broken for generics"
|
|
(`#3998 <https://github.com/nim-lang/Nim/issues/3998>`_)
|
|
- Fixed "Adding echo statement causes "type mismatch" error"
|
|
(`#3975 <https://github.com/nim-lang/Nim/issues/3975>`_)
|
|
- Fixed "Dynlib error messages should be written to stderr, not stdout"
|
|
(`#3987 <https://github.com/nim-lang/Nim/issues/3987>`_)
|
|
- Fixed "Tests regressions while using the devel branch"
|
|
(`#4005 <https://github.com/nim-lang/Nim/issues/4005>`_)
|
|
|
|
- Fixed "Lambda lifting bug: wrong c code generation"
|
|
(`#3995 <https://github.com/nim-lang/Nim/issues/3995>`_)
|
|
- Fixed "VM crashes in asgnComplex"
|
|
(`#3973 <https://github.com/nim-lang/Nim/issues/3973>`_)
|
|
- Fixed "Unknown opcode opcNGetType"
|
|
(`#1152 <https://github.com/nim-lang/Nim/issues/1152>`_)
|
|
- Fixed "`&` operator mutates first operand when used in compileTime proc while assigning result to seq"
|
|
(`#3804 <https://github.com/nim-lang/Nim/issues/3804>`_)
|
|
- Fixed "''nil' statement is deprecated' in macro"
|
|
(`#3561 <https://github.com/nim-lang/Nim/issues/3561>`_)
|
|
- Fixed "vm crash when accessing seq with mitems iterator"
|
|
(`#3731 <https://github.com/nim-lang/Nim/issues/3731>`_)
|
|
- Fixed "`mitems` or `mpairs` does not work for `seq[NimNode]` or `array[T,NimNode]` in a macro"
|
|
(`#3859 <https://github.com/nim-lang/Nim/issues/3859>`_)
|
|
- Fixed "passing "proc `,`()" to nim check causes an infinite loop"
|
|
(`#4036 <https://github.com/nim-lang/Nim/issues/4036>`_)
|
|
- Fixed "--dynlibOverride does not work with {.push dynlib: name.}"
|
|
(`#3646 <https://github.com/nim-lang/Nim/issues/3646>`_)
|
|
- Fixed "system.readChars fails on big len"
|
|
(`#3752 <https://github.com/nim-lang/Nim/issues/3752>`_)
|
|
- Fixed "strutils.unindent"
|
|
(`#4037 <https://github.com/nim-lang/Nim/issues/4037>`_)
|
|
- Fixed "Compiler's infinite recursion in generic resolution"
|
|
(`#2006 <https://github.com/nim-lang/Nim/issues/2006>`_)
|
|
- Fixed "Linux: readLineFromStdin calls quit(0) upon EOF"
|
|
(`#3159 <https://github.com/nim-lang/Nim/issues/3159>`_)
|
|
- Fixed "Forum sign up not possible"
|
|
(`#2446 <https://github.com/nim-lang/Nim/issues/2446>`_)
|
|
- Fixed "Json module - SIGSEGV if key not exists"
|
|
(`#3107 <https://github.com/nim-lang/Nim/issues/3107>`_)
|
|
- Fixed "About asyncdispatch.await and exception"
|
|
(`#3964 <https://github.com/nim-lang/Nim/issues/3964>`_)
|
|
- Fixed "Need testcase for JS backend to ensure closure callbacks don't break"
|
|
(`#3132 <https://github.com/nim-lang/Nim/issues/3132>`_)
|
|
- Fixed "Unexpected behaviour of C++ templates in conjunction with N_NIMCALL"
|
|
(`#4093 <https://github.com/nim-lang/Nim/issues/4093>`_)
|
|
- Fixed "SIGSEGV at compile time when using a compileTime variable as counter"
|
|
(`#4097 <https://github.com/nim-lang/Nim/issues/4097>`_)
|
|
- Fixed "Compiler crash issue on 32-bit machines only"
|
|
(`#4089 <https://github.com/nim-lang/Nim/issues/4089>`_)
|
|
- Fixed "type mismatch: got (<type>) but expected 'outType' in mapIt"
|
|
(`#4124 <https://github.com/nim-lang/Nim/issues/4124>`_)
|
|
- Fixed "Generic type constraints broken?"
|
|
(`#4084 <https://github.com/nim-lang/Nim/issues/4084>`_)
|
|
- Fixed "Invalid C code generated"
|
|
(`#3544 <https://github.com/nim-lang/Nim/issues/3544>`_)
|
|
- Fixed "An exit variable in proc shadows exit function called by quit()"
|
|
(`#3471 <https://github.com/nim-lang/Nim/issues/3471>`_)
|
|
- Fixed "ubuntu 16.04 build error"
|
|
(`#4144 <https://github.com/nim-lang/Nim/issues/4144>`_)
|
|
- Fixed "Ambiguous identifier error should list all possible qualifiers"
|
|
(`#177 <https://github.com/nim-lang/Nim/issues/177>`_)
|
|
- Fixed "Parameters are not captured inside closures inside closure iterators"
|
|
(`#4070 <https://github.com/nim-lang/Nim/issues/4070>`_)
|
|
- Fixed "`$` For array crashes the compiler when assigned to const"
|
|
(`#4040 <https://github.com/nim-lang/Nim/issues/4040>`_)
|
|
|
|
- Fixed "Default value for .importcpp enum is initialized incorrectly"
|
|
(`#4034 <https://github.com/nim-lang/Nim/issues/4034>`_)
|
|
- Fixed "Nim doesn't instantiate template parameter in cgen when using procedure return value in for-in loop"
|
|
(`#4110 <https://github.com/nim-lang/Nim/issues/4110>`_)
|
|
- Fixed "Compile-time SIGSEGV when invoking procedures that cannot be evaluated at compile time from a macro"
|
|
(`#3956 <https://github.com/nim-lang/Nim/issues/3956>`_)
|
|
- Fixed "Backtricks inside .emit pragma output incorrect name for types"
|
|
(`#3992 <https://github.com/nim-lang/Nim/issues/3992>`_)
|
|
- Fixed "typedef is generated for .importcpp enums"
|
|
(`#4145 <https://github.com/nim-lang/Nim/issues/4145>`_)
|
|
- Fixed "Incorrect C code generated for nnkEmpty node"
|
|
(`#950 <https://github.com/nim-lang/Nim/issues/950>`_)
|
|
- Fixed "Syntax error in config file appears as general exception without useful info"
|
|
(`#3763 <https://github.com/nim-lang/Nim/issues/3763>`_)
|
|
- Fixed "Converting .importcpp enum to string doesn't work when done inside procs"
|
|
(`#4147 <https://github.com/nim-lang/Nim/issues/4147>`_)
|
|
- Fixed "Enum template specifiers do not work for .importcpp enums when they are used as a parameter"
|
|
(`#4146 <https://github.com/nim-lang/Nim/issues/4146>`_)
|
|
- Fixed "Providing template specifier recursively for .importcpp type doesn't work"
|
|
(`#4148 <https://github.com/nim-lang/Nim/issues/4148>`_)
|
|
- Fixed "sizeof doesn't work for generics in vm"
|
|
(`#4153 <https://github.com/nim-lang/Nim/issues/4153>`_)
|
|
- Fixed "Creating list-like structures in a loop leaks memory indefinitely"
|
|
(`#3793 <https://github.com/nim-lang/Nim/issues/3793>`_)
|
|
- Fixed "Creating list-like structures in a loop leaks memory indefinitely"
|
|
(`#3793 <https://github.com/nim-lang/Nim/issues/3793>`_)
|
|
- Fixed "Enum items generated by a macro have wrong type."
|
|
(`#4066 <https://github.com/nim-lang/Nim/issues/4066>`_)
|
|
- Fixed "Memory leak with default GC"
|
|
(`#3184 <https://github.com/nim-lang/Nim/issues/3184>`_)
|
|
- Fixed "Rationals Overflow Error on 32-bit machine"
|
|
(`#4194 <https://github.com/nim-lang/Nim/issues/4194>`_)
|
|
|
|
- Fixed "osproc waitForExit() is ignoring the timeout parameter"
|
|
(`#4200 <https://github.com/nim-lang/Nim/issues/4200>`_)
|
|
- Fixed "Regression: exception parseFloat("-0.0") "
|
|
(`#4212 <https://github.com/nim-lang/Nim/issues/4212>`_)
|
|
- Fixed "JS Codegen: Bad constant initialization order"
|
|
(`#4222 <https://github.com/nim-lang/Nim/issues/4222>`_)
|
|
- Fixed "Term-rewriting macros gives Error: wrong number of arguments"
|
|
(`#4227 <https://github.com/nim-lang/Nim/issues/4227>`_)
|
|
- Fixed "importcpp allowed in body of proc after push"
|
|
(`#4225 <https://github.com/nim-lang/Nim/issues/4225>`_)
|
|
- Fixed "pragma SIGSEGV"
|
|
(`#4001 <https://github.com/nim-lang/Nim/issues/4001>`_)
|
|
- Fixed "Restrict hints to the current project"
|
|
(`#2159 <https://github.com/nim-lang/Nim/issues/2159>`_)
|
|
- Fixed "`unlikely`/`likely` should be no-ops for the Javascript backend"
|
|
(`#3882 <https://github.com/nim-lang/Nim/issues/3882>`_)
|
|
- Fixed ".this pragma doesn't work for fields and procs defined for parent type"
|
|
(`#4177 <https://github.com/nim-lang/Nim/issues/4177>`_)
|
|
- Fixed "VM SIGSEV with compile-time Table"
|
|
(`#3729 <https://github.com/nim-lang/Nim/issues/3729>`_)
|
|
- Fixed "Error during compilation with cpp option on FreeBSD "
|
|
(`#3059 <https://github.com/nim-lang/Nim/issues/3059>`_)
|
|
- Fixed "Compiler doesn't keep type bounds"
|
|
(`#1713 <https://github.com/nim-lang/Nim/issues/1713>`_)
|
|
- Fixed "Stdlib: future: Shortcut proc definition doesn't support, varargs, seqs, arrays, or openarrays"
|
|
(`#4238 <https://github.com/nim-lang/Nim/issues/4238>`_)
|
|
- Fixed "Why don't ``asynchttpserver`` support request-body when ``put`` ``delete``?"
|
|
(`#4221 <https://github.com/nim-lang/Nim/issues/4221>`_)
|
|
- Fixed "Paths for includes in Nim documentation"
|
|
(`#2640 <https://github.com/nim-lang/Nim/issues/2640>`_)
|
|
- Fixed "Compile pragma doesn't work with relative import"
|
|
(`#1262 <https://github.com/nim-lang/Nim/issues/1262>`_)
|
|
- Fixed "Slurp doesn't work with relative imports"
|
|
(`#765 <https://github.com/nim-lang/Nim/issues/765>`_)
|
|
- Fixed "Make tilde expansion consistent"
|
|
(`#786 <https://github.com/nim-lang/Nim/issues/786>`_)
|
|
- Fixed "koch expects nim to be in path for tests?"
|
|
(`#3290 <https://github.com/nim-lang/Nim/issues/3290>`_)
|
|
- Fixed "Don't use relative imports for non relative modules (aka babel libs)"
|
|
(`#546 <https://github.com/nim-lang/Nim/issues/546>`_)
|
|
- Fixed ""echo" on general structs does not work"
|
|
(`#4236 <https://github.com/nim-lang/Nim/issues/4236>`_)
|
|
- Fixed "Changing math.round() and adding math.integer()"
|
|
(`#3473 <https://github.com/nim-lang/Nim/issues/3473>`_)
|
|
- Fixed "Mathematics module missing modf"
|
|
(`#4195 <https://github.com/nim-lang/Nim/issues/4195>`_)
|
|
- Fixed "Passing method to macro causes seg fault"
|
|
(`#1611 <https://github.com/nim-lang/Nim/issues/1611>`_)
|
|
- Fixed "Internal error with "discard quit""
|
|
(`#3532 <https://github.com/nim-lang/Nim/issues/3532>`_)
|
|
- Fixed "SIGSEGV when using object variant in compile time"
|
|
(`#4207 <https://github.com/nim-lang/Nim/issues/4207>`_)
|
|
- Fixed "formatSize has incorrect prefix"
|
|
(`#4198 <https://github.com/nim-lang/Nim/issues/4198>`_)
|
|
- Fixed "Add compiler parameter to generate output from source code filters"
|
|
(`#375 <https://github.com/nim-lang/Nim/issues/375>`_)
|
|
- Fixed "Add engineering notation to string formatting functions"
|
|
(`#4197 <https://github.com/nim-lang/Nim/issues/4197>`_)
|
|
- Fixed "Very minor error in json documentation"
|
|
(`#4255 <https://github.com/nim-lang/Nim/issues/4255>`_)
|
|
- Fixed "can't compile when checking if closure == nil"
|
|
(`#4186 <https://github.com/nim-lang/Nim/issues/4186>`_)
|
|
- Fixed "Strange code gen for procs returning arrays"
|
|
(`#2259 <https://github.com/nim-lang/Nim/issues/2259>`_)
|
|
- Fixed "asynchttpserver may consume unbounded memory reading headers"
|
|
(`#3847 <https://github.com/nim-lang/Nim/issues/3847>`_)
|
|
|
|
- Fixed "download page still implies master is default branch"
|
|
(`#4022 <https://github.com/nim-lang/Nim/issues/4022>`_)
|
|
- Fixed "Use standard compiler flags in build script"
|
|
(`#2128 <https://github.com/nim-lang/Nim/issues/2128>`_)
|
|
- Fixed "CentOS 6 (gcc-4.4.7) compilation failed (redefinition of typedef)"
|
|
(`#4272 <https://github.com/nim-lang/Nim/issues/4272>`_)
|
|
- Fixed "doc2 has issues with httpclient"
|
|
(`#4278 <https://github.com/nim-lang/Nim/issues/4278>`_)
|
|
- Fixed "tuples/tuple_with_nil fails without unsigned module"
|
|
(`#3579 <https://github.com/nim-lang/Nim/issues/3579>`_)
|