Cobra 0.9.2 Release Notes
2012-11-26 for Cobra 0.9.2
2012-12-01 for Cobra 0.9.3 patch release for installing on 64-bit Windows
Below are the changes included in this release. For even more details, browse the revision log.
To get Cobra 0.9.2/3, visit 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 form 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 term 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 uint64.
- 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<of>.numbered up to IEnumerable<of>.
- Added .first, .take and .skip extension methods to IEnumerable<of T>.
- Added the overload IEnumerable<of>.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
- Downloads
- next: ReleaseNotes_0.9.4
- previous: ReleaseNotes_0_9_0
- LanguageTopics
- LibraryTopics