Version 0.9.6 released
19 October 2014 Andreas Rumpf
Note: 0.9.6 is the last release of Nimrod. The language is being renamed to Nim. Nim slightly breaks compatibility.
This is a maintenance release. The upcoming 0.10.0 release has the new features and exciting developments.
Changes affecting backwards compatibility
spawn
now uses an elaborate self-adapting thread pool and as such has been moved into its own module. So to use it, you now have to importthreadpool
.- The symbol binding rules in generics changed:
bar
infoo.bar
is now considered for implicit early binding. c2nim
moved into its own repository and is now a Babel package.pas2nim
moved into its own repository and is now a Babel package.system.$
for floating point types now produces a human friendly string representation.uri.TUrl
as well as theparseurl
module are now deprecated in favour of the newTUri
type in theuri
module.- The
destructor
pragma has been deprecated. Use theoverride
pragma instead. The destructor’s name has to bedestroy
now. lambda
is not a keyword anymore.- system.defined has been split into system.defined and system.declared.
You have to use
--symbol
to declare new conditional symbols that can be set via--define
. --threadanalysis:on
is now the default. To make your program compile you can disable it but this is only a temporary solution as this option will disappear soon!
Compiler improvements
- Multi method dispatching performance has been improved by a factor of 10x for pathological cases.
Language Additions
- This version introduces the
deprecated
pragma statement that is used to handle the upcoming massive amount of symbol renames. spawn
can now wrap proc that has a return value. It then returns a data flow variable of the wrapped return type.
Library Additions
- Added module
cpuinfo
. - Added module
threadpool
. sequtils.distnct
has been renamed tosequtils.deduplicate
.- Added
algorithm.reversed
- Added
uri.combine
anduri.parseUri
. - Some sockets procedures now support a
SafeDisconn
flag which causes them to handle disconnection errors and not raise them.