FreeTakServer icon indicating copy to clipboard operation
FreeTakServer copied to clipboard

Evaluate version of Python to be used in 2.0

Open HeroesLament opened this issue 2 years ago • 1 comments

Major new features of the 3.11 series, compared to 3.10 Among the new major new features and changes so far:

PEP 657 – Include Fine-Grained Error Locations in Tracebacks PEP 654 – Exception Groups and except* PEP 673 – Self Type PEP 646 – Variadic Generics PEP 680 – tomllib: Support for Parsing TOML in the Standard Library PEP 675 – Arbitrary Literal String Type PEP 655 – Marking individual TypedDict items as required or potentially-missing bpo-46752 – Introduce task groups to asyncio PEP 681 – Data Class Transforms bpo-433030– Atomic grouping ((?>…)) and possessive quantifiers (*+, ++, ?+, {m,n}+) are now supported in regular expressions. The Faster Cpython Project is already yielding some exciting results. Python 3.11 is up to 10-60% faster than Python 3.10. On average, we measured a 1.22x speedup on the standard benchmark suite. See Faster CPython for details. (Hey, fellow core developer, if a feature you find important is missing from this list, let Pablo know.) The next pre-release of Python 3.11 will be 3.11.0b5, currently scheduled for Monday, 2022-07-25.

HeroesLament avatar Aug 20 '22 14:08 HeroesLament

Need to check major differences between 3.10 and 3.11 to see which python version to standardize on.

HeroesLament avatar Aug 20 '22 14:08 HeroesLament

any progress so far?

naman108 avatar Sep 29 '22 22:09 naman108

Python 3.11 is claimed to be up to 64% faster than 3.10

Image

brothercorvo avatar Oct 07 '22 14:10 brothercorvo

Differences of versions since 3.8:

3.9 New syntax features:

PEP 584, union operators added to dict;

PEP 585, type hinting generics in standard collections;

PEP 614, relaxed grammar restrictions on decorators.

New built-in features:

PEP 616, string methods to remove prefixes and suffixes.

New features in the standard library:

PEP 593, flexible function and variable annotations;

os.pidfd_open() added that allows process management without races and signals.

3.9 Interpreter improvements:

PEP 573, fast access to module state from methods of C extension types;

PEP 617, CPython now uses a new parser based on PEG;

a number of Python builtins (range, tuple, set, frozenset, list, dict) are now sped up using PEP 590 vectorcall;

garbage collection does not block on resurrected objects;

a number of Python modules (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, math, operator, resource, time, _weakref) now use multiphase initialization as defined by PEP 489;

a number of standard library modules (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) are now using the stable ABI defined by PEP 384.

3.9 New library modules:

PEP 615, the IANA Time Zone Database is now present in the standard library in the zoneinfo module;

an implementation of a topological sort of a graph is now provided in the new graphlib module.

3.9 Release process changes:

PEP 602, CPython adopts an annual release cycle.

brothercorvo avatar Oct 07 '22 14:10 brothercorvo

3.10 changes

3.10 features:

PEP 634, Structural Pattern Matching: Specification

PEP 635, Structural Pattern Matching: Motivation and Rationale

PEP 636, Structural Pattern Matching: Tutorial

bpo-12782, Parenthesized context managers are now officially allowed.

3.10 New features in the standard library:

PEP 618, Add Optional Length-Checking To zip.

3.10 Interpreter improvements:

PEP 626, Precise line numbers for debugging and other tools.

3.10 New typing features:

PEP 604, Allow writing union types as X | Y

PEP 613, Explicit Type Aliases

PEP 612, Parameter Specification Variables

Important deprecations, removals or restrictions:

PEP 644, Require OpenSSL 1.1.1 or newer

PEP 632, Deprecate distutils module.

PEP 623, Deprecate and prepare for the removal of the wstr member in PyUnicodeObject.

PEP 624, Remove Py_UNICODE encoder APIs

PEP 597, Add optional EncodingWarning

brothercorvo avatar Oct 07 '22 14:10 brothercorvo

Check out all the requirements using compatibility Library

brothercorvo avatar Oct 07 '22 16:10 brothercorvo

check out FTS dependencies here: https://github.com/FreeTAKTeam/FreeTakServer/network/dependencies

brothercorvo avatar Oct 14 '22 14:10 brothercorvo

see https://jott.live/markdown/py3.11_vs_3.8

brothercorvo avatar Oct 27 '22 12:10 brothercorvo

Decision to go for Python 3.11

brothercorvo avatar Nov 08 '22 19:11 brothercorvo