diff options
author | Miran <narimiran@disroot.org> | 2020-07-08 15:01:47 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-08 15:01:47 +0200 |
commit | 3de5296337a0711b4d907728ac24fa07791d3224 (patch) | |
tree | 9f9ac91e49e9deefd995eb405f4341c6653e43e7 /changelog.md | |
parent | 06d776a5828d429f62c3189a99161604d50f9b96 (diff) | |
download | Nim-3de5296337a0711b4d907728ac24fa07791d3224.tar.gz |
remove a condition that table size must be passed as power of 2 (#14926)
* remove a condition that table size must be passed as power of 2 * remove power-of-2 condition from sets and sharedtables * remove power-of-2 condition from deques * use 'correctSize' for both branches * prettify changelog.md and fix typos * add a changelog entry * fix double-call of 'right-size' * fix the same thing in sets.nim * introduce a new internal proc `slotsNeeded` Deprecate the public proc `rightSize`, which is not needed anymore. Now it is an identity function, allowing the old code to work correctly and without extra allocations.
Diffstat (limited to 'changelog.md')
-rw-r--r-- | changelog.md | 69 |
1 files changed, 43 insertions, 26 deletions
diff --git a/changelog.md b/changelog.md index efad01515..1eda82297 100644 --- a/changelog.md +++ b/changelog.md @@ -5,7 +5,7 @@ ## Standard library additions and changes - Added `bindParams`, `bindParam` to `db_sqlite` for binding parameters into a `SqlPrepared` statement. -- Add `tryInsert`,`insert` procs to db_* libs accept primary key column name. +- Add `tryInsert`,`insert` procs to `db_*` libs accept primary key column name. - Added `xmltree.newVerbatimText` support create `style`'s,`script`'s text. - `uri` adds Data URI Base64, implements RFC-2397. - Add [DOM Parser](https://developer.mozilla.org/en-US/docs/Web/API/DOMParser) @@ -24,7 +24,7 @@ ease the writing of multi-process servers, where sockets inheritance is desired. - For a transistion period, define `nimInheritHandles` to enable file handle + For a transition period, define `nimInheritHandles` to enable file handle inheritance by default. This flag does **not** affect the `selectors` module due to the differing semantics between operating systems. @@ -83,11 +83,14 @@ proc foo(x: int, y: int): auto {.noSideEffect.} = x + y ``` + - The fields of `times.DateTime` are now private, and are accessed with getters and deprecated setters. -- The `times` module now handles the default value for `DateTime` more consistently. Most procs raise an assertion error when given - an uninitialized `DateTime`, the exceptions are `==` and `$` (which returns `"Uninitialized DateTime"`). The proc `times.isInitialized` - has been added which can be used to check if a `DateTime` has been initialized. +- The `times` module now handles the default value for `DateTime` more consistently. + Most procs raise an assertion error when given + an uninitialized `DateTime`, the exceptions are `==` and `$` (which returns `"Uninitialized DateTime"`). + The proc `times.isInitialized` has been added which can be used to check if + a `DateTime` has been initialized. - Fix a bug where calling `close` on io streams in osproc.startProcess was a noop and led to hangs if a process had both reads from stdin and writes (eg to stdout). @@ -105,14 +108,17 @@ ["Intermediate compatibility"](https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28recommended.29) per Mozilla's recommendation instead of `ALL`. This change should protect users from the use of weak and insecure ciphers while still provides - adequate compatiblity with the majority of the Internet. + adequate compatibility with the majority of the Internet. -- new module `std/jsonutils` with hookable `jsonTo,toJson,fromJson` for json serialization/deserialization of custom types. +- new module `std/jsonutils` with hookable `jsonTo,toJson,fromJson` for json + serialization/deserialization of custom types. - new proc `heapqueue.find[T](heap: HeapQueue[T], x: T): int` to get index of element ``x``. -- Add `rstgen.rstToLatex` convenience proc for `renderRstToOut` and `initRstGenerator` with `outLatex` output. -- Add `os.normalizeExe`, eg: `koch` => `./koch`. -- `macros.newLit` now preserves named vs unnamed tuples; use `-d:nimHasWorkaround14720` to keep old behavior +- Add `rstgen.rstToLatex` convenience proc for `renderRstToOut` and `initRstGenerator` + with `outLatex` output. +- Add `os.normalizeExe`, e.g.: `koch` => `./koch`. +- `macros.newLit` now preserves named vs unnamed tuples; use `-d:nimHasWorkaround14720` + to keep old behavior. - Add `random.gauss`, that uses the ratio of uniforms method of sampling from a Gaussian distribution. - Add `typetraits.elementType` to get element type of an iterable. - `typetraits.$` changes: `$(int,)` is now `"(int,)"` instead of `"(int)"`; @@ -120,14 +126,20 @@ `$((int, float), int)` is now `"((int, float), int)"` instead of `"(tuple of (int, float), int)"` - add `macros.extractDocCommentsAndRunnables` helper -- `strformat.fmt` and `strformat.&` support `= specifier`. `fmt"{expr=}"` now expands to `fmt"expr={expr}"`. +- `strformat.fmt` and `strformat.&` support `= specifier`. `fmt"{expr=}"` now + expands to `fmt"expr={expr}"`. - deprecations: `os.existsDir` => `dirExists`, `os.existsFile` => `fileExists` - Add `jsre` module, [Regular Expressions for the JavaScript target.](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) - Made `maxLines` argument `Positive` in `logging.newRollingFileLogger`, - because negative values will result in a new file being created for each logged line which doesn't make sense. + because negative values will result in a new file being created for each logged + line which doesn't make sense. - Changed `log` in `logging` to use proper log level on JavaScript target, - eg. `debug` uses `console.debug`, `info` uses `console.info`, `warn` uses `console.warn`, etc. + e.g. `debug` uses `console.debug`, `info` uses `console.info`, `warn` uses `console.warn`, etc. +- Tables, HashSets, SharedTables and deques don't require anymore that the passed + initial size must be a power of two - this is done internally. + Proc `rightSize` for Tables and HashSets is deprecated, as it is not needed anymore. + ## Language changes @@ -165,7 +177,7 @@ x.val = nil ``` - `getImpl` on enum type symbols now returns field syms instead of idents. This helps - with writing typed macros. Old behavior for backwards compatiblity can be restored + with writing typed macros. Old behavior for backwards compatibility can be restored with command line switch `--useVersion:1.0`. - ``let`` statements can now be used without a value if declared with ``importc``/``importcpp``/``importjs``/``importobjc``. @@ -223,24 +235,29 @@ proc mydiv(a, b): int {.raises: [].} = (likewise with other hints and warnings), which is consistent with all other bool flags. (since 1.3.3). - `nim doc -r main` and `nim rst2html -r main` now call openDefaultBrowser -- new hint: `--hint:msgOrigin` will show where a compiler msg (hint|warning|error) was generated; this - helps in particular when it's non obvious where it came from either because multiple locations generate - the same message, or because the message involves runtime formatting. -- new flag `--backend:js|c|cpp|objc (or -b:js etc), to change backend; can be used with any command - (eg nim r, doc, check etc); safe to re-assign. -- new flag `--doccmd:cmd` to pass additional flags for runnableExamples, eg: `--doccmd:-d:foo --threads` +- new hint: `--hint:msgOrigin` will show where a compiler msg (hint|warning|error) + was generated; this helps in particular when it's non obvious where it came from + either because multiple locations generate the same message, or because the + message involves runtime formatting. +- new flag `--backend:js|c|cpp|objc` (or -b:js etc), to change backend; can be + used with any command (eg nim r, doc, check etc); safe to re-assign. +- new flag `--doccmd:cmd` to pass additional flags for runnableExamples, + e.g.: `--doccmd:-d:foo --threads` use `--doccmd:skip` to skip runnableExamples and rst test snippets. -- new flag `--usenimcache` to output to nimcache (whatever it resolves to after all commands are processed) +- new flag `--usenimcache` to output to nimcache (whatever it resolves to after + all commands are processed) and avoids polluting both $pwd and $projectdir. It can be used with any command. -- `runnableExamples "-b:cpp -r:off": code` is now supported, allowing to override how an example is compiled and run, - for example to change backend or compile only. -- `nim doc` now outputs under `$projectPath/htmldocs` when `--outdir` is unspecified (with or without `--project`); - passing `--project` now automatically generates an index and enables search. +- `runnableExamples "-b:cpp -r:off": code` is now supported, allowing to override + how an example is compiled and run, for example to change backend or compile only. +- `nim doc` now outputs under `$projectPath/htmldocs` when `--outdir` is unspecified + (with or without `--project`); passing `--project` now automatically generates + an index and enables search. See [docgen](docgen.html#introduction-quick-start) for details. - Removed the `--oldNewlines` switch. - Removed the `--laxStrings` switch for mutating the internal zero terminator on strings. - Removed the `--oldast` switch. -- `$getType(untyped)` is now "untyped" instead of "expr", `$getType(typed)` is now "typed" instead of "stmt" +- `$getType(untyped)` is now "untyped" instead of "expr", `$getType(typed)` is + now "typed" instead of "stmt". ## Tool changes |