doc: add CTC meeting minutes 2016-06-22 · nodejs/node@6d9a500

1+

# Node Foundation CTC Meeting 2016-06-22

2+3+

## Links

4+5+

* **Audio Recording**: TBP

6+

* **GitHub Issue**: https://github.com/nodejs/node/issues/7366

7+

* **Minutes Google Doc**: <https://docs.google.com/document/d/1X9PTcpYgTKJO-PRKOLBrL4fIV-7XDR0x71FAxJWn0II>

8+

* _Previous Minutes Google Doc: <https://docs.google.com/document/d/1e7JdFHVtMtW9_o0Gi3NNz6g7TK50q4u9LYKFzBeHOQ8>_

9+10+

## Present

11+12+

* Bradley Meck @bmeck (observer/GoDaddy/TC39)

13+

* Chris Dickinson @chrisdickinson (CTC)

14+

* Evan Lucas @evanlucas (CTC)

15+

* James M Snell @jasnell (CTC)

16+

* John-David Dalton @jdalton (observer/Lodash/Microsoft)

17+

* Yuval Brik @jhamhader (observer)

18+

* Josh Gavant @joshgav (observer/Microsoft)

19+

* Michael Dawson @mhdawson (CTC)

20+

* Brian White @mscdex (CTC)

21+

* Ali Ijaz Sheikh @ofrobots (CTC)

22+

* Shigeki Ohtsu @shigeki (CTC)

23+

* Steven R. Loomis @srl295 (observer/IBM/ICU)

24+

* Trevor Norris @trevnorris (CTC)

25+

* Rich Trott @Trott (CTC)

26+27+

## Agenda

28+29+

Extracted from **ctc-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting.

30+31+

### nodejs/node

32+33+

