diff --git a/compiler/installer.ini b/compiler/installer.ini index 12a8e702de..d5ff52c5d9 100644 --- a/compiler/installer.ini +++ b/compiler/installer.ini @@ -126,12 +126,108 @@ Files: "examples/*.txt" Files: "examples/*.cfg" 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] Files: "bin/nim.exe" -Files: "bin/nim_debug.exe" Files: "bin/c2nim.exe" Files: "bin/nimgrep.exe" +Files: "bin/nimsuggest.exe" +Files: "bin/nimble.exe" +Files: "bin/*.dll" Files: "dist/*.dll" 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 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"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 [UnixBin] diff --git a/koch.nim b/koch.nim index d760a5bc41..142aa89f17 100644 --- a/koch.nim +++ b/koch.nim @@ -119,7 +119,7 @@ proc buildTool(toolname, args: string) = proc nsis(args: string) = # make sure we have generated the niminst executables: buildTool("tools/niminst/niminst", args) - buildTool("tools/nimgrep", args) + #buildTool("tools/nimgrep", args) # produce 'nim_debug.exe': exec "nim c compiler" / "nim.nim" copyExe("compiler/nim".exe, "bin/nim_debug".exe) diff --git a/lib/system.nim b/lib/system.nim index 85f1350d7f..33eee42f05 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -1532,10 +1532,10 @@ const NimMajor*: int = 0 ## is the major number of Nim's version. - NimMinor*: int = 10 + NimMinor*: int = 11 ## is the minor number of Nim's version. - NimPatch*: int = 3 + NimPatch*: int = 0 ## is the patch number of Nim's version. NimVersion*: string = $NimMajor & "." & $NimMinor & "." & $NimPatch diff --git a/tools/niminst/niminst.nim b/tools/niminst/niminst.nim index ee81b64259..f0ae45484f 100644 --- a/tools/niminst/niminst.nim +++ b/tools/niminst/niminst.nim @@ -593,8 +593,9 @@ proc targzDist(c: var ConfigData) = let oldDir = getCurrentDir() setCurrentDir(tmpDir) try: - if execShellCmd("7z a -ttar $1.tar $1" % proj) != 0 or - execShellCmd("7z a -tgzip $1.tar.gz $1.tar" % proj) != 0: + #if execShellCmd("7z a -ttar $1.tar $1" % proj) != 0 or + # 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") finally: setCurrentDir(oldDir) diff --git a/tools/niminst/nsis.tmpl b/tools/niminst/nsis.tmpl index c21bfb9d59..843a8cf440 100644 --- a/tools/niminst/nsis.tmpl +++ b/tools/niminst/nsis.tmpl @@ -1,5 +1,5 @@ #! stdtmpl(subsChar='?') | standard -#proc generateNsisSetup(c: ConfigData): string = +#proc generateNsisSetup(c: ConfigData): string = # result = "; NSIS script generated by niminst\n" & # "; To regenerate run ``niminst nsis`` or ``koch nsis``\n" @@ -35,8 +35,8 @@ ; Default installation folder ; 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 InstallDirRegKey HKCU "Software\c.name\c.version" "" @@ -86,14 +86,14 @@ !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH - + ; Setup the uninstaller pages !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES - + ;-------------------------------- ;Languages - + !insertmacro MUI_LANGUAGE "English" ;-------------------------------- @@ -104,7 +104,7 @@ ; Nim binary. Section "Core Files" CoreSection ; This is a mandotory section - SectionIn RO + SectionIn RO ; Output files to the base installation directory SetOutPath "$INSTDIR" @@ -164,7 +164,7 @@ ; The downloadable sections. These sections are automatically generated by ; niminst and the template filters. - #var i = 0 + #var i = 0 #for download in c.downloads: # inc i # let d = download.split('|') @@ -207,7 +207,7 @@ CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\?{e}.lnk" "$INSTDIR\?dir\?{startMenuEntry.toWin}" !insertmacro MUI_STARTMENU_WRITE_END # end if - + ignore: SectionEnd #end diff --git a/web/download.txt b/web/download.txt index 3d47467f23..44f7c866a8 100644 --- a/web/download.txt +++ b/web/download.txt @@ -13,8 +13,8 @@ Binaries -------- Unfortunately for now we only provide builds for Windows. -* 32 bit: `nim-0.10.2_x32.exe `_ -* 64 bit: `nim-0.10.2_x64.exe `_ +* 32 bit: `nim-0.11.0_x32.exe `_ +* 64 bit: `nim-0.11.0_x64.exe `_ 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. -Download `nim-0.10.2.zip `_, extract it and follow -these instructions: +Download `nim-0.11.0.zip `_, extract it and +follow these instructions: * sh build.sh * Add ``$your_install_dir/bin`` to your PATH. diff --git a/web/news.txt b/web/news.txt index 6cb92b5811..5f3e65c63d 100644 --- a/web/news.txt +++ b/web/news.txt @@ -2,349 +2,370 @@ 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 - templates though that used to rely on the fact that they are not. - (Bug #1915.) This means this doesn't compile anymore: +The 1.0 release is expected by the end of this year. Rumors say it will be in +summer 2015. What's left: - .. code-block:: nim - - template doIt(body: stmt) {.immediate.} = - # this used to inject the 'str' parameter: - proc res(str: string) = - body - - doIt: - echo str # Error: undeclared identifier: 'str' - - Declare the ``doIt`` template as ``immediate, dirty`` to get the old - behaviour. - - 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 - names exist for the tuple type, they are checked. - - ``logging.level`` and ``logging.handlers`` are no longer exported. - ``addHandler``, ``getHandlers``, ``setLogFilter`` and ``getLogFilter`` - should be used instead. - - ``nim idetools`` has been replaced by a separate tool `nimsuggest`_. - - *arrow like* operators are not right associative anymore. - - *arrow like* operators are now required to end with either ``->``, ``~>`` or - ``=>``, not just ``>``. Examples of operators still considered arrow like: - ``->``, ``==>``, ``+=>``. On the other hand, the following operators are now - considered regular operators again: ``|>``, ``-+>``, etc. - - Typeless parameters are now only allowed in templates and macros. The old - way turned out to be too error-prone. - - The 'addr' and 'type' operators are now parsed as unary function - 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 - structure; for immediate macro parameters ``nkCall('addr', 'x')`` is - produced instead of ``nkAddr('x')``. - - ``concept`` is now a keyword and is used instead of ``generic``. - - The ``inc``, ``dec``, ``+=``, ``-=`` builtins now produce OverflowError - exceptions. This means code like the following: - - .. code-block:: nim - var x = low(T) - while x <= high(T): - echo x - inc x - - Needs to be replaced by something like this: - - .. code-block:: nim - var x = low(T).int - while x <= high(T).int: - echo x.T - inc x - - - **Negative indexing for slicing does not work anymore!** Instead - of ``a[0.. -1]`` you can - use ``a[0.. ^1]``. This also works with accessing a single - element ``a[^1]``. Note that we cannot detect this reliably as it is - determined at **runtime** whether negative indexing is used! - ``a[0.. -1]`` now produces the empty string/sequence. - - The compiler now warns about code like ``foo +=1`` which uses inconsistent - spacing around binary operators. Later versions of the language will parse - these as unary operators instead so that ``echo $foo`` finally can do what - people expect it to do. - - ``system.untyped`` and ``system.typed`` have been introduced as aliases - 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 - new names. - - 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 - 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 - at the start and the end of the iterator. - - Language Additions - ------------------ - - - For empty ``case object`` branches ``discard`` can finally be used instead - of ``nil``. - - Automatic dereferencing is now done for the first argument of a routine - call if overloading resolution produces no match otherwise. This feature - has to be enabled with the `experimental`_ pragma. - - Objects that do not use inheritance nor ``case`` can be put into ``const`` - sections. This means that finally this is possible and produces rather - nice code: - - .. code-block:: nim - import tables - - const - foo = {"ah": "finally", "this": "is", "possible.": "nice!"}.toTable() +* 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. - - Ordinary parameters can follow after a varargs parameter. This means the - following is finally accepted by the compiler: - .. code-block:: nim - template takesBlock(a, b: int, x: varargs[expr]; blck: stmt) = - blck - echo a, b +Changes affecting backwards compatibility +----------------------------------------- - takesBlock 1, 2, "some", 0.90, "random stuff": - echo "yay" +- Parameter names are finally properly ``gensym``'ed. This can break + templates though that used to rely on the fact that they are not. + (Bug #1915.) This means this doesn't compile anymore: - - Overloading by 'var T' is now finally possible: +.. code-block:: nim - .. code-block:: nim - proc varOrConst(x: var int) = echo "var" - proc varOrConst(x: int) = echo "const" + template doIt(body: stmt) {.immediate.} = + # this used to inject the 'str' parameter: + proc res(str: string) = + body - var x: int - varOrConst(x) # "var" - varOrConst(45) # "const" + doIt: + echo str # Error: undeclared identifier: 'str' - - Array and seq indexing can now use the builtin ``^`` operator to access - things from backwards: ``a[^1]`` is like Python's ``a[-1]``. - - A first version of the specification and implementation of the overloading - of the assignment operator has arrived! - - ``system.len`` for strings and sequences now returns 0 for nil. + Declare the ``doIt`` template as ``immediate, dirty`` to get the old + behaviour. +- 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 + names exist for the tuple type, they are checked. +- ``logging.level`` and ``logging.handlers`` are no longer exported. + ``addHandler``, ``getHandlers``, ``setLogFilter`` and ``getLogFilter`` + should be used instead. +- ``nim idetools`` has been replaced by a separate tool `nimsuggest`_. +- *arrow like* operators are not right associative anymore. +- *arrow like* operators are now required to end with either ``->``, ``~>`` or + ``=>``, not just ``>``. Examples of operators still considered arrow like: + ``->``, ``==>``, ``+=>``. On the other hand, the following operators are now + considered regular operators again: ``|>``, ``-+>``, etc. +- Typeless parameters are now only allowed in templates and macros. The old + way turned out to be too error-prone. +- The 'addr' and 'type' operators are now parsed as unary function + 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 + structure; for immediate macro parameters ``nkCall('addr', 'x')`` is + produced instead of ``nkAddr('x')``. +- ``concept`` is now a keyword and is used instead of ``generic``. +- The ``inc``, ``dec``, ``+=``, ``-=`` builtins now produce OverflowError + exceptions. This means code like the following: - - 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 - operators can be wrapped directly. See `this `_ - for more information. +.. code-block:: nim + var x = low(T) + while x <= high(T): + echo x + inc x + +Needs to be replaced by something like this: + +.. code-block:: nim + var x = low(T).int + while x <= high(T).int: + echo x.T + inc x + +- **Negative indexing for slicing does not work anymore!** Instead + of ``a[0.. -1]`` you can + use ``a[0.. ^1]``. This also works with accessing a single + element ``a[^1]``. Note that we cannot detect this reliably as it is + determined at **runtime** whether negative indexing is used! + ``a[0.. -1]`` now produces the empty string/sequence. +- The compiler now warns about code like ``foo +=1`` which uses inconsistent + spacing around binary operators. Later versions of the language will parse + these as unary operators instead so that ``echo $foo`` finally can do what + people expect it to do. +- ``system.untyped`` and ``system.typed`` have been introduced as aliases + 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 + new names. +- 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 + 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 + at the start and the end of the iterator. + +Language Additions +------------------ + +- For empty ``case object`` branches ``discard`` can finally be used instead + of ``nil``. +- Automatic dereferencing is now done for the first argument of a routine + call if overloading resolution produces no match otherwise. This feature + has to be enabled with the `experimental`_ pragma. +- Objects that do not use inheritance nor ``case`` can be put into ``const`` + sections. This means that finally this is possible and produces rather + nice code: + +.. code-block:: nim + import tables + + const + foo = {"ah": "finally", "this": "is", "possible.": "nice!"}.toTable() - Library additions - ----------------- +- Ordinary parameters can follow after a varargs parameter. This means the + following is finally accepted by the compiler: - - ``reversed`` proc added to the ``unicode`` module. - - Added multipart param to httpclient's ``post`` and ``postContent`` together - with a ``newMultipartData`` proc. - - Added `%*` operator for JSON. - - The compiler is now available as Nimble package for c2nim. - - Added ``..^`` and ``..<`` templates to system so that the rather annoying - space between ``.. <`` and ``.. ^`` is not necessary anymore. - - Added ``system.xlen`` for strings and sequences to get back the old ``len`` - operation that doesn't check for ``nil`` for efficiency. +.. code-block:: nim + template takesBlock(a, b: int, x: varargs[expr]; blck: stmt) = + blck + echo a, b + + takesBlock 1, 2, "some", 0.90, "random stuff": + echo "yay" + +- Overloading by 'var T' is now finally possible: + +.. code-block:: nim + proc varOrConst(x: var int) = echo "var" + proc varOrConst(x: int) = echo "const" + + var x: int + varOrConst(x) # "var" + varOrConst(45) # "const" + +- Array and seq indexing can now use the builtin ``^`` operator to access + things from backwards: ``a[^1]`` is like Python's ``a[-1]``. +- A first version of the specification and implementation of the overloading + of the assignment operator has arrived! +- ``system.len`` for strings and sequences now returns 0 for nil. + +- A single underscore can now be used to discard values when unpacking tuples: + +.. code-block:: nim + let (path, _, _) = os.splitFile("path/file.ext") - Bugfixes - -------- +- ``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 `_ + for more information. + + +Library additions +----------------- + +- ``reversed`` proc added to the ``unicode`` module. +- Added multipart param to httpclient's ``post`` and ``postContent`` together + with a ``newMultipartData`` proc. +- Added `%*` operator for JSON. +- The compiler is now available as Nimble package for c2nim. +- Added ``..^`` and ``..<`` templates to system so that the rather annoying + space between ``.. <`` and ``.. ^`` is not necessary anymore. +- Added ``system.xlen`` for strings and sequences to get back the old ``len`` + operation that doesn't check for ``nil`` for efficiency. + + +Bugfixes +-------- + +- Fixed internal compiler error when using ``char()`` in an echo call + (`#1788 `_). +- Fixed Windows cross-compilation on Linux. +- Overload resolution now works for types distinguished only by a + ``static[int]`` param + (`#1056 `_). +- Other fixes relating to generic types and static params. +- Fixed some compiler crashes with unnamed tuples + (`#1774 `_). +- Fixed ``channels.tryRecv`` blocking + (`#1816 `_). +- Fixed generic instantiation errors with ``typedesc`` + (`#419 `_). +- Fixed generic regression where the compiler no longer detected constant + expressions properly (`#544 `_). +- Fixed internal error with generic proc using ``static[T]`` in a specific + way (`#1049 `_). +- More fixes relating to generics (`#1820 `_, + `#1050 `_, + `#1859 `_, + `#1858 `_). +- Fixed httpclient to properly encode queries. +- Many fixes to the ``uri`` module. +- Async sockets are now closed on error. +- Fixes to httpclient's handling of multipart data. +- Fixed GC segfaults with asynchronous sockets + (`#1796 `_). +- Added more versions to openssl's DLL version list + (`076f993 `_). +- Fixed shallow copy in iterators being broken + (`#1803 `_). +- ``nil`` can now be inserted into tables with the ``db_sqlite`` module + (`#1866 `_). +- Fixed "Incorrect assembler generated" + (`#1907 `_) +- Fixed "Expression templates that define macros are unusable in some contexts" + (`#1903 `_) +- Fixed "a second level generic subclass causes the compiler to crash" + (`#1919 `_) +- Fixed "nim 0.10.2 generates invalid AsyncHttpClient C code for MSVC " + (`#1901 `_) +- Fixed "1 shl n produces wrong C code" + (`#1928 `_) +- Fixed "Internal error on tuple yield" + (`#1838 `_) +- Fixed "ICE with template" + (`#1915 `_) +- Fixed "include the tool directory in the installer as it is required by koch" + (`#1947 `_) +- Fixed "Can't compile if file location contains spaces on Windows" + (`#1955 `_) +- Fixed "List comprehension macro only supports infix checks as guards" + (`#1920 `_) +- Fixed "wrong field names of compatible tuples in generic types" + (`#1910 `_) +- Fixed "Macros within templates no longer work as expected" + (`#1944 `_) +- Fixed "Compiling for Standalone AVR broken in 0.10.2" + (`#1964 `_) +- Fixed "Compiling for Standalone AVR broken in 0.10.2" + (`#1964 `_) +- Fixed "Code generation for mitems with tuple elements" + (`#1833 `_) +- Fixed "httpclient.HttpMethod should not be an enum" + (`#1962 `_) +- Fixed "terminal / eraseScreen() throws an OverflowError" + (`#1906 `_) +- Fixed "setControlCHook(nil) disables registered quit procs" + (`#1546 `_) +- Fixed "Unexpected idetools behaviour" + (`#325 `_) +- Fixed "Unused lifted lambda does not compile" + (`#1642 `_) +- Fixed "'low' and 'high' don't work with cstring asguments" + (`#2030 `_) +- Fixed "Converting to int does not round in JS backend" + (`#1959 `_) +- Fixed "Internal error genRecordField 2 when adding region to pointer." + (`#2039 `_) +- Fixed "Macros fail to compile when compiled with --os:standalone" + (`#2041 `_) +- Fixed "Reading from {.compileTime.} variables can cause code generation to fail" + (`#2022 `_) +- Fixed "Passing overloaded symbols to templates fails inside generic procedures" + (`#1988 `_) +- Fixed "Compiling iterator with object assignment in release mode causes "var not init"" + (`#2023 `_) +- Fixed "calling a large number of macros doing some computation fails" + (`#1989 `_) +- Fixed "Can't get Koch to install nim under Windows" + (`#2061 `_) +- Fixed "Template with two stmt parameters segfaults compiler" + (`#2057 `_) +- Fixed "`noSideEffect` not affected by `echo`" + (`#2011 `_) +- Fixed "Compiling with the cpp backend ignores --passc" + (`#1601 `_) +- Fixed "Put untyped procedure parameters behind the experimental pragma" + (`#1956 `_) +- Fixed "generic regression" + (`#2073 `_) +- Fixed "generic regression" + (`#2073 `_) +- Fixed "Regression in template lookup with generics" + (`#2004 `_) +- Fixed "GC's growObj is wrong for edge cases" + (`#2070 `_) +- Fixed "Compiler internal error when creating an array out of a typeclass" + (`#1131 `_) +- Fixed "GC's growObj is wrong for edge cases" + (`#2070 `_) +- Fixed "Invalid Objective-C code generated when calling class method" + (`#2068 `_) +- Fixed "walkDirRec Error" + (`#2116 `_) +- Fixed "Typo in code causes compiler SIGSEGV in evalAtCompileTime" + (`#2113 `_) +- Fixed "Regression on exportc" + (`#2118 `_) +- Fixed "Error message" + (`#2102 `_) +- Fixed "hint[path] = off not working in nim.cfg" + (`#2103 `_) +- Fixed "compiler crashes when getting a tuple from a sequence of generic tuples" + (`#2121 `_) +- Fixed "nim check hangs with when" + (`#2123 `_) +- Fixed "static[T] param in nested type resolve/caching issue" + (`#2125 `_) +- Fixed "repr should display ``\0``" + (`#2124 `_) +- Fixed "'nim check' never ends in case of recursive dependency " + (`#2051 `_) +- Fixed "From macros: Error: unhandled exception: sons is not accessible" + (`#2167 `_) +- Fixed "`fieldPairs` doesn't work inside templates" + (`#1902 `_) +- Fixed "fields iterator misbehavior on break statement" + (`#2134 `_) +- Fixed "Fix for compiler not building anymore since #c3244ef1ff" + (`#2193 `_) +- Fixed "JSON parser fails in cpp output mode" + (`#2199 `_) +- Fixed "macros.getType mishandles void return" + (`#2211 `_) +- Fixed "Regression involving templates instantiated within generics" + (`#2215 `_) +- Fixed ""Error: invalid type" for 'not nil' on generic type." + (`#2216 `_) +- Fixed "--threads:on breaks async" + (`#2074 `_) +- Fixed "Type mismatch not always caught, can generate bad code for C backend." + (`#2169 `_) +- Fixed "Failed C compilation when storing proc to own type in object" + (`#2233 `_) +- Fixed "Unknown line/column number in constant declaration type conversion error" + (`#2252 `_) +- Fixed "Adding {.compile.} fails if nimcache already exists." + (`#2247 `_) +- Fixed "Two different type names generated for a single type (C backend)" + (`#2250 `_) +- Fixed "Ambigous call when it should not be" + (`#2229 `_) +- Fixed "Make sure we can load root urls" + (`#2227 `_) +- Fixed "Failure to slice a string with an int subrange type" + (`#794 `_) +- Fixed "documentation error" + (`#2205 `_) +- Fixed "Code growth when using `const`" + (`#1940 `_) +- Fixed "Instances of generic types confuse overload resolution" + (`#2220 `_) +- Fixed "Compiler error when initializing sdl2's EventType" + (`#2316 `_) +- Fixed "Parallel disjoint checking can't handle `<`, `items`, or arrays" + (`#2287 `_) +- Fixed "Strings aren't copied in parallel loop" + (`#2286 `_) +- Fixed "JavaScript compiler crash with tables" + (`#2298 `_) +- Fixed "Range checker too restrictive" + (`#1845 `_) +- Fixed "Failure to slice a string with an int subrange type" + (`#794 `_) +- Fixed "Remind user when compiling in debug mode" + (`#1868 `_) +- Fixed "Compiler user guide has jumbled options/commands." + (`#1819 `_) +- Fixed "using `method`: 1 in a objects constructor fails when compiling" + (`#1791 `_) - - Fixed internal compiler error when using ``char()`` in an echo call - (`#1788 `_). - - Fixed Windows cross-compilation on Linux. - - Overload resolution now works for types distinguished only by a - ``static[int]`` param - (`#1056 `_). - - Other fixes relating to generic types and static params. - - Fixed some compiler crashes with unnamed tuples - (`#1774 `_). - - Fixed ``channels.tryRecv`` blocking - (`#1816 `_). - - Fixed generic instantiation errors with ``typedesc`` - (`#419 `_). - - Fixed generic regression where the compiler no longer detected constant - expressions properly (`#544 `_). - - Fixed internal error with generic proc using ``static[T]`` in a specific - way (`#1049 `_). - - More fixes relating to generics - (`#1820 `_, - `#1050 `_, - `#1859 `_, - `#1858 `_). - - Fixed httpclient to properly encode queries. - - Many fixes to the ``uri`` module. - - Async sockets are now closed on error. - - Fixes to httpclient's handling of multipart data. - - Fixed GC segfaults with asynchronous sockets - (`#1796 `_). - - Added more versions to openssl's DLL version list - (`076f993 `_). - - Fixed shallow copy in iterators being broken - (`#1803 `_). - - ``nil`` can now be inserted into tables with the ``db_sqlite`` module - (`#1866 `_). - - Fixed "Incorrect assembler generated" - (`#1907 `_) - - Fixed "Expression templates that define macros are unusable in some contexts" - (`#1903 `_) - - Fixed "a second level generic subclass causes the compiler to crash" - (`#1919 `_) - - Fixed "nim 0.10.2 generates invalid AsyncHttpClient C code for MSVC " - (`#1901 `_) - - Fixed "1 shl n produces wrong C code" - (`#1928 `_) - - Fixed "Internal error on tuple yield" - (`#1838 `_) - - Fixed "ICE with template" - (`#1915 `_) - - Fixed "include the tool directory in the installer as it is required by koch" - (`#1947 `_) - - Fixed "Can't compile if file location contains spaces on Windows" - (`#1955 `_) - - Fixed "List comprehension macro only supports infix checks as guards" - (`#1920 `_) - - Fixed "wrong field names of compatible tuples in generic types" - (`#1910 `_) - - Fixed "Macros within templates no longer work as expected" - (`#1944 `_) - - Fixed "Compiling for Standalone AVR broken in 0.10.2" - (`#1964 `_) - - Fixed "Compiling for Standalone AVR broken in 0.10.2" - (`#1964 `_) - - Fixed "Code generation for mitems with tuple elements" - (`#1833 `_) - - Fixed "httpclient.HttpMethod should not be an enum" - (`#1962 `_) - - Fixed "terminal / eraseScreen() throws an OverflowError" - (`#1906 `_) - - Fixed "setControlCHook(nil) disables registered quit procs" - (`#1546 `_) - - Fixed "Unexpected idetools behaviour" - (`#325 `_) - - Fixed "Unused lifted lambda does not compile" - (`#1642 `_) - - Fixed "'low' and 'high' don't work with cstring asguments" - (`#2030 `_) - - Fixed "Converting to int does not round in JS backend" - (`#1959 `_) - - Fixed "Internal error genRecordField 2 when adding region to pointer." - (`#2039 `_) - - Fixed "Macros fail to compile when compiled with --os:standalone" - (`#2041 `_) - - Fixed "Reading from {.compileTime.} variables can cause code generation to fail" - (`#2022 `_) - - Fixed "Passing overloaded symbols to templates fails inside generic procedures" - (`#1988 `_) - - Fixed "Compiling iterator with object assignment in release mode causes "var not init"" - (`#2023 `_) - - Fixed "calling a large number of macros doing some computation fails" - (`#1989 `_) - - Fixed "Can't get Koch to install nim under Windows" - (`#2061 `_) - - Fixed "Template with two stmt parameters segfaults compiler" - (`#2057 `_) - - Fixed "`noSideEffect` not affected by `echo`" - (`#2011 `_) - - Fixed "Compiling with the cpp backend ignores --passc" - (`#1601 `_) - - Fixed "Put untyped procedure parameters behind the experimental pragma" - (`#1956 `_) - - Fixed "generic regression" - (`#2073 `_) - - Fixed "generic regression" - (`#2073 `_) - - Fixed "Regression in template lookup with generics" - (`#2004 `_) - - Fixed "GC's growObj is wrong for edge cases" - (`#2070 `_) - - Fixed "Compiler internal error when creating an array out of a typeclass" - (`#1131 `_) - - Fixed "GC's growObj is wrong for edge cases" - (`#2070 `_) - - Fixed "Invalid Objective-C code generated when calling class method" - (`#2068 `_) - - Fixed "walkDirRec Error" - (`#2116 `_) - - Fixed "Typo in code causes compiler SIGSEGV in evalAtCompileTime" - (`#2113 `_) - - Fixed "Regression on exportc" - (`#2118 `_) - - Fixed "Error message" - (`#2102 `_) - - Fixed "hint[path] = off not working in nim.cfg" - (`#2103 `_) - - Fixed "compiler crashes when getting a tuple from a sequence of generic tuples" - (`#2121 `_) - - Fixed "nim check hangs with when" - (`#2123 `_) - - Fixed "static[T] param in nested type resolve/caching issue" - (`#2125 `_) - - Fixed "repr should display ``\0``" - (`#2124 `_) - - Fixed "'nim check' never ends in case of recursive dependency " - (`#2051 `_) - - Fixed "From macros: Error: unhandled exception: sons is not accessible" - (`#2167 `_) - - Fixed "`fieldPairs` doesn't work inside templates" - (`#1902 `_) - - Fixed "fields iterator misbehavior on break statement" - (`#2134 `_) - - Fixed "Fix for compiler not building anymore since #c3244ef1ff" - (`#2193 `_) - - Fixed "JSON parser fails in cpp output mode" - (`#2199 `_) - - Fixed "macros.getType mishandles void return" - (`#2211 `_) - - Fixed "Regression involving templates instantiated within generics" - (`#2215 `_) - - Fixed ""Error: invalid type" for 'not nil' on generic type." - (`#2216 `_) - - Fixed "--threads:on breaks async" - (`#2074 `_) - - Fixed "Type mismatch not always caught, can generate bad code for C backend." - (`#2169 `_) - - Fixed "Failed C compilation when storing proc to own type in object" - (`#2233 `_) - - Fixed "Unknown line/column number in constant declaration type conversion error" - (`#2252 `_) - - Fixed "Adding {.compile.} fails if nimcache already exists." - (`#2247 `_) - - Fixed "Two different type names generated for a single type (C backend)" - (`#2250 `_) - - Fixed "Ambigous call when it should not be" - (`#2229 `_) - - Fixed "Make sure we can load root urls" - (`#2227 `_) - - Fixed "Failure to slice a string with an int subrange type" - (`#794 `_) - - Fixed "documentation error" - (`#2205 `_) - - Fixed "Code growth when using `const`" - (`#1940 `_) - - Fixed "Instances of generic types confuse overload resolution" - (`#2220 `_) - - Fixed "Compiler error when initializing sdl2's EventType" - (`#2316 `_) - - Fixed "Parallel disjoint checking can't handle `<`, `items`, or arrays" - (`#2287 `_) - - Fixed "Strings aren't copied in parallel loop" - (`#2286 `_) - - Fixed "JavaScript compiler crash with tables" - (`#2298 `_) - - Fixed "Range checker too restrictive" - (`#1845 `_) - - Fixed "Failure to slice a string with an int subrange type" - (`#794 `_) - - Fixed "Remind user when compiling in debug mode" - (`#1868 `_) - - Fixed "Compiler user guide has jumbled options/commands." - (`#1819 `_) - - Fixed "using `method`: 1 in a objects constructor fails when compiling" - (`#1791 `_) 2014-12-29 Version 0.10.2 released ================================== diff --git a/web/ticker.txt b/web/ticker.txt index 724d29231c..7992465210 100644 --- a/web/ticker.txt +++ b/web/ticker.txt @@ -1,13 +1,13 @@ + +

Apr 30, 2015

+

Nim version 0.11.0 has been released!

+
+

Dec 29, 2014

Nim version 0.10.2 has been released!

- -

Dec 9, 2014

-

The new website design and forum are now online!

-
-

Feb 11, 2014

Nimrod featured in Dr. Dobb's Journal