{"id":16665307,"url":"https://github.com/larsbrinkhoff/lbforth","last_synced_at":"2025-04-05T07:03:57.639Z","repository":{"id":4707831,"uuid":"5855479","full_name":"larsbrinkhoff/lbForth","owner":"larsbrinkhoff","description":"Self-hosting metacompiled Forth, bootstrapping from a few lines of C; targets Linux, Windows, ARM, RISC-V, 68000, PDP-11, asm.js.","archived":false,"fork":false,"pushed_at":"2023-02-13T06:56:57.000Z","size":19828,"stargazers_count":452,"open_issues_count":41,"forks_count":112,"subscribers_count":31,"default_branch":"master","last_synced_at":"2025-03-29T06:03:48.693Z","etag":null,"topics":["6502","8051","arm","asmjs","avr","compiler","cortex-m","forth","interpreter","linux","m68k","metacompiler","msp430","pdp11","programming-language","risc-v","riscv","self-hosted","x86"],"latest_commit_sha":null,"homepage":"","language":"Forth","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/larsbrinkhoff.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}},"created_at":"2012-09-18T11:45:37.000Z","updated_at":"2025-03-22T10:06:27.000Z","dependencies_parsed_at":"2022-07-14T11:30:46.875Z","dependency_job_id":"ffa5ca51-9533-49cc-8a05-a017603c59b6","html_url":"https://github.com/larsbrinkhoff/lbForth","commit_stats":{"total_commits":815,"total_committers":4,"mean_commits":203.75,"dds":0.009815950920245453,"last_synced_commit":"912433b150b64252070116a5fd5c1a29ff29b26d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larsbrinkhoff%2FlbForth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larsbrinkhoff%2FlbForth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larsbrinkhoff%2FlbForth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larsbrinkhoff%2FlbForth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/larsbrinkhoff","download_url":"https://codeload.github.com/larsbrinkhoff/lbForth/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247299831,"owners_count":20916190,"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":["6502","8051","arm","asmjs","avr","compiler","cortex-m","forth","interpreter","linux","m68k","metacompiler","msp430","pdp11","programming-language","risc-v","riscv","self-hosted","x86"],"created_at":"2024-10-12T11:06:39.088Z","updated_at":"2025-04-05T07:03:57.609Z","avatar_url":"https://github.com/larsbrinkhoff.png","language":"Forth","funding_links":[],"categories":[],"sub_categories":[],"readme":"( Subset of Forth94 )\n\nThis is a self-hosted implementation of Forth, which can regenerate\nitself from Forth source code.  The bootstrapping process uses a\n[metacompiler written in Lisp](https://github.com/larsbrinkhoff/forth-metacompiler) to target a\nsmall inner interpreter and a handful of code words written in C.  A\nnew [metacompiler written in Forth](lib/meta.fth) generates an x86\nexecutable using using [assembly language code words](targets/x86/nucleus.fth).\n\nThere are also ARM, RISC-V, Motorola 68000, PDP-11, and asm.js\ntargets.  There is a [cross\ncompiler](http://github.com/larsbrinkhoff/xForth) for 6502, 8051, AVR,\nCortex-M, MSP430, PDP-8, PIC, and STM8.\n\n( Continuous integration )\n\nThe code is continuously built and tested in Linux, MacOS X, and\nWindows using several cloud-based continuous integration services.\nThis is documented in [build.md](build.md).\n\n( Further reading )\n\n[INSTALL](INSTALL) \\ How to build.  \n[doc](doc) \\ Classic (and recent) texts not related to this project.  \n[lib/README](lib/README) \\ Information about libraries.  \n[targets/README.md](targets/README.md) \\ Information about current and possibly future targets.\n\n( Implementation guide )\n\nThe Forth kernel contains everything needed to read and compile the\nrest of the system from source code, and not much else.  It's composed\nof two parts: a target-specific file nucleus.fth containing all\nprimitive CODE words, and a [target-independent\nkernel.fth](src/kernel.fth).  These two are compiled by the\nmetacompiler.\n\nThe [C target nucleus](targets/c/nucleus.fth) used for bootstrapping\nhas only twelve proper primitives.  There is also the COLD word which\ncompiles to main(), and four I/O words.\n\nWhen the kernel starts, it jumps to the word called WARM.  This is\nresponsible for loading the rest of the system and entering the text\ninterpreter.  The first file loaded by WARM is [core.fth](src/core.fth),\nwhich implements the CORE wordset.  Because the kernel only has a bare\nminimum of words, the start of core.fth looks a little strange.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flarsbrinkhoff%2Flbforth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flarsbrinkhoff%2Flbforth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flarsbrinkhoff%2Flbforth/lists"}