<commit_before># Implementation Status

This document lays out the structure of the Foundation project, and provides the current implementation status of each major feature.

Foundation is divided into groups of related functionality. These groups are currently laid out in the Xcode project, even though they are in a flat structure on disk.

As Foundation is a work in progress, not all methods and functionality are present. When implementations are completed, this list should be updated to reflect the current state of the library.

* **Runtime**: The basis for interoperability.
    The classes and methods in this group provide an interface for interoperability between C code and Swift. They also provide common layers used throughout the framework such as the root class `NSObject`.

    | Entity Name             | Status          | Test Coverage | Notes                                                                       |
    |-------------------------|-----------------|---------------|-----------------------------------------------------------------------------|
    | `NSEnumerator`          | Complete        | ?             |                                                                             |
    | `NSGetSizeAndAlignment` | Complete        | ?             |                                                                             |
    | `NSStringFromClass`     | Mostly Complete | ?             | Only top-level Swift classes are supported                                  |
    | `NSClassFromString`     | Mostly Complete | ?             | Only top-level Swift classes are supported; mangled names are not supported |
    | `NSObject`              | Complete        | ?             |                                                                             |
    | `NSSwiftRuntime`        | N/A             | N/A           | For internal use only                                                       |
    | `Boxing`                | N/A             | N/A           | For internal use only                                                       |


* **URL**: Networking primitives

    The classes in this group provide functionality for manipulating URLs and paths via a common model object. The group also has classes for creating and receiving network connections.

    | Entity Name                  | Status          | Test Coverage | Notes                                                                                                              |
    |------------------------------|-----------------|---------------|--------------------------------------------------------------------------------------------------------------------|
    | `URLAuthenticationChallenge` | Unimplemented   | ?             |                                                                                                                    |
    | `URLCache`                   | Unimplemented   | ?             |                                                                                                                    |
    | `URLCredential`              | Mostly Complete | ?             | `NSCoding` and `NSCopying` remain unimplemented                                                                    |
    | `URLCredentialStorage`       | Unimplemented   | ?             |                                                                                                                    |
    | `NSURLError*`                | Complete        | N/A           |                                                                                                                    |
    | `URLProtectionSpace`         | Unimplemented   | ?             |                                                                                                                    |
    | `URLProtocol`                | Unimplemented   | ?             |                                                                                                                    |
    | `URLProtocolClient`          | Unimplemented   | ?             |                                                                                                                    |
    | `NSURLRequest`               | Mostly Complete | ?             | `NSCoding` remains unimplemented                                                                                   |
    | `NSMutableURLRequest`        | Mostly Complete | ?             | `NSCoding` remains unimplemented                                                                                   |
    | `URLResponse`                | Mostly Complete | ?             | `NSCoding` remains unimplemented                                                                                   |
    | `NSHTTPURLResponse`          | Mostly Complete | ?             | `NSCoding` remains unimplemented                                                                                   |
    | `NSURL`                      | Mostly Complete | ?             | `NSCoding` with non-keyed-coding archivers, `checkResourceIsReachable()`, and resource values remain unimplemented |
    | `NSURLQueryItem`             | Mostly Complete | ?             | `NSCoding` remains unimplemented                                                                                   |
    | `URLResourceKey`             | Complete        | N/A           |                                                                                                                    |
    | `URLFileResourceType`        | Complete        | N/A           |                                                                                                                    |
    | `URL`                        | Complete        | ?             |                                                                                                                    |
    | `URLResourceValues`          | Complete        | N/A           |                                                                                                                    |
    | `URLComponents`              | Complete        | ?             |                                                                                                                    |
    | `URLRequest`                 | Complete        | ?             |                                                                                                                    |
    | `HTTPCookie`                 | Complete        | ?             |                                                                                                                    |
    | `HTTPCookiePropertyKey`      | Complete        | ?             |                                                                                                                    |
    | `HTTPCookieStorage`          | Unimplemented   | ?             |                                                                                                                    |
    | `Host`                       | Complete        | ?             |                                                                                                                    |
    | `Configuration`              | N/A             | ?             | For internal use only                                                                                              |
    | `EasyHandle`                 | N/A             | ?             | For internal use only                                                                                              |
    | `HTTPBodySource`             | N/A             | ?             | For internal use only                                                                                              |
    | `HTTPMessage`                | N/A             | ?             | For internal use only                                                                                              |
    | `libcurlHelpers`             | N/A             | ?             | For internal use only                                                                                              |
    | `MultiHandle`                | N/A             | ?             | For internal use only                                                                                              |
    | `URLSession`                 | Mostly Complete | ?             | `shared`, invalidation, resetting, flushing, getting tasks, and others remain unimplemented                        |
    | `URLSessionConfiguration`    | Mostly Complete | ?             | `ephemeral` and `background(withIdentifier:)` remain unimplemented                                                 |
    | `URLSessionDelegate`         | Complete        | N/A           |                                                                                                                    |
    | `URLSessionTask`             | Mostly Complete | ?             | `NSCopying`, `cancel()`, `error`, `createTransferState(url:)` with streams, and others remain unimplemented        |
    | `URLSessionDataTask`         | Complete        | ?             |                                                                                                                    |
    | `URLSessionUploadTask`       | Complete        | ?             |                                                                                                                    |
    | `URLSessionDownloadTask`     | Unimplemented   | ?             |                                                                                                                    |
    | `URLSessionStreamTask`       | Unimplemented   | ?             |                                                                                                                    |
    | `TaskRegistry`               | N/A             | ?             | For internal use only                                                                                              |
    | `TransferState`              | N/A             | ?             | For internal use only                                                                                              |


