[pypy-svn] r71979 - in pypy/extradoc/pypy.org: . css image js
fijal at codespeak.net
fijal at codespeak.net
Tue Mar 9 18:25:54 CET 2010
Author: fijal
Date: Tue Mar 9 18:25:52 2010
New Revision: 71979
Added:
pypy/extradoc/pypy.org/archive.html
pypy/extradoc/pypy.org/compat.html
pypy/extradoc/pypy.org/css/
pypy/extradoc/pypy.org/css/site.css
pypy/extradoc/pypy.org/download.html
pypy/extradoc/pypy.org/image/
pypy/extradoc/pypy.org/image/header-background.png (contents, props changed)
pypy/extradoc/pypy.org/image/pypy-logo.png (contents, props changed)
pypy/extradoc/pypy.org/js/
pypy/extradoc/pypy.org/js/detect.js
pypy/extradoc/pypy.org/more.html
pypy/extradoc/pypy.org/sandbox.html
Modified:
pypy/extradoc/pypy.org/ (props changed)
pypy/extradoc/pypy.org/index.html
Log:
Try to import new stuff for pypy.org, let's see...
Added: pypy/extradoc/pypy.org/archive.html
==============================================================================
--- (empty file)
+++ pypy/extradoc/pypy.org/archive.html Tue Mar 9 18:25:52 2010
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>PyPy</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-90176-26'], ['_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="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 class="section-info" id="all-articles"><strong>Blog Posts Archive</strong></div>
+<ul>
+</ul>
+<br />
+<div class="section-info" id="all-articles"><strong>Other Articles</strong></div>
+<ul>
+</ul>
+</div>
+</div>
+</div></div></div>
+</body>
+</html>
\ No newline at end of file
Added: pypy/extradoc/pypy.org/compat.html
==============================================================================
--- (empty file)
+++ pypy/extradoc/pypy.org/compat.html Tue Mar 9 18:25:52 2010
@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>PyPy :: Python compatibility</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-90176-26'], ['_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="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">Python compatibility</h1>
+<p>PyPy implements Python language version 2.5. 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 <a class="reference external" href="http://docs.python.org/library/">standard library modules</a>, list below.</p>
+<p>PyPy does not support <a class="reference external" href="http://docs.python.org/c-api/">CPython C API</a>, which means that third party
+libraries for python, written in C, will not work.</p>
+<p>Standard library modules supported by PyPy, in alphabetical order:</p>
+<ul class="simple">
+<li><tt class="docutils literal"><span class="pre">__builtin__</span> <span class="pre">__pypy__</span> <span class="pre">_codecs</span> <span class="pre">_lsprof</span> <span class="pre">_minimal_curses</span> <span class="pre">_random</span> <span class="pre">_rawffi</span> <span class="pre">_socket</span> <span class="pre">_sre</span> <span class="pre">_weakref</span> <span class="pre">bz2</span> <span class="pre">cStringIO</span> <span class="pre">crypt</span> <span class="pre">errno</span> <span class="pre">exceptions</span> <span class="pre">fcntl</span> <span class="pre">gc</span> <span class="pre">itertools</span> <span class="pre">marshal</span> <span class="pre">math</span> <span class="pre">md5</span> <span class="pre">mmap</span> <span class="pre">operator</span> <span class="pre">parser</span> <span class="pre">posix</span> <span class="pre">pyexpat</span> <span class="pre">select</span> <span class="pre">sha</span> <span class="pre">signal</span> <span class="pre">struct</span> <span class="pre">symbol</span> <span class="pre">sys</span> <span class="pre">termios</span> <span class="pre">thread</span> <span class="pre">time</span> <span class="pre">token</span> <span class="pre">unicodedata</span> <span class="pre">zipimport</span> <span class="pre">zlib</span></tt></li>
+</ul>
+<p>Supported, but written in pure-python:</p>
+<ul class="simple">
+<li><tt class="docutils literal"><span class="pre">array</span> <span class="pre">binascii</span> <span class="pre">cPickle</span> <span class="pre">cmath</span> <span class="pre">collections</span> <span class="pre">ctypes</span> <span class="pre">datetime</span> <span class="pre">functools</span> <span class="pre">grp</span> <span class="pre">md5</span> <span class="pre">pwd</span> <span class="pre">pyexpat</span> <span class="pre">sha</span> <span class="pre">sqlite3</span> <span class="pre">syslog</span></tt></li>
+</ul>
+<p>All modules that are pure python in CPython of course work.</p>
+<p>Python libraries known to work under PyPy (the list is not exhaustive):</p>
+<ul class="simple">
+<li>ctypes</li>
+<li>django (without any DB but sqlite)</li>
+<li>twisted (without ssl support)</li>
+<li>pylons</li>
+<li>divmod's nevow</li>
+<li>pyglet</li>
+</ul>
+<p>Known differencies that are not going to be fixed:</p>
+<ul>
+<li><p class="first">PyPy does not support refcounting semantics. The code below
+won't fill the file immediately, but only after a certain period
+of time, when the GC will collect:</p>
+<pre class="literal-block">
+open("filename", "w").write("stuff")
+</pre>
+<p>The proper fix is:</p>
+<pre class="literal-block">
+f = open("filename", "w")
+f.write("stuff")
+f.close()
+</pre>
+</li>
+<li><p class="first">We don't support certain attributes that were decided to be
+implementation-dependent. For example <tt class="docutils literal"><span class="pre">gc.get_referrers</span></tt>. <tt class="docutils literal"><span class="pre">gc.enable</span></tt>
+and <tt class="docutils literal"><span class="pre">gc.disable</span></tt> are supported, but they don't enable and disable GC,
+but instead enable and disable running of finalizers.</p>
+</li>
+<li><p class="first">You can't attach a <tt class="docutils literal"><span class="pre">__del__</span></tt> method to a class after its creation.</p>
+</li>
+<li><p class="first">You can't store non-string keys in type objects. Example:</p>
+<pre class="literal-block">
+class A(object):
+ locals()[42] = 3
+</pre>
+<p>won't work.</p>
+</li>
+</ul>
+</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="#"></a>
+ </div>
+ </li>
+</ul>
+</div>
+</div>
+</div>
+</div></div></div>
+</body>
+</html>
\ No newline at end of file
Added: pypy/extradoc/pypy.org/css/site.css
==============================================================================
--- (empty file)
+++ pypy/extradoc/pypy.org/css/site.css Tue Mar 9 18:25:52 2010
@@ -0,0 +1,1352 @@
+/* No Copyright (-) 2010 The Ampify Authors. This file is under the */
+/* Public Domain license that can be found in the root LICENSE file. */
+
+/* Element styles */
+
+* {
+ margin: 0;
+ padding: 0;
+}
+
+html {
+ height: 100%;
+}
+
+body {
+ background-color: #efefef;
+ background-repeat: repeat;
+ font: 90%/1em 'Lucida Grande', 'Lucida Sans Unicode', Optima, Verdana, sans-serif;
+ height: 100%;
+ width: 100%;
+}
+
+a, a:visited, a:hover, a:active, a:hover {
+ color: blue;
+ text-decoration: underline;
+}
+
+a:hover {
+ text-decoration: none;
+}
+
+a.promote-fb, a.promote-fb:active, a.promote-fb:hover, a.promote-fb:visited {
+ background: url(http://static.ampify.it/gfx.share-facebook-sprite.png) no-repeat;
+ color: transparent;
+ display: block;
+ float: left;
+ height: 22px;
+ margin: 0 16px 0 0px;
+ outline; none;
+ overflow: hidden;
+ position: relative;
+ text-indent: 9999px !important;
+ top: -2px;
+ vertical-align: middle;
+ width: 146px;
+}
+
+a.promote-fb:hover {
+ background-position: 0 -22px;
+}
+
+a.promote-fb:active {
+ background-position: 0 -44px;
+}
+
+blockquote, p, dl, h1, h2, h3, h4, h5, h6, ol, ul {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+}
+
+code, .literal {
+ background-color: #f0f0f0;
+ border: 1px solid #dadada;
+ padding: 1px 3px;
+ font-family: Monaco, "DejaVu Sans Mono", "Bitstream Vera Sans Mono", monospace;
+}
+
+dl, ol, ul {
+ padding-left: 20px;
+}
+
+h1 {
+ font-size: 2.25em;
+}
+
+h1, h2 {
+ color: #c32528;
+ font-family: "museo-1", "museo-2", Verdana;
+ letter-spacing: 1px;
+ text-shadow: #eee 2px 2px 3px;
+}
+
+img {
+ border: 0;
+}
+
+label, input, select, textarea {
+ cursor: pointer;
+}
+
+pre {
+ background-color: #fff;
+ border: 1px solid #cacaca;
+ color: #101010;
+ font: 12px/1.4em Monaco, "DejaVu Sans Mono", "Bitstream Vera Sans Mono", monospace;
+ overflow: auto;
+ padding: 7px 0 8px 7px;
+ margin: 10px 30px 0 30px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ -webkit-box-shadow: 0px 0px 7px #cacaca;
+}
+
+pre.ascii-art {
+ line-height: 1em;
+ overflow: visible;
+}
+
+pre code {
+ background-color: transparent;
+ border: 0;
+ padding: 0;
+}
+
+select {
+ max-width: 200px;
+}
+
+
+strong {
+ font-family: Museo, Verdana;
+ font-size: 1.1em;
+}
+
+table, table.docutils {
+ border: 0;
+ border-collapse: collapse;
+ margin: 0 auto;
+ text-align: left;
+}
+
+table.docutils {
+ margin: 5px 40px 10px 30px;
+}
+
+/*
+table a {
+ text-decoration: none;
+}
+*/
+
+th {
+ border-bottom: 2px solid #808096;
+ padding: 8px;
+}
+
+table.docutils td {
+ border-bottom: 1px solid #ccc;
+ padding: 9px 8px 8px 8px;
+}
+
+ul {
+ list-style-type: circle;
+}
+
+/* ID styles */
+
+#body {
+ background-color: #fff;
+ border-radius: 15px;
+ -webkit-border-radius: 15px;
+ -moz-border-radius: 15px;
+ padding: 5px;
+}
+
+#body-inner {
+ margin: 0 auto;
+ padding: 10px 20px;
+ width: 950px;
+}
+
+#body-outer {
+ height: 100%;
+}
+
+body > #body-outer {
+ height: auto;
+ min-height: 100%;
+}
+
+#content {
+ line-height: 1.55em;
+}
+
+#footer-espians {
+ margin: 0 auto;
+ text-align: center;
+}
+
+#footer {
+ background-color: #161616;
+ background-image: url(http://static.ampify.it/gfx.footer-background.png);
+ background-position: top left;
+ background-repeat: repeat-x;
+ clear: both;
+ color: #fff;
+ height: 50px;
+ margin-top: -200px;
+ position: relative;
+ text-align: center;
+ width: 100%;
+}
+
+#footer-content {
+ margin: 0 auto;
+ padding-top: 15px;
+ text-align: center;
+}
+
+#header {
+ width: 100%;
+ border-bottom: 1px dashed #9e9e9e;
+ margin-bottom: 10px;
+}
+
+#logo {
+ float: left;
+}
+
+#main {
+ float: left;
+ padding: 10px 30px 0 10px;
+ width: 630px;
+ line-height: 2em;
+ font-size: 0.9em;
+}
+
+#main blockquote {
+ padding-left: 20px;
+}
+
+#main h1 {
+ font-size: 1.5em;
+ padding-top: 20px;
+ padding-bottom: 0;
+}
+
+#main h1.title {
+ font-size: 1.8em;
+ padding-top: 0;
+ padding-bottom: 10px;
+}
+
+#main p {
+ padding-top: 10px;
+}
+
+#main pre {
+ font-size: 14px;
+ font-family: "inconsolata-1", "inconsolata-2", Monaco, "DejaVu Sans Mono", "Bitstream Vera Sans Mono", monospace;
+}
+
+#main ul, #main ol {
+ padding-left: 35px;
+}
+
+#main li {
+ padding-top: 5px;
+}
+
+#sidebar {
+ float: left;
+ width: 270px;
+ font-size: 0.9em;
+ line-height: 1.6em;
+}
+
+#sidebar a, #sidebar a:hover, #sidebar a:active, #sidebar a:visited {
+ text-decoration: none;
+}
+
+#sidebar a:hover {
+ text-decoration: underline;
+}
+
+#sidebar h3 {
+ text-align: right;
+ border-bottom: 1px solid #cacaca;
+ margin-bottom: 10px;
+}
+
+#sidebar ul {
+ list-style-type: none;
+ padding: 0;
+ margin: 0;
+}
+
+#sidebar li {
+ padding-bottom: 12px;
+}
+
+#sidebar li div, .sidebar-text {
+ color: #6e6e6e;
+ font-size: 0.9em;
+}
+
+#table-of-contents {
+ float: right;
+ margin: 10px 0 10px 20px;
+ border: 1px solid #cacaca;
+}
+
+#table-of-contents .topic-title {
+ display: none;
+}
+
+#table-of-contents ul {
+ padding: 0 20px 5px 20px;
+}
+
+#main-support-page {
+ width: 540px;
+ margin: 0 auto;
+}
+
+#main-support-page pre {
+ width: 350px;
+}
+
+#menu ul {
+ list-style-type: none;
+ padding: 0;
+}
+
+#menu ul li {
+ background-color: #fff;
+ float: left;
+ margin-left: 12px;
+ text-align: center;
+}
+
+#menu a {
+ border-top: 2px solid #ccc;
+ color: #000;
+ display: block;
+ font-size: 18px;
+ padding-top: 6px;
+ padding-bottom: 8px;
+ text-decoration: none;
+}
+
+#menu a.selected, #menu a.selected:hover {
+ background-color: #f6f6f6;
+ border-top: 2px solid #a9151b;
+}
+
+#menu a:hover {
+ border-top: 2px solid #969696;
+}
+
+#menu-follow {
+ float: right;
+}
+
+#menu-follow div {
+ padding: 0 5px 5px 0;
+}
+
+#menu-lang {
+ margin: 0 105px 0 20px;
+ float: left;
+ text-align: right;
+ width: 140px;
+}
+
+#menu-lang select {
+ max-width: 120px;
+}
+
+#menu-lang-form {
+ display: none;
+ margin-top: 5px;
+}
+
+#menu-sub {
+ font-size: 1em;
+ padding-bottom: 10px;
+ text-align: center;
+}
+
+.menu-sub-sep {
+ color: #9f9f9f;
+ padding: 2px;
+}
+
+#spread-button {
+ background-color: #ffffff;
+ border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ padding: 5px;
+}
+
+/* Support site IDs */
+
+#help-spread-the-word {
+ float: left;
+}
+
+/* Class styles */
+
+.absmiddle {
+ vertical-align: middle;
+}
+
+.boxed {
+ border: 1px solid #cacaca;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ -webkit-box-shadow: 0px 0px 7px #cacaca;
+}
+
+.center {
+ text-align: center;
+}
+
+/* clear utility classes */
+
+.clear {
+ background-color: transparent;
+ border: 0px solid;
+ clear: both;
+ height: 0;
+ margin: 0;
+ padding: 0;
+ width: 0;
+}
+
+.clear-left {
+ background-color: transparent;
+ border: 0px solid;
+ clear: left;
+ height: 0;
+ margin: 0;
+ padding: 0;
+ width: 0;
+}
+
+.clear-right {
+ background-color: transparent;
+ border: 0px solid;
+ clear: right;
+ height: 0;
+ margin: 0;
+ padding: 0;
+ width: 0;
+}
+
+/* clearfix */
+
+.clearfix:after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+}
+
+.clearfix {
+ display: inline-block;
+}
+
+/* Hides from IE-mac \*/
+* html .clearfix {
+ height: 1%;
+}
+.clearfix {
+ display: block;
+}
+/* End hide from IE-mac */
+
+/* float utility classes */
+
+.float-left {
+ float: left;
+ padding-bottom: 7px;
+ padding-right: 7px;
+}
+
+.float-right {
+ float: right;
+ padding-bottom: 7px;
+ padding-left: 7px;
+}
+
+/* footer classes */
+
+.footer-follow {
+ margin: 0 45px 15px 0;
+ float: left;
+}
+
+.footer-follow a {
+ color: #fff;
+ text-decoration: underline;
+ font-size: 10px;
+}
+
+.footer-follow a:hover {
+ text-decoration: none;
+}
+
+.footer-follow div {
+ white-space: nowrap;
+}
+
+.footer-menu {
+ float: right;
+ margin: 17px 50px 0 0;
+ font-size: 10px;
+}
+
+.footer-menu a {
+ color: #fff;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+
+.footer-text {
+ text-align: left;
+}
+
+/* quoted blocks with attribution */
+
+.quote {
+ background: transparent url(http://static.ampify.it/gfx.blockquote.gif) no-repeat 0 0;
+ padding: 6px 12px 0 40px;
+ color: #575757;
+ font-size: 22px;
+ line-height: 28px;
+}
+
+.quote-attribution {
+ color: #575757;
+ font-size: 14px;
+ text-align: right;
+ padding: 10px 12px 10px 0;
+}
+
+.quote-attribution a, .quote-attribution a:active, .quote-attribution a:visited {
+ color: #575757;
+ text-decoration: underline;
+}
+
+.quote-attribution a:hover {
+ text-decoration: none;
+}
+
+/* Source code syntax highlighting */
+
+.syntax .c { color: #919191 } /* Comment */
+.syntax .cm { color: #919191 } /* Comment.Multiline */
+.syntax .cp { color: #919191 } /* Comment.Preproc */
+.syntax .cs { color: #919191 } /* Comment.Special */
+.syntax .c1 { color: #919191 } /* Comment.Single */
+
+.syntax .err { color: #a61717; background-color: #e3d2d2 } /* Error */
+
+.syntax .g { color: #101010 } /* Generic */
+.syntax .gd { color: #d22323 } /* Generic.Deleted */
+.syntax .ge { color: #101010; font-style: italic } /* Generic.Emph */
+.syntax .gh { color: #101010 } /* Generic.Heading */
+.syntax .gi { color: #589819 } /* Generic.Inserted */
+.syntax .go { color: #6a6a6a } /* Generic.Output */
+.syntax .gp { color: #6a6a6a } /* Generic.Prompt */
+.syntax .gr { color: #d22323 } /* Generic.Error */
+.syntax .gs { color: #101010 } /* Generic.Strong */
+.syntax .gt { color: #d22323 } /* Generic.Traceback */
+.syntax .gu { color: #101010 } /* Generic.Subheading */
+
+.syntax .k { color: #c32528 } /* Keyword */ /* espian red */
+.syntax .k { color: #ff5600 } /* Keyword */ /* orangy */
+.syntax .kc { color: #ff5600 } /* Keyword.Constant */
+.syntax .kd { color: #ff5600 } /* Keyword.Declaration */
+.syntax .kd { color: #ff5600 } /* Keyword.Declaration */
+.syntax .kn { color: #ff5600 } /* Keyword */
+.syntax .kp { color: #ff5600 } /* Keyword.Pseudo */
+.syntax .kr { color: #ff5600 } /* Keyword.Reserved */
+.syntax .kt { color: #ff5600 } /* Keyword.Type */
+
+.syntax .l { color: #101010 } /* Literal */
+.syntax .ld { color: #101010 } /* Literal.Date */
+
+.syntax .m { color: #3677a9 } /* Literal.Number */ /* darkish pastely blue */
+.syntax .m { color: #00a33f } /* Literal.Number */ /* brightish green */
+.syntax .m { color: #1550a2 } /* Literal.Number */ /* darker blue */
+.syntax .m { color: #5d90cd } /* Literal.Number */ /* pastely blue */
+.syntax .mf { color: #5d90cd } /* Literal.Number.Float */
+.syntax .mh { color: #5d90cd } /* Literal.Number.Hex */
+.syntax .mi { color: #5d90cd } /* Literal.Number.Integer */
+.syntax .il { color: #5d90cd } /* Literal.Number.Integer.Long */
+.syntax .mo { color: #5d90cd } /* Literal.Number.Oct */
+
+.syntax .bp { color: #a535ae } /* Name.Builtin.Pseudo */
+.syntax .n { color: #101010 } /* Name */
+.syntax .na { color: #bbbbbb } /* Name.Attribute */
+.syntax .nb { color: #bf78cc } /* Name.Builtin */ /* pastely purple */
+.syntax .nb { color: #af956f } /* Name.Builtin */ /* pastely light brown */
+.syntax .nb { color: #a535ae } /* Name.Builtin */ /* brightish pastely purple */
+.syntax .nc { color: #101010 } /* Name.Class */
+.syntax .nd { color: #6d8091 } /* Name.Decorator */
+.syntax .ne { color: #af956f } /* Name.Exception */
+.syntax .nf { color: #3677a9 } /* Name.Function */
+.syntax .nf { color: #1550a2 } /* Name.Function */
+.syntax .ni { color: #101010 } /* Name.Entity */
+.syntax .nl { color: #101010 } /* Name.Label */
+.syntax .nn { color: #101010 } /* Name.Namespace */
+.syntax .nn { color: #101010 } /* Name.Namespace */
+.syntax .no { color: #101010 } /* Name.Constant */
+.syntax .nx { color: #101010 } /* Name.Other */
+.syntax .nt { color: #6d8091 } /* Name.Tag */
+.syntax .nv { color: #101010 } /* Name.Variable */
+.syntax .vc { color: #101010 } /* Name.Variable.Class */
+.syntax .vg { color: #101010 } /* Name.Variable.Global */
+.syntax .vi { color: #101010 } /* Name.Variable.Instance */
+.syntax .py { color: #101010 } /* Name.Property */
+
+.syntax .o { color: #ff5600 } /* Operator */ /* orangy */
+.syntax .o { color: #101010 } /* Operator */
+.syntax .ow { color: #101010 } /* Operator.Word */
+
+.syntax .p { color: #101010 } /* Punctuation */
+
+.syntax .s { color: #dd1144 } /* Literal.String */ /* darkish red */
+.syntax .s { color: #c32528 } /* Literal.String */ /* espian red */
+.syntax .s { color: #39946a } /* Literal.String */ /* pastely greeny */
+.syntax .s { color: #5d90cd } /* Literal.String */ /* pastely blue */
+.syntax .s { color: #00a33f } /* Literal.String */ /* brightish green */
+.syntax .sb { color: #00a33f } /* Literal.String.Backtick */
+.syntax .sc { color: #00a33f } /* Literal.String.Char */
+.syntax .sd { color: #00a33f } /* Literal.String.Doc */
+.syntax .se { color: #00a33f } /* Literal.String.Escape */
+.syntax .sh { color: #00a33f } /* Literal.String.Heredoc */
+.syntax .si { color: #00a33f } /* Literal.String.Interpol */
+.syntax .sr { color: #00a33f } /* Literal.String.Regex */
+.syntax .ss { color: #00a33f } /* Literal.String.Symbol */
+.syntax .sx { color: #00a33f } /* Literal.String.Other */
+.syntax .s1 { color: #00a33f } /* Literal.String.Single */
+.syntax .s2 { color: #00a33f } /* Literal.String.Double */
+
+.syntax .w { color: #101010 } /* Text.Whitespace */
+.syntax .x { color: #101010 } /* Other */
+
+.syntax.bash .nb { color: #101010 }
+.syntax.bash .nv { color: #c32528 }
+
+.syntax.css .k { color: #606060 }
+.syntax.css .nc { color: #c32528 }
+.syntax.css .nf { color: #c32528 }
+.syntax.css .nt { color: #c32528 }
+
+.syntax.rst .k { color: #5d90cd }
+.syntax.rst .ow { color: #5d90cd }
+.syntax.rst .p { color: #5d90cd }
+
+.syntax.yaml .l-Scalar-Plain { color: #5d90cd }
+.syntax.yaml .p-Indicator { color: #101010 }
+
+/* classes for support pages */
+
+.community-section {
+ margin: 10px auto 10px auto;
+ width: 500px;
+}
+
+.community-section-heading {
+ font-size: 1.6em;
+ margin-top: 10px;
+}
+
+.community-section-heading span {
+ background-color: #efd7d7;
+ line-height: 1.7em;
+}
+
+.community-section-text {
+ line-height: 1.6em;
+ padding: 10px 0 0 50px;
+}
+
+.support-page-banner {
+ font-size: 1.2em;
+ line-height: 1.6em;
+ margin: 20px 0;
+}
+
+.support-page-banner-text {
+ background-color: #f0f0f0;
+}
+
+/* classes for the main support page */
+
+.promote {
+ margin: 5px 0 0px 26px;
+}
+
+.promote-retweet {
+ margin-top: 2px;
+ float: left;
+}
+
+.promote-yahoo-buzz {
+ margin: -2px 15px 0 0;
+ float: left;
+ padding-bottom: 5px;
+}
+
+.promote-google-buzz, .promote-google-buzz:active, .promote-google-buzz:visited, .promote-google-buzz:hover {
+ background: url(http://static.ampify.it/icon.google-buzz.png) no-repeat 0 3px;
+ color: #666;
+ float: left;
+ font-size: 0.9em;
+ font-weight: bold;
+ margin-top: -2px;
+ padding: 0 10px 5px 20px;
+ text-decoration: none;
+}
+
+.promote-google-buzz:hover {
+ text-decoration: underline;
+}
+
+.share-text {
+ font-size: 18px;
+ line-height: 24px;
+ margin: 0px 0 12px 26px;
+ color: #aaa;
+}
+
+/* thanks to mashable.com for these wonderful share icons + css!! thanks guys -- you rock!! */
+
+ul.share-buttons {
+ line-height: normal;
+ margin: 12px 0 0 24px;
+ padding: 0;
+}
+
+.share-buttons li {
+ display: inline;
+ float: left;
+ list-style-type: none;
+ margin: 0 18px 12px 0;
+ padding-top: 1px;
+}
+
+.share-buttons a {
+ background: url(http://static.ampify.it/gfx.mashable-syndication.gif) no-repeat;
+ color: #575757;
+ display: block;
+ font-size: 7px;
+ height: 14px;
+ overflow: hidden;
+ padding: 33px 0 0;
+ text-align: center;
+ text-decoration: none;
+ white-space: nowrap;
+ width: 46px;
+}
+
+.share-buttons a:hover {
+ text-decoration:none;
+}
+
+.share-buttons .delicious a {
+ background-position: -138px 0;
+}
+
+.share-buttons .delicious a:hover {
+ background-position: -138px -47px;
+}
+
+.share-buttons .digg a {
+ background-position: 0 0;
+}
+
+.share-buttons .digg a:hover {
+ background-position: 0 -47px;
+}
+
+.share-buttons .facebook a {
+ background-position: -184px 0;
+}
+
+.share-buttons .facebook a:hover {
+ background-position: -184px -47px;
+}
+
+.share-buttons .google a {
+ background-position: -276px 0;
+}
+
+.share-buttons .google a:hover {
+ background-position: -276px -47px;
+}
+
+.share-buttons .myspace a {
+ background-position: -230px 0;
+}
+
+.share-buttons .myspace a:hover {
+ background-position: -230px -47px;
+}
+
+.share-buttons .reddit a {
+ background-position: -414px 0;
+}
+
+.share-buttons .reddit a:hover {
+ background-position: -414px -47px;
+}
+
+.share-buttons .sharethis a {
+ background-position: -460px 0;
+}
+
+.share-buttons .sharethis a:hover {
+ background-position: -460px -47px;
+}
+
+.share-buttons .stumbleupon a {
+ background-position: -92px 0;
+}
+
+.share-buttons .stumbleupon a:hover {
+ background-position: -92px -47px;
+}
+
+.share-buttons .technorati a {
+ background-position: -322px 0;
+}
+
+.share-buttons .technorati a:hover {
+ background-position: -322px -47px;
+}
+
+.share-buttons .twitter a {
+ background-position: -46px 0;
+}
+
+.share-buttons .twitter a:hover {
+ background-position: -46px -47px;
+}
+
+.share-buttons .yahoo a {
+ background-position: -368px 0;
+}
+
+.share-buttons .yahoo a:hover {
+ background-position: -368px -47px;
+}
+
+/* Unsorted */
+
+.columns {
+ max-width: 940px;
+ width: 940px;
+}
+
+.column, .column-last {
+ float: left;
+ /*
+ height: 180px;
+ */
+ padding: 0 10px 0 0;
+ position: relative;
+ width: 227px;
+}
+
+.column-last {
+ padding: 0 0 0 0;
+}
+
+.column-text {
+ font-size: 12px;
+ line-height: 18px;
+ margin: 10px 0 20px 15px;
+}
+
+.column-footer {
+ background-image: url(bottom.gif);
+ background-repeat: no-repeat;
+ background-color: transparent;
+/*
+ background-attachment: scroll;
+ */
+}
+
+.column-left {
+ border-right: 0px solid #f00;
+ float: left;
+ width: 455px;
+}
+
+.column-left-text {
+ font-size: 12px;
+ line-height: 18px;
+ margin-left: 12px;
+}
+
+.column-right {
+ float: right;
+ width: 485px;
+}
+
+.follow {
+ display: block;
+ list-style-type: none;
+ margin: 12px 0px 0px 24px;
+ padding: 0px;
+ text-align: center;
+}
+
+.follow li {
+ float: left;
+ display: block;
+ margin-right: 30px;
+ margin-bottom: 18px;
+}
+
+.follow a {
+ color: #575757;
+ display: block;
+ font-size: 10px;
+ margin-top: 7px;
+ text-decoration: underline;
+ text-decoration: none;
+ font-weight: bold;
+}
+
+.follow a:hover {
+ text-decoration: none;
+}
+
+.get-left {
+ float: left;
+ width: 230px;
+ margin-right: 12px;
+ font-weight: bold;
+}
+
+.get-right {
+ float: right;
+ width: 230px;
+ margin-right: 12px;
+ font-weight: bold;
+}
+
+.get-item {
+ border: 1px solid #ccc;
+ border-radius: 15px;
+ -webkit-border-radius: 15px;
+ -moz-border-radius: 15px;
+ margin-top: 10px;
+ font-weight: normal;
+ margin: 12px 0 12px 0;
+ padding: 10px;
+}
+
+.get-item img {
+ float: left;
+ margin-right: 5px;
+ padding-top: 3px;
+ vertical-align: middle;
+}
+
+.headline {
+ margin-bottom: 10px;
+ text-align: center;
+ line-height: 36px;
+}
+
+.headline-text {
+ background-color: #f0f0f0;
+ font-size: 20px;
+}
+
+.headline-text-small {
+ background-color: #f0f0f0;
+ font-size: 20px;
+}
+
+.lede {
+ background-color: #dfdfdf;
+}
+
+.link {
+ font-size: 16px;
+}
+
+.oneoff {
+ margin: 12px 12px 12px 0;
+ font-size: 14px;
+ line-height: 20px;
+ border-top: 1px solid #ccc;
+ border-bottom: 1px solid #ccc;
+ padding: 12px 0 12px 0;
+}
+
+.optional {
+ color: #666;
+ font-size: 9px;
+ vertical-align: super;
+}
+
+/* other */
+
+#callout {
+ background-color: #fff;
+ margin-bottom: 10px;
+/*
+ border-bottom-left-radius: 15px;
+ border-bottom-right-radius: 15px;
+ -moz-border-radius-bottomleft: 15px;
+ -moz-border-radius-bottomright: 15px;
+ -webkit-border-bottom-left-radius: 15px;
+ -webkit-border-bottom-right-radius: 15px;
+*/
+ padding: 10px;
+}
+
+#feature {
+ float: right;
+}
+
+#supporter-form {
+ font-size: 14px;
+ line-height: 26px;
+ margin: 8px 0 0 0;
+ padding-top: 5px;
+}
+
+#supporter-form td {
+ padding-top: 10px;
+ vertical-align: top;
+}
+
+#supporter-form .label {
+ text-align: right;
+ width: 205px;
+ padding-right: 10px;
+ padding-left: 10px;
+ font-size: 12px;
+ font-weight: bold;
+ white-space: nowrap;
+}
+
+.input-item input, .input-item textarea {
+ /* thanks soundcloud! */
+ background-image: url(http://static.ampify.it/gfx.button-repeat.png);
+ background-position: 0 -1200px;
+ background-repeat: repeat-x;
+ border: 1px solid #ccc;
+ border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ color: #333;
+ font-size: 20px;
+ max-width: 220px;
+ padding: 3px 0 3px 3px;
+ width: 220px;
+}
+
+.input-item select {
+ font-size: 16px;
+}
+
+.male {
+ border: 2px solid #70b1e6;
+ background-color: #eaf3fb;
+}
+
+.male .label {
+ color: #70b1e6;
+}
+
+.female {
+ border: 2px solid #ed6aa4;
+ background-color: #fee5f5;
+}
+
+.female .label {
+ color: #ed6aa4;
+}
+
+#supporter-submit {
+ text-align: center;
+ padding: 0 0 15px 0;
+}
+
+#support {
+ font-size: 20px;
+ margin-bottom: 15px;
+ margin-top: 5px;
+}
+
+.male-counter {
+ color: #70b1e6;
+ font-size: 12px;
+ margin-bottom: -50px;
+ white-space: nowrap;
+}
+
+.female-counter {
+ color: #ed6aa4;
+ font-size: 12px;
+ padding-left: 24px;
+ margin-bottom: -50px;
+ white-space: nowrap;
+}
+
+
+.tav-thanks {
+ font-size: 14px;
+ line-height: 26px;
+ margin: 12px 12px 12px 0;
+ color: #575757;
+ color: #000;
+ font-style: italic;
+}
+
+.tav-thanks img {
+ float: right;
+ margin-left: 12px;
+}
+
+.tav-thanks div {
+ text-align: right;
+ font-size: 12px;
+ line-height: 20px;
+ margin-top: 12px;
+}
+/*
+.tav-thanks a {
+ color: #000;
+ text-decoration: underline;
+}
+
+.tav-thanks a:hover {
+ text-decoration: none;
+}
+*/
+
+.the-disqus-section {
+ margin: 12px 12px 12px 0;
+ min-height: 500px;
+}
+
+.the-disqus-section h3 {
+ margin-top: 10px;
+ margin-bottom: 12px;
+ font-size: 20px;
+}
+
+.action-items {
+ font-size: 14px;
+ line-height: 26px;
+ margin: 10px 24px; 20px 24px;
+}
+
+.action-left {
+ float: left;
+ margin-right: 20px;
+}
+
+.action-link {
+ margin-top: 20px;
+}
+
+.action-text {
+ margin-top: 20px;
+}
+
+/* plan file related css */
+
+a.button {
+ background: transparent url('http://static.ampify.it/gfx.bg-button-a.gif') no-repeat scroll top right;
+ color: #444;
+ display: block;
+ float: left;
+ font: normal 12px arial, sans-serif;
+ height: 24px;
+ margin-right: 6px;
+ padding-right: 18px; /* sliding doors padding */
+ text-decoration: none;
+}
+
+a.button span {
+ background: transparent url('http://static.ampify.it/gfx.bg-button-span.gif') no-repeat;
+ display: block;
+ line-height: 14px;
+ padding: 5px 0 5px 18px;
+}
+
+a.button:active {
+ background-position: bottom right;
+ color: #000;
+ outline: none; /* hide dotted outline in Firefox */
+}
+
+a.button:active span {
+ background-position: bottom left;
+ padding: 6px 0 4px 18px; /* push text down 1px */
+}
+
+a.buttondown {
+ background: transparent url('http://static.ampify.it/gfx.bg-button-a.gif') no-repeat scroll top right;
+ color: #444;
+ display: block;
+ float: left;
+ font: normal 12px arial, sans-serif;
+ height: 24px;
+ margin-right: 6px;
+ padding-right: 18px; /* sliding doors padding */
+ text-decoration: none;
+ background-position: bottom right;
+ color: #000;
+ outline: none; /* hide dotted outline in Firefox */
+}
+
+a.buttondown span {
+ background: transparent url('http://static.ampify.it/gfx.bg-button-span.gif') no-repeat;
+ display: block;
+ line-height: 14px;
+ padding: 5px 0 5px 18px;
+ background-position: bottom left;
+ padding: 6px 0 4px 18px; /* push text down 1px */
+}
+
+.tag-segment {
+ text-align: right;
+}
+
+.tag-segment span {
+ color: #fff;
+ padding: 0.5em;
+ font-size: 0.7em;
+}
+
+.tag-link {
+ text-decoration: none;
+ color: #000;
+}
+
+.tag {
+ background-color: #696969;
+}
+
+.tag-val-done {
+ background-color: #007f16;
+ background-color: #00782d;
+ background-color: #006400;
+}
+
+.tag-val-needsreview {
+ background-color: #a4ff00;
+ color: #000 !important;
+}
+
+.tag-val-inreview {
+ background-color: #3056bf;
+}
+
+.tag-val-todo {
+ background-color: #a60c00;
+ background-color: #d0006e;
+ background-color: #8B0000;
+}
+
+.tag-val-wip {
+ background-color: #a66e00;
+ background-color: #ff550f;
+}
+
+.tag-type-1 {
+}
+
+.tag-type-2 { /* #hashtags */
+ background-color: #2a4580;
+ background-color: #696969;
+}
+
+.tag-type-dep {
+ display: none;
+}
+
+.tag-type-milestone {
+ background-color: #00008B;
+ background-color: #06276f;
+ background-color: #a4ff00; /* nice colour! */
+ /* color: #000 !important; */
+ background-color: #002ca6;
+ background-color: #3056bf;
+ background-color: #898989;
+}
+
+.tag-type-priority {
+ background-color: #481254;
+}
+
+.tag-type-zuser {
+ background-color: #4573d5;
+ background-color: #696969;
+}
+
+#plan-tags a, #site-tags a {
+ margin-bottom: 0.7em;
+}
+
+#plan-container {
+ margin-top: 1.2em;
+ margin-bottom: 2.4em;
+}
+
+.plan-help {
+ font-size: 0.9em;
+ font-weight: bold;
+ text-align: right;
+ margin-bottom: 1.4em;
+}
+
+.container {
+ padding-left: 20px;
+}
+
+.container blockquote {
+ padding: 0 0 0 30px;
+}
+
+.container > p:first-child {
+ font-weight: bold;
+ font-family: "museo-1", "museo-2", Verdana;
+ padding-bottom: 0;
+}
+
+.sidepic {
+ padding-top: 50px;
+ text-align: center;
+}
+
+a#main_download {
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+ border-radius: 5px;
+ margin-left: 10%;
+ margin-right: 10%;
+ padding: 5px;
+ display: block;
+ color: white;
+ background-color: #0b0;
+}
\ No newline at end of file
Added: pypy/extradoc/pypy.org/download.html
==============================================================================
--- (empty file)
+++ pypy/extradoc/pypy.org/download.html Tue Mar 9 18:25:52 2010
@@ -0,0 +1,221 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>PyPy :: Download and install</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-90176-26'], ['_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="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">Download and install</h1>
+<p>Here are the various binaries of <strong>PyPy 1.2</strong> that we provide for x86 Linux,
+Mac OS/X or Windows.</p>
+<ul class="simple">
+<li><a class="reference internal" href="#with-a-jit-compiler">With a JIT Compiler</a> <strong>(recommended!)</strong></li>
+<li><a class="reference internal" href="#with-no-jit-compiler">With no JIT Compiler</a></li>
+<li><a class="reference internal" href="#sandboxed-version">Sandboxed version</a></li>
+<li><a class="reference internal" href="#stackless-version">Stackless version</a></li>
+<li><a class="reference internal" href="#building-from-source">Building from source</a></li>
+</ul>
+<p>The release 1.2 of PyPy supports <strong>Python version 2.5</strong>.
+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>
+<div class="section" id="jit-compiler-version">
+<span id="with-a-jit-compiler"></span><h1>“JIT Compiler” version</h1>
+<p>These binaries include a Just-in-Time compiler. They only work on
+<strong>32-bit</strong> <a class="reference external" href="http://en.wikipedia.org/wiki/IA-32">x86 (IA-32)</a> CPUs that have the <a class="reference external" href="http://en.wikipedia.org/wiki/SSE2">SSE2</a> instruction set (most of
+them do, nowadays), as well as on any <a class="reference external" href="http://en.wikipedia.org/wiki/X86-64">x86-64</a> machine in the 32-bit
+compatibility mode.</p>
+<ul class="simple">
+<li>Linux binary</li>
+<li>Mac OS/X binary</li>
+<li>Windows binary (this version is alpha software!)</li>
+</ul>
+<p>If your CPU is really old, it may not have SSE2. In this case, you need
+to <a class="reference internal" href="#translate">translate</a> yourself with the option <tt class="docutils literal"><span class="pre">--jit-backend=x86-without-sse2</span></tt>.</p>
+<p>If your CPU is a 64-bit machine and you want to <a class="reference internal" href="#translate">translate</a> a 32-bit
+version of PyPy yourself, <a class="reference internal" href="#here-are-hints">here are hints</a>.</p>
+<p>If you want to help us with implementing the 64-bit JIT backend,
+<a class="reference external" href="http://codespeak.net/mailman/listinfo/pypy-dev">contact us</a>!</p>
+</div>
+<div class="section" id="id1">
+<span id="no-jit-version"></span><span id="with-no-jit-compiler"></span><h1>“No JIT” version</h1>
+<p><strong>WARNING!</strong> Unless you really want to try this out, we recommend the JIT
+version.</p>
+<p>This version still has a few advantages over the JIT Compiler version.
+Notably, for Python programs that require large amounts of memory (at
+least a few hundred MBs), the following version of <tt class="docutils literal"><span class="pre">pypy-c</span></tt> runs them
+by requiring generally 1.5x or 2x less memory than CPython. These
+binaries work on 32-bit <a class="reference external" href="http://en.wikipedia.org/wiki/IA-32">x86 (IA-32)</a> CPUs as well as <a class="reference external" href="http://en.wikipedia.org/wiki/X86-64">x86-64</a> CPUs
+in the 32-bit compatibility mode.</p>
+<ul class="simple">
+<li>Linux binary</li>
+<li>Mac OS/X binary</li>
+<li>Windows binary</li>
+</ul>
+<p>If your CPU is a 64-bit machine and you want to <a class="reference internal" href="#translate">translate</a> a 32-bit
+version of PyPy yourself, <a class="reference internal" href="#here-are-hints">here are hints</a>.</p>
+<p>If you want to help us with finishing the implementation of the native
+64-bit version (there are a few known issues, like missing code in
+<a class="reference external" href="http://www.python.org/doc/2.5.4/lib/module-ctypes.html">ctypes</a> to implement calls to C functions), <a class="reference external" href="http://codespeak.net/mailman/listinfo/pypy-dev">contact us</a> or
+<strong>donate money</strong>!</p>
+</div>
+<div class="section" id="sandbox-version">
+<span id="sandboxed-version"></span><h1>“Sandbox” version</h1>
+<p>A special safe version. Read the docs about <a class="reference external" href="sandbox.html">sandboxing</a>. These
+binaries work on 32-bit <a class="reference external" href="http://en.wikipedia.org/wiki/IA-32">x86 (IA-32)</a> CPUs as well as <a class="reference external" href="http://en.wikipedia.org/wiki/X86-64">x86-64</a> CPUs
+in the 32-bit compatibility mode.</p>
+<ul class="simple">
+<li>Linux binary</li>
+<li>Mac OS/X binary</li>
+<li>Windows binary</li>
+</ul>
+<p>It is also possible to <a class="reference internal" href="#translate">translate</a> a version that includes both
+sandboxing and the JIT compiler, although as the JIT is relatively
+complicated, this reduce a bit the level of confidence we can put in it.</p>
+<p>If your CPU is a 64-bit machine and you want to <a class="reference internal" href="#translate">translate</a> a 32-bit
+version of PyPy yourself, <a class="reference internal" href="#here-are-hints">here are hints</a>.</p>
+<p>The native 64-bit version needs testing and careful reviewing;
+<a class="reference external" href="http://codespeak.net/mailman/listinfo/pypy-dev">contact us</a>!</p>
+</div>
+<div class="section" id="id2">
+<span id="stackless-version"></span><h1>“Stackless” version</h1>
+<p>Provides <a class="reference external" href="http://www.stackless.com/">Stackless</a> extensions, as well as <a class="reference external" href="http://codespeak.net/svn/greenlet/trunk/doc/greenlet.txt">greenlets</a>. These
+binaries work on 32-bit <a class="reference external" href="http://en.wikipedia.org/wiki/IA-32">x86 (IA-32)</a> CPUs as well as <a class="reference external" href="http://en.wikipedia.org/wiki/X86-64">x86-64</a> CPUs
+in the 32-bit compatibility mode.</p>
+<ul class="simple">
+<li>Linux binary</li>
+<li>Mac OS/X binary</li>
+<li>Windows binary</li>
+</ul>
+<p>It is not possible right now to combine Stackless features with the JIT.</p>
+<p>If your CPU is a 64-bit machine and you want to <a class="reference internal" href="#translate">translate</a> a 32-bit
+version of PyPy yourself, <a class="reference internal" href="#here-are-hints">here are hints</a>.</p>
+<p>For the native 64-bit version, see the issues of the <a class="reference internal" href="#no-jit-version">no jit version.</a>.</p>
+</div>
+<div class="section" id="building-from-source">
+<span id="translate"></span><h1>Building from source</h1>
+<ol class="arabic">
+<li><p class="first">Get the source code. The following packages contain the source at
+the same revision as the above binaries:</p>
+<ul class="simple">
+<li><a class="reference external" href="binaries/pypy-1.2.0.tar.bz2">pypy-1.2.0.tar.bz2</a> (sources, Unix line endings)</li>
+<li><a class="reference external" href="binaries/pypy-1.2.0.zip">pypy-1.2.0.zip</a> (sources, Windows line endings)</li>
+</ul>
+<p>Or you can checkout the current trunk using <a class="reference external" href="http://subversion.tigris.org/">Subversion</a> (the trunk
+usually works and is of course more up-to-date):</p>
+<pre class="literal-block">
+svn co http://codespeak.net/svn/pypy/trunk pypy-dist
+</pre>
+</li>
+<li><p class="first">Enter the <tt class="docutils literal"><span class="pre">goal</span></tt> directory:</p>
+<pre class="literal-block">
+cd pypy-dist/pypy/translator/goal
+</pre>
+</li>
+<li><p class="first">Run the <tt class="docutils literal"><span class="pre">translate.py</span></tt> script. Here are the common combinations
+of options:</p>
+<pre class="literal-block">
+python translate.py -Ojit # get the JIT version
+python translate.py -O2 # get the no-jit version
+python translate.py --sandbox # get the sandbox version
+python translate.py --stackless # get the stackless version
+python translate.py -Ojit --backend=cli # only for branch/cli-jit
+</pre>
+</li>
+<li><p class="first">Enjoy Mandelbrot <tt class="docutils literal"><span class="pre">:-)</span></tt> It takes on the order of one hour to
+finish the translation, and 1.3 GB of RAM on a 32-bit system.
+(Do not start a translation on a machine with 1GB or less!)</p>
+</li>
+</ol>
+<div class="section" id="note-on-building-a-32-bit-version-on-64-bit-systems">
+<span id="here-are-hints"></span><h2>Note on building a 32-bit version on 64-bit systems</h2>
+<p>To build 32-bit versions of <tt class="docutils literal"><span class="pre">pypy-c</span></tt> you need to run <tt class="docutils literal"><span class="pre">translate.py</span></tt>
+in a 32-bit version of Python. You can check with:</p>
+<pre class="literal-block">
+$ python
+Python 2.6.2 (...)
+>>> import sys
+>>> sys.maxint
+</pre>
+<p>This prints 9223372036854775807 in 64-bit versions and 2147483647 in
+32-bit versions.</p>
+<p>On Linux, you may have to compile yourself a 32-bit Python, e.g.:</p>
+<pre class="literal-block">
+cd Python-2.6.4
+CC="gcc -m32" LDFLAGS="-L/lib32 -L/usr/lib32 \
+ -L`pwd`/lib32 -Wl,-rpath,/lib32 -Wl,-rpath,/usr/lib32" \
+ ./configure
+make
+# and then use this ./python to run translate.py
+</pre>
+<p>On Mac OS/X: the easiest is to systematically use Python 2.5 when
+working with PyPy. Indeed, the standard Python 2.5 runs in 32-bit mode.</p>
+<p>On Windows, I only know about the solution of installing a 32-bit Python
+manually.</p>
+</div>
+</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-----MIIHJwYJKoZIhvcNAQcEoIIHGDCCBxQCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYAH3/sy5bDoM4O25ByvR5NOcWBI0FYbYC+pVo7QpE1V37Niw5RBidm8i3nf43oVHNrAnfeIzMmUfqpKjAHUxAVPmOAj/eCAMRrftdVALZ6CyKQspes8sBcA5lWYJQdG8C9fCrEFEpO4fHIALCVG8yQHxTzf+O5phBmz83cGFHNMAzELMAkGBSsOAwIaBQAwgaQGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQI4br55DXW8RqAgYD/r1840+fvxOpoBq/nayUvSYaNVcE3AXPvGfV4nlCEotgxkxxiN9eb4gIhAeKPQKXfy1IfyyWvKGInjHpfWza6VnAC6mfWun8yny5wM8lJ2y/qCFEHUjrO7z0xKhNA/M7A275wjTTGfILdIMmiPLOtFFpo9jBTNR0G0cdzq9cSsaCCA4cwggODMIIC7KADAgECAgEAMA0GCSqGSIb3DQEBBQUAMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbTAeFw0wNDAyMTMxMDEzMTVaFw0zNTAyMTMxMDEzMTVaMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwUdO3fxEzEtcnI7ZKZL412XvZPugoni7i7D7prCe0AtaHTc97CYgm7NsAtJyxNLixmhLV8pyIEaiHXWAh8fPKW+R017+EmXrr9EaquPmsVvTywAAE1PMNOKqo2kl4Gxiz9zZqIajOm1fZGWcGS0f5JQ2kBqNbvbg2/Za+GJ/qwUCAwEAAaOB7jCB6zAdBgNVHQ4EFgQUlp98u8ZvF71ZP1LXChvsENZklGswgbsGA1UdIwSBszCBsIAUlp98u8ZvF71ZP1LXChvsENZklGuhgZSkgZEwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAgV86VpqAWuXvX6Oro4qJ1tYVIT5DgWpE692Ag422H7yRIr/9j/iKG4Thia/Oflx4TdL+IFJBAyPK9v6zZNZtBgPBynXb048hsP16l2vi0k5Q2JKiPDsEfBhGI+HnxLXEaUWAcVfCsQFvd2A1sxRr67ip5y2wwBelUecP3AjJ+YcxggGaMIIBlgIBATCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTEwMDMwODE2MjkzMFowIwYJKoZIhvcNAQkEMRYEFBlmAndieba1aPu4bCySecgdf2DyMA0GCSqGSIb3DQEBAQUABIGAbsalxdqAxBBOgQZzA6u30njM6jqGugdDTUnbiaAKOK8K/i0lE+81vPWmta2xjXijZc9w7xiC6FQQwnsUqzj8IaEZbb1UalWnmkPh6Hg3pFexqUVfYMEdm6wqJzYKtUD0vcxT2rDyC2RRwXrrXwsdFrf2IVsfhpkx6LBVOb5UWX0=-----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="#"></a>
+ </div>
+ </li>
+</ul>
+</div>
+</div>
+</div>
+</div></div></div>
+</body>
+</html>
\ No newline at end of file
Added: pypy/extradoc/pypy.org/image/header-background.png
==============================================================================
Binary file. No diff available.
Added: pypy/extradoc/pypy.org/image/pypy-logo.png
==============================================================================
Binary file. No diff available.
Modified: pypy/extradoc/pypy.org/index.html
==============================================================================
--- pypy/extradoc/pypy.org/index.html (original)
+++ pypy/extradoc/pypy.org/index.html Tue Mar 9 18:25:52 2010
@@ -1,16 +1,93 @@
-
+<!DOCTYPE html>
<html>
- <head>
- <meta http-equiv="refresh"
- content="0 ; URL=http://codespeak.net/pypy/" />
- <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
- <META HTTP-EQUIV="expires" CONTENT="0">
- </head>
- <body>
- <p>
- you should be redirected to
- <a href="http://codespeak.net/pypy/">
- http://codespeak.net/pypy/dist/pypy/</a>
- </p>
- </body>
-</html>
+<head>
+ <title>PyPy :: PyPy</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-90176-26'], ['_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="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">PyPy</h1>
+<p>PyPy is a <a class="reference external" href="compat.html">very compliant</a> implementation of the <a class="reference external" href="http://python.org/">Python</a> language.
+PyPy has several advantages and distinctive features:</p>
+<blockquote>
+<ul class="simple">
+<li><strong>Speed:</strong> thanks to its Just-in-Time compiler, Python programs
+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
+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>
+</ul>
+</blockquote>
+<p class="download"><a class="reference external" href="download.html">Download and try out the PyPy release 1.2!</a></p>
+<p>To read more about Python, look into <a class="reference external" href="http://www.python.org/doc/2.5.4/">Python docs</a> and check our
+<a class="reference external" href="compat.html">Compatibility</a> page. PyPy can run such python libraries as <a class="reference external" href="http://twistedmatrix.com/">twisted</a>
+and <a class="reference external" href="http://www.djangoproject.com/">django</a> and supports <a class="reference external" href="http://www.python.org/doc/2.5.4/lib/module-ctypes.html">ctypes</a>.</p>
+</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="#"></a>
+ </div>
+ </li>
+</ul>
+</div>
+</div>
+</div>
+</div></div></div>
+</body>
+</html>
\ No newline at end of file
Added: pypy/extradoc/pypy.org/js/detect.js
==============================================================================
--- (empty file)
+++ pypy/extradoc/pypy.org/js/detect.js Tue Mar 9 18:25:52 2010
@@ -0,0 +1,18 @@
+
+$(document).ready(function() {
+ var download_url, download_text;
+ if (navigator.platform.indexOf('Linux') != -1) {
+ download_url = 'download/pypy-1.2.tar.bz2';
+ download_text = 'Download linux i386 bin';
+ } else if (navigator.platform.indexOf('Windows') != -1) {
+ download_url = 'download/pypy-1.2-win32.zip';
+ download_text = 'Download Windows i386 bin';
+ } else if (navigator.platform.indexOf('Mac') != 1) {
+ download_url = 'download/pypy-1.2-mac.tar.bz2';
+ downloat_text = 'Download Mac OS X 10.6 bin';
+ } else {
+ return;
+ }
+ $("#main_download").attr('href', download_url);
+ $("#main_download").text(download_text);
+});
Added: pypy/extradoc/pypy.org/more.html
==============================================================================
--- (empty file)
+++ pypy/extradoc/pypy.org/more.html Tue Mar 9 18:25:52 2010
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>PyPy :: More 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-90176-26'], ['_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="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">More 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. 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/trunk">Prolog</a> (almost complete), as
+well as Smalltalk, JavaScript, Io, Scheme and Gameboy.</li>
+</ul>
+</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="#"></a>
+ </div>
+ </li>
+</ul>
+</div>
+</div>
+</div>
+</div></div></div>
+</body>
+</html>
\ No newline at end of file
Added: pypy/extradoc/pypy.org/sandbox.html
==============================================================================
--- (empty file)
+++ pypy/extradoc/pypy.org/sandbox.html Tue Mar 9 18:25:52 2010
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>PyPy :: Sandboxing</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-90176-26'], ['_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="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">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#sandbox">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 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="#"></a>
+ </div>
+ </li>
+</ul>
+</div>
+</div>
+</div>
+</div></div></div>
+</body>
+</html>
\ No newline at end of file
More information about the Pypy-commit
mailing list