preparations for version 0.11.0

This commit is contained in:
Araq 2015-04-30 02:01:38 +02:00
commit a4f8a89c85
8 changed files with 467 additions and 349 deletions

View file

@ -126,12 +126,108 @@ Files: "examples/*.txt"
Files: "examples/*.cfg" Files: "examples/*.cfg"
Files: "examples/*.tmpl" Files: "examples/*.tmpl"
Files: "tests/actiontable/*.nim"
Files: "tests/alias/*.nim"
Files: "tests/ambsym/*.nim"
Files: "tests/array/*.nim"
Files: "tests/assign/*.nim"
Files: "tests/astoverload/*.nim"
Files: "tests/async/*.nim"
Files: "tests/benchmarks/*.nim"
Files: "tests/bind/*.nim"
Files: "tests/borrow/*.nim"
Files: "tests/casestmt/*.nim"
Files: "tests/ccgbugs/*.nim"
Files: "tests/clearmsg/*.nim"
Files: "tests/closure/*.nim"
Files: "tests/cnstseq/*.nim"
Files: "tests/collections/*.nim"
Files: "tests/compiles/*.nim"
Files: "tests/concat/*.nim"
Files: "tests/concepts/*.nim"
Files: "tests/constr/*.nim"
Files: "tests/constraints/*.nim"
Files: "tests/controlflow/*.nim"
Files: "tests/converter/*.nim"
Files: "tests/cpp/*.nim"
Files: "tests/defaultprocparam/*.nim"
Files: "tests/deprecated/*.nim"
Files: "tests/destructor/*.nim"
Files: "tests/dir with space/*.nim"
Files: "tests/discard/*.nim"
Files: "tests/distinct/*.nim"
Files: "tests/dll/*.nim"
Files: "tests/effects/*.nim"
Files: "tests/enum/*.nim"
Files: "tests/exception/*.nim"
Files: "tests/exprs/*.nim"
Files: "tests/fields/*.nim"
Files: "tests/float/*.nim"
Files: "tests/friends/*.nim"
Files: "tests/gc/*.nim"
Files: "tests/generics/*.nim"
Files: "tests/gensym/*.nim"
Files: "tests/global/*.nim"
Files: "tests/implicit/*.nim"
Files: "tests/init/*.nim"
Files: "tests/iter/*.nim"
Files: "tests/js/*.nim"
Files: "tests/js/*.cfg"
Files: "tests/let/*.nim"
Files: "tests/lexer/*.nim"
Files: "tests/lookups/*.nim"
Files: "tests/macros/*.nim"
Files: "tests/magics/*.nim"
Files: "tests/metatype/*.nim"
Files: "tests/method/*.nim"
Files: "tests/misc/*.nim"
Files: "tests/modules/*.nim"
Files: "tests/namedparams/*.nim"
Files: "tests/notnil/*.nim"
Files: "tests/objects/*.nim"
Files: "tests/objvariant/*.nim"
Files: "tests/openarray/*.nim"
Files: "tests/osproc/*.nim"
Files: "tests/overflw/*.nim"
Files: "tests/overload/*.nim"
Files: "tests/parallel/*.nim"
Files: "tests/parallel/*.cfg"
Files: "tests/parser/*.nim"
Files: "tests/pragmas/*.nim"
Files: "tests/proc/*.nim"
Files: "tests/procvar/*.nim"
Files: "tests/range/*.nim"
Files: "tests/rodfiles/*.nim"
Files: "tests/seq/*.nim"
Files: "tests/sets/*.nim"
Files: "tests/showoff/*.nim"
Files: "tests/specialops/*.nim"
Files: "tests/stdlib/*.nim"
Files: "tests/system/*.nim"
Files: "tests/template/*.nim"
Files: "tests/testament/*.nim"
Files: "tests/testdata/*.nim"
Files: "tests/threads/*.nim"
Files: "tests/threads/*.cfg"
Files: "tests/trmacros/*.nim"
Files: "tests/tuples/*.nim"
Files: "tests/typerel/*.nim"
Files: "tests/types/*.nim"
Files: "tests/usingstmt/*.nim"
Files: "tests/varres/*.nim"
Files: "tests/varstmt/*.nim"
Files: "tests/vm/*.nim"
Files: "tests/readme.txt"
Files: "tests/testament/css/*.css"
Files: "lib/pure/unidecode/unidecode.dat"
[Windows] [Windows]
Files: "bin/nim.exe" Files: "bin/nim.exe"
Files: "bin/nim_debug.exe"
Files: "bin/c2nim.exe" Files: "bin/c2nim.exe"
Files: "bin/nimgrep.exe" Files: "bin/nimgrep.exe"
Files: "bin/nimsuggest.exe"
Files: "bin/nimble.exe"
Files: "bin/*.dll"
Files: "dist/*.dll" Files: "dist/*.dll"
Files: "koch.exe" Files: "koch.exe"
@ -142,7 +238,7 @@ BinPath: r"bin;dist\mingw\bin;dist"
; Section | dir | zipFile | size hint (in KB) | url | exe start menu entry ; Section | dir | zipFile | size hint (in KB) | url | exe start menu entry
Download: r"Documentation|doc|docs.zip|13824|http://nim-lang.org/download/docs-${version}.zip|overview.html" Download: r"Documentation|doc|docs.zip|13824|http://nim-lang.org/download/docs-${version}.zip|overview.html"
Download: r"C Compiler (MingW)|dist|mingw.zip|82944|http://nim-lang.org/download/${mingw}.zip" Download: r"C Compiler (MingW)|dist|mingw.zip|82944|http://nim-lang.org/download/${mingw}.zip"
Download: r"Aporia IDE|dist|aporia.zip|97997|http://nim-lang.org/download/aporia-0.1.3.zip|aporia\bin\aporia.exe" Download: r"Aporia IDE|dist|aporia.zip|97997|http://nim-lang.org/download/aporia-0.3.0.zip|aporia\bin\aporia.exe"
; for now only NSIS supports optional downloads ; for now only NSIS supports optional downloads
[UnixBin] [UnixBin]

