diff --git a/archive.html b/archive.html index 7afca5961e8e6072c5826773c1c6fe23e2382128_YXJjaGl2ZS5odG1s..c1672fdc888e2f917a83bba3afd463fb475a8ed1_YXJjaGl2ZS5odG1s 100644 --- a/archive.html +++ b/archive.html @@ -40,7 +40,7 @@ </ul></div> --> <hr class="clear-left" /> - <div id="menu-sub"><a href="index.html">Home</a><span class="menu-sub-sep"> | </span><a href="download.html">Download</a><span class="menu-sub-sep"> | </span><a href="compat.html">Compatibility</a><span class="menu-sub-sep"> | </span><a href="http://speed.pypy.org">Performance</a><span class="menu-sub-sep"> | </span><a href="http://codespeak.net/pypy/trunk/pypy/doc/index.html">Dev Site</a><span class="menu-sub-sep"> | </span><a href="http://morepypy.blogspot.com">Blog</a></div> + <div id="menu-sub"><a href="index.html">Home</a><span class="menu-sub-sep"> | </span><a href="features.html">Features</a><span class="menu-sub-sep"> | </span><a href="download.html">Download</a><span class="menu-sub-sep"> | </span><a href="compat.html">Compatibility</a><span class="menu-sub-sep"> | </span><a href="http://speed.pypy.org">Performance</a><span class="menu-sub-sep"> | </span><a href="http://codespeak.net/pypy/trunk/pypy/doc/index.html">Dev Site</a><span class="menu-sub-sep"> | </span><a href="http://morepypy.blogspot.com">Blog</a></div> <hr class="clear" /> </div> <div id="content"> diff --git a/features.html b/features.html new file mode 100644 index 0000000000000000000000000000000000000000..c1672fdc888e2f917a83bba3afd463fb475a8ed1_ZmVhdHVyZXMuaHRtbA== --- /dev/null +++ b/features.html @@ -0,0 +1,132 @@ +<!DOCTYPE html> +<html> +<head> + <title>PyPy :: Features</title> + <meta http-equiv="content-language" content="en" /> + <meta http-equiv="content-type" content="text/html; charset=utf-8" /> + <meta name="author" content="PyPy Team" /> + <meta name="description" content="PyPy" /> + <meta name="copyright" content="MIT" /> + <meta name="document-rating" content="general" /> + <link rel="stylesheet" type="text/css" media="screen" title="default" href="css/site.css" /> + <link rel="alternate" type="application/rss+xml" title="RSS Feed for PyPy" href="http://feeds.feedburner.com/PyPyStatusBlog" /> + <script type="text/javascript" src="http://use.typekit.com/hdt8sni.js"></script> + <script type="text/javascript">try{Typekit.load();}catch(e){}</script> + <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> + <script type="text/javascript" src="js/detect.js"></script> +</head> +<body> +<script type="text/javascript"> + var _gaq = [['_setAccount', 'UA-7778406-3'], ['_trackPageview']]; + if (document.location.protocol !== 'file:') { + (function() { + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga); + })(); + } +</script> +<div id="body-outer"><div id="body-inner"><div id="body" class="clearfix"> +<div id="header"> + <div id="menu-follow"> + <div><a href="http://search.twitter.com/search?q=%23pypy" title="Follow the conversation on Twitter"><img src="http://static.ampify.it/icon.twitter.gif" alt="Follow the conversation on Twitter" width="14px" height="14px" /></a></div> + <div><a href="http://codespeak.net/svn/pypy/trunk/"><img src="http://svn.apache.org/repos/asf/subversion/trunk/notes/logo/256-colour/subversion_logo_notxt-32.png" width="14px" height="14px" /></a></div> + <div><a href="http://feeds.feedburner.com/PyPyStatusBlog" title="Subscribe to the RSS Feed"><img src="http://static.ampify.it/icon.rss.png" alt="Subscribe to the RSS Feed" width="14px" height="14px" /></a></div> + </div> + <div id="logo"><a href="http://pypy.org"><img src="image/pypy-logo.png" alt="PyPy" width="149px" height="110px" /></a></div> + <!-- + <div id="menu"><ul> + <li><a href="http://dev.ampify.it" py:attrs="menu_class['code']">Code</a></li> + </ul></div> + --> + <hr class="clear-left" /> + <div id="menu-sub"><a href="index.html">Home</a><span class="menu-sub-sep"> | </span><a href="features.html">Features</a><span class="menu-sub-sep"> | </span><a href="download.html">Download</a><span class="menu-sub-sep"> | </span><a href="compat.html">Compatibility</a><span class="menu-sub-sep"> | </span><a href="http://speed.pypy.org">Performance</a><span class="menu-sub-sep"> | </span><a href="http://codespeak.net/pypy/trunk/pypy/doc/index.html">Dev Site</a><span class="menu-sub-sep"> | </span><a href="http://morepypy.blogspot.com">Blog</a></div> + <hr class="clear" /> +</div> +<div id="content"> +<div> +<div id="main"> +<h1 class="title">Features</h1> +<p><strong>PyPy 1.2</strong> implements <strong>Python 2.5.</strong> It supports all of the core +language, passing Python test suite (with minor modifications that were +already accepted in main python in newer versions). It supports most +of commonly used Python standard library modules. For known differences +with CPython, see our <a class="reference external" href="compat.html">compatibility</a> page. If you are interested in +helping with 2.6, 2.7 or 3.x features, <a class="reference external" href="http://codespeak.net/mailman/listinfo/pypy-dev">contact us</a>!</p> +<p>PyPy 1.2 runs essentially only on Intel <a class="reference external" href="http://en.wikipedia.org/wiki/IA-32">x86 (IA-32)</a>. On 64-bit platforms +you have to use the 32-bit compatibility mode, for now — or <a class="reference external" href="http://codespeak.net/mailman/listinfo/pypy-dev">contact us</a> +to help!</p> +<div class="section" id="speed-or-memory-usage"> +<h1>Speed or memory usage?</h1> +<p>Our <a class="reference external" href="download.html#with-a-jit-compiler">main prototype</a> comes with a Just-in-Time compiler. It is +<a class="reference external" href="http://speed.pypy.org/">really fast</a> in running most benchmarks. <a class="reference external" href="download.html#with-a-jit-compiler">Try it out!</a></p> +<p>An issue with our JIT compiler is that it's hard to control +the exact amount of RAM that is used. If this is an important +issue to you, you can try our <a class="reference external" href="download.html#with-no-jit-compiler">baseline version</a>, which does +not include a JIT compiler at all.</p> +</div> +<div class="section" id="sandboxing"> +<h1>Sandboxing</h1> +<p>PyPy's <em>sandboxing</em> is a working prototype for the idea of running untrusted +user programs. Unlike other sandboxing approaches for Python, PyPy's does not +try to limit language features considered “unsafe”. Instead we replace all +calls to external libraries (C or platform) with a stub that communicates +with an external process handling the policy.</p> +<p>To run the sandboxed process, get a <a class="reference external" href="download.html#sandboxed-version">sandboxed pypy-c</a> and run:</p> +<pre class="literal-block"> +pypy_interact.py pypy-c-sandbox +</pre> +<p>To read more about its features, go to <a class="reference external" href="http://codespeak.net/pypy/dist/pypy/doc/sandbox.html">our dev site</a>.</p> +</div> +<div class="section" id="stackless"> +<h1>Stackless</h1> +<p>PyPy is also available in a separate <a class="reference external" href="download.html#stackless-version">Stackless version</a> that includes +support for micro-threads for massive concurrency. Read more about +it at the <a class="reference external" href="http://www.stackless.com/">Stackless</a> main site (we provide the same interface as the +standard Stackless Python), and at the <a class="reference external" href="http://codespeak.net/svn/greenlet/trunk/doc/greenlet.txt">greenlets</a> page.</p> +</div> +<div class="section" id="other-features"> +<h1>Other features</h1> +<p>PyPy has many secondary features and semi-independent +projects. We will mention here:</p> +<ul class="simple"> +<li><strong>the .NET backend:</strong> you get a version of <tt class="docutils literal"><span class="pre">pypy-c</span></tt> that runs +natively in the .NET/CLI VM. Of particular interest is <a class="reference external" href="http://codespeak.net/svn/pypy/branch/cli-jit/">the cli-jit +branch</a>, in which you can make a version of <tt class="docutils literal"><span class="pre">pypy-c</span></tt> which also +contains a high-level JIT compiler (it compiles your Python programs +Just in Time into CLR bytecodes, which are in turn compiled natively +by the VM).</li> +<li><strong>the Java backend:</strong> PyPy can run on the Java VM, but more care is +needed to finish this project. (Requires <a class="reference external" href="http://codespeak.net/svn/pypy/branch/cli-jit/">the cli-jit branch</a> for +now.) Writing a backend for our high-level JIT compiler would be +excellent. <a class="reference external" href="http://codespeak.net/mailman/listinfo/pypy-dev">Contact us!</a></li> +<li><strong>Other languages:</strong> available in a <a class="reference external" href="http://codespeak.net/svn/pypy/lang/">separate part of the repository</a>, +we implemented other languages too: <a class="reference external" href="http://codespeak.net/svn/pypy/lang/prolog">Prolog</a> (almost complete), as +well as Smalltalk, JavaScript, Io, Scheme and Gameboy.</li> +</ul> +</div> +</div> +<div id="sidebar"> +<ul> + <li> + <div class="sidepic"> + <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> +<input type="hidden" name="cmd" value="_s-xclick" /> +<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7----- " /> +<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!" /> +<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1" /> +</form> + </div> + </li> + <li> + <div class="sidepic"> + <a id="main_download" href="download.html">Download PyPy</a> + </div> + </li> +</ul> +</div> +</div> +</div> +</div></div></div> +</body> +</html> \ No newline at end of file diff --git a/index.html b/index.html index 7afca5961e8e6072c5826773c1c6fe23e2382128_aW5kZXguaHRtbA==..c1672fdc888e2f917a83bba3afd463fb475a8ed1_aW5kZXguaHRtbA== 100644 --- a/index.html +++ b/index.html @@ -40,7 +40,7 @@ </ul></div> --> <hr class="clear-left" /> - <div id="menu-sub"><a href="index.html">Home</a><span class="menu-sub-sep"> | </span><a href="download.html">Download</a><span class="menu-sub-sep"> | </span><a href="compat.html">Compatibility</a><span class="menu-sub-sep"> | </span><a href="http://speed.pypy.org">Performance</a><span class="menu-sub-sep"> | </span><a href="http://codespeak.net/pypy/trunk/pypy/doc/index.html">Dev Site</a><span class="menu-sub-sep"> | </span><a href="http://morepypy.blogspot.com">Blog</a></div> + <div id="menu-sub"><a href="index.html">Home</a><span class="menu-sub-sep"> | </span><a href="features.html">Features</a><span class="menu-sub-sep"> | </span><a href="download.html">Download</a><span class="menu-sub-sep"> | </span><a href="compat.html">Compatibility</a><span class="menu-sub-sep"> | </span><a href="http://speed.pypy.org">Performance</a><span class="menu-sub-sep"> | </span><a href="http://codespeak.net/pypy/trunk/pypy/doc/index.html">Dev Site</a><span class="menu-sub-sep"> | </span><a href="http://morepypy.blogspot.com">Blog</a></div> <hr class="clear" /> </div> <div id="content"> @@ -55,7 +55,7 @@ often run <a class="reference external" href="http://speed.pypy.org/">faster</a> on PyPy. <a class="reference external" href="http://en.wikipedia.org/wiki/Just-in-time_compilation">(What is a JIT compiler?)</a></li> <li><strong>Memory usage:</strong> large, memory-hungry Python programs might end up taking <a class="reference external" href="http://morepypy.blogspot.com/2009/10/gc-improvements.html">less space</a> than they do in CPython.</li> -<li><strong>Sandboxing:</strong> PyPy provides the ability to <a class="reference external" href="sandbox.html">run untrusted code</a> in a +<li><strong>Sandboxing:</strong> PyPy provides the ability to <a class="reference external" href="features.html#sandboxing">run untrusted code</a> in a fully secure way.</li> <li><strong>Stackless:</strong> PyPy can be configured to run in <a class="reference external" href="http://www.stackless.com/">stackless</a> mode, providing micro-threads for massive concurrency.</li> @@ -59,7 +59,7 @@ fully secure way.</li> <li><strong>Stackless:</strong> PyPy can be configured to run in <a class="reference external" href="http://www.stackless.com/">stackless</a> mode, providing micro-threads for massive concurrency.</li> -<li>As well as <a class="reference external" href="more.html">other features</a>.</li> +<li>As well as other <a class="reference external" href="features.html">features</a>.</li> </ul> </blockquote> <p class="download"><a class="reference external" href="download.html">Download and try out the PyPy release 1.2!</a></p>