Releases: tonybaloney/Pyjion
Releases · tonybaloney/Pyjion
v2.0.0
What's Changed
- Update to .NET 7 by @tonybaloney in #492
- Add support for Windows ARM64
Full Changelog: 1.2.6...2.0.0
v1.2.6
What's Changed
- Local var scoping for release with debug by @tonybaloney in #474
Full Changelog: 1.2.5...1.2.6
v1.2.5
What's Changed
- Enable flags for setting release code with debug symbols by @tonybaloney in #473
Full Changelog: 1.2.4...1.2.5
v1.2.4
What's Changed
- Updated to rich 11.0
- Fix a bug in the CIL disassembler for constant double (LDC_R8) opcodes
v1.2.3
What's Changed
- Unboxed operations won't update frame last instruction since they're unable to raise exceptions (making them faster)
Full Changelog: 1.2.2...1.2.3
v1.2.2
What's Changed
- 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
Full Changelog: 1.2.1...1.2.2
v1.2.1
What's Changed
- Add a cibuildwheel specification by @tonybaloney in #441
- Fix a bug in OPT-12 causing incorrect caching of a method address for a global type subclass by @tonybaloney in #462
Full Changelog: 1.2.0...1.2.1
v1.2.0
What's Changed
- 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
PRs
- Faster LOAD_METHOD for builtins where the stack value requires a guard by @tonybaloney in #448
- Fix volatile (e.g. PGC) values losing type information between scopes by @tonybaloney in #449
- Compile 2 functions, one with unboxing and one without by @tonybaloney in #451
- Fix crash on empty args by @tonybaloney in #453
- Fix
python -m pyjion
module arguments by @tonybaloney in #457
Full Changelog: 1.1.1...1.2.0
v1.1.1
What's Changed
- 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
- The
pyjion
command parses args with better similarity to the python command by @henryiii in #440
New Contributors
Full Changelog: 1.1.0...1.1.1
v1.1.0
What's Changed
- Updated CMake and Python versions on development files by @elkd in #428
- Improve performance of bytearray subscripts by @tonybaloney in #427
- Simplify unboxing for values that dont require it by @tonybaloney in #434
- Add unboxed STORE_SUBSCR for a bytearray by @tonybaloney in #435
- Add a sudoku benchmark by @tonybaloney in #439
- Add
=
operator by @donno2048 in #436
- 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
New Contributors
- @elkd made their first contribution in #428
- @donno2048 made their first contribution in #436
Full Changelog: 1.0.0...1.1.0