With respect to file extensions, guile does not use file extension: You can name a file containing Scheme code "foo.js" and "guile foo.js" will execute it.
The code in the wip-load-lang branch provides file-extension support: 1) Currently emacscript, with "js" extension, elisp, with "el" extension, and Scheme, with "scm" extension, are supported. 2) Additional languages can be added by calling add-lang-extension, from (system base compile): (add-lang-extension "m" 'nx-mlang) Matt