{"id":15994528,"url":"https://github.com/hawkw/seax","last_synced_at":"2025-03-16T07:32:04.138Z","repository":{"id":25990179,"uuid":"29432450","full_name":"hawkw/seax","owner":"hawkw","description":"A VM-based runtime environment for functional programming languages","archived":false,"fork":false,"pushed_at":"2017-02-13T16:45:21.000Z","size":4426,"stargazers_count":46,"open_issues_count":25,"forks_count":5,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-02-27T05:50:54.607Z","etag":null,"topics":["interpreter","lisp","lisp-interpreter","rust","secd","virtual-machine"],"latest_commit_sha":null,"homepage":"http://hawkweisman.me/seax/","language":"Rust","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/hawkw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-18T16:36:35.000Z","updated_at":"2025-01-20T12:11:34.000Z","dependencies_parsed_at":"2022-09-26T20:31:49.635Z","dependency_job_id":null,"html_url":"https://github.com/hawkw/seax","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hawkw%2Fseax","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hawkw%2Fseax/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hawkw%2Fseax/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hawkw%2Fseax/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hawkw","download_url":"https://codeload.github.com/hawkw/seax/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243806046,"owners_count":20350775,"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":["interpreter","lisp","lisp-interpreter","rust","secd","virtual-machine"],"created_at":"2024-10-08T07:09:15.280Z","updated_at":"2025-03-16T07:32:03.768Z","avatar_url":"https://github.com/hawkw.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"Seax\n====\n\n[![Join the chat at https://gitter.im/hawkw/seax](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/hawkw/seax?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\nA virtual machine-based platform for executing programs in functional programming language.\n\nThis project is split across a number of separate Cargo crates, each with its own Git repository:\n\n  + __Seax Command-Line Application (this repository)__\n\n  [![Build Status](https://img.shields.io/travis/hawkw/seax/master.svg?style=flat-square)](https://travis-ci.org/hawkw/seax)\n  [![Coverage](https://img.shields.io/codecov/c/github/hawkw/seax/master.svg?style=flat-square)](http://codecov.io/github/hawkw/seax?branch=master)\n  [![GitHub release](https://img.shields.io/github/release/hawkw/seax.svg?style=flat-square)](https://github.com/hawkw/seax/releases)\n  [![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/hawkw/seax/LICENSE)\n\n    A command-line application for compiling programs to SVM bytecode, executing SVM bytecode files, and invoking the  the Scheme interpreter, either on source code files or as a REPL. This is so that the individual components of the system may be written as libraries rather than as executable programs. If additional compilers targeting the SVM are developed, this main program may invoke them as well. This repository also contains the main documentation and issue tracker for Seax.\n\n  + __[Seax Virtual Machine (SVM)](https://github.com/hawkw/seax_svm)__\n\n    [![Build Status](https://img.shields.io/travis/hawkw/seax_svm/master.svg?style=flat-square)](https://travis-ci.org/hawkw/seax_svm)\n    [![Coverage](https://img.shields.io/codecov/c/github/hawkw/seax_svm/master.svg?style=flat-square)](http://codecov.io/github/hawkw/seax_svm?branch=master)\n    [![Latest RustDoc](https://img.shields.io/badge/rustdoc-latest-green.svg?style=flat-square)](http://hawkweisman.me/seax/api/seax_svm/)\n    [![Latest SVM release](https://img.shields.io/crates/v/seax_svm.svg?style=flat-square)](https://crates.io/crates/seax_svm)\n    [![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/hawkw/seax/LICENSE)\n\n    The core of the project, a virtual machine for evaluating Seax bytecode programs. SVM is based on the [SECD machine](http://en.wikipedia.org/wiki/SECD_machine) described by Peter Landin in 1963. This crate contains the main SECD implementation, definitions of the SVM instruction set and cell types, and a library for encoding and decoding Seax bytecode files. SVM is distributed as a library so that it may be included in other programs.\n\n  + __[Seax Scheme Compiler](https://github.com/hawkw/seax_scheme)__\n\n    [![Build Status](https://img.shields.io/travis/hawkw/seax_scheme/master.svg?style=flat-square)](https://travis-ci.org/hawkw/seax_scheme)\n    [![Coverage](https://img.shields.io/codecov/c/github/hawkw/seax_scheme/master.svg?style=flat-square)](http://codecov.io/github/hawkw/seax_scheme?branch=master)\n    [![Latest RustDoc](https://img.shields.io/badge/rustdoc-latest-green.svg?style=flat-square)](http://hawkweisman.me/seax/api/seax_scheme/)\n    [![Latest Seax Scheme release](https://img.shields.io/crates/v/seax_scheme.svg?style=flat-square)](https://crates.io/crates/seax_scheme)\n    [![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/hawkw/seax/LICENSE)\n\n    A Scheme interpreter/compiler targeting the Seax VM. This implementation aims to conform with the [Revised\u003csup\u003e6\u003c/sup\u003e Report on Scheme](http://www.r6rs.org) (R6RS) whenever possible, but may not be a complatible implementation. `seax-scheme` is released as a library, rather than an executable, so that it may be included in other applications which use Scheme as an embedded language.\n\n  + __[Seax Utilities](https://github.com/hawkw/seax_compiler_tools)__\n  \n  [![Build Status](https://img.shields.io/travis/hawkw/seax_util/master.svg?style=flat-square)](https://travis-ci.org/hawkw/seax_util)\n  [![Coverage](https://img.shields.io/codecov/c/github/hawkw/seax_util/master.svg?style=flat-square)](http://codecov.io/github/hawkw/seax_util?branch=master)\n  [![Latest RustDoc](https://img.shields.io/badge/rustdoc-latest-green.svg?style=flat-square)](http://hawkweisman.me/seax_util/seax_util/index.html)\n  [![Latest release](https://img.shields.io/crates/v/seax_util.svg?style=flat-square)](https://crates.io/crates/seax_util)\n  [![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/hawkw/seax/LICENSE)\n\n    A library of general-purpose reusable code for writing compilers targeting the Seax platform. This crate includes traits for abstract syntax tree nodes for Seax programs, and an implementation of the ForkTable data structure for representing scopes and symbol tables.\n\nInstructions\n------------\n\n### Building Seax\n\nSeax is implemented using the Rust programming language. In order to build Seax from source, you're going to need [Cargo](http://doc.crates.io/guide.html), Rust's build automation tool. Continuous integration builds of Seax are built against the latest Rust nightly. Therefore, backwards compatibility with earlier Rust versions are not always guaranteed.\n\nIf you have Cargo and an up-to-date Rust install, you can build Seax quite easily by running `cargo build --release` from the root directory. This will build all of the Seax libraries and the application, which will be output to `target/release/seax`.\n\nNote that this builds the fully-optimized release Seax executable, and is intended for individuals who want to use Seax. Seax developers may want to build less optimized debug executables instead.\n\nRustDoc documentation for Seax can be built using the `cargo doc` command.\n\n### Using Seax\n\nSeax currently supports the following commands:\n\n+ `seax repl` launches the Scheme interpreter in [read-eval-print loop](http://en.wikipedia.org/wiki/Read–eval–print_loop) mode\n+ `seax FILE.scm` invokes the interpreter on a Scheme source code file (`.scm`)\n\nThe following flags are also supported:\n\n+ `-v` or `--verbose` launches Seax in verbose mode. Prepare yourself for a _great deal_ of debug logging if you enable this flag.\n+ `-d` or `--debug` enables debugging state dumps from SVM fatal errors. This may incur a performance penalty.\n\nCommands for running compiled Seax bytecode files and for compiling Scheme source code to Seax bytecode files will be added when these features reach a higher level of completion.\n\nDocumentation\n-------------\n\nIn addition to the RustDoc API documentation provided for each Seax library, the [Seax book](http://hawkweisman.me/seax/) contains detailed information on the design and implementation of Seax, as well as instructions on writing programs targeting the Seax platform. Note that the Seax book is currently under active development and is not yet complete.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhawkw%2Fseax","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhawkw%2Fseax","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhawkw%2Fseax/lists"}