This is a new update for February, covering improvements since the last update for January.
Informal releases have been introduced to explicitly snapshot Cobra at stable points in time. These work on Windows, Mac, Linux and others. They are tagged by date and the first is now available. You can download the latest now.
Or for the absolute latest, 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 including patchers, testers and wiki writers!
Language
-- Added mixins which, in constrast to C# and Java, enable you to break out of the confines of single inheritance. Discussed here.
-- Added lambdas. (Cobra already had closures.) Discussed here.
-- Added constants. They're like variables, but they don't change.
class Board
const width = 8
-- Added "cue init" for initialization/construction. Discussed here.
-- Relaxed the syntax around type declarations to make them more convenient. Discussed here.
-- The loop "for key, value in .foo" now works when .foo returns a stream of key+value pairs (type: KeyValuePair<of TKey, TValue>*).
-- Enabled "someList.numbered" which lets you write "for i, v in someList.numbered" giving each element of the list with its index (0, 1, 2, ...). Discussed here.
Library
-- Added CobraCore.hasContracts which enables you to determine at run-time if contracts are present (they can be excluded with the command line option -include-contracts:no).
Misc
-- Added or improved 3 error messages and warnings.
-- Fixed 3 bugs.
Docs, Samples and How-To's
-- New or updated wiki pages:
---- MixIn
---- StandardLibraryExtensionMethods
---- TypesOverview
------ StreamType
------ VariType
------ NilableType
------ DynamicType
The next update will be around April 1 for the month of March, 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