tag:blogger.com,1999:blog-3971202189709462152.post6869934374873967346..comments2024-03-11T12:50:02.036+01:00Comments on PyPy Status Blog: Prototype PHP interpreter using the PyPy toolchain - Hippy VMCarl Friedrich Bolz-Tereickhttp://www.blogger.com/profile/00518922641059511014noreply@blogger.comBlogger23125tag:blogger.com,1999:blog-3971202189709462152.post-73990357952135278662013-02-03T16:16:04.268+01:002013-02-03T16:16:04.268+01:00Just in case anyone *is* interested in implementin...Just in case anyone *is* interested in implementing PHP on the Parrot Virtual Machine, you don't have to tie yourself to the PVM bytecodes.<br /><br />You can write your PHP compiler entirely in NQP (Not Quite Perl) which in turn produces parrot bytecode for you.<br /><br />This is important for two reasons:<br /><br />First, NQP is a mid level language, and is relatively easy to write in, and doesn't require you to know anything at all about the PVM.<br /><br />Second, although NQP *presently* only targets PVM, there's an in-progress backend which targets the Java Virtual Machine! Early benchmarks suggest that it is already faster than perl5, and there are many optimizations and speedups to come.<br /><br />Thus, if you were to write a PHP compiler in NQP, you could target either the Parrot Virtual machine, or (in the future) the Java virtual machine.Unknownhttps://www.blogger.com/profile/09465238057881226114noreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-38531928156601693402013-02-03T16:15:02.356+01:002013-02-03T16:15:02.356+01:00Just in case anyone *is* interested in implementin...Just in case anyone *is* interested in implementing PHP on the Parrot Virtual Machine, you don't have to tie yourself to the PVM bytecodes.<br /><br />You can write your PHP compiler entirely in NQP (Not Quite Perl) which in turn produces parrot bytecode for you.<br /><br />This is important for two reasons:<br /><br />First, NQP is a mid level language, and is relatively easy to write in, and doesn't require you to know anything at all about the PVM.<br /><br />Second, although NQP *presently* only targets PVM, there's an in-progress backend which targets the Java Virtual Machine! Early benchmarks suggest that it is already faster than perl5, and there are many optimizations and speedups to come.<br /><br />Thus, if you were to write a PHP compiler in NQP, you could target either the Parrot Virtual machine, or (in the future) the Java virtual machine.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-9534368851267324292012-08-08T10:33:31.272+02:002012-08-08T10:33:31.272+02:00Awesome proof of concept!
Can you post memory foo...Awesome proof of concept!<br /><br />Can you post memory footprint comparison, please?<br /><br />And perhaps a quick overview what these test cases cover, arithmetic, function call overhead, dynamic language features?<br /><br />Thanks for your hard work, without likes of you OSS would never exist!Dima Tisnekhttps://www.blogger.com/profile/02596502493502644800noreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-68969524878309336782012-07-24T12:46:18.657+02:002012-07-24T12:46:18.657+02:00@Fijal
Thank you!@Fijal<br />Thank you!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-9011927861511878982012-07-24T12:06:11.906+02:002012-07-24T12:06:11.906+02:00@Anonymous not much. I'll write a non-progress...@Anonymous not much. I'll write a non-progress blog post some time soon.Maciej Fijalkowskihttps://www.blogger.com/profile/11410841070239382771noreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-53509240295187501072012-07-24T12:01:03.544+02:002012-07-24T12:01:03.544+02:00Offtopic: not trying to sound offensive or pushy, ...Offtopic: not trying to sound offensive or pushy, but what happened to numpypy development? I'm regularly checking http://buildbot.pypy.org/numpy-status/latest.html, and it looks like its development is stale for several months.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-4815169486311031812012-07-18T23:18:04.323+02:002012-07-18T23:18:04.323+02:00Wow, 1.5x to 20x faster than a PHP-compiler and 7x...Wow, 1.5x to 20x faster than a PHP-compiler and 7x to 100x faster than PHP itself… congrats!Arne Babenhauserheidehttp://draketo.denoreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-53469907920835616772012-07-18T21:59:41.008+02:002012-07-18T21:59:41.008+02:00> JS is kind of useless without a browser
This...> JS is kind of useless without a browser<br /><br />This would have been more true before Node.js, but now it's false.Reinis I.https://www.blogger.com/profile/14271127522458529063noreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-49424972120958499042012-07-16T18:36:32.761+02:002012-07-16T18:36:32.761+02:00Very interesting project. It would be nice if you ...Very interesting project. It would be nice if you used a recent version of PHP for comparisons - 5.3.2 is over 2 years old and one version behind. Try something like 5.4.4.SMnoreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-40418649665882414072012-07-16T17:25:48.708+02:002012-07-16T17:25:48.708+02:00Love this effort and esp. the benchmarks! Great wo...Love this effort and esp. the benchmarks! Great work<br /><br />Referring to your mentioning of JVM and parrot:<br /><br />You consider as disadvantage to be tied to an existing set of VM opcodes to implement many languages. You were talking about .NET (which had to add Iron-style dynamic reflection later) or the JVM.<br /><br />parrot already has all the functionality the JVM or .NET was missing and even more (e.g. dynamic types loadable as plugins) and considers it as advantage to share opcodes and bytecode libraries across different languages.<br /><br />But parrot cannot compete with your speed yet.Reini Urbanhttps://www.blogger.com/profile/05895715181237297006noreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-18654980043656635132012-07-15T21:29:28.227+02:002012-07-15T21:29:28.227+02:00Yes, although APC does not change anything in *thi...Yes, although APC does not change anything in *this* set of benchmarks, precisely because you run everything in-process (within the same interpreter instance even).Maciej Fijalkowskihttps://www.blogger.com/profile/11410841070239382771noreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-76217655461460170102012-07-15T21:16:45.747+02:002012-07-15T21:16:45.747+02:00Does the Zend test include APC as well? That's...Does the Zend test include APC as well? That's the current standard way to run php scripts...Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-29313762348030098272012-07-15T20:05:59.454+02:002012-07-15T20:05:59.454+02:00About phalanger: the short answer is that I don...About phalanger: the short answer is that I don't have windows and comparisons on mono would be a bit ingenuine. The longer answer is that I don't expect phalanger to particularly excel compared to Zend.<br /><br />For example compare the performance of IronPython and CPython. The same reasons apply as they do towards JVM or Parrot - this is IMO nto the right way for dynamic lanaguages.Maciej Fijalkowskihttps://www.blogger.com/profile/11410841070239382771noreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-51096554576054551292012-07-15T20:02:54.753+02:002012-07-15T20:02:54.753+02:00I would like to see how this compares to the Phala...I would like to see how this compares to the <a href="http://www.php-compiler.net/" rel="nofollow">Phalanger</a> project. Which runs PHP in the .NET runtime.Tomhttps://www.blogger.com/profile/05945139567399116446noreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-51110066415318055112012-07-15T01:21:36.051+02:002012-07-15T01:21:36.051+02:00Wow, this is wonderful.
You rock.
I surely hope y...Wow, this is wonderful.<br />You rock.<br /><br />I surely hope you get funding.<br /><br />If I didn't live in Brazil, and our currency wasn't so weak, and my income wasn't so low, I would definitely donate some dozens of dollars.<br /><br />Keep the good workInactive Accounthttps://www.blogger.com/profile/08501762635338954285noreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-63258772197495124932012-07-14T12:56:06.023+02:002012-07-14T12:56:06.023+02:00I hope you get funding for researching the refcoun...I hope you get funding for researching the refcount thing. Being able to predict when something gets whacked is just really convenient and something PyPy Python can benefit from too.<br /><br />While GC may be more efficient, the unpredictable nature of it do become a problem in production in some cases.<br /><br />For instance, for a webapp written with Django and CPython, when a request is over I know that the stuff that was allocated is now gone unless I put something in a global data structure. I suspect many applications have similar patterns where you perform a big operation after which it's natural to have a clean up.Ole Laursenhttp://people.iola.dk/olau/noreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-87928578876741855712012-07-14T11:22:27.702+02:002012-07-14T11:22:27.702+02:00Hey there, nice work.
Do you have any numbers or ...Hey there, nice work.<br /><br />Do you have any numbers or estimates how memory consumption compares?Benedikt Morbachhttp://test.comnoreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-40956255755411854222012-07-14T08:25:56.716+02:002012-07-14T08:25:56.716+02:00Cool. When will your pypy converter convert my c++...Cool. When will your pypy converter convert my c++ programs to python? Can't wait until that happens! Anyway, nice work!<br /><br />p.s.: sarcasmKonstantine Rybnikovhttps://www.blogger.com/profile/08989396191882704814noreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-84167851184238210442012-07-14T03:27:24.585+02:002012-07-14T03:27:24.585+02:00Nice, Python surprising whenNice, Python surprising whenAnonymoushttps://www.blogger.com/profile/09490211353643748816noreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-5165206780310001872012-07-14T02:42:00.023+02:002012-07-14T02:42:00.023+02:00Do I read the numbers correctly? The fibonacci tes...Do I read the numbers correctly? The fibonacci test runs more than 110 times faster in your experimental, 2 months old VM than in the default Zend VM? That's amazing!<br /><br />It took me a while to figure out the meaning of the numbers. Please add units and explain that small is faster.<br /><br />ChristianChristian Heimeshttps://www.blogger.com/profile/16043034511693193747noreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-24599663635226843502012-07-14T01:30:50.055+02:002012-07-14T01:30:50.055+02:00JS to pypy would be useful when time comes to runn...JS to pypy would be useful when time comes to running all those node based apps in prod ;)<br /><br />Also, Java to PyPy would be a cool experiment too - jvm's way too bloated...Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-56659850406602237632012-07-14T00:34:13.053+02:002012-07-14T00:34:13.053+02:00please read the blog post first. It's *not* PH...please read the blog post first. It's *not* PHP to Python converter. There is also a started JS implementation on in https://bitbucket.org/pypy/lang-js, but JS is kind of useless without a browser.Maciej Fijalkowskihttps://www.blogger.com/profile/11410841070239382771noreply@blogger.comtag:blogger.com,1999:blog-3971202189709462152.post-37106691795950778632012-07-14T00:26:21.250+02:002012-07-14T00:26:21.250+02:00it's cool. Next on the list Javascript to Pyth...it's cool. Next on the list Javascript to Python/PyPy converter...Anonymousnoreply@blogger.com