summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2022-06-14 10:10:30 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2022-06-14 10:10:30 -0400
commitbcd03652c45e1638aaadc398d990696a49f56dbb (patch)
tree811ecb5bc5becb52eae9a63c2543f88d474f87af
parent4010a61af7b88e0d3b18bcd560a465269384f250 (diff)
downloadsqlalchemy-bcd03652c45e1638aaadc398d990696a49f56dbb.tar.gz
add contextual detail to cython change message
Change-Id: I57014a16f4718bdbe6eb91b8aeed7075cb4df5f1
-rw-r--r--doc/build/changelog/migration_20.rst20
1 files changed, 14 insertions, 6 deletions
diff --git a/doc/build/changelog/migration_20.rst b/doc/build/changelog/migration_20.rst
index 05ef1dcc7..bfa1957b6 100644
--- a/doc/build/changelog/migration_20.rst
+++ b/doc/build/changelog/migration_20.rst
@@ -163,14 +163,22 @@ C Extensions now ported to Cython
---------------------------------
The SQLAlchemy C extensions have been replaced with all new extensions written
-in Cython_. The move to Cython provides dramatic new advantages with
-literally no downsides:
+in Cython_. While Cython was evaluated back in 2010 when the C extensions were
+first created, the nature and focus of the C extensions in use today has
+changed quite a bit from that time. At the same time, Cython has apparently
+evolved significantly, as has the Python build / distribution toolchain which
+made it feasible for us to revisit it.
+
+The move to Cython provides dramatic new advantages with
+no apparent downsides:
* The Cython extensions that replace specific C extensions have all benchmarked
- as **faster** than literally **all** the C code that SQLAlchemy previously
- included. While this seems amazing, it appears to be a product of how highly
- optimized Cython's routines are compared to a naive C implementation of a
- function.
+ as **faster**, often slightly, but sometimes significantly, than
+ virtually all the C code that SQLAlchemy previously
+ included. While this seems amazing, it appears to be a product of
+ non-obvious optimizations within Cython's implementation that would not be
+ present in a direct Python to C port of a function, as was particularly the
+ case for many of the custom collection types added to the C extensions.
* Cython extensions are much easier to write, maintain and debug compared to
raw C code, and in most cases are line-per-line equivalent to the Python