ShedSkin

Line 18: Line 18:
   sb-conf se FREMANTLE_ARMEL
   sb-conf se FREMANTLE_ARMEL
   dpkg-buildpackage -sa -rfakeroot -k<my email address>
   dpkg-buildpackage -sa -rfakeroot -k<my email address>
 +
 +
 +
== Missing depencies ==
 +
The generated module is dependant on some other modules.
 +
When you have the module on your phone or in scratchbox, you can see the dependencies with ldd:
 +
  ldd
 +
 
 +
There you also will see if a dependency is missing and you have to add it to your package.

Revision as of 19:50, 22 November 2010

Shed Skin is an experimental compiler, that can translate pure, but implicitly statically typed Python programs into optimized C++. It can generate stand-alone programs or extension modules that can be imported and used in larger Python programs.

For more information, check out http://code.google.com/p/shedskin/

On a simple test I could see a speed improvement of up to 18 times. The great thing is, you can more or less write normal python and then let ShedSkin convert it to C code, so it can get compiled by gcc. To see an application which uses Shedskin, have a look in SleepAnalyser. It has one file "mylib.py" which gets normal imported into the python application. How ever if there is a file mylib.so in the same folder, python will use that one.

How to use it in scratchbox

Install scratchbox as described in http://wiki.maemo.org/Documentation/Maemo_5_Final_SDK_Installation . Then install Shedskin with "apt-get install shedskin" from the Extras-Devel repository.

There is also a good tutorial of how to use it: http://shedskin.googlecode.com/files/shedskin-tutorial-0.6.html .

How to use it with the autobuilder

First of all, try to test it on your device with the deb-package generated in scratchbox. Do not forget to change the architecture to ARMEL, else it will not run:

 sb-conf se FREMANTLE_ARMEL
 dpkg-buildpackage -sa -rfakeroot -k<my email address>


Missing depencies

The generated module is dependant on some other modules. When you have the module on your phone or in scratchbox, you can see the dependencies with ldd:

 ldd
 

There you also will see if a dependency is missing and you have to add it to your package.