Jump to content

Could you go away from eval() in order to support HipHop?


TSP

Recommended Posts

Hi, we would like if there were done some changes in the core files to make it more supportive of tools like for example the PHP optimization tool HipHop: https://github.com/facebook/hiphop-php/wiki/

As it is now it's not possible for us to use this "right out of the box" due to some of the code you use. So we would appreciate it if you could look at the possibillity to rewrite your code in order to support tools like HipHop. Especially the use of eval() is problematic, we haven't really looked too closely into whether you would have to change other functions or not. (And..: http://www.blog.highub.com/php/php-core/php-eval-is-evil/ )

Link to comment
Share on other sites


Hi, we would like if there were done some changes in the core files to make it more supportive of tools like for example the PHP optimization tool HipHop: https://github.com/facebook/hiphop-php/wiki/



As it is now it's not possible for us to use this "right out of the box" due to some of the code you use. So we would appreciate it if you could look at the possibillity to rewrite your code in order to support tools like HipHop. Especially the use of eval() is problematic, we haven't really looked too closely into whether you would have to change other functions or not. (And..: http://www.blog.highub.com/php/php-core/php-eval-is-evil/ )



if you read through the comments on that link/ever bothered to learn the proper use of eval() including cleaning user input, you would realize that even though it is a pain to switch the syntax correctly, it is not evil...
You are correct in stating hiphop is not usuable right out of the box, however, twouldnt be too difficult to integrate this into ipb... just the hiphop source code needs tweaks to function in ipb right.
EDIT... took another look... why would anyone sack eval()? pretty much breaks ipcontent and a lot of other stuff, for what? to switch php to c++ then to binary?
seems a waste.
Link to comment
Share on other sites

So, rewrite the template engine from the ground up to support HipHop. Great idea, they should dumb down templating and make half of all the cool stuff you can do impossible, just so four people can use the technology of the week.

Here's what Facebook has to say about what HipHop is for:

HipHop is not the right solution for everyone deploying PHP. We think it will be useful to companies running very large PHP infrastructures who do not wish to rewrite complex logic within C or C++.


It certainly doesn't say "it will be useful for companies and individuals deploying Commercial off the Shelf software". Most CotS software will be incompatible, and the reason is simple. With so many diverse environments, you sometimes have to go low level to support desired functionality, because the high level stuff isn't guaranteed to be available (just look at the xml parsing in IPB for example).

I can't speak for the developers, obviously as just another customer, but I guarantee the answer is "no".
Link to comment
Share on other sites

Happy to see the answers here, I'm just sharing some ideas here on behalf of our tech staff. On how they think IPS could make it easier for larger boards to get better overall performance, I'm not an expert - so I'm happy to see your replies. Will ask him if he can post his reasoning behind it here ;)

But as far as I know there are other solutions than using eval, or isn't it? What would be disadvantages from switching from eval to another solution?

Link to comment
Share on other sites

  • 1 year later...

Hello,



Any news to remove "eval" from native IPB code?)




The template system, actually, largely doesn't use eval() (unless you run IN_DEV). Some hook functionality and IP.Content functionality, however, does. This is not likely to change in the immediate future.


Link to comment
Share on other sites

Hi, we would like if there were done some changes in the core files to make it more supportive of tools like for example the PHP optimization tool HipHop: https://github.com/facebook/hiphop-php/wiki/



As it is now it's not possible for us to use this "right out of the box" due to some of the code you use. So we would appreciate it if you could look at the possibillity to rewrite your code in order to support tools like HipHop. Especially the use of eval() is problematic, we haven't really looked too closely into whether you would have to change other functions or not. (And..: http://www.blog.highub.com/php/php-core/php-eval-is-evil/ )

Have you considered asking the PHP developers to remove the eval() function? That will ensure that all scripts will be compatible since no script would be able to have that command. While you're at it, ask the automotive execs if they'd be willing to live poor for a week. I'm sure that they'd be willing to spend only $1million during that week and then come back like, "Whew that was rough!"


But as far as I know there are other solutions than using eval, or isn't it? What would be disadvantages from switching from eval to another solution?

What other solution do you have in mind? Do you know of something that will perform the same function as eval() but without using the eval() function?
Link to comment
Share on other sites

  • 1 year later...

Pretty much nothing can run on HipHop out of the box.

http://www.hhvm.com/blog/875/wow-hhvm-is-fast-too-bad-it-doesnt-run-my-code

The following won't run at all

CakePHP

Joomla

phpMyAdmin

Zend Framework 2

Doctrine

Magento

And pretty much every other major software listed doesn't run either (e.g. 100% of unit tests do not pass).

HipHop is really not capable of running most software at this time. That said, they are working on bringing feature parity to the runtime in the future so that most things will run on it, and we'll keep our eyes on it as it matures.

Link to comment
Share on other sites

  • 4 months later...

Reviving an old topic here, sorry for that,

HHVM 3.0.0 was just released a few days ago. Development seems to have progressed a lot. I've been playing with this a bit tonight, but have nothing to report on how well it runs with IP.Board yet. Plan on fiddling with this more tomorrow.

But if anyone else is interested and wants to jump in and see what they can do with this, I'd love to see others results. Since knowing me, I may forget and push this off for weeks.

Link to comment
Share on other sites

Playing around with this a bit, HHVM seem to be up to twice as fast compared to my standard PHP-FPM configuration, on just about any page. Forum index page execution time went from ~0.0155 seconds to ~0.0080 seconds.

This is mostly an empty forum though. A lot of people report that HHVM in general can offer dramatic performance improvements, as well as significantly lower CPU and memory overhead. Meaning, there's huge potential for scalability here.

I found a few kinks and glitches when playing with it. If anyone else wants to look into it, it may take some work to get working properly. I may look into t some more at a later time. I'm going to work on compiling and tuning PHP 5.5 with Zend Opcache for my actual production server right now, so I won't be messing around with this much more until then.

(I'd kind of really just like to see what others can do with this, and see if there's any potential in using this on a production IP.Board site.)

Link to comment
Share on other sites

  • 1 year later...

This was posted a long time ago. I have not yet tried to install / run IPB 4.0 with HHVM yet.

I had planned on testing such a configuration eventually, but I've been tied up with other things recently and haven't had much time to invest in IP.Board related projects.

Whenever I do get around to it though, I'll be sure to post my findings here for you.

Link to comment
Share on other sites

  • 1 month later...

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...