Version 0.9.6 released
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 import threadpool.
- The symbol binding rules in generics changed: bar in foo.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 the parseurl module are now deprecated in favour of the new TUri type in the uri module.
- The destructor pragma has been deprecated. Use the override pragma instead. The destructor's name has to be destroy 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!
- Multi method dispatching performance has been improved by a factor of 10x for pathological cases.
- 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.
- Added module cpuinfo.
- Added module threadpool.
- sequtils.distnct has been renamed to sequtils.deduplicate.
- Added algorithm.reversed
- Added uri.combine and uri.parseUri.
- Some sockets procedures now support a SafeDisconn flag which causes them to handle disconnection errors and not raise them.