summary refs log tree commit diff stats
path: root/changelog.md
diff options
context:
space:
mode:
Diffstat (limited to 'changelog.md')
-rw-r--r--changelog.md644
1 files changed, 1 insertions, 643 deletions
diff --git a/changelog.md b/changelog.md
index 3dab051d4..a26972372 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,663 +1,21 @@
-## v0.18.0 - 01/03/2018
+## v0.X.X - XX/XX/2018
 
 ### Changes affecting backwards compatibility
 
 #### Breaking changes in the standard library
 
-- The ``[]`` proc for strings now raises an ``IndexError`` exception when
-  the specified slice is out of bounds. See issue
-  [#6223](https://github.com/nim-lang/Nim/issues/6223) for more details.
-  You can use ``substr(str, start, finish)`` to get the old behaviour back,
-  see [this commit](https://github.com/nim-lang/nimbot/commit/98cc031a27ea89947daa7f0bb536bcf86462941f) for an example.
-
-- ``strutils.split`` and ``strutils.rsplit`` with an empty string and a
-  separator now returns that empty string.
-  See issue [#4377](https://github.com/nim-lang/Nim/issues/4377).
-
-- Arrays of char cannot be converted to ``cstring`` anymore, pointers to
-  arrays of char can! This means ``$`` for arrays can finally exist
-  in ``system.nim`` and do the right thing. This means ``$myArrayOfChar`` changed
-  its behaviour! Compile with ``-d:nimNoArrayToString`` to see where to fix your
-  code.
-
-- `reExtended` is no longer default for the `re` constructor in the `re`
-  module.
-
-- The behavior of ``$`` has been changed for all standard library collections. The
-  collection-to-string implementations now perform proper quoting and escaping of
-  strings and chars.
-
-- `newAsyncSocket` taking an `AsyncFD` now runs `setBlocking(false)` on the
-  fd.
-
-- ``mod`` and bitwise ``and`` do not produce ``range`` subtypes anymore. This
-  turned out to be more harmful than helpful and the language is simpler
-  without this special typing rule.
-
-- ``formatFloat``/``formatBiggestFloat`` now support formatting floats with zero
-  precision digits. The previous ``precision = 0`` behavior (default formatting)
-  is now available via ``precision = -1``.
-
-- Moved from stdlib into Nimble packages:
-  - [``basic2d``](https://github.com/nim-lang/basic2d)
-    _deprecated: use ``glm``, ``arraymancer``, ``neo``, or another package instead_
-  - [``basic3d``](https://github.com/nim-lang/basic3d)
-    _deprecated: use ``glm``, ``arraymancer``, ``neo``, or another package instead_
-  - [``gentabs``](https://github.com/lcrees/gentabs)
-  - [``libuv``](https://github.com/lcrees/libuv)
-  - [``numeric``](https://github.com/lcrees/polynumeric)
-  - [``poly``](https://github.com/lcrees/polynumeric)
-  - [``pdcurses``](https://github.com/lcrees/pdcurses)
-  - [``romans``](https://github.com/lcrees/romans)
-  - [``libsvm``](https://github.com/nim-lang/libsvm_legacy)
-  - [``joyent_http_parser``](https://github.com/nim-lang/joyent_http_parser)
-
-- Proc [toCountTable](https://nim-lang.org/docs/tables.html#toCountTable,openArray[A])
-  now produces a `CountTable` with values correspoding to the number of occurrences
-  of the key in the input. It used to produce a table with all values set to `1`.
-
-  Counting occurrences in a sequence used to be:
-
-  ```nim
-  let mySeq = @[1, 2, 1, 3, 1, 4]
-  var myCounter = initCountTable[int]()
-
-  for item in mySeq:
-    myCounter.inc item
-  ```
-
-  Now, you can simply do:
-
-  ```nim
-  let
-    mySeq = @[1, 2, 1, 3, 1, 4]
-    myCounter = mySeq.toCountTable()
-  ```
-
-- If you use ``--dynlibOverride:ssl`` with OpenSSL 1.0.x, you now have to
-  define ``openssl10`` symbol (``-d:openssl10``). By default OpenSSL 1.1.x is
-  assumed.
-
-- ``newNativeSocket`` is now named ``createNativeSocket``.
-
-- ``newAsyncNativeSocket`` is now named ``createAsyncNativeSocket``
-  and it no longer raises an OS error but returns an ``osInvalidSocket`` when
-  creation fails.
-
-- The ``securehash`` module is now deprecated. Instead import ``std / sha1``.
-
-- The ``readPasswordFromStdin`` proc has been moved from the ``rdstdin``
-  to the ``terminal`` module, thus it does not depend on linenoise anymore.
-
 #### Breaking changes in the compiler
 
-- ``\n`` is now only the single line feed character like in most
-  other programming languages. The new platform specific newline escape sequence is
-  written as ``\p``. This change only affects the Windows platform.
-
-- The overloading rules changed slightly so that constrained generics are
-  preferred over unconstrained generics. (Bug #6526)
-
-- We changed how array accesses "from backwards" like ``a[^1]`` or ``a[0..^1]`` are
-  implemented. These are now implemented purely in ``system.nim`` without compiler
-  support. There is a new "heterogenous" slice type ``system.HSlice`` that takes 2
-  generic parameters which can be ``BackwardsIndex`` indices. ``BackwardsIndex`` is
-  produced by ``system.^``.
-  This means if you overload ``[]`` or ``[]=`` you need to ensure they also work
-  with ``system.BackwardsIndex`` (if applicable for the accessors).
-
-- The parsing rules of ``if`` expressions were changed so that multiple
-  statements are allowed in the branches. We found few code examples that
-  now fail because of this change, but here is one:
-
-```nim
-t[ti] = if exp_negative: '-' else: '+'; inc(ti)
-```
-
-This now needs to be written as:
-
-```nim
-t[ti] = (if exp_negative: '-' else: '+'); inc(ti)
-```
-
-- The experimental overloading of the dot ``.`` operators now take
-  an ``untyped``` parameter as the field name, it used to be
-  a ``static[string]``. You can use ``when defined(nimNewDot)`` to make
-  your code work with both old and new Nim versions.
-  See [special-operators](https://nim-lang.org/docs/manual.html#special-operators)
-  for more information.
-
-- ``yield`` (or ``await`` which is mapped to ``yield``) never worked reliably
-  in an array, seq or object constructor and is now prevented at compile-time.
-
 ### Library additions
 
-- **Added ``sequtils.mapLiterals`` for easier construction of array and tuple literals.**
-
-- Added ``system.runnableExamples`` to make examples in Nim's documentation easier
-  to write and test. The examples are tested as the last step of
-  ``nim doc``.
-
-- Implemented ``getIoHandler`` proc in the ``asyncdispatch`` module that allows
-  you to retrieve the underlying IO Completion Port or ``Selector[AsyncData]``
-  object in the specified dispatcher.
-
-- For string formatting / interpolation a new module
-  called [strformat](https://nim-lang.org/docs/strformat.html) has been added
-  to the stdlib.
-
-- The `ReadyKey` type in the selectors module now contains an ``errorCode``
-  field to help distinguish between ``Event.Error`` events.
-
-- Implemented an `accept` proc that works on a `SocketHandle` in
-  ``nativesockets``.
-
-- Added ``algorithm.rotateLeft``.
-
-- Added ``typetraits.$`` as an alias for ``typetraits.name``.
-
-- Added ``system.getStackTraceEntries`` that allows you to access the stack
-  trace in a structured manner without string parsing.
-
-- Added ``parseutils.parseSaturatedNatural``.
-
-- Added ``macros.unpackVarargs``.
-
-- Added support for asynchronous programming for the JavaScript backend using
-  the `asyncjs` module.
-
-- Added true color support for some terminals. Example:
-```nim
-import colors, terminal
-
-const Nim = "Efficient and expressive programming."
-
-var
-  fg = colYellow
-  bg = colBlue
-  int = 1.0
-
-enableTrueColors()
-
-for i in 1..15:
-  styledEcho bgColor, bg, fgColor, fg, Nim, resetStyle
-  int -= 0.01
-  fg = intensity(fg, int)
-
-setForegroundColor colRed
-setBackgroundColor colGreen
-styledEcho "Red on Green.", resetStyle
-```
-
 ### Library changes
 
-- ``echo`` now works with strings that contain ``\0`` (the binary zero is not
-  shown) and ``nil`` strings are equal to empty strings.
-
-- JSON: Deprecated `getBVal`, `getFNum`, and `getNum` in favour of
-  `getBool`, `getFloat`, `getBiggestInt`. A new `getInt` procedure was also
-  added.
-
-- ``rationals.toRational`` now uses an algorithm based on continued fractions.
-  This means its results are more precise and it can't run into an infinite loop
-  anymore.
-
-- ``os.getEnv`` now takes an optional ``default`` parameter that tells ``getEnv``
-  what to return if the environment variable does not exist.
-
-- The ``random`` procs in ``random.nim`` have all been deprecated. Instead use
-  the new ``rand`` procs. The module now exports the state of the random
-  number generator as type ``Rand`` so multiple threads can easily use their
-  own random number generators that do not require locking. For more information
-  about this rename see issue [#6934](https://github.com/nim-lang/Nim/issues/6934)
-
-- ``writeStackTrace`` is now proclaimed to have no IO effect (even though it does)
-  so that it is more useful for debugging purposes.
-
-- ``db_mysql`` module: ``DbConn`` is now a ``distinct`` type that doesn't expose the
-  details of the underlying ``PMySQL`` type.
-
-- ``parseopt2`` is now deprecated, use ``parseopt`` instead.
-
 ### Language additions
 
-- It is now possible to forward declare object types so that mutually
-  recursive types can be created across module boundaries. See
-  [package level objects](https://nim-lang.org/docs/manual.html#package-level-objects)
-  for more information.
-
-- Added support for casting between integers of same bitsize in VM (compile time and nimscript).
-  This allows to, among other things, reinterpret signed integers as unsigned.
-
-- Custom pragmas are now supported using pragma ``pragma``, please see language
-  manual for details.
-
-- Standard library modules can now also be imported via the ``std`` pseudo-directory.
-  This is useful in order to distinguish between standard library and nimble package
-  imports:
-
-  ```nim
-  import std / [strutils, os, osproc]
-  import someNimblePackage / [strutils, os]
-  ```
-
 ### Language changes
 
-- The **unary** ``<`` is now deprecated, for ``.. <`` use ``..<`` for other usages
-  use the ``pred`` proc.
-
-- Bodies of ``for`` loops now get their own scope:
-
-```nim
-# now compiles:
-for i in 0..4:
-  let i = i + 1
-  echo i
-```
-
-- To make Nim even more robust the system iterators ``..`` and ``countup``
-  now only accept a single generic type ``T``. This means the following code
-  doesn't die with an "out of range" error anymore:
-
-```nim
-var b = 5.Natural
-var a = -5
-for i in a..b:
-  echo i
-```
-
-- ``atomic`` and ``generic`` are no longer keywords in Nim. ``generic`` used to be
-  an alias for ``concept``, ``atomic`` was not used for anything.
-
-- The memory manager now uses a variant of the TLSF algorithm that has much
-  better memory fragmentation behaviour. According
-  to [http://www.gii.upv.es/tlsf/](http://www.gii.upv.es/tlsf/) the maximum
-  fragmentation measured is lower than 25%. As a nice bonus ``alloc`` and
-  ``dealloc`` became O(1) operations.
-
-- The compiler is now more consistent in its treatment of ambiguous symbols:
-  Types that shadow procs and vice versa are marked as ambiguous (bug #6693).
-
-- codegenDecl pragma now works for the JavaScript backend. It returns an empty
-  string for function return type placeholders.
-
-- Extra semantic checks for procs with noreturn pragma: return type is not allowed,
-  statements after call to noreturn procs are no longer allowed.
-
-- Noreturn proc calls and raising exceptions branches are now skipped during common type
-  deduction in ``if`` and ``case`` expressions. The following code snippets now compile:
-  ```nim
-  import strutils
-  let str = "Y"
-  let a = case str:
-    of "Y": true
-    of "N": false
-    else: raise newException(ValueError, "Invalid boolean")
-  let b = case str:
-    of nil, "": raise newException(ValueError, "Invalid boolean")
-    elif str.startsWith("Y"): true
-    elif str.startsWith("N"): false
-    else: false
-  let c = if str == "Y": true
-    elif str == "N": false
-    else:
-      echo "invalid bool"
-      quit("this is the end")
-  ```
-
-- Pragmas now support call syntax, for example: ``{.exportc"myname".}`` and
-  ``{.exportc("myname").}``
-
-- The ``deprecated`` pragma now supports a user-definable warning message for procs.
-
-  ```nim
-  proc bar {.deprecated: "use foo instead".} =
-    return
-
-  bar()
-  ```
-
 ### Tool changes
 
-- The ``nim doc`` command is now an alias for ``nim doc2``, the second version of
-  the documentation generator. The old version 1 can still be accessed
-  via the new ``nim doc0`` command.
-
-- Nim's ``rst2html`` command now supports the testing of code snippets via an RST
-  extension that we called ``:test:``::
-
-  ```rst
-  .. code-block:: nim
-      :test:
-    # shows how the 'if' statement works
-    if true: echo "yes"
-  ```
-
 ### Compiler changes
 
 ### Bugfixes
-
-- Fixed "ReraiseError when using try/except within finally block"
-  ([#5871](https://github.com/nim-lang/Nim/issues/5871))
-- Fixed "Range type inference leads to counter-intuitive behvaiour"
-  ([#5854](https://github.com/nim-lang/Nim/issues/5854))
-- Fixed "JSON % operator can fail in extern procs with dynamic types"
-  ([#6385](https://github.com/nim-lang/Nim/issues/6385))
-- Fixed ""intVal is not accessible" in VM"
-  ([#6083](https://github.com/nim-lang/Nim/issues/6083))
-- Fixed "Add excl for OrderedSet"
-  ([#2467](https://github.com/nim-lang/Nim/issues/2467))
-- Fixed "newSeqOfCap actually doesn't reserve memory"
-  ([#6403](https://github.com/nim-lang/Nim/issues/6403))
-- Fixed "[Regression] Nim segfaults"
-  ([#6435](https://github.com/nim-lang/Nim/issues/6435))
-- Fixed "Seq assignment is slower than expected"
-  ([#6433](https://github.com/nim-lang/Nim/issues/6433))
-- Fixed "json module issues with empty dicts and lists"
-  ([#6438](https://github.com/nim-lang/Nim/issues/6438))
-- Fixed "mingw installed via finish.exe fails to link if Nim located in path with whitespace"
-  ([#6452](https://github.com/nim-lang/Nim/issues/6452))
-- Fixed "unittest.check does not perform short-circuit evaluation"
-  ([#5784](https://github.com/nim-lang/Nim/issues/5784))
-- Fixed "Error while concatenating an array of chars."
-  ([#5861](https://github.com/nim-lang/Nim/issues/5861))
-- Fixed "range initialization: [ProveInit] hint: Cannot prove that"
-  ([#6474](https://github.com/nim-lang/Nim/issues/6474))
-- Fixed "scanf can call procs with side-effects multiple times"
-  ([#6487](https://github.com/nim-lang/Nim/issues/6487))
-- Fixed "gcsafe detection problem"
-  ([#5620](https://github.com/nim-lang/Nim/issues/5620))
-- Fixed "C++ codegen: `mitems` generates invalid code."
-  ([#4910](https://github.com/nim-lang/Nim/issues/4910))
-- Fixed "strange runtime behavior on macOS"
-  ([#6496](https://github.com/nim-lang/Nim/issues/6496))
-- Fixed "stdtmpl: invalid indentation after a line ending in question mark"
-  ([#5070](https://github.com/nim-lang/Nim/issues/5070))
-- Fixed "Windows: NAN troubles on c backend"
-  ([#6511](https://github.com/nim-lang/Nim/issues/6511))
-- Fixed "lib/nim/system/cellsets.nim(33, 31) Error: type mismatch while attempting to compile for 16bit CPUs"
-  ([#3558](https://github.com/nim-lang/Nim/issues/3558))
-- Fixed "Can't compile dynlib with ``-d:useNimRtl`` and ``--threads:on``"
-  ([#5143](https://github.com/nim-lang/Nim/issues/5143))
-- Fixed "var s = @[0,1,2,...] can generate thousand of single assignments in C code"
-  ([#5007](https://github.com/nim-lang/Nim/issues/5007))
-- Fixed "`echo` discards everything after a null character"
-  ([#1137](https://github.com/nim-lang/Nim/issues/1137))
-- Fixed "Turn off reExtended by default"
-  ([#5627](https://github.com/nim-lang/Nim/issues/5627))
-- Fixed "Bad Links in docs/backends.html"
-  ([#5914](https://github.com/nim-lang/Nim/issues/5914))
-- Fixed "Index out of bounds error in db_postgres when executing non parameter-substituted queries containing "?""
-  ([#6571](https://github.com/nim-lang/Nim/issues/6571))
-- Fixed "Please add pipe2 support to posix stdlib"
-  ([#6553](https://github.com/nim-lang/Nim/issues/6553))
-- Fixed "Return semantics vary depending on return style"
-  ([#6422](https://github.com/nim-lang/Nim/issues/6422))
-- Fixed "parsecsv.open reports SIGSEGV when calling 'open' on missing file"
-  ([#6148](https://github.com/nim-lang/Nim/issues/6148))
-- Fixed "VCC: Nim generates non-compilable code for system.nim"
-  ([#6606](https://github.com/nim-lang/Nim/issues/6606))
-- Fixed "Generic subtype matches worse than a generic"
-  ([#6526](https://github.com/nim-lang/Nim/issues/6526))
-- Fixed "formatFloat inconsistent scientific notation"
-  ([#6589](https://github.com/nim-lang/Nim/issues/6589))
-- Fixed "Generated c code calls function twice"
-  ([#6292](https://github.com/nim-lang/Nim/issues/6292))
-- Fixed "Range type inference leads to counter-intuitive behvaiour"
-  ([#5854](https://github.com/nim-lang/Nim/issues/5854))
-- Fixed "New backward indexing is too limited"
-  ([#6631](https://github.com/nim-lang/Nim/issues/6631))
-- Fixed "Table usage in a macro (SIGSEGV: Illegal storage access.)"
-  ([#1860](https://github.com/nim-lang/Nim/issues/1860))
-- Fixed "Incorrect deprecation error"
-  ([#6634](https://github.com/nim-lang/Nim/issues/6634))
-- Fixed "Wrong indices in arrays not starting with 0"
-  ([#6675](https://github.com/nim-lang/Nim/issues/6675))
-- Fixed "if expressions"
-  ([#6609](https://github.com/nim-lang/Nim/issues/6609))
-- Fixed "BackwardsIndex: converter + `[]` + unrelated type[^1]: lib/system.nim(3536, 3) Error"
-  ([#6692](https://github.com/nim-lang/Nim/issues/6692))
-- Fixed "BackwardsIndex: converter + `[]` + unrelated type[^1]: lib/system.nim(3536, 3) Error"
-  ([#6692](https://github.com/nim-lang/Nim/issues/6692))
-- Fixed "js backend 0.17.3: array bounds check for non zero based arrays is buggy"
-  ([#6532](https://github.com/nim-lang/Nim/issues/6532))
-- Fixed "HttpClient's new API doesn't work through a proxy for https URLs"
-  ([#6685](https://github.com/nim-lang/Nim/issues/6685))
-- Fixed "isServing isn't declared and isn't compiling"
-  ([#6707](https://github.com/nim-lang/Nim/issues/6707))
-- Fixed "[Regression] value out of range"
-  ([#6710](https://github.com/nim-lang/Nim/issues/6710))
-
-- Fixed "Error when using `multisync` macro"
-  ([#6708](https://github.com/nim-lang/Nim/issues/6708))
-
-- Fixed "formatFloat inconsistent scientific notation"
-  ([#6589](https://github.com/nim-lang/Nim/issues/6589))
-- Fixed "Using : (constructor arguments) for passing values to functions with default arguments causes a compiler crash."
-  ([#6765](https://github.com/nim-lang/Nim/issues/6765))
-- Fixed "In-place object initialization leads to vcc incompatible code"
-  ([#6757](https://github.com/nim-lang/Nim/issues/6757))
-- Fixed "Improve parseCookies doc"
-  ([#5721](https://github.com/nim-lang/Nim/issues/5721))
-- Fixed "Parser regression with nested do notation inside conditional"
-  ([#6166](https://github.com/nim-lang/Nim/issues/6166))
-- Fixed "Request for better error message"
-  ([#6776](https://github.com/nim-lang/Nim/issues/6776))
-- Fixed "Testament tester does not execute test with `exitcode` only"
-  ([#6775](https://github.com/nim-lang/Nim/issues/6775))
-- Fixed "JS integer division off by one"
-  ([#6753](https://github.com/nim-lang/Nim/issues/6753))
-- Fixed "Regression: cannot prove not nil"
-  ([#5781](https://github.com/nim-lang/Nim/issues/5781))
-- Fixed "SIGSEGV: Illegal storage access. (Attempt to read from nil?) in generic proc"
-  ([#6073](https://github.com/nim-lang/Nim/issues/6073))
-- Fixed "Request for better error message"
-  ([#6776](https://github.com/nim-lang/Nim/issues/6776))
-- Fixed "Nim #head: sorting via reference hangs compiler"
-  ([#6724](https://github.com/nim-lang/Nim/issues/6724))
-- Fixed "Cannot cast pointer to char in cpp"
-  ([#5979](https://github.com/nim-lang/Nim/issues/5979))
-- Fixed "asynchttpserver replies with several errors on single request"
-  ([#6386](https://github.com/nim-lang/Nim/issues/6386))
-- Fixed "object variants superclass trigger bad codegen"
-  ([#5521](https://github.com/nim-lang/Nim/issues/5521))
-- Fixed "JS integer division off by one"
-  ([#6753](https://github.com/nim-lang/Nim/issues/6753))
-- Fixed "js backend compiler crash with tables indexed by certain types"
-  ([#6568](https://github.com/nim-lang/Nim/issues/6568))
-- Fixed "Jsgen bug with is"
-  ([#6445](https://github.com/nim-lang/Nim/issues/6445))
-- Fixed "Subrange definition with ..<"
-  ([#6788](https://github.com/nim-lang/Nim/issues/6788))
-- Fixed "fields not initialized: array with enum index type as object field."
-  ([#6682](https://github.com/nim-lang/Nim/issues/6682))
-- Fixed "Can not delete data in table when table's data type is kind of "not nil""
-  ([#6555](https://github.com/nim-lang/Nim/issues/6555))
-- Fixed "tables.nim: Cannot prove that 'n' is initialized"
-  ([#6121](https://github.com/nim-lang/Nim/issues/6121))
-- Fixed "issues with 'not nil' applied to a closure proc"
-  ([#6489](https://github.com/nim-lang/Nim/issues/6489))
-- Fixed "`not nil` not working in some cases"
-  ([#4686](https://github.com/nim-lang/Nim/issues/4686))
-- Fixed "Cannot prove '@[v]' is not nil"
-  ([#3993](https://github.com/nim-lang/Nim/issues/3993))
-
-- Fixed "Feature: support TCP_NODELAY in net.sockets"
-  ([#6795](https://github.com/nim-lang/Nim/issues/6795))
-- Fixed "Code that makes the compiler throw an error message and then hangs"
-  ([#6820](https://github.com/nim-lang/Nim/issues/6820))
-- Fixed "Code that makes the compiler throw an error message and then hangs"
-  ([#6820](https://github.com/nim-lang/Nim/issues/6820))
-- Fixed "Inconsistent behavior with sequence and string slicing"
-  ([#6223](https://github.com/nim-lang/Nim/issues/6223))
-- Fixed "Wrong behavior of "split" (proc and iterator)"
-  ([#4377](https://github.com/nim-lang/Nim/issues/4377))
-- Fixed "[Documentation] Invalid module name: [foo, bar]"
-  ([#6831](https://github.com/nim-lang/Nim/issues/6831))
-- Fixed "The destructor is not called for temporary objects"
-  ([#4214](https://github.com/nim-lang/Nim/issues/4214))
-- Fixed "Destructors does not work with implicit items iterator in for loop"
-  ([#985](https://github.com/nim-lang/Nim/issues/985))
-- Fixed "Error in template when using the type of the parameter inside it"
-  ([#6756](https://github.com/nim-lang/Nim/issues/6756))
-- Fixed "should json.to() respect parent attributes?"
-  ([#5856](https://github.com/nim-lang/Nim/issues/5856))
-- Fixed "json 'to' macro can not marshalize into tuples"
-  ([#6095](https://github.com/nim-lang/Nim/issues/6095))
-- Fixed "json.to fails with seq[T]"
-  ([#6604](https://github.com/nim-lang/Nim/issues/6604))
-- Fixed "json.to() is not worth using compared to marshal.to[T]"
-  ([#5848](https://github.com/nim-lang/Nim/issues/5848))
-- Fixed "Memory not being released in time, running out of memory"
-  ([#6031](https://github.com/nim-lang/Nim/issues/6031))
-- Fixed "[Regression] Bad C codegen for generic code"
-  ([#6889](https://github.com/nim-lang/Nim/issues/6889))
-- Fixed "rollingFileLogger deletes file on every start."
-  ([#6264](https://github.com/nim-lang/Nim/issues/6264))
-- Fixed "Remove/deprecate securehash module."
-  ([#6033](https://github.com/nim-lang/Nim/issues/6033))
-- Fixed "[bug or not] object construction for seq[T] failed without space after colon"
-  ([#5999](https://github.com/nim-lang/Nim/issues/5999))
-- Fixed "issues with the random module"
-  ([#4726](https://github.com/nim-lang/Nim/issues/4726))
-- Fixed "Reassigning local var to seq of objects results in nil element in Object's seq field"
-  ([#668](https://github.com/nim-lang/Nim/issues/668))
-- Fixed "Compilation error with "newseq[string]""
-  ([#6726](https://github.com/nim-lang/Nim/issues/6726))
-- Fixed "await inside array/dict literal produces invalid code - Part 2"
-  ([#6626](https://github.com/nim-lang/Nim/issues/6626))
-- Fixed "terminal.eraseline() gives OverflowError on Windows"
-  ([#6931](https://github.com/nim-lang/Nim/issues/6931))
-- Fixed "[Regression] `sequtils.any` conflicts with `system.any`"
-  ([#6932](https://github.com/nim-lang/Nim/issues/6932))
-- Fixed "C++ codegen: `mitems` generates invalid code."
-  ([#4910](https://github.com/nim-lang/Nim/issues/4910))
-- Fixed "seq.mitems produces invalid cpp codegen"
-  ([#6892](https://github.com/nim-lang/Nim/issues/6892))
-- Fixed "Concepts regression"
-  ([#6108](https://github.com/nim-lang/Nim/issues/6108))
-- Fixed "Generic iterable concept with array crashes compiler"
-  ([#6277](https://github.com/nim-lang/Nim/issues/6277))
-- Fixed "C code generation "‘a’ is a pointer; did you mean to use ‘->’?""
-  ([#6462](https://github.com/nim-lang/Nim/issues/6462))
-- Fixed "`--NimblePath` fails if a `-` in path which is not followed by a number"
-  ([#6949](https://github.com/nim-lang/Nim/issues/6949))
-- Fixed ""not registered in the selector" in asyncfile.close() for something that clearly was registered"
-  ([#6906](https://github.com/nim-lang/Nim/issues/6906))
-- Fixed "strange frexp behavior"
-  ([#6353](https://github.com/nim-lang/Nim/issues/6353))
-
-- Fixed "noreturn branches of case statements shouldn't contribute to type"
-  ([#6885](https://github.com/nim-lang/Nim/issues/6885))
-- Fixed "Type inference for 'if' statements changed"
-  ([#6980](https://github.com/nim-lang/Nim/issues/6980))
-- Fixed "newest asyncdispatch recursion"
-  ([#6100](https://github.com/nim-lang/Nim/issues/6100))
-- Fixed "Ambiguous identifier between set type and proc"
-  ([#6965](https://github.com/nim-lang/Nim/issues/6965))
-
-- Fixed "Inconsistent behavior with sequence and string slicing"
-  ([#6223](https://github.com/nim-lang/Nim/issues/6223))
-
-- Fixed "Unsupported OpenSSL library imported dynamically"
-  ([#5000](https://github.com/nim-lang/Nim/issues/5000))
-- Fixed "`nim check` segfaults"
-  ([#6972](https://github.com/nim-lang/Nim/issues/6972))
-- Fixed "GC deadlock"
-  ([#6988](https://github.com/nim-lang/Nim/issues/6988))
-- Fixed "Create a seq without memory initialization"
-  ([#6401](https://github.com/nim-lang/Nim/issues/6401))
-- Fixed "Fix bug for getch on Windows while using the arrow keys"
-  ([#6966](https://github.com/nim-lang/Nim/issues/6966))
-- Fixed "runnableExamples doesn't work in templates"
-  ([#7018](https://github.com/nim-lang/Nim/issues/7018))
-- Fixed "runnableExamples doesn't work with untyped statement blocks"
-  ([#7019](https://github.com/nim-lang/Nim/issues/7019))
-
-- Fixed "Critical bug in parseBiggestFloat"
-  ([#7060](https://github.com/nim-lang/Nim/issues/7060))
-- Fixed "[RFC] strformat.% should be gone"
-  ([#7078](https://github.com/nim-lang/Nim/issues/7078))
-- Fixed "compiler crash on simple macro"
-  ([#7093](https://github.com/nim-lang/Nim/issues/7093))
-- Fixed "Make newlines sane again"
-  ([#7089](https://github.com/nim-lang/Nim/issues/7089))
-- Fixed "JS - Unicode enum string representation issue"
-  ([#6741](https://github.com/nim-lang/Nim/issues/6741))
-- Fixed "Strange behaviour of 0.17.3 (working ok in 0.17.2)"
-  ([#6989](https://github.com/nim-lang/Nim/issues/6989))
-- Fixed "Strange behaviour of 0.17.3 (working ok in 0.17.2)"
-  ([#6989](https://github.com/nim-lang/Nim/issues/6989))
-- Fixed "Compiler crash: try expression with infix as"
-  ([#7116](https://github.com/nim-lang/Nim/issues/7116))
-- Fixed "nimsuggest crash"
-  ([#7140](https://github.com/nim-lang/Nim/issues/7140))
-- Fixed "[RFC] Reintroduce readChar"
-  ([#7072](https://github.com/nim-lang/Nim/issues/7072))
-- Fixed "Copyright line needs updating"
-  ([#7129](https://github.com/nim-lang/Nim/issues/7129))
-- Fixed "-0.0 doesn't result in negative zero in VM"
-  ([#7079](https://github.com/nim-lang/Nim/issues/7079))
-- Fixed "Windows large filesize"
-  ([#7121](https://github.com/nim-lang/Nim/issues/7121))
-- Fixed "Securehash is not parsimonious with MD5 and other hash modules"
-  ([#6961](https://github.com/nim-lang/Nim/issues/6961))
-- Fixed "os.findExe() shouldn't look in current directory on posix, unless exe has a /"
-  ([#6939](https://github.com/nim-lang/Nim/issues/6939))
-- Fixed "`compiles(...)` with `fatal` pragma causes compiler to exit early"
-  ([#7080](https://github.com/nim-lang/Nim/issues/7080))
-- Fixed "NPE when compile macro that returns concrete value"
-  ([#5450](https://github.com/nim-lang/Nim/issues/5450))
-- Fixed "Using a variable of type `int | float` causes internal compiler error"
-  ([#6946](https://github.com/nim-lang/Nim/issues/6946))
-- Fixed "Unsigned integers could not be used as array indexes."
-  ([#7153](https://github.com/nim-lang/Nim/issues/7153))
-- Fixed "countdown with uint causes underflow"
-  ([#4220](https://github.com/nim-lang/Nim/issues/4220))
-- Fixed "Inconsistent method call syntax"
-  ([#7200](https://github.com/nim-lang/Nim/issues/7200))
-- Fixed "Impossible to create an empty const array"
-  ([#6853](https://github.com/nim-lang/Nim/issues/6853))
-- Fixed "Strange UINT handling"
-  ([#3985](https://github.com/nim-lang/Nim/issues/3985))
-- Fixed "Bad codegen when passing arg that is part of return value destination"
-  ([#6960](https://github.com/nim-lang/Nim/issues/6960))
-- Fixed "No info about gcsafety in error message when global var is accessed in async proc"
-  ([#6186](https://github.com/nim-lang/Nim/issues/6186))
-- Fixed "Resolving package vs. local import ambiguities"
-  ([#2819](https://github.com/nim-lang/Nim/issues/2819))
-- Fixed "Internal error with type() operator"
-  ([#3711](https://github.com/nim-lang/Nim/issues/3711))
-- Fixed "newAsyncSocket should raise an OS error plus other inconsistencies"
-  ([#4995](https://github.com/nim-lang/Nim/issues/4995))
-- Fixed "mapLiterals fails with negative values"
-  ([#7215](https://github.com/nim-lang/Nim/issues/7215))
-- Fixed "fmWrite doesn't truncate file with openAsync, unlike open()"
-  ([#5531](https://github.com/nim-lang/Nim/issues/5531))
-- Fixed "Move libsvm to an external nimble module"
-  ([#5786](https://github.com/nim-lang/Nim/issues/5786))
-- Fixed "Prevent acceptAddr gotcha with newSocket"
-  ([#7227](https://github.com/nim-lang/Nim/issues/7227))
-- Fixed "strtabs.getOrDefault is inconsistent with tables.getOrDefault"
-  ([#4265](https://github.com/nim-lang/Nim/issues/4265))
-
-- Fixed "Code falling through into exception handler when no exception thrown."
-  ([#7232](https://github.com/nim-lang/Nim/issues/7232))
-- Fixed "the new generic inference rules are broken"
-  ([#7247](https://github.com/nim-lang/Nim/issues/7247))
-- Fixed "Odd `..<` regression"
-  ([#6992](https://github.com/nim-lang/Nim/issues/6992))
-- Fixed "Different proc type inferred from default parameter"
-  ([#4659](https://github.com/nim-lang/Nim/issues/4659))
-- Fixed "Different proc type inferred from default parameter"
-  ([#4659](https://github.com/nim-lang/Nim/issues/4659))
-- Fixed "Testament sometimes ignores test failures"
-  ([#7236](https://github.com/nim-lang/Nim/issues/7236))
-- Fixed "New Allocator Fails On >=4GB Requests"
-  ([#7120](https://github.com/nim-lang/Nim/issues/7120))
-- Fixed "User pragmas hide effect specifications from sempass2"
-  ([#7216](https://github.com/nim-lang/Nim/issues/7216))
-- Fixed "C++: SIGABRT instead of IndexError for out-of-bounds"
-  ([#6512](https://github.com/nim-lang/Nim/issues/6512))
-- Fixed "An uncaught exception in cpp mode doesn't show the exception name/msg"
-  ([#6431](https://github.com/nim-lang/Nim/issues/6431))
\ No newline at end of file