shedskin이라는 Python->C++ 컴파일러가 등장했습니다. 9개월간 혼자 열심히 만들었다고 하는데, 인내력이 굉장하군요;; -O- 일부는 구글의 Summer of Code 지원으로 만들었다고 합니다.
shedskin은 PyPy와 Pyrex와 겹치는 부분이 많이 있는데, 독립적인
C++ 코드로 변환할 수 있는데, Pyrex나 PyPy처럼 파이썬 VM이
실행하듯 그냥 그대로 변환하는 것이 아니라, 정말 C레벨 코드로
바꿔버립니다. 즉, print 1+2를 하면 1+2를 계산해서 sys.stdout에다가 PyObject_Print를 호출해서 쓰는 것이 아니라, 그냥 printf(“%d\n”, 1+2);로 바꿔버립니다. 게다가 파이썬 라이브러리도 물고 들어가지 않기 때문에, 그냥 독립적인 프로그램이 돼 버립니다.
결과적으로 파이썬 라이브러리도 필요없고 속도도 빠르다는 면은 있지만, 파이썬 소스와 100% 호환이 안 된다는 것이 치명적이라고 하겠습니다. sys.stdout이 치환된 경우도 있을 수도 있고, 덧셈 연산이 오버플로우 처리나, 음수의 라운딩에 있어서 C와 파이썬이 서로 다르기 때문에.. 그리고, getattr, hasattr, obj.__dict__ 등의 동적 프로그래밍이 지원되는 부분이 전혀 지원되지 않는 단점이 있습니다.
아쉽게도 PyPy나 Pyrex와는 달리 파이썬 고유의 특징을 모두 무시하고 컴파일러를 만든 덕에 속도는 빠르게 됐지만 사실상 기존의 파이썬 코드들 대부분과 호환되지 않는 다는 점에서 쓸 데가 얼마나 있을지 잘 모르겠네요. 으음.. 하여간 나오긴 했으니 PyPy같은 곳에 포팅해서 쓸만한 코드가 좀 있었으면 좋겠습니다. 🙂