Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-19790] Android: Update V8 to latest LTS release

GitHub Issuen/a
TypeEpic
PriorityHigh
StatusClosed
ResolutionFixed
Resolution Date2016-07-27T13:43:21.000+0000
Affected Version/sn/a
Fix Version/sRelease 6.0.0
ComponentsAndroid
Labelsbreaking-change
ReporterChristopher Williams
AssigneeChristopher Williams
Created2015-10-26T14:32:49.000+0000
Updated2016-09-28T00:02:34.000+0000

Description

Our current version of V8 that Android (and native modules) are built against is V8 3.9.24.29. That version is from mid-May 2012. It is very, very out of date. We should move to a more recent Long Term Support version of V8 engine to gain ES6 functionality as well as significant performance increases. It's worth noting that the is a major change and will break backwards compatibility of native modules, and _may_ force us to drop support for older Android releases. See https://en.wikipedia.org/wiki/Google_Chrome_release_history where it looks like Chrome app dropped support for Android 4.0 with the 43.0.257 release (which uses V8 4.3.61). Here's the changelog up to 3.31.1: https://code.google.com/p/v8/source/browse/trunk/ChangeLog Here's the changelog for 4.8.151: https://github.com/v8/v8/blob/4.8.151/ChangeLog

Comments

  1. Christopher Williams 2016-02-25

    So, to find the stable release of V8 to use (from https://gist.github.com/domenic/aca7774a5d94156bfcc1 ): - first you go to: https://omahaproxy.appspot.com - Look for the Android stable row, then go all the way to the right and get the v8_version value (right now it is 4.8.271.17) - Take the major.minor version and then look at the commits on that branch's history at https://github.com/v8/v8/commits/4.8-lkgr (replace 4.8 with whatever branch version came from the table above) - Now look through the commits for the exact version from the value above for android. It *may not* be the latest patch release (i.e. right now there's a 4.8.271.20, but android stable is at 4.8.271.17 which is 4 commits back)
  2. Christopher Williams 2016-02-25

    some handy dandy v8 references: Some older blog posts, uses older v8 API: - http://web.archive.org/web/20140727091841/http://create.tpsitulsa.com/blog/2009/01/31/persistent-handles/ - http://web.archive.org/web/20150217015842/http://create.tpsitulsa.com/blog/2009/01/29/v8-objects Node add-ons examples: Not the exact same , since they use Nan and have node-specifics mixed in too. - https://github.com/nodejs/node-addon-examples V8 API Reference: http://v8.paulfryzel.com/docs/master/index.html V8 API changes overview: https://docs.google.com/document/d/1g8JFi8T_oAE_7uAri7Njtig7fKaPDfotU6huOa1alds/edit
  3. Christopher Williams 2016-07-27

    Resolving since all sub-tasks except TIMOB-23550 are resolved. That ticket would be a nice to have, but is not required for rolling out the V8 update.
  4. Lokesh Choudhary 2016-09-28

    Verified the fix. Ran a smoke on android & no issues found. Closing. Environment: Appc Studio : 4.8.0.201609191928 Ti SDK : 6.0.0.v20160923122318 Ti CLI : 5.0.9 Alloy : 1.9.1 MAC El Capitan : 10.11.6 Appc NPM : 4.2.8-7 Appc CLI : 6.0.0-48 Node: 4.4.4 Nexus 6 - Android 6.0.1

JSON Source