-d:nimStrictDelete
becomes the default. An index error is produced when the index passed tosystem.delete
was out of bounds. Use-d:nimAuditDelete
to mimic the old behavior for backwards compatibility.- The default user-agent in
std/httpclient
has been changed toNim-httpclient/<version>
instead ofNim httpclient/<version>
which was incorrect according to the HTTP spec. - Methods now support implementations based on a VTable by using
--experimental:vtables
. Methods are then confined to be in the same module where their type has been defined. - With
-d:nimPreviewNonVarDestructor
, non-var destructors become the default.
- Changed
std/osfiles.copyFile
to allow to specifybufferSize
instead of a hardcoded one. - Changed
std/osfiles.copyFile
to usePOSIX_FADV_SEQUENTIAL
hints for kernel-level aggressive sequential read-aheads. std/htmlparser
has been moved to a nimble package, usenimble
oratlas
to install it.
- Added
newStringUninit
to system, which creates a new string of lengthlen
likenewString
but with uninitialized content. - Added
setLenUninit
to system, which doesn't initalize slots when enlarging a sequence. - Added
hasDefaultValue
tostd/typetraits
to check if a type has a valid default value. - Added Viewport API for the JavaScript targets in the
dom
module.
- Deprecates
system.newSeqUninitialized
, which is replaced bynewSeqUninit
.
noInit
can be used in types and fields to disable member initializers in the C++ backend.- C++ custom constructors initializers see https://nim-lang.org/docs/manual_experimental.htm#constructor-initializer
member
can be used to attach a procedure to a C++ type.- C++
constructor
now reusesresult
instead creatingthis
.
--nimcache
using a relative path as the argument in a config file is now relative to the config file instead of the current directory.
- koch now allows bootstrapping with
-d:nimHasLibFFI
, replacing the older option of building the compiler directly w/ thelibffi
nimble package in tow.