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