Editing ShedSkin
Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 3: | Line 3: | ||
For more information, check out http://code.google.com/p/shedskin/ | 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 | + | 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 | + | 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 start == | == How to start == | ||
- | You might have built your | + | You might have built your python package with one of the nice tools like PyPacker. But as you now have to edit the debian files, you will have to install scratchbox. |
- | Install scratchbox as described in | + | 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 | + | 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 . | There is also a good tutorial of how to use it: http://shedskin.googlecode.com/files/shedskin-tutorial-0.6.html . | ||
== Building the package == | == Building the package == | ||
- | + | If you already have the .tar.gz file, then you already have the structure with the files. Just unpack the .tar.gz file into a folder. | |
- | If you already have the .tar.gz file, then you already have the structure with the files. Just unpack the .tar.gz file into a folder. If you have to pack it for the first time, MohammadAG has a good page about how to generate the needed files: | + | If you have to pack it for the first time, MohammadAG has a good page about how to generate the needed files under: http://wiki.maemo.org/User:Mohammad7410/Packaging |
- | Now in the debian | + | Now in the file debian/rules, you have to change some lines: |
- | |||
- | |||
- | |||
- | + | == 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 | 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 | ||
+ | libgc.so.1 => not found | ||
+ | libpcre.so.3 => /usr/lib/libpcre.so.3 (0x40053000) | ||
+ | libpthread.so.0 => /lib/libpthread.so.0 (0x40079000) | ||
+ | libdl.so.2 => /lib/libdl.so.2 (0x4009a000) | ||
+ | libutil.so.1 => /lib/libutil.so.1 (0x400a5000) | ||
+ | libpython2.5.so.1.0 => /usr/lib/libpython2.5.so.1.0 (0x400b0000) | ||
+ | libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x401d4000) | ||
+ | libm.so.6 => /lib/libm.so.6 (0x402b7000) | ||
+ | libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x4032d000) | ||
+ | libc.so.6 => /lib/libc.so.6 (0x40340000) | ||
+ | /lib/ld-linux.so.3 (0x2a000000) | ||
- | + | There you also will see if a dependency is missing and you have to add it to your package. In the above example you can see that libgc is missing, so you should add it as a dependency to your application. | |
- | + |
Learn more about Contributing to the wiki.