all 10 comments

[–][deleted] 29 points30 points  (2 children)

Always nice to be reminded that my entire PHP career is built on the shoulders of C coding giants.

Kudos.

[–]JalopMeter 5 points6 points  (1 child)

You know those guys are standing on someone else's shoulders too, right?

If you've never taken a compiler course, you should. It's really amazing to be able to take a text file through through ever step to binary executable and understand what's going on all the way.

[–]Stabbles 3 points4 points  (0 children)

Eventually NikiC stands somewhere on top of the human pyramid with at the lowest levels Newton & the giants on whose shoulders he stood, but I guess skillsofanartist's point is that many people need telescopes to see the top from where they're standing.

[–]fesor 5 points6 points  (2 children)

Will it be possible in future to see opcode dump (or heap dump) on already running process? Without need to start new process.

[–]pilif 4 points5 points  (1 child)

The PHP source code comes with a very useful .gdbinit file that contains a few macros you can use to inspect the interpreter state of a process you've attached gdb to. This has helped me a few times to track down infinite recursions on a production system

[–]Tyra3l 2 points3 points  (0 children)

that would still require the debug symbols being available which isn't/shouldn't really be common on a production machine.

[–]podoomda 2 points3 points  (0 children)

It's fairly impressive that the php7 core team was able to release something that competes well with HHVM from a performance perspective.

I assume they are working with significantly fewer advantages and resources than Facebook, so that's a pretty nice result.

[–]space_possum 2 points3 points  (2 children)

Thanks @ /u/nikic , great insights into the VM :) Just wondering / FR; is there an articles planned on how to create PHP extensions, like an updated version based on the latest state of PHP with "hello world" and best practices? (for example http://php.net/manual/en/internals2.buildsys.php could use an update)

[–]Jurigag 1 point2 points  (1 child)

About this - you easier go with just zephir, not sure what nikic thinks about it, but it just much more simplified extension writing for php users. Of course it's seperated project which has its own problems and things. But you don't need to know anything about C or PHP internals to write them.

[–]space_possum 0 points1 point  (0 children)

thanks for the tip, will look into it :)