What's new in Shed Skin 0.9.4
Jun 17, 2013
- type inference fix (concluding dynamic types too soon), which allowed a 5,000+ sloc program to compile
- fix for passing long integers to extension module (Ernesto Ferro)
- fixes for pickling (triggered by Ernesto Ferro)
- fix for when iteration variable is declared global (reported by Alex Susu)
- fix for method names equal to certain python builtins
- fix for lost types in certain virtual functions
- fix for default args and inheritance
- fix for block quotes (#{ and #}, triggered by Paul Haeberli)
- fix for unpacking negative integers (reported by RealGrandrew)
- fix corner case: removing last element of list while iterating over it.. (reported by akatopaz)
- random.vonmisesvariate changed in python 2.7.4
- added tests for most errors/warnings
- make __to_py__ method virtual (triggered by Ernesto Ferro)
- partial implementation of __del__ (triggered by Paul Haeberli)
- parallelize tests (Ernesto Ferro)
- new examples (now 75 in total!):
- wolfenstein-like engine (Mariano Lambir, found by Ernesto Ferro)
- 3D convex hull (Michel Anders)
- C image processing library (Paul Haeberli)
- several large code cleanups:
- simplified module lookup (Ernesto Ferro)
- split up shared.py (Ernesto Ferro)
- remove setgx/getgx functions (Ernesto Ferro)
- limit setmv/getmv functions to graph.py
- better follow python style guide, rename classes in shared.py (Ernesto Ferro)
- move most cpp-specific code to cpp.py (Ernesto Ferro)
- removed copy and struct modules (Ernesto Ferro)
New in Shed Skin 0.9.3 (Jan 9, 2013)
- much improved support for arbitrary code at the class level
- support select.select (UNIX, danny milosavljevic)
- greatly optimized creating/extending arrays (triggered by piotr tarsa)
- fix generator expression problem (triggered by piotr tarsa)
- improve string formatting and null chars (reported by jorik blaas)
- new -g option to disable GC warnings
- remaining fixes for GCC 4.7 (help from thomas spura, mos4567)
- avoid crash on non-existant attribute (reported by danny milosavljevic)
- improve include file ordering (triggered by danny)
- avoid trouble by adding main module to module cache (reported by badamomike)
- update random.expovariate to 2.7 behaviour, finally fixing test 172
- add a few warnings for broken python code
- fix for when module exists in multiple libdirs (shedskin -L)
- fix annotation crash (shedskin -a)
- new example programs (now 72 in total):
- pygasus, a NES emulator (about 1500 lines, Maciek "Mistrall" Żuk)
- timsort sorting algorithm (about 650 lines, dan stromberg)
- a conflict-driven satisfiability solver (thomas leonard)
- TarsaLZP, a data compression algorithm (about 900 lines, piotr tarsa)
- minpng, a minimal uncompressed PNG encoder
New in Shed Skin 0.9.2 (May 7, 2012)
- new example: stereo computer vision (james coughlan)
- new example: rubik's cube solver (author unknown)
- new example: thistlethwaite rubik's cube solver (stephan pochmann)
- optimized array indexing, slicing (reported by francesco frassinelli)
- optimized list.pop without arguments (reported by ecir hana)
- optimized bool(list) (idem)
- os.popen2 fix (danny milosavljevic)
- support float.is_integer (reported by tony veijalainen)
- use 64-bit arithmetic in pow internally (idem)
- set.__ior__ etc. modeling fix (reported by william edwards)
- model __eq__ in methods __contains__, index, count, remove (reported by tony veijalainen)
- fix for skipped calls in generator (reported by francesco frassinelli)
- avoid abstract object type, to avoid hiding warnings (reported by wilkin ng)
- avoid multiple definitions for rich comparison code in header file (idem)
- look in correct context for inherited methods (idem)
- some fixes for GCC 4.7 (reported by mos4567)
New in Shed Skin 0.9.1 (Feb 10, 2012)
- new -L option to add library directories (Artem Egorkine)
- support /etc/shedskin/FLAGS, /usr/share/shedskin/lib (triggered by Paul Boddie)
- support enumerate 'start' argument
- itertools.product optimization (triggered by lesshaste)
- str.join and str non-equality optimization (triggered by lesshaste)
- new example: hq2x image scaling
- fix for itertools.izip (Jérémie Roquet)
- several fixes for MSVC (Liu Zhenhai)
- fix os.listdir crash (Pierre-Marie de Rodat)
- annotation fix (William Edwards)
- fix for 'not a < b < c' (François Boutines)
- os.popen2 improvement (triggered by Danny Milosavljevic)
- improved extmod warnings (triggered by Paul Boddie)
- sys.exit improvements (reported by rodseth)
- added missing class qualifier/include statement
- fix for ConfigParser model (reported by Danny Milosavljevic)
New in Shed Skin 0.7.1 (Feb 10, 2012)
- new quantum monte carlo simulation example (mark dewing, 1,200 sloc)
- new 'rsync' example
- updated 'c64 emulator' example, better and faster
- Makefile cleanups (fahrzin hemmati)
- experimental PyPy extmod generation (victor garcia)
- optimized 'pow' (thomas spura)
- several important extmod fixes (found by running all the tests using -e)
- add extmod leakage test script, and fix some refcounting issues
- explicitly warn about tuples of length > 2 and different types of elements
- optimized zip, min, max, map, filter, reduce
- fixes for some list method corner cases
- cleanups for the internal abstract sequence class
- removed remains of deprecated FOR_IN macro
- several minor fixes
New in Shed Skin 0.5 (Jul 8, 2010)
- 64-bit integer support (shedskin -l)
- many iteration optimizations (new FOR_IN, builtins using it)
- new dict implementation, based on cpython (FFAO)
- basic support for MSVC (shedskin -v; andy miller, jason ye)
- improvements to the socket module (michael elkins)
- support for generator methods (douglas mcneil)
- support "from future import print_function" (douglas mcneil)
- new "adatron" example (stavros korokithakis)
- optimized printing (thomas spura)
- time.strptime implementation for windows (andy miller)
- support for @x.setter syntax
- optimize str(int) and int(str) conversion
- major optimization in random module
- improvements for class-level attributes
- many minor optimizations, cleanups and bugfixes
New in Shed Skin 0.3 (Jan 15, 2010)
- support for 3 new standard library modules (now about 20 in total):
- itertools (jeremie roquet)
- heapq (jeremie roquet)
- csv (converted using shedskin)
- 4 new example programs (now 44 in total!):
- maximum weighted matching algorithm (joris van rantwijk)
- kanoodle: knuth's dancing links (david austin)
- bidirectional dijkstra algorithm (from networkx, uses heapq)
- barnes-hut force calculation
- improved type inference (scalability, bugfixes, major cleanup)
- support for 'map', 'filter', 'reduce' and 'next'
- support for 'with' statement (jeremie roquet)
- support for 'key' argument of 'sorted' (and 'list.sort')
- reorganized codebase, distutils setup.py (thomas spura)
- optimized list indexing (joris van rantwijk)
- optimized addition of 1-length lists and strings
- improved forward referencing of variables/functions
- avoid GCC warnings after 'shedskin -e'
- support for passing keyword arguments to extension modules
- optimized list slicing
- ignore blocks surrounded by #{ and #} (mike schrick)
- add --makefile option (mike schrick)
- several cleanups, removing about 100 lines again
- large amount of bugfixes
New in Shed Skin 0.2 (Sep 21, 2009)
- 7 new example programs (some removed, now 40 in total):
- disco: a simple monte carlo + UCT go player (368 lines, mark dufour)
- a more advanced voronoi algorithm (795 lines; steve fortune, bill simons)
- a nicer neural network implementation (raymond hettinger, jeff hinrichs)
- TSP approximation using ant colonies (eric rollins)
- Lempel-Ziv compressor (david mackay)
- huffman block compressor (david mackay)
- arithmetic coding compressor (david mackay)
- many inlining optimizations
- huge speedups for 'for .., .. in enumerate/zip(sequence, sequence)'
- important TI fix (involving default arguments)
- fixes for 'import as'
- follow module initialization order
- optimized 'len(list)' (remove virtual call)
- optimized list slicing (when step is 1)
- drop compatibility with 2.3, follow 2.6 implementation
- fysphun example now uses an extension module
- variable with name underscore no special case anymore (could be dynamic)
- cleaned up compiler core further, removing about 100 lines again
- many minor bugfixes