= Cobra 0.9.0 Release Notes = 2012-09-26 Below are highlights for this release. For even more details including every bug fix, browse the [http://cobra-language.com/trac/cobra/log/ revision log]. To get Cobra 0.9, visit [http://cobra-language.com/downloads/ Downloads]. Regarding Cobra 0.9.1, this is a minor patch release for Windows-only which enables installing Cobra on .NET 4.5. == Language == * Enabled multiple `test` sections in methods and properties. * Added new `try...catch...get` expression. * Added support for namespace doc strings. * Added unpacking the new Pair classes with assignments and for loops. * Throw an UnpackException for multi-target assignment (target1, target2 = source) if there is a mismatch in the number of source items and targets * Enhanced the treatment of `==` and `<>` between objects to fall back to a strongly type `.equals` method if a strongly typed `.compareTo` method is not available. * Added numeric literals like `45n` for number and `45d` for decimal. Previously, the `d` suffix required a decimal portion (`45.0d`) and there was no `n` suffix available. * Added recognition of the interfaces of primitive types such as `int` implementing `IComparable`. * Added proper support for `DllImport` also known as "P/Invoke". * Added local variable creation and type inference for `out` parameters in method calls. * New warnings * Do not use the identity operator "is" with an object literal. Use an equality operator such as "==" or "<>". * Cannot cast a string to a numeric type. Consider using "int.parse" or "int.tryParse". Use "@help int" for details. * Improved error checking and improved error messages. * Fixed various bugs. == Library == * Renamed "Cobra.Lang" to "Cobra.Core" * Added MultiList class. * Added Pair and Pair clasess. * Improved the default formatting of the `trace` statement (which is also configurable). * Added `CobraCore.operatingSystemDescription as String`. * Added extension methods: * interface IList * def addRange(items as System.Collections.IEnumerable) * interface IList * def addRange(items as IEnumerable) * def pop as T * class Stack: def clone as Stack * class String * def before(sep as String) as String * def after(sep as String) as String * def count(substring as String) as int * def limitLength(maxLength as int, suffix as String?) as String * def repeat(times as int) as String * def splitWords as List * Added `CobraCore.htmlDecode`, `.urlEncode` and `.urlDecode`. * Improved `CobraCore.findCobraExe` (changset:2473). * A Cobra.Compiler library is now always provided during installation. * Renamed "!CobraInfo" to "!CompileTimeInfo" and added `.date` and `.subversionRevision`. * Fixed various bugs. == Command Line == * Command line: -native-compiler: The absolute path to the native compiler is no longer required. A simple "csc.exe" or "dmcs" will suffice if it is in the system PATH. * Added -clr-platform option (like C#'s -platform option). * For "cobra -about", show the path that cobra.exe comes from. == Learning == * Added How To: Customize Object Equality. * Added Samples * Notepad for WPF * Gtk Source Editor * !HexDump * Kickstarted [wiki:Koans Cobra Koans]. * Expanded the wiki. * Continued discussion and support in the forums. == Other == * Added support for .NET 4.0. * Improved the output of the @help directive. * Improved the installer in numerous ways. * Expanded the test suite. * Advanced the JVM back-end (could still use open source volunteers). * Bumped the Mono requirement from 2.4 to 2.6 based on a survey about VM versions. == Credits == Cobra is a community-driven, open source project under the MIT license. Direct contributions came from, in order of magnitude: * CharlesEsterbrook * hopscc * todd.a * jaegs * johannes.krampf * maboiteaspam Suggestions and bug reports came from, in alphabetical order): agustech, blubb, BrendanSimon, callisto, creadak, DelphiGuy, drissel, dwilliamii, gissolved, hopscc, jaegs, jetimms, jonathandavid, melger, nerdzero, nevdelap, Obtuse, ObtuseAngle, RIGHT_THEN, terenced, todd.a, torial Additional people contributed through testing and discussion. == See Also == * [http://cobra-language.com/downloads/ Downloads] * [http://cobra-language.com/forums/viewtopic.php?f=4&t=585 Cobra 2010-04-02 Release Notes] * [wiki:ReleaseNotes_0.9.2 Cobra 0.9.2 Release Notes] * [http://cobra-language.com/docs/release-notes/ More Release Notes] * LanguageTopics * LibraryTopics