►
From YouTube: 2021-05-21-Node.js Node-API Team meeting
Description
No description was provided for this meeting.
If this is YOUR meeting, an easy way to fix this is to add a description to your video, wherever mtngs.io found it (probably YouTube).
A
So
welcome
to
the
node.js
node
api
team
meeting
for
march
21st
2021
hiya
nikhil
as
well,
and
we
will
go
through
our
standard
approach
of
looking
at
what
we've
got
tagged
for
the
the
agenda
before
we
get
started
any
announcements
that
people
would
like
to
share.
B
Make
this
this
announcement
great.
A
A
A
A
B
A
B
B
Two
new
issues
on
another
donald
api
and
that
I
won't
discuss.
B
The
last
the
the
the
thought,
the
the
the
last
two
memory
leak
and
it
don't
build
using
an
api.
So
starting
from
here.
D
Okay,
yeah
that
one
looks
important
yeah,
because.
B
So,
essentially,
what
and
the
suit
is
that
they
compiled
the
native
adona
using
zcc
6.3
right
all
worked,
but
using
the
gcc
10
this,
the
native
add-on,
does
not
work
for
and
now
they
have
okay.
So
if
you
go
below.
B
B
Okay,
there
is
this
symbol
and
place
and
score
back
that
is
removed
in
gcc
time,
but
right
yeah.
B
I
I
I
it's
not
a
cyborg
that
we
exported
by
the
core
of
node.
Is
it.
C
C
A
It's
interesting
so
existed
in
gcc63
and
deleted
intent.
B
So
if
you,
if
you
try
to
load
the
same
addon
compiled
with
gcc
6.3,.
B
A
Well,
I
think
it's
because
they're
trying
to
run
the
add-on
with
gcc
10..
So
it's
not
that,
like
the
runtime,
that's
available
in
their
environment,
is
gcc
10
right.
C
B
B
I
I
saw
on
twitter
other
people
that
yeah
yeah
the
same
thing
and
that
every
time
we
have
a
major
reason
of
ccc,
they
broke
the
abi.
But
right.
C
Well,
one
possible
solution
is
to
j
is
to
just
not
use
the
standard
library
in
our
headers,
unless
we
can
be
certain
that
what
we're
using
is
not
a
library
function,
but
rather
just
a
an
inline
header
of
c
plus.
It
may
make
it
a
lot
more,
a
lot
less
convenient
to
to
to
to
write
this
code
and
to
maintain
this
code,
but
it
may
be
the
only
option
if,
if
c,
plus,
plus
breaks
abi,
I
mean
that's
just
that's
really
pulling
the
carpet
out
from
under
us.
C
E
E
Veteran
is
back
it's
it's
part
of
the
standard
library,
yeah.
B
E
E
It
can
be
add-on
itself
which
may
be
compiled
against
this
library.
A
soft
file
we've
seen
it
in
the
past,
like
we
like
gcc,
changing
their
so
files
standard
library
files
and
whatever
code
compiled
against
gcc
lab
kind
of
dynamic
leaps,
effectively
breaks
to
run
so
recommendation,
which
would
they
do
connect
some
internal
groups
using
static
libraries
static,
linking
instead
of
dynamic
linking
to
avoid
these
issues.
A
C
I'm
checking
okay,
get
grep,
minus
and
capital
h
in
place
back
is
not
is
we
we
don't
make?
Use
of
him
plays
back
okay,
so
in
this
case
that
one
symbol
is
not
what's
the
other
one,
the
worse
there
were
several.
C
B
C
A
A
C
So
it
sounds
like
we're
not
actually,
okay,
we're
not
actually
linking
against
the
standard
c
plus
library,
but
we're
getting
these
symbols
from
node
and
if
node
was
built
with
a
newer
version
of
c
plus,
it
no
longer
provides
these
or
with
a
newer
version
of
g
plus
plus.
It
no
longer
provides
these
symbols.
B
So
you
can
set
on
binding
jeep
the
lib
ctrl
that
you
you,
you
need.
C
B
C
B
C
Let's
find
out
where
was
that
documentation.
A
C
A
C
The
holes
well,
actually,
no,
not
necessarily
I'm
not
sure,
is
the
linker
able
to
to
sort
of
a
break
apart
like
like
a
a
static
archive
and
only
grab
the
stuff
that
is
actually
being
called,
because
I
know
it
does
that
for
object
files.
I
don't
know
if
it
if
it
grabs,
archives,
wholesale
and
just
sort
of
glues
them
on
the
end
of
the
executable.
A
D
C
B
C
Right,
then,
is
it
going
to
open
up
the
open
up
that
archive
and
trace
all
the
unresolved
symbols
from
from
all
the
objects,
essentially
and
and
transfer,
only
those
symbols
to
the
final
add-on
that
were
actually
being
used
out
of
the
archive.
So
does
it
sort
of.
A
C
A
C
Super
recommended:
well,
I
mean
it's:
it's
not
bad
right
like
well.
What.
C
B
B
C
B
So
it's
not
a
problem
overloaded
on
api
or
the
node
api.
B
It's
in
these
in
this
door
that
they
are
using
the
employees
back.
B
We
can
reproduce
something
creating
a
simple
native
add-on
and
use
employees
back
and
see
if
we
have
the
same
the
same
same
problem
on
on
note
16
right.
B
So
it's
it's
a
way
to
to
investigate
the
the
probe.
A
E
E
I
was
wondering
what
was
my
change
there,
but
in
place
back
can
be
removed
because
one
part
of
the
standard,
but
I
believe
what
happened
lately
this
some
of
this
collection
methods
became
constant
expression
and
I
wonder
if
what
actually
changed,
that
the
method
was
not
removed,
but
signature
changed
because
of
his
const
expression.
Addition,
mostly
what
happened
and
if
it's
constant
expression,
part
of
the
signature,
it's
a
mangled
name
effectively.
E
C
There
are
multiple
you
can
have,
I
think,
multiple
versions
of
of
the
c
plus
standard
library,
but
but
your
your
your
ldd
has
to
be
declared
such
so
so,
like
yeah
chances
are,
if
you
built
on
an
older
system,
then
your
ldd
will
point
to
like
the
best
td
c,
plus
dot
so
dot
five
instead
of
dot
so
dot
six,
and
so
it
will
request
that
shared
library,
by
name
and
so
on,
the
new
system.
If
you
have
them
both,
then
then
it'll
work.
E
It's
probably
another
suggestion:
if
we
do,
we
don't
want
people
to
use
static,
linkings,
and
maybe
there
is
a
way
to
kind
of
say
that
for
the
future
compatibility
they
can
add-ons
must
always
point
to
the
same
version
of
standard.
C
Well:
okay,
okay,
so
I
I
just
checked
and
and
hours
points
to
lib,
stdc,
plus
plus
dot,
so
dot
six
right.
So
that's
a
pretty
wide
swath
of
versions.
So
if
the
contents
of
lib
std,
c,
plus,
plus
dot
so
dot
six
changes
in
a
in
a
breaking
fashion,
then
they
are
violating
the
contract
because
then
it
should
be
called
the
best
dc
plus
plus.7.
C
C
A
C
In
the
issue
or
well,
the
thing
is
the
thing
is
I
just
checked
like
I
did
an
ldd
on
on
our
test
bindings
right
and
they
depend
directly
on
lib,
stdc
plus.6,
so
the
symbols
should
be
coming
from
the
best
ddc
plus
plus.so.6,
because
the
l
open
first
loads,
all
the
dependent
dlls
before
attempting
to
find
the
symbols
in
the
global
namespace,
and
I
don't
believe,
node
exports,
these
symbols.
A
C
Well,
as
a
weak
symbol,
how
can
you
export
something
as
a
weak
symbol?
Wait
a
minute
wait,
a
minute
that
I
mean
you
import
something
as
a
weak
symbol,
and
then
you
leave
open
the
possibility
that
it's
null
but
but
exporting.
It
is
a
weak
symbol
like
basically
saying
if
it's
not
there,
then
use
mine.
C
C
This
is
also,
as
far
as
I
can
tell.
We
don't
export
anything
from
the
standard
library.
I
just
did
an
n
minus.
B
A
B
Yeah,
it's
it's
a
connector
for
the
b2.
It's
a
right.
B
C
A
C
C
A
A
A
C
C
C
I
I
could
probably
yeah
I
could
probably
well
no
I'm.
A
A
C
Well,
for
what
it's
worth
no
10
doesn't
doesn't
do.
C
A
C
A
A
A
E
But
I
think,
like
this
issue,
yeah.
B
E
To
know
the
api
itself,
it's
pretty
much.
What
they're
saying
is
node
node.js
was
used
to
export
this
re-export
with
symbols.
A
A
C
A
D
B
It's
a
memory
leak
issue,
folks.
A
A
A
B
I
just
saw
the
issue
one
hour
ago.
I
didn't
have
the
time
to
to
see.
E
Yeah
we
have
an
investigated,
similar
issue
in
our
products.
What
happens
that
stood
thread?
Implementation
in
leap
cc
has
some
kind
optimization,
so,
instead
of
creating
a
thread
from
scratch,
like
a
go
into
operating
system,
all
the
time
new
new
implementations
using
the
thread
pool
so
most
probably
what
they
see
it's,
so
they
never
like
two
threads
get
released.
E
E
A
E
I
I
wonder
if
it's
related
to
the
fact
that
implementation
itself
of
sd
thread,
which
I
didn't
read
the
issue
itself,
it
just
sounds
very
familiar.
E
A
E
Because
they
optimize
it
and
to
use
thread
pull
instead
of
using.
So
thank
you
when
sd
thread
is
created,
it
creates
a
system
thread,
but
then
it's
actually
destroyed.
It
does
not
destroy
system
thread,
but
instead
it
actually
keeps
it
in
the
pool.
So
next
time,
new
sdgs
are
created,
it's
kind
of
trying
to
reuse
it.
So
it's
more
like
internals.
C
E
E
E
A
Is
passing
that
thread
like
that's
basically
in
this
call
here
that
says:
okay,
this
this,
I
guess,
you're
passing
it
a
a
lam.
E
Yeah,
it's
just
poison
lambda,
but
if
lambda
has
no
capture,
it's
actually
just
it's
like
static
function,
right.
B
E
From
perspective
for
c
plus,
plus
lambda,
yeah
stuff,
but
internal
internally,
sd
thread
allocates
some
thread
resources
and
actually
it's
what
causing
this
issue.
C
B
E
Very
this
function,
so
they
kind
of
begin
to
function,
start
to
move
into
and
the
function
is
stop
lantern,
but
thread
resource
is
still
around
so
they'll,
probably
free
it
later.
C
Oh,
I
see
right,
yeah,
yeah,
yeah,
right,
okay,
yeah,
so
it's
I
mean
yeah,
it's
it's
the
way
they
use
this
like
okay,
so
they
consider
it
a
leak,
but
it's
only
a
leak
during
during
the
the
the
capture
interval
that
they
have
chosen
right,
I
mean
of
what
it's
a
leak.
If
you,
if
you
run
the
program
for
59
hours
and
memory
usage,
keeps
on
increasing
and
until
it
hits
the
killer
right
right,
so
so
that's
a
leak
this
this
is
not
a
leak.
This
is
too
pedantic
of
a
check
right.
C
C
That
starts
the
process
of
monitoring
and
add
a
library
destructor
that
stops
the
process
of
monitoring
right,
because
then
that
that's
that's
the
bracket,
that
you
want
to
examine
right
like
process,
startup,
process,
shutdown
and-
and
if
at
that
point
there
is
anything,
then
you
know,
then
then
you
it
may
still
show
a
leak,
because
the
the
the
c
plus
standard
library
may
have
may
have
like,
like
a
like
an
end
of
process,
hook
that
that
that
frees
the
thread
pool
and
then
it's
just
a
matter
of
which
hook
runs
first,
so
right,
it's
kind
of
hard
to
catch.
E
No,
no,
it
will
be,
it
will
be
just
from
fixed,
fixed
thread,
pull
like.
So
thank
you,
they're
just
doing
caching
and
it's
internals
of
lipstick.
B
E
A
Right
yeah,
you
could
also
can
also.
A
B
And
what
we
need
to
to
remove
from.
A
I
think
really,
the
only
thing
we
wanted
to
change
was
node
10
see
the
earliest
latest,
no
oldest
right.
Okay,.
D
A
A
A
B
Of
a
pain
to
have
to
republish
yeah,
we
need
to
to
to
make
a
new
version.
Three
three
zero
and
I
revert
this
change
so
and
then
I
can
publish
a
new
version
for
where
I,
okay,
but
I'm
thinking
about.
B
B
Our
jupiter,
no,
where
we.
B
Yeah
node
underscore
api
jeep,
so.
B
So
we
have
these
things
only
to
support
node.js
version,
8.
B
I
think
I
think
yeah.
B
C
A
C
B
Essentially,
you
don't
need
the
to
to
set
the
yeah
the
jeep
on
includes
in
your
binding
jeep
and
okay.
D
B
So
if,
if
we
with
version
4,
we
guarantee
the
support
of
node
js
12
and
above
so
we
can
take
the
shots
to
remove
these
teams.
C
C
C
Well,
I
mean,
if
there's
some
ancient,
if
there's
some
ancient
module
who's,
whose
jib
file
still
still
relies
on
these
things,
then
that
that's
gonna
fail
to
build.
A
A
B
Yeah,
so
so
what
do
I
need
to
remove
so
include
and
node
api
plt
need
flag.
C
No,
the
idea
is
not
to
remove
anything
because
they
do
no
harm
right
and,
and-
and
you
know
if,
if
if
anybody
is
still
using
them,
even
though
they
do
nothing,
then
you
know
we
are
breaking
people
unnecessarily.
If
we
remove
them
right
so
this
this
doesn't
add
any
size,
it
doesn't
slow
down
performance
it.
It's
really
just
no
ops,
everything's
a
no
up
here,
pretty
much
except
for
the
include
deer.
C
C
C
B
Okay,
so
I
need
to
publish
the
last
version,
three
three
three
zero
and
then
I
I
published
the
new
four
with
only
these
changes
already.
A
A
B
A
B
But
who
would
you
go
on
package.json
on
another
sure.
A
E
Not
an
issue,
but
can
just
question
I
have
in
general,
is
kind
of
look
into
is
implementing
unit
tests
for
node
api
once
the
issue
can
try
to
put
my
head
around
is
actually
how
to
build
v8
using
cmake.
I
found
some
a
couple
of
different
approaches.
One
of
them
I'm
trying
to
use,
is
using
some
kind
of
python
scripts
to
initialize
and
do
other
stuff
in
actually
running
gm
to
compile
v8.
But
my
question
is:
do
you
guys
know
anything
better
how
to
build
v8
using
cmake.
A
E
Yes,
yes,
definitely
we
would
better
do
gn,
but
I
mean
like
we
need
the
factory.
The
whole
kind
of
process
will
be
c
make
and
at
some
point
we
need
to.
C
Think
I
think
cmake
cmake
has
like
has
has
a
way
of
of
of
creating
like
custom
targets.
C
E
Yeah
yeah,
I
I
understand
that,
like
I
just
in
case,
if
somebody
did
this
successfully.
C
B
I
posted
a
link
and
you
can
find
yeah
it's
a
project
where
they
use
cmake
to
build
the
v8.
I
think.
A
Yeah
that
was
an
earlier
attempt.
I
I
doubt
that
works
and-
and
I
don't
think
that's
like
that-
was
actually
trying
to
convert
from
gn
to
cmake
itself
for
being
built
into
node.
I
think
I
I
could
be
wrong
on.
B
B
C
It's
much
bigger
like
I'm
just
I'm
just
talking
about
like
add
custom
command
like
they're,
the
cmake
has
this
macro
called,
add,
custom
command
and
here's
here's
an
example.
I'm
using.
Let
me
just
paste
that
it's
not
for
v8,
but
it's
basically
maybe
relevant.
Let
me
see
where's
the
chat
chat,
hello
there.
You
are
well.
E
I
understand
custom
commands
yeah
and
I
posted
another
link
which
I'm
currently
using
look
in
this
approach.
It's
much
better
because
it's
just
it's
pretty
much!
That's
what
you're
saying
that,
but
you
just
have
very
small
python
scripts,
which
does
all
the
stuff.
Oh.
E
B
E
A
C
A
A
Worth
mentioning
is
gabriel
did
submit
a
pr
to
fix
up
some
of
the
node
tests
as
we
discussed
to
make
the
names
consistent
and
so
forth.
So
I
don't
think
that's
quite
landed
yet
has
it
or
maybe
I
can't
remember,
let
me
double
check.
Did
I.
I
landed
a
few
things,
but
I
can't
remember
if
that
one
was
quite
ready
to
to
land
or
not
cool.
E
Another
question
I
had,
I
also
tried
to
do
this
building
the
node
node.js
cell,
because
I
have
this
another
bug
I
want
to
fix
and
and
then
I
run
those
tests
it
seems
like
most
of
them
don't
run
on
windows
at
all.
I
can
run
js
whatever
like
a
node
api
tests,
but
it
seems
like
a
lot
of
tests
in
parallels
folder.
You
just
simply
fail
to
run
on
windows.
A
A
A
C
A
E
The
most
developers
doing
linux-
I
guess
so-
yeah
actually
yeah.