Releases: pocketpy/pocketpy
Releases Β· pocketpy/pocketpy
v2.0.2
This version fixes some bugs and improves code quality.
Changes
- Fix a bug of
random
module which uses a wrong initial seed. - Fix #315 about
py_switchvm
. - Improve
PK_ENABLE_OS
and addPK_BUILD_WITH_IPO
to cmake options. - Add
conio
module which provides_kbhit
and_getch
functions for desktop platforms. - Fix
True not False
bug of parser. - Fix
**
associativity bug.2**2**3
now evaluates to 256 instead of 64. - Add
__float__
and__int__
and__round__
. - Add
py_bindstaticmethod
. - Fix
str.split
. It behaves the same as cpython now. - Fix a bug of closure for generator functions.
- Support
vec*
unpack, e.g.x, y = vec2i(1, 2)
.
Full Changelog: v2.0.1...v2.0.2
v2.0.1
This is the first stable release of pocketpy.
Changes
__import__
now supports loading dynamic library. The library should have a exported C functionpy_module_initialize
- Fix a bug about
clock_gettime
by @AstroAir - Add builtin function
input()
andtuple.__lt__
yield from
now can return value andyield
implicityield None
next
now can take default- Support PEP695
- Fix a multi-line function definition bug
- Add
bytes.__len__
and improveord()
- Support
finally
syntax
v2.0.0
The first beta release of v2.x. We have completed the move to C11.
v1.4.6
pybind11 support was added in this version.
See https://pocketpy.dev/pybind11/ for details.
After this version, v1.x
series is entering its Long-term support period.
We will provide bug fixes for two years.
v1.4.5
Improvements
- add
bytes
addition and slice support - improve
FileIO
and add more methods such asseek()
andtell()
. See https://pocketpy.dev/modules/io/ - add
__missing__
fordict
and refactordefaultdict
- add
bit_length
method to int #233 - improve performance of for loop
- adoping a more efficient division algorithm for bigint #232
- make
float
always 64-bit; optimize for empty function - add
vec.__getitem__
; addpkpy_set_main_argv
to setsys.argv
- add
reduce
andpartial
forfunctools
module - refactor
random
module to use builtin mt19937 implementation
New Features
- add
enum
module. See https://pocketpy.dev/modules/enum/ - support precompiling. See https://pocketpy.dev/features/precompile/
- add
itertools
module. See https://pocketpy.dev/modules/itertools/ - support PDB debugging. See https://pocketpy.dev/features/debugging/
Bug fixes
- check the size of fillchar passed to str methods (ljust, rjust) #236
- perform boundary check before searching to prevent security vulnerabilities #237
Full Changelog: v1.4.3...v1.4.5
v1.4.3
Fix some bugs and improve performance.
What's Changed
- Modify string constructor to allow no arguments by @faze-geek in #226
- Fix #197 by @blueloveTH in #227
- Sort names returned by the built-in dir method by @albertexye in #231
New Contributors
- @albertexye made their first contribution in #231
Full Changelog: v1.4.2...v1.4.3
v1.4.2
Changes
- add
random.choices
- remove python3 deps (now you can compile pkpy without python3 installed)
list.index
supports__start
;str.index
andstr.find
supports__start
- fix a bug of
line_profiler
- fix #217 #220 #223 #214 #212 #211
- raise an error if a literal int overflows
- support scientific notation #213
Break changes
pkpy now uses a RTTI-based py_cast<>
implementation. You may need to add -frtti
flags to compile it.
New Contributors
- @16bit-ykiko made their first contribution in #208
- @miyanyan made their first contribution in #207
- @faze-geek made their first contribution in #210
Full Changelog: v1.4.1...v1.4.2
v1.4.1
Changes
- move
strip
methods into cpp - fix a bug of
hex
related methods - add
PK_NO_EXPORT_C_API
macro - add
array2d
module - add
line_profiler
module - make
vm->_ceval_on_step
always available - mark
stdout_write
andstderr_write
as virtual - add some new methods for
linalg
module - allows
tuple
as function default parameter
Break changes
str
was changed to be null-terminated;Str::c_str_dup
was removed
v1.4.0
Changes
- remove
#include <emscripten.h>
for compatibility reason - remove
os.system
- rename some
linalg
methods - reduce output binary size
- set
PK_ENABLE_OS
to 0 by default - fix #194
New Features
- full slice support
- recursive
repr
detection, i.e.[1, [...]]
- add typed error message, e.g.
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
- add
m__setattr__
,m__getattr__
andm__delattr__
hooks in cpp
Internal Changes
obj_type_name
was rename to_type_name
- remove
OBJ_NAME
macro Tuple
's constructor was changed- remove
timeit
module
v1.3.9
Changes
- add inplace methods
set_trs
,__imatmul__
andinvert_
intolinalg.mat3x3
(were renamed in v1.4.0, don't use them) - add inplace method
.assign()
tovec2
,vec3
,vec4
andmat3x3
(were renamed in v1.4.0, don't use them) - remove
bind_builtin_func
and all string-based bind overloads - add bind type parameter to
vm->bind_func<>
- some cleanup to improve code quality
- add
.hex()
and.fromhex()
toc.struct
- make all
PY_STRUCT_LIKE
objects picklable - fix #187 the behavior of
with <expr> [as <@id>]
Full Changelog: v1.3.8...v1.3.9