Sunday, September 10, 2006

Welcome to muSE

Hello and welcome to muSE.

I wrote this Scheme dialect with the intention of having a simple small foot print engine that one can use as an expressive embedded extension language. The company I work for has allowed me to publish muSE under very liberal open-source license terms.

Selling points -
  • Easy to use and reasonably documented C embedding API.
  • Closed execution environment - instabilities won't leak into your system unlike an environment that uses the Boehm garbage collector.
  • Fairly small foot print - WIN32 executable is about 80KB including diagnostics.
  • 64-bit ready - muSE integers are always 64-bit and 64-bit pointers are just a recompile away.
  • Unicode throughout - Exclusively uses 16-bit characters internally, supports (only) UTF-8 for I/O.
  • Fast enough as a glue language (at least for us). Startup/shutdown times are also quite fast due to the minimal language.
  • Suitable for creating simple DSLs.
  • Some novel/experimental features -
    • Simple notation for read-time code evaluation.
    • First class reader macros that expand tail-first.
    • Dynamic or lexical scoping - you choose according to your need.
    • Diagnostics that make spell-check-like suggestions.
    • Experimental support for ez2scm syntax.
What muSE is not -
  • A full R5RS compliant Scheme. We don't need full support because the runtime is expected to be aggresively extended using C/C++ depending on the usage context. Basics are however covered - map, for-each, list manipulations, closures, call/cc, vectors, hashtables, ports, etc. are in there. If you're looking for a full R5RS Scheme, try MzScheme which is supported by the wonderful DrScheme IDE.
  • A coffee maker that toasts bagels to boot.

No comments:

Post a Comment