What’s new in PyPy3.7 7.3.6

Merge latest hpy

Produce better error messages for IndentationErrors (showing statement and line that opened the block that is missing), AttributeErrors and NameErrors (showing suggestions which name could have been meant instead in case of typos). This follows the upcoming CPython 3.10 features.

Instantiate the distutils.command.install schema for the python implementation (issue 3436)

Avoid overflow in struct.pack_into error message (BPO 30245)

Reduce memory allocations at runtime caused by interpreter-internal identifiers.

Speep up cached imports by re-implementing (a subset of) BPO-22557. This brings it very close to PyPy2 standards.

Make creation and destruction of many files cheaper: don’t call .__del__ of streams that had their .close() method called (and aren’t user defined classes).

Add a sys.implementation._multiarch field like CPython on linux, darwin via __pypy__.os._get_multiarch()

Add a lib_pypy/_sysconfigdata__*.py file like CPython on linux, darwin during packaging via sysconfig._generate_posix_vars() (issue 3483).

Update HPy backend to 0.0.2

Implement missing PyDateTimeAPI functions related to timezones (issue 3320)

Use libffi v3.3 like CPython instead of the very old libffi_msvc on windows

When creating a PyUnicodeObject, use the compact form to store the data directly on the object and not via an additional buffer. This is used in pythran via _PyUnicode_COMPACT_DATA even though it is a “private” interface.

Use the cpyext error indicator to implement HPy exceptions