Skip to content
This repository has been archived by the owner on Nov 21, 2018. It is now read-only.

Update io.js v1.1.0 and node v0.12.0 V8 versions #98

Closed

Conversation

ruimarinho
Copy link

Closes #124.

@ruimarinho ruimarinho force-pushed the support/update-node-v8-version branch from ce508fe to a012b06 Compare January 21, 2015 20:10
@ruimarinho
Copy link
Author

@domenic do you have a chance to review this?

@domenic
Copy link
Contributor

domenic commented Jan 21, 2015

I never understood why were were comparing to a hypothetical future Node 0.12 release anyway. We should just compare to the latest stable, 0.10.35.

@Fishrock123
Copy link
Contributor

I agree with domenic.

@therebelrobot
Copy link
Contributor

👍 to @Fishrock123 and @domenic

@ruimarinho
Copy link
Author

Well, I guess it was due to the fact that the last V8 upgrade on the node 0.10 branch was done such a long time ago (one and a half years ago to v3.14.5.9) that it didn't sound like a fair comparison at the time of writing. 0.11.15 is supposed to be the RC version of 0.12, but who knows how many more months will it take for that to happen.

I'm fine with targeting the content for 0.10.35 and it seems like we already have two +1's from Collaborators too, so I'll go ahead and search the internet archives for V8 v3.14 :-).

@domenic, on a side note, I've noticed that 0.11.15 is shipping with V8 3.28.73 which is currently an abandoned version (the branch head of 3.28 is 3.28.71.19). Do you think it's worth to file that in?

@domenic
Copy link
Contributor

domenic commented Jan 21, 2015

Do you think it's worth to file that in?

Not sure what "file that in" means?

@ruimarinho
Copy link
Author

To submit an issue to joyent/node's repository.

@domenic
Copy link
Contributor

domenic commented Jan 21, 2015

Oh. Shrug. My cares about joyent/node have plummeted to absolute zero.

@ruimarinho
Copy link
Author

So V8 3.14 does not have any ES6 feature completed, so it seems pointless to compare io.js with [email protected] with the --harmony since literally no one is using that. However, [email protected] with the --harmony flag is commonly used (even in production) due to the support for generators that ignited projects and communities like koa and co.

What do you think about adding a small paragraph about [email protected]'s V8 version (for comparison) but keep [email protected]'s info without references to 0.12?

@domenic
Copy link
Contributor

domenic commented Jan 22, 2015

So V8 3.14 does not have any ES6 feature completed, so it seems pointless to compare io.js with [email protected] with the --harmony since literally no one is using that.

Agreed. It's more useful to compare io.js to node.js. io.js has ES6 features, and node.js does not.

What do you think about adding a small paragraph about [email protected]'s V8 version (for comparison) but keep [email protected]'s info without references to 0.12?

I might keep something very minimal, without mentioning versions at all. E.g., "If you ever used the unstable Node 0.11.x series with the --harmony flag, you'll notice this is very different behavior."

@mgol
Copy link

mgol commented Feb 7, 2015

So, Node.js 0.12 has been released; it contains v8 3.28.73 (why is there the 4th number in the version missing?...). This PR should be modified to say shipped instead of will be shipped and merged.

@mikeal
Copy link
Contributor

mikeal commented Feb 7, 2015

well, Joyent didn't write up anything about the ES6 features now available in the 6 month old version of v8 they shipped so someone would have to manually figure that out in order to write a comparison :(

@mgol
Copy link

mgol commented Feb 7, 2015

I'll go ahead and search the internet archives for V8 v3.14

@ruimarinho You probably don't need it now that Node 0.12 has been released but it's 3.14.5.9 (the branch that landed in Chrome 24).

It's easy to check if you use nvm. :)

$ nvm exec 0.10 node -p process.versions.v8
Running node v0.10.36
3.14.5.9

(to install Node 0.10: nvm install 0.10)

@mgol
Copy link

mgol commented Feb 7, 2015

well, Joyent didn't write up anything about the ES6 features now available in the 6 month old version of v8 they shipped so someone would have to manually figure that out in order to write a comparison :(

Yeah, weird. :/ However, as far as I understand it should more or less match Chrome 38. In particular, it doesn't have generators.

