{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":101450105,"defaultBranch":"main","name":"swift","ownerLogin":"stephentyrone","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2017-08-25T23:44:23.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/641446?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1726510310.0","currentOid":""},"activityList":{"items":[{"before":"51cf032b62a2af1370f648364ddf6b9d34358948","after":null,"ref":"refs/heads/borrowing-unprotected-pointer","pushedAt":"2024-09-16T18:11:50.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"}},{"before":"02fa080860712d23a61753cd961fe9b9bd31b4b0","after":"51cf032b62a2af1370f648364ddf6b9d34358948","ref":"refs/heads/borrowing-unprotected-pointer","pushedAt":"2024-09-13T13:20:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"},"commit":{"message":"Update LifetimeManager.swift","shortMessageHtmlLink":"Update LifetimeManager.swift"}},{"before":null,"after":"02fa080860712d23a61753cd961fe9b9bd31b4b0","ref":"refs/heads/borrowing-unprotected-pointer","pushedAt":"2024-09-13T13:17:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"},"commit":{"message":"Add non-inout `_withUnprotectedUnsafePointer`\n\nFor withUnsafePointer we have both an inout and a borrowing form, allowing it to be used with immutable values. Add a parallel form for the unprotected variant.","shortMessageHtmlLink":"Add non-inout _withUnprotectedUnsafePointer"}},{"before":"92286d457e14f5ff58408d8d0acdc400f895c827","after":null,"ref":"refs/heads/double-width-fixes","pushedAt":"2024-07-22T20:20:41.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"}},{"before":"8c5a0e8e5006d7baf98646ef06624b4f255f3c1a","after":"92286d457e14f5ff58408d8d0acdc400f895c827","ref":"refs/heads/double-width-fixes","pushedAt":"2024-07-15T14:39:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"},"commit":{"message":"Restore line accidentally deleted","shortMessageHtmlLink":"Restore line accidentally deleted"}},{"before":null,"after":"8c5a0e8e5006d7baf98646ef06624b4f255f3c1a","ref":"refs/heads/double-width-fixes","pushedAt":"2024-07-12T18:39:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"},"commit":{"message":"Bug fixes and improvements for DoubleWidth prototype\n\nPreviously multipliedReportingOverflow and masking shifts were implemented incorrectly for signed types and non-power-of-two bitWidths, respectively. Address those two bugs and additional implement &+, &-, and &*.","shortMessageHtmlLink":"Bug fixes and improvements for DoubleWidth prototype"}},{"before":null,"after":"c8424ab79cc028aeb91efe8b814b0826ebcadba7","ref":"refs/heads/smarter-inlining-for-character-properties-ascii","pushedAt":"2024-06-04T17:23:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"},"commit":{"message":"Be smarter about how we compute and inline isASCII and asciiValue\n\nThe existing implementation of these properties uses string equality, as well as _isSingleScalar and _firstScalar which have to dispatch through the underlying String's encoding checks; this results in several calls and a few tens of instructions inlined at the call site. However, it is an invariant of Character that the underlying String must be either small or large and native, so most of this extra work is wasted. This change moves the entire SmallString path inline (with no calls to the stdlib binary) and moves the entire large-native path out-of-line. We have to make the out-of-line path continue handling SmallString for bincompat purposes (this could be eliminated on platforms that are not ABI stable, or which are made ABI stable after this change), but it is quite cheap to do so--the resulting library function is still much smaller than what we used to have.\n\nThis nets us 2x (single-Unicode.Scalar Character) to 4x (Characters that need to use the large-native representation) speedups when iterating through a string and checking these properties (the actual speedup to the properties is much larger; the measurement after this change is almost entirely the iteration overhead--we'll have to look at that next). Codesize comes down significantly as well.","shortMessageHtmlLink":"Be smarter about how we compute and inline isASCII and asciiValue"}},{"before":"315994916cce99f4817b80b6ab4dd719383eee2b","after":null,"ref":"refs/heads/duration-static-member-tests","pushedAt":"2024-05-11T22:13:15.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"}},{"before":"78d8e2788454891dd1d3c669a8b79ea01258b4e5","after":null,"ref":"refs/heads/duration-perf-6.0","pushedAt":"2024-05-11T01:33:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"}},{"before":null,"after":"315994916cce99f4817b80b6ab4dd719383eee2b","ref":"refs/heads/duration-static-member-tests","pushedAt":"2024-05-11T01:31:52.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"},"commit":{"message":"Add some additional test coverage for duration static methods\n\nThe numerics of these operations is fairly subtle, and the overflow boundaries are somewhat surprising, so additional test coverage isn't a bad thing (also gives us an excuse to exercise Int128 more)","shortMessageHtmlLink":"Add some additional test coverage for duration static methods"}},{"before":"a860b26055caa9416729b936f76c859eb358baad","after":null,"ref":"refs/heads/allow-me-to-break-the-ice","pushedAt":"2024-05-09T10:41:09.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"}},{"before":"1c1df765ff314814afe33dc0124b2cba6ba1e622","after":"a860b26055caa9416729b936f76c859eb358baad","ref":"refs/heads/allow-me-to-break-the-ice","pushedAt":"2024-05-09T01:36:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"},"commit":{"message":"Make builtin.freeze TrivialUse\n\nAlso fix filecheck patterns for its test to work with asserts build.","shortMessageHtmlLink":"Make builtin.freeze TrivialUse"}},{"before":null,"after":"1c1df765ff314814afe33dc0124b2cba6ba1e622","ref":"refs/heads/allow-me-to-break-the-ice","pushedAt":"2024-05-08T19:38:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"},"commit":{"message":"Implement Builtin.freeze for integer and integer-vector types.\n\nhttps://llvm.org/docs/LangRef.html#freeze-instruction\n\n> If the argument is undef or poison, ‘freeze’ returns an arbitrary, but fixed, value of type ‘ty’. Otherwise, this instruction is a no-op and returns the input argument. All uses of a value returned by the same ‘freeze’ instruction are guaranteed to always observe the same value, while different ‘freeze’ instructions may yield different values.\n\nIt's most importation for integer and integer-vector types because floating-point results are generally not poison (except in the case of conversion from poison integer values).\nHowever, we might want to implement this for other types as well in the future.","shortMessageHtmlLink":"Implement Builtin.freeze for integer and integer-vector types."}},{"before":null,"after":"78d8e2788454891dd1d3c669a8b79ea01258b4e5","ref":"refs/heads/duration-perf-6.0","pushedAt":"2024-05-04T14:43:38.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"},"commit":{"message":"Avoid using generic static members on Duration across module boundaries (#73419)\n\n* Avoid using generic static members on Duration across module boundaries\r\n\r\nBecause the clocks are implemented in Concurrency, but Duration is in the Swift module, these don't get specialized. Add a fully-concrete internal init in Concurrency to avoid the problem.\r\n\r\n* Call self.init(_high:low:) explicitly.\r\n\r\n* Add availability annotation.","shortMessageHtmlLink":"Avoid using generic static members on Duration across module boundari…"}},{"before":"a51e465183ad14ff170164b43b2f3e76e8cdecb3","after":null,"ref":"refs/heads/duration-initializers-without-generics","pushedAt":"2024-05-04T14:40:21.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"}},{"before":"d88e107f33961edba52f1bd187f83cc84a6bb15b","after":null,"ref":"refs/heads/make-duration-statics-inlinable","pushedAt":"2024-05-04T14:39:23.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"}},{"before":"6684b21f8ff3028f2ed9688b2f993aca14eeb347","after":"d88e107f33961edba52f1bd187f83cc84a6bb15b","ref":"refs/heads/make-duration-statics-inlinable","pushedAt":"2024-05-04T01:22:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"},"commit":{"message":"Make static [milli/micro/nano]seconds members on Duration inlinable\n\nThis means that they can't use _Int128 for their implementation, but efficient implementation of these using only 64b arithmetic is pretty straightforward, so that's OK. This allows them to be specialized and mostly optimized away in release builds.","shortMessageHtmlLink":"Make static [milli/micro/nano]seconds members on Duration inlinable"}},{"before":"94988399018a9a9701b173885a5316e9109bf9f8","after":"a51e465183ad14ff170164b43b2f3e76e8cdecb3","ref":"refs/heads/duration-initializers-without-generics","pushedAt":"2024-05-03T20:33:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"},"commit":{"message":"Add availability annotation.","shortMessageHtmlLink":"Add availability annotation."}},{"before":null,"after":"6684b21f8ff3028f2ed9688b2f993aca14eeb347","ref":"refs/heads/make-duration-statics-inlinable","pushedAt":"2024-05-03T20:10:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"},"commit":{"message":"Make static [milli/micro/nano]seconds members on Duration inlinable\n\nThis means that they can't use _Int128 for their implementation, but efficient implementation of these using only 64b arithmetic is pretty straightforward, so that's OK. This allows them to be specialized and mostly optimized away in release builds.","shortMessageHtmlLink":"Make static [milli/micro/nano]seconds members on Duration inlinable"}},{"before":"f37744003a004c1a201073a058d082cf761ff091","after":"94988399018a9a9701b173885a5316e9109bf9f8","ref":"refs/heads/duration-initializers-without-generics","pushedAt":"2024-05-03T18:57:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"},"commit":{"message":"Call self.init(_high:low:) explicitly.","shortMessageHtmlLink":"Call self.init(_high:low:) explicitly."}},{"before":null,"after":"f37744003a004c1a201073a058d082cf761ff091","ref":"refs/heads/duration-initializers-without-generics","pushedAt":"2024-05-03T17:54:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"},"commit":{"message":"Avoid using generic static members on Duration across module boundaries\n\nBecause the clocks are implemented in Concurrency, but Duration is in the Swift module, these don't get specialized. Add a fully-concrete internal init in Concurrency to avoid the problem.","shortMessageHtmlLink":"Avoid using generic static members on Duration across module boundaries"}},{"before":"e074a1cd07b19633bdbeb58b9b1d58bb32a3e879","after":null,"ref":"refs/heads/exhaustive-float16-printing-6.0","pushedAt":"2024-04-19T19:32:15.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"}},{"before":null,"after":"e074a1cd07b19633bdbeb58b9b1d58bb32a3e879","ref":"refs/heads/exhaustive-float16-printing-6.0","pushedAt":"2024-04-18T16:30:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"},"commit":{"message":"Move Float16 print tests to their own file and test exhaustively (#72859)\n\nWe can easily test all 2**16 values, so let's do it. Also now _Float16 is properly supported in clang, so we can pass arguments to CPP that way, which lets us get snan right on more platforms.","shortMessageHtmlLink":"Move Float16 print tests to their own file and test exhaustively (swi…"}},{"before":"47457b1fcab5d2ee5ff505e2ec3e4c6121ef5a96","after":null,"ref":"refs/heads/not-like-this-not-in-debug","pushedAt":"2024-04-18T16:04:08.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"}},{"before":null,"after":"47457b1fcab5d2ee5ff505e2ec3e4c6121ef5a96","ref":"refs/heads/not-like-this-not-in-debug","pushedAt":"2024-04-18T01:34:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"},"commit":{"message":"Disable PrintFloat16 test with debug stdlib, it's slooooooow.","shortMessageHtmlLink":"Disable PrintFloat16 test with debug stdlib, it's slooooooow."}},{"before":"09758bfe9f741f25d2f74a547bb14322bce420cd","after":null,"ref":"refs/heads/up-with-wrapping-ops","pushedAt":"2024-04-06T00:45:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"}},{"before":"e0fa5155aa9f4fff16004f8282358314307f88f8","after":null,"ref":"refs/heads/integer-divide","pushedAt":"2024-04-06T00:45:22.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"}},{"before":"735e85a6f6af08936e741ba64fb68c6d6154b728","after":null,"ref":"refs/heads/comparable-reform","pushedAt":"2024-04-06T00:44:53.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"}},{"before":"101650061a82f57548ce519f7ecd6564198e35b1","after":null,"ref":"refs/heads/degybify-int128","pushedAt":"2024-04-06T00:44:39.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"}},{"before":"b9a07dcf892e9eac1c5c349b622bdf5c835222b5","after":null,"ref":"refs/heads/dont-test-duration-on-old-OSes","pushedAt":"2024-04-06T00:44:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"stephentyrone","name":"Stephen Canon","path":"/stephentyrone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/641446?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEt74pcAA","startCursor":null,"endCursor":null}},"title":"Activity · stephentyrone/swift"}