<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.memcp.org/index.php?action=history&amp;feed=atom&amp;title=JIT_Compilation</id>
	<title>JIT Compilation - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.memcp.org/index.php?action=history&amp;feed=atom&amp;title=JIT_Compilation"/>
	<link rel="alternate" type="text/html" href="https://www.memcp.org/index.php?title=JIT_Compilation&amp;action=history"/>
	<updated>2026-08-29T08:27:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://www.memcp.org/index.php?title=JIT_Compilation&amp;diff=301&amp;oldid=prev</id>
		<title>Wikiservice: Refresh MemCP documentation: accuracy, operational guidance, performance profile and maintained API reference</title>
		<link rel="alternate" type="text/html" href="https://www.memcp.org/index.php?title=JIT_Compilation&amp;diff=301&amp;oldid=prev"/>
		<updated>2026-08-28T09:59:18Z</updated>

		<summary type="html">&lt;p&gt;Refresh MemCP documentation: accuracy, operational guidance, performance profile and maintained API reference&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;!-- Copyright (C) 2026 Carl-Philip Haensch --&amp;gt;&lt;br /&gt;
&amp;lt;!-- SPDX-License-Identifier: GPL-3.0-or-later --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;jit-compilation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= JIT Compilation =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Generated from MemCP c42e19eba on 2026-08-27; do not edit manually. --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-message-box mw-message-box-notice&amp;quot;&amp;gt;Generated from MemCP commit &amp;lt;code&amp;gt;c42e19eba&amp;lt;/code&amp;gt; on 27 August 2026. See [[Full SCM API documentation]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;JIT Compilation&amp;#039;&amp;#039;&amp;#039; module requests and inspects native compilation of supported Scheme procedures. JIT availability depends on the build and architecture; the current native emitter targets x86-64.&lt;br /&gt;
&lt;br /&gt;
Compilation is an optimization, not a semantic mode. Unsupported procedures remain interpreted, and diagnostic helpers can report unexpected fallback without changing the procedure&amp;#039;s result.&lt;br /&gt;
&lt;br /&gt;
MemCP&amp;#039;s performance roadmap extends native compilation from individual supported procedures toward complete shard-local scan loops: storage decoders provide known value types, filter/map/reduce expressions become one tight loop, and vectorized batches amortize callback overhead. Additional architecture backends remain planned rather than current support.&lt;br /&gt;
&lt;br /&gt;
JIT coverage is an active performance boundary. Real application workloads can currently lose to MySQL when important operators remain interpreted or compilation cost dominates a short query. The goal is broader native coverage without weakening garbage-collector safety, cancellation, pointer lifetime or interpreter-equivalent results.&lt;br /&gt;
&lt;br /&gt;
== jit ==&lt;br /&gt;
&lt;br /&gt;
compiles a lambda to optimized native code when this build enables JIT&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Allowed number of parameters:&amp;#039;&amp;#039;&amp;#039; 1–1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;parameters&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;fn&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;any&amp;lt;/code&amp;gt;): the function to compile&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;returns&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Returns ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;value&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;any&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;jit-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== jit? ==&lt;br /&gt;
&lt;br /&gt;
tells whether a value is a JIT-compiled function descriptor&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Allowed number of parameters:&amp;#039;&amp;#039;&amp;#039; 1–1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;parameters-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;value&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;any&amp;lt;/code&amp;gt;): value to inspect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;returns-1&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Returns ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;value&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== jit-warn-if-fallback ==&lt;br /&gt;
&lt;br /&gt;
prints a diagnostic warning when an enabled JIT build kept a procedure interpreted and returns the procedure unchanged&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Allowed number of parameters:&amp;#039;&amp;#039;&amp;#039; 1–2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;parameters-2&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;procedure&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;any&amp;lt;/code&amp;gt;): procedure expected to be a native compilation candidate&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;label&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;): optional diagnostic label &amp;#039;&amp;#039;(optional)&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;returns-2&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Returns ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;value&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;any&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;jit-enabled&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== jit-enabled? ==&lt;br /&gt;
&lt;br /&gt;
tells whether this binary was built with the patched Go JIT runtime&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Allowed number of parameters:&amp;#039;&amp;#039;&amp;#039; 0–0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;parameters-3&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;This function has no parameters.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;returns-3&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Returns ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;value&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;)&lt;/div&gt;</summary>
		<author><name>Wikiservice</name></author>
	</entry>
</feed>