Shed-skin

Latest version: v0.9.10

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

Scan your dependencies

Page 1 of 5

0.9.51

-run shedskin itself with python 3.8..3.11 (but still only compiling python2-compatible code)
-add sunfish example
-move to c++17, allowing us to use std::hash instead of implementing our own algorithm
-optimize 'name in (expr, expr, ..)'
-optimize 'for i, c in enumerate(str)'
-add option to disable gc (-c/--nogc)
-add support for gc.enable/disable/collect
-use 1 byte for bools rather than 4
-dropped "official" windows build (suggestion to use WSL if possible)

0.9.22

This is Shed Skin version 0.9.2.

0.9.10

- python 3.13 support
- support for `set` and `dict` comprehensions
- support for `itertools.batched`
- support for `range` object slicing
- ignore position- and kw-only syntax (`/` and `*` args)
- fully type annotated shedskin code (triggered by shakeeb)
- added direct compilation (no makefile) as `translate -c` (shakeeb)
- major update of docstrings (shakeeb)
- random number generation using mersenne twister instead of `rand()` (folkert)
- major cleanup of `builtin.hpp`, making C++ support code much more readable
- new example program, largest so far at 22K lines (mostly simple autogenerated code, but still).
- cache 1-length `bytes` objects (as we do for `str` objects), greatly improving performance
- added `shedskin.stats` module for capturing statistics (shakeeb)
- ruff linter cleanups (shakeeb)
- several fixes for `bytes` type
- several fixes for `array` module
- several fixes for `os` module (`read`, `write`, `urandom`..)
- handle string formatting precision (e.g. `'%2s'`)
- further reduced C++ compiler warnings
- fix for boolean default variables
- replaced `asprintf` usage, again further reducing C++ compiler warnings
- various other bug fixes and optimizations

0.9.9

- started adding type annotations to shedskin (Shakeeb Alireeza)
- use CXXFLAGS instead of CCFLAGS in makefiles (Yuri Victorovich)
- add object address to default `__repr__` (reported by Yuri Victorovich)
- FreeBSD compatibility fix (Yuri Victorovich)
- more scalable but slower type inference
- reimplemented `{dict,set}` using STL unordered_{map, set}
- added --float32/--float64/--int32/--int64/--int128 options
(--int128 not available under windows, awaiting C++ standardization)
- fixed memory leak for extension modules
- new pycsg example (constructive solid geometry)
- fixed c64, hq2x and pylot examples under windows
- ignore typing imports and any type annotations
- support for `range.{start,stop,step,count,index,__contains__}`
- generalized `expr in [..]/(..)` optimization to work in more cases
- support `bytes.__contains__(int)`
- support `itertools.{pairwise, accumulate}`
- support default value for `dict.pop`
- fix `{str,bytes}.{find,rfind}` negative start, stop arguments
- improved support for overloading `__index__`
- rewrote `{str,bytes}.split` to not use macros
- `struct.{pack_into,unpack_from}`: wrap negative index
- remove partial `__del__` support, and just mention it is not supported
- (re)add `io.StringIO` (in part to test print function)
- added `print(flush)` argument
- added `array.typecodes`
- support 'n' and 'N' fmt chars in `struct` module
- removed --nogcwarns and always hide gc warnings
- (re)add tests for `array`, `io`
- cleaner print statement for common (no keyword) case
- many refactorings for readability
- fixed a large amount of g++ warnings

0.9.8

- optimized indexing (when not using --nobounds, --nowrap) (thanks to folkert van heusden)
- optimized list/tuple allocation (thanks to folkert van heusden)
- improvements from running ruff linter (thanks to shakeeb alireza)
- support python 3.12 (used deprecated 'imp' module)
- optimized struct.{pack, pack_into}
- fixed several bugs in struct.pack
- added special-case optimization: list-expression + [element]
- support syntax for sets: {a, b, ..}
- support for int.bit_count()
- support for zip(strict=True)
- replace usage of va_arg etc macros with variadic templates (faster and more flexible)
- removed boxing of arguments to print(), struct.pack().. cleaner and should be much faster.
- two new examples: a strong othello player, and a collatz sequence record finder
- fixed many common compiler warnings (-Wall -Wconversion.. and such)
- fix segfault on unhandled exception (ubuntu) by switching to -lgctba from -lgccpp
- various fixes for --long
- fix (translate) --silent
- fix itertools.{zip_longest, filterfalse} (renamed from izip_longest, ifilterfalse)
- various other minor fixes
- add some errors for unsupported features
- fix fysphun example to work again
- ported four examples to pygame

0.9.7

- Use CMake to generate output binaries (Shakeeb Alireza)
- Native Windows support! (using cmake and conan; Shakeeb Alireza)
- Dropped blessings/progressbar/jinja dependencies (Shakeeb Alireza)
- Various minor C++ improvements/fixes (Folkert van Heusden)
- `mmap` ContextManager support (Humhue)
- Basic support for f-strings (no format specifiers)
- Support relative imports
- Support walrus operator
- Support struct.{unpack_from, pack_into}
- Support unpacking from iterables
- Fix bytes.__contains__(bytes)
- Add DOOM-engine example (1 FPS -> 60 FPS)
- Prettify cpp tuple types ("tuple2<T,T>" -> "tuple<T>")
- Set {Exception, BaseException}.__class__
- Various minor other fixes and improvements
- ...

Page 1 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.