|
| 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 |
0 commit comments