{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":130285553,"defaultBranch":"master","name":"c2rust","ownerLogin":"immunant","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-04-20T00:05:50.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/7826584?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1714780667.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"b489d09e091e82275f9963b8ace85686c921ba13","ref":"refs/heads/analyze-rewrite-non-null","pushedAt":"2024-05-03T23:57:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: implement Option::as_ref/as_mut ownership rewrites","shortMessageHtmlLink":"analyze: implement Option::as_ref/as_mut ownership rewrites"}},{"before":null,"after":"cea1bec7edaba8e4e3c8b498fb47f30703072282","ref":"refs/heads/sp/gc-test","pushedAt":"2024-05-03T17:05:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"gc_test/gc_lib: fix warnings","shortMessageHtmlLink":"gc_test/gc_lib: fix warnings"}},{"before":"6569a719e0c3288eec5d33fad6cbf9f8f5684c00","after":"2a758059011f2b8553c4a92bebe653a91aefbb17","ref":"refs/heads/analyze-compare-static-dynamic","pushedAt":"2024-05-03T16:35:48.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: implement static/dynamic NON_NULL comparison mode","shortMessageHtmlLink":"analyze: implement static/dynamic NON_NULL comparison mode"}},{"before":null,"after":"6569a719e0c3288eec5d33fad6cbf9f8f5684c00","ref":"refs/heads/analyze-compare-static-dynamic","pushedAt":"2024-05-02T22:34:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: implement static/dynamic NON_NULL comparison mode","shortMessageHtmlLink":"analyze: implement static/dynamic NON_NULL comparison mode"}},{"before":"90ca19ab9200f8122ad8f18302038460112363dd","after":"9511a4f28d18d626a9b9d6fc73596f60e51e2cf7","ref":"refs/heads/master","pushedAt":"2024-05-02T20:04:33.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: allow overriding dataflow for specific permissions (#1088)\n\nThis adds a new internal feature for overriding dataflow analysis for\r\nspecific permissions of specific pointers. The `propagate` method of\r\n`dataflow` now takes an additional `updates_forbidden` set, which has a\r\n`PermissionSet` mask for every `PointerId`, and avoids adding or\r\nremoving a permission for a `ptr` if the corresponding bit is set in\r\n`updates_forbidden[ptr]`. When `updates_forbidden` is used, the\r\nresulting permissions after running `dataflow` might not actually\r\nsatisfy the dataflow constraints.\r\n\r\nThis is designed to support the PDG \"`NON_NULL` override\" feature, where\r\ninformation about nullability from the PDG can override static analysis\r\nresults, though that feature is not part of the current PR.","shortMessageHtmlLink":"analyze: allow overriding dataflow for specific permissions (#1088)"}},{"before":"8851c89b6ea9d52020129ad56ca7b3d4e3283256","after":"9f3129d4328a9f86514e1e89bbb4c81523b9b043","ref":"refs/heads/analyze-dataflow-readonly","pushedAt":"2024-05-02T17:05:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: refactor: move some TestAttr handling into helper fns","shortMessageHtmlLink":"analyze: refactor: move some TestAttr handling into helper fns"}},{"before":"774e4b1d101b6ef7055f93421d76c99da36fb198","after":"8851c89b6ea9d52020129ad56ca7b3d4e3283256","ref":"refs/heads/analyze-dataflow-readonly","pushedAt":"2024-05-02T16:46:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: refactor: move some TestAttr handling into helper fns","shortMessageHtmlLink":"analyze: refactor: move some TestAttr handling into helper fns"}},{"before":"e226aff7a299e4db46d2907a72fcfd1b34f63e97","after":"90ca19ab9200f8122ad8f18302038460112363dd","ref":"refs/heads/master","pushedAt":"2024-05-02T07:58:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"thedataking","name":"Per Larsen","path":"/thedataking","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4011337?s=80&v=4"},"commit":{"message":"CI: Fix Azure pipelines Darwin build","shortMessageHtmlLink":"CI: Fix Azure pipelines Darwin build"}},{"before":"e226aff7a299e4db46d2907a72fcfd1b34f63e97","after":"aa998166c513aeef964916da16f3e44c5942fe72","ref":"refs/heads/feature/ci-dev","pushedAt":"2024-05-02T07:57:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"thedataking","name":"Per Larsen","path":"/thedataking","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4011337?s=80&v=4"},"commit":{"message":"CI: Fix Azure pipelines Darwin build","shortMessageHtmlLink":"CI: Fix Azure pipelines Darwin build"}},{"before":"774abc706849ea21a51a66a09fed1ba12d747c86","after":"e226aff7a299e4db46d2907a72fcfd1b34f63e97","ref":"refs/heads/feature/ci-dev","pushedAt":"2024-05-02T07:50:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"thedataking","name":"Per Larsen","path":"/thedataking","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4011337?s=80&v=4"},"commit":{"message":"analyze: uncomment line in scripts/run_pointwise_metrics.sh (#1087)\n\nIn #1074, I had commented out a line to speed up testing, and\r\naccidentally left it that way when I merged the branch.","shortMessageHtmlLink":"analyze: uncomment line in scripts/run_pointwise_metrics.sh (#1087)"}},{"before":null,"after":"774e4b1d101b6ef7055f93421d76c99da36fb198","ref":"refs/heads/analyze-dataflow-readonly","pushedAt":"2024-04-29T23:53:30.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: add test case exercising updates_forbidden","shortMessageHtmlLink":"analyze: add test case exercising updates_forbidden"}},{"before":"03facd34b3722ba981696df9057057f1cf100d91","after":"e226aff7a299e4db46d2907a72fcfd1b34f63e97","ref":"refs/heads/master","pushedAt":"2024-04-29T20:27:59.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: uncomment line in scripts/run_pointwise_metrics.sh (#1087)\n\nIn #1074, I had commented out a line to speed up testing, and\r\naccidentally left it that way when I merged the branch.","shortMessageHtmlLink":"analyze: uncomment line in scripts/run_pointwise_metrics.sh (#1087)"}},{"before":"31bc7e4767496318aacb703c5ba2a55719a3079e","after":null,"ref":"refs/heads/fw/only-delete-temp","pushedAt":"2024-04-29T20:22:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"fw-immunant","name":"Frances Wingerter","path":"/fw-immunant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91758128?s=80&v=4"}},{"before":"3d85abc8939063bec85ebfb90ba7d8d2b58fc13f","after":"03facd34b3722ba981696df9057057f1cf100d91","ref":"refs/heads/master","pushedAt":"2024-04-29T20:22:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"fw-immunant","name":"Frances Wingerter","path":"/fw-immunant","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91758128?s=80&v=4"},"commit":{"message":"c2rust-transpile: only delete compile_commands.json if it was a temporary file we created","shortMessageHtmlLink":"c2rust-transpile: only delete compile_commands.json if it was a tempo…"}},{"before":null,"after":"07070492c774a19cce03ea970fb532ead172ffd0","ref":"refs/heads/analyze-metrics-scripts-fix","pushedAt":"2024-04-29T18:49:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: uncomment line in scripts/run_pointwise_metrics.sh","shortMessageHtmlLink":"analyze: uncomment line in scripts/run_pointwise_metrics.sh"}},{"before":"d85b4d024895c69398089a51cb67d93240ac577e","after":"3d85abc8939063bec85ebfb90ba7d8d2b58fc13f","ref":"refs/heads/master","pushedAt":"2024-04-29T18:42:44.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: add scripts for computing pointwise metrics (#1074)\n\nAdds scripts for computing \"pointwise success rate\" metrics. For each\r\nfunction, we run the static analysis and rewrite that function in\r\nisolation, producing a new `.rs` file where that function has been\r\nrewritten but all other code remains the same. Then we remove the\r\n`unsafe` qualifier from the target function and try to compile the code.\r\nThe \"pointwise success rate\" is the number of functions on which this\r\nprocedure succeeds.\r\n\r\nThe main entry point is\r\n`c2rust-analyze/scripts/run_pointwise_metrics_lighttpd.sh` (as the name\r\nsuggests, this is designed to compute the success rate on lighttpd\r\nspecifically). It uses a few helpers: `pointwise_try_build.sh` tries to\r\nremove `unsafe` and compile the rewritten code for a specific function,\r\n`pointwise_try_build_unmodified.sh` does the same but on the unmodified,\r\nnon-rewritten code (used for computing a baseline success rate), and\r\n`pointwise_metrics.py` tallies up the results and prints overall counts.\r\n\r\nCurrent output on lighttpd:\r\n```\r\npointwise: 98/1008 functions passed\r\nunmodified: 149/1008 functions passed\r\nimproved 20 functions\r\nbroke 71 functions\r\n```\r\n\r\nThis PR depends on #1073, which implements the `pointwise` rewrite mode\r\nin `c2rust-analyze`.","shortMessageHtmlLink":"analyze: add scripts for computing pointwise metrics (#1074)"}},{"before":"08fb4755e2f0cdcba94c769642b263326b3cca7f","after":"833e5f6c0e91790b0996546fe93cf7090fdc5ac2","ref":"refs/heads/analyze-metrics-scripts","pushedAt":"2024-04-29T18:18:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: unify similar metrics scripts","shortMessageHtmlLink":"analyze: unify similar metrics scripts"}},{"before":"0a5519080285b1cc0e449804a911b0e972703cfe","after":"1f4aa097e04718fab482bcd591bb28f2ac6d2074","ref":"refs/heads/ahomescu/non_null","pushedAt":"2024-04-26T23:05:08.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ahomescu","name":"Andrei Homescu","path":"/ahomescu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/443157?s=80&v=4"},"commit":{"message":"Use PDG to remove NON_NULL from pointers in static analysis\n\nRemove the NON_NULL permission from all nodes in\nthe null graph from the PDG.","shortMessageHtmlLink":"Use PDG to remove NON_NULL from pointers in static analysis"}},{"before":"689653c09fac39af4bac1c9e6bb162b69763bc99","after":"774abc706849ea21a51a66a09fed1ba12d747c86","ref":"refs/heads/feature/ci-dev","pushedAt":"2024-04-26T07:22:05.000Z","pushType":"push","commitsCount":70,"pusher":{"login":"thedataking","name":"Per Larsen","path":"/thedataking","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4011337?s=80&v=4"},"commit":{"message":"CI: attempt to fix Azure pipelines Darwin build","shortMessageHtmlLink":"CI: attempt to fix Azure pipelines Darwin build"}},{"before":"ac9abd6029d3ec615cd7eb72aefbd6a9adf7818b","after":"0a5519080285b1cc0e449804a911b0e972703cfe","ref":"refs/heads/ahomescu/non_null","pushedAt":"2024-04-25T05:21:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ahomescu","name":"Andrei Homescu","path":"/ahomescu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/443157?s=80&v=4"},"commit":{"message":"Use PDG to remove NON_NULL from pointers in static analysis\n\nRemove the NON_NULL permission from all nodes in\nthe null graph from the PDG.","shortMessageHtmlLink":"Use PDG to remove NON_NULL from pointers in static analysis"}},{"before":null,"after":"ac9abd6029d3ec615cd7eb72aefbd6a9adf7818b","ref":"refs/heads/ahomescu/non_null","pushedAt":"2024-04-25T05:18:35.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"ahomescu","name":"Andrei Homescu","path":"/ahomescu","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/443157?s=80&v=4"},"commit":{"message":"Use PDG to remove NON_NULL from pointers in static analysis\n\nRemove the NON_NULL permission from all nodes in\nthe null graph from the PDG.","shortMessageHtmlLink":"Use PDG to remove NON_NULL from pointers in static analysis"}},{"before":"ef5fa94ea00ac2ee8e374be94ec3dc0b525fd5ee","after":"08fb4755e2f0cdcba94c769642b263326b3cca7f","ref":"refs/heads/analyze-metrics-scripts","pushedAt":"2024-04-22T18:56:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: add script for CFS metrics","shortMessageHtmlLink":"analyze: add script for CFS metrics"}},{"before":"63ce33e660dfd07ba232258b8251ec8a411cd718","after":"d85b4d024895c69398089a51cb67d93240ac577e","ref":"refs/heads/analyze-metrics-scripts-base","pushedAt":"2024-04-22T18:56:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: initial implementation of NON_NULL static analysis (#1081)\n\nThis adds a very basic static analysis for `NON_NULL` within the current\r\n`dataflow` framework. It starts by optimistically assuming that all\r\npointers are `NON_NULL`, and removes the permission from pointers into\r\nwhich a `ptr::null()` or equivalent might flow. This branch just\r\nimplements the static analysis, not rewriting.\r\n\r\nI'm actually not a huge fan of this design - I think we'd probably get\r\nmuch better results with a path-sensitive analysis that can handle\r\ncommon patterns from C like `if !p.is_null() { let q = (&p).field; /*\r\nuse q... */ }` by detecting null checks in the CFG. But the simple\r\npath-insensitive version is sufficient for now, and gives us somewhere\r\nto plug in the dynamic analysis results.","shortMessageHtmlLink":"analyze: initial implementation of NON_NULL static analysis (#1081)"}},{"before":"2a6b7359e322e19a31f900cd53f6612ee59a5828","after":"d85b4d024895c69398089a51cb67d93240ac577e","ref":"refs/heads/master","pushedAt":"2024-04-22T18:55:37.000Z","pushType":"pr_merge","commitsCount":7,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: initial implementation of NON_NULL static analysis (#1081)\n\nThis adds a very basic static analysis for `NON_NULL` within the current\r\n`dataflow` framework. It starts by optimistically assuming that all\r\npointers are `NON_NULL`, and removes the permission from pointers into\r\nwhich a `ptr::null()` or equivalent might flow. This branch just\r\nimplements the static analysis, not rewriting.\r\n\r\nI'm actually not a huge fan of this design - I think we'd probably get\r\nmuch better results with a path-sensitive analysis that can handle\r\ncommon patterns from C like `if !p.is_null() { let q = (&p).field; /*\r\nuse q... */ }` by detecting null checks in the CFG. But the simple\r\npath-insensitive version is sufficient for now, and gives us somewhere\r\nto plug in the dynamic analysis results.","shortMessageHtmlLink":"analyze: initial implementation of NON_NULL static analysis (#1081)"}},{"before":"586d91cf52fb282dbd5c6385bc7f2e4d629b66fb","after":"7b99d2562bdd726625221d0751ce79e3b5044eed","ref":"refs/heads/analyze-non-null","pushedAt":"2024-04-22T18:05:21.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: fix comments","shortMessageHtmlLink":"analyze: fix comments"}},{"before":"6264fae0a4634eedec3e89f1c232d1f62af4e1fb","after":"2a6b7359e322e19a31f900cd53f6612ee59a5828","ref":"refs/heads/master","pushedAt":"2024-04-20T23:27:22.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"kkysen","name":"Khyber Sen","path":"/kkysen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22091713?s=80&v=4"},"commit":{"message":"Fix noop deref warning (#1082)\n\nWithout this change compiling shows a warning:\r\n\r\n```\r\nwarning: call to `.deref()` on a reference in this situation does nothing\r\n --> c2rust-transpile/src/cfg/mod.rs:2252:72\r\n |\r\n2252 | ...to_string(pat.deref());\r\n | ^^^^^^^^ help: remove this redundant call\r\n |\r\n = note: the type `syn::Pat` does not implement `Deref`, so calling `deref` on `&syn::Pat` copies the reference, which does not do anything and can be removed\r\n = note: `#[warn(noop_method_call)]` on by default\r\n```","shortMessageHtmlLink":"Fix noop deref warning (#1082)"}},{"before":"ff1fa0295a2ba059625ebc7046773217437d053f","after":"6264fae0a4634eedec3e89f1c232d1f62af4e1fb","ref":"refs/heads/master","pushedAt":"2024-04-15T17:39:46.000Z","pushType":"pr_merge","commitsCount":8,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: add --rewrite-mode pointwise (#1073)\n\nThis adds a new --rewrite-mode called \"pointwise\", which rewrites each\r\nfunction in isolation, with all other definitions marked `FIXED`. The\r\nstatic analysis runs only once, then we run multiple rewriting passes\r\nusing the same analysis results, making this much more efficient than\r\nrunning the whole `c2rust-analyze` tool multiple times.\r\n\r\nThe rewritten code is output to a separate file for each function. For\r\nexample, given `foo.rs` containing a function `bar`, this mode will\r\nwrite to `foo.bar.rs` the new code produced by rewriting only `bar`.\r\n\r\nPointwise mode is the basis for our new \"pointwise success rate\" metric.","shortMessageHtmlLink":"analyze: add --rewrite-mode pointwise (#1073)"}},{"before":"d397814389a2aa6c50cd056c9b2d37733b48802c","after":"a015ff311cecef2bce7707e88e7a99d7aa9f9c73","ref":"refs/heads/analyze-rewrite-pointwise","pushedAt":"2024-04-15T16:02:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: implement `--rewrite-mode pointwise`","shortMessageHtmlLink":"analyze: implement --rewrite-mode pointwise"}},{"before":"e0a2de59e8e52381f9967a4384add7157d67aea0","after":"ff1fa0295a2ba059625ebc7046773217437d053f","ref":"refs/heads/analyze-rewrite-pointwise-base","pushedAt":"2024-04-15T16:02:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: track reasons why functions are not rewritten (#1072)\n\nThis branch replaces most of the existing `fns_failed`/`fns_fixed`\r\nmachinery with a new strategy for marking items with a \"don't rewrite\"\r\nflag. This makes it easier to integrate new, stricter checks for\r\nunsupported code patterns, with the goal of reducing compile errors in\r\nthe rewritten code. Some of these checks are also implemented in this\r\nbranch, such as a check for complex (and currently unsupported) `Cell`\r\nrewrites.\r\n\r\nWhen an item is marked as don't-rewrite, we also record a reason flag.\r\nThis is helpful for debugging, and will also make it easy in the future\r\nto disable specific checks (by ignoring the corresponding reason flag)\r\nfor debugging/testing purposes or by user request.","shortMessageHtmlLink":"analyze: track reasons why functions are not rewritten (#1072)"}},{"before":"caf3e221fd06a3da22e8002254513b4cfea5793e","after":"ff1fa0295a2ba059625ebc7046773217437d053f","ref":"refs/heads/master","pushedAt":"2024-04-15T16:00:04.000Z","pushType":"pr_merge","commitsCount":11,"pusher":{"login":"spernsteiner","name":null,"path":"/spernsteiner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3031136?s=80&v=4"},"commit":{"message":"analyze: track reasons why functions are not rewritten (#1072)\n\nThis branch replaces most of the existing `fns_failed`/`fns_fixed`\r\nmachinery with a new strategy for marking items with a \"don't rewrite\"\r\nflag. This makes it easier to integrate new, stricter checks for\r\nunsupported code patterns, with the goal of reducing compile errors in\r\nthe rewritten code. Some of these checks are also implemented in this\r\nbranch, such as a check for complex (and currently unsupported) `Cell`\r\nrewrites.\r\n\r\nWhen an item is marked as don't-rewrite, we also record a reason flag.\r\nThis is helpful for debugging, and will also make it easy in the future\r\nto disable specific checks (by ignoring the corresponding reason flag)\r\nfor debugging/testing purposes or by user request.","shortMessageHtmlLink":"analyze: track reasons why functions are not rewritten (#1072)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEQTAbfAA","startCursor":null,"endCursor":null}},"title":"Activity · immunant/c2rust"}