* **Formatters**: Locale and language-correct formatted values.

    This group contains the is the base `NSFormatter` class and its subclasses. These formatters can be used for dates, numbers, sizes, energy, and many other types.

    | Entity Name                     | Status          | Test Coverage | Notes                                                                                     |
    |---------------------------------|-----------------|---------------|-------------------------------------------------------------------------------------------|
    | `DateComponentFormatter`        | Unimplemented   | ?             |                                                                                           |
    | `DateIntervalFormatter`         | Unimplemented   | ?             |                                                                                           |
    | `EnergyFormatter`               | Unimplemented   | ?             |                                                                                           |
    | `LengthFormatter`               | Unimplemented   | ?             |                                                                                           |
    | `MassFormatter`                 | Unimplemented   | ?             |                                                                                           |
    | `NumberFormatter`               | Mostly Complete | ?             | `objectValue(_:range:)` remains unimplemented                                             |
    | `PersonNameComponentsFormatter` | Unimplemented   | ?             |                                                                                           |
    | `ByteCountFormatter`            | Unimplemented   | ?             |                                                                                           |
    | `DateFormatter`                 | Mostly Complete | ?             | `objectValue(_:range:)` and `setLocalizedDateFormatFromTemplate(_:)` remain unimplemented |
    | `Formatter`                     | Complete        | ?             |                                                                                           |
    | `MeasurementFormatter`          | Unimplemented   | ?             |                                                                                           |

* **Predicates**: Base functionality for building queries.

    This is the base class and subclasses for `NSPredicate` and `NSExpression`.

    | Entity Name             | Status        | Test Coverage | Notes |
    |-------------------------|---------------|---------------|-------|
    | `NSExpression`          | Unimplemented | ?             |       |
    | `NSComparisonPredicate` | Unimplemented | ?             |       |
    | `NSCompoundPredicate`   | Complete      | ?             |       |
    | `NSPredicate`           | Unimplemented | ?             |       |

* **Serialization**: Serialization and deserialization functionality.

    The classes in this group perform tasks like parsing and writing JSON, property lists and binary archives.

    | Entity Name                 | Status          | Test Coverage | Notes                                                                               |
    |-----------------------------|-----------------|---------------|-------------------------------------------------------------------------------------|
    | `NSJSONSerialization`       | Mostly Complete | ?             | `jsonObject(with:options:)` remains unimplemented                                   |
    | `NSKeyedArchiver`           | Mostly Complete | ?             | `init()` and `encodedData` remain unimplemented                                     |
    | `NSKeyedCoderOldStyleArray` | N/A             | ?             | For internal use only                                                               |
    | `NSKeyedUnarchiver`         | Mostly Complete | ?             | `decodingFailurePolicy.set` remains unimplemented                                   |
    | `NSKeyedArchiverHelpers`    | N/A             | N/A           | For internal use only                                                               |
    | `NSCoder`                   | Incomplete      | ?             | Decoding methods which don't require a concrete implementation remain unimplemented |
    | `PropertyListSerialization` | Mostly Complete | ?             | `propertyList(with:options:format:)` remains unimplemented                          |

