►
From YouTube: SES Meeting: Layering Blocks
Description
Wherein Caridy shows us how well layering module blocks on first-class modules works out, and we discuss _at length_ how import.meta interacts between first-class modules, module blocks, and direct eval.
A
Okay,
welcome
to
the
s
meeting
today
is
august
3rd
of
2022,
and
we
have
three
topics
on
the
agenda.
A
Charity
has
proposed
a
text
that
illustrates
how
the
module
block
proposal
is
affected
if
it's
built
on
top
of
a
layer,
0
proposal,
so
we're
going
to
start
with
a
review
of
that
and
then
follow
up
with
the
conversation
continuing
our
conversation
from
last
week
on
the
signature
of
the
module
constructor
and
and
then,
if
we
get
some
time
we
can
remaining
after
we
make
some
choices
about
how
we
want
to
shape
the
compartment's
proposal
and
whether
to
break
it
up
into
a
epic
of
layers
or
saga
of
stanzas
more
on
that
later
karity.
B
Okay,
okay,
then
share
my
screens.
Hopefully
you
can
see
so
nicola,
and
I
we
were
talking
about
this
and
as
a
as
a
validation
of
what
layer
zero
is
trying
to
do
how
other
proposals,
like
motor
block,
will
be
able
to
built
on
top
of
layer
zero.
B
So
he
was
supposed
to
do
this,
but
he's
on
vacation.
So
I
took
a
stash
at
it
and
it
seems
that
it's
coming
together
very
well
in
a
sense
that
there
is
only
two
meaningful
changes
in
the
spec
that
needs
to
happen
to
support
module
blocks.
The
first
one
is
obviously
having
a
new
syntax
specified
there.
B
The
the
second
one
is
to
define
the
runtime
semantics
evaluation,
semantics
of
module
block
and
when
you
start
looking
at
this
code
here
is
quite
similar
to
what
we
do
in
the
module
constructor
this
one,
the
module,
constructor
percent
module
percent.
B
It's
very
similar
to
that
in
a
sense
that
what
we're
doing
is,
let's
get
some
referral,
which
in
this
case
will
be
either
in
a
script
or
a
module.
It
could
also
be
known.
There
are
certain
instances
in
which
this
might
be
known,
but
I
don't
have
all
the
details
there,
I
believe.
Is
it
the
on
click
on
an
html
element
that
can
give
you
a
an
old
referral?
B
Something
like
that,
but
you
get
the
referral
and
then,
with
that
referral,
what
you
do
is
basically
using
that
referral
to
resolve
the
same
way
that
you
resolve
today,
anything
that
represent
and
specify
associated
to
a
module.
B
So
basically,
you
use
a
referral
as
a
closure
to
create
an
import
closure
function
that
allow
you
to
delegate
the
the
resolution
of
anything
that
depends
on
that
module
block.
Sorry,
anything
that
the
module
block
depends
on.
So
this
is
very
similar
to
what
we
do.
The
difference
is
that
in
the
module
constructor,
we
can
look
at
that.
We
don't
do
this
one.
B
We
do
the
new
mechanism
to
resolve
the
module
intents,
because
dependencies
of
module
instance
must
be
depend
must
be
modulated
itself,
which
is
different
here
here,
we're
resolving
to
a
module.
That
is
not
necessarily
a
module
in
terms.
It's
just
the
same
mechanism
we
use
for
dynamic
import
basically,
so
this
is
pretty
straightforward.
B
As
for
the
source
very
straightforward,
well,
we
created
a
source
module
source
intent.
We
get
the
body
that
was
provided
via
the
the
module
body
was
provided
via
the
the
the
syntax,
and
then
we
parsed
that
source
and
we
we
yeah.
We,
we
parsed
that
and
we
had
attached
to
the
internal
slot
of
the
module
source.
Intense
the
same.
We
do
for
the
modules,
so
we
ended
up
returning
the
module
intense
down
so
very
straightforward.
B
Do
whatever
the
host
needs
to
do
in
order
to
accommodate
things
that
are
needed
for
the
module
record
to
work,
and
this
specifically,
I
can
think
about
two
things
there.
First,
this
mechanics
can
define
the
host
define
field
associated
to
this
module
record.
It
can
also
define
the.
B
Where
is
it
here?
You
can
also
define
the
import
meta
fields
that
you
might
be
able
to
inherit
from
not
inherit,
but
you
will
be
able
to
copy
them
from
the
from
the
referral.
So,
basically,
when
you
do
a
module
block,
the
module
method,
you're
gonna
get
is
exactly
the
same
as
the
module
method
you
get
outside
of
the
motor
block.
B
It's
the
same
thing,
so
this
will
give
sufficient
information
to
the
hosts
to
do
the
wiring
between
the
two
records
to
try
to
associate
the
two
records
in
a
way
that
when
you
ask
for
the
meta,
you
can
build
that
meta
object
for
the
for
the
motor
block
intents
and
that's
it
this
other
one
is
just
one
change
of
one
of
the
abstract
operations
from
the
layer
zero.
I
believe
we
can
get
away
without
this,
so
I'll
probably
make
some
changes
there
to
accommodate
this.
This
is
just
unnecessary.
B
I
would
say
so
once
I
make
that
change.
This
will
go
away
and
really
the
new
spec
will
be
just
simply
the
definition
of
the
syntax
and
the
runtime
semantics
of
that
new
syntax
and
that's
it.
There
will
be
nothing
else
and
then
the
whole
initialization
block,
so
it's
very,
very
simple:
the
tricks
that
we
came
up
with,
which
was
the
creation
of
the
closure
as
the
input
hook.
B
So
you
think
you
see
here
in
this
line
line
10
step
10,
you
see,
we
create
a
function
built
a
built-in
function
out
of
this
definition
of
disclosure.
This
is
what
gave
different
entrances,
the
ability
to
behave
differently
to
resolve
their
dependencies
and
that's
the
trick.
We
have
these
internal
slots
that
we
use
for
resolving
the
things
that
you
need.
B
So
when
you
do
import
on
these
interns
that
is
returning
here,
they
all
it's
just
going
to
look
at
the
input
hook
and
try
to
go
with
that
to
resolve
the
dependencies
and
then
initialize
the
the
module.
So
that's
pretty
much
it
there's
really
not
much
compared
to
what
we
have
right
now
there,
if
you're
going
to
see
if
I
can
get
to
that,
if
you
go
into
the
current
spec,
which
might
be
linked
out
from
here
somewhere.
B
Well,
it's
you
we
can.
We
can
look
at
it
at
the
deep.
The
deep
is
huge
like
where
we
have
so
it's
basically
removing
the
majority
of
the
spectex
that
we
have
in
there.
But
it's
a
lot
of
red
in
here
that
we
don't
necessarily
need
anymore,
because
the
layer
zero
does
that
for
us.
B
So
that's
pretty
much
it.
I
think
it's
a
good
validation.
I
think
it
gave
us
more
ammunition
to
continue
this
path,
making
small
adjustments
and
then
then
we
can
go
from
there.
B
C
B
Layer,
0
is,
is
here
so
it's,
it
has
a
couple
of
modifications
on
the
current
spec
one
runtime
semantics,
one
new.
C
B
No
there's
none,
there's
one
that
I'm
proposing
only
one.
Let
me
see
if
I
can
find
it
here,
which
is
that
the
this
parse
module
source,
which
produce
a
a
record,
called
now
a
a
a
module
sort
of
record,
which
is
a
new
kind
of
record,
which
is
just
for
the
an
artifact.
So
eventually,
when
you
know
it's
a
sort
of
text
model
record,
you
just
copy
those
things
into
the
source
text
module
record.
So
that
thing
that
does
that
is
expecting
right.
B
B
B
Rather
than
calling
the,
where
is
it
here,
motion
source,
rather
than
calling,
let
me
say,
harsh
module
source?
What
do
we
call
that
we
call
it
here
so
rather
than
calling
this
thing
here,
we
parse
this
first
and
then
the
result
of
that
is
what
we
passed
to
the
abstract
operation,
so
that.
C
B
B
So
yeah
so,
but
I
I
think
the
important
part
is
that
it's
very,
very,
very,
very
similar.
There
are
still
a
couple
of
things
like
this
one
resolved
to
a
modular
record,
a
source
tax
model
record.
B
We
don't
support
that
in
layer
zero,
but
I
think
it's
we
are
in
debating
that
part
still
nicola,
and
I
so
whether
or
not
this
this
should
be
sufficient,
but
I
think
we
can
accommodate.
A
Yeah,
I
think
that
the
only
thing
I
have
to
say
about
like
so
for
I
mean
first
foremost,
this
looks
fantastic.
It's
your
the
punchline
is
fantastic.
The
the
large
point
that
that
the
layering
is
going
to
work
well
for
these
proposals
is
is
fantastic.
A
B
So
on
that,
on
that
note,
I
think
I
had
a
note
here.
I
I
think
I
added
node
at
the
bottom
of
it.
Let
me
see
if
I
can
pull
it
up
so
so,
who?
What
can
this
be?
The?
Let
me
see
what
this
referral
can
be
and
it
can
be
a
no.
It
can
be
a
script
which,
in
those
cases,
you
will
not
be
able
to
visualize
that
thing
if
it
is
a
module
record,
that
is,
that
does
not
have
an
associated
module
intense.
So
it's
not
derivative
from
the
module
instance.
B
You
will
not
be
able
to
visualize
that,
but
if
this
thing
is
a
is
a
is
a
modular
intense.
Basically
imagine
that
I
have
a
module
block
inside
a
source
that
I
create
using
new
module
source,
so
the
intense
that
is
the
referral
of
it
will
be
the
intense,
a
modular
record
that
is
associated
to
the
intent
that
you
create
off
of
that
source,
and
so
in
that
case,
the
the
virtualization
will
be,
as
you
said,
complicated,
because
this
really
the
host
doesn't
know
much
about
it.
B
B
Yeah
yeah
I
can.
I
can
probably
one
thing
that
I
might
be
able
to
do,
and
then
now
you
mentioned,
I
can
add
a
new
step
before
this
one,
which
is
some
just
simply
saying.
If
the
referral
is
a
module
record
copy,
the
value
of
the
import
meta
into
it,
that
value
can
be
set
or
could
be
undefined
and
either
way
it
works.
B
If
it
is
undefined
when
someone
access
it,
it
will
create
it
by
the
host
if
it
is
defined
and
it
will
use
it
and
therefore
you
get
you
get
the
the
thing
that
you
need,
so
it
might
be
might
be
easier
to
accommodate
that
in
such
a
way
that
we
can
still
call
the
whole
initialized
block,
but
doesn't
do
much
for
things
that
it
doesn't
know.
C
I'm
not
understanding
why
we
need
a
new
host
hook
at
all.
Why
we
can't
define
what
it
is.
The
relation
I
mean,
the
module
block
is
the
you
know
the
semantics
of
it
has
to
do
with
its
relationship
to
the
module
that
contains
it.
Yeah
the
module
contains
it.
If
it's
created
with
a
module
constructor,
then
the
referral-
and
you
have
me
pronouncing
it-
referral
now.
Referral
and
import
meta
is
passed
into
the
module
constructor
parametrically
without
anything
needing
to
look
at
it.
No.
A
B
And
so
at
this
point,
you're
not
creating
any
any
intents
in
user
lab
that
are
created
by
the
host
by
normally
by
language,
so
the
language
is
creating
that
intent
for
you
and
the
other
data.
If
you
access
the
implementer
from
within
the
module
block,
okay,
you're
gonna
get
into
this.
This
is
the
runtime
semantics
for
input.
B
Yeah,
this
is
just
the
syntax
runtime
semantics
of
the
syntax,
so
input
of
meta
will
be
computed
during
the
runtime
semantic,
the
evaluation
of
it
and
when
the
code
needs
to
evaluate
that
syntax,
it
will
get
to
this
astra
this.
This
is
from
time
semantics
and
it
will
basically
attempt
to
get
the
associated
module
or
a
script
which
in
this
case
it
would
be
this
the
module
block.
So
this
is
going
to
be
the
module
block
from
that
module
block.
B
It
would
try
to
see
if
the
implementers
are
defined
and
then
based
on
that
it
will
decide
to
create
it
or
not
and
when
it
creates
it
it,
it
asks
the
post
to
create
it,
because,
okay,
so.
C
The
host
decides,
what
referrer
identifies
the
containing
module
and
and
what
import
meta
is
in
scope
in
the
containing
module
and
then,
when
the
containing
module
evaluates
a
module
block
expression,
then
the
module
block
expression
just
inherit
without
does
not
you
know,
there's
no
more
decisions
for
the
house,
there's
no
more
invocations
of
a
host.
C
B
C
B
I'm
still
confused,
I'm
still
confused,
because
the
module
block
is
subject
to
the
host,
in
the
sense
that
if
the
example
that
I
was
given
like
as
a
module
evaluated
by
the
host,
your
script
type
module.
Something
like
that
and
you
have
a
source
and
there's
a
module
blocking
that
source,
the
import
methods
of
that
don't
need.
You
don't
have
a
way
to
virtualize
that,
because
you're,
not
instantiating,
that
intense,
that's
right,
the
syntax
is
doing
that.
B
A
C
No,
I'm
saying
that
that
the
oh
I'm
sorry,
the
the
the
evaluation
of
of
the
import
meta
expression,
but
the
binding
the
value
that
it
evaluates
to.
A
C
And
without
at
that
time,
involving
a
host
hook.
A
C
If
it's
not
observable,
if
it's
not
an
observable
change,
then
in
terms
of
what
implementations
need
to
do
now,
then
it's
not
an
implementation
burden.
A
I
think
I
know
a
reason
why
implementaries
might
bulk,
and
that
would
be
that.
Oh
no,
we
could.
A
Doesn't
yeah
yeah
so
so
let
me
put
it
this
way
is
that
the
the
module
block
is
for
one,
the
module
block
might
never
be
used,
in
which
case
instantiating
import
meta
is
a
burden
on
the
runtime
and
then
also
the
the
module
block
may
itself
never
utter
import
meta,
in
which
case
there's
no
possibility
that
it
would
ever
be
used
at
all
yeah.
B
B
Here
we
make
this
an
abstract
operation,
and
then
we
call
this
operation
here
and
we
call
the
same
operation
on
the
module
blocks
here
to
compute
the
meta
for
that
referral,
and
then
we
copy
that
into
the
import
meta
internal
slot,
and
that
means
that
if
you
have
a
modular
source,
the
meta
will
be
the
meta
that
was
compute
for
once
upfront
ahead
of
time
by
the
by
the
runtime
semantics
of
the
in
the
referral,
so
that
that
might
be
easier
to
digest
for
them.
B
C
Sorry,
if
you
have
a
module
block
expression
inside
the
source,
then
the
text
of
the
module
block
expression
is
also
statically
there
and
if
it
doesn't
mention
import
meta,
then
the
module.
You
know
if
nothing
in
the
module,
including
the
nested
module
blocks,
mentions
import
meta.
Then
the
module
as
a
whole
has
not
mentioned
in
part
meta,
and
you
don't
need
to
compute
it
right.
B
Yeah,
that's
what
this
is
supposed
to
do.
They
host
initialized
monitor
block
by
the
way
it
gets
a
referral.
He
gets
the
record.
He
decides
whether
or
not
he
has
to
do
anything
upfront
for
whatever
you
name
it
like
it
doesn't
really
matter
whatever
it
is.
C
Okay,
but
that's
that's
only
for
the
outermost
source
unit,
right
the
if,
if
an
inner
source
unit
says
import
meta,
then
the.
B
I
don't
know
I
don't
know,
but
this
one
can't
resolve
to
know.
Basically
god,
oh
my.
C
C
B
C
B
Yeah,
it's
like
like
it
would
be
new,
so
I
think
it
would
be
new
because
well,
there
is
a
execution
context
at
that
point.
B
C
So
I
think
of
one
you
know
of
all
the
ways
to
it
to
explain:
direct
eval,
the
one
that
I've
had
the
most
most
success
with
as
well
as
you
know,
for
under
explaining
it
to
myself
is
as
an
unquote
operation
that
whatever
the
string
is.
That's
the
argument
to
the
directive,
l,
it's
as
close
as
possible
to
as
if
that
string
had
appeared
lexically
in
the
in
the
source
instead
of
the
direct
eval
expression.
C
If
you
it,
you
know
it
evaluates
almost
as
if
you
had
just
spliced
that
string
into
the
containing
source
and
we've
already
made
a
bunch
of
exceptions
to
that,
and
those
exceptions
are
are
there.
But
in
general
we
try
to
inherit
as
much
as
possible
across
the
directival
boundary
that
we
would
have
inherited
across
a
block
boundary.
B
Yeah,
I
think
we're
good
we're
good
we're
good
mark,
I
think,
even
if
it
is
inside
the
evolve,
direct
or
indirect
evolve.
No,
no
just.
B
So
the
direct
evolve,
I
believe,
will
be
fine,
because
you
will
have
an
execution
context.
You
will
be
able
to
find
that
execution
contact.
You
will
be
able
to
find
the
topmost
execution
context
and
and
you'll
be
able
to
find
that
is
inside.
This
eval
is
happening
inside
a
module
record
and
you
will
result
to
that
module
record
there,
so
it
might
be
fine.
B
B
There
is
a
topmost
execution
contact
as
well,
which
is
the
outer
one
of
the
evolve,
and
they
will
be
able
to
get
that
and
determine
whether
that's
in
a
script
or
a
module,
and
they
will
determine
that
it's
a
module
that
is
doing
eval
or
a
script
that
is
doing
evolve.
They
will
be
able
to
link
to
that.
So
I
think
we
should
be
fine.
C
B
Yeah,
I
was
testing
that
the
other
day
doing
important
meta
from
from
front
eval
and
he
throws.
C
B
B
So
if,
if
you
have
a
module
source
right
here
in
a
script-
and
this
is
doing
import
meta
here
somehow
this
will
be
problematic
because
I'm
not
problematic,
they
need
to
figure
the
host
needs
to
figure
what
the
implementation
will
do
in
that
case,
because
if
you
do
import
meta
in
a
script,
it
will
fail.
So
it's
saying:
oh
it
cannot.
It
can
only.
It
cannot
be
used
outside
of
the
module
right,
but
you
will
be
inside
a
module
because
you're
doing
you're
doing
this
so.
C
B
The
what
is
the
method
for
that?
You
cannot
say
the
same
message
because
you're
inside
a
module,
but
you
don't
have
a
referral.
So
in
that
case
I
believe
it
will
be
the
same
mechanism
that
the
holes
used
when
you
do
something
like
an
script.
B
A
script
source,
yada
yada
type,
monitor
where
there
is
no
referral
at
that
point
and
they
still
be
able
to
construct
a
import
method.
So
that's
why
it
is
important
to
still
have
this
thing
here
in
my
opinion,
because
they
give
the
host
the
ability
to
decide
what
the
implemental
would
look
like,
but
the
refactor
I
mentioned
might
be
problematic
because
by
the
time
you
try
to
do
this
operation,
there
will
be
no
referral.
C
So
actually
this
this
comes
up
already
in
the
current
spec,
and
the
current
current
implementations
must
do
something.
I
just
noticed
this,
which
is,
if
you're
in
a
module-
and
you
do
exactly
if
you,
if
you're
in
a
module
a
then
if
you
did
a.
A
C
So
if
you're
in
module
a
and
you
do
a
direct
vowel
of
a
script
containing
a
dynamic
import
expression,
normally,
if
you
have
a
dynamic
import
expression
inside
a
script,
it
has
no
refer.
But
if
you
have
a
direct
vowel
inside
a
module
where
the
directive
val
is
evaluating
the
script
that
has
a
dynamic
import
expression.
What's
the
referrer.
B
Yeah
it's
this
one
here.
This
is
the
same
mechanism,
so
that
part.
I
think
that
part.
I'm
convinced
that
this
is
not
a
problem,
because
you're
gonna
hit
this
and
we
can.
We
can
look
at
the
import
semantics
I
think,
is
somewhere
here
close
here.
You
will
see
that
we
use
the
same
mechanic,
so
it's
here
so
you're
getting
when
you
do
dynamic
input,
you're,
getting
the
active
module
and
that
works
fine,
so
that
that
part
is
not
a
problem.
B
So
I'm
talking
about
this
one
here,
so
I
might
be
able
to
do
something.
Like
said,
oh
no,
sorry,
I
said
this
is
a
module
record,
dot,
m4,
meta
b
sum
abstract
operation.
B
So
you
do
this
all
good
and
dandy,
because
you
have
when,
when
this
is
a
modular
record,
but
if
this
isn't
a
script,
it
might
be
problematic
again.
Someone
has
to
call
the
host
at
some
point,
you're
not
going
to
escape
that.
C
So
so
so
so
when
you
say
script
I
mean,
I
think,
we've
just
convinced
ourselves
that
there's
two
script,
cases
that
need
to
be
distinguished,
there's
a
direct
there's,
a
direct
vowel
that
is
in
a
module
where
the
what
the
direct
vowel
evaluates,
is
always
defined
as
a
script.
But
that's
still
happening
as
a
direct
eval
inside
a
module
and
then.
B
C
B
Right,
the
problem,
the
solution
that
I
was
proposing,
which
was
let
me
go
back
to
the
solution
I
was
proposing.
The
solution
was
that
we
can
make
this
an
abstract
operation.
So
as
long
as
you
have
a
modular
record,
you
can
call
the
disaster
operation
that
produces
the
module
meta
and
it
does
hose.
Operations
are
fine,
but
you
always
get
this
module
mental
that
you
can
cash
at
the
module
record
level.
B
That
was
the
proposed
solution
that
proposed
solution
fails,
because
the
referral
that
I
have
is
not
always
a
modular
record
and
because
it's
not
always
a
modular
record,
I
have
no
ways
to
create
what
I
need
without
talking
to
the
host.
B
And
as
a
result
of
that,
I
I
feel
that
they
have
when
they,
because
they
they
say,
okay
implement,
that
is
happening
always
inside
a
source.
Look
at
it
step.
Two
is
saying
it
has
to
be
a
source
text,
module
record
fine.
B
C
So
I
just
realized
that
this
step
the
static
part
of
the
the
source,
this
the
source
text,
module
record
api.
That
says,
does
it
contain
an
import
meta
that
should
be
something
like
might
it
contain
and
import
meta
where
it's
true
either.
If
there's
texturally
and
import
meta
or
there's
textually
a
direct
develop.
A
A
So
currently
we
have
in
in
the
compartments
proposal,
there
are
property,
there's
a
property
needs
import
meta
and
the
premise
has
been
so
far
that
you
can
just
syntactically
analyze.
You
can
statically
analyze.
A
The
content
of
the
of
the
module
to
see
whether
it
uses
import
meta,
syntax
anywhere
mark
is
mark's
point
is
that
that
is
not
sufficient,
or
rather
that
needs
meta
must
be
true
either
if
there's
an
import
meta,
syntax
used
in
the
module
or
if
there
is
a
direct
eval
that
might
use
import
meta,
and
I
think
that
syntactically
yeah,
if
there's
a
if
there's
a
direct
eval
node
in
the
syntax
tree
that
needs
import,
needs
to
be
true.
Basically,
oh.
C
If
there's
a
dir,
what
I'm,
what
I'm
suggesting
is,
if
you're
doing
a
direct
eval
inside
a
module
and
the
dir
and
these
the
the
direct
eval,
the
you
know,
the
syntactic
unit,
the
direct
deval
evaluates
is
a
script,
but
now
with
module
blocks
proposal,
the
script
can
textually
contain
a
module
block
the
mod
that
the
module
block
could
have
an
import
meta.
So
now
it's
possible
for
the
direct
deval
to
evaluate
a
string
that
that
contains
an
import
meta.
B
B
C
It's
you're
only
so
eager
creation,
even
if
it's
only
for
modules
or
your
top-level
source
units
that
contain
either
an
import,
meta
expression
or
a
direct
eval
expression.
In
no
other
case,
do
you
need
to
create
it
at
all.
B
C
B
Right
but
remember
that
the
remember-
and
this
might
be
problematic
in
a
sense
that
it's
very
difficult-
I
I
don't
know
any
artifact
of
the
spec
that
today
allow
you
to
accurately
predict
the
presence
of
a
direct
evolve.
C
C
So
so
ignore
that
only
if
it
textually
contains
the
direct
eval,
syntax
or
it
textually
contains
the
import,
meta,
syntax.
C
B
Where's
that
record,
I
don't
think
we
have
it
right
now.
I.
A
A
B
Yeah,
I
don't
think
we
have
that
detail,
but
we
have
talked
about
having
that
detail
specified
somewhere.
Okay,
similar
to
these
are
the
things
that
we
have
in
here
like
this
one,
whether
or
not
it
has
a
tla,
yes
and
garage.
B
B
Okay,
yeah
and
that
value
will
be
will
be
basically
whether
or
not
you
have
a
directive
or
you
have
imprometa
in
the
source,
correct
and
and
with
that
information
you
will
be
able
to
I'm
trying
to
build
momentum
here.
Sorry
give
me
a
second,
so
with
that
information
you
will
be
able
to
make
determinations.
B
B
B
C
C
Right,
you
can
always
languages,
do
lazy,
optimizations
of
eager
semantics
all
the
time,
but
when
they
do
that,
it's
not
the
host,
that's
being
called
it's.
The
implementation,
that's
being
called
so
a
way
to
describe
what
the
implementations
are
currently
doing
is
it's
as
if
the
host
had
made
all
of
the
host
discretionary
decisions
up
front
had
told
the
implementation
what
to
lazily
compute,
but
it
hadn't
actually
computed
it
yet
and
then
later
the
late,
the
implementation
lazily
computes
something,
but
it
does
it
in
a
way.
B
B
You
have
to
do
it
for
the
for
the
module
block
as
well,
because
the
module
block
retains
certain
hose
defined
behavior
associated
to
where
that
module
block
was
declared.
C
B
The
whole
still
wants
to
retain
certain
capabilities
on
that
module,
so
the
module
block,
because
first
we
don't
know
how
that's
going
to
be
played
out
in
the
debugger
and
so
on
the
csp
associated
to
it.
I
think
that
one's
not
a
problem,
because
it's
already
parsed,
so
there
are
certain
things
that
might
be
needed.
Anything.
That's
only.
C
C
B
So
it's
here's.
The
problem
defined
sorry
hold
the
fine,
so
for
a
oh,
I'm
sorry
typo
given
so
when
does
the
so
first
of
all,
the
first
question
about
this
is:
does
this
module
block
what
requires
to
have
a
host
defined
internal
slot
being
said,
that's
number
one
and
number
two
is:
when
is
that
value
going
to
be
set?
C
Okay,
if
the
only
thing
the
host
can
do
is
set
the
host
defined
field,
where
the
host
defined
field
is
never
used
by
the
specification
for
anything,
and
obviously
it
wouldn't
be.
That's
the
that
we
do
that
consistently
with
the
host
defined
field.
If
the
only
thing
the
host
can
do
is
to
set
the
host
defined
field
and
everything
else
is
determined
by
the
spec,
then
that's
fine.
C
I
think
that
that
in
fact
we
could
erase
all
of
the
host
defined
fields
from
the
language
and
the
implementation
would
still
feel
free
to
add
host
defined
data
to
all
the
records
it
wanted
to,
because
if
it's
only
using
it
for
semantics,
that's
outside
of
what's
observable
in
language,
the
language
itself
didn't
ever
even
need
to
mention
the
top.
The
existence
of
a
house
defined
field.
B
Okay,
I
like
that
you
still
have
to
provide
the
two
things,
though,
to
that
hose
asteroid
operation,
you
need
to
give
the
quorum
on
your
record
and
the
referral.
C
B
C
B
Okay,
so
that
helps
because
here
we
have
a
question
and
nicole-
and
I
were
going
back
and
forth
like
what
to
do
with
the
hose
defined
when
you're
creating
an
intense
from
a
new
source
module
module
source
and
and
we
can,
we
can
defer
this
set
it
to
undefined,
and
then
we
create
the
intense
we
can
get
the
referral
and
then
give
it
to
the
host,
so
the
host
can
define
whatever
they
need
to
define
in
that
case,
but,
okay,
okay,
I
think
I
have
sufficient
information
now.
C
Yeah
as
just
a
good
donkey
experiment,
if
somebody
proposed
a
a
a
change
to
the
spec,
where
every
time
the
language
created
a
function,
it
called
out
to
the
host
to
add
a
host,
define
the
value
of
a
host
defined
field
to
each
function.
So
each
function
had
a
host
defined
field
and
there
was
a
call
out
to
the
host
for
the
value
of
the
field
on
each
function.
Creation
that
would
not
be
an
observable
change
language.
C
A
All
right
we're
at
time
I'm
going
crazy.
B
Sorry,
can
you
open
an
issue
somewhere,
so
we
can
track
the?
We
don't
forget
and
we
can
track
the
the
new
field
on
the
module
record
or
whether
or
not
it
has
it
needs
a
meta
because
we
don't
have
it
yet
anywhere,
not
layers
they're,
not
not
nowhere
else.
So
we
need
to
keep
that
somewhere.
So
we
can
go
back
and
do
that.
A
Let's,
let's
chat
out
of
band
and
figure
out
where
to
put
that?
Okay,
all
right
so
next
week,
we'll
continue
with
the
signature
of
the
module
constructor
and
whether
to
break
the
proposal
up
into
separate
proposals
in
an
epic
all
right.
Thank
you.
Everyone.