From 3d6f10d0a78df128df355c411931703987958207 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Thu, 22 Feb 2018 18:34:56 -0600
Subject: [PATCH] Add language versioning FAQ

---
 doc/misc.rst | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/doc/misc.rst b/doc/misc.rst
index 0cb1f1f7d..62e5a1fa2 100644
--- a/doc/misc.rst
+++ b/doc/misc.rst
@@ -378,6 +378,28 @@ successful vectorization. This generates the following code:
 .. literalinclude:: ../examples/python/vector-types.cl
     :language: c
 
+What is the story with language versioning?
+-------------------------------------------
+
+The idea is to keep supporting multiple versions at a time. There's a
+tension in loopy between the need to build code that keeps working
+unchanged for some number of years, and needing the language to
+evolve--not just as a research vehicle, but also to enable to respond
+to emerging needs in applications and hardware.
+
+The idea is not to support all versions indefinitely, merely to allow
+users to upgrade on their own schedule on the scale of a couple years.
+Warnings about needing to upgrade would get noisier as a version nears
+deprecation. In a way, it is intended to be a version of Python's
+`__future__` flags, which IMO have the served the language tremendously
+well.
+
+One can also obtain the current language version programmatically:
+:data:`loopy.MOST_RECENT_LANGUAGE_VERSION`.
+But pinning your code to that would mean choosing to not use the
+potentially valuable guarantee to keep existing code working unchanged
+for a while. Instead, it might be wiser to just grab the version of the
+language current at the time of writing the code.
 
 Uh-oh. I got a scheduling error. Any hints?
 -------------------------------------------
-- 
GitLab