Scheme implemented in Go.


Droscheme - a Scheme implementation


The dsi command is the Droscheme interpreter. Not working yet.


The ds command is the swiss-army tool of Droscheme. It runs the scripts which perform compilation between different languages. First Scheme is converted to Gos with scheme2gos, then converted to Go with gos2go. There are many other subcommands, try ds help to see a list of available commands.

ds scheme2gos

The scheme2gos command is the Scheme => Gos compiler. This command is mostly written in Guile. The dialiect of Scheme that this command compiles is somewhat different than the language used by the interpreter. At some point all of these differences will be removed and/or documented somewhere. The primary purpose of scheme2gos is to build the standard libraries for the interpreter (dsi). So until the interpreter is working, don't expect much.

ds gos2go

The gos2go command is the Gos => Go compiler. This command is mostly written in Guile. The language accepted by gos2go is called Gos.

ds mangle

The mangle subcommand helps when you are dealing with Gos directly. It filters its argument through the same encoding system used to mangle Gos identifiers before outputting Go.

ds build

The build subcommand oversees the chain of commands requires to build a Droscheme library. Eventually, this logic will be migrated to Droscheme, which shouldn't be too hard since Guile is Scheme, and the other command (go2gos) is written in Go, which is the target language. If or when this rewrite is done, then this command will be renamed to 'dsc'.