Recent enhancements
Posted: Sat Jul 28, 2012 1:24 am
I was curious what enhancements were going into the new Snapshot/cobra, so I took a look via svn. Here are the highlights since the last snapshot:
Language
Added try...catch expression.
Pairs can be unpacked in assignment statements and for loops. (`a, b = p`).
For == and <>, if a strongly typed .compareTo is not available, check for a strongly typed .equals.
Library
Renamed Cobra.Lang --> Cobra.Core
Added Pair<of T> and Pair<of TA, TB>
Added MultiList<of T>
Added class HashCodeUtils containing .combine methods.
Added CobraCore.operatingSystemDescription
Extension methods:
Added String.before, .after, .count and .limitLength
Added IList.addRange and IList<of T>.addRange
Added Stack<of T>.clone
Added Process.runAndCaptureAllOutput
Other:
Add run-time error if unpack targets don't match the source exactly (`a, b = someListOf3`).
Declare System.Globalization.CultureInfo.invariantCulture not nilable.
Compiler
Better error message for malformed doc strings.
Better error message when encountering PHP-style string concatenation.
Better error messages when a library cannot be referenced.
Better error recovery in method parameter checking.
New error for using `base` in invariant.
Limit unknown member suggestions to 20
Fixed: obscure bug with if-inherits statement and recursive method invocation.
Fixed: obscure bug with method overrides and dynamic typed arguments.
Fixed: Problems with generics and inheritance
Hacky resolution of ISet ambiguity when running against .NET 4.
Command line
Debugging flag is on by default.
Added -clr-profile command line option.
Better error message if -native-compiler cannot be found.
Misc
@help improvements
... most of these are from myself or hops.
Language
Added try...catch expression.
Pairs can be unpacked in assignment statements and for loops. (`a, b = p`).
For == and <>, if a strongly typed .compareTo is not available, check for a strongly typed .equals.
Library
Renamed Cobra.Lang --> Cobra.Core
Added Pair<of T> and Pair<of TA, TB>
Added MultiList<of T>
Added class HashCodeUtils containing .combine methods.
Added CobraCore.operatingSystemDescription
Extension methods:
Added String.before, .after, .count and .limitLength
Added IList.addRange and IList<of T>.addRange
Added Stack<of T>.clone
Added Process.runAndCaptureAllOutput
Other:
Add run-time error if unpack targets don't match the source exactly (`a, b = someListOf3`).
Declare System.Globalization.CultureInfo.invariantCulture not nilable.
Compiler
Better error message for malformed doc strings.
Better error message when encountering PHP-style string concatenation.
Better error messages when a library cannot be referenced.
Better error recovery in method parameter checking.
New error for using `base` in invariant.
Limit unknown member suggestions to 20
Fixed: obscure bug with if-inherits statement and recursive method invocation.
Fixed: obscure bug with method overrides and dynamic typed arguments.
Fixed: Problems with generics and inheritance
Hacky resolution of ISet ambiguity when running against .NET 4.
Command line
Debugging flag is on by default.
Added -clr-profile command line option.
Better error message if -native-compiler cannot be found.
Misc
@help improvements
... most of these are from myself or hops.