Shed Skin Changelog

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