* Node 6 fs.realpath behavior changes [#7175](https://github.com/nodejs/node/issues/7175)

34+35+

## Standup

36+37+

* Bradley Meck @bmeck (observer/GoDaddy/TC39)

38+

* Need for APM / JIT Cache hooks investigation

39+

* Investigation into VM support for V8 and ES Modules

40+

* Chris Dickinson @chrisdickinson (CTC)

41+

* Keeping track of ES Modules proposals

42+

* tooling gn to be npm installable

43+

* Evan Lucas @evanlucas (CTC)

44+

* working on security fixes

45+

* looking for ways to streamline landing commits

46+

* James M Snell @jasnell (CTC)

47+

* Vacation last week (worked on an experimental http/2 impl)

48+

* Working on WHATWG URL implementation

49+

* Various other performance related and doc PRs

50+

* And a heads up.. Will be on vacation again the 2nd and 3rd weeks of July.

51+

* John-David Dalton @jdalton (observer/Lodash/Microsoft)

52+

* Retooled proposal to simplify it and make it more generic so it will work with things other than just script and module

53+

* Babel now supports export {} and therefore supports Unambiguous Modules proposal

54+

* Pinged some v8 devs to ask about impact there

55+

* Met with TypeScript folks too to discuss things that are a bit out of the scope of Unambiguous JavaScript but still modules

56+

* Initial round of feedback on Unambiguous JavaScript. Will be in JavaScript Weekly tomorrow.

57+

* Josh Gavant @joshgav (observer/Microsoft)

58+

* hacking on inspector and tracing stuff

59+

* es6 modules a bit

60+

* monitoring issues, PRs, etc.

61+

* Michael Dawson @mhdawson (CTC)

62+

* Chasing PPC machine issues

63+

* Chasing new AIX machines (expect this month)

64+

* Contributing to ABI stable module API PoC (NaN examples 1-8 now work)

65+

* Misc reviews/commenting

66+

* misc PRs/lands

67+

* Keeping up with issues

68+

* Brian White @mscdex (CTC)

69+

* Reviewing PRs/issues

70+

* Shigeki Ohtsu @shigeki (CTC)

71+

* Reviewing just one PR for root cert update.

72+

* Steven R. Loomis @srl295 (observer/IBM/ICU)

73+

* helping @jasnell (a little) with https://github.com/nodejs/node/pull/7355

74+

* Trevor Norris @trevnorris (CTC)

75+

* Additional work on the AsyncWrap EP

76+

* Misc PR reviews

77+

* Rich Trott @Trott (CTC)

78+

* CO: Continuous Onboarding (welcome @RReverser!)

79+

* CI: Investigating and fixing flaky tests as time allows

80+

* Ali Ijaz Sheikh @ofrobots(CTC)

81+

* Working on FFI, and other miscellaneous things.

82+83+84+

## Minutes

85+86+

### Review of last meeting

87+88+

* url: return valid file: urls fom url.format() [#7234](https://github.com/nodejs/node/pull/7234)

89+

* http: don't inherit from Object.prototype [#6102](https://github.com/nodejs/node/pull/6102)

90+

* ES6 Modules

91+92+

### fs.realpath

93+94+

- https://github.com/nodejs/node/issues/7175

95+

- https://github.com/nodejs/CTC/issues/9

96+

- https://github.com/nodejs/node/issues/7192

97+

- https://github.com/nodejs/node/issues/7044

98+

- https://github.com/nodejs/node/issues/7294

99+100+

When we made changes to rely on libuv realpath it was a semver-major change which introduced new errors and removed `cache` argument. This broke some ecosystem modules, notably `glob`. Also broke some path-related stuff in Windows.

101+102+

We chose libuv realpath because it’s much more performant.

103+104+

Options:

105+

- Revert to old behavior. Would lose perf gains. Would be semver-major change.

106+

- Add new method e.g. `realpath2` which uses old behavior.

107+

- **Keep new behavior and add logic in Node to handle new/unexpected errors.**

108+109+

@jasnell - We did a semver-major revert for the symlink issue.<br />

110+

@trevnorris - No need to revert, just handle the errors.<br />

111+

@jasnell - Do we really know what the errors are so we can be sure we’re handling all of them?<br />

112+

@trevnorris - we can compare to old impl.<br />

113+

@jasnell - Add an option to the options object to suppress errors, turn on by default.<br />

114+115+

**@trevnorris will work on option 3.**

116+117+

Post-mortem: https://github.com/nodejs/CTC/issues/9

118+

- Postpone till Rod is present.

119+

- @jasnell - We didn’t follow typical deprecation path for `cache` parameter change.

120+121+122+

### ES6 modules

123+124+

- https://github.com/bmeck/UnambiguousJavaScriptGrammar

125+126+

- Any code with `import` or `export` is a module, otherwise a script.

127+

- `modules.root` aspect removed, so “fat packages” (i.e. incl. both ES6 and CJS) are not addressed. Recommendation is to use one or the other and transpile as needed. Or discuss `modules.root` separately.

128+

- Users can explicitly specify module goal in package.json. This way even if dev removes all `import/export` from their code it’s still treated as a module.

129+

- TC39 could provide a “recommendation” or endorsement supporting this. They may suggest a spec extension.

130+131+

@bradleymeck - still need modules.root for fat packages.

132+133+

What about bytecode caching? Provide hooks to allow user to handle as desired. That means caching is in userland. Might split this into separate proposal.

134+135+

@trevnorris analyzed perf hit of double parsing and found max 25% perf hit.

136+137+

In-band detection (from the code itself) is preferable to out-of-band detections (e.g. package.json, file extension).

138+139+

CJS and ES6 semantic interoperability: Bradley is working on this, working with WHATWG Loader spec and V8.

140+

- `this` value

141+

- live bindings for getters (get updated values) (?)

142+

- immutability - hooks for APM providers to wrap original functions. To be handled by WHATWG Loader spec.

143+144+

**@jdalton - How do we finalize consensus on this?**

145+

- **PR to change [node-eps:/002-es6-modules.md](https://github.com/nodejs/node-eps/blob/master/002-es6-modules.md)**

146+147+

### Q/A on public fora

148+

None.

149+150+

### Next Meeting

151+

2016-06-29