Skip to content

Commit

Permalink
Proof of concept for end to end super instructions (#77)
Browse files Browse the repository at this point in the history
* work in progress, end to end pipeline with super instruction generation and vm support added

* dedicated op codes for cons and list

* adjust to go back to once cell

* clean up

* lazy dylibs

* more clean up

* adjust threading macro, add optimization pass

* rename stdlib to scm

* fixing panics

* checkpoint before nuking rust contract impl

* checkpoint, contracts have been nuked, structs overhauled

* big changes, mutable data structures, cycle stuff

* fixing lots of bugs

* check point

* move files to built ins

* more clean up

* remove dbg

* fix module suffix issue

* clean up logging

* very close

* new printing method

* fix typo

* clean up

* add test case

* fix typo in test

* another typo in the test

* format

* expander respects local bindings

* more tests

* fix iterators

* more tests

* more tests

* more testing

* enable env logger
  • Loading branch information
mattwparas authored Oct 30, 2023
1 parent 851172e commit 1e290fb
Show file tree
Hide file tree
Showing 103 changed files with 10,552 additions and 7,343 deletions.
127 changes: 67 additions & 60 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,6 @@ members = [
]

[profile.release]
debug = false
# debug = false
debug = true
lto = true
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@ If you would like to install and use packages, please set the `STEEL_HOME` envir

## About

`Steel` is an embeddable scheme interpreter, with a standalone cli included as well. Inspired largely by Racket and Clojure, the language seeks to be ergonomic scheme variant helpful for embedding in applications, or to be used on its own with high performance functions implemented in Rust. The language implementation itself contains a fairly powerful macro system based on the `syntax-rules` style and a bytecode virtual machine. At the moment, it is not explicitly compliant with any individual scheme specification.
`Steel` is an embeddable scheme interpreter, with a standalone cli included as well. Inspired largely by Racket, the language seeks to be ergonomic scheme variant helpful for embedding in applications, or to be used on its own with high performance functions implemented in Rust. The language implementation itself contains a fairly powerful macro system based on the `syntax-rules` style and a bytecode virtual machine. At the moment, it is not explicitly compliant with any individual scheme specification.

> **Warning**
> The API is very unstable with no guarantees, and may change at any time while pre 1.0. There are undoubtedly bugs that exist, and I wouldn't consider Steel to be production ready. That being said, I do use it as a daily driver for many scripting tasks myself.
> The API is unstable with no guarantees, and may change at any time while pre 1.0. There are undoubtedly bugs that exist, and any major bug reports will be addressed quickly. That being said, I do use it as a daily driver for many scripting tasks myself.
## Features

Expand Down
Loading

0 comments on commit 1e290fb

Please sign in to comment.