Page 1 of 1

Cobra 2010-04-02 Released

PostPosted: Sat Apr 10, 2010 10:54 pm
by Charles
This new version has several additions and refinements to both the language and the libraries. There have also been numerous fixes.

The "How To" and "Sample" programs on the web site (and included in the release) have been expanded and updated.

Links for Downloads, How To and Samples are at the top navigation of this web page.

Below are release notes that I semi-automated by parsing the "svn log" from the last release and automatically excluding fixes and cleanups/refactorings in order to create a list of the more interesting developments. I then manually deleted a few less interesting items.


(2010-03-25) Added new initializers for Set<of T> including the ability to take an IEqualityComparer.

(2010-03-19) Improvements to the How-To's.

(2010-03-19) Added ObjectLister utility class.

(2010-03-17) Improve some error messages from the C# backend.

(2010-03-12) An above error about numeric types indicates that you may want to set the default numeric type with "@number [expectedType]" in a source file or "cobra -number:[expectedType]" at the command line.

(2010-03-10) Make stackoverflow handling more robust. Stack overflow handling is in effect when -detailed-stack-trace is on.

(2010-03-05) Add test cases for concatenation of dynamic vars.

(2010-02-28) Added -test-runner command line option to specify the method to invoke to run the unit tests.

(2010-02-27) Use the new Cobra.Lang.Test.TestRunner for running inline unit tests.
Fix some test cases from the last checkin.

(2010-02-26) Added new Cobra.Lang.Test namespace with TestRunner, TestSuite, Test and related classes.

(2010-02-13) Improved error recovery. Avoid an uncaught exception in the compiler.
Unfortunately, I do not have a new (self contained, small) test case for this.
Existing test cases pass.

(2009-12-12) Remove Cobra's explicit following of assembly references. Read assembly dependencies on demand from encountered types.

(2009-12-09) Added -verbosity-ref option to output information about resolving references to libraries.

(2009-11-29) Add STAThread which is the normal approach for WinForms programs.

(2009-11-23) Better error recovery for slicing.

(2009-11-22) Make le.cobra more robust.

(2009-11-14) Add ability to comment a testify .skip. directive.
Add .skip. to two test cases.

(2009-11-08) Added .clone to ISet<of T>.

(2009-11-07) Improved error checking for `print to dest` block format.

(2009-11-05) TestifyRunner cleanup.

(2009-11-05) Added svn:eol-style = native

(2009-11-05) Catch assignments to read-only properties and indexers.

(2009-11-02) Added support for chain comparisons such as `0 <= i < 9`.

(2009-10-27) Optimization.

(2009-10-25) Add new test case for lowercase namespace names.

(2009-10-25) Augment -timeit to display count of lines, nodes and tokens compiled and "per second" for all three.
Note two flaws:
* The time includes the *run-time* of the program which skews and invalidates the "per second" stats.
* No test case.

(2009-10-23) Expand How To Use Lists.

(2009-10-11) Add -highlight to `cobra -h` help info.

(2009-10-04) Added .clone method to List<of T>.

(2009-09-26) Optimization. Remove extraneous instantiation of SourceSite when doing non-nil checks.

(2009-09-26) Added `time` prefix to running `mono cobra.exe -testify ...`

(2009-09-25) Make `cobra -test` robust against the case where Windoze won't allow it to delete test-foo.exe.

(2009-09-25) Added new `lock` statement.

(2009-09-23) Include Cobra.Sharp.dll in installation.

(2009-09-19) Add new back-end compiler in .dll form that can stay resident.
Only on Mono right now (because it's not tested on .NET).
Speeds up testify by eliminating process launching and interprocess communication (IPC).
Slightly speeds up regular compliation outside of testify.
Enhance -native-compiler: to recognize special options "auto" and "provider".
In the future, this new approach will be the basis for eliminating the writing of intermediate .cs files to disk.

(2009-09-17) Provide support for inner/nested classes and structs.

(2009-09-03) Updates to reflect current syntax and coding conventions.

(2009-08-21) On Mac, make Cobra robust in the situation where MacPort's pkg-config is obscuring the Mono pkg-config.

(2009-08-11) Add `String.remove` to the std lib methods that return non-nil.

(2009-07-27) Improved error checking on the `in` operator. For example, `5 in ['a', 'b']` produces an error because a List<of String> cannot contain an `int`.

(2009-07-24) Remove the run-time lib support for `key in dict`.
Use `dict.containsKey(key)` or `key in dict.keys` instead.

(2009-07-20) Tweak an error validation with can vary between platforms (but still contains the substring "cannot"). This fixes a test case on the Mono side.

(2009-07-17) Added:
def splitLines as List<of String>
def splitLines(keepEnds as bool) as List<of String>

(2009-07-06) Support covariance from arrays to arrays and streams.

(2009-07-06) Take out `is shared` on `def main` in the how-to's.

(2009-07-04) Added Qyoto How To.

(2009-06-20) Allow method declaration clauses like `is`, `has` and `implements` to appear in any order, on the same line as the method signature or below with indentation.
For example, `has Attrib` can be on the same line as a method signature.
This is congruent with type declaration clauses.