PyPy issueshttps://foss.heptapod.net/groups/pypy/-/issues2023-01-26T13:08:35Zhttps://foss.heptapod.net/pypy/pypy.org/-/issues/12Versions of CPython used for speed comparison in pypy.org2023-01-26T13:08:35ZPierre AugierVersions of CPython used for speed comparison in pypy.orgThe main page of pypy.org starts with "On average, PyPy is 4.8 times faster than CPython 3.7" and the figure just below show a comparison with Python 2.7.
Now that more effort is spent on the performance of CPython (https://github.com/f...The main page of pypy.org starts with "On average, PyPy is 4.8 times faster than CPython 3.7" and the figure just below show a comparison with Python 2.7.
Now that more effort is spent on the performance of CPython (https://github.com/faster-cpython), it would make sense to compare with more recent versions of CPython. IIRW, the first version of CPython to include changes from the Faster CPython project is Python 3.11 and so they use Python 3.10 as a base for comparison (https://github.com/faster-cpython/benchmarking-public).
As a result of the Faster CPython project, some people could think that CPython is fast enough so that PyPy is not really useful (an example here https://twitter.com/squidfunk/status/1618522245244284928).
It seems to me that it would make sense in the first page of pypy.org to compare PyPy with Python 3.10 (as the Faster CPython project) (for the sentence "On average, PyPy is ? times faster than CPython 3.10" and the figure) and to also mention the comparison with the latest Python release (nowadays 3.11, which is a bit faster than 3.10). I guess for now the numbers are going to be very close but it's interesting to show that. For pure Python code, CPython is (not yet) as fast as PyPy.
I guess it would be better to avoid a comparison with Python 2.7.11 (as in the figure in pypy.org).https://foss.heptapod.net/pypy/benchmarks/-/issues/3Benchmarks are not compatible with with python 3.102023-01-26T11:25:17ZMichael ŠimáčekBenchmarks are not compatible with with python 3.10Multiple benchmarks contain incompatibilities with python 3.10. All of them seem to be due to using removed aliases from `collections` module, which should use `collections.abc` module instead. A list of affected files:
```
multithread/b...Multiple benchmarks contain incompatibilities with python 3.10. All of them seem to be due to using removed aliases from `collections` module, which should use `collections.abc` module instead. A list of affected files:
```
multithread/bottle/bottle.py
unladen_swallow/lib/django/django/core/paginator.py
unladen_swallow/lib/django/django/db/models/sql/query.py
unladen_swallow/lib/html5lib/html5lib/_trie/_base.py
unladen_swallow/lib/html5lib/html5lib/treebuilders/dom.py
```https://foss.heptapod.net/pypy/extradoc/-/issues/1شركة مكافحة حشرات بالدمام2022-08-09T12:21:17ZTanzif Methalyشركة مكافحة حشرات بالدمامتكمن أهمية صيانة حمامات السباحة بشكلٍ دوري ومنتظم في حمايتها من التلوث، والتأكد من صلاحية المياه فيها، بحيث تكون آمنةً للسباحة فيها؛ وذلك لأن المياه في حمامات السباحة قد تحتوي على الكثير من الميكروبات مثل البكتيريا، والفيروسات، والطحالب،...تكمن أهمية صيانة حمامات السباحة بشكلٍ دوري ومنتظم في حمايتها من التلوث، والتأكد من صلاحية المياه فيها، بحيث تكون آمنةً للسباحة فيها؛ وذلك لأن المياه في حمامات السباحة قد تحتوي على الكثير من الميكروبات مثل البكتيريا، والفيروسات، والطحالب، بحيث يمكن أن تُسبب العديد من المشاكل الصحية مثل التهاب المعدة والأمعاء، والتهابات الأذن والأنف، في حالة عدم صيانتها بشكلٍ صحيح.
[شركة صيانة مسابح بالدمام]( https://www.falcon-clean.com/%d8%b4%d8%b1%d9%83%d8%a9-%d8%b5%d9%8a%d8%a7%d9%86%d8%a9-%d9%85%d8%b3%d8%a7%d8%a8%d8%ad-%d8%a8%d8%a7%d9%84%d8%af%d9%85%d8%a7%d9%85/)
تخزين الطعام في عُبوات زجاجيّة، أو بلاستيكيّة، أو معدنيّة بحيث تكون مُحكمة الإغلاق، لأنّ العبوات المصنوعة من الورق المقوّى يسهل دخول الصراصير إليها. إمكانية رشّ وتبخير المنزل، فعلى الرغم من أنّ بخاخات الهواء الجوي التي يُمكن شراؤها لا تقضي على الصراصير في نفس اللحظة، إلا أنّها تُخرج الصراصير من أماكن اختبائها، وتقتلهم ببطء وتمنع تكاثرهم.
[شركة رش حشرات]( https://www.falcon-clean.com/)https://foss.heptapod.net/pypy/sandboxlib/-/issues/3how to use thisAre there any related documents, or can it be used directly in...2022-06-20T13:58:02Zfailymaohow to use thisAre there any related documents, or can it be used directly in CPYTHON, Python 3.9.5? moduleDear Auth:
I want to use this module to my APP, but my app is used to Cpython of python3.9!!!
Are there any related documents, or can it be used directly in CPYTHON, Python 3.9.5?Dear Auth:
I want to use this module to my APP, but my app is used to Cpython of python3.9!!!
Are there any related documents, or can it be used directly in CPYTHON, Python 3.9.5?https://foss.heptapod.net/pypy/benchmarks/-/issues/1how to get the consistent or reproducible results of benchmarks2022-04-05T02:49:55Zanonymoushow to get the consistent or reproducible results of benchmarksHi, I am interested in the benchmarks and would like to further understand the method of recording running time and comparing time differences. Do the benchmarks record running time for each benchmark by using `time.time()` or something...Hi, I am interested in the benchmarks and would like to further understand the method of recording running time and comparing time differences. Do the benchmarks record running time for each benchmark by using `time.time()` or something? Is it reliable to measure time by using `time.time()` instead of `timeit` module? And how do you design the environment to ensure the consistent or reproducible result? Could you give some references (online links or papers) about the approach of performance comparison?
Thank you!https://foss.heptapod.net/pypy/example-interpreter/-/issues/1Running the interpreter segfaults2022-02-01T08:11:21Zjoannah nanjekyeRunning the interpreter segfaultsI build the project correctly but running the interpreter segfaults.
```
jnanjeky@vertex:~/GIPW/example-interpreter$ ./targetkermit-c hello.py
Segmentation fault
```I build the project correctly but running the interpreter segfaults.
```
jnanjeky@vertex:~/GIPW/example-interpreter$ ./targetkermit-c hello.py
Segmentation fault
```https://foss.heptapod.net/pypy/pypy.org/-/issues/10500 errors on speed.pypy.org2021-04-21T10:25:34ZOliver Margetts500 errors on speed.pypy.orgIt seems like `speed.pypy.org/changes` and `speed.pypy.org/timeline` never load. The underlying request just `500`s
![image](/uploads/2342523d8211098c81032e74e5998f89/image.png)It seems like `speed.pypy.org/changes` and `speed.pypy.org/timeline` never load. The underlying request just `500`s
![image](/uploads/2342523d8211098c81032e74e5998f89/image.png)https://foss.heptapod.net/pypy/pypy.org/-/issues/9buid and deploy via CI2021-01-13T05:53:46ZMatti Picusbuid and deploy via CIxref #7 where @markdoerr said:
Consider generating the static html pages by the CI/CD pipeline (I think we discussed that a longer time ago):
So you might utilise the CI machinary to generate the static pages. You can stick with nikola ...xref #7 where @markdoerr said:
Consider generating the static html pages by the CI/CD pipeline (I think we discussed that a longer time ago):
So you might utilise the CI machinary to generate the static pages. You can stick with nikola - of even move to the python doc standard sphinx, like we do here:
https://gitlab.com/SiLA2/sila_python/-/blob/master/.gitlab-ci.yml
which results in static html pages of gitlab:
https://sila2.gitlab.io/sila_python/
It might make changes much easier, dynamic and future proof since every commit in master will automatically generate everything without human intervention.https://foss.heptapod.net/pypy/pypy.org/-/issues/8Migrate blog from morepypy to pypy.org2021-01-07T06:05:07ZMatti PicusMigrate blog from morepypy to pypy.orgIt would be nice to host everything in one place. Then "posting a new blog post" would become "issue a PR to this repo", which might encourage third parties to post about their PyPy experiences. There is a nikola plugin to import blog po...It would be nice to host everything in one place. Then "posting a new blog post" would become "issue a PR to this repo", which might encourage third parties to post about their PyPy experiences. There is a nikola plugin to import blog posts via RSS https://plugins.getnikola.com/v7/import_feed and another one specifically for blogger https://plugins.getnikola.com/v7/import_blogger/. I think the second one should import the comments too?https://foss.heptapod.net/pypy/pypy.org/-/issues/7Rethink website2021-03-01T09:21:46ZMatti PicusRethink websiteAs posted on the pypy-dev mailing list, [here](https://www.dropbox.com/s/r817xirkhcm9dks/pypy.org-0.3-annotations.png?dl=0) is a proposal for improving the website front page, and [here](https://www.dropbox.com/s/hnabjxy4aybfp1y/pypy.org...As posted on the pypy-dev mailing list, [here](https://www.dropbox.com/s/r817xirkhcm9dks/pypy.org-0.3-annotations.png?dl=0) is a proposal for improving the website front page, and [here](https://www.dropbox.com/s/hnabjxy4aybfp1y/pypy.org-0.3.png?dl=0) is the image without annotation. Copying the comments from the annotated site:
- Putting "A fast, compliant, alternative implenetation of Python" in the header you are immediately made aware of what PyPy is, and what it offers.
- Putting "%420 faster on average" in the header shows the power of PyPy
- Highlighting the quote from Guido at the top of the content gives credit to the project and might help aleviate some of the worries the future use might have.
- Adding 4 points, with 4 words. What you get clean and simple. We can link from those to more explicit details.
- Put the the blog posts right at the website, and not have visitors jump back and forth to a blog website (xref issue #3)
- Make the "Download", "Learn More", "Donate" and "Contribute" link buttons.https://foss.heptapod.net/pypy/revdb/-/issues/5Update for lib_pypy/_cffi_ssl2020-06-02T16:01:20ZArmin RigoUpdate for lib_pypy/_cffi_sslThe _cffi_ssl code now both in pypy2 and pypy3 doesn't work with RevDB: it makes a bytearray() and then (later) there is a call to ffi.from_buffer() on it. Currently this fails because bytearrays cannot be turned into a raw address in p...The _cffi_ssl code now both in pypy2 and pypy3 doesn't work with RevDB: it makes a bytearray() and then (later) there is a call to ffi.from_buffer() on it. Currently this fails because bytearrays cannot be turned into a raw address in pypy-revdb.Armin RigoArmin Rigohttps://foss.heptapod.net/pypy/pypy.org/-/issues/3When we migrate blogs, maybe allow commenting via https://utteranc.es/2021-01-06T08:47:51ZMatti PicusWhen we migrate blogs, maybe allow commenting via https://utteranc.es/It uses github comments as a storage format, maybe we could port it to heptapod comments.
Here is one blog using it https://www.varrazzo.com/blog/2020/03/06/thinking-psycopg3/It uses github comments as a storage format, maybe we could port it to heptapod comments.
Here is one blog using it https://www.varrazzo.com/blog/2020/03/06/thinking-psycopg3/https://foss.heptapod.net/pypy/pypy.org/-/issues/2Add content about PyPY's CSP ability (Communicating Sequential Processes)2021-01-04T06:14:53ZBitbucket ImporterAdd content about PyPY's CSP ability (Communicating Sequential Processes)*Created originally on Bitbucket by Anonymous*
Hello.
I am just about to start an asynchronous project. The ASyncio approach, much like Javascript callbacks looks way way too complicated. I much prefer the the model of Communicaint ...*Created originally on Bitbucket by Anonymous*
Hello.
I am just about to start an asynchronous project. The ASyncio approach, much like Javascript callbacks looks way way too complicated. I much prefer the the model of Communicaint Sequentil Processes (CSP), supported by GoLang, Erlang, and maybe (?) by PyPy with Gevent.
I have long been interested in Gevent, but reportedly on cPython, there is a garbage collection bug.
Plus everyone else is using ASyncio. Very hard not to use the mainstream approaches.
Which brings me to PyPy. I suspect that PyPy + Gevent gives me CSP. But I am not sure. Your web site does not mention it. Here is what it says:
◦ Stackless: PyPy comes by default with support for stackless mode, providing micro-threads for massive concurrency.
I have been in the Python community for many many years. I know about stackless. I know about micro threads. Since the Python remote calls are blocking, it is not at all clear from your home page, how to do asynchronous calls from micro-threads. Time to switch to Go. So last night I was reading the GoLang tutorials. Beautifully done, a big brand name, it scales great, but static binding is bad enough to bring me back to PyPy.
Could your home page instead say something like:
GoLang, Erlang and PyPy (with Gevent) support the concept of Communicating Sequential Processes. In contrast, PyPy and cPython’s asyncio as well as Javascript support the concept of callbacks. There are many who believe that CSP is much easier to program than callbacks.
And then a link to a page that introduces the CSP ideas.
The idea here is to compete with cPython by correctly supporting CSP, made famous recently by GoLang. I think that would bring you a lot more users, and eventually more money as well.
Frankly I am not at all sure if CSP on PyPy would work, and be supported. if it does, then you would have a major advantage over cPython, and I would have a very interesting talk for the local meetups and European conferences.
Plus it would solve my immediate problem, and the problem that a good friend of mine is facing.
I look forward to hearing what you have to say about this.
P.S.
By the way, I am the guy who had dinner with the PyPy core developers at the great Italian restaurant at the EuroPython conference.
Christopher Lozinskihttps://foss.heptapod.net/pypy/revdb/-/issues/2New post on RevDB is needed2020-02-13T22:14:54ZBitbucket ImporterNew post on RevDB is needed*Created originally on Bitbucket by [techtonik (anatoly techtonik)](https://bitbucket.org/%7B2d6360f2-f456-4b47-a17e-03f7611d5723%7D/)*
Surely RevDB needs more exposure to developers. This is README:
```
#!human
This is the original ...*Created originally on Bitbucket by [techtonik (anatoly techtonik)](https://bitbucket.org/%7B2d6360f2-f456-4b47-a17e-03f7611d5723%7D/)*
Surely RevDB needs more exposure to developers. This is README:
```
#!human
This is the original blog post, which describes the basics:
https://morepypy.blogspot.ch/2016/07/reverse-debugging-for-python.html
(note that many of the limitations described in that blog post have
been removed now: threads and cpyext are implemented; various crashes
have been fixed; ``next``-style commands behave more reasonably now;
``import`` in ``!`` commands is special-cased).
```
Also, it needs a coverage, how to integrate it with Python IDEs, such as Spyder.https://foss.heptapod.net/pypy/jitviewer/-/issues/1jitviewer crashes with AssertionError: nesting error: starts with 'jit-backen...2020-02-13T22:21:34ZBitbucket Importerjitviewer crashes with AssertionError: nesting error: starts with 'jit-backend-dump' but stops with 'jit-log-opt-loop'*Created originally on Bitbucket by [eskuat (Kuat Eshengazin)](https://bitbucket.org/%7Bb388b8ff-c230-4bb3-a9bd-1387f1c624d5%7D/)*
Repro steps
1. Get a jitviewer environment
2. Ungzip attached log.pypylog (~ 30MB disk space required...*Created originally on Bitbucket by [eskuat (Kuat Eshengazin)](https://bitbucket.org/%7Bb388b8ff-c230-4bb3-a9bd-1387f1c624d5%7D/)*
Repro steps
1. Get a jitviewer environment
2. Ungzip attached log.pypylog (~ 30MB disk space required)
3. run 'jitviewer path/to/ungzipped/log.pypylog'
jitviewer crashes with message like this:
(ve) ~/dh/ve $ jitviewer.py ../log.pypylog
90% .................................................................
Traceback (most recent call last):
File "app_main.py", line 51, in run_toplevel
File "/home/jail/dh/ve/bin/jitviewer.py", line 4, in <module>
main(sys.argv)
File "/home/jail/dh/ve/_jitviewer/app.py", line 216, in main
log, loops = import_log(filename, ParserWithHtmlRepr)
File "/home/jail/dh/ve/pypy/pypy/tool/jitlogparser/parser.py", line 359, in import_log
log = parse_log_file(logname)
File "/home/jail/dh/ve/pypy/pypy/tool/logparser.py", line 26, in parse_log_file
return parse_log(lines, verbose=verbose)
File "/home/jail/dh/ve/pypy/pypy/tool/logparser.py", line 74, in parse_log
record(match.group(2), time=int(match.group(1), 16))
File "/home/jail/dh/ve/pypy/pypy/rlib/debug.py", line 63, in debug_stop
(self[i][1], category))
AssertionError: nesting error: starts with 'jit-backend-dump' but stops with 'jit-log-opt-loop'
(ve) ~/dh $ pypy -V
Python 2.7.2 (341e1e3821ff, Jun 07 2012, 15:38:48)
[PyPy 1.9.0 with GCC 4.4.3]