{"id":15646909,"url":"https://github.com/ktakashi/sagittarius-scheme","last_synced_at":"2026-02-13T00:43:54.380Z","repository":{"id":36846792,"uuid":"41153733","full_name":"ktakashi/sagittarius-scheme","owner":"ktakashi","description":"A manual (beh...) clone from bitbucket to use hosted CI service which only support GitHub","archived":false,"fork":false,"pushed_at":"2025-03-13T22:54:23.000Z","size":217552,"stargazers_count":50,"open_issues_count":0,"forks_count":5,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-13T23:30:42.519Z","etag":null,"topics":["r6rs","r6rs-scheme","r7rs","r7rs-scheme","sagittarius","sagittarius-scheme","scheme"],"latest_commit_sha":null,"homepage":"https://bitbucket.org/ktakashi/sagittarius-scheme","language":"Scheme","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ktakashi.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","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":"2015-08-21T12:07:54.000Z","updated_at":"2025-03-13T22:54:27.000Z","dependencies_parsed_at":"2024-05-28T09:50:19.675Z","dependency_job_id":"8a6ce96c-2f23-4bd7-9768-a1255424361a","html_url":"https://github.com/ktakashi/sagittarius-scheme","commit_stats":null,"previous_names":[],"tags_count":95,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktakashi%2Fsagittarius-scheme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktakashi%2Fsagittarius-scheme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktakashi%2Fsagittarius-scheme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktakashi%2Fsagittarius-scheme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ktakashi","download_url":"https://codeload.github.com/ktakashi/sagittarius-scheme/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246256474,"owners_count":20748253,"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":["r6rs","r6rs-scheme","r7rs","r7rs-scheme","sagittarius","sagittarius-scheme","scheme"],"created_at":"2024-10-03T12:15:41.201Z","updated_at":"2026-02-13T00:43:54.373Z","avatar_url":"https://github.com/ktakashi.png","language":"Scheme","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sagittarius Scheme System\n\n[![Sagittarius CI](https://github.com/ktakashi/sagittarius-scheme/actions/workflows/ci.yml/badge.svg)](https://github.com/ktakashi/sagittarius-scheme/actions/workflows/ci.yml)\n[![CircleCI](https://dl.circleci.com/status-badge/img/gh/ktakashi/sagittarius-scheme/tree/master.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/ktakashi/sagittarius-scheme/tree/master)\n\nThis is a Scheme implementation, supporting R6RS and R7RS specification.\n\n# How to build and install?\n\nSagittarius uses CMake for its building infrastructure.  If you do not\nhave it on your platform, please install it.\n\n - [CMake](http://www.cmake.org/)\n\nThe minimum required version of CMake is 3.12. The older version may\nwork but not guaranteed.\n\nThe runtime of Sagittarius is written in C. The C compiler must support\nC11 features.\n\n## Quick build/install (for Unix like environment)\n\nIf your environment already has required libraries and just want to\ninstall to default location, run the following commands in the\ndirectory where all distributed files are expanded (c.f. By default\nit'd be `sagittarius-X.X.X`, `X.X.X` is the version you downloaded):\n\n```shell\ncmake .\nmake\nmake install\n```\n\nFollowing sections describes more details.\n\n## Preparation for Unix-like environment\n\nSagittarius depends on the following libraries.\n\n - [Boehm GC](http://www.hpl.hp.com/personal/Hans_Boehm/gc/)\n - [zlib](http://www.zlib.net/)\n - [libffi](https://sourceware.org/libffi/)\n - [OpenSSL](https://www.openssl.org/)\n\nIf you are using Linux which supports `apt`, then you can simply\nexecute the following command:\n\n```shell\napt install libgc-dev, zlib1g-dev libffi-dev libssl-dev libpam0g-dev\n```\n\n### Manual installation of Boehm GC\n\nFor Boehm GC, you need to install it with the option\n`--enable-threads=pthreads`.  If your CPU is not incredibly old, you\ncan also specify the option `--enable-parallel-mark`.\n\nIf you are too lazy to download the archive file of GC, CMake will\ndownload it for you.  Make sure to run the following commands from in\nGC directory:\n\n```shell\n./configure \\\n    --enable-threads=pthreads   \\\n    --enable-parallel-mark      \\\n    --enable-large-config\nmake\nmake install\n```\n\nNote: most of the Linux distributions already have Boehm GC in their\npackage management system, such as `apt-get`.  I recommend to use it\nfor security reason.\n\n## Building on Unix-like environment\n\nAfter installing CMake and dependent libraries, you are ready to build\nSagittarius; type the following command:\n\n```shell\ncmake .\n```\n\nNote: The above command assumes you are in the source directory.\n\nIt is possible to build Sagittarius in a directory that is not the top\nsource directory of the distributed package (out-of-tree building);\nfor example:\n\n```shell\nmkdir build\ncd build\ncmake ${path to Sagittarius' source directory}\nmake\n```\n\nTo run the tests, specify `test` target.\n\n```shell\nmake test\n```\n\nOr, alternatively, you can also use `ctest`. This is convenient to\ntest individual tests.\n\nTo install Sagittarius non default location, you need to specify\n`CMAKE_INSTALL_PREFIX` variable.\n\n```shell\ncmake . -DCMAKE_INSTALL_PREFIX=/path/to/install\n```\n\nOn some environment, there are 64 bits runtime specific directories\nsuch as `lib64`. To install Sagittarius runtime in the directory, then\nyou can specify `LIB_DIR` variable as the following:\n\n```shell\ncmake . -DLIB_DIR=lib64\n```\n\nThen the runtime install directoy will be\n`CMAKE_INSTALL_PREFIX/LIB_DIR`.  There are also the variables to\nspecify `bin`, `include` and `share` directories, and the directory\nfor the `.pc` files; `BIN_DIR`, `INCLUDE_DIR` `SHARE_DIR`, and\n`PKGCONFIG_DIR`, respectively.\n\nSince 0.5.6, Sagittarius's REPL is renamed to `sagittarius` and legacy\n`sash` is kept as a symbolic link. If you don't need the symbolic link\nthen you can put the `INSTALL_SYMLINK` option off as the following:\n\n```shell\ncmake . -DINSTALL_SYMLINK=0\n```\n\nAfter a successful compilation, it is possible to install Sagittarius\nto the location specified by `CMAKE_INSTALL_PREFIX` or default system\nlocation if it's not specified with the command:\n\n```shell\nmake install\n```\n\nAfter installation, you might need to run `ldconfig` to run\nSagittarius properly.\n\nNote: For some reason, you might want to build a 32-bit runtime on a\n64-bit platform.  The following command can be used for this purpose;\n\n```shell\ncmake . \\\n   -DCMAKE_CXX_COMPILER=${your 32 bit C++ compiler} \\\n   -DCMAKE_C_COMPILER={your 32 bit C compiler}\n```\n\nMake sure you have all the required 32-bit executables and libraries.\n\n## Building on Mac OS X\n\nOnly with Homebrew is tested. A user can install sagittarius directly with\nhomebrew, via\n\n```shell\nbrew install sagittarius-scheme\n```\n\nAlternately, the user can install the following dependencies and then make\nsagittarius locally.\n\nInstalling libffi, CMake, Boehm GC and OpenSSL.\n\n```shell\nbrew install libffi cmake bdw-gc openssl\n```\n\nAfter installing dependent libraries, the rest of the process are the same\nas Unix-like environment.\n\nIf `cmake` can't find `libffi`, then you can specify the location via\n`FFI_LIBRARY_DIR` option like the following.\n\n```shell\ncmake . -DFFI_LIBRARY_DIR=/opt/homebrew/Cellar/libffi/3.4.6/lib\n```\n\nNote: some Mac OS X environment may not be able to find `ar` command\nbecause `/usr/bin/gcc` is identical as `/usr/bin/clang`. In that case,\nexport `CC` and `CXX` environment variable with proper GCC and G++\ncommand path respectively so that CMake can find the command.\n\n## Building on FreeBSD\n\nFreeBSD has multiple type of Boehm GC system libraries; `gc`,\n`gc-threaded` and `gc-redirect`. Sagittarius requires threaded runtime\nto make thread library works properly. The building process checks if\n`gc` has `GC_get_parallel()` function and if it doesn't then tries to\nuse `gc-threaded` library. Please make sure your system has\n`gc-threaded` or `gc` built with multi thread option.\n\nNB: If you install `gc` without build option, then default is without\nthread support. In such a case, you need to install `gc-threaded` as\nwell.\n\nThe command below installs the requried dependencies.\n\n```sh\npkg install curl libffi boehm-gc-threaded cmake openssl bash\n```\n\n## Building on OpenBSD\n\nFor OpenBSD, you can use `pkg_add` command to install dependencies.\nYou can use the command below to install the required components.\n\n```sh\npkg_add -IUv curl libffi boehm-gc cmake bash gmake\n```\n\nNOTE: the command is expecting to be fresh environment.\n\n## Building on Windows (non Cygwin environment)\n\nOn Windows, you need to create an installer and Sagittarius is using\ninnosetup for it. Please install it.\n\n - [Inno Setup](http://www.jrsoftware.org/)\n\nYou need to install MSVC preferably Visual Studio 2019 or higher. Run\n`Visual Studio Command Prompt` and go to the directory which Sagittarius\nsource codes are expanded.\n\n### For NMake\n\n```bat\ncmake . -G\"NMake Makefiles\"\nnmake\nnmake test\n```\n\n### For Ninja\n\n```bat\ncmake . -G\"Ninja\"\nninja\n```\n\nFor Ninja, you can build with multiple processor by specifying `-j` option.\nFor example:\n```bat\nrem This build Sagittarius with 8 processes\nninja -j8\n```\n\nAfter these commands, you move to the `win/` directory and double\nclick the file `innosetup.iss`.  Go to [Build] - [Compile], then it\nwill create the installer.  For more detail, please see Inno Setup's\ndocument.\n\n### Other Windows build tools\n\nExperimentally, we support other build tools. Below are the supported ones:\n\n- MSBuild\n  ```bat\n  cmake .\n  msbuild /p:Configuration=Release Sagittarius.sln\n  ```\n\n\n### Supporting platform\n\n| OS      | x86 | amd64 | ARM64 | ARM | ppc64le |\n|---------|-----|-------|-------|-----|---------|\n| Linux   |     | ✅✔️ | ☑️✔️  | ✔️  | ✔️     |\n| macOS   |     |       | ✅    |     |         |\n| FreeBSD |     | ✅    | ☑️    |     |         |\n| OpenBSD |     | ✅    | ☑️    |     |         |\n| Windows | ✅  | ✅    | ☑️    |     |         |\n\n- ✅ Tested with CI\n- ☑️ Tested locally\n- ✔️ Docker image\n\n## Running test\n\nThe tests are executed via `CTest`. In case you want to have verbose output,\nyou can use `ctest` command. For example, the below command shows the output\nof the test execution when the test failed.\n\n```shell\nctest --output-on-failure\n```\n\nFor more options, please refer the official document of the\n[`CTest`](https://cmake.org/cmake/help/latest/manual/ctest.1.html)\n\n# Forums and bug reporting\n\nIf you have any question, please ask on the following Google group:\n\n- [sagittarius-scheme](https://groups.google.com/forum/#!forum/sagittarius-scheme)\n\nIf you find a bug, please report it on the project bug tracking board:\n\n- [Sagittarius Issues](https://github.com/ktakashi/sagittarius-scheme/issues)\n\nOr you can report it on Google group.\n\n# How to develop it?\n\nSee [HACKING.md](HACKING.md) file.\n\n\u003c!-- end of file\nLocal Variables:\nmode: markdown\nfill-column: 75\nEnd:\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fktakashi%2Fsagittarius-scheme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fktakashi%2Fsagittarius-scheme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fktakashi%2Fsagittarius-scheme/lists"}