ibmruntimes / v8ppc

Port of Google V8 javascript engine to PowerPC®
Other
94 stars 19 forks source link

Merge missing changes from 3.14-ppc into libv8-3.14 #111

Open andrewlow opened 10 years ago

andrewlow commented 10 years ago

There are several commits @mtbrandy made to clean up the 3.14-ppc stream that should be incorporated into libv8-3.14

There is also at least one change I missed when making libv8-3.14 from src/objects-inl.h

This item exists so I don't forget to take care of this.

kapouer commented 10 years ago

Interested, since there's a good chance these 3.14 ppc branch patches make their way to the libv8-3.14 debian package.

andrewlow commented 10 years ago

@kapouer That's the plan. I helped Adam create the original patch into the ubuntu libv8-314 for PPC (BE/LE).

andrewlow commented 10 years ago

Big bunch of commits merged from 3.14-ppc branch and some cleanup

commit 7d1b8b5d040a7d622bbde464ea29f6a7e89c90b6 commit a89113066060399c0f0337fededf8216ab4fd864 commit e65316cac36d48fd94e2716bdea8f399b3fefdb6 commit bd647a19c2970b39105d097a0641fa89d39670ba << upgrade patch to 3.14.5.9 commit 6a4dae62274959f1f9c9b8b541961a28b5e368f2 commit 3104c7a2292be26aab9ac27ec0e7f4b3ad52f256 commit 1fce5844fc33d03e55357bfd80439a96f4f13231 commit dd1c665ff244b87ceb362fd5893df9e64edd43f7 commit 8564b62eb9090e52a92d79b7402be5383a72db63 commit b9c7b1aa764ba26b3b33b4f5a933293d84467fbe

andrewlow commented 10 years ago

commit b74ef763708d3ae728413ba6509c8599fa19705d commit 1079d0e3f0cc674ef10cc65a4d8aa1bfc6172a1c commit eef43973d0cf454d4eb29653a67e1c8c53df9a17 commit 16022ca659643a9cc2e877bbca0fa9eff8045623 commit 2f80bb13c3369039dc16adfc277a006097ee1e2c

One note - this upgrades to 3.14.5.9 which is a a single commit: bd647a19c2970b39105d097a0641fa89d39670ba but appears to be Node related and probably a good idea.

andrewlow commented 10 years ago

Submitted a bug on launchpad https://bugs.launchpad.net/ubuntu/+source/libv8-3.14/+bug/1289490 to track inclusion of this in the Ubuntu builds.

kapouer commented 10 years ago

Had a second look. Debian ppc port supports low-end POWER instructions sets. It's not that obvious what exactly (but i'll ask for more info). At least the build servers set a minimum requirement, see for example poulenc or praetorius. That means libv8-3.14 package cannot support "powerpc" architecture unless you manage to merge the main ppc port with the g4compat branch.

andrewlow commented 10 years ago

@kapouer - I looked at poulenc (Xserve Dual Core G5) and praetorius (IBM p5 52A, 4 x POWER5+ 1.6GHz) - I would have thought that the current libv8-3.14 did work fine here.

It won't work on a G4 processor - the currently unmerged g4compat branch is for those. I can understand that debian wants to be as widely supported as possible, so this is another vote to merge those changes in. (I may try again to do that.. it was just a pretty big diversion for quite an old processor).

I would like to understand if you have evidence that the two build servers listed above are actually incompatible with the code we have in libv8-3.14. If so, that's a different bug than G4 compatibility and I'd like to address that first.

kapouer commented 10 years ago

No i don't have any evidence the build servers are actually incompatible. (I thought the G5 was < POWER5). Here's some information about which instruction sets are supported in debian: https://lists.debian.org/debian-powerpc/2014/04/msg00005.html

andrewlow commented 10 years ago

Len Soremsem's comments outlines PowerPC levels we do support.

He also correctly points out that there are issues with some of the Freescale processors due to our assumption of FPU support

Standard powerpc FPU is expected to exist, which makes the SPE powerpc versions not able to run it (which is mainly e500 core powerquicks as far as I know)."

So, based on this data - the code should be compatible. If you hit problems with those servers / that CPU specification we will happily accept issues and resolve them.

kapouer commented 10 years ago

Fine by me, will try the patch and report, then.

kapouer commented 10 years ago

Which branch is the one i can review ? libv8-3.14 or 3.14-ppc ?

andrewlow commented 10 years ago

The libv8-3.14 branch was prepared specifically to make the merge into the Ubuntu builds as simple as possible. The parent of the libv8-3.14 branch is 3.14-ppc.

We use 3.14-ppc as our branch to support the PowerPC version of Node.js.

For debian, I'd be tempted to start with libv8-3.14 and see if it's a close match to what you have now on other platforms. If there are big issues - then I'd be happy to take a look at the deltas and figure out how we can best provide code to you that requires the minimum effort on your part.

If it's a big effort, and you want to do the work yourself, then starting from 3.14-ppc makes the most sense.