{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":128157796,"defaultBranch":"master","name":"piccolo","ownerLogin":"kyren","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-04-05T04:11:40.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1538607?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1719764066.0","currentOid":""},"activityList":{"items":[{"before":"77630cb59a67e3098bb9588daedfbcd4ce4132b7","after":"fcbaabc924292170d6549c55440ecbd0522b275a","ref":"refs/heads/master","pushedAt":"2024-08-26T02:57:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Try very hard to guard against all possible misuses of `Thread`\n\nPrior to this commit, it was still possible to trigger panics in\n`Executor` methods by misusing `Thread` and `Executor` in clever ways.\nFor example, by setting a single `Thread` as the main thread of *two*\n`Executor`s, you could end up in a situation where you could\nartificially make the main `Thread` of one executor have any arbitrary\nmode, and this could trigger `unreachable!()` panics.\n\nNow, we try much harder to guard against all of these possible\nsituations. We add a *new* error condition to `Executor::step` which is\npurposefully *outside* of the normal Lua error handling, since it\nindicates a probable bug in the Rust-side use of an `Executor`. Normal\n`piccolo` code which uses `Executor` directly will probably always want\nto *unwrap* this error, since it shouldn't be possible to cause this\nerror with correct `piccolo` use in normal cases.","shortMessageHtmlLink":"Try very hard to guard against all possible misuses of Thread"}},{"before":"16a254ea89a285f268605a6ed2728c394e76b171","after":"77630cb59a67e3098bb9588daedfbcd4ce4132b7","ref":"refs/heads/master","pushedAt":"2024-08-26T02:56:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Try very hard to guard against all possible misuses of `Thread`\n\nPrior to this commit, it was still possible to trigger panics in\n`Executor` methods by misusing `Thread` and `Executor` in clever ways.\nFor example, by setting a single `Thread` as the main thread of *two*\n`Executor`s, you could end up in a situation where you could\nartificially make the main `Thread` of one executor have any arbitrary\nmode, and this could trigger `unreachable!()` panics.\n\nNow, we try much harder to guard against all of these possible\nsituations. We add a *new* error condition to `Executor::step` which is\npurposefully *outside* of the normal Lua error handling, since it\nindicates a probable bug in the Rust-side use of an `Executor`. Normal\n`piccolo` code which uses `Executor` directly will probably always want\nto *unwrap* this error, since it shouldn't be possible to cause this\nerror with correct `piccolo` use in normal cases.","shortMessageHtmlLink":"Try very hard to guard against all possible misuses of Thread"}},{"before":"2863c4ae9cae68924d1244af119346f4452e185b","after":"16a254ea89a285f268605a6ed2728c394e76b171","ref":"refs/heads/master","pushedAt":"2024-08-26T02:54:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Try very hard to guard against all possible misuses of `Thread`\n\nPrior to this commit, it was still possible to trigger panics in\n`Executor` methods by misusing `Thread` and `Executor` in clever ways.\nFor example, by setting a single `Thread` as the main thread of *two*\n`Executor`s, you could end up in a situation where you could\nartificially make the main `Thread` of one executor have any arbitrary\nmode, and this could trigger `unreachable!()` panics.\n\nNow, we try much harder to guard against all of these possible\nsituations. We add a *new* error condition to `Executor::step` which is\npurposefully *outside* of the normal Lua error handling, since it\nindicates a probable bug in the Rust-side use of an `Executor`. Normal\n`piccolo` code which uses `Executor` directly will probably always want\nto *unwrap* this error, since it shouldn't be possible to cause this\nerror with correct `piccolo` use in normal cases.","shortMessageHtmlLink":"Try very hard to guard against all possible misuses of Thread"}},{"before":"bbd615d7400b3b7a1f9780d8874e91a90ae05b6d","after":"2863c4ae9cae68924d1244af119346f4452e185b","ref":"refs/heads/master","pushedAt":"2024-07-25T02:42:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Simplify `UserMethods` / `StaticUserMethods` and document them.\n\nRather than only sharing the `__index` table, now shares the\nentire metatable between all wrapped values. This is simpler to\nexplain, doesn't require creating a new metatable on each call to\n`UserMethods::wrap`, and has just as many footguns as before.\n\nAdds documentation to guarantee that `UserData::new_static` uses\n`gc_arena::Static` internally, which allows for also simplifying\n`StaticUserMethods` to be a direct wrapper of `UserMethods` (we now\nknow manually downcasting any `StaticUserMethods::wrap` wrapped type\nwith `UserData::downcast_static` must work because they both use\n`gc_arena::Static` internally).","shortMessageHtmlLink":"Simplify UserMethods / StaticUserMethods and document them."}},{"before":"94b689946c2bfdfc3ca31fc6f23cdf368b4e2cbc","after":"bbd615d7400b3b7a1f9780d8874e91a90ae05b6d","ref":"refs/heads/master","pushedAt":"2024-07-25T00:40:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Better behavior of `deserialize_any` w.r.t. `unit` and `none`","shortMessageHtmlLink":"Better behavior of deserialize_any w.r.t. unit and none"}},{"before":"a0e39e470f9c4c656716e69874d2b14296a8d70b","after":"94b689946c2bfdfc3ca31fc6f23cdf368b4e2cbc","ref":"refs/heads/master","pushedAt":"2024-07-23T00:46:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"update gc-arena to latest git","shortMessageHtmlLink":"update gc-arena to latest git"}},{"before":"07e73311d09903ba2b89bdde5cbc0083255ec447","after":"a0e39e470f9c4c656716e69874d2b14296a8d70b","ref":"refs/heads/master","pushedAt":"2024-07-23T00:38:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Move async metaop support code to meta_ops.rs\n\nSince it is ONLY used in meta_ops.rs now, it's better to keep it there\nand also not part of the public API.","shortMessageHtmlLink":"Move async metaop support code to meta_ops.rs"}},{"before":"9139f34841faaded60af621d6c61e2551c95145b","after":"07e73311d09903ba2b89bdde5cbc0083255ec447","ref":"refs/heads/master","pushedAt":"2024-07-23T00:31:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Move async metaop support code to meta_ops.rs\n\nSince it is ONLY used in meta_ops.rs now, it's better to keep it there\nand also not part of the public API.","shortMessageHtmlLink":"Move async metaop support code to meta_ops.rs"}},{"before":"49b15c98d843c73890207fdadec010a098f349e0","after":"9139f34841faaded60af621d6c61e2551c95145b","ref":"refs/heads/master","pushedAt":"2024-07-23T00:27:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Implement `__concat`, `table.concat`, and add Lua polyfills for `table.sort` and `table.move` (#88)\n\n* Implement table.sort\r\n\r\n* Add support for comparison function in table.sort\r\n\r\n* Implement table.concat\r\n\r\n* Add polyfill for table.move\r\n\r\n* Add support for __concat metamethod, use it in table.concat\r\n\r\n* Reduce async metaop boilerplate, fix some review issues\r\n\r\n* Add overflow checks to length estimation, share code\r\n\r\n* Move separated concat impl into meta_ops\r\n\r\n* Inline fallback sequences into the main concat functions\r\n\r\n* Fix warnings","shortMessageHtmlLink":"Implement __concat, table.concat, and add Lua polyfills for `tabl…"}},{"before":"f546bc923cee48a62f9368634a8f5435c6eb2988","after":"49b15c98d843c73890207fdadec010a098f349e0","ref":"refs/heads/master","pushedAt":"2024-07-17T00:32:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"update doc comments for `gc-arena` `Rootable` trait changes","shortMessageHtmlLink":"update doc comments for gc-arena Rootable trait changes"}},{"before":"442c60f58f48df5142bd55d7ead42bb82183b3d7","after":"f546bc923cee48a62f9368634a8f5435c6eb2988","ref":"refs/heads/master","pushedAt":"2024-07-16T23:57:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Remove references to the removed `Local` type in the README","shortMessageHtmlLink":"Remove references to the removed Local type in the README"}},{"before":"b29208c60192a720bbe4569c931c44ce53c5992c","after":"442c60f58f48df5142bd55d7ead42bb82183b3d7","ref":"refs/heads/master","pushedAt":"2024-07-10T04:04:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"more comment updates, use `FreezeGuard` as the primary way of explaining `Frozen` handles","shortMessageHtmlLink":"more comment updates, use FreezeGuard as the primary way of explain…"}},{"before":"861bdfefed162863a50321dbf1fe3f245af2d17d","after":"b29208c60192a720bbe4569c931c44ce53c5992c","ref":"refs/heads/master","pushedAt":"2024-07-10T03:44:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"fixup an inaccurate comment","shortMessageHtmlLink":"fixup an inaccurate comment"}},{"before":"7400863ff2537f5fff722785f80bcb59affdf55e","after":"861bdfefed162863a50321dbf1fe3f245af2d17d","ref":"refs/heads/master","pushedAt":"2024-07-10T03:31:36.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Make `ExternLuaError` Send and Sync again","shortMessageHtmlLink":"Make ExternLuaError Send and Sync again"}},{"before":"badf3884dbe5030d9db6489c9ded59c96c2b85f8","after":"7400863ff2537f5fff722785f80bcb59affdf55e","ref":"refs/heads/master","pushedAt":"2024-07-09T19:30:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"doc fixes","shortMessageHtmlLink":"doc fixes"}},{"before":"5edb1b5c13f55bfd9d6163d8d749057a1465f536","after":"badf3884dbe5030d9db6489c9ded59c96c2b85f8","ref":"refs/heads/master","pushedAt":"2024-07-09T17:58:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"More changes to the async sequences API\n\nSimplify everything by ditching the entire 'seq lifetime idea.\n\nIt provided a benefit, but the benefit was miniscule in comparison to\nthe complexity cost. The main benefit was that it prevented misusing\nstashed values when stashed inside the future driving an async sequence.\nHOWEVER, several things already prevent this misuse:\n\nOne, the futures must be 'static (they were 'seq, but this is the same\nidea), so the only way to tunnel a Stashed handle out of the future is\nby using something like a channel or an Rc, and this is pretty hard to\ndo *on accident*.\n\nTwo, `DynamicRoot` and thus all of the stashed handle types do not\nimplement `Collect`, and this *already* prevents storing any of these\nroots inside the GC context without at least some extra work. You can\nmake a new type which implements Collect and stores a root and\n`#[collect(require_static)]` that field, but this is already an extra\nspeed bump. You can always capture one of these handles in a callback or\nsomething too, but the handles are completely unusable without the\n`AsyncSequence` to fetch them, so again this is unlikely to be done on\naccident.\n\nThe biggest issue though is that the user already has to be careful with\nwhat they do because stashing and fetching values from the *registry* is\nutterly painless *and wrong*. Since it's so easy to make the same kinds\nof mistakes using the registry, and pretty tough to accidentally make\nthe mistakes that the 'seq lifetime prevented without using the\nregistry, the overall benefit ends up being small.\n\nIt is just as possible now as it was before to build an async future\ncorrectly, and without the possibility of uncollectable GC cyles... only\na few guard rails have been removed. The result requires less unsafe\ncode to implement and less complexity for the user.","shortMessageHtmlLink":"More changes to the async sequences API"}},{"before":"a8a1700c614a8a6da6e7442a530854b551ff7f59","after":"5edb1b5c13f55bfd9d6163d8d749057a1465f536","ref":"refs/heads/master","pushedAt":"2024-07-08T20:49:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"fix gc-arena version","shortMessageHtmlLink":"fix gc-arena version"}},{"before":"87aeac27ad55a01361f499ac9b31f202f8942370","after":"a8a1700c614a8a6da6e7442a530854b551ff7f59","ref":"refs/heads/master","pushedAt":"2024-07-08T20:42:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Avoid needing thread locals for the implementation of async sequences","shortMessageHtmlLink":"Avoid needing thread locals for the implementation of async sequences"}},{"before":"16a97e5c5bf6a2d25e4b6e10a64b4df74c5941c9","after":"87aeac27ad55a01361f499ac9b31f202f8942370","ref":"refs/heads/master","pushedAt":"2024-07-08T18:16:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Remove the `Display` impl for `String`\n\nInstead, make the user acknowledge that Lua strings must be displayed\nlossily.\n\nAlso, use the *debug* lossy display in the `Debug` impl for `String`.","shortMessageHtmlLink":"Remove the Display impl for String"}},{"before":"53aecae8af9c681218cd232600437a3e92028b17","after":"16a97e5c5bf6a2d25e4b6e10a64b4df74c5941c9","ref":"refs/heads/master","pushedAt":"2024-07-08T18:00:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"doc fixes and renames for StaticError -> ExternError changes","shortMessageHtmlLink":"doc fixes and renames for StaticError -> ExternError changes"}},{"before":"87a2c96a93f15948a875f279acaa5486968e06d0","after":"53aecae8af9c681218cd232600437a3e92028b17","ref":"refs/heads/master","pushedAt":"2024-07-08T17:19:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"add StaticXXX typedefs for StashedXXX handles with 'static branding","shortMessageHtmlLink":"add StaticXXX typedefs for StashedXXX handles with 'static branding"}},{"before":"ecb63e174598d7057c90aec979e4eb2d14d9dcd6","after":"87a2c96a93f15948a875f279acaa5486968e06d0","ref":"refs/heads/master","pushedAt":"2024-07-08T16:34:06.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"fixup doc errors","shortMessageHtmlLink":"fixup doc errors"}},{"before":"29d1b88e507fc6551963576ec922612f7d784b79","after":"ecb63e174598d7057c90aec979e4eb2d14d9dcd6","ref":"refs/heads/master","pushedAt":"2024-07-08T16:10:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Minor error cleanup\n\nRename StaticXXX errors to ExternXXX, add some better documentation, add\nExternError::root_cause and use it, don't use `#[error(transparent)]`\nfor public error types so that ExternError::root_cause is much more\nuseful.","shortMessageHtmlLink":"Minor error cleanup"}},{"before":"5b1cef25de48816d7a56c73697868320b6b6d714","after":"29d1b88e507fc6551963576ec922612f7d784b79","ref":"refs/heads/master","pushedAt":"2024-07-07T03:34:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Combine StashedXXX values and LocalXXX values into a single type\n\nAll StashedXXX values are now branded by an invariant 'ctx lifetime,\nvalues stashed in the registry have 'ctx set to 'static to make them\nunrestricted.\n\nThis is a small usability setback, because values stashed in the\nregistry like `StashedExecutor` need to be changed to\n`StashedExecutor<'static>`. We could provide a separate set of typedefs\nthat are always 'static if this is too annoying.\n\nThe benefit is that there is not a split between Local and Stashed\nvalues, meaning that Local values no longer have to be opaque wrappers\nor differently shaped than their stashed counterparts.","shortMessageHtmlLink":"Combine StashedXXX values and LocalXXX values into a single type"}},{"before":"a1c6e3a466edfab60f82b55feca01e3faadb2a5f","after":"5b1cef25de48816d7a56c73697868320b6b6d714","ref":"refs/heads/master","pushedAt":"2024-07-06T23:54:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Implement comparison metamethods, support them in math.min/max (#89)","shortMessageHtmlLink":"Implement comparison metamethods, support them in math.min/max (#89)"}},{"before":"cc914d2e126f4479a969ef080b75fffadbb9f390","after":"a1c6e3a466edfab60f82b55feca01e3faadb2a5f","ref":"refs/heads/master","pushedAt":"2024-07-04T08:37:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Properly handle dead keys in `RawTable::length`\n\nAlso improves the comments a bit in some tricky parts in RawTable.","shortMessageHtmlLink":"Properly handle dead keys in RawTable::length"}},{"before":"cf70bd696012df27226ed64e62df5e965b3a7da1","after":"cc914d2e126f4479a969ef080b75fffadbb9f390","ref":"refs/heads/master","pushedAt":"2024-07-04T08:33:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Properly handle dead keys in `RawTable::length`\n\nAlso improves the comments a bit in some tricky parts in RawTable.","shortMessageHtmlLink":"Properly handle dead keys in RawTable::length"}},{"before":"f617091aef4f2082d73c02ac9f9c3ed9850cf611","after":"cf70bd696012df27226ed64e62df5e965b3a7da1","ref":"refs/heads/master","pushedAt":"2024-07-02T21:42:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"add a version of `Table::get` that does return value conversion","shortMessageHtmlLink":"add a version of Table::get that does return value conversion"}},{"before":"ff5b563f8cd63570d6eaf845f0c62aceec062741","after":"f617091aef4f2082d73c02ac9f9c3ed9850cf611","ref":"refs/heads/master","pushedAt":"2024-07-02T18:55:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"A lot of improvements to RawTable\n\nThis is a set of several interrelated changes:\n\n* Fix the grow logic in `Table::set` to properly handle the case where\n the entry doesn't fit in the map part but also the optimal array\n size is bigger than the current array size, and the key is either not\n array-like or is larger than the optimal array size.\n\n* Improve the reserve methods on `RawTable` to better follow the\n intended invariants: reserving space in the array should always *grow*\n it *and* move values from the map part into the array part.\n\n* Add access to the array part of the `RawTable` as a (mutable) slice.\n There are no invariants to uphold for the array portion as long as\n the size doesn't change, so this is okay, and allows for very fast\n array-like access to the table.\n\n* Use the direct array accessors in the table stdlib module instead of\n having part of the implementation be in table.rs. This will also allow\n doing the fast-path array shifting part in *blocks* to avoid taking up\n large amounts of time per step.","shortMessageHtmlLink":"A lot of improvements to RawTable"}},{"before":"038681e1458ab3306ba16ae77e9e87b6fdc5d0b5","after":"ff5b563f8cd63570d6eaf845f0c62aceec062741","ref":"refs/heads/master","pushedAt":"2024-07-02T11:05:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kyren","name":"Catherine West","path":"/kyren","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1538607?s=80&v=4"},"commit":{"message":"Implement `table.insert` and `table.remove` (#87)\n\n* Add table.insert and table.remove\r\n\r\nThis implementation does not yet support the len, index, and newindex\r\nmetamethods.\r\n\r\n* Refactor RawTable grow code into a method, use it in insert\r\n\r\n* Add support for metamethods in table.insert and table.remove\r\n\r\n* Consume fuel in table.insert and table.remove\r\n\r\n* Add partial tests for table.insert and table.remove\r\n\r\n* Add more tests, match PRLua in `insert(t, nil, val)` case","shortMessageHtmlLink":"Implement table.insert and table.remove (#87)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0yNlQwMjo1NzoxMC4wMDAwMDBazwAAAASjz8qV","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0yNlQwMjo1NzoxMC4wMDAwMDBazwAAAASjz8qV","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNy0wMlQxMTowNToxOS4wMDAwMDBazwAAAAR0teIi"}},"title":"Activity · kyren/piccolo"}