{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":226696536,"defaultBranch":"master","name":"garble","ownerLogin":"burrowers","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-12-08T16:25:20.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/70822822?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1708256942.0","currentOid":""},"activityList":{"items":[{"before":"9f82b2bbfec7f4e1a218cc9e12700ac4d75f7f2f","after":"c41f026cd6df95e98667934e4895678dae28e11f","ref":"refs/heads/master","pushedAt":"2024-04-25T15:08:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lu4p","name":"Paul Scheduikat","path":"/lu4p","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46541492?s=80&v=4"},"commit":{"message":"README: clarify that we have no plans to exclude files or packages\n\nThis is a common question in the issue tracker: #631, #777, #802, #844.\nWhile here, tweak the wording and formatting in the section as well.","shortMessageHtmlLink":"README: clarify that we have no plans to exclude files or packages"}},{"before":"20a92460d52553749d6b77a3c549225b3794d75e","after":"9f82b2bbfec7f4e1a218cc9e12700ac4d75f7f2f","ref":"refs/heads/master","pushedAt":"2024-04-25T11:31:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mvdan","name":"Daniel Martí","path":"/mvdan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3576549?s=80&v=4"},"commit":{"message":"make pointer regular expressions more flexible\n\nWe just got a failure on Mac on CI with pointers past eight digits:\n\n (0x10432dec0,0x10433c690)\n\nUse `[[:xdigit:]]+` consistently.","shortMessageHtmlLink":"make pointer regular expressions more flexible"}},{"before":"d2beda1f0016a11b0b0a364eff06a153eb4a448a","after":"20a92460d52553749d6b77a3c549225b3794d75e","ref":"refs/heads/master","pushedAt":"2024-03-08T17:57:11.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"pagran","name":null,"path":"/pagran","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67878280?s=80&v=4"},"commit":{"message":"all: use cmd.Environ rather than os.Environ\n\nAdded in Go 1.19, this keeps os/exec's default environment logic,\nsuch as ensuring that $PWD is always set.","shortMessageHtmlLink":"all: use cmd.Environ rather than os.Environ"}},{"before":"f09db67c896d659d4cea2c7fbaf21ce09b5d491d","after":"d2beda1f0016a11b0b0a364eff06a153eb4a448a","ref":"refs/heads/master","pushedAt":"2024-02-26T11:10:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pagran","name":null,"path":"/pagran","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67878280?s=80&v=4"},"commit":{"message":"switch frankban/quicktest for go-quicktest/qt\n\nThe latter is newer and uses generics.","shortMessageHtmlLink":"switch frankban/quicktest for go-quicktest/qt"}},{"before":"66b61406c12990b7a02c906388027b8ea6c26b4a","after":"f09db67c896d659d4cea2c7fbaf21ce09b5d491d","ref":"refs/heads/master","pushedAt":"2024-02-18T14:23:13.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"pagran","name":null,"path":"/pagran","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67878280?s=80&v=4"},"commit":{"message":"use types.Info.PkgNameOf\n\nIt accomplishes the same Implicits/Defs logic we were doing here.","shortMessageHtmlLink":"use types.Info.PkgNameOf"}},{"before":"a7b0d40b72e8dae891139e001f7bda63abfa6ba4","after":"ea3674ea86a28a34cbc95768e6d6200d35dcefe8","ref":"refs/heads/ci-test","pushedAt":"2024-02-18T11:35:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mvdan","name":"Daniel Martí","path":"/mvdan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3576549?s=80&v=4"},"commit":{"message":"CHANGELOG: add entry for v0.12.1","shortMessageHtmlLink":"CHANGELOG: add entry for v0.12.1"}},{"before":null,"after":"ea3674ea86a28a34cbc95768e6d6200d35dcefe8","ref":"refs/heads/release-v0.12","pushedAt":"2024-02-18T11:34:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mvdan","name":"Daniel Martí","path":"/mvdan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3576549?s=80&v=4"},"commit":{"message":"CHANGELOG: add entry for v0.12.1","shortMessageHtmlLink":"CHANGELOG: add entry for v0.12.1"}},{"before":"69bc62c56cd253bc68ca75a59735f3f15d3567cb","after":"66b61406c12990b7a02c906388027b8ea6c26b4a","ref":"refs/heads/master","pushedAt":"2024-02-18T11:28:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pagran","name":null,"path":"/pagran","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67878280?s=80&v=4"},"commit":{"message":"obfuscate syscall again to fix x/sys/unix\n\nWhen updating Garble to support Go 1.22.0, CI on MacOS spotted\nthat the syscall package was failing to build given that it uses\nassembly code which is only allowed in some std packages.\n\nThat allowlist is based on import paths, and we were obfuscating\nthe syscall package's import path, so that was breaking GOOS=darwin.\nAs a fix, I added syscall to runtimeAndDeps to not obfuscate it.\n\nThat wasn't a great fix; it's not part of runtime and its dependencies,\nand there's no reason we should avoid obfuscating the package contents.\nNot obfuscating the contents in fact broke x/sys/unix,\nas it contains a copy of syscall.Rlimit which it type converted with.\n\nUndo that fix and reinstate the gogarble.txtar syscall test.\nImplement the fix where we only leave syscall's import path alone.\nAdd a regression test, and add a note about adding x/net and x/sys\nto check-third-party.sh so that we can catch these bugs earlier.\n\nFixes #830.","shortMessageHtmlLink":"obfuscate syscall again to fix x/sys/unix"}},{"before":"d76bc2eb47cd74a7f089ab92ba23435a1d69e021","after":"69bc62c56cd253bc68ca75a59735f3f15d3567cb","ref":"refs/heads/master","pushedAt":"2024-02-12T11:07:57.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"pagran","name":null,"path":"/pagran","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67878280?s=80&v=4"},"commit":{"message":"start using some Go 1.22 features\n\nWe no longer need to worry about the scope of range variables,\nwe can iterate over integers directly, and we can use cmp.Or too.\n\nI haven't paid close attention to using these everywhere.\nThis is mainly testing out the new features where I saw some benefit.","shortMessageHtmlLink":"start using some Go 1.22 features"}},{"before":"f3f57e361d60f598ac3aa899dac299aa76c4125c","after":"d76bc2eb47cd74a7f089ab92ba23435a1d69e021","ref":"refs/heads/master","pushedAt":"2024-02-11T21:46:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mvdan","name":"Daniel Martí","path":"/mvdan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3576549?s=80&v=4"},"commit":{"message":"add trash block generator docs","shortMessageHtmlLink":"add trash block generator docs"}},{"before":"55921a06d44a92aced8d0c77f1dde24c7f66580d","after":"f3f57e361d60f598ac3aa899dac299aa76c4125c","ref":"refs/heads/master","pushedAt":"2024-02-10T10:35:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mvdan","name":"Daniel Martí","path":"/mvdan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3576549?s=80&v=4"},"commit":{"message":"CHANGELOG: finish up for a release\n\nThe trash block generator docs aren't ready yet, they will come soon.\nThis is not a release blocker, given that the control flow obfuscator\nis experimental and opt-in for now.","shortMessageHtmlLink":"CHANGELOG: finish up for a release"}},{"before":"e8fe80d6272b793e8085d8947cb70eec1bf4c912","after":"55921a06d44a92aced8d0c77f1dde24c7f66580d","ref":"refs/heads/master","pushedAt":"2024-02-08T23:50:49.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"lu4p","name":"Paul Scheduikat","path":"/lu4p","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46541492?s=80&v=4"},"commit":{"message":"fix building for GOOS=darwin on Go 1.22.0\n\nIt seems like building with Go 1.22.0 for GOOS=darwin started\nrunning into some issues with the syscall package's use of ABIInternal\nin assembly source code:\n\n > exec garble build\n [stderr]\n # syscall\n [...].s:16: ABI selector only permitted when compiling runtime, reference was to \"runtime.entersyscall\"\n\nThe error can be reproduced from another platform like GOOS=linux\nas long as we have any test that cross-compiles std to GOOS=darwin.\nWe had crossbuild.txtar which only ensured we covered GOOS=windows\nand GOOS=linux, so add a third case to ensure MacOS is covered too.\n\nThis will slow down the tests a bit, but is important for the sake\nof ensuring that we catch these bugs early, even without MacOS on CI.\nIn fact, we hadn't caught this earlier for Go 1.22 precisely because\non CI we only tested on Go tip with GOOS=linux, for the sake of speed.\n\nAdding the rest of the package import paths from objabi.allowAsmABIPkgs\nto our runtimeAndDeps generated map solves this error.","shortMessageHtmlLink":"fix building for GOOS=darwin on Go 1.22.0"}},{"before":"c43cf741953e862f0acc4d84e6f05ce91b3cdfff","after":"e8fe80d6272b793e8085d8947cb70eec1bf4c912","ref":"refs/heads/master","pushedAt":"2024-01-16T15:01:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pagran","name":null,"path":"/pagran","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67878280?s=80&v=4"},"commit":{"message":"add trash block generator (#825)\n\n add trash block generator\r\n\r\nFor making static code analysis even more difficult, added feature for\r\ngenerating trash blocks that will never be executed. In combination\r\nwith control flow flattening makes it hard to separate trash code from\r\nthe real one, plus it causes a large number of trash references to\r\ndifferent methods.\r\n\r\nTrash blocks contain 2 types of statements:\r\n1. Function/method call with writing the results into local variables\r\nand passing them to other calls\r\n2. Shuffling or assigning random values to local variables","shortMessageHtmlLink":"add trash block generator (#825)"}},{"before":"7f2d1ed985f8dadde92a3aaa2ee1cb78495b62ba","after":null,"ref":"refs/heads/trash-generator","pushedAt":"2024-01-02T22:51:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pagran","name":null,"path":"/pagran","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67878280?s=80&v=4"}},{"before":null,"after":"7f2d1ed985f8dadde92a3aaa2ee1cb78495b62ba","ref":"refs/heads/trash-generator","pushedAt":"2024-01-02T22:50:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pagran","name":null,"path":"/pagran","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67878280?s=80&v=4"},"commit":{"message":"add trash block generator\n\nFor making static code analysis even more difficult, added feature for generating trash blocks that will never be executed. In combination with control flow flattening makes it hard to separate trash code from the real one, plus it causes a large number of trash references to different methods.\n\nTrash blocks contain 2 types of statements:\n1. Function/method call with writing the results into local variables and passing them to other calls\n2. Shuffling or assigning random values to local variables","shortMessageHtmlLink":"add trash block generator"}},{"before":"bdfa619f77d3524470b80ee4b784b76fc213e7ae","after":"c43cf741953e862f0acc4d84e6f05ce91b3cdfff","ref":"refs/heads/master","pushedAt":"2023-12-27T22:38:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mvdan","name":"Daniel Martí","path":"/mvdan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3576549?s=80&v=4"},"commit":{"message":"add package godoc\n\nSo that pkg.go.dev and `go doc` have something to show.\nCopying the first sentence from the README for brevity.","shortMessageHtmlLink":"add package godoc"}},{"before":"de65196495017077eb8407682d46d944349b6757","after":"bdfa619f77d3524470b80ee4b784b76fc213e7ae","ref":"refs/heads/master","pushedAt":"2023-12-25T22:30:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mvdan","name":"Daniel Martí","path":"/mvdan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3576549?s=80&v=4"},"commit":{"message":"support inline comments in asm #include lines\n\nThat is, the assembly line\n\n #include \"foo.h\" // bar\n\nwould make garble run into an error, as we would try to parse\nthe #include directive before we stripped comments,\neffectively trying to unquote the string\n\n \"foo.h\" // bar\n\nrather than just the included filename\n\n \"foo.h\"\n\nAdd test cases for asm but also cgo, while at it.\n\nFixes #812.","shortMessageHtmlLink":"support inline comments in asm #include lines"}},{"before":"3a9c9aa3d41efa7acc2f76568ea17d3d0a666874","after":"de65196495017077eb8407682d46d944349b6757","ref":"refs/heads/master","pushedAt":"2023-12-25T05:25:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lu4p","name":"Paul Scheduikat","path":"/lu4p","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46541492?s=80&v=4"},"commit":{"message":"fix support for go1.22rc1\n\nIn early December, a new internal package linknamed from runtime\nwas introduced, internal/chacha8rand. Re-generate the tables.\n\nNote that due to the same group of CLs and refactors,\nmath/rand and net are no longer linknamed from runtime in Go 1.22.\nThey are still in Go 1.21, so keep those entries around for now.\nWe can remove math/rand/v2, as it doesn't yet exist in 1.21.\n\nFixes #820.","shortMessageHtmlLink":"fix support for go1.22rc1"}},{"before":"59c41c9bbfb66a2c46cc819f3b3b974598df9bb9","after":"3a9c9aa3d41efa7acc2f76568ea17d3d0a666874","ref":"refs/heads/master","pushedAt":"2023-12-07T10:26:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"mvdan","name":"Daniel Martí","path":"/mvdan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3576549?s=80&v=4"},"commit":{"message":"fix shuffle obfuscation compiler optimization\n\nIn some cases, compiler could optimize the shuffle obfuscator,\ncausing exposing the obfuscated literal.\nAs a fix, added xor encryption of array indexes.","shortMessageHtmlLink":"fix shuffle obfuscation compiler optimization"}},{"before":"34cb273bf11939b59c1c0d185e8e183c3213362e","after":null,"ref":"refs/heads/literals-fix","pushedAt":"2023-12-07T01:15:10.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"lu4p","name":"Paul Scheduikat","path":"/lu4p","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46541492?s=80&v=4"}},{"before":"96d2d8b0debc5212432649d7755e18a9c54a45ef","after":"59c41c9bbfb66a2c46cc819f3b3b974598df9bb9","ref":"refs/heads/master","pushedAt":"2023-12-07T01:15:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lu4p","name":"Paul Scheduikat","path":"/lu4p","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46541492?s=80&v=4"},"commit":{"message":"In some cases, compiler could optimize the shuffle obfuscator, causing exposing the obfuscated literal. As a fix, added xor encryption of array indexes","shortMessageHtmlLink":"In some cases, compiler could optimize the shuffle obfuscator, causin…"}},{"before":"5b46b02522029abb9ef6a12730e1496fa3184891","after":null,"ref":"refs/heads/fixReflectMake","pushedAt":"2023-12-06T20:30:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"mvdan","name":"Daniel Martí","path":"/mvdan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3576549?s=80&v=4"}},{"before":"0752f9e5df94ae56becebceac0638711c4dbcf38","after":"96d2d8b0debc5212432649d7755e18a9c54a45ef","ref":"refs/heads/master","pushedAt":"2023-12-06T20:30:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mvdan","name":"Daniel Martí","path":"/mvdan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3576549?s=80&v=4"},"commit":{"message":"track types used in make assigned to a reflected type\n\nFixes #690.","shortMessageHtmlLink":"track types used in make assigned to a reflected type"}},{"before":null,"after":"34cb273bf11939b59c1c0d185e8e183c3213362e","ref":"refs/heads/literals-fix","pushedAt":"2023-12-06T20:25:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pagran","name":null,"path":"/pagran","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67878280?s=80&v=4"},"commit":{"message":"In some cases, compiler could optimize the shuffle obfuscator, causing exposing the obfuscated literal. As a fix, added xor encryption of array indexes","shortMessageHtmlLink":"In some cases, compiler could optimize the shuffle obfuscator, causin…"}},{"before":null,"after":"5b46b02522029abb9ef6a12730e1496fa3184891","ref":"refs/heads/fixReflectMake","pushedAt":"2023-12-06T02:33:15.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"lu4p","name":"Paul Scheduikat","path":"/lu4p","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46541492?s=80&v=4"},"commit":{"message":"Fixes #690","shortMessageHtmlLink":"Fixes #690"}},{"before":"de2c23b2c002a64bd612eb7a54ce50110f2b713d","after":"0752f9e5df94ae56becebceac0638711c4dbcf38","ref":"refs/heads/master","pushedAt":"2023-12-05T21:52:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lu4p","name":"Paul Scheduikat","path":"/lu4p","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46541492?s=80&v=4"},"commit":{"message":"fix ios build","shortMessageHtmlLink":"fix ios build"}},{"before":"02175c5018fb156dce4545fb5eb2398181306479","after":"de2c23b2c002a64bd612eb7a54ce50110f2b713d","ref":"refs/heads/master","pushedAt":"2023-12-04T00:02:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"lu4p","name":"Paul Scheduikat","path":"/lu4p","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46541492?s=80&v=4"},"commit":{"message":"README: start a section on the use cases for a Go obfuscator\n\nThis type of question has popped up a number of times before,\nparticularly when someone unfamiliar with obfuscators in other languages\nfirst hears about the existence of one for Go.","shortMessageHtmlLink":"README: start a section on the use cases for a Go obfuscator"}},{"before":"d283d8479c03b87eed6a4a2ebd5ccdf68b26ee5f","after":"02175c5018fb156dce4545fb5eb2398181306479","ref":"refs/heads/master","pushedAt":"2023-12-03T13:09:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mvdan","name":"Daniel Martí","path":"/mvdan","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3576549?s=80&v=4"},"commit":{"message":"CHANGELOG: finalise for v0.11.0","shortMessageHtmlLink":"CHANGELOG: finalise for v0.11.0"}},{"before":"9378ec959a6da66e334db960dd7afba0e4f37aed","after":"d283d8479c03b87eed6a4a2ebd5ccdf68b26ee5f","ref":"refs/heads/master","pushedAt":"2023-12-03T11:54:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pagran","name":null,"path":"/pagran","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67878280?s=80&v=4"},"commit":{"message":"add and test initial support for Go 1.22\n\nThe Go 1.21 linker patches luckily rebased on master as of\nde5b418bea70aaf27de1f47e9b5813940d1e15a4 just fine.\nThe addition of the strings import in the second patch was removed,\nsince the file in Go 1.22 now has this package import.\n\nWe can remove the Go 1.20 linker patches too, since we no longer support\nthat Go version in the upcoming release.\n\nStart treating runtime/internal/startlinetest as part of the runtime,\nsince otherwise its test-only trickery breaks \"garble build std\":\n\n # runtime/internal/startlinetest\n [...]/XS7r7lPHkTG.s:23: ABI selector only permitted when compiling runtime, reference was to \"HGoWHDsKwh.AlfA2or7Nnb\"\n asm: assembly of $WORK/.tmp/garble-shared1535203339/HGoWHDsKwh/XS7r7lPHkTG.s failed\n\nWhile here, update actions/checkout and staticcheck in CI.","shortMessageHtmlLink":"add and test initial support for Go 1.22"}},{"before":"36ada88a798e80c9de47bb8984862b80603ad499","after":"9378ec959a6da66e334db960dd7afba0e4f37aed","ref":"refs/heads/master","pushedAt":"2023-11-19T15:35:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pagran","name":null,"path":"/pagran","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/67878280?s=80&v=4"},"commit":{"message":"CHANGELOG: start drafting the next release notes","shortMessageHtmlLink":"CHANGELOG: start drafting the next release notes"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEOk6yNQA","startCursor":null,"endCursor":null}},"title":"Activity · burrowers/garble"}