Javathcript

kybernetikos shared with me a link to his Lispy language implementation on Javascript:

Javathcript allows you to script your web pages in a simple lisp variant. Once you include Javathcript.js, any script tags in your document with type=”text/lisp” will be evaluated. It will also download lisp files (only from the original server), if you have a script tag that has a src attribute. Finally, you can also evaluate lisp code from javascript using Javathcript.eval(lispString).
While it is not an exact implementation of any pre-existing variant of lisp, if you know lisp most of it should be familiar. If you don’t you might find it useful to follow a tutorial, e.g. this one. There will be differences between this implementation and others, but there is also much that is common.

It has more features than are shared in the blurb.
Looks pretty neat; check it out!

Do Scheme implementors take hygiene seriously?

Even the vast majority of Scheme systems, the platform that has experimented the most with hygiene, provide unhygienic defmacro-style macros—presumably because not even Scheme implementors take hygiene very seriously.

— Let Over Lambda, Chapter 6
Hygiene is in the standard here.
(via Racket-users)

Enhanced Ocaml Documentation Version 3.12

The Enhanced Ocaml Documentation is provided by Hendrik Tews; basically it visually highlights any difference between the previous and current version of the documentation. Here is how he does it:

I diff the txt versions of the reference manual and change the html version by hand. For the grammar rule index I use a tool and manual editing.

–Hendrik Tews
Wow. What a labor of love. Be sure to give him a hand!
(via Caml-list)

Resources for Learning CamlP4

For an accessible introduction to modern (>= 3.10) Camlp4, you may be interested in Jake Donham’s blog post series “Reading Camlp4” : http://ambassadortothecomputers.blogspot.com/search/label/camlp4
You will also find valuable (though incomplete) information on the camlp4 wiki : http://brion.inria.fr/gallium/index.php/Camlp4
The older version of camlp4 (< 3.10, now called camlp5) also provides a documentation http://caml.inria.fr/pub/docs/tutorial-camlp4/index.html , and you can also use to Martin Jambon’s tutorial
http://martin.jambon.free.fr/extend-ocaml-syntax.html (for the older camlp4).

— bluestorm

You can also see the articles in sequence at
http://ambassadortothecomputers.blogspot.com/p/reading-camlp4.html

which I recommend since later articles depend on earlier material.

— Jake Donham

Shameless self-plug, but I wrote a blog post this summer about my experience figuring out how to do it. I provide a walk-through and explanation of a minimal syntax extension which adds lazy list pattern matching support based on Batteries. The URL:
http://www.elehack.net/michael/blog/2010/06/ocaml-syntax-extension
I do assume a basic knowledge of parsing context-free grammars, but a generic tutorial on parsing with a tool such as Yacc can fill in that gap. The Wikipedia article[1] may also be helpful.
Once you’ve lept the hurdle of figuring out what pieces you need to write and build a syntax extension, the remaining tricky part is to figure out what pieces of the grammar you need to extend to accomplish your objective. For that, I consult the definition of the OCaml parser in Camlp4OCamlParser.ml in the OCaml source tree.
1. http://en.wikipedia.org/wiki/Context-free_grammar

— Michael Ekstrand

If you consider yourself as a n00b, don’t start by camlp4. This is probably the most difficult part of OCaml — and to program camlp4 you need to use OCaml standard syntax (or revised syntax, it depends if you
use antiquotations).
If you still want to follow the hard path, as suggested elsewhere, Jake Donham’s blog posts are very good:
http://ambassadortothecomputers.blogspot.com/p/reading-camlp4.html
Or if you are around, there is a tutorial session at CUFP:
http://cufp.org/conference/sessions/2010/camlp4-and-template-haskell.
(but you need to subscribe).

— Sylvain Le Gall
(via Caml-list)