View file

@ -119,7 +119,7 @@ proc buildTool(toolname, args: string) =
proc nsis(args: string) = proc nsis(args: string) =
# make sure we have generated the niminst executables: # make sure we have generated the niminst executables:
buildTool("tools/niminst/niminst", args) buildTool("tools/niminst/niminst", args)
buildTool("tools/nimgrep", args) #buildTool("tools/nimgrep", args)
# produce 'nim_debug.exe': # produce 'nim_debug.exe':
exec "nim c compiler" / "nim.nim" exec "nim c compiler" / "nim.nim"
copyExe("compiler/nim".exe, "bin/nim_debug".exe) copyExe("compiler/nim".exe, "bin/nim_debug".exe)

View file

@ -1532,10 +1532,10 @@ const
NimMajor*: int = 0 NimMajor*: int = 0
## is the major number of Nim's version. ## is the major number of Nim's version.
NimMinor*: int = 10 NimMinor*: int = 11
## is the minor number of Nim's version. ## is the minor number of Nim's version.
NimPatch*: int = 3 NimPatch*: int = 0
## is the patch number of Nim's version. ## is the patch number of Nim's version.
NimVersion*: string = $NimMajor & "." & $NimMinor & "." & $NimPatch NimVersion*: string = $NimMajor & "." & $NimMinor & "." & $NimPatch

View file

@ -593,8 +593,9 @@ proc targzDist(c: var ConfigData) =
let oldDir = getCurrentDir() let oldDir = getCurrentDir()
setCurrentDir(tmpDir) setCurrentDir(tmpDir)
try: try:
if execShellCmd("7z a -ttar $1.tar $1" % proj) != 0 or #if execShellCmd("7z a -ttar $1.tar $1" % proj) != 0 or
execShellCmd("7z a -tgzip $1.tar.gz $1.tar" % proj) != 0: # execShellCmd("7z a -tgzip $1.tar.gz $1.tar" % proj) != 0 or
if execShellCmd("7z a -tzip $1.zip $1" % proj) != 0:
echo("External program failed") echo("External program failed")
finally: finally:
setCurrentDir(oldDir) setCurrentDir(oldDir)

View file

@ -35,7 +35,7 @@
; Default installation folder ; Default installation folder
; This is changed later (in .onInit) to the root directory, if possible. ; This is changed later (in .onInit) to the root directory, if possible.
InstallDir "$LOCALAPPDATA\?{c.name}" InstallDir "$LOCALAPPDATA\?{c.name}-?{c.version}"
; Get installation folder from registry if available ; Get installation folder from registry if available
InstallDirRegKey HKCU "Software\c.name\c.version" "" InstallDirRegKey HKCU "Software\c.name\c.version" ""

View file

@ -13,8 +13,8 @@ Binaries
-------- --------
Unfortunately for now we only provide builds for Windows. Unfortunately for now we only provide builds for Windows.
* 32 bit: `nim-0.10.2_x32.exe <download/nim-0.10.2_x32.exe>`_ * 32 bit: `nim-0.11.0_x32.exe <download/nim-0.11.0_x32.exe>`_
* 64 bit: `nim-0.10.2_x64.exe <download/nim-0.10.2_x64.exe>`_ * 64 bit: `nim-0.11.0_x64.exe <download/nim-0.11.0_x64.exe>`_
Installation based on generated C code Installation based on generated C code
@ -24,8 +24,8 @@ This installation method is the preferred way for Linux, Mac OS X, and other Uni
like systems. Binary packages may be provided later. like systems. Binary packages may be provided later.
Download `nim-0.10.2.zip <download/nim-0.10.2.zip>`_, extract it and follow Download `nim-0.11.0.zip <download/nim-0.11.0.zip>`_, extract it and
these instructions: follow these instructions:
* sh build.sh * sh build.sh
* Add ``$your_install_dir/bin`` to your PATH. * Add ``$your_install_dir/bin`` to your PATH.

View file

