<commit_before>Latest
------

* Access control has been implemented.

  - 'public' declarations can be accessed from any module.
  - 'internal' declarations (the default) can be accessed from within the
    current module.
  - 'private' declarations can be accessed only from within the current file.

  There are still details to iron out here, but the model is in place. 
  The general principle is that an entity cannot be defined in terms of another
  entity with less accessibility.

* CGFloat is now a distinct floating-point type that wraps either a
  Float (on 32-bit architectures) or a Double (on 64-bit
  architectures). It provides all of the same comparison and
  arithmetic operations of Float and Double, and can be created using
  numeric literals.

* The immediate mode 'swift -i' now works for writing #! scripts that take
  command line arguments. The '-i' option to the swift driver must now come at
  the end of the compiler arguments, directly before the input filename. Any
  arguments that come after -i and the input filename are treated as arguments
  to the interpreted file and forwarded to Process.arguments.

* Type inference for for..in loops have been improved to consider the
  sequence along with the pattern being bound. For example, this
  allows the following loops to be type-checked that were previously
  rejected:

      for i: Int8 in 0..<10 { }
      for i: Float in 0.0...10.0 { }

For-each loops have improved type inference for 

2014-07-03
----------

* C function pointer types are now imported as CFunctionPointer<T>, where 'T'
  is a Swift function type. CFunctionPointer and COpaquePointer can be
  explicitly constructed from one another, but they do not freely convert, nor
  is CFunctionPointer compatible with Swift closures.
  
  Example: "int (*)(void)" becomes "CFunctionPointer<(Int) -> Void>".

* The interop model for pointers in C APIs has been simplified. Most code that
  calls C functions by passing arrays, UnsafePointers, or the addresses of
  variables with '&x' does not need to change. However, the CConstPointer and
  CMutablePointer bridging types have been removed, and functions and methods 
  are now imported as and overridden by taking UnsafePointer and
  ConstUnsafePointer directly. Void pointers are now imported as
  (Const)UnsafePointer<Void>; COpaquePointer is only imported for opaque types
  now.

* Array types are now spelled with the brackets surrounding the
  element type. For example, an array of Int is written as::

    var array: [Int]

* Dictionary types can now be spelled with the syntax [K : V], where K
  is the key type and V is the value type. For example:

    var dict: [String : Int] = ["Hello" : 1, "World" : 2]

  The type [K : V] is syntactic sugar for Dictionary<K, V>; nothing<commit_msg>Remove stray sentence and fix grammar in release note<commit_after>Latest
------

* Access control has been implemented.

  - 'public' declarations can be accessed from any module.
  - 'internal' declarations (the default) can be accessed from within the
    current module.
  - 'private' declarations can be accessed only from within the current file.

  There are still details to iron out here, but the model is in place. 
  The general principle is that an entity cannot be defined in terms of another
  entity with less accessibility.

* CGFloat is now a distinct floating-point type that wraps either a
  Float (on 32-bit architectures) or a Double (on 64-bit
  architectures). It provides all of the same comparison and
  arithmetic operations of Float and Double, and can be created using
  numeric literals.

* The immediate mode 'swift -i' now works for writing #! scripts that take
  command line arguments. The '-i' option to the swift driver must now come at
  the end of the compiler arguments, directly before the input filename. Any
  arguments that come after -i and the input filename are treated as arguments
  to the interpreted file and forwarded to Process.arguments.

* Type inference for for..in loops has been improved to consider the
  sequence along with the element pattern. For example, this accepts
  the following loops that were previously rejected:

      for i: Int8 in 0..<10 { }
      for i: Float in 0.0...10.0 { }

2014-07-03
----------

* C function pointer types are now imported as CFunctionPointer<T>, where 'T'
  is a Swift function type. CFunctionPointer and COpaquePointer can be
  explicitly constructed from one another, but they do not freely convert, nor
  is CFunctionPointer compatible with Swift closures.
  
  Example: "int (*)(void)" becomes "CFunctionPointer<(Int) -> Void>".

* The interop model for pointers in C APIs has been simplified. Most code that
  calls C functions by passing arrays, UnsafePointers, or the addresses of
  variables with '&x' does not need to change. However, the CConstPointer and
  CMutablePointer bridging types have been removed, and functions and methods 
  are now imported as and overridden by taking UnsafePointer and
  ConstUnsafePointer directly. Void pointers are now imported as
  (Const)UnsafePointer<Void>; COpaquePointer is only imported for opaque types
  now.

* Array types are now spelled with the brackets surrounding the
  element type. For example, an array of Int is written as::

    var array: [Int]

* Dictionary types can now be spelled with the syntax [K : V], where K
  is the key type and V is the value type. For example:

    var dict: [String : Int] = ["Hello" : 1, "World" : 2]

  The type [K : V] is syntactic sugar for Dictionary<K, V>; nothing
{'fraction_non_alphanumeric': 0.0600827486958086, 'fraction_numerical': 0.008274869580859866, 'mean_word_length': 3.664429530201342, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, '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': '3201370', 'n_tokens_mistral': 1498, 'n_tokens_neox': 1402, 'n_words': 812}