Showing posts with label Python. Show all posts
Showing posts with label Python. Show all posts

Tuesday, May 5, 2009

How to compile jython-dev under Gentoo?

Jython is an implementation of Python written in 100% Pure Java. It uses "ant" to manage the project.
Why compile jython instead of getting a pre-compile version? Oooo. I suggest that you are interested in jython and want to contribute your code to open source project. Another reason, you may install the newest jython, however, a simple solution can address this purpose.
In windows, you can easily compile the whole project with "ant" and "sun-java". But in Gentoo, something just changes the situation. Followed the Developer Guide of Jython, I install "ant" with its default USE flag:
#emerge -av ant
So this will install "bsf" and "ant-apache-bsf". All of the two packages must enable USE="python" which depends the package "jython". However, the problem comes. If you compile the source code which you check out of subversion may collide with "jython" which is installed by portage. It will complain that the namespace is collision with the library that "jython" provides.
A straightforward solution is changing the classpath, but it did work for "ant". So I try to find how the "ant" works. Good luck for me, I get it.
$export ANT_TASKS="none"
$ant
The world is beautiful again.

Sunday, April 19, 2009

What's new in Py3k?

Recently, I have learned the programming language--Python. The knowledge based on Core PYTHON programming, but only the version of python before 2.5 is mentioned in this book. The official site encourage people who start projects using Py3K, so it is important to learn the Py3K by myself.
Py3K is backwards incompatible Python release. I list some tips (You can find more information on http://docs.python.org/3.0/whatsnew/3.0.html):
  • Print is Function
  It is a very famous change. The print statement is replaced with function print().
  • All text is Unicode
  That means you can no longer use the prefix 'u' in string such as u"...".
  • Integers
  1. long type is renamed to int. So there is only one built-in type of integers.
  2. int is a real 'natural' number, because Py3K removes the limit of int type.
  3. The form of octal literals changes.
There are some syntax changes base on PEP(http://www.python.org/dev/peps/).
PEP 0328, 3102, 3104, 3107, 3109, 3132, 3134, 3110, 3113, 3115.
Some changes are already taking effects in Python 2.6. And other changes can be found in official website http://docs.python.org/3.0/whatsnew/3.0.html.
The performance of Py3K is 10% slower than Python 2.5. But I think there is room for improvement.
Generally speaking, Py3K changes a lot.