base64.encode
no longer supportslineLen
andnewLine
. Usebase64.encodeMIME
instead.os.splitPath()
behavior synchronized withos.splitFile()
to return "/" as the dir component of "/root_sub_dir" instead of the empty string.sequtils.zip
now returns a sequence of anonymous tuples i.e. those tuples now do not have fields named "a" and "b".strutils.formatFloat
withprecision = 0
has the same behavior in all backends, and it is compatible with Python's behavior, e.g.formatFloat(3.14159, precision = 0)
is now3
, not3.
.- Global variable
lc
has been removed from sugar.nim.
- Implicit conversions for
const
behave correctly now, meaning that code likeconst SOMECONST = 0.int; procThatTakesInt32(SOMECONST)
will be illegal now. Simply writeconst SOMECONST = 0
instead.
-
macros.newLit
now works for ref object types. -
system.writeFile
has been overloaded to also supportopenarray[byte]
. -
Added overloaded
strformat.fmt
macro that use specified characters as delimiter instead of '{' and '}'. -
introduced new procs in
tables.nim
:OrderedTable.pop
,CountTable.del
,CountTable.pop
,Table.pop
-
Added
sugar.outplace
for turning in-place algorithms likesort
andshuffle
into operations that work on a copy of the data and return the mutated copy. As the existingsorted
does. -
Added
sugar.collect
that does comprehension for seq/set/table collections.
asyncdispatch.drain
now properly takes into accountselector.hasPendingOperations
and only returns once all pending async operations are guaranteed to have completed.asyncdispatch.drain
now consistently uses the passed timeout value for all iterations of the event loop, and not just the first iteration. This is more consistent with the other asyncdispatch apis, and allowsasyncdispatch.drain
to be more efficient.base64.encode
andbase64.decode
was made faster by about 50%.htmlgen
adds MathML support (ISO 40314).macros.eqIdent
is now invariant to export markers and backtick quotes.htmlgen.html
allowslang
on the<html>
tag and common valid attributes.
- An
align
pragma can now be used for variables and object fields, similar to thealignas
declaration modifier in C/C++.
- Unsigned integer operators have been fixed to allow promotion of the first operand.
- Conversions to unsigned integers are unchecked at runtime, imitating earlier Nim versions. The documentation was improved to acknowledge this special case. See nim-lang/RFCs#175 for more details.
- JS target indent is all spaces, instead of mixed spaces and tabs, for generated JavaScript.
- The Nim compiler now supports the
--asm
command option for easier inspection of the produced assembler code. - The Nim compiler now supports a new pragma called
.localPassc
to pass specific compiler options to the C(++) backend for the C(++) file that was produced from the current Nim module.
- The
FD
variant ofselector.unregister
forioselector_epoll
andioselector_select
now properly handle theEvent.User
select event type.