►
From YouTube: incr-comp meeting #3 (2020-09-22)
Description
Third meeting, at a new time slot. Here is the agenda/notes we used during the meeting: https://hackmd.io/3B-HlrkKQ3KIsv9JjYENPA
A
Okay,
cool
all
right,
so
I
guess
the
first
thing
on
the
agenda
is
that
I
added
some
work
items
to
our
ongoing
projects
tracking
issue.
It
looks
like
everybody's
aware
of
that,
because
people
started
to
pick
work
off
of
that,
but
if
there's
anything
on
there
you're
interested
in
either,
I
can
probably
answer
some
questions
about
it
or
felix
can,
or
we
can
certainly
point
you
to
somebody
who
can
so
definitely
get
in
touch,
and
let
us
know
if
you
want
to
work
on
any
of
that
stuff.
A
Santiago.
Did
you
want
to
talk
about
your
pr
or.
B
A
Okay,
so
santiago's
been
working
on
one
of
the
linked
issues
to
reduce
how
much
in
line
how
many
inline
function,
instantiations
we're
getting
in
debug
builds
because
we
don't
actually
run
the
inliner
or
any
of
the
optimizations
that
need
multiple
copies
in
the
same
crate
like
per
cgu,
so
we're
just
we're
just
adding
compilation
time
there.
So
the
overall
issue
is
actually
to
do
some
additional
work
beyond.
A
What's
been
done
now
to
to
generate
a
copy
of
the
inline
function
in
the
upstream
crate,
even
in
release
mode
so
that
we
can
link
against
it
potentially
in
a
downstream
crate.
That
hasn't
been
done
yet.
But
what
santiago
has
done
is
push
up
a
pr
that
changes
our
instantiation
strategy,
basically
for
inline
functions
and
debug
mode.
So
now
we
get
just
one
copy
per
crate.
Instead
of
potentially
one
copy
per
cgu
that
uses
it
and
we
did
a
perf
run
on
that
and
the
results
were
a
little
mixed.
A
There
were
some
regressions
up
to
like
almost
six
percent
on
some
of
the
incremental
tests,
but
we
also
got
a
35
improvement
on
full
non-incremental
builds
for
regex
and
I
think
a
13
improvement
on
the
full
build
for
encoding
in
debug
mode,
which
seemed
like
pretty
significant
wins
to
me.
So
I'm
feeling
like
we
should
probably
land
this,
because
this
seems
like
the
correct
strategy.
Even
if
there's
some
crates
or
some
situations
that
this
doesn't.
B
Help
so,
as
far
as
I
can
tell
this,
this
only
changes
when,
when
in
line
is
always
the
rest,
is
kind
of
the
same
behavior
we
had
before.
The
only
thing
that
I
was
wondering
is
related
to
like,
if,
if
you
expand
a
bit
the
code
above
of
of
the
changes
that
are
in
the
in
the
part
that
it
says
in
line
always
on
all
that
we
were,
we
were
using,
I
mean
we
are
using
this
in
line.
You
know
gg
use
option.
B
I
guess
if
some,
if
somebody
pass
past
that
flag
as
true
or
something
like
that,
we
should
always
because
this
is
what
what
the
user
is
is
really
suggesting
right.
It's
asking
you
to
do
so
in
that
case
like
well.
If
someone
sets
that
to
true
like
we
would
be,
I
mean
what
what
I
don't
know.
B
This
is
like
how
the
code
previous
previously
behaved,
but
I
don't
know
why,
like
in
the
in
the
top
part
of
the
of
the
code
when
right
before
the
mono
item
fn
arm
like
we
are,
we
are
doing
some
checks
there
and
returning
instantial
mode
globally,
shared
regardless.
If
that
is
true
or
not
so
I
I
I
mean,
I
don't
know,
if
that's
what
the
code
should
be
doing,
but
it's
a
preexisting
thing.
What
I'm
mentioning.
B
A
A
Is
maybe
we
could
reorganize
that
branch
there?
Because
I
think,
if
generating
something.
B
Do
local
copy
all
right,
so
so
what
I'm
saying
is
to
move
the
line,
the
code
we
have
from
line
95
and
switch
it
to
to
what
we
have
in
line
105
like
to
switch
those
things.
So
we
can
just
return
quickly
if
generates
like
if
in
line
in
all
cgs
is
true,
because
it
seems
that
that's
what
we
want,
but
I
don't
know
like.
Maybe
anyway,
we
can
continue
with
this.
I
think.
A
A
It
may
have
something
to
do
with
like
what
annotations
are
applied
to
the
specific
item
or
what
kind
of
item
it
is
or
something.
So
I'm
not
I'm
not
sure
offhand
if
we
can
do
that,
but
that
does
seem
like
a
reasonable
cleanup.
B
David,
if
I
understood
you
correctly,
when
we
were
talking
about
follow-up
things
to
do
with
this,
what
we
really
want
is
like
right
now
like
right
now,
when
we,
when
we
don't
when
we
are
not
going
to
inline
our
code,
we
want
just
to
like
reuse
or
refer
in
some
way
to
what
what
another
trade
have
generated
right,
but
what
I
wonder
in
the
actual
code,
what
we
want
is
is
to
not
generate
this
instantiation
mode
copies.
A
Yeah,
so
I
think
what
we
want
to
do
to
actually
close
out
this
ticket
entirely
is
in
debug
mode
well,
so
backing
up
for
the
upstream
crate.
We
need
to
actually
generate
a
copy
of
that
function
in
that
crate,
so
that
we
can
link
against
it.
B
A
And
then
downstream
in
debug
mode,
instead
of
generating
any
copies
of
that
function
in
our
crate
in
any
of
our
cgus,
we
just
want
to
link
against
the
upstream
copy,
but
right
now,
there's
no
upstream
copy
at
all,
because
it's
marked
in
line
so
felix
we're
talking
about
the
pr
santiago
opened
for
76896.
A
And
the
tl,
dr,
is
that
basically
it
changes
the
instantiation
mode
for
inline
always
functions
in
debug
mode.
It's
so
that,
instead
of
generating
a
copy
per
cg
that
uses
it,
we
generate
one
copy
in
our
crate
and
reuse
it
across
all
cg
use
because,
obviously
we're
not
running
optimizations
in
llvm.
So
it
doesn't
matter.
A
C
As
well
so
when
you
say
inline
all
so,
you
might
always
I'm
assuming
there's
no
even
no
language
guarantee
there
that
we
actually
in
mind,
but
I
don't
know
for
sure,
even
though
I
just
remember
offhand,
that's
what
we're
talking
about
right.
It's
like
actually
treating
it
like
it's,
not
truly,
always
yeah,
okay,
okay,.
C
A
So
my
feeling
was
that
we
should
probably
maybe
there's
some
tweaks
we
can
do
or
something
to
this
somewhere
to
recoup
some
of
the
lost
performance
on
some
of
the
incremental
tests,
or
maybe
we
should
dig
into
those
some
more
and
figure
out
exactly
what's
going
on
there.
But
a
35
improvement
on
an
actual
crate
in
non-incremental
seems
pretty
significant
and
the
change
makes
sense.
Logically,
so
we
should
probably
look
at
taking
it.
B
So
wesley,
like
the
like
high
level,
like
I
understood
what
you
said
like
what
we
want
to
accomplish,
but
it
seemed
to
me
like
I,
I
I'm
not
sure,
because
I
don't
like
know
exactly
the
code
what's
going
on,
but
it
seemed
to
me
from
what
I
from
what
I
have
test
that
just
by
by
doing
this
change,
we
are
like.
We
are
really
doing
what
what
what
you
are
saying
like
I
mean
from
the
from
the
main
crate.
B
We
are
making
a
copy
and
we
are
referring
from
the
other
one,
but
I
I
don't
know
I
may
be
a
bit
confused
but
like
it
seemed
to
me
that
we
are
really
with
this.
We
are
really
doing
what
what
we
are,
what
the
the
ticket
like
asked
to
do.
So
I
I'm
not
really
sure
like.
Maybe
I.
A
Think
we've
got,
I
think,
we've
got
a
good
chunk
of
it,
so
part
of
it
is
just
generating
fewer
copies
and
part
of
it
is
generating
copies
upstream
so
that
we
don't
have
to
generate
any
copies
in
our
crate
at
all,
because
right
now
we're
still
generating
one
copy
that
we're
sharing
across
all
of
our
cgus.
A
Michael
said,
we
could
probably
make
use
of
this
dash
share
generics,
infrastructure
for
making
inline
functions
available
downstream
and
then
the
the
comment
that
actually
spawned
this
ticket
is
kind
of
talking
about
that
same
idea
where,
if
we
actually
generate
a
function
in
the
upstream
crate,
we
can
link
against
it
the
downstream
crate
without
any
duplication
at
all
there.
A
So
this
is
definitely
like
a
big
chunk
of
it,
but
there's
there's
probably
still
more
work.
That
needs
to
be
done
there
to
close
it
out.
D
I
expect
to
be
a
reasonable
chunk
of
work
to
do
there
because
it's
different
across
platforms,
but
what
I've
done
so
far
is
look
into
what
clang
is
doing
so
I've
kind
of
written
up
all
klang
stuff,
and
I
can
share
that
in
the
the
soul
upstream
and
see
what
it's
doing
finding
out.
What
he's
asking
for
split
dwarf
makes
to
cause
lvm
so
that
I
can
replicate
that
and
what
russia
does.
D
A
Works,
do
you
know
like
how
how
well
supported
is
this
like
llvm?
Do
you
think
we're
gonna
get
much
platform
support
out
of
the
box,
or
are
we
gonna
have
to
like
special
case.
D
Kline
was
special
casing
it
so
that
it
would
only
do
it
when
the
target
output,
elf
or
wasm,
and
then
there
was
also
some
special
casing
for
gnu
and
ming
w,
but
that
seemed
slightly
unrelated,
even
though
it
did
use
the
same
flags.
So
there's
some.
I
want
to
look
into
it
a
bit
more,
but
I
think
we'll
get
linux
at
least.
C
A
Check
all
right
cool,
so
that's
everything
on
the
agenda.
Is
there
anything
else
anybody
wants
to
talk
about.
B
C
Okay,
we,
oh
obviously
this
will
be
in
the
meeting,
but
we
there
is
one
thing
I
was
thinking
about.
We
probably
I
probably
didn't
I
I
know
I
didn't
do
enough
to
try
to
elicit
new
volunteers,
but
something
we
probably
should
think
about.
Perhaps
because
we
did
see
some
attrition.
Obviously.
A
So
now
that
I'm
thinking
about
it,
actually,
I
think,
there's
still
a
pr
that
we
got
cc'd
on
that.
We
should
look
at
from
check
my.
A
D
D
B
A
Okay,
so
we
are
trying
to
hold
scheduled
meetings
so
assuming
this
time
works
for
everyone,
I
guess
we'll
see
everybody
back
here
again
in
two
weeks.