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

Commit 2b9dc16

Browse files
committed
add minutes from 2015-11-19 meeting
1 parent 3b77a55 commit 2b9dc16

File tree

1 file changed

+169
-0
lines changed

1 file changed

+169
-0
lines changed

wg-meetings/2015-11-19.md

+169
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
November 19th 2015 - Node.js API WG Meeting
2+
================================================================================
3+
4+
* [YouTube recording](https://www.youtube.com/watch?v=3rszjGYpbyM)
5+
* [Hangouts Event](https://plus.google.com/events/cv3h505lip7aqvil4n5ri0kl8e8)
6+
* [issue for this meeting](https://github.com/nodejs/api/issues/11)
7+
* [previous meeting](https://github.com/nodejs/api/blob/master/wg-meetings/2015-10-23.md) - 2015-10-23
8+
9+
10+
Attendees
11+
================================================================================
12+
13+
* @pmuellr - Patrick Mueller (NodeSource)
14+
* @mhdawson - Michael Dawson (IBM)
15+
* @orangemocha - Alexis Campailla (Microsoft)
16+
* @obastemur - Oguz Bastemur (JxCore)
17+
* @Qard - Stephen Belanger (AppNeta)
18+
* @stefanmb - Stefan Budeanu (IBM)
19+
* @trevnorris - Trevor Norris (NodeSource)
20+
* @robpaveza - Rob Paveza (Microsoft)
21+
22+
23+
Agenda
24+
================================================================================
25+
26+
* Oguz B - I hope the second meeting focuses on public API more. It would not
27+
make API work separating from node.js entirely.
28+
29+
* Oguz B - AFAIK, JXcore's public API is the only proven approach available ATM
30+
and it works. IMHO a public API work shouldn't take much time. Cons/Pros etc. discuss and decide ? (Attention: node-ch and JXcore macro are private API!)
31+
32+
* https://github.com/nodejs/api/issues/10 - Native modules API:
33+
the FFI approach - Alexis C
34+
35+
* next steps - stand-alone chunks to iterate on - what are they?
36+
* datatypes? https://github.com/nodejs/api/blob/master/native/data_types.md
37+
* prototype building API on lower-level API (js || native)?
38+
39+
40+
Minutes
41+
================================================================================
42+
43+
44+
Public and Private APIs
45+
--------------------------------------------------------------------------------
46+
47+
[YouTube 3:56](https://youtu.be/3rszjGYpbyM?t=236)
48+
49+
Oguz:
50+
51+
General priorities:
52+
53+
1. private - reduce amount of work between native bits using shims
54+
2. public - native add-ons; nan as an example
55+
56+
Public API could have it's own types
57+
58+
Patrick: we need some concrete issues
59+
60+
Michael: What APIs are we talking about - the API we provide to modules?
61+
62+
Oguz: yes
63+
64+
Michael: need a full definition
65+
66+
Patrick: different forms of "definition"; C code, documentation, API
67+
modelling languages, ...
68+
69+
Michael: Oguz's current one is in C?
70+
71+
Oguz: current JxCore API isn't appropriate for public API
72+
73+
Rob: current API is V8; we should audit common modules to figure out what APIs
74+
we need
75+
76+
Trevor: still limitations; special VM APIs like GC notification
77+
78+
Patrick: maybe 80/20 is good enough for now
79+
80+
Trevor: how would this be "blessed", and if it has a performance impact, will
81+
never be blessed
82+
83+
Rob: should AIM to be macros and templates aimed at V8, so no performance impact;
84+
other impls might need to add C code
85+
86+
Patrick: let's create an issue for this
87+
88+
Oguz: 60% of this will be easy
89+
90+
Trevor: this approach is the most complicated way to get anything done; need to
91+
also get the all the existing modules converted
92+
93+
Rob: no existing modules are going to work with a new API anyway
94+
95+
Trevor: it's getting complicated; now we need to support multiple APIs
96+
97+
Oguz: SQLite is probably a good example of types of APIs external modules need
98+
99+
Patrick: we need an issue
100+
101+
Trevor: does other native headers (Chakra) exist in V8? Do we ship multiple
102+
versions of node?
103+
104+
Rob: no other native headers; runtimes act like drivers
105+
106+
Patrick: we need an issue
107+
108+
Rob: I volunteer *[pjm: not his exact words :-) ]*
109+
110+
Trevor: more actionable if consolidate we node header into a single header;
111+
one official header; also create a user-facing shim for V8, not specifically
112+
targeted for abstraction, just to get started
113+
114+
Patrick: what does the user-facing library look like?
115+
116+
Trevor/Michael/Rob: like nan, more API and ABI stable than nan, but can never be
117+
100% API and especially ABI stable, and can be included in node core. For
118+
native module authors. Eventually use that API to abstract over multiple JS
119+
implementations.
120+
121+
Patrick: I think we're talking about two main issues: abstracting JS engines and
122+
API for module authors. Same problem space, attacking from different ends.
123+
Let's get some issues created.
124+
125+
126+
FFI
127+
--------------------------------------------------------------------------------
128+
129+
[YouTube 38:44](https://youtu.be/3rszjGYpbyM?t=2324)
130+
131+
Alexis - FFI is invoking C functions from JS, most native modules could use
132+
this to do their work. Some issues have come up regarding performance issues,
133+
but there are some approaches which minimize impact on performance, such as
134+
using templates and having a compiler provide some glue, as suggested at
135+
https://github.com/nodejs/nan/issues/349#issuecomment-110569177
136+
137+
Patrick - there are some issues in node regarding getting Nate's FFI code into
138+
core.
139+
140+
Trevor - PR for FFI was already rejected as it touched too many internal things;
141+
also it needs to be a separate module so that it can be removed by someone who
142+
doesn't want it on their system (for security/safety reasons).
143+
144+
Michael - what does FFI solve
145+
146+
Rob/Alexis/Michael - Also need to handle calling from native code back into
147+
JavaScript.
148+
149+
Trevor/Patrick - Buffers as os memory; adds methods to Buffers; implies constraint
150+
that Buffers are allocated in memory and never moved; perhaps we need
151+
a separate thing from Buffer.
152+
153+
154+
wrap-up
155+
--------------------------------------------------------------------------------
156+
157+
[YouTube 52:09](https://youtu.be/3rszjGYpbyM?t=3129)
158+
159+
Patrick:
160+
161+
* create some minutes, issues to focus on particular subjects
162+
163+
* JS engine abstraction API
164+
* native module API for non-core modules
165+
* moving FFI forward
166+
167+
* next meeting? In January? No nays.
168+
169+
* create issue/doodle/gdoc for next meeting in a new issue

0 commit comments

Comments
 (0)