@ -2,19 +2,34 @@
News News
==== ====
..
2015-03-01 Version 0.11.0 released 2015-04-30 Version 0.11.0 released
================================== ==================================
Changes affecting backwards compatibility What's left to be done
----------------------------------------- ~~~~~~~~~~~~~~~~~~~~~~
- Parameter names are finally properly ``gensym``'ed. This can break The 1.0 release is expected by the end of this year. Rumors say it will be in
summer 2015. What's left:
* Bug fixes, bug fixes, bug fixes!
* ``immediate`` templates and macros will be deprecated as these will soon be
completely unnecessary, instead the ``typed`` or ``untyped`` metatypes can
be used.
* The standard library needs cleanups and use the features we have for
concurrency and parallelism.
Changes affecting backwards compatibility
-----------------------------------------
- Parameter names are finally properly ``gensym``'ed. This can break
templates though that used to rely on the fact that they are not. templates though that used to rely on the fact that they are not.
(Bug #1915.) This means this doesn't compile anymore: (Bug #1915.) This means this doesn't compile anymore:
.. code-block:: nim .. code-block:: nim
template doIt(body: stmt) {.immediate.} = template doIt(body: stmt) {.immediate.} =
# this used to inject the 'str' parameter: # this used to inject the 'str' parameter:
@ -26,86 +41,86 @@ News
Declare the ``doIt`` template as ``immediate, dirty`` to get the old Declare the ``doIt`` template as ``immediate, dirty`` to get the old
behaviour. behaviour.
- Tuple field names are not ignored anymore, this caused too many problems - Tuple field names are not ignored anymore, this caused too many problems
in practice so now the behaviour as it was for version 0.9.6: If field in practice so now the behaviour as it was for version 0.9.6: If field
names exist for the tuple type, they are checked. names exist for the tuple type, they are checked.
- ``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 tool `nimsuggest`_.
- *arrow like* operators are not right associative anymore. - *arrow like* operators are not right associative anymore.
- *arrow like* operators are now required to end with either ``->``, ``~>`` or - *arrow like* operators are now 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.
- Typeless parameters are now only allowed in templates and macros. The old - Typeless parameters are now only allowed in templates and macros. The old
way turned out to be too error-prone. way turned out to be too error-prone.
- The 'addr' and 'type' operators are now parsed as unary function - The 'addr' and 'type' operators are now parsed as unary function
application. This means ``type(x).name`` is now parsed as ``(type(x)).name`` application. This means ``type(x).name`` is now parsed as ``(type(x)).name``
and not as ``type((x).name)``. Note that this also affects the AST and not as ``type((x).name)``. Note that this also affects the AST
structure; for immediate macro parameters ``nkCall('addr', 'x')`` is structure; for immediate macro parameters ``nkCall('addr', 'x')`` is
produced instead of ``nkAddr('x')``. produced instead of ``nkAddr('x')``.
- ``concept`` is now a keyword and is used instead of ``generic``. - ``concept`` is now a keyword and is used instead of ``generic``.
- The ``inc``, ``dec``, ``+=``, ``-=`` builtins now produce OverflowError - The ``inc``, ``dec``, ``+=``, ``-=`` builtins now produce OverflowError
exceptions. This means code like the following: exceptions. This means code like the following:
.. code-block:: nim .. code-block:: nim
var x = low(T) var x = low(T)
while x <= high(T): while x <= high(T):
echo x echo x
inc x inc x
Needs to be replaced by something like this: Needs to be replaced by something like this:
.. code-block:: nim .. code-block:: nim
var x = low(T).int var x = low(T).int
while x <= high(T).int: while x <= high(T).int:
echo x.T echo x.T
inc x inc x
- **Negative indexing for slicing does not work anymore!** Instead - **Negative indexing for slicing does not work anymore!** Instead
of ``a[0.. -1]`` you can of ``a[0.. -1]`` you can
use ``a[0.. ^1]``. This also works with accessing a single use ``a[0.. ^1]``. This also works with accessing a single
element ``a[^1]``. Note that we cannot detect this reliably as it is element ``a[^1]``. Note that we cannot detect this reliably as it is
determined at **runtime** whether negative indexing is used! determined at **runtime** whether negative indexing is used!
``a[0.. -1]`` now produces the empty string/sequence. ``a[0.. -1]`` now produces the empty string/sequence.
- The compiler now warns about code like ``foo +=1`` which uses inconsistent - The compiler now warns about code like ``foo +=1`` which uses inconsistent
spacing around binary operators. Later versions of the language will parse spacing around binary operators. Later versions of the language will parse
these as unary operators instead so that ``echo $foo`` finally can do what these as unary operators instead so that ``echo $foo`` finally can do what
people expect it to do. people expect it to do.
- ``system.untyped`` and ``system.typed`` have been introduced as aliases - ``system.untyped`` and ``system.typed`` have been introduced as aliases
for ``expr`` and ``stmt``. The new names capture the semantics much better for ``expr`` and ``stmt``. The new names capture the semantics much better
and most likely ``expr`` and ``stmt`` will be deprecated in favor of the and most likely ``expr`` and ``stmt`` will be deprecated in favor of the
new names. new names.
- The ``split`` method in module ``re`` has changed. It now handles the case - The ``split`` method in module ``re`` has changed. It now handles the case
of matches having a length of 0, and empty strings being yielded from the of matches having a length of 0, and empty strings being yielded from the
iterator. A notable change might be that a pattern being matched at the iterator. A notable change might be that a pattern being matched at the
beginning and end of a string, will result in an empty string being produced beginning and end of a string, will result in an empty string being produced
at the start and the end of the iterator. at the start and the end of the iterator.
Language Additions Language Additions
------------------ ------------------
- For empty ``case object`` branches ``discard`` can finally be used instead - For empty ``case object`` branches ``discard`` can finally be used instead
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`_ 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:
.. code-block:: nim .. code-block:: nim
import tables import tables
const const
foo = {"ah": "finally", "this": "is", "possible.": "nice!"}.toTable() foo = {"ah": "finally", "this": "is", "possible.": "nice!"}.toTable()
- Ordinary parameters can follow after a varargs parameter. This means the - Ordinary parameters can follow after a varargs parameter. This means the
following is finally accepted by the compiler: following is finally accepted by the compiler:
.. code-block:: nim .. code-block:: nim
template takesBlock(a, b: int, x: varargs[expr]; blck: stmt) = template takesBlock(a, b: int, x: varargs[expr]; blck: stmt) =
blck blck
echo a, b echo a, b
@ -113,9 +128,9 @@ News
takesBlock 1, 2, "some", 0.90, "random stuff": takesBlock 1, 2, "some", 0.90, "random stuff":
echo "yay" echo "yay"
- Overloading by 'var T' is now finally possible: - Overloading by 'var T' is now finally possible:
.. code-block:: nim .. code-block:: nim
proc varOrConst(x: var int) = echo "var" proc varOrConst(x: var int) = echo "var"
proc varOrConst(x: int) = echo "const" proc varOrConst(x: int) = echo "const"
@ -123,229 +138,235 @@ News
varOrConst(x) # "var" varOrConst(x) # "var"
varOrConst(45) # "const" varOrConst(45) # "const"
- Array and seq indexing can now use the builtin ``^`` operator to access - Array and seq indexing can now use the builtin ``^`` operator to access
things from backwards: ``a[^1]`` is like Python's ``a[-1]``. things from backwards: ``a[^1]`` is like Python's ``a[-1]``.
- A first version of the specification and implementation of the overloading - A first version of the specification and implementation of the overloading
of the assignment operator has arrived! of the assignment operator has arrived!
- ``system.len`` for strings and sequences now returns 0 for nil. - ``system.len`` for strings and sequences now returns 0 for nil.
- A single underscore can now be used to discard values when unpacking tuples. - A single underscore can now be used to discard values when unpacking tuples:
- ``marshal.$$`` and ``marshal.to`` can be executed at compile-time.
- Interoperability with C++ improved tremendously; C++'s templates and .. code-block:: nim
operators can be wrapped directly. See `this <nimc.html#ImportCpp-pragma>`_ let (path, _, _) = os.splitFile("path/file.ext")
- ``marshal.$$`` and ``marshal.to`` can be executed at compile-time.
- Interoperability with C++ improved tremendously; C++'s templates and
operators can be wrapped directly. See
`this <nimc.html#additional-features-importcpp-pragma>`_
for more information. for more information.
Library additions Library additions
----------------- -----------------
- ``reversed`` proc added to the ``unicode`` module. - ``reversed`` proc added to the ``unicode`` module.
- Added multipart param to httpclient's ``post`` and ``postContent`` together - Added multipart param to httpclient's ``post`` and ``postContent`` together
with a ``newMultipartData`` proc. with a ``newMultipartData`` proc.
- Added `%*` operator for JSON. - Added `%*` operator for JSON.
- The compiler is now available as Nimble package for c2nim. - The compiler is now available as Nimble package for c2nim.
- Added ``..^`` and ``..<`` templates to system so that the rather annoying - Added ``..^`` and ``..<`` templates to system so that the rather annoying
space between ``.. <`` and ``.. ^`` is not necessary anymore. space between ``.. <`` and ``.. ^`` is not necessary anymore.
- Added ``system.xlen`` for strings and sequences to get back the old ``len`` - Added ``system.xlen`` for strings and sequences to get back the old ``len``
operation that doesn't check for ``nil`` for efficiency. operation that doesn't check for ``nil`` for efficiency.
Bugfixes Bugfixes
-------- --------
- Fixed internal compiler error when using ``char()`` in an echo call - Fixed internal compiler error when using ``char()`` in an echo call
(`#1788 <https://github.com/Araq/Nim/issues/1788>`_). (`#1788 <https://github.com/Araq/Nim/issues/1788>`_).
- Fixed Windows cross-compilation on Linux. - Fixed Windows cross-compilation on Linux.
- Overload resolution now works for types distinguished only by a - Overload resolution now works for types distinguished only by a
``static[int]`` param ``static[int]`` param
(`#1056 <https://github.com/Araq/Nim/issues/1056>`_). (`#1056 <https://github.com/Araq/Nim/issues/1056>`_).
- Other fixes relating to generic types and static params. - Other fixes relating to generic types and static params.
- Fixed some compiler crashes with unnamed tuples - Fixed some compiler crashes with unnamed tuples
(`#1774 <https://github.com/Araq/Nim/issues/1774>`_). (`#1774 <https://github.com/Araq/Nim/issues/1774>`_).
- Fixed ``channels.tryRecv`` blocking - Fixed ``channels.tryRecv`` blocking
(`#1816 <https://github.com/Araq/Nim/issues/1816>`_). (`#1816 <https://github.com/Araq/Nim/issues/1816>`_).
- Fixed generic instantiation errors with ``typedesc`` - Fixed generic instantiation errors with ``typedesc``
(`#419 <https://github.com/Araq/Nim/issues/419>`_). (`#419 <https://github.com/Araq/Nim/issues/419>`_).
- Fixed generic regression where the compiler no longer detected constant - Fixed generic regression where the compiler no longer detected constant
expressions properly (`#544 <https://github.com/Araq/Nim/issues/544>`_). expressions properly (`#544 <https://github.com/Araq/Nim/issues/544>`_).
- Fixed internal error with generic proc using ``static[T]`` in a specific - Fixed internal error with generic proc using ``static[T]`` in a specific
way (`#1049 <https://github.com/Araq/Nim/issues/1049>`_). way (`#1049 <https://github.com/Araq/Nim/issues/1049>`_).
- More fixes relating to generics - More fixes relating to generics (`#1820 <https://github.com/Araq/Nim/issues/1820>`_,
(`#1820 <https://github.com/Araq/Nim/issues/1820>`_,
`#1050 <https://github.com/Araq/Nim/issues/1050>`_, `#1050 <https://github.com/Araq/Nim/issues/1050>`_,
`#1859 <https://github.com/Araq/Nim/issues/1859>`_, `#1859 <https://github.com/Araq/Nim/issues/1859>`_,
`#1858 <https://github.com/Araq/Nim/issues/1858>`_). `#1858 <https://github.com/Araq/Nim/issues/1858>`_).
- Fixed httpclient to properly encode queries. - Fixed httpclient to properly encode queries.
- Many fixes to the ``uri`` module. - Many fixes to the ``uri`` module.
- Async sockets are now closed on error. - Async sockets are now closed on error.
- Fixes to httpclient's handling of multipart data. - Fixes to httpclient's handling of multipart data.
- Fixed GC segfaults with asynchronous sockets - Fixed GC segfaults with asynchronous sockets
(`#1796 <https://github.com/Araq/Nim/issues/1796>`_). (`#1796 <https://github.com/Araq/Nim/issues/1796>`_).
- Added more versions to openssl's DLL version list - Added more versions to openssl's DLL version list
(`076f993 <https://github.com/Araq/Nim/commit/076f993>`_). (`076f993 <https://github.com/Araq/Nim/commit/076f993>`_).
- Fixed shallow copy in iterators being broken - Fixed shallow copy in iterators being broken
(`#1803 <https://github.com/Araq/Nim/issues/1803>`_). (`#1803 <https://github.com/Araq/Nim/issues/1803>`_).
- ``nil`` can now be inserted into tables with the ``db_sqlite`` module - ``nil`` can now be inserted into tables with the ``db_sqlite`` module
(`#1866 <https://github.com/Araq/Nim/issues/1866>`_). (`#1866 <https://github.com/Araq/Nim/issues/1866>`_).
- Fixed "Incorrect assembler generated" - Fixed "Incorrect assembler generated"
(`#1907 <https://github.com/Araq/Nim/issues/1907>`_) (`#1907 <https://github.com/Araq/Nim/issues/1907>`_)
- Fixed "Expression templates that define macros are unusable in some contexts" - Fixed "Expression templates that define macros are unusable in some contexts"
(`#1903 <https://github.com/Araq/Nim/issues/1903>`_) (`#1903 <https://github.com/Araq/Nim/issues/1903>`_)
- Fixed "a second level generic subclass causes the compiler to crash" - Fixed "a second level generic subclass causes the compiler to crash"
(`#1919 <https://github.com/Araq/Nim/issues/1919>`_) (`#1919 <https://github.com/Araq/Nim/issues/1919>`_)
- Fixed "nim 0.10.2 generates invalid AsyncHttpClient C code for MSVC " - Fixed "nim 0.10.2 generates invalid AsyncHttpClient C code for MSVC "
(`#1901 <https://github.com/Araq/Nim/issues/1901>`_) (`#1901 <https://github.com/Araq/Nim/issues/1901>`_)
- Fixed "1 shl n produces wrong C code" - Fixed "1 shl n produces wrong C code"
(`#1928 <https://github.com/Araq/Nim/issues/1928>`_) (`#1928 <https://github.com/Araq/Nim/issues/1928>`_)
- Fixed "Internal error on tuple yield" - Fixed "Internal error on tuple yield"
(`#1838 <https://github.com/Araq/Nim/issues/1838>`_) (`#1838 <https://github.com/Araq/Nim/issues/1838>`_)
- Fixed "ICE with template" - Fixed "ICE with template"
(`#1915 <https://github.com/Araq/Nim/issues/1915>`_) (`#1915 <https://github.com/Araq/Nim/issues/1915>`_)
- Fixed "include the tool directory in the installer as it is required by koch" - Fixed "include the tool directory in the installer as it is required by koch"
(`#1947 <https://github.com/Araq/Nim/issues/1947>`_) (`#1947 <https://github.com/Araq/Nim/issues/1947>`_)
- Fixed "Can't compile if file location contains spaces on Windows" - Fixed "Can't compile if file location contains spaces on Windows"
(`#1955 <https://github.com/Araq/Nim/issues/1955>`_) (`#1955 <https://github.com/Araq/Nim/issues/1955>`_)
- Fixed "List comprehension macro only supports infix checks as guards" - Fixed "List comprehension macro only supports infix checks as guards"
(`#1920 <https://github.com/Araq/Nim/issues/1920>`_) (`#1920 <https://github.com/Araq/Nim/issues/1920>`_)
- Fixed "wrong field names of compatible tuples in generic types" - Fixed "wrong field names of compatible tuples in generic types"
(`#1910 <https://github.com/Araq/Nim/issues/1910>`_) (`#1910 <https://github.com/Araq/Nim/issues/1910>`_)
- Fixed "Macros within templates no longer work as expected" - Fixed "Macros within templates no longer work as expected"
(`#1944 <https://github.com/Araq/Nim/issues/1944>`_) (`#1944 <https://github.com/Araq/Nim/issues/1944>`_)
- Fixed "Compiling for Standalone AVR broken in 0.10.2" - Fixed "Compiling for Standalone AVR broken in 0.10.2"
(`#1964 <https://github.com/Araq/Nim/issues/1964>`_) (`#1964 <https://github.com/Araq/Nim/issues/1964>`_)
- Fixed "Compiling for Standalone AVR broken in 0.10.2" - Fixed "Compiling for Standalone AVR broken in 0.10.2"
(`#1964 <https://github.com/Araq/Nim/issues/1964>`_) (`#1964 <https://github.com/Araq/Nim/issues/1964>`_)
- Fixed "Code generation for mitems with tuple elements" - Fixed "Code generation for mitems with tuple elements"
(`#1833 <https://github.com/Araq/Nim/issues/1833>`_) (`#1833 <https://github.com/Araq/Nim/issues/1833>`_)
- Fixed "httpclient.HttpMethod should not be an enum" - Fixed "httpclient.HttpMethod should not be an enum"
(`#1962 <https://github.com/Araq/Nim/issues/1962>`_) (`#1962 <https://github.com/Araq/Nim/issues/1962>`_)
- Fixed "terminal / eraseScreen() throws an OverflowError" - Fixed "terminal / eraseScreen() throws an OverflowError"
(`#1906 <https://github.com/Araq/Nim/issues/1906>`_) (`#1906 <https://github.com/Araq/Nim/issues/1906>`_)
- Fixed "setControlCHook(nil) disables registered quit procs" - Fixed "setControlCHook(nil) disables registered quit procs"
(`#1546 <https://github.com/Araq/Nim/issues/1546>`_) (`#1546 <https://github.com/Araq/Nim/issues/1546>`_)
- Fixed "Unexpected idetools behaviour" - Fixed "Unexpected idetools behaviour"
(`#325 <https://github.com/Araq/Nim/issues/325>`_) (`#325 <https://github.com/Araq/Nim/issues/325>`_)
- Fixed "Unused lifted lambda does not compile" - Fixed "Unused lifted lambda does not compile"
(`#1642 <https://github.com/Araq/Nim/issues/1642>`_) (`#1642 <https://github.com/Araq/Nim/issues/1642>`_)
- Fixed "'low' and 'high' don't work with cstring asguments" - Fixed "'low' and 'high' don't work with cstring asguments"
(`#2030 <https://github.com/Araq/Nim/issues/2030>`_) (`#2030 <https://github.com/Araq/Nim/issues/2030>`_)
- Fixed "Converting to int does not round in JS backend" - Fixed "Converting to int does not round in JS backend"
(`#1959 <https://github.com/Araq/Nim/issues/1959>`_) (`#1959 <https://github.com/Araq/Nim/issues/1959>`_)
- Fixed "Internal error genRecordField 2 when adding region to pointer." - Fixed "Internal error genRecordField 2 when adding region to pointer."
(`#2039 <https://github.com/Araq/Nim/issues/2039>`_) (`#2039 <https://github.com/Araq/Nim/issues/2039>`_)
- Fixed "Macros fail to compile when compiled with --os:standalone" - Fixed "Macros fail to compile when compiled with --os:standalone"
(`#2041 <https://github.com/Araq/Nim/issues/2041>`_) (`#2041 <https://github.com/Araq/Nim/issues/2041>`_)
- Fixed "Reading from {.compileTime.} variables can cause code generation to fail" - Fixed "Reading from {.compileTime.} variables can cause code generation to fail"
(`#2022 <https://github.com/Araq/Nim/issues/2022>`_) (`#2022 <https://github.com/Araq/Nim/issues/2022>`_)
- Fixed "Passing overloaded symbols to templates fails inside generic procedures" - Fixed "Passing overloaded symbols to templates fails inside generic procedures"
(`#1988 <https://github.com/Araq/Nim/issues/1988>`_) (`#1988 <https://github.com/Araq/Nim/issues/1988>`_)
- Fixed "Compiling iterator with object assignment in release mode causes "var not init"" - Fixed "Compiling iterator with object assignment in release mode causes "var not init""
(`#2023 <https://github.com/Araq/Nim/issues/2023>`_) (`#2023 <https://github.com/Araq/Nim/issues/2023>`_)
- Fixed "calling a large number of macros doing some computation fails" - Fixed "calling a large number of macros doing some computation fails"
(`#1989 <https://github.com/Araq/Nim/issues/1989>`_) (`#1989 <https://github.com/Araq/Nim/issues/1989>`_)
- Fixed "Can't get Koch to install nim under Windows" - Fixed "Can't get Koch to install nim under Windows"
(`#2061 <https://github.com/Araq/Nim/issues/2061>`_) (`#2061 <https://github.com/Araq/Nim/issues/2061>`_)
- Fixed "Template with two stmt parameters segfaults compiler" - Fixed "Template with two stmt parameters segfaults compiler"
(`#2057 <https://github.com/Araq/Nim/issues/2057>`_) (`#2057 <https://github.com/Araq/Nim/issues/2057>`_)
- Fixed "`noSideEffect` not affected by `echo`" - Fixed "`noSideEffect` not affected by `echo`"
(`#2011 <https://github.com/Araq/Nim/issues/2011>`_) (`#2011 <https://github.com/Araq/Nim/issues/2011>`_)
- Fixed "Compiling with the cpp backend ignores --passc" - Fixed "Compiling with the cpp backend ignores --passc"
(`#1601 <https://github.com/Araq/Nim/issues/1601>`_) (`#1601 <https://github.com/Araq/Nim/issues/1601>`_)
- Fixed "Put untyped procedure parameters behind the experimental pragma" - Fixed "Put untyped procedure parameters behind the experimental pragma"
(`#1956 <https://github.com/Araq/Nim/issues/1956>`_) (`#1956 <https://github.com/Araq/Nim/issues/1956>`_)
- Fixed "generic regression" - Fixed "generic regression"
(`#2073 <https://github.com/Araq/Nim/issues/2073>`_) (`#2073 <https://github.com/Araq/Nim/issues/2073>`_)
- Fixed "generic regression" - Fixed "generic regression"
(`#2073 <https://github.com/Araq/Nim/issues/2073>`_) (`#2073 <https://github.com/Araq/Nim/issues/2073>`_)
- Fixed "Regression in template lookup with generics" - Fixed "Regression in template lookup with generics"
(`#2004 <https://github.com/Araq/Nim/issues/2004>`_) (`#2004 <https://github.com/Araq/Nim/issues/2004>`_)
- Fixed "GC's growObj is wrong for edge cases" - Fixed "GC's growObj is wrong for edge cases"
(`#2070 <https://github.com/Araq/Nim/issues/2070>`_) (`#2070 <https://github.com/Araq/Nim/issues/2070>`_)
- Fixed "Compiler internal error when creating an array out of a typeclass" - Fixed "Compiler internal error when creating an array out of a typeclass"
(`#1131 <https://github.com/Araq/Nim/issues/1131>`_) (`#1131 <https://github.com/Araq/Nim/issues/1131>`_)
- Fixed "GC's growObj is wrong for edge cases" - Fixed "GC's growObj is wrong for edge cases"
(`#2070 <https://github.com/Araq/Nim/issues/2070>`_) (`#2070 <https://github.com/Araq/Nim/issues/2070>`_)
- Fixed "Invalid Objective-C code generated when calling class method" - Fixed "Invalid Objective-C code generated when calling class method"
(`#2068 <https://github.com/Araq/Nim/issues/2068>`_) (`#2068 <https://github.com/Araq/Nim/issues/2068>`_)
- Fixed "walkDirRec Error" - Fixed "walkDirRec Error"
(`#2116 <https://github.com/Araq/Nim/issues/2116>`_) (`#2116 <https://github.com/Araq/Nim/issues/2116>`_)
- Fixed "Typo in code causes compiler SIGSEGV in evalAtCompileTime" - Fixed "Typo in code causes compiler SIGSEGV in evalAtCompileTime"
(`#2113 <https://github.com/Araq/Nim/issues/2113>`_) (`#2113 <https://github.com/Araq/Nim/issues/2113>`_)
- Fixed "Regression on exportc" - Fixed "Regression on exportc"
(`#2118 <https://github.com/Araq/Nim/issues/2118>`_) (`#2118 <https://github.com/Araq/Nim/issues/2118>`_)
- Fixed "Error message" - Fixed "Error message"
(`#2102 <https://github.com/Araq/Nim/issues/2102>`_) (`#2102 <https://github.com/Araq/Nim/issues/2102>`_)
- Fixed "hint[path] = off not working in nim.cfg" - Fixed "hint[path] = off not working in nim.cfg"
(`#2103 <https://github.com/Araq/Nim/issues/2103>`_) (`#2103 <https://github.com/Araq/Nim/issues/2103>`_)
- Fixed "compiler crashes when getting a tuple from a sequence of generic tuples" - Fixed "compiler crashes when getting a tuple from a sequence of generic tuples"
(`#2121 <https://github.com/Araq/Nim/issues/2121>`_) (`#2121 <https://github.com/Araq/Nim/issues/2121>`_)
- Fixed "nim check hangs with when" - Fixed "nim check hangs with when"
(`#2123 <https://github.com/Araq/Nim/issues/2123>`_) (`#2123 <https://github.com/Araq/Nim/issues/2123>`_)
- Fixed "static[T] param in nested type resolve/caching issue" - Fixed "static[T] param in nested type resolve/caching issue"
(`#2125 <https://github.com/Araq/Nim/issues/2125>`_) (`#2125 <https://github.com/Araq/Nim/issues/2125>`_)
- Fixed "repr should display ``\0``" - Fixed "repr should display ``\0``"
(`#2124 <https://github.com/Araq/Nim/issues/2124>`_) (`#2124 <https://github.com/Araq/Nim/issues/2124>`_)
- Fixed "'nim check' never ends in case of recursive dependency " - Fixed "'nim check' never ends in case of recursive dependency "
(`#2051 <https://github.com/Araq/Nim/issues/2051>`_) (`#2051 <https://github.com/Araq/Nim/issues/2051>`_)
- Fixed "From macros: Error: unhandled exception: sons is not accessible" - Fixed "From macros: Error: unhandled exception: sons is not accessible"
(`#2167 <https://github.com/Araq/Nim/issues/2167>`_) (`#2167 <https://github.com/Araq/Nim/issues/2167>`_)
- Fixed "`fieldPairs` doesn't work inside templates" - Fixed "`fieldPairs` doesn't work inside templates"
(`#1902 <https://github.com/Araq/Nim/issues/1902>`_) (`#1902 <https://github.com/Araq/Nim/issues/1902>`_)
- Fixed "fields iterator misbehavior on break statement" - Fixed "fields iterator misbehavior on break statement"
(`#2134 <https://github.com/Araq/Nim/issues/2134>`_) (`#2134 <https://github.com/Araq/Nim/issues/2134>`_)
- Fixed "Fix for compiler not building anymore since #c3244ef1ff" - Fixed "Fix for compiler not building anymore since #c3244ef1ff"
(`#2193 <https://github.com/Araq/Nim/issues/2193>`_) (`#2193 <https://github.com/Araq/Nim/issues/2193>`_)
- Fixed "JSON parser fails in cpp output mode" - Fixed "JSON parser fails in cpp output mode"
(`#2199 <https://github.com/Araq/Nim/issues/2199>`_) (`#2199 <https://github.com/Araq/Nim/issues/2199>`_)
- Fixed "macros.getType mishandles void return" - Fixed "macros.getType mishandles void return"
(`#2211 <https://github.com/Araq/Nim/issues/2211>`_) (`#2211 <https://github.com/Araq/Nim/issues/2211>`_)
- Fixed "Regression involving templates instantiated within generics" - Fixed "Regression involving templates instantiated within generics"
(`#2215 <https://github.com/Araq/Nim/issues/2215>`_) (`#2215 <https://github.com/Araq/Nim/issues/2215>`_)
- Fixed ""Error: invalid type" for 'not nil' on generic type." - Fixed ""Error: invalid type" for 'not nil' on generic type."
(`#2216 <https://github.com/Araq/Nim/issues/2216>`_) (`#2216 <https://github.com/Araq/Nim/issues/2216>`_)
- Fixed "--threads:on breaks async" - Fixed "--threads:on breaks async"
(`#2074 <https://github.com/Araq/Nim/issues/2074>`_) (`#2074 <https://github.com/Araq/Nim/issues/2074>`_)
- Fixed "Type mismatch not always caught, can generate bad code for C backend." - Fixed "Type mismatch not always caught, can generate bad code for C backend."
(`#2169 <https://github.com/Araq/Nim/issues/2169>`_) (`#2169 <https://github.com/Araq/Nim/issues/2169>`_)
- Fixed "Failed C compilation when storing proc to own type in object" - Fixed "Failed C compilation when storing proc to own type in object"
(`#2233 <https://github.com/Araq/Nim/issues/2233>`_) (`#2233 <https://github.com/Araq/Nim/issues/2233>`_)
- Fixed "Unknown line/column number in constant declaration type conversion error" - Fixed "Unknown line/column number in constant declaration type conversion error"
(`#2252 <https://github.com/Araq/Nim/issues/2252>`_) (`#2252 <https://github.com/Araq/Nim/issues/2252>`_)
- Fixed "Adding {.compile.} fails if nimcache already exists." - Fixed "Adding {.compile.} fails if nimcache already exists."
(`#2247 <https://github.com/Araq/Nim/issues/2247>`_) (`#2247 <https://github.com/Araq/Nim/issues/2247>`_)
- Fixed "Two different type names generated for a single type (C backend)" - Fixed "Two different type names generated for a single type (C backend)"
(`#2250 <https://github.com/Araq/Nim/issues/2250>`_) (`#2250 <https://github.com/Araq/Nim/issues/2250>`_)
- Fixed "Ambigous call when it should not be" - Fixed "Ambigous call when it should not be"
(`#2229 <https://github.com/Araq/Nim/issues/2229>`_) (`#2229 <https://github.com/Araq/Nim/issues/2229>`_)
- Fixed "Make sure we can load root urls" - Fixed "Make sure we can load root urls"
(`#2227 <https://github.com/Araq/Nim/issues/2227>`_) (`#2227 <https://github.com/Araq/Nim/issues/2227>`_)
- Fixed "Failure to slice a string with an int subrange type" - Fixed "Failure to slice a string with an int subrange type"
(`#794 <https://github.com/Araq/Nim/issues/794>`_) (`#794 <https://github.com/Araq/Nim/issues/794>`_)
- Fixed "documentation error" - Fixed "documentation error"
(`#2205 <https://github.com/Araq/Nim/issues/2205>`_) (`#2205 <https://github.com/Araq/Nim/issues/2205>`_)
- Fixed "Code growth when using `const`" - Fixed "Code growth when using `const`"
(`#1940 <https://github.com/Araq/Nim/issues/1940>`_) (`#1940 <https://github.com/Araq/Nim/issues/1940>`_)
- Fixed "Instances of generic types confuse overload resolution" - Fixed "Instances of generic types confuse overload resolution"
(`#2220 <https://github.com/Araq/Nim/issues/2220>`_) (`#2220 <https://github.com/Araq/Nim/issues/2220>`_)
- Fixed "Compiler error when initializing sdl2's EventType" - Fixed "Compiler error when initializing sdl2's EventType"
(`#2316 <https://github.com/Araq/Nim/issues/2316>`_) (`#2316 <https://github.com/Araq/Nim/issues/2316>`_)
- Fixed "Parallel disjoint checking can't handle `<`, `items`, or arrays" - Fixed "Parallel disjoint checking can't handle `<`, `items`, or arrays"
(`#2287 <https://github.com/Araq/Nim/issues/2287>`_) (`#2287 <https://github.com/Araq/Nim/issues/2287>`_)
- Fixed "Strings aren't copied in parallel loop" - Fixed "Strings aren't copied in parallel loop"
(`#2286 <https://github.com/Araq/Nim/issues/2286>`_) (`#2286 <https://github.com/Araq/Nim/issues/2286>`_)
- Fixed "JavaScript compiler crash with tables" - Fixed "JavaScript compiler crash with tables"
(`#2298 <https://github.com/Araq/Nim/issues/2298>`_) (`#2298 <https://github.com/Araq/Nim/issues/2298>`_)
- Fixed "Range checker too restrictive" - Fixed "Range checker too restrictive"
(`#1845 <https://github.com/Araq/Nim/issues/1845>`_) (`#1845 <https://github.com/Araq/Nim/issues/1845>`_)
- Fixed "Failure to slice a string with an int subrange type" - Fixed "Failure to slice a string with an int subrange type"
(`#794 <https://github.com/Araq/Nim/issues/794>`_) (`#794 <https://github.com/Araq/Nim/issues/794>`_)
- Fixed "Remind user when compiling in debug mode" - Fixed "Remind user when compiling in debug mode"
(`#1868 <https://github.com/Araq/Nim/issues/1868>`_) (`#1868 <https://github.com/Araq/Nim/issues/1868>`_)
- Fixed "Compiler user guide has jumbled options/commands." - Fixed "Compiler user guide has jumbled options/commands."
(`#1819 <https://github.com/Araq/Nim/issues/1819>`_) (`#1819 <https://github.com/Araq/Nim/issues/1819>`_)
- Fixed "using `method`: 1 in a objects constructor fails when compiling" - Fixed "using `method`: 1 in a objects constructor fails when compiling"
(`#1791 <https://github.com/Araq/Nim/issues/1791>`_) (`#1791 <https://github.com/Araq/Nim/issues/1791>`_)
2014-12-29 Version 0.10.2 released 2014-12-29 Version 0.10.2 released
================================== ==================================

View file

@ -1,13 +1,13 @@
<a class="news" href="news.html#Z2015-04-30-version-0-11-0-released">
<h4>Apr 30, 2015</h4>
<p>Nim version 0.11.0 has been released!</p>
</a>
<a class="news" href="news.html#Z2014-12-29-version-0-10-2-released"> <a class="news" href="news.html#Z2014-12-29-version-0-10-2-released">
<h4>Dec 29, 2014</h4> <h4>Dec 29, 2014</h4>
<p>Nim version 0.10.2 has been released!</p> <p>Nim version 0.10.2 has been released!</p>
</a> </a>
<a class="news" href="news.html#Z2014-12-09-new-website-design">
<h4>Dec 9, 2014</h4>
<p>The new website design and forum are now online!</p>
</a>
<a class="news" href="news.html#Z2014-02-11-nimrod-featured-in-dr-dobb-s-journal"> <a class="news" href="news.html#Z2014-02-11-nimrod-featured-in-dr-dobb-s-journal">
<h4>Feb 11, 2014</h4> <h4>Feb 11, 2014</h4>
<p>Nimrod featured in Dr. Dobb's Journal</p> <p>Nimrod featured in Dr. Dobb's Journal</p>