►
From YouTube: incr-comp meeting #2 (2020-08-25)
Description
The second meeting of wg-incr-comp. Here is the informal agenda we used during the meeting: https://docs.google.com/document/d/1aQL6cKCelgoSElIa76QXvLKuKdJOyyRjMIFp303BugY/edit
A
Okay,
all
right,
so
this
is
the
second
meeting
of
the
working
incremental
communication
working
group
and
yeah.
It's
it's
felix
wesley,
santiago
and
amman.
Who
is
somebody
who's
interested
in
just
joining
for
the
first
time
right:
okay,
great
yeah,
great
okay,
so
we
don't
have
much
of
a
standing
agenda.
I've
been
wondering
about
whether
we
should
be
doing
things
like
reviewing
the
bugs
that
are
assigned
to
incremental
compilation,
but
for
now
that's
not
part
of
our
standing
agenda.
Maybe
you
can
start
being
part
of
that.
A
But
let's,
let's
look
at
the
things
that
that
wesley
has
at
least
posted,
and
then
we
can,
let's
actually
first,
let's
first
discuss
whether
there's
anything
else.
We
want
to
add
to
the
agenda
at
the
outset,
like
any
other
ideas
and
things
to
talk
about
to
make
sure
we
add
them
at
the
start.
So
there's
the
thing
that
wensley
already
said
down
below
the
the
tag
we
have
the
74967
pr
and
then
anything
else
anybody
can
think
of.
I
guess
that
we
could.
A
A
Oh,
no
okay,
let's
let's
go
ahead
and
get
started,
then
so,
let's,
let's
first
go
ahead
and
talk
about
the
thing
that
that
wesley
has
put
here.
So
you
wanna,
you
wanna
head
this
up
wesley
since
you're
gonna
put
it
up
here.
B
Sure
so
I
haven't
actually
had
a
time.
I
haven't
really
had
time
yet
to
dig
into
it
very
much
but
patrick's
drinking
off
cc'ed
us
on
a
pr
that
touches
parts
of
the
incremental
compiler.
Basically,
it
makes
lazy
decoding
for
the
death
path
table
from
the
crate
dependencies
lazy,
and
so
obviously
that
has
implications
for
incremental
compilation,
which
is
why
we
got
succeed.
B
The
performance
for
the
most
recent
performance
run
is
quite
good.
It's
especially
exaggerated
on
small
check
compilation
sessions,
but
there's
some,
I
think,
pretty
decent
wins
even
for
more
regular
performance
benchmarks
in
there
and.
B
Notes,
moving
losses,
yeah,
that's
pretty
promising
yeah,
which
is
is
fairly
rare,
at
least
from
what
I've
seen.
So
I
think
at
least
from
the
performance
perspective.
This
looks
like
a
no-brainer
to
land,
but
we
should
probably
take
a
look
at
the
implementation
and
see
if
there's
any
concerns
there.
So.
A
Yeah,
okay,
I
will
have
more
time
to
do
stuff
on
thursday.
I
think
so.
I
could
probably
look
at
this
then,
but
if
anybody
else
wants
to
jump
on
it
before,
then
I'm
happy
to
let
it's
already
assigned
to
me
petrachenko.
I
think
I
signed
it
to
me
yesterday,
but
if
anyone
else
wants
to
take
a
look
at,
it
obviously
feel
free
to
put
comedy
not
even
to
like
take
responsibility
for
it,
but
just
even
to
like
put
your
own
thoughts
on
it.
Any
other
extra
comments,
et
cetera,
okay,
but
yeah.
A
A
A
Okay,
anyone
want
to
volunteer
to
do
that.
I
mean
I
could
I
maybe
could,
but
it
might
be
nice
if
somebody
else
did
be
honest,
they're
reaching
out
to
aaron.
I
mean.
A
Okay,
great
and
okay
yeah,
so
that's
that
sounds
good.
Let's
all
right!
Let's
do
a
quick
round
rob
and
then
and
talk
about
status,
so
I'll
go
first.
I
I've
done
nothing.
I've
I've
been
focusing
on.
I
obviously
have
taken
the
back
seat
of
work
stuff
for
for
various
reasons,
and
I've
been
focusing
on
childcare,
but
I
and
the
things
I
have
been
doing
have
been
more
general
compiler,
like
reviews
or
like
llvm
stuff.
A
I
wouldn't
it's
on
telegram
and
I've
talked
about
trying
to
get
together
to
do
some
pair
programming,
but
we
haven't
done
it
yet.
I
still
wanted
to
query
stuff,
but
it
hasn't
happened
yet.
That's
me
who's
next.
D
I
mostly
read
through
some
of
the
stuff
that
I
discussed
with
wesley,
I'm
very
new
to
all
of
this,
so
just
trying
to
figure
out
some
details,
but
yeah.
It
kind
of
sort
of
makes
sense.
To
me
right
now
sounds
good.
C
Basically,
we
we
can,
we
can
coordinate,
like
maybe
for
sure
say
if
you
have
time
like,
maybe
to
do
some
programming
or
something
like
that,
but
yeah
I
haven't
done
anything
yet.
B
Okay,
so
felix
forgot
to
mention
that
he
actually
reviewed
my
pr
to
break
up
the
cgu
partitioning
today,
so
that
actually
just
landed.
I
think
like
an
hour
ago
or
something
oh.
A
B
So
I
have
some
local
changes.
On
top
of
that
I've
been
playing
with
for
a
different
partitioning
algorithm.
I
kind
of
brained
up
that
in
a
stream.
B
I
think
like
two
or
three
weeks
ago-
and
I
don't
think
a
whole
lot-
has
changed
since
then,
but
basically
just
to
catch
everybody
up
in
case.
Anybody
didn't
see
that
the
current
it's
fairly
different
than
the
current
algorithm
in
that
it
doesn't
create
just
two
cgus
per
rust
module.
B
It
instead
tries
to
figure
out
the
total
cost
of
all
the
dependencies
of
each
function,
and
then
groups
cgus,
basically
to
try
to
get
a
more,
even
more,
even
outcome
that
still
respects
the
total
number
of
cg
using
the
compiler.
B
I
think
right
now
I've
done
some
local
performance
and
it
varies
between,
I
think,
about
20
and
50
slower
in
terms
of
total
compilation
time
than
the
current
algorithm.
But
I
don't
think
that's
actually,
I
think,
there's
room
for
improvement
there.
It's
fairly
naive
currently,
which
is
why
I
think,
there's
there's
room
for
improvement
there.
The
current
algorithm
is
fairly
complex
and
stuff
has
been
well
optimized.
For
that
this
was
sort
of
just
a.
I
threw
something
at
the
wall.
B
A
Trying
I'd
like
some
clarification
on
a
detail
about
this,
so
you
mentioned,
you
know
the
current
algorithm.
That's
in
the
compiler
does
two
cgus
per
module
and
you're
trying
something
else.
That's
that
analyzes
the
dependency
graph
and
the
cost.
I
interpret
that
right
up
the
actual
functions
and
functions
themselves.
Does
that
mean
you've
like
thrown
up?
Is
there
basically
no
relationship
between
the
cgos
and
the
modules,
or
is
it
that
there's
a
minimum
of
two
per
module
and
it's
just
that?
Maybe
there
might
be
more
per
module
or
in
fact
there's.
B
I
I'm
trying
to
recall
that
detail.
I
believe,
if
I
remember
right,
there's
just
there's
no
relationship
at
all
and
we
I
basically
have
a
maximum
size
and
then
once
I
hit
that
maximum
size,
I
just
start
creating
another
one.
So
we
we
just
iterate
items
as
we
get
them
from
the
mono
item
collector
and
then,
as
the
cgs
fill
up
to
the
max
size.
A
How
did
you
choose
the
max
to
use
for
the
the
threshold
to
where
you
start
gathering
into
a
new
unit?
I
just
like
number
out
of
the
air.
B
Numbers,
it
looks
like
larger
numbers,
at
least
for
the
regex
crate,
is
what
I'm
using
to
iterate
on
and
then
actually
run
run
benchmarks
on
the
benchmark
suite,
but
at
least
for
regex,
larger
numbers
tend
to
be
better.
So
I
think
right
now
I
was
playing
with
around
10
000
cgu
units
or
cost
estimate
or
whatever
so.
A
Yeah
and
the
other
question
I
had
do
you
still
end
up
with
something
where
it's
an
artifact
of
our
monomorphization
system,
that
you
have
two
per
module
right?
That's,
or
am
I
misremembering
how
that
works
in
terms
of
I'm?
The
reason
why
I
asked
this
because
I'm
now
wondering
is
there
some
similar,
you
know
2x
factor
that
happens
with
your
system.
It's
just
that
now.
You
first
do
this
this
gathering
process
and
then
it's
you
have
two.
B
So
the
reason
we
do
two
currently,
as
I
understand
it,
is
that
it
can
be
a
performance
optimization
for
incremental
cases,
on
the
hope
that
when
you're
editing
code,
you're
mostly
editing
code
that
resides
in
the
non-generic
module
because
there's
a
generic
there's,
a
module
that
has
generic
instantiations
or
mono
items
that
came
from
generic
code
and
then
there's
a
module.
That
just
has
functions
that
don't
have
I'd,
see
any
any
type
parameters
or
whatever.
I.
A
B
Yeah
I
it
doesn't,
it
doesn't
make
intuitive.
I
I
see
the
motivation
for
it.
It
doesn't
make
intuitive
sense
to
me,
based
on
what
I've
seen,
because
pretty
much
any
code
that
I
write
in
a
function
that
doesn't
have
type
parameters
probably
eventually
calls
generic
code
which
winds
up
in
the
other
module,
and
so
now
I
have
two
modules.
B
Yeah,
okay,
the
other
day
I
was
also
playing
around
mw,
had
filed
a
ticket
a
couple
years
ago
about
debug
builds,
including
in-line
functions
in
even
debug
configurations.
So
basically,
if
you
call
a
monomorphosized
function
in
an
upstream
crate,
but
it's
marked
inline,
even
in
debug
mode,
will
still
instantiate
that
function
in
the
downstream
crate
in
every
cgu.
B
I
believe
that
calls
that
when
obviously
we
could
hopefully
just
instantiate
it
once
or
even
potentially
use
the
upstream
one,
but
it's
I'm
I'm
learning
a
lot
while
I'm
trying
to
get
that
to
work,
but
it's
it's
hairy.
So,
okay.
A
Okay,
the
all
right,
so
that's
that's
everyone,
then
I
think
I
did
want
to
ask
if
wesley
you've
you've
talked
to
felix
fisher,
I
think
to
some
extent,
is
there
any
further
thoughts
on
like
actually
spinning
up
a
concrete
project
group
of
some
kind?
The
reason
why
I
asked
this
is:
it
may
be
useful
from
a
standpoint
of
like
gathering
new
volunteers,
to
have
a
concrete
project
group
with
a
set
objective
versus
a
kind
of
open-ended
thing
that
we
have
right
now
in
this
working
group.
A
B
Yeah,
I
think
that
is
really
interesting.
I
probably
need
to
brainstorm
with
somebody
about
what
the
goals
could
actually
be
for
that
I'm
not
sure
I
have
enough
data
and
motivation
and
goals
and
stuff
right
now
to
actually.
A
A
Fine,
it's
more
that
I
feel
like
it
should
at
least
be
a
sort
of
that.
If
I'm
gonna
have
any
standing
item
in
our
agenda,
it
should
be
do
we
want
to
spin
up
any
project
groups
in
the
near
future
and
like
just
a
double,
keep
in
the
back
of
our
minds,
but
I
totally
understand,
if
there's
nothing
that
both
you
don't
have
the
time
yourself,
nor
the
the
actual
concrete
ideas
ready
to
get
to
go
for
it.
Okay,
okay,
that's
good
all
right,
so
this
might
be
a
very
short
meeting.
A
Then
it
doesn't.
I
don't
know
if
we
have
anything
else
to
talk
about.
Is
there
more
procedural
stuff?
I
suspect
there
might
be
other
procedural
things
that
I
have
not
followed
through
on
in
terms
of
the
formation
of
this
working
group,
but
maybe
I
should
just
talk
to
santiago
offline
about
that
versus
using
meeting
time
for
it.
I'm
thinking,
namely
of
like
I
don't
even
know
if
I've
done
the
right
stuff
to
update
the
the
the
check-in,
I'm
certain
that
the
check-in
system
isn't
it
doesn't
have
doesn't
know
about
us
yet
there's!
A
C
A
C
D
Wesley,
if
there's
some,
I
guess
different
ideas
you
want
to
try
out.
I
can
try
to
figure
out
the
code
and
see
if
there
are
different
partitioning
algorithms
that
we
can
try.
I
am
not
necessarily
familiar
with
how
I
will
go
through
it,
but
I
can
give
that
a
shot.
A
A
D
A
B
Terms
of
for
my
strategy
in
the
initial
partitioning,
I
wanted
to
know
about
the
inlining
map,
which
was
not
provided
as
an
argument
in
that
first
function
there.
But
if
I
remember
right,
I
think
what
I
did
was
basically
just
introduce
the
partitioning
context
whatever
and
then
wrapped
all
of
the
arguments
from
all
of
the
functions
in
there
and
then
just
pass
that
to
each
function.
B
But
yeah,
I
guess
maybe
the
first
thing
I
should
do
when
I
get
offline
here
is
push
that
branch
up
at
least
my
local,
my
my
github
fork,
and
then
people
can
look
at
it.
So
all.
D
A
D
A
So
that's,
I
think
everything
that
we've
got
to
do
thanks.
Oh
oh,
I
know
with
big
agenda
items.
So,
okay,
we
don't.
I
don't
know
if
nick
is
going
to
keep
participating
in
the
group
or
all
right.
C
A
So
the
background
here
is
mozilla:
had
a
bunch
of
layoffs
like
a
quarter
of
their
workforce
was
laid
off.
Nick
still
has
his
job,
but
they're
re-like,
organizing,
you
know
things
and
so
nick
isn't
sure.
If
he's
going
to
have
just
in
terms
of
what
he's
given
is
his
task,
it's
time
to
keep
participating
in
this
working
group
and
the
only
reason
why
this
is
I
mean,
obviously
it's
a
shame
to
lose
nick
as
a
resource,
but
also
we
chose
this
meeting
time.
E
A
Accommodate
nick,
and
so,
if
nick
isn't
able
to
participate,
we
really
should
revisit
the
question
of
the
timing
of
the
meetings.
We
don't
need
to
do
it
right
now.
It
doesn't
really
make
sense
to
it
right
now,
because
if
we're
going
to
re
change
the
meeting
time,
we
should
do
it.
For
example,
we
should
engage
with
david
t.w,
co
and
others
at
santiago.
This
is
not
a
great.
I
know
this
is
not
a
great
time
for
you
you've,
or
at
least
you've
said
so
to
me
before
so
we
should.
A
We
should
revisit
this,
but
first
I
want
to
get
confirmation
from
nick
first
that
that
they
aren't
going
to
be
able
to
participate.
So
I
will,
I
will
reach
out
to
nick
about
unable
to.
A
Okay
and
I'll
I'll
do
this,
I
I
can
reach
out
to
nick
all
right,
excellent
thanks
everybody.
This
has
been.
I
I
think
it's
actually
been
useful
and
short
short
is
good
short
is
very
good.
All
right.
C
I
know
another
thing
like
yeah
besides,
like
from
from
this
thing
from
nick,
are
we
going
to
just
anyway
to
have
a
meetings
during
like
like
early.
A
C
C
A
True,
that's
true.
We
were
talking
about
having
I
I
still
was
planning
on
doing
that.
I
just
didn't
follow
through
on
scheduling
the
alternative
time
slot.
The
idea
was
that
we
would
have
one
meeting
every
two
weeks
right,
this
time
slot
and
another
meeting
on
the
alternate
weeks.
That
would
be
at
the
other
time
slots.
So
obviously
the
way
to
go
here
is
to
schedule
probably
to
schedule
the
we
still
need
to.
C
Mainly
because
of
david
but
yeah,
I
I
may,
I
may
end
participating
in
the
night
meetings,
but
just
like,
as
in
this
one
very
last
minute
decision,
but
I
mean
may
not
be
able.
A
B
A
So,
let's
I
think
the
way
to
go
here
is
we
should
go
ahead
and
schedule
the
morning
meeting
time
slot
and
but
do
it
with
the
thought
that
it
could
potentially
be
the
new
weekly
meeting
time.
B
A
If
nick
can't
join,
then
we
might
just
meet,
we
might
meet
every
week
at
that
time.
It
also
might
me
it
also
makes
the
case.
We
don't
need
a
weekly
cadence.
It
could
be
that
we
might
not
be
making
enough
progress
each
week
to
make
experts
make
sense
to
meet
every
week.
But
let's,
let's
wait
and
see
about
that.
A
We
don't
need
to
make
a
decision
yet
about
whether
to
meet
every
week
or
every
two
weeks.
I
don't
want
to
go
more
slowly
than
every
two
weeks,
just
because
I
think
at
that
point
you
lose
momentum.
We
already,
I
feel,
like
you
know,
it's
been
three
weeks
since
their
last
thing,
but
that's
because
of
various
various
things
happened.
Okay,
all
right,
so
yeah
schedule
the
morning
meeting
time
slot
I
probably
should
be
well.
I
don't
know
it
doesn't
have
to
be
me.
A
Who
does
that
and
then
reality
is
I'd
rather
not
do
it.
If
I
could
avoid
it,
because
I'm
trying
to
avoid
putting
new
loads
on
myself.
Would
anybody
be
willing
to
take
point
on
trying
to
handle
schedule
in
the
morning
eating
time
slot,
or
is
that
something
where
I
can't
get
somebody
else
to
do
it?
I
know
santiago.
You've
got
a
lot
in
your
plate
because
of
the
privatization
work,
so
I
don't
actually
want
you
to
volunteer
to
do
it.
B
A
Yeah,
that's
probably
the
way
to
go:
okay,
either
fire
either.
You
know
ping
that
thread
or
yeah
or
make
a
new
one
yeah.
The
alternating
meeting
time
is
is
the
one.
So
I
I
can
even
just
ping
you
from
it
right
here
which
that
may
be
the
bad
bad
idea,
but,
okay,
all
right.