►
From YouTube: OMR Architecture Meeting 20210415
Description
Agenda:
* Extensible class visibility and extension modifiers (#5913) [ @0xdaryl ]
* Remove unused IL opcodes (#5914) [ @0xdaryl ]
* Introduce Python dependency in OMR build (#5916) [ @0xdaryl ]
* Eliminate signed commit requirements [ @0xdaryl ]
A
Welcome
everyone
to
the
april
15th
omar
architecture
meeting
today
we
have
a
fairly
full
agenda,
we'll
see
how
many
of
these
we
can
we
can
get
through
today,
mainly
dominated
by
topics
presented,
are
proposed
by
me.
So
I
will
share
some
of.
A
A
Okay,
so
the
first
issue
that
I'd
like
to
discuss
is
issue
5913,
which
is
an
effort
to
provide
more
documentation
to
the
extensible
class
structures
that
we
that
we
have
so
one
of
the
challenges
that
we
have
with
the
fact
that
the
extensible
class
organization
is
essentially
a
static.
Polymorphic
structure
is
that
the
c
plus
language
class
modifiers
don't
have
the
same
effect
on
that
kind
of
a
structure
as
they
would
on
a
more
normal,
dynamic,
polymorphic
hierarchy.
A
So
things
like
public
private
protected
and
like
pure
virtual
functions.
Things
like
that
and
the
the
the
goal
here
is
to
try
and
define
some
kind
of
a
scheme
where
we
can
provide
that
level
of
protection
in
in
you
know,
in
the
extensible
class
structures
that
we
are
that
we're
defining.
A
So
what
I'm
proposing
here
is
to
is
to
define
a
number
of
attributes
that
can
be
used
to
decorate
the
methods
and
members
within
an
extensible
class
structure
to
provide
these
things,
and
the
intention
is
to
like,
from
an
implementation
point
of
view,
they
would
be
implemented
as
macros
on
certain
build
compilers.
A
A
We
can
use
these
attributes
as
part
of
the
linting
process
that
we
already
have
to
to
do
some
checks
on
whether
or
not
these
members
are
being
used
properly
in
the
way
that
they're
expected
to
this
is
going
to
be
important,
as
we
start
to
think
about
how
we're
going
to
define
an
api
for
the
compiler
component,
because
as
it
is
right
now,
we
don't
really
have
the
control
that
we
have
over,
which
members
are
public,
which
members
are
not
public.
A
You
know,
are
there
other
ones
that
we
don't
expect
to
be
extended
at
all,
they're,
essentially
final,
so
so
things
like
that,
so
looking
for
a
means
of
actually
providing
that
kind
of
mechanism
in
inextensible
classes
here
so
yeah.
So
I'm
I
say
here
that
these
are
pseudo
attributes.
A
A
So
I'm
thinking
of
two
different
classes
of
of
modifiers
one
is
an
extension,
modifier
or
sorry,
a
visibility
modifier
which,
which
basically
says
what
is
the
visibility
of
this
particular
member,
either
within
or
outside
of
an
extensible
class.
A
So
it's
it's
it's
basically
getting
you
know.
Full
visibility
throughout
protected
behaves
like
a
so
there
is
an
analog
between
these
visibility,
visibility,
modifiers
and
the
actual
c
plus
plus
ones.
It's
just
trying
to
adapt
them
to
the
extensible
class
hierarchy,
so
protected
makes
the
member
only
visible
within
the
concrete
class
hierarchy,
so
everything
up
to
and
including
the
where
the
concrete
class
of
the
extensible
class
is
defined,
so
that
that
that
member
is
visible
anywhere
there.
A
If
you
try
to
use
it
from
the
class,
that's
derived
from
the
or
outside
of
the
extensible
class
hierarchy,
then
it
you'll
that's
not
allowed,
and
you
should
get
some
kind
of
an
error
if
you
linted
it
that
way.
A
The
intention
here
is
that
the
public
and
protected
modifiers
will
form
the
public
api
for
the
extensible
class.
So
if
somebody
is
interested
in
seeing
what
functions
are
available,
which
what
functions
can
be
extended,
that
sort
of
thing
you
can
learn
that
from
looking
at
the
public
and
and
protected
members,
there
isn't
an
omr
private,
mainly
because
there
isn't
really
a
need
for
it,
but
could
certainly
see
that
just
for
consistency
we
may
want
to.
A
A
A
C
Are
also
so
darryl
sorry,
can
I
ask
a
question
about
that?
Abs?
Absolutely
the
so
I
guess
if
I've
understood
correctly,
the
omr
protected
is
for
things
that
are
accessible
to
static
extensions
of
the
class,
but
not
to
further
derived
classes
that
are
are
derived
from.
So
we
have
our
static,
most
derived
thing
and
only
things
on
the
path
to
that
static.
Most
derived
thing
have
access
to
omr
protected,
but
then,
if.
D
C
A
A
public
is,
it
can
be
accessed
by
the
by
the
class,
that's
deriving
from
the
concrete
class
or
it
can
be
accessed
directly
from
the
concrete
class.
So,
let's
say
in
the
case
of
let's
say
the
code
generator
you
create
a
tr
colon
colon
code,
generator
object,
you
can
access
public
members
from
that
code,
generator
object,
but
you
can't
access
protected
members
from
that
code.
Generator
object.
A
If
you
went
and
extended
that
code
generator
object
with
something
else.
Maybe
code
generator
isn't
a
great
example
here.
But
if
you
went
and
extended
it
for
something
else,
you
could
still
access
the
public
members
from
that
extension.
But
again
you
also
couldn't
access
the
the
protected
members
either.
C
So
I
guess
what
I
mean
is:
what's
the
difference
between
omr
public
and
regular
public
right,
so
this
the
omar
protected
that
behavior,
that
we
just
talked
about
is
definitely
different
from
regular,
protected
right.
Regular
protected
would
be
accessible
to
all.
C
A
A
So
there
may
there
may
not
need
yeah,
so
there
may
not
need
to
be,
which
would
be
a
good
thing.
Actually,
there
may
not
need
to
be
a
visibility
modifier
for
public,
but
okay,
I'll
work
on
that
in
the
back
of
my
head
just
to
see,
if
I
can
think
about
what
my
initial
reasoning
behind
that
was.
So
thanks
is
it
just.
A
F
A
A
What
what
we
are
expecting
the
public
and
like
the
exposed
members
of
the
of
the
class
to
be
so
it
it
aids
with
the
readability
of
the
code.
A
C
Okay:
okay,
but.
A
That
wasn't
my
motivation.
Sorry
I
I
I
did
have
it's
it's
it's
escaping
me
at
the
moment,
but.
E
Is
it
possibly
connected
to
the
fact
that
self
casts
everything
to
the
most
derived
class
type,
and
so
that
has
some
interesting
interactions
with
protectedness
and
publicness?
Maybe.
G
I
did
have
one
other
question
related
to
omr
protected.
Were
we
thinking
of
also
extending
visibility
of
those
methods
to
friend
classes
and
friend
functions,
or
are
we
planning
to
just
sort
of
leave
it
to
derived
classes
only.
A
That's
a
good
question.
I
hadn't
really
thought
about
friend
functions
that
is
potentially
a
dimension
that
we
have
to
explore
here.
I
I
was
thinking
really
just
about
it
being
for
the
extending
classes
applying
to
the
extending.
A
A
Are
there
many
I'm
just
trying
to
think
if
there's
many
classes
that
are
actually
friending
the
omr,
the
the
the
the
classes
in
the
in
the
extensible,
sorry
that
are
friending
a
component
of
an
extensible
class?
A
A
Okay,
the
other
thing
that
I
was
thinking
about
was
introducing
some
extension
modifiers
as
well.
So
there
isn't
the
notion
of
well
you
we.
We
can
introduce
the
notion
of
like
a
pure
virtual
function,
but
if
we're
trying
to
avoid
virtual
functions,
obviously
using
a
pure
virtual
function
is
not
is
not
the
way
to
go
so
that's
kind
of
where
the
omr
abstract
modifier
comes
in.
A
So
it's
basically
something
that
you
use
on
a
function
to
indicate
that
it
must
be
implemented
by
some
class
extending
it,
whether
that
implementation
is
actually
within
the
ex
the
the
extensible
class
itself.
So,
for
example,
you
define
it
in
a
base
class
and
some
architecture
comes
along
and
actually
provides
the
implementation
of
that
or
if
it's
something
that
a
project
that
is
extending
the
the
the
the
the
omr
base
class
needs
to
provide.
A
But
the
intention
with
that
abstract
is
that
it
must
be
implemented
before
the
concrete
class.
If
that
makes
sense,
so
it
has
to
be
provided
either
by
an
architecture
or
a
project,
and
there's
a
few
examples
of
that
right
now
in
the
in
in
the
code
and
where
we
just
provide
a
dummy
implementation
and
then
usually
add
an
assert
in
the
code
that
it
must
be
implemented.
C
Sorry,
I
guess
in
the
if,
if
the
concrete
class
wants
to
defer
the
that
decision
of
of
what
implementation,
it
is
to
run
time,
it
could
declare
a
a
virtual
method
right,
and
that
would
still
be
I
mean,
even
if
it
was
a
pure
virtual
method,
still
any
any
instance
that
you
have
that
it
would
have
to
be
an
instance
of
a
derived
class.
That
really
does
have
a
an
implementation,
or
I
guess,
as
long
as
it's
an
instance
method
anyway,
right.
A
C
No,
I
not
in
general
just
that
the
requirement
that
some
class
or,
like
you
know,
eventually
the
concrete
class
provides
an
implementation,
could
be
satisfied
by
the
concrete
class
if
it
wanted
to
by
even
a
pure
virtual
function.
If
it's
an
instance
method,
I
think
right,
it
doesn't
cut
off
that
avenue.
A
C
C
I
mean
is,
would
the
would
a
an
extension
of
the
class
that
declares
its
sort
of
static,
override
of
this
being
virtual
or
even
pure
virtual?
Would
that
be
considered
an
implementation
from
the
point
of
view
of
omr
abstract,
and
I
think
probably
it
should
is
yeah.
B
C
A
A
Okay,
all
right
so
omar
final
is
essentially
saying
that
this
method
cannot
be
overridden
by
by
any
extended
class.
So
this
is
the
only
implementation
available
of
this
of
this
method
of
this
function.
The
intention
of
this
is
to
be
used
in
for
very
simple
getters.
A
So,
for
example,
things
like
where
you
ask
for
the
compilation
object
in
many
classes,
where
you
ask
for
the
front
end,
for
example,
right
now,
all
of
those
getters
require
a
self
which
is
really
only
required
because
they
could
potentially
be
extended,
but
you
know
there
are
ones
that
we
can
designate
via
omar
final
that
will
never
be
extended
and
therefore
they
don't
require
a
self
to
to
access.
A
Omar
override
is
a
decoration
that
is
used
in
a
base
in
a
in
a
derived
class
to
indicate
that
this
particular
function
is
being
overridden,
or
this
is
an
override
of
a
function
in
a
base
class.
It's
really
there
to
document
the
fact
that
you
know
this
is
not
a
new
function.
This
is
really
just
an
implementation
of
something
from
the
base
class
from
a
base
class,
so
it
makes
it
makes
the
code
a
bit
readable
to
understand
that.
C
A
Okay,
so
I
have
a
number
of
examples-
I'm
not
I'm.
I
don't
really
want
necessarily
want
to
go
through
all
of
these
examples
right
now,
it's
something
maybe
that
at
least
solidifies
the
thinking
behind
what
what
the
how
each
of
these
modifiers
can
be
used.
A
Maybe
I
do
want
to
poke
up,
so
I
guess
I
do
want
to
just
open
it
up
for
discussion
here,
whether
or
not
people
think
these
are
necessary.
Whether
or
not
this
is
the
wrong
approach.
Whether
there's
alternate
solutions
to
achieving
what
I'm
trying
to
achieve
here,
you
know
different
semantics,
whatever
I'm
certainly
open
to
some
discussion
on
this
on
this
point,.
G
I'm
definitely
in
favor
of
this,
the
I
agree
with
devon
here.
The
extension
modifiers
are
definitely
a
great
idea.
The
only
question
I
would
have
with
them
is
regarding
omr
final.
G
A
A
Yeah
and
omar
like
essentially
an
omar
final
is,
is
the
default
some
variant
to
that.
E
We
would
have
some
advantages,
I
think,
also
in
terms
of
flushing
out
what
stakeholders
are
depending
on
I
mean.
Obviously
a
stakeholder
could
take
omr
and
and
make
whatever
patches
they
want
on
on
top
of
the
base
stuff.
But
if
they
want
to
fold
any
of
that
back
into
the
main
project,
it
becomes
very
obvious
when
they've
added
an
extension
point
and
gives
the
project
a
chance
to
identify
and
and
and
evaluate
that.
C
Yeah,
it's
sort
of
actually
related
to
the
the
visibility
stuff
trying
to
express
the
the
api
it's
so
it's
it's
a
way
of
expressing
the
the
extension
api.
If
you
will.
E
E
B
A
G
C
Yeah,
I
guess
you
can't
have
the
default
for
everything,
because
when
you're
overriding
something
that
already
exists,
which
is,
I
guess,
the
what
ben
just
mentioned,
that
thing
is
necessarily
overrideable
unless
we
want
to
cut
it
off
at
that.
C
A
A
Is
one
of
the
consequences
of
adding
these
modifiers
is?
Is
the
is
the
appearance
of
the
code?
It
could
potentially
make
the
code
look
a
lot
busier
than
it
is,
but
I
tend
to
think
that
it's
a
good
kind
of
busy,
as
opposed
to
just
adding
some
other
noise
into
the
into
the
mix
like
it
actually
is
a
useful
documentation.
A
Tool,
so
I'm
not
sure
if
anybody
has
concerns
about
the
potential
like
you
get
a
little
bit
of
a
taste
for
that
down
here,
where
some
of
the
like,
where
some
of
the
you
know
these
things
are
used
to
me,
it
doesn't
look
too
bad,
but
I
don't
know
I
don't
want
to
hear
if
others
have
suggestions
about
how
this
can
be.
A
I
think
clang
actually
allows
you
to
have
groups
like
you.
Can
group
attributes
together,
like
you,
could
have
a
public
sec,
I'm
not
sure
what
the
term
is,
but
you
can
have
like
a
public
section
here,
for
example,
where
you
define
all
the
public
ones
that
and
that
that
attribute
will
apply
to
everything
in
that
section,
scope
or
something.
You
can't
remember
what
the
term
is
they
use
for
that,
so
that
could
possibly
some
be
another
option.
A
D
A
G
I
believe
the
c
plus
11
final
specifier
is
only
allowed
on
virtual
functions
because
it's
meant
for
overriding
of
those.
So
I
don't
know
that
that
would
help
for
static
polymorphism.
A
Yeah
yeah,
that's
a
good
point.
I
didn't
realize
the
semantics
of
that,
so
so
there
so
other
concerns
about
the
visibility
like.
I
know
there
was
you
know.
Obviously
this
this
public
may
not
quite
be
what
I
was
thinking.
It
was
or
or
it
was
needed
for.
Are
there
concerns
about
protected.
C
I'm
not
particularly
concerned
about
it
myself,
but
I
I
was
about
to
ask
whether
there
was
a
particular
use
case.
You
had
in
mind
because
I
I
don't.
I
have
one
that
that
I've
thought
of.
A
It
I
mean
the
use
case
was
if
there
was
some
function
that
was
defined
in
a
base
class,
but
it
was
only
intended
to
be
used
within
the
extensible
class.
You
didn't
want,
like
you,
kind
of
wanted
to
be
private
within
that
hierarchy
like
within
the
the
actual
concrete
class
somewhere
in
that
hierarchy,
but
you
didn't
want
to
expose
it
to
consumers
of
that
concrete
class.
A
G
I
actually
do
have
one,
and
this
is
related
to
when
I
was
adding
the
load
store
handler
into
the
power
code
gen.
One
thing
I
ended
up
having
to
do
was:
I
had
to
split
that
into
two
separate
extensible
class
hierarchies,
one
of
which
contained
only
public
stuff
and
one
of
which
contained
only
protected
stuff,
just
to
specify
that
a
lot
of
the
protected
stuff
is
just
sort
of
used
by
the
public
stuff.
C
There
so
what
what
kind
of
thing
was
it
in
there?
If
you
don't
mind
me
asking,
because
I'm
trying
to
imagine
the
difference
between
somebody
who
comes
along
and
extends
your
class
in
a
way
that
that
affects
the
concrete
class
versus
somebody
who
comes
along
and
derives
from
it
in
a
sort
of
a
runtime
polymorphic
way.
I
guess
like,
what's
what's
the
difference
between
those
two
consumers
of
the
class
that
are
like,
where
one
should
have
access
to
something
that
the
other
should
not?
A
Whereas
if
it's,
whereas,
if
you
were
a
consumer
of
the
of
the
extensible
class,
that
you're
a
consumer
of
the
concrete
class,
then
you
couldn't
get
direct
access
to
that
particular
function.
C
I
guess
what
I
mean
is,
though,
is
that
if
they
want
to
do
that,
they
can
just
define
an
extension
of
your
class
and
then
reach
in
and
call
your
methods
anyway
right.
They
could
right.
G
At
the
very
least,
we
could
guarantee
that
omr
does
not
accidentally
do
that
in
some
way,
a
derived
project
may
decide
that
they
want
to.
They
want
to
make
that
public,
but
by
protecting
these
things
we
allow
we
allow
them
to
be
used
in
a
default
implementation
of
a
potentially
extended
endpoint
that
could
be
extended
in
such
a
way
by
the
derived
project
that
calling
the
internal
part
directly
is
no
longer
okay,.
A
And
if
they're
extending
the
con,
if
they're
extending
the
concrete
class
that
wouldn't
be
allowed,
though,
but
if
they
are,
if
they
are
adding
their
own
project,
specialization
of
that
or
if
they're,
adding
in
their
own
project,
specialization
some
function.
That
is
going
to
be
using
that
member,
then,
yes,
that
would
be
allowed.
A
B
E
B
C
C
Okay,
yeah
that
I
think
that
answers
my
question.
A
Okay,
I'm.
I
will
clean
this
up
with
the
the
with
some
of
the
questions
and
comments
that
have
that
have
come
up.
I
guess
the
one
thing
that
you
know
the
the
like
the
whole
thing
with
extensible
classes
that
we're
kind
of
building
something
on
top
of
an
existing
of
on
on
top
of
the
existing.
You
know
c,
plus
plus
rules.
We
hadn't
really
thought
much
about
things
like
friend
classes
and
and
that
and
what
kind
of
access
they're
they're
allowed
to
have.
A
I
don't
know,
may
maybe
we
should
I'm
I'm
thinking,
though,
that
it's
perhaps
it's
more
complication
that
we
need
it's
more
complication
that
we're
giving
ourselves
right
now,
though,
than
than
we
actually
need
to
unless
people
think,
if
their
opinions
here,
that
that
we
do
need
to
give
that
a
lot
more
consideration
than
we
than
we
are
at
the
moment.
A
A
Okay,
all
right,
so
if
there's
other
comments
that
people
want
to
have
on
this
by
all
means,
please
add
a
comment
to
the
issue
with
whatever
you
you
might
want
to
say.
A
So
I
think
that
once
we
get
this
finalized,
then
obviously
publishing
some
kind
of
documentation
somewhere
would
be
one
of
the
next
next
steps,
even
if
we
went
ahead
and
defined
these
attributes
like
these
modifiers,
just
as
empty
macros,
just
the
docu,
the
the
value
that
we
would
get
about,
get
with
documenting
the
code
with
them
without
actually
having
a
linter
tool.
A
Pinpoint
what
some
of
the
what
the
api
actually
looks
like,
which
is
particularly
important
for
some
of
these
classes,.
A
Which
is
59
14,
which
is
to
remove
some
unused
ilop
codes
again.
This
is
a
sort
of
a
clean
up
effort
in
preparation
for
thinking
about
or
just
trying
to
simplify
things
for
for
thinking
about
the
the
the
api.
A
There
are
a
number
of
il
op
codes
that
are
I'll
scroll
down
here
that
are
simply
unused.
Many
of
these
have
well.
Actually
none
of
them
have
any
known.
A
Some
of
them
only
have
evaluators
on
certain
architectures.
Many
of
them
don't
have
any
evaluators
at
all.
All
of
these
kind
of
floating
point
intrinsics.
I
guess
you
could
call
them,
they
look
like
they
do
something,
but
they
actually
don't,
because
they
actually
require
a
function
to
be
called,
but
that
function
doesn't
exist
anywhere.
A
So
basically,
these
are.
These
are
all
vestigial.
I
would
consider
them
to
be
vestigial
opcodes
that
we
can
get
rid
of
my
argument
for
getting
rid
of
them
as
opposed
to
pardoning
them
would
be
if
somebody
in
the
future
did
find
an
actual
use
for
them,
they
would
have
to
come
with
proper
documentation.
A
You
know
describing
what
the
semantics
actually
are.
How
are
we
going
to
implement
them
on
the
different
platforms
and
and
do
other
you
know,
provide
test
cases
for
them
as
well?
So
that's
that's
where
my
thinking
was
there.
Merge
new
is
one
that's
been
around
for
many
many
years
came
from
the
open,
j9
space.
There
actually
is
a
means
of
producing
it
in
in
open
j9,
but
I
don't
believe,
there's
even
an
evaluator
for
it
anymore,
but
I
remember
this
particular
op
code.
A
The
idea
with
this
is
that
you
would
you
would
merge
consecutive
object
allocations
together
into
a
single
object
allocation,
the
idea
being
that
you
would
be
a
path,
length
reduction
and
an
overhead
reduction,
and
you
get
some
performance
out
of
that.
A
We've
never
seen
any
positive
benefit
from
that,
and
I
think
we
even
saw
some
regressions
with
it.
It's
only
implemented
on
x86,
I
believe
just
32-bit.
Even
so
it's
I
don't
think
it's
anything,
that's
that
would
preclude
us
getting
rid
of
it
so
anyway,
this
is
my
list.
Any
dissenting
opinions,
I
guess,
is
what
I'm
looking
for.
A
A
E
I'll
are
there
any
code,
paths
that
are
actually
hanging
on
like
doing
something
with
these
things,
or
are
you
just
saying
that
they're
not
used
by
the
old
generators.
A
They're
they
are
there
well,
there
are.
There
are
some
evaluators
for
these,
but
there's,
but
a
it's
not
clear
at
all
what
they're
actually
doing
and
in
in
and
in
some
cases
like
there's
some
z
ones
down
here
that
just
assert
these
two
here
that
say,
do
not
use
okay.
That
kind
of
thing
so.
A
They
may
reference
some
of
the
like,
not
not
many
of
them
like
a
lot
of
these.
No,
there
might
be
maybe
some
of
these,
but
it's
really
just
to
see
are.
A
C
A
A
Okay,
if
you
think
of
a
reason
to
pardon
any
of
these,
if
like
after
this
call
by
all
means
update
this,
otherwise
what
I'm
proposing
and
doing,
because
it's
really
just
something
between
open,
j9
and
omr,
I'm
proposing
one
pr
and
omar
one
pr
and
open
j9
with
multiple
commits
in
each
that
are
getting
rid
of
all
these
different
op
codes.
A
I
I
don't
necessarily
think
one
op
code
per
commit,
but
groups
of
these
things
and
then
hopefully
we
can
simultaneously
merge
both
just
to
reduce
the
churn
of
all
these.
So
that's
what
I'm
thinking!
A
A
Okay,
so
we
have
discussed
on
a
few
occasions
in
the
past
ways
of
breaking
or
the
ways
of
breaking
some
of
the
dependencies
that
omr
has
with
with
downstream
projects,
and
one
of
the
solutions
to
that
has
been
to
auto
generate
some
of
the
data
structures
that
we
have
that
where
they
are
composed
from
pieces
from
downstream
projects
and
omr,
and
it's
it's
a
way
of
you
know
updating
these
data
structures
without
requiring
you
know,
changes
to
flow
simultaneous
changes
in
both.
A
So
you
know
that's
certainly
one
example:
we
have
used
python
in
the
past
as
this
tool
during
the
build
to
actually
generate
such
data
structures,
but
there
certainly
are
other
uses
of
python
during
our
our
build
pipeline.
A
A
A
Sorry
in
our
builds
that
we
can
that
we
can
use
for
various
purposes
during
the
build
process,
and
you
know
once
we've
you
know
made
that
made,
that
kind
of
a
statement
it'll
be
a
little
bit
easier
to
talk
and
and
and
and
cause
change
in
in
downstream
projects
with
with
this
dependency
documented
and
agreed
upon
by
the
by
the
omar
community.
A
So
essentially
I,
if
you
want
to
go
through
all
the
texts
that
I
have
written
here,
but
it's
basically
laying
out
a
laying
out
a
case
for
why.
I
think
that
python
should
be
part
of
the
the
the
devops
pipeline
that
we
have.
A
A
I
mean
there
is,
you
know:
python
does
run
on
zos
we're
not
completely
broken.
There
may
be
some
aspects
or
there
may
be
some
packages
that
that
are
problematic,
but
so
far
when
we've
stayed
within
the
lines,
we
haven't
really
had
any
problems
yet
with
with
with
python
on
zos.
So
I'm
I
think,
you're.
I
agree
that
we
have
to
be
cautious,
but
I
don't
know
if
that
is
one
that
will
actually
preclude
preclude
this.
A
But
anyway,
I'd
like
to
hear
people's
opinions
on
on
this,
and
in
particular
you
know
dissenting
opinions
on
on
this
approach.
A
The
the
outcome
by
the
way
of
this
particular
issue
is
really
just
a
rubber
stamp
that
the
omar
community
has
discussed
this
and
has
agreed
that
that
this
is
the
direction
that
we
want
to
go
in
and
it
can
be
used
as
an
issue
that
we
point
at
other
projects
to
say
that
you
know
this
is
this
is
why
we're
doing
this?
This
is
when
we
decided
that
so
it's
more
of
a
bookkeeping
kind
of
thing.
A
It's
it's
yeah,
it's
it's
an
enabling
feature
for
that.
I
know
that
there
has
been
some
interest
from
openj9
in
discussing
the
options,
implementation
that
we
have
not
necessarily
the
like
precluding
the
the
use
of
python,
but
maybe
how
some
of
that
has
been
structured,
but
it
I
think
it
is
certainly
a
step
in
that
direction.
There
are
other.
There
are
actually
many
other
examples
of
where
we
can.
We
can
auto
generate
some
of
the
data
structures
that
we
have.
A
That's
that's
currently
split
across
different
projects
like,
for
example,
the
like
the
value,
the
the
value
propagation
table,
the
simplifier
table,
the
you
know
that
even
the
tree
evaluated
tables
are
are
split
like
that
there
are.
There
are
a
few
things
that
we
can
a
few
data
structures
that
we
can
synthesize
that
way.
Even
the
op
codes
right,
dial
up
codes.
A
Okay,
so
I'll
probably
leave
this
issue
for
a
couple
of
days,
if
there's
any
dissenting
opinions
or
anything
that
anybody
wants
to
add
here
by
all
means,
you
know
add
it.
Otherwise,
I'm
going
to
conclude
that
there
is
consensus.
A
D
A
Okay,
so
if
there's
no
discussion
on
that,
the
last
topic
that
I
wanted
to
bring
up
is
something
that
was
already
discussed.
I
think
on
slack.
So
I'm
not
sure
if
there's
any
real
thing
to
bring
up
here
other
than
just
to
maybe
highlight
it
for
everyone's
awareness
and
just
get
general
agreement
that
this
is
the
the
direction
we
want
to
go
in.
A
So
the
eclipse
foundation
has
changed
their
their
process
on
contributions
to
the
to
to
the
to
the
code
base
where,
in
the
past,
they
used
to
require
that
all
the
commits
were
had
a
signed
off
by
line
that
contained
an
email
address
of
somebody
that
had
signed
the
eclipse
contributor
agreement
and
they
provided
tools
where
they
could
check
on
on
every
commit
that
was
checked.
That
was,
that
was
pushed.
A
They
could
check
to
see
whether
or
not
the
email
address
was
from
a
person
that
had
signed
the
eca
and
they
would
flag
it
otherwise.
So
it
was
a
handy
way
to
to
let
people
know
about
that.
They've
decided
to
approach
that
problem
with
a
different
solution,
so
they're
not
going
to
require
the
signed
off
by
footers
anymore,
instead
they're
going
to
go
by
the
the
email
address
of
the
author
of
the
commit
to
determine
this.
A
So
as
a
as
a
project,
we
were
requiring
that
that
the
signed
off
by
footers
are
are
mandatory
on
on
each
commit,
mainly
driven
by
the
requirements
of
the
eclipse
foundation.
So
if
they
don't
require
it,
the
question
is
whether
or
not
this
project
should
require
it.
So
I
think
the
consensus
on
slack
at
least,
has
been
no,
it's
just
an
unnecessary
step
that
that
people
have
to
go
through
and
provided
that
eclipse
is
going
to
be
providing
a
replacement.
A
A
If
they
are
able
to
provide
that,
then
we
I
I
I
think
we're
still
going
to
be
in
pretty
good
shape
if
they
don't
provide
that,
then
obviously
we're
going
to
have
to
do
some
manual
work
to
figure
that
out,
but
but
I
I
believe
they
are
providing
such
a
tool
going
forward
so
yeah.
So
the
the
the
topic
for
discussion
is
whether
or
not
we
should.
We
should
move
away
from
the
use
of
the
signed
off
by
requirement
in
our
commits.
D
Raise
them
so
I
I
think
they
already
updated
the
tool
because
reading
their
email
says
from
march
30th
onwards.
A
Yeah,
so
it
I
mean,
I
guess
we
can
try
it.
I
mean
not.
I
guess
urgent,
I
mean
somebody
can
next
time
somebody
does
a
push,
they
can
try
it
without
the
the
signed
off
by
and
see
what
see
what
happens.
A
A
A
A
Okay,
so
that's
the
those
are
all
the
topics
that
I
had
for
today.
I
guess
is
there
anything
else
that
people
want
to
bring
up
at.
A
All
right,
if
not,
I
think
we
can
adjourn
for
this
week
and
and
we'll
meet
again
in
in
two
weeks.
The
agenda
is
already
created
so
that,
if
you
have
topics
you
want
to
bring
up
by
all
means,
add
them
to
the
agenda,
and
I
guess
we'll
all
talk
as
a
group
in
two
weeks.
Then
all
right
thanks.
Everyone.