| 1 | = Cobra 0.9.4 Release Notes = |
| 2 | |
| 3 | 2013-05-@@ |
| 4 | |
| 5 | Below are the changes included in this release. For even more details, browse the [http://cobra-language.com/trac/cobra/log/ revision log]. |
| 6 | |
| 7 | To get Cobra 0.9.4, visit [http://cobra-language.com/downloads/ Downloads]. |
| 8 | |
| 9 | -- THIS PAGE IS A WORK IN PROGRESS -- |
| 10 | |
| 11 | == Language == |
| 12 | |
| 13 | * Mixins |
| 14 | * Mixins can now declare protected and private members. |
| 15 | * Mixins can now be used as proper types, such as the type of a parameter. |
| 16 | * Fixed: Cannot declare a mix-in inside a namespace. |
| 17 | * Fixed: Mixins cannot use the `from` declaration form of properties. |
| 18 | * The `power-to` operator as in `base ** exponent` is now supported. |
| 19 | * All numeric types work. |
| 20 | * Augmented assignment (`**=`) works. |
| 21 | * 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`). |
| 22 | * Division |
| 23 | * Added `//=` for augmented assignment of integers with "integer division". This corresponds to the binary arithmetic operator `//`. |
| 24 | * Added error check for using "augmented fractional division" to ''modify'' integers: |
| 25 | * Cannot use fractional division (/=) to modify an integer. Use integer division (//=) instead. |
| 26 | * Fixed: The operator `//=` for fractional types does not floor the result like `//` does, making the two operators inconsistent. |
| 27 | * Added support for `int` literals outside a 32-bit range. |
| 28 | * Inferred types are now int, uint, int64 and uint64. |
| 29 | * Works for decimal and hexadecimal bases. |
| 30 | * Added new error check: Cannot raise events for other objects. |
| 31 | * Don't run the tests of referenced libraries by default. |
| 32 | * Fixed: Test blocks in generic classes ignored. |
| 33 | |
| 34 | == Library == |
| 35 | |
| 36 | * In CobraCore, added `.isRunningOnWindows` and `.isRunningOnMac`. |
| 37 | * In CobraCore, changed `.isRunningOnMono` and `.isRunningOnUnix` from properties to methods. |
| 38 | * Moved `IList<of>.numbered` up to `IEnumerable<of>`. |
| 39 | * Added `.first`, `.take` and `.skip` extension methods to `IEnumerable<of T>`. |
| 40 | * Added the overload `IEnumerable<of>.numbered(start as int)`. |
| 41 | |
| 42 | == Command Line == |
| 43 | |
| 44 | * Enhanced `-native-compiler` to search the system `PATH` if the specified compiler could not be found by the Process class. |
| 45 | * In `cobra -about`, print a warning if `Cobra.Core.dll` is not found next to `cobra.exe`. |
| 46 | * Fixed: `cobra -embed-run-time` requires write perms to the install directory. |
| 47 | The -embed-run-time/-ert option now makes a local copy of Cobra.Core which is removed later. |
| 48 | |
| 49 | == Installer == |
| 50 | |
| 51 | * Support .NET 4.5 (actually released in Cobra 0.9.1) |
| 52 | * Make the Windows-based install-from-workspace.bat robust against the user's starting directory. |
| 53 | * Use the environment variables "PROGRAMFILES" and "ProgramW6432" instead of hard coding "\Program Files [(x86)]". |
| 54 | |
| 55 | == Other == |
| 56 | |
| 57 | * Advanced the JVM back-end (could still use open source volunteers). |
| 58 | * Better reporting of column number in error messages. |
| 59 | * Updated Notepad.cobra sample to .NET 4.0. |
| 60 | * Added dump-assembly.cobra command line util in Supplements/. |
| 61 | * Improvements to the online wiki. |
| 62 | * There have been concurrent improvements to the MonoDevelop add-in for Cobra, by Ramon Rocha. |
| 63 | |
| 64 | == Credits == |
| 65 | |
| 66 | Cobra is a community-driven, open source project under the MIT license. For this release, thanks go to: |
| 67 | |
| 68 | * nerdzero |
| 69 | * hopscc |
| 70 | * kobi7 |
| 71 | * vazub |
| 72 | * jaegs |
| 73 | |
| 74 | Additional people contributed through testing and discussion. |
| 75 | |
| 76 | == See Also == |
| 77 | |
| 78 | * [http://cobra-language.com/downloads/ Downloads] |
| 79 | * previous: [wiki:ReleaseNotes_0.9.3] |
| 80 | * LanguageTopics |
| 81 | * LibraryTopics |