►
From YouTube: OMR Architecture Meeting 20210218
Description
Agenda:
* Initialize/shutdown portlib in JitBuilder and Test Compiler (#5798) [ @nbhuiyan ]
* Discuss state of Options rework (#3675)
A
A
May
not
be
a
very
long
meeting,
but
but
still
we
have
two
things
that
we
can
spend
some
time
on
today.
A
The
first
is
an
update
from
nazim
on
some
work
that
we
had
talked
about
late
last
year
on
providing
port
library
initialization
for
components
that
are
that
are
that
are
using
jit
builder,
and
he
had
done
some
work
with
that
last
or
he
had
done
some
work
with
that
in
the
past,
and
this
will
be
a
sort
of
an
example
of
how
to
to
do
that
initialization.
A
So
I'm
gonna
turn
it
over
to
nazim
to
talk
about
a
pull
request
that
he
opened
recently
in
omr
and
have
us
take
us
through
that
lizzie.
B
Thanks,
sir,
I'm
just
going
to
share
my.
A
B
B
So
this
has
been
a
topic
that
was,
you
know,
discussed
way
back
over
two
years
ago
and
we
never
implemented
something
as
a
full
request
to
have
it
out
there
and
have
some
discussions
about
it,
mainly
because
it
kind
of
got
entangled
with
initialization
of
other
components.
B
B
So
as
it
stands,
so
the
omr
port
library
is
already
built
as
a
compiler
dependency.
That
was
done
a
while
ago.
B
However,
the
work
to
actually
make
use
of
the
port
library
was
halted,
and
so
recently,
within
the
last
year,
a
few
changes
have
happened
where
we
have
the
compiler
and
with
a
member
omar
post
library,
which
is
where
you
know
we
can
access
the
one
report,
library
throughout
the
compilation
and
it
defaults
to
null
unless
the
initialization
of
initialization
of
the
compiler
and
class
happens
with
the
initialized
port
library.
B
So
at
this
time
the
only
use
of
the
old
library
in
the
omar
compiler
is
for
cpu
feature
detection,
but
we
still
need
a
fallback
mechanism
because
we
don't
have.
We
don't
have
the
port
library
in
all
use
cases.
But,
however,
with
jit
builder
and
test
compiler
ensuring
that
there
is
always
an
initialized
port
library,
we
can
get
rid
of
these
fallback
mechanisms
and
and
be
able
to
utilize
the
port
library
more
readily
and
right.
B
Now,
openg9
is
the
only
omar
compiler
user
that
is
actually
setting
this
field
and
using
the
the
cpu
detection
capabilities
in
the
omar
compiler.
B
So,
with
my
pull
request,
5798
all
it
does
is
it
affects
the
jit
butter
and
test
compiler
initialization
is
shut
down
where
we
we
initialize
the
thread
level
which
is
required
for
the
port
library,
and
then
I
use
that
and
then
pass
that
port
library
to
the
compiler
and
the
constructor
and
for
shutdown.
B
So
it
shuts
down
the
port
library
and
the
thread
library.
So
the
way
it
affects
typically
users
is
that,
in
addition
to
initialized
jit
and
initialize
youtube
options,
which
will
you
know,
the
initialization
that
you
saw
here
is
basically
going
to
be
part
of
initialize
it
and
initialize
it
with
options.
B
However,
users
of
jit
builder
should
be
able
to
initialize
their
own
port
library
and,
and
they
will
be
able
to
then
basically
initialize
the
jit
builder,
multiple
times
per
process,
because
right
now
one
of
the
constraint
is
that
the
thread
library
can
be
initialized
once
a
process.
And
if
a
user
is
using
a
jet
builder
like
initialization
builder,
more
than
once,
then
they
will
have
to
be
the
ones
handling
their
own
port
library,
initialization
and
shutdown.
B
B
So
I
just
wanted
to
hear
up
in
the
opinions
about
this
approach,
so
this
is
still
a
work
in
progress,
but
I
just
wanted
to
hear
any
opinions
about
the
approach
being
taken
here
and
so
yeah,
but
it
will
not
be
affecting
existing
tubular
users
because
if
they're
still
using
initialized
jet
and
initialization
options,
they
don't
have
to
handle
the
library
initialization
anymore,
so
yeah.
B
So
that
was
the
end
of
my
slides
over
here,
and
so
I
just
wanted
to
begin
any
discussions
on
this
and
if
you
have
any
questions,
try
to
answer
them
now.
Thank
you.
A
Thanks
nazim,
I
think
I
know
the
answer
to
this,
but
can
you
provide
the
use
case
for
initializing
jitbuilder
multiple
times
per
process.
B
Well,
one
of
the
use
cases.
Actually
in
all
myself,
we
have
the
bit
builder
test
cases
where
we
we
have.
B
We
have
so
we
suppress
testing
test
of
google
test
class
and
then
and
then
we
have
like
each
chess
test
case
in
that
class
utilize,
the
get
builder
every
time
a
test
case
is
wrong,
and
so
over
there
we
cannot
do
multiple
thread
library
initialization,
because
it's
the
same
process
so,
which
is
why
they
will
have
like
in
such
a
case
we'll
have
to
handle
the
initial
they'll
have
to
handle
the
initialization
of
the
port
library.
A
I
guess
another
thing
that
we
can
enter
into
the
official
record.
Here
is
perhaps
a
question
that
mark
had
asked
on
in
the
pr
itself
as
to
what
the
measured
increase
in
size,
insured
object.
Size
was
for,
including
the
part
library
name
right.
B
Yeah,
I
should
have
included
that
in
my
slides,
so
it
will
be
about
a
four
percent
increase
in
file
size
of
the
users
of
jetbuilder.
B
B
C
Okay,
so
is
the
primary
motivation
here
to
make
the
implementation
simpler,
so
we
don't
have
to
continually
check
to
see
if
there
is
a
port
lab,
that's
been
initialized
or
is
it
yeah,
that's
one
of
the
goals?
C
Okay,
but
is
it
the
most
important
one
or
is
it
the?
I
guess,
because
that
I
have
to
weigh
that
against
the
four
percent
increase
in
size,
for
I
guess
an
internal
detail
for
the
builder.
C
The
fact
that,
if
you're,
if
you're
using
other
components
of
omar
with
jit
builder,
you
would
be
able
to
provide
a
port
library,
I
guess
I
guess
I'm
just
wondering
if,
if
the
initialization
of
the
port
library
needs
to
be
or
could
be
a
cmake
kind
of
config
option
which
would
allow
you
to
you
know
basically
make
that
four
percent
size
trade-off,
but
the
implementation
retains
its
complexity.
So
how
can
you
characterize
how
much
of
a
an
onus
that
is
to
to
for
us
to
be
checking
the
port
lib
in
the
code
base.
B
Well,
the
the
portlave
is
required
for
any
kind
of
use
of
the
full
library
so
because
well
basically,
the
check
the
the
way
it
is
done.
Is
we
check
for
whether
the
port
library,
member
of
the
compiler
app
class,
has
been
set
or
not?
And
if
it's
not,
then
we
have
to
use
a
fallback
mechanism
and
basically
have
to
have
a
duplicate
implementation
of
what
already
exists
in
the
port
library.
B
Yeah,
but
there
is
more
use
cases
that
we
can.
We
can
exploit
more
of
the
port
library
once
there
is
more
once
we
have
every
build
configuration
of
the
omar
compiler
actually
making
this
available.
So
then,
so
right
now
the
cpu
detection
feature
is
the
start,
but
there
is
a
lot
more
opportunity
for
using
that.
A
So
I
think
what
mark
was
asking
about
was,
if
you
did
and
mark
correct
me
if
I'm
misunderstanding
your
question
as
well,
every
place
where
you
would
go
about
using
the
port
library
within
within
the
omar
compiler,
you
would
need
to
check
first
if
the
port
library
is
available
and
if
so
then
do
that
call.
A
C
I'm
sort
of-
I
guess,
and
so
what
what's
being
proposed
here,
is
that
we
basically
always
initialize
the
port
library
for
the
for
the
jit
builder
library,
which,
which
means
which
has
that
which
carries
that
four
percent
size
increase
and
the
and
the
advantage
that
a
user
gets
is,
at
this
point
at
least
a
fairly
minimal
one
from
a
user's
perspective
right.
C
B
C
Okay,
so
you're
expecting
a
four
percent
less
than
a
four
percent.
I
guess
I'm
I'm
not
sure
I
buy
that
yeah.
B
Yeah,
it's
unlikely
to
reach
four
percent
reduction,
but
there
will
be
a
little
bit.
C
All
right,
so
I
guess
an
alternative
trade-off
that
we
could
force
on
people
would
be
not
just
I'm
just
fleshing
out
ideas
here,
not
necessarily
saying
this
is
what
I
think
we
should
do
necessarily,
but
we
could
also
make
a
port
library
a
configuration
level
option
where
the
backup
plan
for
not
having
a
port
library
is
you
get
some
dumb
default
for
whatever
code
would
otherwise
use
the
port
library
for
something
right.
So
in
the
case
of
cpu
detection,
it
would
be
we
default
to
the
oldest
processor.
C
We
know
anything
about
on
that,
on
whatever
the
platform
is.
B
Yeah
that
could
be
done
and
I
guess
if
it's
configuration
level,
then
we
can
also,
if
def
out
the
fallback
mechanism-
and
you
know
if
we're
building
with
the
port
library
so
yeah.
That's
that's
a
possible
solution.
C
Well,
I
mean
I
I'm
I'm
a
fan
of
the
cleanup
and
moving
like
not
having
duplicate
code
in
the
compiler
and
in
the
port
library
to
do
things
like
cpu
detection.
I
don't
think
we
should
maintain
multiple
copies
of
that
code,
but
but
I
am
cognizant
that
some
people
may
not
care
and
but
they
might
care
about
a
four
percent
size
increase
just
because
size
has
been
mentioned
before,
like
the
size
of
the
builder
library
has
has
been
a
mentioned
as
a
concern
point
for
some
people
in
the
past.
C
C
C
C
C
A
It
seems
like
a
sort
of
a
more
staged
approach
to
to
enabling
this,
so
you
can
have
it
built
in
by
default,
but
have
an
option
to
turn
it
to
to
disable
it
and
for
the
known
uses
of
this
right
now
we
would
provide
a
simple
fallback
path
if
it's
built
out-
and
I
guess
we
could
add
a
testing
mode
as
well,
where
we
can
build
with
and
without
the
port
library,
so
that
both
paths
are
being
exercised,
but
then
things
get
a
little
bit
more
complicated
if
we
go
forward
like
if
we
have
to
start
thinking
about
other
places
that
we
want
to
use
this,
like
there's
other
features
like
what
other
features
of
the
port
library
do
you
want
to
use.
A
I
know
that
you
know
things
like
the
the
like
getting
the
process.
Pid,
for
example,
is
is
one
thing
there
might
be
some
memory
allocation
functions
that
need
to
get
that
could
be
used
through
the
part
library
file.
I
o
as
well,
I
suppose,
but
I
think,
taking
the
path
that
you'd
suggested
to
start
with
seems
like
a
reasonable
place
to
start
to
me.
B
I
agree
so
I
will
be
updating
the
request
and
have
like
a
build
configuration
that
is
going
to
allow
both
the
port
library
and
not
for
every
kind
of
scenario,
so
yeah
in
the
future
we
can
compare,
I
mean
we
can
assess
it
again
whether
we
can
completely
remove
the
need
to
have
these
two
mechanisms,
but
I
think
as
a
starting
point.
This
is
a
good
solution.
A
Okay
and
thinking
about
our
downstream
partners,
so
for
something
like
openj9,
which
introduces
its
own
port
library,
it
would
have
to
enable
this
build
option
when
it's
building
or
as
it's
consuming
omr.
B
So
the
default
would
be,
you
know,
with
the
port
library
being
present,
and
so
it's
the
option
to
not
build
with
right
for
people
who
care
about
the
size
increase.
A
Right,
I'm
just
thinking
through
that
side
of
the
equation
that
nothing
would
need
to
happen
for
openg9,
for
it
to
consume
the
code
that
is
going
to
use
the
part
library.
That's
what
I
was
kind
of
getting
at.
C
Okay,
so
I
apologize
for
not
having
taken
a
look
at
the
poll
request
before
this
discussion.
So
forgive
me
for
asking
such
a
simple
question,
but
is:
is
the
port
library
initialization
code
actually
in
the
omar
compiler
component,
or
is
it
in
the
jit
builder
and
test
compiler
components?
Isn't
the
jet
loader
and
test
compiler
components?
Okay,.
B
So
so
the
I
guess,
the
omar
for
library,
member
in
compiler
and
is
gonna,
be
null
and
so
any
place
in
the
omar
compiler
that
is
using
the
port
library
is
going
to
perform
that
check
to
see
whether
it's
available.
So
that's
the
current
implementation
right
now.
A
C
Well,
I
think
that
last
thing
basically
cements
that
we
need
to
be
able
to
support
the
existence
of
a
port
library
or
not
so
right,
because
another
another
project
could
consume
the
omar
compiler
directly
and
then
they
may
not
want
to
provide
a
port
library.
C
B
A
A
A
Okay,
so
the
next
topic
that
was
proposed
was
to
discuss
the
state
of
the
options
rework.
So
this
was
a
a
request
that
came
from
from
philip.
A
I
guess
maybe
one
question
to
ask
philip
to
get
this
discussion
going,
is,
if
there's
a
a
motivation
for
asking
that
or
what
is
your
motivation
for
asking
that?
Is
that
just
to
move
things
along
or
do
you
have
a
a
need
for
that
kind
of
rework
to
happen
in
order
to
simplify
or
make
something
else.
D
And
then
we
try
to
recompile
the
method
in
question,
whether
it's
recompiling
a
compilation
or
an
existing
jet
compiled
method.
We
trigger
another
compilation
of
that
in
the
event
that
we
crash
in
the
actual
jit
compiler,
we
will
attempt
to
re-trigger
the
original
compilation
and
before
we
do
that,
we
would
like
to
copy
the
options,
the
entire
set
of
options
that
were
used
for
the
original
compilation
to
ensure
that
we
can
reproduce
the
original
failure
with
tracing.
D
So
this
boils
down
to
being
able
to
copy
and
construct
the
j9
or
the
omar
options
object.
But
right
now
it
contains
a
whole
bunch
of
other
metadata
about
logs
and
other
weird
counters,
and
things
like
that.
It's
not
just
a
set
of
bits
that
represent
the
actual
options,
so
it's
impossible
today
to
copy
construct
that
object.
A
Right,
okay,
so
for
those
that
that
aren't
aware
of
sort
of
the
the
the
history
behind
the
jit
options
in
in
omr,
so
we've
been
the
the
way
that
things
are
implemented
right
now,
so
omr
and
its
downstream
projects
are
obviously
separate,
but
when
it
comes
time
for
the
the
jit
to
process
command
line
options
for
the
compiler
to
process
command
line
options,
it
not
only
needs
to
draw
on
options
that
are
available
from
omr,
but
downstream
projects
such
as
openj9
can
introduce
their
own
options
that
need
to
be
processed
as
well
and
unfortunately,
when
omr
was
created
and
separated
from
the
j9
compiler
in
the
first
place
that
separation
wasn't
done
particularly
cleanly.
A
There
were
a
lot
of
rough
edges
on
the
implementation
that
was
there
and
it,
and
some
of
those
edges
were
actually
left
from
previous
attempts
at
doing
option
specialization
for
different
compiler
front
ends.
That
is
using
this
framework.
A
So,
unfortunately,
some
of
those
warts
are
still
in
the
code
and
we
don't
really
have
a
clean
solution
for
it.
So
one
of
the
things
that
that
we
started
to
work
on
was
a
much
cleaner
design
for
the
way
for
for
a
means
of
handling
and
processing
jit
compiler
options.
That
would
work
that
would
integrate
better
with
downstream
projects
that
want
to
consume
this.
A
You
would
describe
your
options
via
some
json
format
and
all
your
all
the
downstream
projects
could
describe
their
options
in
that
same
format
as
well
and
as
part
of
the
build
there
would
be
a
tool
that
would
go
and
grab
the
the
the
piece
from
omr
on
the
piece
from
it
and
all
the
pieces
from
the
downstream
projects
and
stitch
them
all
together
into
a
single
table,
and
that's
the
thing
that
the
build
would
would
use.
So
you
get
a
very
clean,
consistent
implementation
of
it
that
you
can
work
with.
A
So
actually
it
was
nazim
that
spent
a
bit
of
time
prototyping
this
and
we
actually
do
have
a
prototype
open
there
in
3675
that
that
does
work,
but
there
were
some
challenges
with
some
of
the
dependencies.
There
were
some
concerns
around
some
of
the
dependencies
that
that
this
kind
of
an
approach
would
would
would
would
have
so
omr,
for
example,
already
has
a
dependency
on
the
python.
A
Sorry
excuse
me:
jit
builder
already
has
a
dependency
on
python
for
some
of
the
interfaces
that
it
constructs
at
build
time,
but
down
other
downstream
projects.
Don't
currently
have
a
dependency
on
python,
so
there
was
the
the
the
the
one
challenge
about
enabling
this
sort
of
an
approach
would
require
all
downstream
projects
to
now
have
a
python
three
dependency
in
their
ci
pipelines.
A
So
this
has
been
discussed
in
the
past.
There
are
issues
open
that
where
we
have
talked
about
this,
this
sort
of
thing,
but
in
in
the
end,
though,
I
don't
think
that
we've
we've
taken
sort
of
the
next
step
to
to
push
this
work
forward
and
and
get
all
the
downstream
dependencies
resolved
and
get
sort
of
an
agreement
on
a
path
forward
in
those
particular
projects.
A
In
the
meantime,
there
may
be
some
other
approaches
for
processing
options
that
that
need
to
be
considered.
Some
other
ideas
have
have
perhaps
come
up,
so
that
kind
of
thing
is:
should
this
effort
get
rebooted
that
kind
of
an
effort
or
those
other
ideas?
I
think,
should
get
some
some
consideration
as
as
part
of
a
an
overall
design
here.
A
A
It
is
useful
for
synthesizing
tables
of
data
that
not
code
but
data
that
that
the
compiler
would
consume
so,
for
example,
things
like
the
the
the
tree
evaluator
tables
from
all
the
op
codes,
the
the
the
value.
Sorry,
the
value
propagation
table,
the
the
simplifier
table,
there's
a
you
know
like
a
gpu
code,
generator
table.
A
All
these
different
sorts
of
structures
could
be
synthesized
this
way
as
as
well
so
the
the
general
technique
of
using
json
to
and
python
to
construct
these
things
goes
beyond
just
options
so,
but
I
mean
you're
asking
I
mean
you're
asking
specifically
about
options,
so
I
think
the
the
short
answer
is
that
the
the
work
has
unfortunately
stalled,
but
I
think
that
it
would
require
maybe
a
a
refreshed
view
on
what
it
is
that
this
is
trying
to
achieve
and
how
the
how
the
best
way
of
fitting
options
into
these
downstream
projects
is
going
to
work.
A
So
that's
where
things
are
at
at
the
moment
now.
One
thing
I
will
say
is
that
perhaps
some
of
the
things
that
you're
concerned
about
can
actually
be
done
independently
of
that.
So,
for
example,
you're
concerned
about
there
being
some
other
metadata
being
stuck
into
the
options,
object
that
perhaps
that
you
had
to
that
you
had
to
deal
with
when
you
were
doing
the
the
serialization
of
that
that
option
structure.
A
I
know
that
when
nazim
was
going
through
it,
he
did
discover
that
there
were
lots
of
things
in
there
that
perhaps
didn't
belong
in
the
options
object
at
all
that
should
live
in
a
in
a
you
know.
Perhaps
another
class,
perhaps
even
like,
like
an
extensible
class,
that
that
is
meant
for
that
kind
of
extension.
A
So
perhaps
there
are
things
that
we
can
do
to
the
options
object
as
it
exists
today
to
remove
some
of
the
things
that
are
causing
you
problems,
independent
of
coming
up
with
a
unified
structure
for
representing
objects
or
options,
so
I'll
just
pause
there
for
a
sec
to
double
check.
I
wasn't
on
mute,
good.
C
A
Yeah
yeah
there's
the
separation
of
like
one
of
the
things
I
believe,
and
I
keep
talking
in
place
of
of
nazim,
but
one
of
the
things
that
I
think
nazim
did
was
sort
of
separate.
The
notion
of
these
are
the
actual
options
that
you
would
specify
on
on
a
command
line
or
somehow
inject
into
the
jet
versus
the
sort
of
the
other
state
that
is
maintained
in
the
options
object.
A
So
I
think
that
you
could
potentially
you
even
just
starting
with
what
we
have
separate
the
state
from
the
from
the
from
the
processing
of
the
of
the
options
themselves:
the
mechanics
of
parsing,
the
command
line
and
figuring
out
the
order
of
one
thing
or
another,
or
that
kind
of
thing.
So.
A
There's
lots
of
opportunity
in
that,
in
that
options
object
for
moving
code
down
to
open,
j9
or
or
even
back
up
into
omr,
more
more
so
in
the
downward
direction.
I
think.
A
And
perhaps
once
we
have
something
like
that,
it
may
be
more
apparent
and
a
lot
easier
to
have
conversations
about
a
proper
way
of
restructuring
the
actual
processing
of
the
command
line
options
and
perhaps
unifying
it.
With
other
frameworks.
A
Do
you
think
that
would
be
enough
to
unblock
you,
phillip
or
yes,
I
mean
I
don't
know
if
you're
blocked
right
now,
I
know
you're
inconvenienced,
I
don't
know
about
block,
but
would
that
be
enough
to
help
you
move
forward
in
a
at
a
faster
rate
if
the
metadata
was
separated
from
the
options
objects.
D
D
I
I
get
there's
other
problems,
for
example,
like
the
options
are
immutable,
which
is
something
that
I
guess,
I'm
not
can't
wrap
my
head
around
whether
we
should
be
allowing
that
or
not
because
there
are
places
in
the
compiler
where
we
enable
and
disable
or
flip
options
on
and
off,
based
on
some
other.
B
That's
one
of
the
issues
that
I
try
solving
with
the
prototype,
so
it's
been
a
while.
So
I
love
to
refresh
on
my
memory
again
so
about
what
I
have
done
for
that,
but
yeah.
Certainly
one
of
the
things
that
I
was
trying
to
address
in
that
project.
D
I
know
we
have
tools
written
in
c,
which
we
compile
as
part
of
the
build
process
and
then
use
like
some
of
the
ddr
generation.
Just
a
thought.
I
guess
we
could
instead
of
python
just
use
c
or
sql,
suppose.
A
Yeah,
I
I
don't
remember
all
the
options
unattended
that
museum
you
investigated
when
you
did
the
work
I
was
there.
I
think
you
were
looking
for
a
a
json
library
for
c
plus
plus
at
one
point
and
maybe
had
some
issues
with
that,
but.
B
So
I
haven't
from
what
I
remember.
I
haven't
spent
much
time
converting
this
to
c
or
c
plus,
plus,
because
we
decided
that
we're
gonna
go
through
with
installing
the
dependencies
of
in
the
machines
where
the
script
will
have
to
be
run
and
yeah.
So
basically
it
took
a
while
to.
A
Oh
yeah
and
sorry
it's
coming
back
to
me
a
little
bit
now.
The
the
other
thing
was
that
in
omr,
which
bit,
which
includes
jit
builder
jet
builder,
already
introduced
a
dependency
on
python.
So
anywhere
you
would
use
omr
python,
sorry
anywhere,
you
would
use
jit
builder.
You
would
have
python
already
there.
So
from
an
infrastructure
perspective,
all
of
the
machines
that
were
building
omr
on
every
architecture
had
had
a
python
3
installed.
A
The
the
challenge
was
all
the
downstream
projects
and
using
j9
as
an
example,
all
the
open
j9
build
machines
needed
to
have
it
all.
The
internal
open,
j9
built
all
the
ibm
internal
and
open
j9
machines
needed
to
have
python
installed
and
all
the
adopted
jk
machines
needed
to
have
iphone
3
installed.
A
I
think
python
3
is
a
dependency.
It
was
we
had
that
dependency
on,
adopt
open,
jdk
and,
to
some
extent
with
openg9
and
the
internal
machines.
I
was
just
checking
yesterday
with
joe
and
what
the
status
of
some
of
those
things
was,
and
it
looks
like
we
may
be.
A
We
may
not
have
everything
installed
properly
on
aix
and
there
may
not
be
everything
installed
properly
on
windows,
and
perhaps
you
know
a
few
other
variations
as
well.
So
I
think
the
whole
python
dependency
thing
is
a
separate.
We
can
almost
separate
that
from
from
this
kind
of
design,
because,
like
I
said
there
are
other
uses
of
python
that
that
could
be
explored,
and
I
don't
necessarily
want
to
tie
it
to
one
particular
one
particular
design.
There
are.
A
C
Yeah,
I
remember
looking
once
for
a
good
json,
open
source
library
that
was
written
in
c
or
c
plus
plus,
and
I
couldn't
find
anything
that
was
written
in
there
were.
There
were
good
libraries,
but
they
tended
to
use
more
modern,
c-plus
plus
that
wouldn't
have
worked
as
well.
For
us,
it
would
have
had
the
same.
It
would
have
brought
in
the
same
kind
of
problems
in
that
you'd
need
to
build
chains
to
be
able
to
support,
doing
the
build
which
wouldn't
have
made
sense
either.
A
Yeah
we
wanted
to
use
fairly
common
tools
and
technologies
in
order
to
build
this,
and
you
know
json
and
python-
are
you
know
actually
quite
common
in
in
ci
cd
pipelines
these
days?
So
it's
not
me.
It's
the
opinion.
It's
not
real.
It's
not
an
unreasonable
ask
to
suggest
iphone
being
part
of
that.
So
it's
just
a
matter
of
perhaps
highlighting
the
benefits.
A
The
disadvantages
of
not
doing
it
to
satisfy
you
know
other
other
projects
in
that.
C
B
C
I
I
actually
think,
there's
probably
a
meta
problem
here,
about
how
we
manage
dependencies
across
omar,
open
g9
and
adopt
open
jdk
that
is
kind
of
part
of
the
root
of
this
problem.
But
that's
a
larger
discussion
point
than
this
one,
so
I'll
just
park
that
a.
C
C
Okay,
so,
where.
A
Well,
okay,
well,
I
mean,
I
think
we
we
understand,
maybe
a
little
bit
better.
We
understand
villains.
A
What
philip
is
trying
to
achieve,
and
perhaps
not
going
with
an
entire
options
rework
is
is,
is
a
possibility
and
in
fact,
if
omar
could
make
changes
without
impacting
downstream
projects
right
away,
and
that's
perhaps
a
path
that
we
can,
that
we
can
start
to
go
down
independently
of
that,
like
I
said,
want
to
separate
the
decision
about
making
a
dependency
on
the
python
on
python
3
from
from
this
certainly
use
options
as
a
as
an
example,
but
I
would
also
draw
in
some
of
the
other
tables
that
we've
wanted
to
synthesize
at
compile
time
during
the
build
step
as
as
well
as
as
motivating
motivate
that
it'll
open
up
our
options
for
other
for
other
things
as
well.
A
So
in
terms
of
next
steps-
I
don't
know-
I
mean
philippines,
I
guess
you're
free
to
make
some
changes
to
options
as
as
you
as
you
think
you
you
need
in
order
to
do
that,
separation
nazim,
I
don't
know
if
there's
anything
that
you
have
already
done
from
the
other
pr.
That
is
reusable
for
that
effort.
B
I'm
not
sure
I'll
have
to
again
look
into
what
I've
done.
A
Yeah,
I
I
don't
to
be
honest
with
you.
I
don't
think
so,
because
I
know
you
did
a
fairly
fundamental
rework
of
a
lot
of
those
data
structures.
So
I
don't.
I
don't
know
if
that's
that's
possible
or
not.
A
The
other
thing
about
touching
this
kind
of
code
is,
you
have
to
be
super
careful
about
the
effects
of
it.
I
remember,
as
he
was
debugging
his
work,
that
there
were
instances
where
what
he
was
changing
for
his
new
framework.
It
was
getting
a
different
result
than
what
the
current
implementation
had
and
he
had
to
get
creative
in
some
cases
to
debunk
these
sorts
of
differences.
A
So
and
in
many
cases
it
wasn't,
it
wasn't
obvious
at
all-
and
I
think
part
of
this
also
goes
down
to
what
what
philip
was
saying
about
the
immediate
the
lack
of
immutability
of
some
of
these
options
in
that
there
are
places
that
can
just
simply
turn
that
option
off
and
then
flip
it
back
on
again,
and
you
have
no
idea
that
something
like
that
has
happened
under
your
under
your
feet
and
I
think
some
of
the
problems
that
nazim
had
were
related
to
that
kind
of
behavior
happening.
A
B
I
did
set
up
a.
I
did
set
up
some
macros
where
basically
for
any
option
queries.
It
goes
through
a
macro
that
queries
both
the
old
implementation
in
the
implementation
and
then
compares
the
result.
That
was
that's
not
something
done
by
default.
It
was
something
like
options.
Debug
configuration
option
with
build
something
like
that.
B
So
yeah,
that's
one
way.
This
was
addressed
when
we
had
that
issue,
but
yeah.
There
were
a
lot
of
unexplained
results
that
I
observed
there,
but
I
yeah,
I
tried
to
you,
know,
trace
it
back
and
make
sure
that
the
new
options
get
updated
along
with
the
older
one
and
yeah
so
that
that
might
be
gonna
help
me
identify
the
options
that
get
flipped
around
in
different.
A
D
B
C
It's
actually
quite
an
interesting
tour
to
go
through
option
omar
options.hvp
and
see
some
of
the
stuff
that's
in
there.
But
I
hadn't
actually
realized
that
there
was
a
way
of
creating
a
custom,
opt
strategy
which
I
learned
from
from
perusing
one
more
options.hpp.
A
A
Okay,
so
if
there
is
anything
you
want
to
bring
up
there
is
that
pull
request
that
that
nazim
has
had
there,
for.
I
guess
it's
going
on
two
years
now
so
by
all
means
feel
free
to
add
some
comments
there,
if
you,
if
you'd
like,
but
I
think
that
this
is
going
to
be
moving
forward.
But
just
given
the
priority
of
of
that
and
other
things,
it's
just
going
to
be
moving
at
a
little
bit
of
a
slower
rate
than
other
things.
A
Okay,
that
was
the
last
topic
we
had
on
the
agenda
for
this
week.
So
we'll
talk
again
in
two
weeks.
I've
already
created
the
proposed
agenda
for
for
that.
So,
if
you
have
any
topics
by
all
means,
please
add
them
there.
I've
already
propagated
the
linkage,
one
from
that
we
deferred
from
this
week
to
that
to
that
one.
So
you
can
pick
that
discussion
up
then
with
yann.