The Cobra Programming Language Version 0.1.3 Release Notes 2006-07-30 ------------------------------------------------------------------------------ See also: Cobra\ReadMe.text Cobra\Docs\License.text Cobra\Docs\Introduction.text http://CobraLang.com/ Work has begun on implementing the Cobra compiler in Cobra. The improvements below reflect discoveries during this task. In this release: == Additions == * Added new --superstacktrace option to compiler. Now uncaught exceptions include: * argument names and values * local variable names and values * line numbers When not using the --test option, this requires a little manual coding at the top level of your program; four extra lines: def main is shared try ... catch CobraCore.dumpStack() throw --sst can be used as an abbreviation for --superstacktrace * Added raw string literals which do not interpret backslashes or square brackets. These are primarily for regular expressions and Windows-style file paths. re = Regex(r'[\n\t ]+') using file = File.openText(r'C:\Shared\Samples\Sample1.text') ... == Changes and Minor Improvements == * Extended "in" and "not in" operators to handle characters and strings such as `if someChar in someString`. * Altered the "one liner" syntax for require and ensure so that a `code` section is not required or even expected. That was the original intention: def totalItems(items as List) require items sum = 0.0 for item in items sum += item.amount return sum == Fixes == * Fixed a bug in `require` and `ensure` which didn't allow for truthfulness in the same way that `assert`, `if` and `while` do. * Fixed a bug where `print x` caused an exception when x was nil. * Fixed a bug where the type of `t[i]` could not be inferred if t's type was nilable (such as `List?`). ------------------------------------------------------------------------------