* **XML**: A group of classes for parsing and representing XML documents and elements.

    The classes provided in this group are responsible for parsing and validating XML. They should be an interface for representing libxml2 in a more object-oriented manner.

    | Entity Name   | Status          | Test Coverage | Notes                                                                                                                                 |
    |---------------|-----------------|---------------|---------------------------------------------------------------------------------------------------------------------------------------|
    | `XMLDocument` | Mostly Complete | ?             | `init()`, `replacementClass(for:)`, and `object(byApplyingXSLT...)` remain unimplemented                                              |
    | `XMLDTD`      | Mostly Complete | ?             | `init()` remains unimplemented                                                                                                        |
    | `XMLDTDNode`  | Complete        | ?             |                                                                                                                                       |
    | `XMLElement`  | Incomplete      | ?             | `init(xmlString:)`, `elements(forLocalName:uri:)`, `attribute(forLocalName:uri:)`, namespace support, and others remain unimplemented |
    | `XMLNode`     | Incomplete      | ?             | `localName(forName:)`, `prefix(forName:)`, `predefinedNamespace(forPrefix:)`, and others remain unimplemented                         |
    | `XMLParser`   | Complete        | ?             |                                                                                                                                       |

* **Collections**: A group of classes to contain objects.

    The classes provided in this group provide basic collections. The primary role for these classes is to provide an interface layer between the CoreFoundation implementations and the standard library implementations. Additionally, they have useful extras like serialization support. There are also additional collection types that the standard library does not support.

     > _Note_: See [Known Issues](Issues.md) for more information about bridging between Foundation collection types and Swift standard library collection types.

    | Entity Name           | Status          | Test Coverage | Notes                                                                                                                                                               |
    |-----------------------|-----------------|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
    | `NSOrderedSet`        | Mostly Complete | ?             | `NSCoding` with non-keyed-coding archivers, `NS[Mutable]Copying`, and `array` & `set` (and associated indexing methods) remain unimplemented                        |
    | `NSMutableOrderedSet` | Mostly Complete | ?             | `NSCoding` and `sortRange(_:options:, usingComparator:)` with non-empty options remain unimplemented                                                                |
    | `NSCFArray`           | N/A             | ?             | For internal use only                                                                                                                                               |
    | `NSIndexSet`          | Mostly Complete | ?             | `NSCoding`, `NSCopying`, and concurrent `enumerateWithOptions(_:range:paramType:returnType:block:)` remain unimplemented                                            |
    | `NSMutableIndexSet`   | Mostly Complete | ?             | `shiftIndexesStarting(at:by:)` remains unimplemented                                                                                                                |
    | `IndexSet`            | Complete        | ?             |                                                                                                                                                                     |
    | `NSIndexPath`         | Mostly Complete | ?             | `NSCoding`, `NSCopying`, `getIndexes(_:)` remain unimplemented                                                                                                      |
    | `IndexPath`           | Complete        | ?             |                                                                                                                                                                     |
    | `NSArray`             | Mostly Complete | ?             | Reading/writing to files/URLs, concurrent `enumerateObjects(at:options:using:)`, and `sortedArray(from:options:usingComparator:)` with options remain unimplemented |
    | `NSMutableArray`      | Mostly Complete | ?             | `exchangeObject(at:withObjectAt:)` and `replaceObjects(in:withObjectsFromArray:)` remain unimplemented for types other than `NSMutableArray`                        |
    | `NSDictionary`        | Mostly Complete | ?             | `NSCoding` with non-keyed-coding archivers, `descriptionInStringsFileFormat`, `sharedKeySet(forKeys:)`, and reading/writing to files/URLs remain unimplemented      |
    | `NSMutableDictionary` | Mostly Complete | ?             | `descriptionInStringsFileFormat`, `sharedKeySet(forKeys:)`, and reading/writing to files/URLs remain unimplemented                                                  |
    | `NSCFDictionary`      | N/A             | ?             | For internal use only                                                                                                                                               |
    | `NSSet`               | Mostly Complete | ?             | `description(withLocale:)` and `customMirror` remain unimplemented                                                                                                  |
    | `NSMutableSet`        | Mostly Complete | ?             | `init?(coder:)` remains unimplemented                                                                                                                               |
    | `NSCountedSet`        | Mostly Complete | ?             | `init?(coder:)` remains unimplemented                                                                                                                               |
    | `NSCFSet`             | N/A             | ?             | For internal use only                                                                                                                                               |
    | `NSCache`             | Complete        | ?             |                                                                                                                                                                     |
    | `NSSortDescriptor`    | Unimplemented   | ?             |                                                                                                                                                                     |