@snostorm
Copy link
Contributor

snostorm commented Feb 7, 2015

In general we should address 0.12 dropping in a few ways through the product/public relations. That long-awaited release is going to gain a lot of press itself and possibly create some confusion. "Well, io.js is only based on v0.10... but the new Node.js™ is based on v0.11!"

Hmmm, this aspect should be a new issue/discussion. Anyway, re: the version, lets get this PR update or an alternative one to start addressing this specific development.

@mgol
Copy link

mgol commented Feb 7, 2015

@snostorm Sure. However, what's currently on the site is incorrect and v8 3.28 is still putting most unfinished stuff behind --harmony:

  --harmony (enable all harmony features (except proxies))
        type: bool  default: false

contrary to io.js's v8 version:

  --harmony (enable all completed harmony features)
        type: bool  default: false

so most of the description should be correct besides version numbers. IMO v8 mentions should be updated on the site so that it's what we ended up with and the rest, public relations etc. can be discussed separately.

At least that's my humble opinion. :)

@mikeal
Copy link
Contributor

mikeal commented Feb 7, 2015

Don't worry about the messaging side of it. I'm quite surprised at how little press 0.12 is getting at the moment (I have a theory about why that is and it will probably change on Tuesday).

As far as messaging, the differences between 0.12 and 0.10 are similar (outdated v8 and libuv). There are no improvements in 0.12 that are not in io.js and node.js is still lagging behind on shipping supported versions of its dependencies.

@ruimarinho
Copy link
Author

I'm updating this now with the content from #124 as well. I was reluctant for more updates as the recent release cycle of 0.11.x was abnormal.

</div>

<div class="faq-item">

<h2 class="faq-title">No more --harmony flag</h2>
<div class="faq-body">
<p>On joyent/[email protected] (V8 3.26), the <code>--harmony</code> runtime flag enabled all <strong>completed</strong>, <strong>staged</strong> and <strong>in progress</strong> ES6 features together, in bulk (with the exception of nonstandard/non-harmonious semantics for <code>typeof</code> which were hidden under <code>--harmony-typeof</code>). This meant that some really buggy or even broken features like <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy">proxies</a> were just as readily available for developers as <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function*">generators</a>, which had very little or even no known-issues. As such, it was best practice to either enable only certain features by using specific runtime harmony feature flags (e.g. <code>--harmony-generators</code>), or simply enable all of them and then use a restricted subset.</p>
<p>On joyent/[email protected] (V8 3.28), the <code>--harmony</code> runtime flag enabled all <strong>completed</strong>, <strong>staged</strong> and <strong>in progress</strong> ES6 features together, in bulk (with the exception of <code>proxies</code> which were hidden under <code>--harmony-proxies</code>). This meant that some really buggy or even broken features like <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions">arrow functions</a> were just as readily available for developers as <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function*">generators</a>, which had very little or even no known-issues. As such, it was best practice to either enable only certain features by using specific runtime harmony feature flags (e.g. <code>--harmony-generators</code>), or simply enable all of them and then use a restricted subset.</p>

This comment was marked as off-topic.

This comment was marked as off-topic.

@ruimarinho ruimarinho force-pushed the support/update-node-v8-version branch from a012b06 to 35e07c1 Compare February 8, 2015 04:02
@ruimarinho
Copy link
Author

Rebased and updated with the new V8 versions for both io.js 1.1.0 and node 0.12.0. I also double-checked that the features enabled via the --es_staging flag on io.js continue to be up-to-date (no changes), as well the shipping features (no changes too).

@ruimarinho ruimarinho changed the title Update expected node 0.12 V8 version Update io.js v1.1.0 and node v0.12.0 V8 versions Feb 8, 2015
@ruimarinho
Copy link
Author

Interestingly, though, they've shipped 0.12 with an unsupported V8 version, considering the branch head for 3.28 is actually sitting at 3.28.71.19.

@Fishrock123 Fishrock123 mentioned this pull request Feb 8, 2015
Fishrock123 pushed a commit that referenced this pull request Feb 9, 2015
@Fishrock123
Copy link
Contributor

landed in 4486471 -- thanks!

@Fishrock123 Fishrock123 closed this Feb 9, 2015
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants