{"id":23160642,"url":"https://github.com/disruptek/dust","last_synced_at":"2025-04-09T16:18:29.361Z","repository":{"id":78132160,"uuid":"286801094","full_name":"disruptek/dust","owner":"disruptek","description":"DUST is Unattended Syntax Truncation","archived":false,"fork":false,"pushed_at":"2021-07-11T22:39:56.000Z","size":23,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T16:18:20.263Z","etag":null,"topics":["ast","bugs","dust","minimal","nim","reduce","reproduce","semantics","syntax"],"latest_commit_sha":null,"homepage":"","language":"Nim","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/disruptek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-11T17:00:44.000Z","updated_at":"2021-07-27T16:51:35.000Z","dependencies_parsed_at":"2023-02-24T02:00:44.630Z","dependency_job_id":null,"html_url":"https://github.com/disruptek/dust","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/disruptek%2Fdust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/disruptek%2Fdust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/disruptek%2Fdust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/disruptek%2Fdust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/disruptek","download_url":"https://codeload.github.com/disruptek/dust/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248065281,"owners_count":21041872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ast","bugs","dust","minimal","nim","reduce","reproduce","semantics","syntax"],"created_at":"2024-12-17T23:11:34.268Z","updated_at":"2025-04-09T16:18:29.329Z","avatar_url":"https://github.com/disruptek.png","language":"Nim","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dust\n\nGiven a test program that produces a semantic error, mutate the AST of that\nprogram to remove syntax that is irrelevant to the error.\n\n## Usage\n\nIt _will_ overwrite your source file during operation.\n\n**--define:release is _strongly recommended_.**\n\n```\ndust test.nim\n```\n\n## Example\n\n```nim\nimport macros\n\nmacro foo(n: typed) =\n  copyNimTree(n)\n\n\n# Why is this ok\nfoo:\n  var a = 3\n\nfoo:\n  let b = 3\n\n# But this is not\nfoo:\n  var x = 2 + 3\n  if false:\n    x = x + 5\n  proc c() =\n    echo x\n    discard\n```\n...turns into...\n\n```nim\nimport\n  macros\n\nmacro foo(n: typed) =\n  copyNimTree(n)\n\nfoo:\n  proc c() =\n    discard\n```\n\n## License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdisruptek%2Fdust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdisruptek%2Fdust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdisruptek%2Fdust/lists"}