* **RunLoop**: Timers, streams and run loops.

    The classes in this group provide support for scheduling work and acting upon input from external sources.

    | Entity Name      | Status          | Test Coverage | Notes                                                                         |
    |------------------|-----------------|---------------|-------------------------------------------------------------------------------|
    | `Port`           | Unimplemented   | ?             |                                                                               |
    | `MessagePort`    | Unimplemented   | ?             |                                                                               |
    | `SocketPort`     | Unimplemented   | ?             |                                                                               |
    | `PortMessage`    | Unimplemented   | ?             |                                                                               |
    | `RunLoop`        | Mostly Complete | ?             | `add(_: Port, forMode:)` and `remove(_: Port, forMode:)` remain unimplemented |
    | `NSStream`       | Mostly Complete | ?             |                                                                               |
    | `Stream`         | Unimplemented   | ?             | Methods which do not require a concrete implementation remain unimplemented   |
    | `InputStream`    | Mostly Complete | ?             | `getBuffer(_:length:)` remains unimplemented                                  |
    | `NSOutputStream` | Complete        | ?             |                                                                               |
    | `Timer`          | Complete        | ?             |                                                                               |

* **String**: A set of classes for scanning, manipulating and storing string values.

    The NSString implementation is present to provide an interface layer between CoreFoundation and Swift, but it also adds additional functionality on top of the Swift standard library String type. Other classes in this group provide mechanisms to scan, match regular expressions, store attributes in run arrays attached to strings, and represent sets of characters.

    > _Note_: See [Known Issues](Issues.md) for more information about bridging between the Foundation NSString types and Swift standard library String type.

    | Entity Name                 | Status          | Test Coverage | Notes                                                                                                                                                            |
    |-----------------------------|-----------------|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
    | `RegularExpression`         | Mostly Complete | ?             | `NSCoding` remains unimplemented                                                                                                                                 |
    | `Scanner`                   | Mostly Complete | ?             | `scanHex<T: _FloatLike>(_:locale:locationToScanFrom:to:)` and `localizedScannerWithString(_:)` remain unimplemented                                              |
    | `TextCheckingResult`        | Mostly Complete | ?             | `NSCoding`, `NSCopying`, `resultType`, and `range(at:)` remain unimplemented                                                                                     |
    | `NSAttributedString`        | Incomplete      | ?             | `NSCoding`, `NS[Mutable]Copying`, `attributedSubstring(from:)`, `isEqual(to:)`, `init(NSAttributedString:)`, and `enumerateAttributes(...)` remain unimplemented |
    | `NSMutableAttributedString` | Unimplemented   | ?             | Only `addAttribute(_:value:range:)` is implemented                                                                                                               |
    | `NSCharacterSet`            | Mostly Complete | ?             | `NSCoding` remains unimplemented                                                                                                                                 |
    | `NSMutableCharacterSet`     | Mostly Complete | ?             | Decoding remains unimplemented                                                                                                                                   |
    | `NSCFCharacterSet`          | N/A             | ?             | For internal use only                                                                                                                                            |
    | `CharacterSet`              | Complete        | ?             |                                                                                                                                                                  |
    | `NSString`                  | Mostly Complete | ?             | `init(contentsOf:usedEncoding:)`, `init(contentsOfFile:usedEncoding:)`, `enumerateSubstrings(in:options:using:)` remain unimplemented                            |
    | `NSStringEncodings`         | Complete        | N/A           | Contains definitions of string encodings                                                                                                                         |
    | `NSCFString`                | N/A             | N/A           | For internal use only                                                                                                                                            |
    | `NSStringAPI`               | N/A             | N/A           | Exposes `NSString` APIs on `String`                                                                                                                              |<commit_msg>Correction: methods which _do_ require a concrete implementation remain unimplemented<commit_after># Implementation Status

This document lays out the structure of the Foundation project, and provides the current implementation status of each major feature.

