Pyjion

Latest version: v2.0.0

Safety actively analyzes 682361 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 6

1.2.2

* Added `pyjion.dis.flow_graph()` function to get a DOT control flow-graph of CIL basic blocks
* Added `pyjion.dis.cil_instructions()` function to get a list of CIL instructions from a compiled function
* Enable ASAN for Windows (compile-time option)
* CIL compiles to short branch opcodes when target is within 1 byte
* Show effective branch target on CIL disassembly output

1.2.1

* Fixes a bug in OPT-12 (method caching) where it would store the incorrect cache address for a global type of subclass. Bug seen in SQLalchemy.

1.2.0

* PGC unboxing errors are avoided when functions are called with different argument types to those it was optimized with.
* PGC types will now be inferred across jump statements, for loops and other small scopes, improving performance
* LOAD_METHOD will use cached pointers for builtin types like `dict`, `list`, etc. meaning LOAD_METHOD is faster in many cases
* Dictionary merge operators, `|` and `|=` will assert the return type as dict
* Fixes a crash on Windows when referencing call points or sequence points for a free'd module
* Fixes an issue running `pyjion -m module` with arguments

1.1.1

* Fixed a critical bug where recursive functions that use a mutable container type (e.g. list) causes a decref to the wrong object and subsequent crash.
* Fixes a bug on graph generation for recursive functions causing a crash in some situations
* Fixes a bug on method calls, which called the wrong method when the class was copied using `copy.copy()`
* Reduced memory consumption for method calls

1.1.0

* Added unboxed integer operations for BINARY_LSHIFT, BINARY_RSHIFT, BINARY_AND, BINARY_OR, BINARY_XOR
* BINARY_MULTIPLY and BINARY_POWER will stay unboxed if the right-hand operator is a constant that won't overflow (e.g. x ** 2)
* Added unboxed UNARY_NOT,UNARY_POSITIVE and UNARY_NEGATIVE operation for float, bool and int types
* Added unboxed UNARY_INVERT for int and bool types
* Added unboxed STORE_SUBSCR for bytearrays
* The types of global variables are profiled at compile-time
* Improved performance of bytearrays, by adding an unboxed bytearray type and unboxed slice operations for bytearrays, yielding unboxed integers
* Fixed a reference count bug with unboxed range iterators
* PGC will now allow an int of value 0 or 1 to be unboxed into a bool
* Unboxing of integers is now more efficient and allows for True to be unboxed into 1 and False into 0

1.0.0

* Pyjion uses .NET 6 Preview 3 as the compiler, for Linux and macOS make sure you have installed it first
* Rich comparisons (==, <, >) of floating point numbers are significantly faster (OPT-17)
* All method calls are faster by enforcing vectorcall protocol and inlining anything below 10 arguments (OPT-16)

Page 2 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.