diff --git a/doc/ctc-meetings/2016-06-22.md b/doc/ctc-meetings/2016-06-22.md new file mode 100644 index 00000000000000..9e87b13b539fb3 --- /dev/null +++ b/doc/ctc-meetings/2016-06-22.md @@ -0,0 +1,151 @@ +# Node Foundation CTC Meeting 2016-06-22 + +## Links + +* **Audio Recording**: TBP +* **GitHub Issue**: https://github.com/nodejs/node/issues/7366 +* **Minutes Google Doc**: +* _Previous Minutes Google Doc: _ + +## Present + +* Bradley Meck @bmeck (observer/GoDaddy/TC39) +* Chris Dickinson @chrisdickinson (CTC) +* Evan Lucas @evanlucas (CTC) +* James M Snell @jasnell (CTC) +* John-David Dalton @jdalton (observer/Lodash/Microsoft) +* Yuval Brik @jhamhader (observer) +* Josh Gavant @joshgav (observer/Microsoft) +* Michael Dawson @mhdawson (CTC) +* Brian White @mscdex (CTC) +* Ali Ijaz Sheikh @ofrobots (CTC) +* Shigeki Ohtsu @shigeki (CTC) +* Steven R. Loomis @srl295 (observer/IBM/ICU) +* Trevor Norris @trevnorris (CTC) +* Rich Trott @Trott (CTC) + +## Agenda + +Extracted from **ctc-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. + +### nodejs/node + +* Node 6 fs.realpath behavior changes [#7175](https://github.com/nodejs/node/issues/7175) + +## Standup + +* Bradley Meck @bmeck (observer/GoDaddy/TC39) + * Need for APM / JIT Cache hooks investigation + * Investigation into VM support for V8 and ES Modules +* Chris Dickinson @chrisdickinson (CTC) + * Keeping track of ES Modules proposals + * tooling gn to be npm installable +* Evan Lucas @evanlucas (CTC) + * working on security fixes + * looking for ways to streamline landing commits +* James M Snell @jasnell (CTC) + * Vacation last week (worked on an experimental http/2 impl) + * Working on WHATWG URL implementation + * Various other performance related and doc PRs + * And a heads up.. Will be on vacation again the 2nd and 3rd weeks of July. +* John-David Dalton @jdalton (observer/Lodash/Microsoft) + * Retooled proposal to simplify it and make it more generic so it will work with things other than just script and module + * Babel now supports export {} and therefore supports Unambiguous Modules proposal + * Pinged some v8 devs to ask about impact there + * Met with TypeScript folks too to discuss things that are a bit out of the scope of Unambiguous JavaScript but still modules + * Initial round of feedback on Unambiguous JavaScript. Will be in JavaScript Weekly tomorrow. +* Josh Gavant @joshgav (observer/Microsoft) + * hacking on inspector and tracing stuff + * es6 modules a bit + * monitoring issues, PRs, etc. +* Michael Dawson @mhdawson (CTC) + * Chasing PPC machine issues + * Chasing new AIX machines (expect this month) + * Contributing to ABI stable module API PoC (NaN examples 1-8 now work) + * Misc reviews/commenting + * misc PRs/lands + * Keeping up with issues +* Brian White @mscdex (CTC) + * Reviewing PRs/issues +* Shigeki Ohtsu @shigeki (CTC) + * Reviewing just one PR for root cert update. +* Steven R. Loomis @srl295 (observer/IBM/ICU) + * helping @jasnell (a little) with https://github.com/nodejs/node/pull/7355 +* Trevor Norris @trevnorris (CTC) + * Additional work on the AsyncWrap EP + * Misc PR reviews +* Rich Trott @Trott (CTC) + * CO: Continuous Onboarding (welcome @RReverser!) + * CI: Investigating and fixing flaky tests as time allows +* Ali Ijaz Sheikh @ofrobots(CTC) + * Working on FFI, and other miscellaneous things. + + +## Minutes + +### Review of last meeting + +* url: return valid file: urls fom url.format() [#7234](https://github.com/nodejs/node/pull/7234) +* http: don't inherit from Object.prototype [#6102](https://github.com/nodejs/node/pull/6102) +* ES6 Modules + +### fs.realpath + +- https://github.com/nodejs/node/issues/7175 +- https://github.com/nodejs/CTC/issues/9 +- https://github.com/nodejs/node/issues/7192 +- https://github.com/nodejs/node/issues/7044 +- https://github.com/nodejs/node/issues/7294 + +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. + +We chose libuv realpath because it’s much more performant. + +Options: +- Revert to old behavior. Would lose perf gains. Would be semver-major change. +- Add new method e.g. `realpath2` which uses old behavior. +- **Keep new behavior and add logic in Node to handle new/unexpected errors.** + +@jasnell - We did a semver-major revert for the symlink issue.
+@trevnorris - No need to revert, just handle the errors.
+@jasnell - Do we really know what the errors are so we can be sure we’re handling all of them?
+@trevnorris - we can compare to old impl.
+@jasnell - Add an option to the options object to suppress errors, turn on by default.
+ +**@trevnorris will work on option 3.** + +Post-mortem: https://github.com/nodejs/CTC/issues/9 +- Postpone till Rod is present. +- @jasnell - We didn’t follow typical deprecation path for `cache` parameter change. + + +### ES6 modules + +- https://github.com/bmeck/UnambiguousJavaScriptGrammar + +- Any code with `import` or `export` is a module, otherwise a script. +- `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. +- 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. +- TC39 could provide a “recommendation” or endorsement supporting this. They may suggest a spec extension. + +@bradleymeck - still need modules.root for fat packages. + +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. + +@trevnorris analyzed perf hit of double parsing and found max 25% perf hit. + +In-band detection (from the code itself) is preferable to out-of-band detections (e.g. package.json, file extension). + +CJS and ES6 semantic interoperability: Bradley is working on this, working with WHATWG Loader spec and V8. +- `this` value +- live bindings for getters (get updated values) (?) +- immutability - hooks for APM providers to wrap original functions. To be handled by WHATWG Loader spec. + +**@jdalton - How do we finalize consensus on this?** +- **PR to change [node-eps:/002-es6-modules.md](https://github.com/nodejs/node-eps/blob/master/002-es6-modules.md)** + +### Q/A on public fora +None. + +### Next Meeting +2016-06-29