Foundation is divided into groups of related functionality. These groups are currently laid out in the Xcode project, even though they are in a flat structure on disk.

As Foundation is a work in progress, not all methods and functionality are present. When implementations are completed, this list should be updated to reflect the current state of the library.

* **Runtime**: The basis for interoperability.
    The classes and methods in this group provide an interface for interoperability between C code and Swift. They also provide common layers used throughout the framework such as the root class `NSObject`.

    | Entity Name             | Status          | Test Coverage | Notes                                                                       |
    |-------------------------|-----------------|---------------|-----------------------------------------------------------------------------|
    | `NSEnumerator`          | Complete        | ?             |                                                                             |
    | `NSGetSizeAndAlignment` | Complete        | ?             |                                                                             |
    | `NSStringFromClass`     | Mostly Complete | ?             | Only top-level Swift classes are supported                                  |
    | `NSClassFromString`     | Mostly Complete | ?             | Only top-level Swift classes are supported; mangled names are not supported |
    | `NSObject`              | Complete        | ?             |                                                                             |
    | `NSSwiftRuntime`        | N/A             | N/A           | For internal use only                                                       |
    | `Boxing`                | N/A             | N/A           | For internal use only                                                       |


* **URL**: Networking primitives

    The classes in this group provide functionality for manipulating URLs and paths via a common model object. The group also has classes for creating and receiving network connections.

    | Entity Name                  | Status          | Test Coverage | Notes                                                                                                              |
    |------------------------------|-----------------|---------------|--------------------------------------------------------------------------------------------------------------------|
    | `URLAuthenticationChallenge` | Unimplemented   | ?             |                                                                                                                    |
    | `URLCache`                   | Unimplemented   | ?             |                                                                                                                    |
    | `URLCredential`              | Mostly Complete | ?             | `NSCoding` and `NSCopying` remain unimplemented                                                                    |
    | `URLCredentialStorage`       | Unimplemented   | ?             |                                                                                                                    |
    | `NSURLError*`                | Complete        | N/A           |                                                                                                                    |
    | `URLProtectionSpace`         | Unimplemented   | ?             |                                                                                                                    |
    | `URLProtocol`                | Unimplemented   | ?             |                                                                                                                    |
    | `URLProtocolClient`          | Unimplemented   | ?             |                                                                                                                    |
    | `NSURLRequest`               | Mostly Complete | ?             | `NSCoding` remains unimplemented                                                                                   |
    | `NSMutableURLRequest`        | Mostly Complete | ?             | `NSCoding` remains unimplemented                                                                                   |
    | `URLResponse`                | Mostly Complete | ?             | `NSCoding` remains unimplemented                                                                                   |
    | `NSHTTPURLResponse`          | Mostly Complete | ?             | `NSCoding` remains unimplemented                                                                                   |
    | `NSURL`                      | Mostly Complete | ?             | `NSCoding` with non-keyed-coding archivers, `checkResourceIsReachable()`, and resource values remain unimplemented |
    | `NSURLQueryItem`             | Mostly Complete | ?             | `NSCoding` remains unimplemented                                                                                   |
    | `URLResourceKey`             | Complete        | N/A           |                                                                                                                    |
    | `URLFileResourceType`        | Complete        | N/A           |                                                                                                                    |
    | `URL`                        | Complete        | ?             |                                                                                                                    |
    | `URLResourceValues`          | Complete        | N/A           |                                                                                                                    |
    | `URLComponents`              | Complete        | ?             |                                                                                                                    |
    | `URLRequest`                 | Complete        | ?             |                                                                                                                    |
    | `HTTPCookie`                 | Complete        | ?             |                                                                                                                    |
    | `HTTPCookiePropertyKey`      | Complete        | ?             |                                                                                                                    |
    | `HTTPCookieStorage`          | Unimplemented   | ?             |                                                                                                                    |
    | `Host`                       | Complete        | ?             |                                                                                                                    |
    | `Configuration`              | N/A             | ?             | For internal use only                                                                                              |
    | `EasyHandle`                 | N/A             | ?             | For internal use only                                                                                              |
    | `HTTPBodySource`             | N/A             | ?             | For internal use only                                                                                              |
    | `HTTPMessage`                | N/A             | ?             | For internal use only                                                                                              |
    | `libcurlHelpers`             | N/A             | ?             | For internal use only                                                                                              |
    | `MultiHandle`                | N/A             | ?             | For internal use only                                                                                              |
    | `URLSession`                 | Mostly Complete | ?             | `shared`, invalidation, resetting, flushing, getting tasks, and others remain unimplemented                        |
    | `URLSessionConfiguration`    | Mostly Complete | ?             | `ephemeral` and `background(withIdentifier:)` remain unimplemented                                                 |
    | `URLSessionDelegate`         | Complete        | N/A           |                                                                                                                    |
    | `URLSessionTask`             | Mostly Complete | ?             | `NSCopying`, `cancel()`, `error`, `createTransferState(url:)` with streams, and others remain unimplemented        |
    | `URLSessionDataTask`         | Complete        | ?             |                                                                                                                    |
    | `URLSessionUploadTask`       | Complete        | ?             |                                                                                                                    |
    | `URLSessionDownloadTask`     | Unimplemented   | ?             |                                                                                                                    |
    | `URLSessionStreamTask`       | Unimplemented   | ?             |                                                                                                                    |
    | `TaskRegistry`               | N/A             | ?             | For internal use only                                                                                              |
    | `TransferState`              | N/A             | ?             | For internal use only                                                                                              |


