News

muvee Reveal - the latest incarnation of muvee's flagship product - has just been released on 11 June 2008! The behaviours of the 8 bundled styles are specified using muSE, in addition to all the styles developed for the now discontinued muvee autoProducer 6.1.

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: