Cobra December 2008 Update

General discussion about Cobra. Releases and general news will also be posted here.
Feel free to ask questions or just say "Hello".

Cobra December 2008 Update

Postby Charles » Thu Jan 01, 2009 7:28 pm

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!


-- 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


-- 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.


-- 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
Posts: 2515
Location: Los Angeles, CA

Re: Cobra December 2008 Update

Postby jonathandavid » Fri Jan 02, 2009 1:39 am

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.
Posts: 159

Re: Cobra December 2008 Update

Postby Charles » Fri Jan 02, 2009 3:07 am

That was a typo. Now corrected.

Posts: 2515
Location: Los Angeles, CA

Re: Cobra December 2008 Update

Postby Charles » Sun Jan 04, 2009 1:04 am

How could I forget the new .NET Reflector add-in for Cobra?

See wiki:ReflectorAddIn

Thanks, gogobyte!
Posts: 2515
Location: Los Angeles, CA

Return to Discussion

Who is online

Users browsing this forum: No registered users and 4 guests