►
From YouTube: Node.js N-API Team meeting - June 7 2018
Description
A
A
A
C
A
A
E
E
I'm
thinking
that
what
we
may
want
to
do
is
put
these
slides
on
to
some
sort
of
online
a
slide
hosting
site,
and
then
that
way
we
can
collaborate
as
a
group
on
the
slides
and
then
we'd
have
them
available,
not
only
for
notes
summit
but
for
potential
future
workshops
as
well.
So
does
anybody
have
experience
with
online
slide
hosting
sites?
We.
D
E
A
E
E
E
E
A
C
A
A
That'd
be
good
because,
like
the
the
the
key
thing
I
think
is
we
discussed
the
concept
of
things
of
them
going
in
as
experimental
yep.
Another
define
that,
basically
you
know
you
can
you
can
use
those
experimental
ones
if
you
put
the
hash
define
and
then
we
take
when
we
take
them
out
of
under
the
hash,
define
that's
when
we
add
them
to,
like.
You
know
part
of
the
API,
as
in
this
number
that.
A
Good
because
otherwise,
the
management
of
the
adding
like
when
things
were
supported
in
what
version
actually
would
have
been
kind
of
tricky
yep
so
so
and
related
to
that
gabriel.
That's
what
I
was
referring
to
on
the
other
PR
when
I
was
thinking
the
new
api
is
to
help
you
use.
You
know
the
thread-safe
api's
yep.
It
would
be
nice
if
we
could
add
them
under
that
experimental
fine
right.
So
we
need
Kyle's
PR.
F
F
I
did
update
at
the
PR,
so
there
is
an
exact
to
start.
The
cut
like
I
went
with
nappy
underscore
experimental
as
a
separate
pound.
Fine
I
helped
it
doing
it
as
a
like
high
version
number
so
that
it
could
just
be
a
version
number,
but
that
kind
of
had
a
circular
reference
in
terms
of
includes
in
order
to
have
right.
A
F
A
F
F
F
F
F
F
F
The
big
thing
I'm
looking
at
now,
the
thing
I
need
to
wrap
up
is
the
documentation.
I
did
add.
A
new
field
to
the
experimental
API
is
in
the
documentation,
but
I
haven't
figured
out
what
to
represent
that
as
in
the
script
when
it's
generating
it
I
might
the
prevailing
thought
was
to
just
have
it
be
the
literal
string
experimental
like
I
added
a
new
field
to
the
Y
Amal
yeah.
F
A
A
F
I,
don't
think
so,
and
that's
where,
like
maybe
it
makes
sense,
I
didn't
necessarily
want
to
conflate
the
two
pieces
of
yeah
Mille,
but
we
could
make
it
that,
like
experimental,
would
override
version
it
worse
case.
If
that's
the,
if
there's
a
if
I,
don't
if
conflating
them
seems
like
a
bad
idea
like
because
one
is
a
list
of
numbers
and
the
other
or
a
list
of
quote-unquote
version
numbers.
So
just
throwing,
like
the
word
experimental
and
there's
kind
of
a
say,
magic
value
that
I
didn't
necessarily
want
to
go
down
that
path
and.
F
D
A
F
Yeah
I
think
that
that
makes
sense.
I
can
experiment,
with
a
couple
of
with
a
couple
of
options
for
that
I.
Don't
think
it's
too
far
away
from
landing,
I
think
I've
corralled
the
new
api's
and
updated
the
tests,
so
the
tests
for
the
experimental
API
is
now
need
to
have
the
Nappy
experimental
defined,
which
makes
sense
because,
yes,.
D
F
D
F
A
F
A
B
F
B
So
yeah,
okay,
okay,
good!
So.
A
A
F
A
F
F
F
A
A
D
D
There
is
there
is,
there
is
one
there
is
one
argument
in
favor
of
ending
it
to
an
API,
which
is
that
you,
you
don't
want.
Excuse
me,
you
don't
want
to
keep
having
to
retrieve
the
the
the
the
constructor
of
the
global
all
the
time.
If
we've
made
it
a
part
of
an
API,
you
could
catch
that
in
in
in
the
environment.
I'm,
not
sure.
If,
if,
if
know
that
on
API
has
any
kind
of
state
I
did.
F
F
D
F
C
D
D
A
D
A
D
D
E
A
D
D
D
I
mean
it's
true
yeah.
Well,
these
things,
these
things
are
database
types
right,
whereas
week
maps
are
not
database
types.
So
so
you
know
this
is
this?
Is
data
a
week?
Map
is,
is
sort
of
a
it's
a
class.
You
know
they
date
is
a
class
only
insofar
as
it
needs
more
functionality
than
a
primitive
class,
but
it
is
pretty
much
primitive.
So
so,
yes,
it
is
a
slope
I
agree,
but
but
perhaps
just
perhaps
and
I'm
not
I,
don't
feel
strongly
about
this.
We
can
go
this
much
down
that
slope.
D
A
F
B
A
C
A
G
A
E
The
post,
the
issue
so
from
last
week,
I
refined
the
proposed
solution
based
on
a
discussion
Gabriel
ant
and
I
had,
and
this
week
I
was
able
to
delve
much
deeper
into
the
implementation,
how
it
actually
works.
He
has
very.
It
has
quite
a
few
parallels
to
note
for
Egypt.
So
it's
it's
looking
very
familiar
to
me.
So
I
have
posted
an
issue.
I
I've
posted
an
issue
on
pre-build,
saying
that
we're
planning
to
do
this
work
asking
for
comments
and
I
I've
received
an
encouraging
comment
from
one
of
the
main
maintainer
x'.
E
E
A
E
E
D
E
Yeah,
what
I'm
trying
to
do
is
do
the
minimal
minimal
modifications
necessary
to
support
an
API.
Unlike
unlike
note,
pre
chip
pre
build
is
designed
to
do
multiple
builds
note.
Pre
chip
is
designed
to
do
one
build,
so
I'll
be
piggybacking
on
parts
of
the
implementation
that
are
already
there.
We
had
discussed
earlier.
The
idea
of
adding
you,
the
the
developer,
needs
to
communicate
to
pre
build
what
what
builds
at
once
now
in
node
pre
chip,
that's
done
through
the
package.json
file,
which
was
a
natural
way
to
do
it
for
nut
pre
chip.
E
Here
we're
taking
the
approach
that
you
would
specify
it
in
your
runtime
parameter
and
in
your
target
parameter.
So
what
I'm
proposing
is
with
the
runtime
parameter
to
the
command
line
tool?
You
would
specify
that
you're
requesting
an
EM,
API
built
and
then
under
target.
You
can
specify
the
specific
n
API
versions
that
you
wish
built
and
then
the
the
code
I
add
will
make
sure
that
that
happens
for
you
for
the
runtime.
D
D
A
E
A
E
D
D
B
E
E
A
D
That
that
sounds
like
the
build
tool
yeah
see
make.
They
have
a/c
make
okay,
okay,
so
that
that
may
actually
be
orthogonal
to
us,
because,
because
the
the
target,
the
target
decides
what
headers
to
get
right
right
and
it
doesn't
matter
what
you're
building
with
as
long
as
you're,
building
against
the
right,
headers,
okay
orthogonal
to
us.
Okay,.
D
E
And
then
they've
added
another
one
called
C
make
jeaious,
so
I
I'm
not
familiar
with
these
other
backends
and
so
like
I,
can't
guarantee
compatibility
with
those
but
III,
don't
know
what
the
ID
and
maybe
I'll
have
more
to
report
next
week
on
the
back
ends.
Maybe
that's
the
best
thing
to
do.
Do
they
have
they
have
tests
for
all
the
back
end
I'm.
D
E
D
Think
we
shouldn't,
because
you
know
that
it's
two
different
steps
one
is
to
set
up
the
environment
with
with
the
right
version
of
the
headers,
and
the
second
step
is
to
build
the
assuming
the
first
step
succeeded
right.
So,
though
we
simply
influence
influence
the
way
in
which
the
environment
is
set
up.
Right
like
where
do
you
grab
the
headers
from
yes.
E
D
A
D
E
E
A
D
D
E
A
D
E
A
D
Ok,
yes,
ok,
you
can
actually
you
can
actually
daisy
chain
it,
though
right
because
in
in
in
in
node
API,
we
have,
if
not
defined,
nappy
version,
then
defined
nappy
version
number
through
Lee
or
nobody
find
nappy
version
3
right.
So
the
same
thing
in
the
add-on.
If,
if
not
defined,
nappy
version,
then
define
a
pea
version
too,
and
then,
if
you're,
building
without
no
3G
or
without
pre
build,
then
then
you
will
be
defining
it
in
your
in
before
including
node
API
directly.
D
But
if
your
wildung,
if
you're
building
with
the
tool,
then
it
will
be
defined
on
the
command
line.
So
by
the
time
the
preprocessor
processes,
your
file,
it
will
already
be
defined.
So
so,
but
in
order
to
make
this
daisy
chaining
happen,
you,
the
the
the
the
name
of
the
preprocessor
directive
on
the
command
line,
has
to
be
the
same
as
the
name
of
the
preprocessor
directive
in
the
in
node
API,
dot
H.
So
that's
why
I'm
saying
it
would
make
sense
to
have
it
be
the
same
name
because
then
you
can
daisy.
D
A
A
D
You
do
that
without
no
pre
build
and
with
Kyle's
with
the
Isles
patch
is
you,
you
number
define
it
before.
You
include
node
API
dot
H,
but
whether
you
number
define
it
by
editing
the
text
file
and
inserting
the
text
before
including
node
API
dot,
H
or
whether
you
number
define
it
by
editing
your
binding
dot
chip
and
and
adding.
E
D
Defines
is
irrelevant,
it's
you,
you
achieve
the
same
thing
right.
The
bottom
line
is
it.
It
ends
up
being
defined
before
you
include
so
now
so
now,
there's
so
now
we
can
create
the
synergy
with
with
node
pre-build
because
it
can
provide
that
number
define
as
if
you
had
written
it
in
the
binding
dodge
it
right.
So
so
Jim
I
guess
in
terms
of
the
usage
you.
A
A
E
A
E
A
D
E
E
A
E
A
F
F
F
F
D
And
and
and
I
think
it
makes
sense
conceptually
as
well,
because
because
by
the
fact
that
that
we
are,
we
are
backwards
compatible,
you
can,
if
you,
if
you
artificially,
define
that
B
version
to
be
lower
than
what
node
advertises
it
to
be,
then
that
continues
to
be
true.
Note
no
does
have
a
lower
version.
Number,
if
you
say
note,
has
a
lower
version
number
precisely
because
they
are,
they
are
inclusive
and
backwards
compatible.
So
we're
redefining
an
existing.
D
F
A
A
D
F
F
A
Okay,
yeah
I
think
maybe
we'll
just
let's
just
think
a
bit
more
about
that,
but
I'm,
okay,
I
guess
we'll
go
with
that
for
now
right:
okay,.
E
F
D
F
F
F
F
D
F
A
Isn't
like
no
dpi
dot,
H
has
to
use
it
to
filter
out
what
functions
are
available.
Doesn't
it
so.
F
What
it
does
today
is
when
we
include
node
API
dot
H
in
node
API
dot
cc.
We
define
we
already
had
a
P
version
is
actually
already
defined
by
the
environment
because
it
cuz,
like
it
just
happens
to
be
it's
included
in
node
internal
dot
H,
if
I'm
remembering
correctly
so
like
it
picks
it
up
from
its
include
from
where
it's
included,
and
if
you
don't
define,
if
you're
in
a
situation
where
it
doesn't
get
to
find
it
all,
then
it
falls
back
and
says:
well,
I'm,
three
I'm
gonna
fall
back
to
three
right.
E
B
A
For
snappy
version
of
module,
headers
I
think
we
probably
talked
a
fair
amount
about
that.
Already
yeah
burning
down
list
of
issues
in
the
repo
I,
don't
know.
If
there's
any
specific
things
people
want
to
bring
up,
we
have
had
I
guess
the
one
I'll
mention
is:
I
am
going
to
submit
a
PR
for
the
documentation
because
our
our
worker,
a
sink
worker
API,
is
a
bit
confusing.
So
we
need
to
clarify
that.
D
Just
a
crash
that
we
fixed
recently-
that's
all
IIIi,
don't
actually
know
if
it
made
it
into
ten
four
or
not
because
miles
miles.
He
he
he
committed
the
ten-four
commit
after
mine,
but
I'm,
not
sure
if
that
automatically
means
that
ten-four
contains
it,
because
it
was
very,
very
close
to
the
publishing
day.
But
if
not,
it's
gonna
be
in
ten
for
one,
because
it's
it's
it's
Embry
micro,
so,
okay
and
it
was.
It
was
a
regression
in
the
ten
line
or
does.
D
Yes,
it's
it's!
It's
it's
very
subtle.
We
we!
We
have
this
macro
that
uses
the
environment.
You
know
to
call
into
a
module,
but
if
you
just
pass
the
environment
into
the
macro,
that's
obviously
text
substitution
right.
So
so,
if
you're
passing
it
in
such
a
way
that
you're
accessing
a
member
of
a
class
and
that
class
happens
to
be
destroyed
as
part
of
the
call,
then
then
afterwards
you,
you
cannot
really
use
it
anymore
and
that's
why
it
was
crashing.
So
you
always
need
to
copy
it
before
you
before
you
call
the
macro.
D
I
I
have
actually
half
a
mind
of
just
putting
the
copy
in
the
copy
statement
into
the
macro,
like
define
a
local
variable
copy,
the
value
and
then
and
then
use
that
in
the
macro,
because
we've
already
had
this
twice
like
once
in
the
finalizer,
because
obviously
the
finalizer
deletes
something
and
then
you
know,
and
if
you
pass
the
environment
as
a
member
of
that
which
gets
deleted,
you
get
the
same
crash
and
we've
had
exactly
such
a
crash
earlier
and
now
the
second
time
around
it's
crashing
in
acing.
So
using.
E
B
D
D
E
D
F
No
I
just
haven't
had
time
to
deal
with
the
the
one
constructor
thing
yet
I
did
a
little
bit
of
an
investigation
and
how
to
mark
things
deprecated
in
code,
because
I
would
want
it
to
generate
a
warning,
but
I
it
seems
like
I
was
gonna
I
needed
to
look
around
I
think
we
have
examples
in
our
code
where
that
has
been
done
so
I
was
earning
the
node
code,
so
I
was
gonna,
look
around
for
a
helpful
macro.
Hopefully
that
already
exists
in
Canada
and.