Version 0.9.6 released
2014年10月19日 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
spawnnow 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:
barinfoo.baris now considered for implicit early binding. c2nimmoved into its own repository and is now a Babel package.pas2nimmoved into its own repository and is now a Babel package.system.$for floating point types now produces a human friendly string representation.uri.TUrlas well as theparseurlmodule are now deprecated in favour of the newTUritype in theurimodule.- The
destructorpragma has been deprecated. Use theoverridepragma instead. The destructor’s name has to bedestroynow. lambdais not a keyword anymore.- system.defined has been split into system.defined and system.declared.
You have to use
--symbolto declare new conditional symbols that can be set via--define. --threadanalysis:onis 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
deprecatedpragma statement that is used to handle the upcoming massive amount of symbol renames. spawncan 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.distncthas been renamed tosequtils.deduplicate.- Added
algorithm.reversed - Added
uri.combineanduri.parseUri. - Some sockets procedures now support a
SafeDisconnflag which causes them to handle disconnection errors and not raise them.