Wiki

Changes between Version 7 and Version 8 of ReleaseNotes_0.9.5

Show
Ignore:
Timestamp:
12/23/13 09:10:34 (11 years ago)
Author:
Charles
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ReleaseNotes_0.9.5

    v7 v8  
    11= Cobra 0.9.5 Release Notes = 
    22 
    3 '''This release has not been made yet. The release notes are being built up on this wiki page.''' 
    4  
    5 2013-12- to-do 
    6  
    7 To get Cobra 0.9.5, visit [http://cobra-language.com/downloads/ Downloads]. 
    8  
    9 Below are the changes included in this release. There are 5 enhancements, 12 refinements, 17 fixes and new IDE support. At this point, the Cobra language is very stable and we're mostly refining and fixing as we put it into practice. 
    10  
    11 For even more details, browse the [http://cobra-language.com/trac/cobra/log/ revision log] which includes check-in comments and source code changes. 
    12  
    13 This release requires .NET 4.0 and higher (.NET 4.0 is now three years old). Cobra also runs on Mono and is tested on both Mac and Linux. 
    14  
    15 == IDE == 
    16  
    17 One of the most notable recent developments for Cobra is actually outside the compiler. The Cobra add-in for MonoDevelop / XamarinStudio offers 
    18  * syntax highlighting 
    19  * background compilation 
    20  * member completion suggestions 
    21  * parameter completion 
    22  * mouseover tooltips 
    23  * go to declaration 
    24  
    25  
    26 == Language == 
    27  
    28  * Support optional and named parameters. For example: 
    29 {{{ 
    30 #!cobra 
    31 class X 
    32  
    33     def main 
    34         .show('foo') 
    35         .show('bar', 5) 
    36         .show('baz', count = 3) 
    37         .show(s = 'can', count = 2) 
    38  
    39     def show(s as String, count as int = 2) 
    40         for i in count, print s 
    41         print 
    42 }}} 
    43  
    44  
    45  * Added modifier sections in type declarations. For example: 
    46 {{{ 
    47 #!cobra 
    48 class C 
    49  
    50     private, shared 
    51  
    52         def foo 
    53             pass 
    54  
    55         def bar 
    56             pass 
    57  
    58     def baz 
    59         pass 
    60 }}} 
    61  
    62  
    63 == Compiler == 
    64  
    65  * Improved error checking on arguments of initializer/constructor calls. 
    66  * Improved error checking on missed `of` in generics call. 
    67  * Fixed: An unfinished assignment statement causes an internal error instead of a normal error message ("unexpected end of file"). 
    68  * Fixed: Internal error for dynamic argument on a method overload. 
    69  * Fixed: Internal error if source file ends in the middle of a comma separated expression. 
    70  * Fixed: Cobra internal error when mixin declared after class. 
    71  * Fixed: In libraries, a field and property that differ only by case of a type with the same name triggers an internal compiler error. 
    72  * Fixed: Token on line after end of docstring causes parser confusion and 'useless error'. 
    73  * Fixed: Calling a method with an underscore name from within an initializer/constructor that is overloaded, causes an internal compiler error. 
    74  * Fixed: The compiler gracefully handles I/O exceptions when trying to delete intermediate files, but not unauthorized access exceptions. 
    75  * Fixed: If the compiler cannot delete an intermediate file, no warning is recorded. 
    76  * Fixed: Cobra gives a false parse error if there is a blank line after a doc string and before the get section of a property. 
    77  * Fixed: Using a namespace as a generic parameter can cause an internal error. 
    78  * Fixed: Raising a `shared` event causes an internal compiler error. 
    79  * Fixed: An anonymous method inside a method with a local variable named `result` causes a false compilation error. 
    80  * Fixed: Some CLR libraries cause an internal error when read by the compiler, specifically static readonly generics. 
    81  * Fixed: Some object creation expressions can cause an internal compiler error if one or more of the arguments has an error. 
    82  
    83  
    84 == Library / Run-time == 
    85  
    86  * Changed Cobra's Set<of T> to inherit from .NET 4's HashSet<of T>. 
    87  * Added new Process extension methods: 
    88 {{{ 
    89 #!cobra 
    90 def runAndCaptureOutput as ProcessOutput? 
    91 def runAndCaptureOutput(verbose as false) as ProcessOutput? 
    92 }}} 
    93 The return value can be queried for .standardOutput, .errorOutput and .combinedOutput. 
    94  * In `CobraCommand.find`, check the C: drive if an attempted file system path is not found on the current drive. 
    95  * New compiler API improvements. See changeset:2987 changeset:2990 changeset:3014 changeset:3016 
    96  * Fixed: Accessing Keywords.groups in Cobra.Compiler throws an exception 
    97  * Added `INode.goToDefinitionLocation` for IDEs. 
    98  
    99  
    100 == Command Line == 
    101  
    102  * Enhanced -lib: option to accept {!EnvironmentVariables} and {@latest}. 
    103  * Minor tweaks to -native-compiler-arg command line option. Now singular. Was always an accumulator. 
    104  
    105  
    106 == Installer == 
    107  
    108  * There is no explicit -net4 option as .NET 4.0 and higher is now the base requirement. 
    109  * Verify that libraries installed in the GAC have the correct version number. 
    110  * Locate the gacutil that comes with Visual Studio 2012. 
    111  * Added installer support for Windows 8.1 SDK. 
    112  * Fixed: When the installer is testing that hello.cobra can be compiled with the new compiler, it does not respect any -platform argument that was passed to the installer, resulting in an error. 
    113  
    114  
    115 == Other == 
    116  
    117  * Added MonoDevelop solution file for the Cobra compiler. 
    118  * Added msbuild/xbuild support. For example, there is now a CobraCompiler ToolTask. See also changeset:3052 
    119  * There have been plenty of documentation improvements through the wiki. See StandardLibraryExtensionMethods, which will lead to other documentation pages. 
    120  
    121  
    122 == Credits == 
    123  
    124 Cobra is a community-driven, open source project under the MIT license. For this release, thanks go to: 
    125  
    126  * hopscc 
    127  * nerdzero 
    128  * dwilliamii 
    129  * Chasm 
    130  * DelphiGuy 
    131  * Jonno 
    132  * sephthir 
    133  
    134 Additional people contributed through testing and discussion. 
    135  
     3Cobra 0.9.5 was a preview release for Cobra 0.9.6. 
    1364 
    1375== See Also == 
     
    1397 * [http://cobra-language.com/downloads/ Downloads] 
    1408 * previous: [wiki:ReleaseNotes_0.9.4] 
     9 * previous: [wiki:ReleaseNotes_0.9.6] 
    14110 * LanguageTopics 
    14211 * LibraryTopics