= Cobra 0.9.2 Release Notes = 2012-11-26 Below are the changes included in this release. For even more details, browse the [http://cobra-language.com/trac/cobra/log/ revision log]. To get Cobra 0.9.2, visit [http://cobra-language.com/downloads/ Downloads]. == Language == * Mixins * Mixins can now declare protected and private members. * Mixins can now be used as proper types, such as the type of a parameter. * Fixed: Cannot declare a mix-in inside a namespace. * Fixed: Mixins cannot use the from declaration from of properties. * The `power-to` operator as in `base ** exponent` is now supported. * All numeric types work. * Augmented assignment (`**=`) works. * For `b ** e` where both are ints, a negative int value for `e` will throw an InvalidOperationException. You can address this by casting either to a fractional type (`number`, `decimal`, `float`). * Division * Added `//=` for augmented assignment of integers with "integer division". This corresponds to the binary arithmetic operator `//`. * Added error check for using "augmented fractional division" to ''modify'' integers: * Cannot use fractional division (/=) to modify an integer. Use integer division (//=) instead. * Fixed: The operator `//=` for fractional types does not floor the result like `//` does, making the two operators inconsistent. * Added support for `int` literals outside a 32-bit range. * Inferred types are now int, uint, int64 and uint32. * Works for decimal and hexadecimal bases. * Added new error check: Cannot raise events for other objects. * Don't run the tests of referenced libraries by default. * Fixed: Test blocks in generic classes ignored. == Library == * In CobraCore, added `.isRunningOnWindows` and `.isRunningOnMac`. * In CobraCore, changed `.isRunningOnMono` and `.isRunningOnUnix` from properties to methods. * Moved `IList.numbered` up to `IEnumerable`. * Added `.first`, `.take` and `.skip` extension methods to `IEnumerable`. * Added the overload `IEnumerable.numbered(start as int)`. == Command Line == * Enhanced `-native-compiler` to search the system `PATH` if the specified compiler could not be found by the Process class. * In `cobra -about`, print a warning if `Cobra.Core.dll` is not found next to `cobra.exe`. * Fixed: `cobra -embed-run-time` requires write perms to the install directory. The -embed-run-time/-ert option now makes a local copy of Cobra.Core which is removed later. == Installer == * Support .NET 4.5 (actually released in Cobra 0.9.1) * Make the Windows-based install-from-workspace.bat robust against the user's starting directory. * Use the environment variables "PROGRAMFILES" and "ProgramW6432" instead of hard coding "\Program Files [(x86)]". == Other == * Advanced the JVM back-end (could still use open source volunteers). * Better reporting of column number in error messages. * Updated Notepad.cobra sample to .NET 4.0. * Added dump-assembly.cobra command line util in Supplements/. * Improvements to the online wiki. * There have been concurrent improvements to the MonoDevelop add-in for Cobra, by Ramon Rocha. == Credits == Cobra is a community-driven, open source project under the MIT license. For this release, thanks go to: * nerdzero * hopscc * kobi7 * vazub * jaegs Additional people contributed through testing and discussion. == See Also == * [http://cobra-language.com/downloads/ Downloads] * [wiki:ReleaseNotes_0_9_0] * LanguageTopics * LibraryTopics