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

5 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

Kenan Lee 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

sandys 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!)

sandys said...

Oh forgot to mention that mercurial is written in Python!

wow gold said...

Other wow gold changes are wow goldalmost as easy. buy wow goldA designer buy wow goldfeels like cheap wow gold nobody will cheap wow gold really object to wow power levelinga change and wow power levelingthat it's pretty power levelinglow risk. At power leveling e as a santiy check.