11 ms·
Facebook makes HipHop for PHP open source
- jrockway 17y agoThis is truly the PHP solution to the problem. Design a virtual machine that uses runtime information to generate highly-optimized native code? Nahh.... just regex the source into C++, compile with g++, and enjoy! (To be fair, some language implementations have achieved good results with this method; notably Chicken scheme. But I was expecting something better and potentially more useful to the language implementation community at large.)
- Raphael 17y agoC++ is known to be fast, so what advantage could a more complex solution provide?
- jrockway 17y agoNot having to wait fifteen minutes for your app to compile and link, for one thing. But seriously, the C++ implementation comes at the cost of many of PHP's features; a "more complex solution" would allow those features to be kept. And while C++ is fast, a script translated into C++ is not going to be as fast as if you had written the application directly in C++, unless the compiler is very, very smart. (I have not seen any implementation that does this; GHC's native code generator produces faster code than it's "via-C" code generator, for example.) Also, static compilation precludes runtime-based optimization techniques, which has made a lot of code run "faster than C" (including C, ironically; see LLVM). So anyway, all this is is a way to compile a limited subset of PHP to C++. In doing so, you have to write a special dialect of PHP, without PHP's easy deployability and code/test/debug cycle. In that case, why are you using PHP to begin with, when a language like GHC or SBCL would run faster and without any compromises?
- rufugee 17y agoUmm...note in the post the mention of HPHPi, which gives you the code/test/debug cycle of regular PHP but using (apparently) HipHop.
- spudlyo 17y agoNot even the Linux kernel takes 15 minutes to compile and link anymore. My desktop machine does it in under 10 minutes, but I realize you weren't being entirely serious. http://xkcd.com/303/ http://xkcd.com/303/
- evlapix 17y agoIf this is adopted widely hosting costs will drop off considerably, no?
- Quarrelsome 17y agoSo it converts PHP into C++?!? Woaw. Didn't people accuse Joel Spolsky of jumping the shark for doing that kind of thing (Wasabi script => php or vbscript). .....wait this means that Wasabi can now technically convert into C++! :D
- kamens 17y agoWe Fog Creek developers were just mentioning this hilarious possibility.
- andrewvc 17y agoWell, from what I've heard its more like FB had a mountain of PHP they couldn't ever rewrite, so they made PHP faster by turning it into C++. Fog Creek rewrote everything in a brand new language they invented that compiles down into multiple other languages. So, in actuality, the projects are the exact opposite of each other.
- tedunangst 17y agoActually, the point of Wasabi was to avoid rewriting anything.
- tghw 17y agoFog Creek didn't really rewrite anything. In fact, that was the whole point of Wasabi, to not rewrite anything. Wasabi did extend VBScript to add objects and other language features, which were gradually incorporated into the code base, but just on changes going forward. So, really, it is almost exactly the same thing.
- aditya 17y agoI wonder if it'll let you convert things out of the box or if it was optimized for the way php is written at facebook. (eg. it doesn't support eval() but eval() is bad anyway) Also, how hard would it be to do the same thing for Ruby and Perl? I'm sure there have been other attempts at compilers, but as noted elsewhere, having FB behind it makes HipHop more stable... Oh, and atleast one thing from this anonymous interview came true: http://therumpus.net/2010/01/conversations-about-the-internet-5-anonymous-facebook-employee/?full=yes http://therumpus.net/2010/01/conversations-about-the-interne...
- daeken 17y agoI wrote a PHP->C++ compiler and bits and pieces of the standard library many moons ago (BinaryPHP: http://sourceforge.net/projects/binaryphp/ http://sourceforge.net/projects/binaryphp/ ), and it really wasn't terribly difficult, even for a complete compiler novice. We didn't do the fancy optimization that HipHop does, but it worked fairly well at the time. The actual compiler would probably only take a month or two (disregarding real optimizations) for a talented developer or two, but the runtime (assuming it doesn't share anything with PHP proper -- don't know if this does or not) would take much, much longer. Doing it for Ruby or Python would be fairly straightforward to get running initially, but doing Perl<=5 would be impossible (for all cases) due to it being proven impossible to statically parse.
- viraptor 17y agoYou can compile any code - full static parsing doesn't have anything to do with that. If you have a place that is not possible to parse one way, you do a switch on the condition that causes the parsing choice. Then you compile each branch assuming that code was parsed in a specific way.
- raganwald 17y agohow hard would it be to do the same thing for Ruby... ? Much harder, but not impossible. The two issues are (a) how much of Ruby the language can be compiled to C++ using Type Inference, and (b) For the stuff that can't be compiled, how often does it show up in production code? FB's PHP solution relies on having a large code base with few instances of code that doesn't compile cleanly. With Ruby, I suspect both issues are a problem. I think there's a lot more of Ruby the language that will be difficult to infer, and furthermore I think Ruby programmers tend to use those features a lot. That's just a guess, mind you. You could probably do a lot if you make some major breaks with tradition. For example, if instead of compiling Ruby source code you load Ruby classes, run all the meta-programming, then reverse-engineer the source (ParseTree can do this with Ruby 1.8 but not Ruby 1.9), you could basically do the meta-programming in interpreted mode but run the resulting code in compiled mode. I suspect that would work well for a lot of Rails programs where the hairiest stuff is run when classes are loaded, not on the fly when responses are being served.
- deleted 17y ago[deleted]
- deleted 17y ago[deleted]
- fizx 17y agoDoes this make more sense than targeting LLVM? It doesn't seem easier to maintain, and you won't get the advantages of the optimizations/work already done.
- notaddicted 17y agog++ has a few optimizations http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
- spoondan 17y agoI doubt he was somehow ignorant of the fact that g++ optimizes its generated code. I believe his point was that great work has already been done on optimizing compilers for dynamic languages targeting LLVM (c.f., Unladen Swallow and Rubinius).
- orblivion 17y agoWas just thinking the same thing. "Man, I guess it works, but isn't it weird that they're generating what's probably hard to read C++ just to get fast machine code? Eventually they should make a language just for the purpose of optimizing. Oh wait."
- alxv 17y agoAccording to the Unladen Swallow's team [1], LLVM's "just-in-time infrastructure was relatively untested and buggy" when they started working with it. So, I think not using LLVM was a pragmatic decision. In addition, debugging C++ code is much easier than dealing with intricacies of dynamically generated machine code. [1]: http://www.python.org/dev/peps/pep-3146/#performance-retrospective http://www.python.org/dev/peps/pep-3146/#performance-retrosp...
- kingkilr 17y agoYes, but it's not now. Unladen Swallow isn't exactly alone in blazing this trail, Rubinius is using LLVM as well.
- deleted 17y ago[deleted]
- ricardo_sdl 17y agoGitHub were crushed by the release of HipHop. Too bad, I wished to test the HipHop translator.
- icco 17y agoTheir file servers crashed before the Hip Hop announcement, and Hip Hop hasn't even been pushed to GitHub yet, according to this announcement. http://twitter.com/github/status/8551643423 http://twitter.com/github/status/8551643423
- euroclydon 17y agoWhat CGI mechanism are they using to host a blended PHP/C++ code base?
- teoruiz 17y agoI guess they transform complete PHP libraries to C++, they build them and then they "require" them from some other PHP code.
- KrisJordan 17y ago"It has it's own built-in web server when you compile it, via libevent." from Ben Ramsey who attended the demo at FB Campus.
- maxklein 17y agoI really could not justify not doing web stuff in PHP anymore. PHP is THE web language. No, Ruby is not going to take over, and no, python is not going to take over. Those two would have been the main contenders for the space, but they both had their shot and their 15 minutes of fame, and rather than rapidly growing to dominate web development, they nichified. PHP however is being improved, being cleaned up, and most importantly, being speed optimised. PHP is what you can trivially easily outsource - try to do that with python or ruby. This right here is basically the move that is going to cement PHP as the web language. The largest sites are using PHP and are going to stay with PHP. Nothing will take over from PHP. The battle is over.
- Zak 17y agoPHP is what you can trivially easily outsource Yes, you can... but be careful - you might end up with this: http://paste.lisp.org/display/76132 http://paste.lisp.org/display/76132 That's real production code I removed from an application I was hired to extend and debug. Eventually, I convinced the client to scrap it and let me write a replacement with Rails.
- ams6110 17y agoSadly that resembles most of the ASP/PHP code I've ever worked with. The very low barriers to entry of PHP and ASP means you have (had) a lot of very inexperienced folks writing code. That said, I agree with the original point that PHP can be very productive. No compiles, no builds... just edit code/refresh browser to immediately see the effect of a change. That's nice if you have the discipline to not do stuff like the linked example.
- Zak 17y agoIt's important to note that the above-linked code could be written in any language that has printf or something like it. That includes Lisp, Python and Haskell. Of course, people who know those languages don't write things like that. I think it's due to pg's "Python Paradox"; I'm inclined to think outsourcing is actually easier with "smart" languages because the percentage of bad providers will be very low.
- carson 17y agoIt would seem they forgot to make the project public on github.
- Erwin 17y agoThis sounds rather similar in principle to Python's Shedskin compiler, which turns ordinary Python code in C++ code, using C++-based runtime replacing the ordinary Python runtime. This works extremely very well on a certain class of problems. http://code.google.com/p/shedskin/ http://code.google.com/p/shedskin/
- mrshoe 17y agoI see this as being useful if you already have these two things: 1) A large PHP codebase and 2) A CPU-bound app with scaling issues If you're starting a new app, I don't see why you would choose PHP. And I think most web apps are database-bound rather than CPU-bound. HipHop seems incredibly useful for Facebook, but are other people here on HN excited about using it?
- lanstein 17y agoI have a CLI application that's IO-bound. I'm extremely excited. Furthermore, I'm sure this is exciting to anyone who has deployed Memcache, and now has an application that is CPU-bound.
- ighost 17y agoI wish memcache changed my IO bound app to CPU bound.
- ivankirigin 17y agoYou can optimize on multiple fronts. Just because facebook needs to scale data access doesn't mean it shouldn't scale processing time too. As the post mentioned, this has had a huge impact. [i work at facebook, comments on this site are my own opinion, and I'm not intimately involved in the project] But generally I agree about new projects. If you have a favorite language, use it.
- coliveira 17y agoThere is no need to switch to PHP only for this reason, but there is a huge number of apps already using PHP. It will be a great benefit to them. Also, it will become another factor for people considering developing a new application: if a language can quickly be converted to C++, this is easier than writing extensions in C/C++ directly.
- mikeryan 17y agoI think this is where many run into issues with this story. This project was never really meant to be something to help the PHP community as a whole. It was meant to be a tool to help Facebook and to that end they've succeeded very well. 3 engineers + 2 years = 50% CPU improvement without having to rewrite the whole PHP codebase from scratch? That's a great achievement for Facebook but YMMV.
- h0h0h0 17y agoDamnit - a cool project name wasted on a php to c++ compiler?? DJ Kool Herc is disgusted with Facebook.
- pmjordan 17y agoWith HipHop we've reduced the CPU usage on our Web servers on average by about fifty percent, depending on the page. Hmm. I'm guessing they're comparing it to their PHP stack that has already had the living daylights optimized out of it (with cached bytecode, etc.) and/or a large proportion of their pages doesn't hit much code (lots of stuff cached?). I'd have thought there would be more mileage in this.
- grandalf 17y agoIt seems odd to me that anyone thinks PHP is "easy". The syntax is odd, as is the behavior of the built-in functions (many retain seriously warts from older versions of PHP) It's "easy" in the sense that you just edit one file and the webpage changes, but if that's a stumbling block for your developers then you have bigger problems.
- coliveira 17y agoIt is really easy if you already have experience with C++. Also, it is not very different from UNIX shell, and it is clearer than Perl, so I don't get why people complain so much about it.
- jrockway 17y agoEverything is easy if you have experience with C++. I fail to see how PHP is clearer than Perl. It may have fewer special characters, but everything is done with oddly-named functions that take positional arguments in an inconsistent order, return error codes instead of throwing exceptions, and randomly spew warning messages. From a language design standpoint... there is no design. Perl may not be perfect either, but the design has been flexible enough to radically modify as the community sees fit. Or rather, how you choose to modify it, as most modifications are modular and only affect a single lexical scope. Oh.
- skorgu 17y ago> everything is done with oddly-named functions that take positional arguments in an inconsistent order, return error codes instead of throwing exceptions, and randomly spew warning messages These are all anti-features for programmers who already know how to program but they're quite helpful or moot when you're a complete noob. You're going to be spending at least a third of your time in the manual so guessable function names aren't as important as findable ones, you'll be doing lots of "what the?" style debugging so verbose warnings right on the page save you one fewer step in the debugging process. Additionally it's easy to find a PHP hosting provider for peanuts, it will happily scale to moderate use without overmuch cleverness architecturally and there are literally thousands of noob-level tutorials that get you from "I want to build a website" to something that works rapidly. You don't feel the pain of the language until you're pretty far down the road but as Flickr and (obviously) Facebook have shown it's not too difficult to limit the pain and keep growing.
- erickerr 17y agoThey probably just use a python script and type from php import cppCompiler not sure why that took 2 years
- blasdel 17y agoHow templatey is the generated code? How big are the resulting binaries? Amazon's original core platform (obidos) was written in C++ and deployed as one monolithic binary. I've heard that one of the major things pushing their Java rewrite (dp) was that the binary no longer fit comfortably into memory!
- prewett 17y agoJust curious, but how is Java going to solve that problem? Now you've got the Java opcodes, plus any JIT information/native code, plus the JVM. Seems like that would be even larger!
- spudlyo 17y agoI can't wait to try to try this out on a large PHP codebase like Drupal and then run some benchmarks. It'd be interesting to see how much faster it is when compared to vanilla PHP vs opcode cached PHP.
- runT1ME 17y agoFacebook's lack of engineering prowess continually amazes me. There were quite a few other options aside from writing a translator.
- sailormoon 17y agoAre you living in an alternate universe? Facebook are scarily competent. They have executed brilliantly and their engineering is top notch.
- runT1ME 17y agoReally? You mean like their ultra-reliable chat server they wrote? Or maybe the way their replication works, so when you post things get out of order depending on what server you are looking at?
- sailormoon 17y agoWith criticisms like that, I think your expectations are unrealistic. Considering the size of their userbase, their chat server is quite an accomplishment. And minor replication artefacts are hardly a big issue. In short, if FB had incompetent or even "just" competent engineering, they would not have close to 400 million users. And yet they do, and I have never noticed the site performing slowly. They're not Google, fine, but they have an excellent team and if you're not impressed by their performance I wonder what you would be impressed by.
- runT1ME 17y agoHaving a large user base is not an indication of technical authority. Myspace had (and still does to a lesser extent) extremely large user base, and we know they had some stability issues (Honestly though, I've listened to their tech presentations and am more impressed than the things I've seen Facebook do). No, I don't imagine Gacebook is programmed by a bunch of incompetent monkeys, but compared to Google, Amazon, Yahoo, or many other companies that have had to deal with large scaling issues, their approach seems amateur.
- codexon 17y agoI am sad to see Facebook helping to perpetuate PHP. On the bright side though, even if HipHop yields a 50% speedup, it is unlikely to be faster than Python, Javascript V8, or LuaJit. http://shootout.alioth.debian.org/u32/chartbox.php?s=eNo9ktuRxTAIQ1viDarC%2FXezYm%2Fs%2FJyBQYBwUkPgJz%2FY5BBevRFqyk4JWuYikWFxUvZ7gHTHKS0HToVG56k2A5Pwnri6MkDswQc7IZBDXeVInZopz9NibfJ0qrYlH1x05dnRSkFN9GkdhB2mZHbdUMfKveKidLKbg1xmJ6h5nfZCCQGUU%2FdzxBrTCyZBD7tg6OpiKFDGD1fnqRkX5e7gnt3YCGOMmteZh7tnBKIeYI69BI8UrBTTf38menHntbL3xZ416AE0Rp2E59AY36Yv7j1Fe%2BSB29YaY1duZlA26wrnX9BsbfPN%2BwOA6XrK&m=eNozMFJwS01SMDIwNFAoNTYCABs7A20%3D&w=eNrLKU3MyizxL7PwzylN9M8qKk2q9K9MLCrzL6gsycjPM4bS%2FgUZBf4FqUU5%2FiAVAD2BFWM%3D http://shootout.alioth.debian.org/u32/chartbox.php?s=eNo9ktu... edit What's with the downvotes? I can't mention my opinions on php?
- ivankirigin 17y agoUse your imagination. Perhaps other languages can be compiled down with HipHop. Perhaps other languages can call PHP libraries compiled with HipHop. Then you might have an end to end solution to transition from PHP to Python. This is obviously just a fantasy of mine. Back to coding PHP...
- codexon 17y ago> Perhaps other languages can be compiled down with HipHop. There's already something like HipHop for Python called Cython. You can compile any pure python code into a static C shared library (with the exception of generators).
- ivankirigin 17y agoI suspect for interoperability, using a single framework is the most likely to succeed. But this is the whole point of open source, right? Let the community enhance it in awesome ways.
- mbreese 17y agoAre you serious? A magical framework that translates PHP/Python/etc into C++ code? I've got to be misinterpreting what you're saying... Then again, you might be drinking a bit too much of that Facebook juice... :)
- mbreese 17y agoSo, does this mean that PHP has officially forked? I mean who is going to want to keep writing in the interpreted version as opposed to the hiphop-able version? How many changes are there? I've only seen mentions of ditching eval, but there is probably more. Will people be debugging their code in both vanilla PHP and HPHP? How well does this support other projects, like wordpress (for example)? Another issue this raises is who is now in control of PHP? Not in legal terms, but in terms of mindshare. It's one this for a student to write a PHP translator, but quite another for Facebook to do it. I'll be interested to see how Zend responds to this. At least when Google started unladen swallow, they had Guido working for them.
- qeorge 17y agoNo, you'll probably see no changes in your day to day life as a result of this. There's no "interpreted version as opposed to the hiphop-able version", in terms of the code you write. As the article mentions, almost no one is really running straight PHP, they're running it through FastCGI or are at least using an opcode cache like APC. So you could be swapping out APC for HPHP, but this is at a level of abstraction below the one you're working in. Regarding future control of PHP, this does not change anything. Its a compiler for the language, but does not propose any changes to the language itself.
- mbreese 17y agoyou'll probably see no changes in your day to day life as a result of this I'm fairly confident about that... I gave up PHP years ago :)
- KrisJordan 17y agoSome details not in the official announcement: Currently works off of the PHP 5.2 language specs Compiles to a stand-alone libevent-driven web server or CLI executable Not based on Zend's runtime/code Currently no windows support Intended for 'drop in' PHP replacement - if it runs on PHP and doesn't use a few things like eval() it will compile with HipHop
- jrockway 17y agoIntended for 'drop in' PHP replacement - if it runs on PHP and doesn't use a few things like eval() it will compile with HipHop This sounds a lot like Python's 2to3. This technique worked so well that the Python 2 series is a distant memory of the past. (Oh wait... the opposite.)
- tlack 17y agoDid they reimplement the entire standard PHP library bug-for-bug in C++? I'm curious about that aspect of it..
- JoachimSchipper 17y agoWhy would they need to do that? The standard library is a mix of PHP, which they can already handle, and C, which doesn't have to be rewritten.
- tlack 17y agoFirst, they didn't call the PHP standard library: the poster of the root comment we are replying to has stated they didn't use the Zend runtime or code. The PHP standard library has a huge number of functions that are mostly useless permutations of one another. As opposed to, say, Erlang's meager but usable lists and string module, PHP has such high-level meta-randomness as stristr() (case-insensitive search), str_word_count(), and str_shuffle(). So if you were going to convert that directly to C++, there wouldn't necessarily be a direct replacement in strings.h. Therefore I'd guess they either have to reimplement all of those in PHP, and compile that to C++, or write them in C++. Furthermore, some of these functions have unusual quirks, so some kind of framework would be required I think.
- icey 17y agoHmm, this is one of those rare occasions where something has been released where I have a domain name that could be useful - hiphoperator.com Now I just have to figure out what to do with it :D
- ohashi 17y agoat least 1 youtube video
- peter_o 17y agoWill this be faster than less say... python?
- tlrobinson 17y ago"HipHop for PHP isn't technically a compiler itself." ... "HipHop programmatically transforms your PHP source code into highly optimized C++" Sounds like a compiler to me. Compilers don't have to target machine code.
- DrJokepu 17y agoExactly my thoughts. To further support your statement, theoretically, it should be possible to create a CPU that interprets C++ source code as machine code (not sure why would anyone do that though.)
- jrockway 17y agoA better example is modern x86 CPUs. You feed them x86 instructions, but that is not the native language of the CPU; everything is translated into the real underlying (RISC) language as the x86 instructions are encountered. Or so I'm told. I've never read Intel's source code :)
- rbanffy 17y agoI doubt it would be this elegant ;-)
- EricBurnett 17y agoBy that logic then PHP itself is also assembly because someone could make a machine that executes it natively. We might as well throw all distinctions away if we go down this road.
- DrJokepu 17y agoI'm not sure if I understand what you're trying to suggest. Indeed, someone could make a machine that executes PHP natively. It's a Turing-complete language, just like C++ or x86 assembly for that matter so it should be possible to build a (weak) universal machine that executes them directly.
- icefox 17y ago"300,000 lines of code and more than 5,000 unit tests." Both values sound good in theory, but are both meaningless. How is the code coverage? How many man months? How many developers?
- henning 17y agoI find it ironic that you feel LOC is meaningless and then asked for man-months, an even more useless unit of measurement :D
- 0wned 17y agoAfter this, can we still make fun of C++? I use it daily and love it. Sure, it takes someone with a brain to use it, but once you learn C++, nothing else comes close for speed and expressiveness... seems FaceBook just verified that. So while people who cannot code in C++ will still talk about it as if they know it, it continues to kick ass in solving real-world computing problems
- tptacek 17y agoFacebook appears to be using C++ the way C++ devs use assembly. We can definitely continue making fun of it.
- nir 17y agoRemember when the meme was "%90 of web apps will not reach a point where scaling is an issue"? Well, of those who do reach it, %90 will not reach a point when PHP's execution (assuming you use on of the existing code accelerator, all which are free IIRC and one will be bundled with PHP6) is the bottleneck. It's a cool hack, but really targets Facebook-level needs. For most users, the downside (eg compatibility issues) will far outweigh the benefits.
- rythie 17y agoActually it's an efficiency gain, rather than scalability. Facebook already have a system they can add more servers at, but this is designed to let them use less and save money as a result. Also at least 90% of web apps are tiny or are startups that never made it, either way they don't need this for a long time, like you say.
- nir 17y agoefficiency -> scalability, in the sense that serving the request faster will free the server to serve another request. My point is that for nearly all apps, executing PHP is very small part of the total request handling time, so even a significant improvement will have little overall effect. I bet many people excited by HipHop could get a much bigger performance gain by adding some simple caching)
- rythie 17y agoNot really, that type of efficiency is not predictable. From Wikipedia: "scalability is a desirable property of a system, a network, or a process, which indicates its ability to either handle growing amounts of work in a graceful manner or to be readily enlarged. For example, it can refer to the capability of a system to increase total throughput under an increased load when resources (typically hardware) are added."
- nir 17y agoI realize we're nitpicking, but I don't really get it: Why isn't it predictable (in the sense that any execution time for an HTTP request ever is)? You run http_load for x seconds and see how many requests got served, then make change y and do it again. Obviously there are other variables but it's possible to get a fair idea.
- gojomo 17y agoWill Wikipedia, Wikia, and other major MediaWiki sites use this? (Does MediaWiki code use eval()?)
- Perceval 17y agoI would bet that Wikipedia is more database bound than CPU bound. HipHop would probably help, but not tremendously.
- sailormoon 17y agoYou reckon? I would have thought Wikipedia a textbook case for a great big cache. I would have guessed that the great majority of their views were read-only by unregistered users, with the pages in question following a power law distribution. Hm, would be interested to find out more about that. update: I went and looked it up. They do indeed have a great big cache, many of them in fact. In fact their Amsterdam presence runs only cache! From what I can tell, it seems their bottleneck is actually Apache, and presumably a lot of that is PHP. Interesting presentation here: http://wikimania2009.wikimedia.org/w/index.php?title=Media:Rob_Halsell_-_Wikimania_2009_-_Wikimedia_Operations_%26_Technical_Overview.pdf http://wikimania2009.wikimedia.org/w/index.php?title=Media:R... Also check this out: http://ganglia.wikimedia.org/pmtpa/?gw=fwd&gs=Wikimedia%40http%3A%2F%2Fganglia.wikimedia.org%2F http://ganglia.wikimedia.org/pmtpa/?gw=fwd&gs=Wikimedia%... Go down to the MySQL section. Plenty of headroom, but the Apaches are working hard.
- KrisJordan 17y agoSome notes from Facebook's UStream event this evening: http://www.recessframework.org/page/notes-from-facebooks-hiphop-for-php-debut http://www.recessframework.org/page/notes-from-facebooks-hip... High points: the performance numbers were against PHP with APC op-code caching enabled eval, create_function, and preg_replace with /e (basically eval), and conditional flow based on the existance of functions are the only features not supported. Currently PHP5.2 with a roadmap of 5.2.12 compliant in the next month and 5.3 being the focus after that.
- regularfry 17y agoIf this makes a big difference to memory footprint, won't it be rather handy to embedded devs?
- agazso 17y agoWhere is the link to download it or just the documentation? On the announcement page there is only a Wiki link (besides wikipedia entries and other php-to-other-lang compilers) to a Github page that redirects to the github.com.
- ojbyrne 17y agoSo... stupid question - Where's the code? It's the next day and no sign of it on github.