Path: csiph.com!usenet.pasdenom.info!news.albasani.net!newsfeed.freenet.ag!news2.euro.net!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'subject:Python': 0.05; 'compiler': 0.05; 'cpython': 0.05; 'source.': 0.05; '*not*': 0.07; 'used.': 0.07; 'works.': 0.07; 'python': 0.09; 'oh,': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'runtime': 0.09; 'sure,': 0.09; 'aug': 0.13; 'static': 0.13; 'sat,': 0.15; 'builtins.': 0.16; 'from:addr:behnel.de': 0.16; 'from:addr:stefan_ml': 0.16; 'from:name:stefan behnel': 0.16; 'message-id:@dough.gmane.org': 0.16; 'non-cpython': 0.16; 'received:80.91.229.3': 0.16; 'received:plane.gmane.org': 0.16; 'too?': 0.16; 'wrote:': 0.17; 'certainly': 0.17; 'stefan': 0.17; 'widely': 0.17; '>>>': 0.18; 'embedding': 0.22; 'subject:skip:i 10': 0.22; 'allows': 0.25; 'header:In-Reply-To:1': 0.25; 'header :User-Agent:1': 0.26; 'header:X-Complaints-To:1': 0.28; 'app.': 0.29; 'steven': 0.29; 'surprised': 0.29; 'manual': 0.29; 'maybe': 0.29; 'code': 0.31; '(and': 0.32; 'received:84': 0.32; 'running': 0.32; '+0200,': 0.33; 'substantial': 0.33; 'to:addr:python-list': 0.33; 'loss': 0.34; 'list': 0.35; 'received:org': 0.36; 'uses': 0.37; 'well.': 0.37; 'subject:: ': 0.38; 'files': 0.38; 'some': 0.38; 'performance': 0.39; 'to:addr:python.org': 0.39; 'skip:" 10': 0.40; 'subject:-': 0.40; 'header:Received:5': 0.40; 'your': 0.60; 'easy': 0.60; 'most': 0.61; 'unnecessary': 0.65; 'compiles': 0.84; 'duplication': 0.84; 'received:arcor-ip.net': 0.84; 'received:pools.arcor-ip.net': 0.84; 'suffer': 0.91; 'from.': 0.93; 'wait,': 0.93 X-Injected-Via-Gmane: http://gmane.org/ To: python-list@python.org From: Stefan Behnel Subject: Re: On-topic: alternate Python implementations Date: Sun, 05 Aug 2012 07:46:59 +0200 References: <501cbdf8$0$29978$c3e8da3$5496439d@news.astraweb.com> <20120804232510.GA23550@jaerhard.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Gmane-NNTP-Posting-Host: dslb-084-056-051-236.pools.arcor-ip.net User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20120714 Thunderbird/14.0 In-Reply-To: <20120804232510.GA23550@jaerhard.com> X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 39 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1344145630 news.xs4all.nl 6966 [2001:888:2000:d::a6]:35636 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:26526 Jürgen A. Erhard, 05.08.2012 01:25: > On Sat, Aug 04, 2012 at 08:40:16AM +0200, Stefan Behnel wrote: >> Steven D'Aprano, 04.08.2012 08:15: >>> Most people are aware, if only vaguely, of the big Four Python >>> implementations: >> >> And not to forget Cython, which is the only static Python compiler that is >> widely used. Compiles and optimises Python to C code that uses the CPython >> runtime and allows for easy manual optimisations to get C-like performance >> out of it. > > Cython is certainly *not* a Python *implementation*, since it always > uses the CPython runtime (and compiling Cython C files requires > Python.h). Yes, it avoids an unnecessary duplication of effort as well as a substantial loss of compatibility that all non-CPython based implementations suffer from. You'd be surprised to see how much of Python we implement, though, including some of the builtins. You might want to revise your opinion once you start digging into it. It's always easy to disagree at the surface. > None of the other implementations require Python for actually > compiling or running Python source. Nuitka was on the list as well. > Oh, yes, you can create a stand-alone... wait, a "stand-alone" app. > By embedding the Python runtime (dynamic linking with libpythonX.Y... > maybe static too? Sure, that works. Stefan