Page 1 of 1

Cobra December 2008 Update

PostPosted: Thu Jan 01, 2009 7:30 pm
by Charles
(This can be responded to on the Discussion Forum.)

This is a new update for December, covering improvements since the last update in November.

To get access to these improvements, there is a HowToInstallFromSource wiki page covering the ease and benefits of using Cobra from the source repository, and how to do it.

The following improvements are due to patches and feedback from the community as well as my own efforts. Thanks to all contributors!

Language

-- Handle extensions on generic types like IList<of T>. Handle method overloading in extensions. ticket:1

-- "for expressions" can now work on ints as well, just like their statement counterparts. You can write "for i in 10 get i" or "for i in 0 : 10 : 2 get i*2".

-- Support bitwise-and for the purpose of testing enums. test code

Library

-- Added String.split overloads that can take generic lists instead of arrays:
extend String
def split(chars as List<of char>) as List<of String>
def split(chars as IList<of char>) as List<of String>

-- Added .pow and .sqrt to decimal to make it uniform with float. This is especially important in the context of Cobra's number type which can be set to decimal, float[64] or float32.

-- Added CobraCore.monoVersionString (which returns nil if you're not on Mono).

Command Line

-- Change -correct-case to -correct-source with options: none, bang-equals, case, all. If you can configure your editor to automatically reload modified files then this feature is quite nice.

-- Added a -namespace: command line option to set the namespace for all Cobra source files as if each one started with "namespace <name>". Can be a qualified name.

-- Added comp-compiler-dll.bat for producing a Cobra.Lang.Compiler.dll so you can reference and use the Cobra compiler as a library.

-- Allow additional command line arguments to be passed to install-from-workspace. Specifically you can pass -debug which will be used when building the Cobra compiler. This can be useful for troubleshooting.

Misc

-- New Cobra language support for jEdit editor.

-- Bumped the Novell Mono minimum version number from 1.2 to 1.9. The minimum number for Microsoft .NET is still 2.0.

-- Fixed 13 bugs.

-- Improved 5 error messages.

Docs, Samples and How-To's

-- Added <workspace>/HowTo/186-UseArrays.cobra. online

-- Updated <workspace>/HowTo/200-MakeAClassHierarchy.

-- Updated <workspace>/HowTo/380-WinForms.

-- Added <workspace>/Samples/TPK.cobra. online

-- Updated and added various wiki pages including MemberModifier.

-- Updated <workspace>/Source/Object-Explorer-WinForms.cobra to reflect latest language features and syntax. Also, show contents of any ICollection including Stacks. This can aid in debugging and also serve as a more complete WinForms example. Also, made some related improvements when debugging the Cobra compiler itself (via win-comp[.bat]).


The next update will be towards the end of January, but you can always keep up to date by following the discussion forums.

We hope you'll try out the latest Cobra!


Best regards,

Chuck Esterbrook