Page 1 of 1

Cobra December 2008 Update

PostPosted: Thu Jan 01, 2009 7:28 pm
by Charles
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

Re: Cobra December 2008 Update

PostPosted: Fri Jan 02, 2009 1:39 am
by jonathandavid
Thanks for the update, these are all worthy additions.

One thing. Did you mean:

"for i in 0 : 10 : 2 get i*2".

instead of

"for i in 0 : 10 : 2 get i i*2".

?

Otherwise I don't know what that is supposed to do.

Re: Cobra December 2008 Update

PostPosted: Fri Jan 02, 2009 3:07 am
by Charles
That was a typo. Now corrected.

Thanks.

Re: Cobra December 2008 Update

PostPosted: Sun Jan 04, 2009 1:04 am
by Charles
How could I forget the new .NET Reflector add-in for Cobra?

See wiki:ReflectorAddIn

Thanks, gogobyte!