Login
7 branches 0 tags
Ben (X13/Arch) Added vec functions from WW branch db29c6b 3 years ago 613 Commits

What about s7?

Didn't know too much about this Scheme implementation before diving in, have to say I am very impressed by the overall polish and especially performance of this Scheme implementation! Quite suprised to see it even beating the Guile JIT.

Pros

  • Continuations!
  • Emscripten/WASM Compatible!!!
  • Should have a lot of libraries since it is an R7RS compliant Scheme implementation
  • FAST!!! Even faster than Guile with a JIT and about as fast as Lua!!! Very impressive

Cons

  • BIG, repl binary is 7.6M and the single s7.c source file is nearly 100k Lines
  • Doesn't seem to be self-hosting
  • Not a huge fan of single-source files once they become too big, would prefer separate files that may then be concatenated together or something.
(define (test i ret)
  (cond ((>= i 10000000) ret)
        (else (test (+ 1 i) (+ ret i)))))
(display (test 0 0))
(newline)

Evaluating this file with the repl executable only takes ~0.06s, compared to Guile 3 which takes about 0.08s (Nujel needs 1.3s, so about a 20x difference), I don't like the overall size since it seems to be about as big as Guile (although faster and WASM compatible!), will study the code quite a bit to determine what is more feasible, closing the performance gap between Nujel and s7, or replacing Nujel with s7 within WolkenWelten, since all the Contra arguments are just me nitpicking.