Tuesday, March 27, 2007

Shed Skin 0.0.20 and 0.0.21

development has been continuing at a steady pace, resulting in two new releases. I haven't gotten around to cleaning up and improving tuple support, as of course I got bogged down into other details. the first release essentially combines many minor fixes:

Release Name: 0.0.20
-improvements to aug-assignments with subscripting ('a[x, y] += 1' and such)
-fixed some problems with slice-assignments ('a[1:-1] = [1,2])
-make integer division (/,//,divmod,floordiv) equal to CPython for negative/positive combinations of arguments
-make printing of floats closer to CPython
-move generic functions/methods to header file
-many small fixes (allow 'self' as function argument, list.extend takes iterable, __delitem__ overloading, raw_input(), 'return' from generator..)
-improved error checking for dynamic types
-optimize expr**2 and expr**3 using __power2 and __power3 functions

the next release is more interesting. first, a problem exhibited in a little program bearophile sent me (I wish there were two bearophiles :-)) gave me the insight that two things I was doing during type inference were more or less the same; this allowed me to generalize things and cut away about 100 lines. second, I added support for 'bisect', 'collections.deque' and improved 'copy' support. finally, there were some important dict optimizations (dict[..] += .. and dict.__getitem__ now only index once):

Release Name: 0.0.21
-important type inference fix/cleanup
-support for 'bisect', 'collections.deque' and 'string.maketrans'
-improved 'copy' support
-support for 'try, else' construction
-some optimizations ('dict[..] += ..', "''.join(sorted(str))")
-several minor bug fixes

4 comments:

Alexandru Toth said...

Hi,

Shed Skin can convert "pure, but implicitly statically typed Python programs into optimized C++"

But.. that's the power !!!

Have you considerred a Python-to-Scheme converter, or Lisp ? Lisp & friends have compilers, are _THE_ functional languages (iterators, generators, lambda functions) .

There would be 2 reasons to use the converter:
-compile Python
-Python is easier to read (at least for me..)

Cheers, Alex

Nan Li said...

I am using Python and C++ for developing voice platform in Linux.

Could you please give me some resource?

Welcome to my blog to have a talk :-)
KenanLee's BLOG

All about C C++ Python XML

Sandeep said...

Hi there.. i recently stumbled upon your code and was taking a look at it.

Have you ever taken a look at Mercurial version control. I think you will like it as well (cos I saw ur initial posts on struggling with setting up CVS).

You can host it on sourceforge as well (http://www.selenic.com/mercurial/wiki/index.cgi/MercurialOnSourceforge).

And I daresay, it will help others pick up from where you left off.

See if u need any help in converting the repo (I have my local copy already!)

Sandeep said...

Oh forgot to mention that mercurial is written in Python!