Chez


Chez Scheme is a dialect and implementation of Scheme. Its authoritative text is The Scheme Programming Language (TSPL), which serves both as learning material and as reference. The R6RS standard is also fully supported. Petite Chez Scheme is a sibling implementation and most programs written for Chez will work unchanged on Petite Chez.

Chez is notable for its foreign function interface?, stability, short compilation times, and runtime performance, making it well suited to applications that dynamically generate and execute code.

R. Kent Dybvig is the author of TSPL and has been developing Chez since its inception in 1984 at Cadence Research Center. Originally under a proprietary license, in 2011 Cisco Systems acquired Cadence Research Center and in 2016 open-sourced the project, which is still under active development.

Chez uses an incremental native code compiler to produce binaries for architectures including x86 and ARMv6. Petite Chez uses a threaded interpreter, offering a lighter toolchain in exchange for execution speed and some compiler facilities.

In 2021 Racket changed its default runtime system from BC to Chez, and has since contributed code to Chez itself.

The following quote is from a 2006 edit on this page.

I can attest that that Petite is surprisingly fast. I am currently working on the implementation of a domain specific language in Scheme(http://www.regiment.us/). The implementation is >50K lines of Scheme code, and compiles under both Chez and PLT-Scheme. Chez compiles and loads the system in 1.3 seconds, and completes the unit test suite in 13 seconds. Whereas Petite loads the program in 0.7 seconds and runs the unit test suite in 31 seconds. 2.5 times slower, but still quite fast -- for reference, PLT-Scheme takes a much longer time to compile, and executes the test-suite in 11.8 minutes on the same machine. (Keep in mind, however, that this particular application generates and runs simulations; the extreme difference in performance is probably due to the heavy use of eval.)


External links


category-implementations