<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://mw.hh.se/wg211/index.php?action=history&amp;feed=atom&amp;title=WG211%2FM12Kiselyov</id>
	<title>WG211/M12Kiselyov - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://mw.hh.se/wg211/index.php?action=history&amp;feed=atom&amp;title=WG211%2FM12Kiselyov"/>
	<link rel="alternate" type="text/html" href="http://mw.hh.se/wg211/index.php?title=WG211/M12Kiselyov&amp;action=history"/>
	<updated>2026-04-05T21:11:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>http://mw.hh.se/wg211/index.php?title=WG211/M12Kiselyov&amp;diff=788&amp;oldid=prev</id>
		<title>Ups: Created page with &quot;&#039;&#039;MetaOCaml lives on&#039;&#039; by Oleg Kiselyov  MetaOCaml is a superset of OCaml extending it with staging annotations to construct and run typed code values. It was originally implemen...&quot;</title>
		<link rel="alternate" type="text/html" href="http://mw.hh.se/wg211/index.php?title=WG211/M12Kiselyov&amp;diff=788&amp;oldid=prev"/>
		<updated>2013-04-07T19:40:49Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;MetaOCaml lives on&amp;#039;&amp;#039; by Oleg Kiselyov  MetaOCaml is a superset of OCaml extending it with staging annotations to construct and run typed code values. It was originally implemen...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;MetaOCaml lives on&amp;#039;&amp;#039; by Oleg Kiselyov&lt;br /&gt;
&lt;br /&gt;
MetaOCaml is a superset of OCaml extending it with staging annotations&lt;br /&gt;
to construct and run typed code values. It was originally implemented&lt;br /&gt;
by Taha, Calcagno and collaborators and was successfully used for&lt;br /&gt;
specializing numeric and dynamic programming algorithms, building FFT&lt;br /&gt;
kernels, optimizing compilers for DSL for image processing, OCaml&lt;br /&gt;
server pages, etc. Unfortunately, due to lack of resources MetaOCaml&lt;br /&gt;
fell behind OCaml. The large differences between OCaml and its dialect&lt;br /&gt;
has contributed to the difficulty of maintaining MetaOCaml.&lt;br /&gt;
&lt;br /&gt;
This talk reports on the compete re-implementation of MetaOCaml, called&lt;br /&gt;
BER MetaOCaml N100. It is a superset of the current 4.001 version of&lt;br /&gt;
OCaml. BER MetaOCaml has been re-structured to minimize the number of&lt;br /&gt;
changes to the OCaml type-checker and to separate the `kernel&amp;#039;&lt;br /&gt;
(type-checking and constructing code values) from the `user-level&amp;#039;.&lt;br /&gt;
Various ways of running the code -- compiling to byte-code or machine&lt;br /&gt;
instructions and executing them, or translating code values to C or&lt;br /&gt;
LLVM, or printing them -- can be done in `user-level&amp;#039; libraries,&lt;br /&gt;
without any need to hack into (Meta)OCaml.  Maintaining the kernel and&lt;br /&gt;
keeping it up to date should be much easier now. Also easier should be&lt;br /&gt;
contributing to MetaOCaml.&lt;br /&gt;
&lt;br /&gt;
We will illustrate a notable new feature: scope extrusion check.&lt;br /&gt;
Attempting to build code values with unbound or mistakenly bound&lt;br /&gt;
variables (which is possible with mutation or other effects) is now&lt;br /&gt;
caught early, raising an exception with good diagnostics. &lt;br /&gt;
&lt;br /&gt;
Active development, new modular structure, new features of MetaOCaml will&lt;br /&gt;
hopefully attract more users and contributors, and incite future&lt;br /&gt;
research into type-safe meta-programming.&lt;/div&gt;</summary>
		<author><name>Ups</name></author>
	</entry>
</feed>