{"id":17987205,"url":"https://github.com/rpendleton/lc3sim-c","last_synced_at":"2025-03-25T22:31:30.902Z","repository":{"id":40050350,"uuid":"139166248","full_name":"rpendleton/lc3sim-c","owner":"rpendleton","description":"implementation of the LC-3 virtual machine, an educational computer architecture","archived":false,"fork":false,"pushed_at":"2022-12-05T03:54:22.000Z","size":29,"stargazers_count":47,"open_issues_count":0,"forks_count":15,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-20T21:13:22.741Z","etag":null,"topics":["hacktoberfest","lc3"],"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/rpendleton.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}},"created_at":"2018-06-29T15:30:15.000Z","updated_at":"2025-03-01T20:03:48.000Z","dependencies_parsed_at":"2023-01-23T07:16:13.137Z","dependency_job_id":null,"html_url":"https://github.com/rpendleton/lc3sim-c","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/rpendleton%2Flc3sim-c","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rpendleton%2Flc3sim-c/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rpendleton%2Flc3sim-c/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rpendleton%2Flc3sim-c/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rpendleton","download_url":"https://codeload.github.com/rpendleton/lc3sim-c/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245554569,"owners_count":20634577,"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":["hacktoberfest","lc3"],"created_at":"2024-10-29T19:07:36.275Z","updated_at":"2025-03-25T22:31:30.600Z","avatar_url":"https://github.com/rpendleton.png","language":"C","readme":"# lc3sim-c\n\nA C implementation of the LC-3 virtual machine, an educational computer architecture.\n\n[Read tutorial here](https://www.jmeiners.com/lc3-vm/)\n\n## How to build\n\nThis project uses CMake to support a variety of build systems, platforms, and IDEs. Many IDEs\nsupport opening CMake projects natively, and others support opening CMake projects through the use\nof IDE plugins or CMake generators. You can also use CMake's command line generators to build using\n`make` or `ninja`.\n\nFor details on building and running CMake projects, I'd recommend reading [An Introduction to Modern\nCMake: Running CMake][running-cmake], checking your IDE's documentation for details about its\ncompatibility with CMake, or reading the CMake manual for details about supported [IDEs][cmake-ides]\nand [generators][cmake-generators].\n\n[running-cmake]: https://cliutils.gitlab.io/modern-cmake/chapters/intro/running.html\n[cmake-ides]: https://cmake.org/cmake/help/latest/guide/ide-integration/index.html#ides-with-cmake-integration\n[cmake-generators]: https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html#cmake-generators\n\n### Build using command line\n\nIf your IDE isn't supported or you'd prefer to build using a command line generator, it's easy to\nget started. For example, to build in debug mode:\n\n```sh\n# initialize the build scripts\ncmake -S . -B build -DCMAKE_BUILD_TYPE=Debug\n\n# build or rebuild as often as needed\ncmake --build build\n\n# run the vm\n./build/lc3sim /path/to/lc3-program.obj\n```\n\nIf you find yourself in need of trace-level logs for the VM's state, you can enable them by turning\non the `ENABLE_TRACING` flag and then rebuilding:\n\n```sh\ncmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DENABLE_TRACING=ON\ncmake --build build\n```\n\n## Running tests\n\nAt the time of writing these instructions, this project only has a single \"hello world!\" unit test.\nEven so, this simple test can still detect some more obvious failures if something goes really\nwrong.\n\nThe unit tests for this project are defined using standard CMake/CTest conventions, so to run them,\nyou can either use your IDE's integrated unit test runner (if it has one), or by running the\nfollowing on command line:\n\n```sh\n# initialize the build scripts if you haven't already\ncmake -S . -B build -DCMAKE_BUILD_TYPE=Debug\n\n# build or rebuild if you haven't already\ncmake --build build\n\n# run the tests\nctest --test-dir build\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frpendleton%2Flc3sim-c","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frpendleton%2Flc3sim-c","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frpendleton%2Flc3sim-c/lists"}