If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Windows is a great OS and a high quality software product, there is no
question about it. From the aspects of usability, support, software availability,
hardware drivers... linux can look up to some of the standards delivered
by MS products (not all, ofcourse).

No, no, that's all wrong... The correct response is "Microsoft ate my baby and then stole my car... with my wife in the passenger seat".
/sarcasm

Windows is a good product in general, although I disagree with the direction that MS is taking with the UI for desktops in Windows 8. Their interface is nice for touch-enabled devices, but not so nice for the classic keyboard/mouse combination. Performance and stability, however, are fine. I've only managed to crash my Windows 7 desktop a couple times since Windows 7 was released, and some of those times were my own fault.

I use Linux for the freedom and selection that it gives me as a user and as a software developer, not because Windows is an unacceptable choice. If I ever get to the point where all of my games work in either Linux or Wine, I'll probably delete the Windows partition on my main machine, and just keep a VM around for compatibility's sake.

Re: wow

This is really a great accomplishment, and I can guess more than one will be looking into installing this on their servers.

A few things do trouble me however. It is weird that facebook doesn't even try to contribute this back to the PHP developers, surely there is much that can be merged and benefited from.

Also why develop their own bytecode interpreter / JIT compiler when they could just use LLVM for this?

I'm guessing that Facebook tries to remain in control of their stack, but duplication of effort on something that's open-source anyway is just puzzling.

Hi there! I work on HipHop VM at Facebook and own a share of the credit/blame for HHVM's design and implementation.

On your question about open-source, back in 2007 and 2008 Facebook contributed several patches back to Zend PHP 5.2 that delivered non-trivial performance improvements (something to the tune of 5-10% CPU reduction for FB's codebase IIRC), while at the same time we also experimenting with other available PHP engines and prototyping HPHPc (the old HipHop PHP->C++ compiler which has since been retired). After a certain point it became hard to get more gains from the Zend engine unless we substantially changed the core of the engine, and by early to mid 2009 HPHPc was getting close to being able to run Facebook's site and was looking promising.

IHMO, we *are* giving back to the PHP community by open-sourcing HipHop VM, making it freely available to use, and having some engineers dedicated full-time to responding to issues reported by developers outside of Facebook. We're dedicated to maintaining a high compatibility bar with the Zend PHP engine; we want HipHop VM to be useful to developers outside of Facebook and we're slowing growing a community around it.

On your LLVM question, we commonly get asked why we didn't use LLVM. In short, LLVM was not suitable for serving as the backend for JIT compiler when we started working on HipHop VM in 2010, and it still is lacking in this respect today. There's also advantages to owning our entire compiler stack as it gives us for flexibility to squeeze out the maximum possible performance for our PHP codebase in the long run. The Google developers who worked on Unladen Swallow (an execution engine for Python) did a nice write-up where they talked about a lot of the issues they ran into when trying to use LLVM as the backend for a JIT compiler: http://qinsb.blogspot.com/2011/03/un...ospective.html .

Thanks Drew

Thanks for the work on this. With numbers like these, the community will join you.
Since PHP 5.4 released in Mar. 2012, my biggest concern would be in unimplemented features. Any plans to catch-up & stay with on PHP dev lock-step?

Thanks for the work on this. With numbers like these, the community will join you.
Since PHP 5.4 released in Mar. 2012, my biggest concern would be in unimplemented features. Any plans to catch-up & stay with on PHP dev lock-step?

Yes, one of our goals this year is to make HipHop VM support the full PHP 5.4 language, to support more extensions than we currently do, and to make it easy for developers outside of FB to port existing extensions or write new extensions.

At present we support most PHP 5.4 language features, including eval, traits, exceptions, late static binding, closures, magic methods (__get, __set, etc.), typehints, autoload, nowdocs, etc. Off the top of my head, the main features missing at present are namespaces and short array syntax, which we plan to add in the coming months. Also, there was some missing functionality with closures, but we've recently fixed that and the fixes should make it to our open-source github repo soon.

Most of the missing functionality that external developers have reported is missing extensions. HipHop currently supports a few dozen of the popular Zend extensions, but there are still several popular Zend extensions that haven't been ported to HipHop yet. While we plan to port a few more extensions this year, we're focusing primarily on making it easier to add/port extensions to HHVM. This includes cleaning up HipHop's extension system to be more friendly, having good documentation, and possibly writing some tools to help port existing Zend extensions.

...
IHMO, we *are* giving back to the PHP community by open-sourcing HipHop VM, making it freely available to use, and having some engineers dedicated full-time to responding to issues reported by developers outside of Facebook. We're dedicated to maintaining a high compatibility bar with the Zend PHP engine; we want HipHop VM to be useful to developers outside of Facebook and we're slowing growing a community around it.
...

Is great to see that the hiphop code has a C++ base instead of plain C, the code looks more elegant and organized than that of original PHP runtime. What would be appreciated is some better documentation on how to use hiphop as a reference for the configuration file.

Pardom my ignorance but does this means it can run any php script with out modification?

technically yes, all core php extensions as some other ones have been ported to hiphop, also it supports all PHP language features with partial support for namespaces (which are currently been worked and improved)

You may need to change certain things on some scripts but is most case they are minor.

So one more question

Originally Posted by TheOne

technically yes, all core php extensions as some other ones have been ported to hiphop, also it supports all PHP language features with partial support for namespaces (which are currently been worked and improved)

You may need to change certain things on some scripts but is most case they are minor.

So the process would be to install Apache2 (or some other web Server) php5 mysql then hiphop. Or does hiphop replace the web server and php.