How to build a fixed version of V8 and its dependencies.

41 views
Skip to first unread message

Edd Barrett

unread,
Nov 27, 2017, 6:19:34 AM11/27/17
to v8-users
Hi,

I raised this as a bug, but was asked to re-post here.

For a benchmarking experiment I need to build a frozen version of V8. For most VMs this means just checking out a specific git version of the code and building it. For V8 it is complicated by the depot_tools system. I've yet to find a reliable way to do this.

In the past, I've gotten by with cloning a specific version of depot tools, fetching V8, then walking the dependencies resetting the git versions of everything to a fixed date (this hack is needed because `fetch` gets moving targets). When this stopped working (it was a hack anyway), I resorted to rolling my own tarballs, which is not really ideal either.

Is there an official way to build an frozen version of V8? How do you guys build (e.g.) V8-5.8.283.32 and using the dependencies of the time of that release?

Without the ability to do this, it's difficult to conduct repeatable benchmarking experiments on V8.

Thanks

Mathias Bynens

unread,
Nov 27, 2017, 8:40:05 AM11/27/17
to v8-users
This is not a direct answer to your question, but we already host prebuilt `d8` binaries for Linux on 32-bit and 64-bit architectures. We plan on doing the same for other operating systems: https://bugs.chromium.org/p/v8/issues/detail?id=5918 By using a precompiled binary, you could bypass compiling from source together.

--
--
v8-users mailing list
v8-u...@googlegroups.com
http://groups.google.com/group/v8-users
---
You received this message because you are subscribed to the Google Groups "v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--

Mathias Bynens | V8 | Google Germany GmbH | Erika-Mann-Str. 33, 80636 München

Geschäftsführer: Paul Manicle, Halimah DeLaine Prado

Registergericht und -nummer: Hamburg, HRB 86891

Sitz der Gesellschaft: Hamburg


Diese E-Mail ist vertraulich. Falls sie diese fälschlicherweise erhalten haben sollten, leiten Sie diese bitte nicht an jemand anderes weiter, löschen Sie alle Kopien und Anhänge davon und lassen Sie mich bitte wissen, dass die E-Mail an die falsche Person gesendet wurde.

    

This e-mail is confidential. If you received this communication by mistake, please don’t forward it to anyone else, please erase all copies and attachments, and please let me know that it has gone to the wrong person.

Edd Barrett

unread,
Nov 27, 2017, 9:23:38 AM11/27/17
to v8-users
Hi Mathias,

Thanks for your swift response.


On Monday, November 27, 2017 at 1:40:05 PM UTC, Mathias Bynens wrote:
This is not a direct answer to your question, but we already host prebuilt `d8` binaries for Linux on 32-bit and 64-bit architectures. We plan on doing the same for other operating systems: https://bugs.chromium.org/p/v8/issues/detail?id=5918 By using a precompiled binary, you could bypass compiling from source together.

 
That's good to know, but for our purposes we really do need to build from source:

 * We have patches to grant access to the monotonic clock and performance counters.
 * The experiment should be fully repeatable from source.

I think it's something the V8 team should consider for the future.

Cheers

Jakob Kummerow

unread,
Nov 27, 2017, 2:06:47 PM11/27/17
to v8-users
The depot_tools system makes this easy, actually:

git checkout <your-version>
gclient sync
ninja -C out/<whatever> d8

(If you go back far enough before ninja was supported, replace the last command with the equivalent make/GYP based build.)


--
--
v8-users mailing list
v8-u...@googlegroups.com
http://groups.google.com/group/v8-users
---
You received this message because you are subscribed to the Google Groups "v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+u...@googlegroups.com.

Edd Barrett

unread,
Dec 6, 2017, 11:06:06 AM12/6/17
to v8-users


On Monday, November 27, 2017 at 7:06:47 PM UTC, Jakob Kummerow wrote:
The depot_tools system makes this easy, actually:

git checkout <your-version>
gclient sync
ninja -C out/<whatever> d8

(If you go back far enough before ninja was supported, replace the last command with the equivalent make/GYP based build.)

Thanks. I confirm that this works :)
Reply all
Reply to author
Forward
0 new messages