{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":269253801,"defaultBranch":"main","name":"SentinelArrays.jl","ownerLogin":"JuliaData","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-06-04T03:42:49.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/20142970?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1720314260.0","currentOid":""},"activityList":{"items":[{"before":"dda9a2cad7bf06cf0c7cbd416916c6caba8ca20f","after":"b9a7ef7676f36f5bd32d9665ba35013a9d9e241a","ref":"refs/heads/main","pushedAt":"2024-07-07T00:40:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"},"commit":{"message":"Update Project.toml","shortMessageHtmlLink":"Update Project.toml"}},{"before":"008e818c520cd965d7879a827b2dbc3429e09e3e","after":"dda9a2cad7bf06cf0c7cbd416916c6caba8ca20f","ref":"refs/heads/main","pushedAt":"2024-07-07T00:39:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"},"commit":{"message":"Bugfix ChainedVector constructor performance (#103)\n\nCurrently the ChainedVector constructor has bad performance if the args have empty entries.\r\n\r\n```\r\nimport Random\r\nstruct MyType\r\n x::Float64\r\n y::Float64\r\nend\r\n\r\nx1 = [ MyType[MyType(rand(), rand()) for _ in 1:Random.rand(1:6)] for _ in 1:1_000_000];\r\n@time ChainedVector(x1); # 0.017 secs\r\n\r\nx2 = [ MyType[MyType(rand(), rand()) for _ in 1:Random.rand(0:5)] for _ in 1:1_000_000];\r\n@time ChainedVector(x2); # 24 secs\r\n```\r\n\r\nNote that the difference comes only from the fact that x2 might have empty entries\r\nwhereas x1 doesn't.\r\n\r\nThe problem is that the function cleanup! has runtime proportional to the number of\r\nelements times the number of elements which are empty vectors.\r\n\r\n```\r\nfunction cleanup_original!(arrays, inds)\r\n @assert length(arrays) == length(inds)\r\n for i = length(arrays):-1:1\r\n if !isassigned(arrays, i) || length(arrays[i]) == 0\r\n deleteat!(arrays, i)\r\n deleteat!(inds, i)\r\n end\r\n end\r\n return\r\nend\r\n\r\nfunction cleanup_new!(arrays, inds)\r\n @assert length(arrays) == length(inds)\r\n mask_it = Base.Iterators.filter(i->isassigned(arrays, i) && length(arrays[i])>0, 1:length(arrays))\r\n n = 0\r\n for k in mask_it\r\n n += 1\r\n k > n || continue\r\n arrays[n] = arrays[k]\r\n inds[n] = inds[k]\r\n end\r\n resize!(arrays, n)\r\n resize!(inds, n)\r\n return\r\nend\r\n```\r\n\r\nWe can check that the new version is faster and returns the same result\r\n\r\n```\r\nx = [ MyType[MyType(rand(), rand()) for _ in 1:Random.rand(0:5)] for _ in 1:1_000_000];\r\narrays = x;\r\ninds = Vector{Int}(undef, length(arrays));\r\n\r\nx1 = copy(x);\r\ninds1 = copy(inds);\r\nx2 = copy(x);\r\ninds2 = copy(inds);\r\n\r\n@time cleanup_original!(x1, inds1) # 20 secs\r\n@time cleanup_new!(x2, inds2) # 0.04 secs\r\n\r\nall(x1 .== x2) # true\r\nall(inds1 .== inds2) # true\r\n```","shortMessageHtmlLink":"Bugfix ChainedVector constructor performance (#103)"}},{"before":"3570c2bd379c41f7290e7f29b180200f02add12a","after":"008e818c520cd965d7879a827b2dbc3429e09e3e","ref":"refs/heads/main","pushedAt":"2024-07-05T04:23:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"},"commit":{"message":"Bump version to 1.4.4","shortMessageHtmlLink":"Bump version to 1.4.4"}},{"before":"d13560a5639f4ecfd07cd9fb39cd1bae5a0aecea","after":"3570c2bd379c41f7290e7f29b180200f02add12a","ref":"refs/heads/main","pushedAt":"2024-07-05T04:23:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"},"commit":{"message":"Fix argmax, findmax, findXwithfirst, and expand testing (#99)\n\n* Fix argmin and argmax\r\n\r\n* Revert bqd fix\r\n\r\n* Add two small tests\r\n\r\n* Moar tests to figure out what's wrong\r\n\r\n* Fix tests\r\n\r\n* Fix comparison order\r\n\r\n* Add more vectors to test and test vectors\r\n\r\n* last fix\r\n\r\n* One comp only\r\n\r\n* Add tests\r\n\r\n* Improve test set\r\n\r\n* Integrate test suggestions by @Seelengrab\r\n\r\n* Fix argmax tests with function\r\n\r\n* Fix findmax\r\n\r\n* Test collect\r\n\r\n* Run some tests only on 1.6 or greater\r\n\r\n* Fix static if\r\n\r\n* Add more tests\r\n\r\n* Update chainedvector.jl\r\n\r\n* Update src/chainedvector.jl\r\n\r\n* Update test/chainedvector.jl\r\n\r\nCo-authored-by: Milan Bouchet-Valat \r\n\r\n* Revert back to approx in sum test\r\n\r\n---------\r\n\r\nCo-authored-by: Guillaume Dalle <22795598+gdalle@users.noreply.github.com>\r\nCo-authored-by: Milan Bouchet-Valat ","shortMessageHtmlLink":"Fix argmax, findmax, findXwithfirst, and expand testing (#99)"}},{"before":"3e06d31c6728e3c4b3619a1d2c91c7ee4a3cc82b","after":"d13560a5639f4ecfd07cd9fb39cd1bae5a0aecea","ref":"refs/heads/main","pushedAt":"2024-05-21T04:11:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"},"commit":{"message":"Update Project.toml","shortMessageHtmlLink":"Update Project.toml"}},{"before":"8ee21d4d6d9ad96e86f9d682ac602f831108e954","after":null,"ref":"refs/heads/td-fix-bv-piracy","pushedAt":"2024-05-21T04:11:13.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"}},{"before":"f9e11b7a27ed9988b60fb9c0f973aefa7e19653a","after":"3e06d31c6728e3c4b3619a1d2c91c7ee4a3cc82b","ref":"refs/heads/main","pushedAt":"2024-05-21T04:11:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"},"commit":{"message":"Fix accidental piracy in `BufferedVector` (#102)","shortMessageHtmlLink":"Fix accidental piracy in BufferedVector (#102)"}},{"before":null,"after":"8ee21d4d6d9ad96e86f9d682ac602f831108e954","ref":"refs/heads/td-fix-bv-piracy","pushedAt":"2024-05-17T20:35:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Drvi","name":"Tomáš Drvoštěp","path":"/Drvi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2074313?s=80&v=4"},"commit":{"message":"Fix accidental piracy in `BufferedVector`","shortMessageHtmlLink":"Fix accidental piracy in BufferedVector"}},{"before":"2aff8c10721435e6d2b9df198698f475c3bb80a4","after":null,"ref":"refs/heads/quinnj-patch-2","pushedAt":"2024-05-10T13:19:02.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"}},{"before":"c047384accf62a7cf0becb9e5fafd626aa3e699c","after":"f9e11b7a27ed9988b60fb9c0f973aefa7e19653a","ref":"refs/heads/main","pushedAt":"2024-05-10T13:19:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"},"commit":{"message":"Bump version to 1.4.2 (#100)","shortMessageHtmlLink":"Bump version to 1.4.2 (#100)"}},{"before":null,"after":"2aff8c10721435e6d2b9df198698f475c3bb80a4","ref":"refs/heads/quinnj-patch-2","pushedAt":"2024-05-10T13:18:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"},"commit":{"message":"Bump version to 1.4.2","shortMessageHtmlLink":"Bump version to 1.4.2"}},{"before":"fa840f994ae821d921a9973fbd5e244d35102b1c","after":"c047384accf62a7cf0becb9e5fafd626aa3e699c","ref":"refs/heads/main","pushedAt":"2024-05-10T12:22:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"},"commit":{"message":"Fix argmin and argmax (#98)\n\n* Fix argmin and argmax\r\n\r\n* Revert bqd fix\r\n\r\n* Add two small tests\r\n\r\n* Moar tests to figure out what's wrong\r\n\r\n* Fix tests\r\n\r\n* Fix comparison order\r\n\r\n* last fix\r\n\r\n* One comp only","shortMessageHtmlLink":"Fix argmin and argmax (#98)"}},{"before":"819c99acd6a2ce198d1d9b786e8d3a3a61915a0d","after":null,"ref":"refs/heads/td-stdlibs-compat","pushedAt":"2023-11-04T21:31:48.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bkamins","name":"Bogumił Kamiński","path":"/bkamins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6187170?s=80&v=4"}},{"before":"e05d290fdcccd449821418603984a7042519724b","after":"fa840f994ae821d921a9973fbd5e244d35102b1c","ref":"refs/heads/main","pushedAt":"2023-11-04T21:31:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bkamins","name":"Bogumił Kamiński","path":"/bkamins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6187170?s=80&v=4"},"commit":{"message":"Add compat bounds for `Dates` and `Random` (#93)","shortMessageHtmlLink":"Add compat bounds for Dates and Random (#93)"}},{"before":null,"after":"819c99acd6a2ce198d1d9b786e8d3a3a61915a0d","ref":"refs/heads/td-stdlibs-compat","pushedAt":"2023-11-04T11:01:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Drvi","name":"Tomáš Drvoštěp","path":"/Drvi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2074313?s=80&v=4"},"commit":{"message":"Add compat bounds for `Dates` and `Random`","shortMessageHtmlLink":"Add compat bounds for Dates and Random"}},{"before":"95b414f0eed908a4006883ee72fe7fc73beb02a0","after":null,"ref":"refs/heads/td-fix-bufferedvectors-shiftleft","pushedAt":"2023-11-04T10:41:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Drvi","name":"Tomáš Drvoštěp","path":"/Drvi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2074313?s=80&v=4"}},{"before":"733e8703093d79bb036a6eb7d0471adf26ef8155","after":null,"ref":"refs/heads/td-v1.4.1","pushedAt":"2023-11-04T10:38:48.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bkamins","name":"Bogumił Kamiński","path":"/bkamins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6187170?s=80&v=4"}},{"before":"4a24bf8744922263c957baca43f8616d47a39131","after":"e05d290fdcccd449821418603984a7042519724b","ref":"refs/heads/main","pushedAt":"2023-11-04T10:38:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bkamins","name":"Bogumił Kamiński","path":"/bkamins","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6187170?s=80&v=4"},"commit":{"message":"v1.4.1 (#92)","shortMessageHtmlLink":"v1.4.1 (#92)"}},{"before":null,"after":"733e8703093d79bb036a6eb7d0471adf26ef8155","ref":"refs/heads/td-v1.4.1","pushedAt":"2023-11-04T10:26:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Drvi","name":"Tomáš Drvoštěp","path":"/Drvi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2074313?s=80&v=4"},"commit":{"message":"v1.4.1","shortMessageHtmlLink":"v1.4.1"}},{"before":"54fab5584a434bcf794bcebc306460b0e9e22cd3","after":"4a24bf8744922263c957baca43f8616d47a39131","ref":"refs/heads/main","pushedAt":"2023-11-04T10:22:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Drvi","name":"Tomáš Drvoštěp","path":"/Drvi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2074313?s=80&v=4"},"commit":{"message":"fix out-of-bounds bug in BufferedVector (#91)\n\n* fix out-of-bounds bug in BufferedVector\r\n---------\r\n\r\nCo-authored-by: Drvi ","shortMessageHtmlLink":"fix out-of-bounds bug in BufferedVector (#91)"}},{"before":null,"after":"95b414f0eed908a4006883ee72fe7fc73beb02a0","ref":"refs/heads/td-fix-bufferedvectors-shiftleft","pushedAt":"2023-11-04T09:49:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Drvi","name":"Tomáš Drvoštěp","path":"/Drvi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2074313?s=80&v=4"},"commit":{"message":"Fix `shiftleft!` for BufferedVectors.jl","shortMessageHtmlLink":"Fix shiftleft! for BufferedVectors.jl"}},{"before":"48879c1083e446b230ff01c17836159416d154a7","after":null,"ref":"refs/heads/jq-assert-index","pushedAt":"2023-06-06T23:01:57.880Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"}},{"before":"bc8aba39cda847b363e0f2a0129254caf45cd378","after":"54fab5584a434bcf794bcebc306460b0e9e22cd3","ref":"refs/heads/main","pushedAt":"2023-06-06T23:01:56.793Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"},"commit":{"message":"Add an assert in ChainedVectorIndex checkbounds (#90)\n\nFixes https://github.com/apache/arrow-julia/issues/418.\r\nThe issue here is that a ChainedVectorIndex is really only valid for\r\nthe ChainedVector it came from, so assert that in checkbounds, which\r\ncan be compiled away w/ the checkbounds functionality if an indexing\r\noperation is marked `@inbounds`.","shortMessageHtmlLink":"Add an assert in ChainedVectorIndex checkbounds (#90)"}},{"before":null,"after":"48879c1083e446b230ff01c17836159416d154a7","ref":"refs/heads/jq-assert-index","pushedAt":"2023-06-06T22:53:32.325Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"},"commit":{"message":"Add an assert in ChainedVectorIndex checkbounds\n\nFixes https://github.com/apache/arrow-julia/issues/418.\nThe issue here is that a ChainedVectorIndex is really only valid for\nthe ChainedVector it came from, so assert that in checkbounds, which\ncan be compiled away w/ the checkbounds functionality if an indexing\noperation is marked `@inbounds`.","shortMessageHtmlLink":"Add an assert in ChainedVectorIndex checkbounds"}},{"before":"244c323c6e9747d4d8534c0027f09ab8f31cdc0d","after":"bc8aba39cda847b363e0f2a0129254caf45cd378","ref":"refs/heads/main","pushedAt":"2023-05-30T18:34:47.239Z","pushType":"push","commitsCount":1,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"},"commit":{"message":"Update Project.toml","shortMessageHtmlLink":"Update Project.toml"}},{"before":null,"after":"e373403762c5ef43b5178d2accb788b6f06450a7","ref":"refs/heads/quinnj-patch-1","pushedAt":"2023-05-30T18:34:16.304Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"},"commit":{"message":"Update Project.toml","shortMessageHtmlLink":"Update Project.toml"}},{"before":"19b49e21ba3c2b80d1dfc2222af81d48d0b92b70","after":null,"ref":"refs/heads/td-buffered-vectors","pushedAt":"2023-05-30T18:33:55.620Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"}},{"before":"d3c0df629a62bfbdbe15aaefaad96844a0a1986e","after":"244c323c6e9747d4d8534c0027f09ab8f31cdc0d","ref":"refs/heads/main","pushedAt":"2023-05-30T18:33:54.579Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"quinnj","name":"Jacob Quinn","path":"/quinnj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2896623?s=80&v=4"},"commit":{"message":"Add BufferedVectors.jl (#89)","shortMessageHtmlLink":"Add BufferedVectors.jl (#89)"}},{"before":null,"after":"19b49e21ba3c2b80d1dfc2222af81d48d0b92b70","ref":"refs/heads/td-buffered-vectors","pushedAt":"2023-05-30T16:06:58.350Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Drvi","name":"Tomáš Drvoštěp","path":"/Drvi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2074313?s=80&v=4"},"commit":{"message":"Add BufferedVectors.jl","shortMessageHtmlLink":"Add BufferedVectors.jl"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEeKK3GAA","startCursor":null,"endCursor":null}},"title":"Activity · JuliaData/SentinelArrays.jl"}