{"action":"created","issue":{"url":"https://api.github.com/repos/apple/swift-package-manager/issues/294","repository_url":"https://api.github.com/repos/apple/swift-package-manager","labels_url":"https://api.github.com/repos/apple/swift-package-manager/issues/294/labels{/name}","comments_url":"https://api.github.com/repos/apple/swift-package-manager/issues/294/comments","events_url":"https://api.github.com/repos/apple/swift-package-manager/issues/294/events","html_url":"https://github.com/apple/swift-package-manager/pull/294","id":151728778,"number":294,"title":"[Utility] Add infrastructure for efficient streaming output.","user":{"login":"ddunbar","id":106625,"avatar_url":"https://avatars.githubusercontent.com/u/106625?v=3","gravatar_id":"","url":"https://api.github.com/users/ddunbar","html_url":"https://github.com/ddunbar","followers_url":"https://api.github.com/users/ddunbar/followers","following_url":"https://api.github.com/users/ddunbar/following{/other_user}","gists_url":"https://api.github.com/users/ddunbar/gists{/gist_id}","starred_url":"https://api.github.com/users/ddunbar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ddunbar/subscriptions","organizations_url":"https://api.github.com/users/ddunbar/orgs","repos_url":"https://api.github.com/users/ddunbar/repos","events_url":"https://api.github.com/users/ddunbar/events{/privacy}","received_events_url":"https://api.github.com/users/ddunbar/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2016-04-28T19:55:01Z","updated_at":"2016-04-28T23:33:00Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apple/swift-package-manager/pulls/294","html_url":"https://github.com/apple/swift-package-manager/pull/294","diff_url":"https://github.com/apple/swift-package-manager/pull/294.diff","patch_url":"https://github.com/apple/swift-package-manager/pull/294.patch"},"body":"This adds Utility infrastructure for several closely related things:\r\n\r\n - A new ByteString type, which is just a wrapper for a UInt8 array. This is\r\n   useful to have as a separate type because operations on arrays of bytes are\r\n   very common and can benefit from extra support.\r\n\r\n - An OutputByteStream class, which is designed to expose an efficient API for\r\n   the writing of streaming data. For now, it just supports writing to an\r\n   internal buffer, but the goal is that eventually it could support streaming\r\n   directly to disk to avoid unnecessary in memory data.\r\n\r\n   This is closely modeled on `llvm::raw_ostream`.\r\n\r\n - A streaming operator `<<<` for use with the above stream.\r\n\r\n - An infrastructure for streaming out \"formatted\" data (e.g., JSON) without\r\n   unnecessary copying. For example, this API allows writing a JSON-formatted\r\n   list with needing to construct temporary strings.\r\n\r\nThis commit adds performance tests, which you can run and use to investigate\r\nperformance on a release build, but they are disabled completely for now because\r\nwe don't have a way to disable them for debug builds, where they are too slow to\r\nrun as part of incremental development."},"comment":{"url":"https://api.github.com/repos/apple/swift-package-manager/issues/comments/215592691","html_url":"https://github.com/apple/swift-package-manager/pull/294#issuecomment-215592691","issue_url":"https://api.github.com/repos/apple/swift-package-manager/issues/294","id":215592691,"user":{"login":"ddunbar","id":106625,"avatar_url":"https://avatars.githubusercontent.com/u/106625?v=3","gravatar_id":"","url":"https://api.github.com/users/ddunbar","html_url":"https://github.com/ddunbar","followers_url":"https://api.github.com/users/ddunbar/followers","following_url":"https://api.github.com/users/ddunbar/following{/other_user}","gists_url":"https://api.github.com/users/ddunbar/gists{/gist_id}","starred_url":"https://api.github.com/users/ddunbar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ddunbar/subscriptions","organizations_url":"https://api.github.com/users/ddunbar/orgs","repos_url":"https://api.github.com/users/ddunbar/repos","events_url":"https://api.github.com/users/ddunbar/events{/privacy}","received_events_url":"https://api.github.com/users/ddunbar/received_events","type":"User","site_admin":false},"created_at":"2016-04-28T23:33:00Z","updated_at":"2016-04-28T23:33:00Z","body":"@swift-ci please test and merge"}}