►
From YouTube: .NET Design Review: GitHub Quick Reviews
Description
00:00:00 - Approved: Add a Socket.Listen() overload https://github.com/dotnet/corefx/issues/9680#issuecomment-523130997
00:05:45 - Approved: Add ImmutableInterlocked.Update for ImmutableArray https://github.com/dotnet/corefx/issues/19408#issuecomment-523140923
00:30:11 - Approved: Add support for getting current stack into Exception https://github.com/dotnet/corefx/issues/19416#issuecomment-523144443
00:39:55 - Approved: Add 'split' support for ReadOnlySpan(char) similar to string https://github.com/dotnet/corefx/issues/26528#issuecomment-523152939
A
A
E
D
F
A
D
I
C
B
C
B
A
D
F
B
B
D
A
D
I
mean,
and
then,
but
we
should
you
know,
is
that
the
discoverable
way
of
getting
hexadecimal
like
it
does
have
a
you.
Either
know
it's
there
or
not
it.
We
don't
have
a
way
of
getting
it
from
hex
back
into
the
thing.
Presumably,
we
should
span
a
PHY
it
as
well,
using
the
try
right
pattern
that,
like
all.
D
B
C
C
C
J
Also,
we
are
talking
about
hexadecimal
here.
Should
we
consider
other.
J
C
Hex
and
base64
kind
of
go
together
because
they're
both
ways
of
representing,
like
them,
binary
byte
data
in
a
string
as
a
container
like
you,
don't
really
see,
octal
used
for
that
octal
generally
just
uses
a
numeric
representation
like
binary
ones
and
zeroes
I,
never
heard
of
any
request
for
that
for
data
that
came
from
a
binary.
Okay,.
B
C
M
F
F
So
so,
basically
like
today,
if
you
were
to
say
you
want
to
remove
an
element
from
like
five
elements.
From
the
end
of
the
array
into
the
middle
of
the
array,
you
end
up
having
to
remove
the
five
copy,
all
of
the
other
ones
down
and
then
insert
the
missing
five
into
those
empty
slots.
And
you
can
you
can
optimize
that
slightly
and
then
varying
positions
like
if
it's
at
the
beginning
of
the
rave
and
it's
really
bad,
because
you
remove
the
first
five.
N
J
C
One
person
area
would
be
like
a
imagine.
Imagine
you
have
like
a
bunch
of
pages
in
a
OneNote
document.
For
instance,
and
imagine
you
are
yeah
like
you,
you
select
this
range
of
them
and
you
just
want
to
move
the
marker
right
like
it's.
Obviously,
if
you
have
a
UI
based
application,
you
would
be
using.
You
know,
probably
a
different
data
type
but
I'm
similar.
F
It's
probably
more
of
a
there,
so
they're
they're
asking
for
on
list
collection,
extensions
and
array,
flexion
extensions
covering
anything
implements
I
list,
but
it's
it's
basically
one
of
the
this
is
a
fairly
common
operation
for
various
scenarios
and
they
want
it
exposed
all
rightly,
and
they
just
covered
the
three
main
ones.
So.
D
D
K
A
A
C
Thing
potentially
that
we
could
do
as
a
more
generic
operation
would
be
to
have
list.
Allow
you
give
you
access
to
its
underlying
away
as
a
spam
inside
of
a
call
back.
So,
for
example,
there
is
a
method
right
now
on
list
which
is
call
for
et,
which
I
know
we
don't
like,
but
just
consider
for
a
minute.
So
if
we
had
list
dot
with
spam
or
something
like
that,
you
passed
in
the
callback
within
that
callback,
it
gives
you
back
a
span
of
T,
which
represents
here's.
C
F
C
A
F
C
It
you
could
implement
Adana
I
mean
we.
We
would
have
to
be
a
little
careful
here,
because
we
would
want
to
make
sure
that
you
can't
like,
like
you
said,
we
want
to
make
sure
that
you
can't
do
anything
that
would
change
at
least
the
size
of
the
list.
While
the
closure
is
active
but
like
I
mean
we
could
be
back
to
spam,
feel
free
to
change
the
elements
right.
F
C
C
B
C
B
F
L
A
A
C
C
B
For
those
that
aren't
it's
basically
just
a
typical
interlocked,
the
typical
wild
interlocked
update
loop,
where
you
get
the
current
value,
you
then
trying
to
knit
a
lot
compare
exchange
if
it's
the
same
you're
done.
If
it's
not
you
retry
over
the
bride,
get
the
immutable
collection
types
because
immutable
collections
are
immutable
and
some
a
typical
pattern
with
them
is,
if
you're
using
them
to
represent
some
global
state.
B
G
A
B
G
A
B
C
C
On
it,
so
the
where
T
is
class
simply
won't
be
considered
for
inclusion,
because
T
is
a
struct.
In
this
case,
immutable
right,
I
believe
they'll,
explain
about
it.
Yeah
I
just
wanted
to
make
sure
that
by
introducing
this
over
a
little
like
we're,
not
just
gonna
cause
compiler
errors
everywhere,
I
mean
the
interesting
thing.
B
G
G
A
B
Yeah,
so
there
are
lots
of
different
places
where,
especially
in
our
async
code,
we
manufacture
an
exception
in
some
place
in
order
to
like
map
to
some
native
exception
error
or
whatever
native
error
code,
and
then
we
store
that
exception,
someplace
and
then
sometime
in
the
future,
on
a
completely
different
thread
on
a
different
stack.
We
then
throw
this
thing
and
we
lose
any
knowledge
of
where
this
exception
came
from.
Normally,
you
know
where
the
exception
originated
because
it
was
thrown,
but
you
in
that
pattern
it
wasn't
thrown.
G
B
Just
allocated
and
then
stored
and
so
having
the
ability
to
actually
shove
into
the
experiment
like
a
basely
environment
stacktrace
is
useful
and
we
currently
lack
any
such
thing.
You
can
try
and
do
something
like
you
know,
throwing
it
and
then
immediately
catching
it,
but
best
case.
It
only
includes
the
current
stack
frame
because
it
only
includes
like
the
distance
between
where
it
was
thrown
and
caught,
and
so
you
don't
actually
get
environment
that
stack
trace.
You
just
get
literally
the
current
frame.
If
anything,
yeah.
B
Point
where
it's
created
so
like
ago,
I
can't
I
can't
find
some
examples,
but
basically
we
there
are
bunch,
plays
and
we'll
just
take
a
quick
new
win,
3-2
exception
or
new
HTTP
HP
request
exception
or
whatever,
and
then
we
store
it
somewhere,
we're
not
actually
throwing
it
and
then
later
on,
it's
thrown
as
part
of
an
intern
exception
or
its
propagated,
with
exception,
dispatch
info
dot,
throw
or
some
such
thing.
But
we
don't
have
the
original
stack
trace
from
where
the
actual
error
occurred.
Okay,.
C
B
Super
common,
sometimes
directly,
sometimes
indirectly
like
if
you
used
like
so
a
very
common
case,
would
be
task:
completion
source,
not
try,
set
exception
or
set
exception
right,
you're,
storing
an
exception
object,
so
you
might
manufacture
a
new
exception
and
you
store
it
into
the
task.
Internally.
Task
is
saying:
exception.
Dispatch
info
capture
with
the
provided,
exception,
object,
and
then
we
later
await
the
task.
It
does
exception,
dispatch
info
dot
row
so
anytime,
you
see
code
that
does
set
exception
new
exception,
or
you
know
some
such
thing.
B
Q
B
Could
but
then
it
would
only
be
applicable
to
exception
dispatch
info
itself.
There
were
places
as
well,
where
we
like
there
for
better
or
worse.
There
are
some
places
in
I
think
SSL
string,
maybe
where
the
exception
is
just
stored
into
some
field
and
then
at
some
point
later
whatever's
in
that
field,
this
store
is
an
inner
exception.
Actually
do
this
new
code
today
for
shipping
new,
it's
for
you
right
there,
whatever
exception
that
we
get
somewhere
from
an
error
occurring,
like
you
know,
we're
an
exception.
B
We
we
got
an
error
code
from
the
server,
and
so
we
manufacture
a
protocol
exception
object
for
that
error
code.
We
published
that
exception
to
a
field
and
then
at
some
point
later
on
another
thread.
A
new
wrapper
exception
is
allocated
and
that
original
exception
is
stored
as
the
inner
and
so
there's
no
exception
dispatch
info
in
the
picture
anywhere.
It's
just
an
exciting,
inter
exception
that
lacks
a
stack
trace.
Q
C
B
G
G
B
G
B
B
A
B
Q
A
B
B
You
mean
what
would
a
pen
current
stacktrace
show
up
at
the
top
of
the
stack
yeah
I,
don't
know
I
kind
of
don't
care,
although
maybe
I'm
being
too
flippant
about
it.
I
mean
the
reason
this
is
relevant
is
simply
because
there's
information
that
we're
currently
losing
that
helps
to
track
down
where
things
came
from.
If.
P
B
B
A
J
B
Yeah-
and
we
still
do
the
exception-
discussion
for
ads
I
mean
it
might
be.
We
could
say
that
set
the
the
scenario
will
be
limited
to
could
be
four
brand
new
exceptions,
and
so
it
could
even
fail
if
the
exception
already
contained
a
stack
trace.
If
we
wanted
it
to
and
then
it
would
only
be
for
the
brand
new
case,
and
we
could
deal
with
things
like
what's
the
separator
between
the
Pens
right
in
the
future,
if
we
ever
needed
the
append
functionality
well,.
R
A
R
K
O
C
Q
Q
Previously,
it
was
more
like
returning
a
pistol
memory
of
here
and
giving
that.
But
that's
this
is
ready.
Daniel
on
I
mean
the
objective
is
to
have
significant
ideas,
strained
or
split,
but
for
Spanish
art
since
innerspring
allocates.
This
is
giving
back
in
the
numerator
that
he
did
for
each
over
the
slices
that
you
are
sitting
and
where
would
you
put
this.
R
O
Q
S
Tea
should
we
have
something
you
can
pass
in
a
comparative.
This
thing
already
equip.
F
T
J
C
B
I
guess
my
my
feedback
would
be
that
we
need
to
be
careful
about
scope
creep
because
the
the
primary
need
for
this
is
using
like
doing
string
splitting,
but
with
spans
right
and-
and
it's
almost
always
not
always,
but
almost
always
with
a
single
character.
It's
a
comma!
It's
a
semicolon.
It's
some
single
character.
B
Realized
there's
another
overload,
but
if
you
look
at
the
use
cake-like
the
use
cases
for
them.
The
90%
case
is
for
the
one
that
takes
I
either
just
pure
white
space
like
because
you
can
take
a
separator
yeah
or
that
or
that
uses
the
single
character,
because
it's
usually
some
you're
splitting
tab,
delimited
or
common
delimited
or
colon
to
limit
or
some
kind
of.
Q
B
C
Q
Q
C
What
are
they
actually
very
commonly?
What
I
would
pretend
on
them?
Anything
in
the
what
what
I
would
probably
prefer
is
that
we
have
overloaded
specifically
for
charm
and
those
overloads
also
take
things
like
string
comparison
and
so
on
inside
of
them,
because
when
you're
doing
when
you're
doing
a
culture
aware
split,
it's
actually
really
non-trivial
component
off
core.
So
if
we
have
an
API
that
could
take
a
string
comparison
as
a
parameter,
then
we
could
all
of
the
logic
in
there.
C
B
Q
B
B
Yeah
so
my
my
preference
basically
be
since
I
believe
the
vast
majority
of
use
cases
here
are
and
and
also
the
complexity
comes
from
strings
right.
The
multi
character
sequences
is
primarily
about
Unicode,
not
entirely,
but
primarily
Springs
string.
Split
options
is
primarily
about
strings,
although
you
could
theoretically
say
I
want
a
room
with
MTM
trees
regardless,
but
what
is
empty
need.
B
The
it
seems
like
if
we
just
had
split
based
on
read-only
span
of
char,
with
whatever
overloads
we
wanted
that
map,
as
close
to
one-to-one
with
the
current
overload,
so
that
we
have
just
replacing
string
with
read-only
span
char
and
not
having
the
ones
that
take
arrays
of
strings.
But
that
would
get
us
90%
of
the
way
there
we'd
get
9%
of
the
remaining
10%
of
the
way
there
by
having
one
that
was
just
we'd
only
span
of
of
tea,
with
a
tea
separator
spell
PA.
B
B
Q
What
you
could
build
wrong,
but
most
of
the
time
in
the
artists
pan
API
is
there
good.
Indistinct
was
based
on
concrete
scenarios
and
even
further
90%
case
I
think
those
days
you
mention,
obviously
exists.
What
people
can
do
you
can
use
use,
string,
AP
is,
and
whatever
is
they're
doing
now.
You
know,
unless
you
did
enough
evidence
to
say,
look
people
actually
using
not
asking
questions
after
separation
or
emojis
or
might
be
by
it
I
well,.
Q
B
Q
Q
A
A
Q
B
F
T
B
A
P
F
B
B
Q
B
B
C
Honestly,
I
do
like
the
idea
of
those
just
being
two
different
methods
entirely,
like
I
feel
like
string
dots,
which
should
have
been
that
way,
because
one
method
would
be
documented
as
I
split
on
one
space,
and
one
method
would
be
documented
as
place
flip
on
exactly
when
you
tell
me
this,
but
on
I.
Think.
I
Q
A
I
mean
this
is
this:
is
the
link
all
right?
That's
all
my
point
of
view.
The
difference
between
this
and
everything
is
generic
is
is
close
to
zero.
The
only
one
where
this
is
funky
is
this
one
yeah
right,
it
would
be
a
bit
weird
to
say
your
partner
may
be
the
only
span
of
byte,
and
then
you
specify
a
string
separator
like
what
does
that
mean?
Also.
A
C
J
C
F
F
But
but
this
is,
but
we
did
that
for
the
last
one,
knowing
that
we
needed
to
add
that
we'd
only
span
defied
overload
in
this
case,
it's
saying
there
for
the
next
release.
If
we
add
tar,
eight
only
add
the
charité
overload,
otherwise
consider
adding
we'd
only
span
a
fight
that
way
we
don't
have
to
unnecessarily
duplicate
in
the
next
year.
We'll
work
my.
J
B
B
Mean
yeah
before
we
do
it
just
to
highlight,
so
we
haven't
factored
in
the
string
split
options
into
the
first
three,
but
personally,
I.
Think
that's
fine,
because
we're
talking
about
something
relatively
low
level
here,
we're
not
allocating
anything.
You're
gonna
get
your
calling
move!
Next
move
next
move
next
and
each
time
you're
gonna
get
back
a
range
and
if
the
range
is
empty,
you
could
choose
to
skip
it.
Q
B
J
Q
A
A
A
Made
logically,
what
I
would
expect
is
the
space
that
enumerator
would
I,
don't
know
how
you
would
implement
it
honestly,
like
us
and
I.
How
do
you
implement
this
business
like
this?
Guy
has
to
do
the
parsing
incrementally,
as
you
como
connects
right,
we
would
have
to
have
different
implementations
or
it
needs
modes
or
something
on
it
right,
so
sharing
the
same
time
could
be
hard.
F
A
C
Based
on
what
your
news
yeah,
based
on
what
points
to
be
supported,
not
necessarily
because
how
do
you
do
like
white
space
versus
list
or
versus
strength
or
stuff
like
that,
I
mean
you,
you
could
do
it
it
just.
It
means
that
there's
a
lot
of
state
contained
within
the
Union
is.
This
is
one
of
the
problems
I
had
with
all
of
the
Rooney
enumeration
AP
is
like
I,
actually
had
to
introduce
like
four
different,
a
new
minor
types,
because
they
all
have
slightly
different
logic.
Yeah.
A
I
mean,
quite
frankly,
I
don't
care
too
much,
because
this
is
not
a
tie.
They
accept
people
to
exchange
at
the
extent
people
to
just
buy
for
each
right
and
whatever
the
type
is,
is
retired.
Let's
all
somebody
make
them
s
the
type,
because
we
don't
expect
anybody
to
ever
put
them
anywhere
right
now,
so
long,
the
stay.
This
is
something
that
I
think
should
be
good.
Mobile,
instrumentation
and
you
know
see
what
works
I
want.
C
To
talk
about
the
range
exactly
like
it's
this:
is
it
going
to
be
a
common
scenario
that
someone's
going
to
ask?
Is
this
element
of
the
enumeration
empty,
and
how
do
you
get
that
answer
if
you're,
given
a
range,
the
closest
thing
I
could
think
of
is
spanned
sub
range
both
length
equals
equals
zero,
exposing
range
so.
B
Q
B
B
A
Q
Q
G
Q
A
A
Properly
I
mean
like
even
the
chaining,
is
not
a
problem,
because
it
depends
what
what
would
the
calling
methods
he
is
constrained
by
a
and
that's
independent?
What
this
method
is
constrained
by
right,
like
the
only
case,
removing
a
constraint
can
be
a
breaking
changes
if
it's.
If
it's
used
in
overload
resolution
for
betterness
right
and
now
you
remove
the
constraint,
no
more
things
show
up
in
the
Nathan
to
give
it
its
bed
yeah,
that's
in
the
normal
realm
of
like
adding
an
ethic
and
organization
anyway.