* **Formatters**: Locale and language-correct formatted values.

    This group contains the is the base `NSFormatter` class and its subclasses. These formatters can be used for dates, numbers, sizes, energy, and many other types.

    | Entity Name                     | Status          | Test Coverage | Notes                                                                                     |
    |---------------------------------|-----------------|---------------|-------------------------------------------------------------------------------------------|
    | `DateComponentFormatter`        | Unimplemented   | ?             |                                                                                           |
    | `DateIntervalFormatter`         | Unimplemented   | ?             |                                                                                           |
    | `EnergyFormatter`               | Unimplemented   | ?             |                                                                                           |
    | `LengthFormatter`               | Unimplemented   | ?             |                                                                                           |
    | `MassFormatter`                 | Unimplemented   | ?             |                                                                                           |
    | `NumberFormatter`               | Mostly Complete | ?             | `objectValue(_:range:)` remains unimplemented                                             |
    | `PersonNameComponentsFormatter` | Unimplemented   | ?             |                                                                                           |
    | `ByteCountFormatter`            | Unimplemented   | ?             |                                                                                           |
    | `DateFormatter`                 | Mostly Complete | ?             | `objectValue(_:range:)` and `setLocalizedDateFormatFromTemplate(_:)` remain unimplemented |
    | `Formatter`                     | Complete        | ?             |                                                                                           |
    | `MeasurementFormatter`          | Unimplemented   | ?             |                                                                                           |

* **Predicates**: Base functionality for building queries.

    This is the base class and subclasses for `NSPredicate` and `NSExpression`.

    | Entity Name             | Status        | Test Coverage | Notes |
    |-------------------------|---------------|---------------|-------|
    | `NSExpression`          | Unimplemented | ?             |       |
    | `NSComparisonPredicate` | Unimplemented | ?             |       |
    | `NSCompoundPredicate`   | Complete      | ?             |       |
    | `NSPredicate`           | Unimplemented | ?             |       |

* **Serialization**: Serialization and deserialization functionality.

    The classes in this group perform tasks like parsing and writing JSON, property lists and binary archives.

    | Entity Name                 | Status          | Test Coverage | Notes                                                                         |
    |-----------------------------|-----------------|---------------|-------------------------------------------------------------------------------|
    | `NSJSONSerialization`       | Mostly Complete | ?             | `jsonObject(with:options:)` remains unimplemented                             |
    | `NSKeyedArchiver`           | Mostly Complete | ?             | `init()` and `encodedData` remain unimplemented                               |
    | `NSKeyedCoderOldStyleArray` | N/A             | ?             | For internal use only                                                         |
    | `NSKeyedUnarchiver`         | Mostly Complete | ?             | `decodingFailurePolicy.set` remains unimplemented                             |
    | `NSKeyedArchiverHelpers`    | N/A             | N/A           | For internal use only                                                         |
    | `NSCoder`                   | Incomplete      | ?             | Decoding methods which require a concrete implementation remain unimplemented |
    | `PropertyListSerialization` | Mostly Complete | ?             | `propertyList(with:options:format:)` remains unimplemented                    |

