<commit_before>Latest
----------

* Dictionary subscripting now takes/returns an optional type.  This allows
  querying a dictionary via subscripting to gracefully fail.  It also enables
  the idiom of removing values from a dictionary using 'dict[key] = nil'.
  As part of this, 'deleteKey' is no longer available.<commit_msg>lazy properties work.<commit_after>Latest
----------

* Dictionary subscripting now takes/returns an optional type.  This allows
  querying a dictionary via subscripting to gracefully fail.  It also enables
  the idiom of removing values from a dictionary using 'dict[key] = nil'.
  As part of this, 'deleteKey' is no longer available.

* Stored properties may now be marked with the @lazy attribute, which causes
  their initializer to be evaluated the first time the property is touched
  instead of when the enclosing type is initialized.  For example:
  
    func myInitializer() -> Int { println("hello\n"); return 42 }
    class MyClass {
      @lazy var aProperty = myInitializer()
    }
    
    var c = MyClass()     // doesn't print hello
    var tmp = c.aProperty // prints hello on first access
    tmp = c.aProperty     // doesn't print on subsequent loads.

    c = MyClass()         // doesn't print hello
    c.aProperty = 57      // overwriting the value prevents it from ever running

  Because lazy properties inherently rely on mutation of the property, they
  cannot be 'let's.  They are currently also limited to being members of structs
  and classes (they aren't allowed as local or global variables yet) and cannot
  be observed with willSet/didSet yet.
{'fraction_non_alphanumeric': 0.07040498442367601, 'fraction_numerical': 0.0024922118380062306, 'mean_word_length': 3.1932114882506526, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 4, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2865592', 'n_tokens_mistral': 428, 'n_tokens_neox': 410, 'n_words': 209}