{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":31862566,"defaultBranch":"master","name":"Cobalt","ownerLogin":"cc-tweaked","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-03-08T19:35:39.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/92548034?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1706347635.0","currentOid":""},"activityList":{"items":[{"before":"97d2f361a5265fe890a619af0c8e524ab73f8ea2","after":"1b4ade20d3f229f4365b173458641d98122f1e74","ref":"refs/heads/master","pushedAt":"2024-04-08T11:13:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Bump to 0.9.3","shortMessageHtmlLink":"Bump to 0.9.3"}},{"before":"e9f6a37a8f2c1db3f0c56d402eea69c9a20b4384","after":"97d2f361a5265fe890a619af0c8e524ab73f8ea2","ref":"refs/heads/master","pushedAt":"2024-04-04T17:27:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Poll interrupted state when reading from InputStreams\n\nThis prevents hard aborts when reading incredibly long (1GB+ strings).\nIdeally we wouldn't even be able to create strings that long, but that's\na whole 'nother issue!","shortMessageHtmlLink":"Poll interrupted state when reading from InputStreams"}},{"before":"684e2ff29c3fb34b2013865d18a625ee477ad81c","after":"e9f6a37a8f2c1db3f0c56d402eea69c9a20b4384","ref":"refs/heads/master","pushedAt":"2024-04-03T08:15:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Fix some errors missing source positions\n\nThere was an off-by-one error in DebugHelpers.fileLine which meant we\nnever checked the first frame in the stack. This meant if we only had a\nsingle Lua function on the stack (such as when in a fresh coroutine),\nthe error would not contain any line information.","shortMessageHtmlLink":"Fix some errors missing source positions"}},{"before":"0f27e43c8f56340ec60684cec9505c3b082845e3","after":"684e2ff29c3fb34b2013865d18a625ee477ad81c","ref":"refs/heads/master","pushedAt":"2024-03-21T18:35:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Bump to 0.9.2","shortMessageHtmlLink":"Bump to 0.9.2"}},{"before":"3a7f60320476bf70ad757d3c3c5316d35e821455","after":"0f27e43c8f56340ec60684cec9505c3b082845e3","ref":"refs/heads/master","pushedAt":"2024-03-13T10:16:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Correctly handle yielding a couple of missing places\n\n - Don't allow our basic LibFunction types (Zero, One, Two, Three,\n Vararg) to yield. Only Resumable (and Suspended) functions should be\n able to yield.\n\n - Fix tostring and ipairs not correctly handling yields - we now just\n wrap everything in a SuspendedAction.\n\nI do kinda wonder if we should go the Rembulan route, and have separate\nunresolved and resolved unwind throwables. Looking at things like\nipairs, where one branch yields and the other doesn't - there's definite\nscope for errors.\n\nMaybe something we could enforce via checker framework instead, I\nguess!?\n\nFixes #86","shortMessageHtmlLink":"Correctly handle yielding a couple of missing places"}},{"before":"6b0d2e234ebbfb1ffd20cde071ecd4c782be6da1","after":"6536189750811a301cff560099dc2ce4ad34316e","ref":"refs/heads/java-6","pushedAt":"2024-02-28T10:05:44.000Z","pushType":"push","commitsCount":52,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'origin/master' into java-6","shortMessageHtmlLink":"Merge remote-tracking branch 'origin/master' into java-6"}},{"before":"8f303b33ac0f06dfe393a6bc34b23ac7449d4ba2","after":"3a7f60320476bf70ad757d3c3c5316d35e821455","ref":"refs/heads/master","pushedAt":"2024-02-18T18:17:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Bump to 0.9.1","shortMessageHtmlLink":"Bump to 0.9.1"}},{"before":"bf20e880260be1ae93b0a38b97bd6609d57695cd","after":"8f303b33ac0f06dfe393a6bc34b23ac7449d4ba2","ref":"refs/heads/master","pushedAt":"2024-02-18T18:17:08.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Warmup Lua interpreter before benchmarks","shortMessageHtmlLink":"Warmup Lua interpreter before benchmarks"}},{"before":"6a4e506d3358c280bb2b0e807d446f64b030ff54","after":"bf20e880260be1ae93b0a38b97bd6609d57695cd","ref":"refs/heads/master","pushedAt":"2024-02-14T17:52:01.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Fix LuaTable.getFreePos failing on GCed keys\n\nWe incorrectly strengthened the table key, which meant we didn't\ndistinguish between empty keys and GCed weak keys.\n\nFixes cc-tweaked/CC-Tweaked#1721","shortMessageHtmlLink":"Fix LuaTable.getFreePos failing on GCed keys"}},{"before":"6df1e873220959781ce654d2e519196ca39a1d17","after":"6a4e506d3358c280bb2b0e807d446f64b030ff54","ref":"refs/heads/master","pushedAt":"2024-01-27T09:27:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Bump to 0.9.0","shortMessageHtmlLink":"Bump to 0.9.0"}},{"before":"937ee1cf0bedf77080c459960b8166999aea275e","after":"6df1e873220959781ce654d2e519196ca39a1d17","ref":"refs/heads/master","pushedAt":"2024-01-21T16:23:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Fix debug.getinfo source info for native functions","shortMessageHtmlLink":"Fix debug.getinfo source info for native functions"}},{"before":"c51075bf65d5c82ca09d0b1642408a616ad4f74f","after":"937ee1cf0bedf77080c459960b8166999aea275e","ref":"refs/heads/master","pushedAt":"2024-01-18T23:51:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Remove some unused method on Varargs","shortMessageHtmlLink":"Remove some unused method on Varargs"}},{"before":"5aebd8899246d6e19508c6b651ea80db9a0dcf70","after":"c51075bf65d5c82ca09d0b1642408a616ad4f74f","ref":"refs/heads/master","pushedAt":"2024-01-17T22:40:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Simplify (and correct) debug.getinfo\n\nThis removes the weird support for calling debug.getinfo(f), and it'd\nfind that function on the stack.","shortMessageHtmlLink":"Simplify (and correct) debug.getinfo"}},{"before":"ec464687e0ca01ba710ee2b468e9d9942e84cc52","after":"5aebd8899246d6e19508c6b651ea80db9a0dcf70","ref":"refs/heads/master","pushedAt":"2024-01-17T20:09:55.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Replace LuaTable.Node with flat arrays\n\nRather than having a Node[] array, we now have separate arrays for keys,\nvalues and the next slot. This allows for slightly less pointer chasing\nand arguably better cache locality - never sure how much we can do that\nin Java!\n\nValhalla can't come soon enough :(.","shortMessageHtmlLink":"Replace LuaTable.Node with flat arrays"}},{"before":"2e9c89bf9128c68fdb0a1e3bc965dab20a8693fc","after":"ec464687e0ca01ba710ee2b468e9d9942e84cc52","ref":"refs/heads/master","pushedAt":"2024-01-17T09:58:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Basic benchmarking","shortMessageHtmlLink":"Basic benchmarking"}},{"before":"826d6f08753f7ec9903dd676ebfd64ad70675ca2","after":"2e9c89bf9128c68fdb0a1e3bc965dab20a8693fc","ref":"refs/heads/master","pushedAt":"2024-01-15T20:29:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Correctly presize table when setting from varags\n\n - Change LuaTable.presize to allocate the exact size, rather than the\n next power of two. Unfortunately this does matter when searching for\n nil boundaries.\n\n - Presize tables when assigning from varargs. Again, while this should\n be invisible in theory, it does have an observable difference when\n getting the table length.\n\nFixes #85","shortMessageHtmlLink":"Correctly presize table when setting from varags"}},{"before":"2513ce7f3b35a04246cdfaf2f846d39f28038d0d","after":"826d6f08753f7ec9903dd676ebfd64ad70675ca2","ref":"refs/heads/master","pushedAt":"2024-01-03T18:40:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Bump to 0.8.2","shortMessageHtmlLink":"Bump to 0.8.2"}},{"before":"a6e3033e5a4d38cc257c3dc6aee9b5c569e9229d","after":"2513ce7f3b35a04246cdfaf2f846d39f28038d0d","ref":"refs/heads/master","pushedAt":"2024-01-02T22:33:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Fix hash size calculations counting cleared keys\n\nWhen the hash part of the table is resized, we count the number of still\nactive nodes and create an array to the nearest power of two. However,\nour handling here was broken - we counted nodes with a nil key* and not\n*value*.\n\nIf a table had several keys added to it, and then removed, and then a\nnew set of keys added, this would cause both the old and new keys to be\ncounted, causing the new hash array to be much larger than needed.\n\nWhile the old keys are not copied across (so they're not leaked as such),\nif we continue to add/remove unique keys, eventually the new map will\nalso be saturated, and then resized to be even bigger again! This means\nthat the length of the hash part can grow exponentially, even if the\nnumber of keys stays constant.\n\nEmbarassing that this has gone un-noticed for 6 years!\n\nFixes cc-tweaked/cc-tweaked#1665","shortMessageHtmlLink":"Fix hash size calculations counting cleared keys"}},{"before":"6d5253850c8cccca05a96fdaf645acc4eb1ea2fa","after":"a6e3033e5a4d38cc257c3dc6aee9b5c569e9229d","ref":"refs/heads/master","pushedAt":"2023-12-31T12:49:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Don't error if we already have a lookahead token\n\nWhen parsing \"if true do goto() end\", we'll try to parse the \"goto()\" as\na goto statement (which requires one lookahead), then backtrack and\nparse the whole if body as a full statement (which then tries to parse\nas a goto statement again).\n\nAs the lookahead token is already present, this causes a crash. To fix\nthis, we remove this assertion - it makes sense in PUC Lua, but not for\nCobalt's more complex parser.\n\nFixes #84","shortMessageHtmlLink":"Don't error if we already have a lookahead token"}},{"before":"c9852dc4ee7ebc5555384a1f224558791c242a69","after":"6d5253850c8cccca05a96fdaf645acc4eb1ea2fa","ref":"refs/heads/master","pushedAt":"2023-12-16T19:36:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Bump to 0.8.1","shortMessageHtmlLink":"Bump to 0.8.1"}},{"before":"6edb872a4f5686bfaf72e0a3f0f766c50a562851","after":"c9852dc4ee7ebc5555384a1f224558791c242a69","ref":"refs/heads/master","pushedAt":"2023-12-10T12:31:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Fix incorrect lines associated with gotos\n\nWe were calling lastLine() (the line of the previous token) rather than\nusing token.line.\n\nAlso clean up the error messages a little.\n\nCloses #83","shortMessageHtmlLink":"Fix incorrect lines associated with gotos"}},{"before":"8a33018376a499bd5fb1415c933e620345616b18","after":"6edb872a4f5686bfaf72e0a3f0f766c50a562851","ref":"refs/heads/master","pushedAt":"2023-11-22T21:42:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Switch to 5.4-style math.random\n\nCloses #80","shortMessageHtmlLink":"Switch to 5.4-style math.random"}},{"before":"d61499995a4b872dc306659f2308c6172b2750b9","after":"8a33018376a499bd5fb1415c933e620345616b18","ref":"refs/heads/master","pushedAt":"2023-11-12T18:43:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Tiny tweaks to make us more JPMS friendly\n\n - Move internal unwind code to an internal module\n - Fix several issues with classes having a default constructor.","shortMessageHtmlLink":"Tiny tweaks to make us more JPMS friendly"}},{"before":null,"after":"68fe3cea37b025fd546539e6a0b8832bef10ec57","ref":"refs/heads/feature/memory-accounting-benchmark","pushedAt":"2023-11-12T16:06:35.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Unseal some classes","shortMessageHtmlLink":"Unseal some classes"}},{"before":"385f727cbc52f2f7ebf047990f338d56bf9aed0f","after":"d61499995a4b872dc306659f2308c6172b2750b9","ref":"refs/heads/master","pushedAt":"2023-11-08T18:16:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Bump to 0.8.0","shortMessageHtmlLink":"Bump to 0.8.0"}},{"before":"981d5cac7c0fd623a442a0cf12e699194fe88be5","after":null,"ref":"refs/heads/feature/lua52","pushedAt":"2023-11-08T18:15:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"}},{"before":"bfddd6584470bcccc97eeea05539898caace99af","after":"385f727cbc52f2f7ebf047990f338d56bf9aed0f","ref":"refs/heads/master","pushedAt":"2023-11-08T18:15:06.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Merge pull request #77 from SquidDev/feature/lua52\n\nUpdate to Lua 5.2","shortMessageHtmlLink":"Merge pull request #77 from SquidDev/feature/lua52"}},{"before":"3b9e158fb4a25b4a645abca7fbed01f60bc60441","after":"981d5cac7c0fd623a442a0cf12e699194fe88be5","ref":"refs/heads/feature/lua52","pushedAt":"2023-11-08T18:12:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Require labels in functions to be unique\n\nWhile one cannot have duplicate labels within a block, Lua 5.2 and 5.3\nallowed duplicate labels within a function, jumping to the label in the\nclosest block.\n\nLua 5.4 removed this feature, requiring unique labels across a function.\nWe apply the same change for Cobalt, as (IMO) label resolution rules are\nconfusing.\n\nNote, this does *not* port the rest of Lua 5.4's goto code. Lua 5.4 now\nsearches all active labels when jumping (not just those in the current\nblock). This simplifies the code, but also generates slightly different\nbytecode (as it can't eliminate closes in as many cases). To aid\ntesting, we leave the rest of the code as-is.","shortMessageHtmlLink":"Require labels in functions to be unique"}},{"before":"2dd292544b988d39b7da861465d704c5ee78f9e4","after":"bfddd6584470bcccc97eeea05539898caace99af","ref":"refs/heads/master","pushedAt":"2023-11-08T13:42:37.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Error on non-real numbers in string.format\n\nWe adopt the Lua 5.2 semantics here of rejecting non-reals, but still\nallowing non-integers.\n\nCloses #54.","shortMessageHtmlLink":"Error on non-real numbers in string.format"}},{"before":"d79845484f9b8e87f3021c53812fabb0a71a1c93","after":"2dd292544b988d39b7da861465d704c5ee78f9e4","ref":"refs/heads/master","pushedAt":"2023-11-08T09:48:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"SquidDev","name":"Jonathan Coates","path":"/SquidDev","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4346137?s=80&v=4"},"commit":{"message":"Update to Gradle 8.4\n\nAlso make everything compatible with the configuration cache. A bit\npointless for a project this small, but worth doing anyway.","shortMessageHtmlLink":"Update to Gradle 8.4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEKtP35gA","startCursor":null,"endCursor":null}},"title":"Activity ยท cc-tweaked/Cobalt"}