* **XML**: A group of classes for parsing and representing XML documents and elements.

    The classes provided in this group are responsible for parsing and validating XML. They should be an interface for representing libxml2 in a more object-oriented manner.

    | Entity Name   | Status          | Test Coverage | Notes                                                                                                                                 |
    |---------------|-----------------|---------------|---------------------------------------------------------------------------------------------------------------------------------------|
    | `XMLDocument` | Mostly Complete | ?             | `init()`, `replacementClass(for:)`, and `object(byApplyingXSLT...)` remain unimplemented                                              |
    | `XMLDTD`      | Mostly Complete | ?             | `init()` remains unimplemented                                                                                                        |
    | `XMLDTDNode`  | Complete        | ?             |                                                                                                                                       |
    | `XMLElement`  | Incomplete      | ?             | `init(xmlString:)`, `elements(forLocalName:uri:)`, `attribute(forLocalName:uri:)`, namespace support, and others remain unimplemented |
    | `XMLNode`     | Incomplete      | ?             | `localName(forName:)`, `prefix(forName:)`, `predefinedNamespace(forPrefix:)`, and others remain unimplemented                         |
    | `XMLParser`   | Complete        | ?             |                                                                                                                                       |

* **Collections**: A group of classes to contain objects.

    The classes provided in this group provide basic collections. The primary role for these classes is to provide an interface layer between the CoreFoundation implementations and the standard library implementations. Additionally, they have useful extras like serialization support. There are also additional collection types that the standard library does not support.

     > _Note_: See [Known Issues](Issues.md) for more information about bridging between Foundation collection types and Swift standard library collection types.

    | Entity Name           | Status          | Test Coverage | Notes                                                                                                                                                               |
    |-----------------------|-----------------|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
    | `NSOrderedSet`        | Mostly Complete | ?             | `NSCoding` with non-keyed-coding archivers, `NS[Mutable]Copying`, and `array` & `set` (and associated indexing methods) remain unimplemented                        |
    | `NSMutableOrderedSet` | Mostly Complete | ?             | `NSCoding` and `sortRange(_:options:, usingComparator:)` with non-empty options remain unimplemented                                                                |
    | `NSCFArray`           | N/A             | ?             | For internal use only                                                                                                                                               |
    | `NSIndexSet`          | Mostly Complete | ?             | `NSCoding`, `NSCopying`, and concurrent `enumerateWithOptions(_:range:paramType:returnType:block:)` remain unimplemented                                            |
    | `NSMutableIndexSet`   | Mostly Complete | ?             | `shiftIndexesStarting(at:by:)` remains unimplemented                                                                                                                |
    | `IndexSet`            | Complete        | ?             |                                                                                                                                                                     |
    | `NSIndexPath`         | Mostly Complete | ?             | `NSCoding`, `NSCopying`, `getIndexes(_:)` remain unimplemented                                                                                                      |
    | `IndexPath`           | Complete        | ?             |                                                                                                                                                                     |
    | `NSArray`             | Mostly Complete | ?             | Reading/writing to files/URLs, concurrent `enumerateObjects(at:options:using:)`, and `sortedArray(from:options:usingComparator:)` with options remain unimplemented |
    | `NSMutableArray`      | Mostly Complete | ?             | `exchangeObject(at:withObjectAt:)` and `replaceObjects(in:withObjectsFromArray:)` remain unimplemented for types other than `NSMutableArray`                        |
    | `NSDictionary`        | Mostly Complete | ?             | `NSCoding` with non-keyed-coding archivers, `descriptionInStringsFileFormat`, `sharedKeySet(forKeys:)`, and reading/writing to files/URLs remain unimplemented      |
    | `NSMutableDictionary` | Mostly Complete | ?             | `descriptionInStringsFileFormat`, `sharedKeySet(forKeys:)`, and reading/writing to files/URLs remain unimplemented                                                  |
    | `NSCFDictionary`      | N/A             | ?             | For internal use only                                                                                                                                               |
    | `NSSet`               | Mostly Complete | ?             | `description(withLocale:)` and `customMirror` remain unimplemented                                                                                                  |
    | `NSMutableSet`        | Mostly Complete | ?             | `init?(coder:)` remains unimplemented                                                                                                                               |
    | `NSCountedSet`        | Mostly Complete | ?             | `init?(coder:)` remains unimplemented                                                                                                                               |
    | `NSCFSet`             | N/A             | ?             | For internal use only                                                                                                                                               |
    | `NSCache`             | Complete        | ?             |                                                                                                                                                                     |
    | `NSSortDescriptor`    | Unimplemented   | ?             |                                                                                                                                                                     |

