@raviqqe/stak 0.10.15 → 0.10.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/package.json +1 -1
- package/stak_wasm_bg.wasm +0 -0
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ The miniature, embeddable R7RS Scheme implementation in Rust
|
|
|
11
11
|
Stak Scheme aims to be:
|
|
12
12
|
|
|
13
13
|
- An embeddable Scheme interpreter for Rust with very small memory footprint and reasonable performance
|
|
14
|
-
- Its virtual machine (VM) is written in only 1.
|
|
14
|
+
- Its virtual machine (VM) is written in only 1.4 KLOC in Rust.
|
|
15
15
|
- The minimal implementation of [the R7RS-small standard][r7rs-small]
|
|
16
16
|
- A subset of [Chibi Scheme](https://github.com/ashinn/chibi-scheme), [Gauche](https://github.com/shirok/Gauche), and [Guile](https://www.gnu.org/software/guile/)
|
|
17
17
|
- A portable scripting environment that supports even no-`std` and no-`alloc` platforms
|
|
@@ -171,16 +171,16 @@ fn run_scheme(module: &UniversalModule) -> Result<(), EngineError> {
|
|
|
171
171
|
|
|
172
172
|
### Computational benchmarks
|
|
173
173
|
|
|
174
|
-
The Stak Scheme interpreter runs
|
|
174
|
+
The Stak Scheme interpreter runs 1.6 to 2.3 times slower than Python 3 at computationally heavy tasks depending on its configuration and benchmarks. For all the benchmark results, see [the GitHub Action](https://github.com/raviqqe/stak/actions/workflows/bench.yaml).
|
|
175
175
|
|
|
176
|
-
- Baseline: Python 3.
|
|
176
|
+
- Baseline: Python 3.13
|
|
177
177
|
- Environment: Ubuntu 24.04, x86-64
|
|
178
178
|
|
|
179
179
|
| Benchmark | Stak (minimal [^1]) | Stak (full [^2]) |
|
|
180
180
|
| ---------------- | ------------------: | ---------------: |
|
|
181
|
-
| Fibonacci number | 1.
|
|
182
|
-
| Integer sum |
|
|
183
|
-
| Tak function | 2.
|
|
181
|
+
| Fibonacci number | 1.80x slower | 1.98x slower |
|
|
182
|
+
| Integer sum | 1.61x slower | 1.87x slower |
|
|
183
|
+
| Tak function | 2.10x slower | 2.27x slower |
|
|
184
184
|
|
|
185
185
|
### Startup benchmarks
|
|
186
186
|
|
|
@@ -192,11 +192,11 @@ This means that Stak Scheme is suitable for embedding many small pieces of Schem
|
|
|
192
192
|
|
|
193
193
|
| Benchmark | Stak (full [^2]) | Lua 5.4 |
|
|
194
194
|
| ------------- | ---------------: | ------: |
|
|
195
|
-
| Empty program | 0.
|
|
195
|
+
| Empty program | 0.528 us | 50.9 us |
|
|
196
196
|
|
|
197
197
|
[^1]: Minimal: Integer-only support + standard libraries based on libc
|
|
198
198
|
|
|
199
|
-
[^2]: Full:
|
|
199
|
+
[^2]: Full: 64-bit floating-point number support + standard libraries based on the `std` library in Rust
|
|
200
200
|
|
|
201
201
|
## References
|
|
202
202
|
|
package/package.json
CHANGED
package/stak_wasm_bg.wasm
CHANGED
|
Binary file
|