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
- 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 import- threadpool.
- 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 the- parseurlmodule are now deprecated in favour of the new- TUritype in the- urimodule.
- 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 to- sequtils.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.