* **RunLoop**: Timers, streams and run loops.

    The classes in this group provide support for scheduling work and acting upon input from external sources.

    | Entity Name      | Status          | Test Coverage | Notes                                                                         |
    |------------------|-----------------|---------------|-------------------------------------------------------------------------------|
    | `Port`           | Unimplemented   | ?             |                                                                               |
    | `MessagePort`    | Unimplemented   | ?             |                                                                               |
    | `SocketPort`     | Unimplemented   | ?             |                                                                               |
    | `PortMessage`    | Unimplemented   | ?             |                                                                               |
    | `RunLoop`        | Mostly Complete | ?             | `add(_: Port, forMode:)` and `remove(_: Port, forMode:)` remain unimplemented |
    | `NSStream`       | Mostly Complete | ?             |                                                                               |
    | `Stream`         | Unimplemented   | ?             | Methods which require a concrete implementation remain unimplemented          |
    | `InputStream`    | Mostly Complete | ?             | `getBuffer(_:length:)` remains unimplemented                                  |
    | `NSOutputStream` | Complete        | ?             |                                                                               |
    | `Timer`          | Complete        | ?             |                                                                               |

* **String**: A set of classes for scanning, manipulating and storing string values.

    The NSString implementation is present to provide an interface layer between CoreFoundation and Swift, but it also adds additional functionality on top of the Swift standard library String type. Other classes in this group provide mechanisms to scan, match regular expressions, store attributes in run arrays attached to strings, and represent sets of characters.

    > _Note_: See [Known Issues](Issues.md) for more information about bridging between the Foundation NSString types and Swift standard library String type.

    | Entity Name                 | Status          | Test Coverage | Notes                                                                                                                                                            |
    |-----------------------------|-----------------|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
    | `RegularExpression`         | Mostly Complete | ?             | `NSCoding` remains unimplemented                                                                                                                                 |
    | `Scanner`                   | Mostly Complete | ?             | `scanHex<T: _FloatLike>(_:locale:locationToScanFrom:to:)` and `localizedScannerWithString(_:)` remain unimplemented                                              |
    | `TextCheckingResult`        | Mostly Complete | ?             | `NSCoding`, `NSCopying`, `resultType`, and `range(at:)` remain unimplemented                                                                                     |
    | `NSAttributedString`        | Incomplete      | ?             | `NSCoding`, `NS[Mutable]Copying`, `attributedSubstring(from:)`, `isEqual(to:)`, `init(NSAttributedString:)`, and `enumerateAttributes(...)` remain unimplemented |
    | `NSMutableAttributedString` | Unimplemented   | ?             | Only `addAttribute(_:value:range:)` is implemented                                                                                                               |
    | `NSCharacterSet`            | Mostly Complete | ?             | `NSCoding` remains unimplemented                                                                                                                                 |
    | `NSMutableCharacterSet`     | Mostly Complete | ?             | Decoding remains unimplemented                                                                                                                                   |
    | `NSCFCharacterSet`          | N/A             | ?             | For internal use only                                                                                                                                            |
    | `CharacterSet`              | Complete        | ?             |                                                                                                                                                                  |
    | `NSString`                  | Mostly Complete | ?             | `init(contentsOf:usedEncoding:)`, `init(contentsOfFile:usedEncoding:)`, `enumerateSubstrings(in:options:using:)` remain unimplemented                            |
    | `NSStringEncodings`         | Complete        | N/A           | Contains definitions of string encodings                                                                                                                         |
    | `NSCFString`                | N/A             | N/A           | For internal use only                                                                                                                                            |
    | `NSStringAPI`               | N/A             | N/A           | Exposes `NSString` APIs on `String`                                                                                                                              |
{'fraction_non_alphanumeric': 0.10799398840621198, 'fraction_numerical': 3.5783296357260434e-05, 'mean_word_length': 0.5966691424327258, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1006, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2522916', 'n_tokens_mistral': 8496, 'n_tokens_neox': 8061, 'n_words': 2298}