artifact_id;status_id;status_name;priority;submitter_id;submitter_name;assigned_to_id;assigned_to_name;open_date;close_date;last_modified_date;summary;details;"Component";"Version";"Resolution"
505;1;"Open";3;146;"Gabriel Scherer";179;"Jon Harrop";"2010-01-10 01:47";"";"2010-01-16 10:51";"Camlp4 quotation for HLVM AST, and examples";"I had a look at HLVM progress recently, and the test.ml file is not so beautiful : lots of hand-crafted AST, not very classy for a supposedly benchmarkable language.

Here is a Camlp4 quotation providing a concrete syntax for the main HLVM constructs, and a port of (some parts of) test.ml that use it. It is loosely based on toplevel.ml and examples/compiler2 syntax, with arbitrary decisions when I didn't know wich syntax you'd want. The syntax is not there to stay, my idea was that you could hack it to your liking.

The quotations support only a fraction of HLVM (still in flux) syntax; all types are supported (I developped against the SVN trunk), but toplevel support is partial, and expressions support is _very_ partial : this is a proof of concept. Note however than thanks to the standard antiquotation mechanism, you are not limited when using the concrete syntax, as you can always revert to the bare constructors inside a quotation when there is no syntax available.


PS : in my opinion, the ""The design documentation and good documentation is only to be found in my behind-the-paywall Ocaml Journal Article"" really hurts HLVM openness. I understand the general idea behind your Ocaml Journal business model, but you really should make anything HLVM-related open-access. I don't think I would contribute anything serious to a project that doesn't release its documentation free of charge.";"None";"None";"None"
506;1;"Open";3;146;"Gabriel Scherer";179;"Jon Harrop";"2010-01-10 01:50";"";"2010-01-16 10:51";"Makefile";"Compile-time with ""compile.sh"" is not-neglectible on my machine (about 10s).

While working on pa_hlvm, I wrote a quick&dirty Makefile to benefit from the caching algorithm to speed up compilation time. After modifying pa_hlvm or test2, recompile takes only 2s.";"None";"None";"None"