{"id":13644196,"url":"https://github.com/julianneswinoga/yabfc","last_synced_at":"2025-04-09T09:09:37.662Z","repository":{"id":87867287,"uuid":"79838699","full_name":"julianneswinoga/yabfc","owner":"julianneswinoga","description":"Yet Another Brainfuck Compiler; No dependencies and from the ground up","archived":false,"fork":false,"pushed_at":"2023-06-11T19:08:12.000Z","size":97,"stargazers_count":276,"open_issues_count":4,"forks_count":19,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-02T02:38:30.551Z","etag":null,"topics":["brainfuck","compiler","compiler-optimization","no-dependencies"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/julianneswinoga.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-01-23T19:22:40.000Z","updated_at":"2025-03-10T07:52:46.000Z","dependencies_parsed_at":"2024-01-14T09:20:16.428Z","dependency_job_id":"98cacf6c-f76a-4e79-8c3c-d2a3acc53020","html_url":"https://github.com/julianneswinoga/yabfc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julianneswinoga%2Fyabfc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julianneswinoga%2Fyabfc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julianneswinoga%2Fyabfc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julianneswinoga%2Fyabfc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/julianneswinoga","download_url":"https://codeload.github.com/julianneswinoga/yabfc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248008630,"owners_count":21032556,"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":["brainfuck","compiler","compiler-optimization","no-dependencies"],"created_at":"2024-08-02T01:01:58.918Z","updated_at":"2025-04-09T09:09:37.620Z","avatar_url":"https://github.com/julianneswinoga.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# **Y**et **A**nother **B**rain**F**uck **C**ompiler\n\n## Description\nYABFC is an optimizing compiler for the brainfuck language that uses no dependencies apart from standard POSIX headers.\nThe output format is a 64 bit ELF executable file.  Be sure to visit the [wiki!](https://github.com/cameronswinoga/yabfc/wiki/Generating-executable-files-from-scratch)\n\n## Building\n``` BASH\nmake \u0026\u0026 sudo make install\n```\n\n## Usage\n``` Text\nUsage: yabfc [OPTION...] Files...\nCompiles one or multiple brainfuck files to the ELF file format, in 64 bit mode\n\n  -o, --output=FILE          Output to FILE\n  -O, --optimize[=LEVEL]     Set optimization to LEVEL 1,2 or 3 (default 3)\n  -q, -s, --quiet, --silent  Do not produce any output\n  -v, --verbose[=LEVEL]      Set verbosity to LEVEL 1,2 or 3 (default 2)\n  -?, --help                 Give this help list\n      --usage                Give a short usage message\n  -V, --version              Print program version\n\nMandatory or optional arguments to long options are also mandatory or optional\nfor any corresponding short options.\n\nReport bugs to \u003ccameronswinoga@gmail.com\u003e.\n```\n\n## Testing\nMake sure to have `valgrind` installed, then run `./integration_tests.sh`.  Valgrind is necessary to have a sandbox environment where 64 bit ELF's can run on any host OS.\n\n## Implementation\nThe data pointer in the executable is representated by the assembly stack pointer, as such and new stack allocation is guaranteed to be zeroed initially.  Because of this, as well as the executable being set in 64 bit mode, allows YABFC to have an extremely large value range.  The size for the data pointer is the stack size and the cell size is 2\u003csup\u003e64\u003c/sup\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulianneswinoga%2Fyabfc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjulianneswinoga%2Fyabfc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulianneswinoga%2Fyabfc/lists"}