diff --git a/doc/misc.rst b/doc/misc.rst index 0cb1f1f7d2dbf0b30ddea9cce57b755b81a05cfe..62e5a1fa20f2709c4933e21f43175fc1f870c348 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? -------------------------------------------