►
From YouTube: NGS weekly meeting #18 - 2022-02-13
Description
Project website - https://ngs-lang.org/
Discord - https://discord.gg/6VqgcpM
A
Hello,
welcome
to
weekly
ngs
meeting
ngs
stands
for
next
generation.
Shell
weekly
meetings
are
about
recent
progress
and
plans.
Here
we
have
ricardo
contributor,
I'm
ilya
author
of
the
project.
Let's
go
okay,
so
wanna
start
ricardo.
B
Some
more
they
not
just
make
sure
you
know
they
work.
One
good
thing
is
that
we
found
out
that
32
bits
does
compile,
but
not
all
the
tests
run
because
of
time
functions
and
so
on.
A
Not
particularly
time
function,
so
I
looked
at
that.
It's
not
particularly
time
functions.
It's
oh!
We
have
new
member
here
yeah.
I
would
assume
it's
richard,
but
let's
wait
a
moment
until
the
audio
connects.
C
C
C
A
The
problem
was
not
the
time
functions,
but
the
amount
of
bits.
A
That
you
allocate
yeah,
so
it
just
uses
two
bits
for
its
own
housekeeping,
so
out
of
30
bits
on
these
platforms
out
of
32
bits
on
these
platforms,
we'll
have
just
30.
A
yeah.
So,
let's,
let's
make
sure
that
I
would
assume
it's
richard.
So
we
are
recording
this
video.
So
just
letting
you
know,
it's
being
recorded,
feel
free
to
talk
about
anything
I
like,
but
in
general.
A
These
meetings
are
about
like
what
happened
recently
in
the
project
and
what
are
the
plans
for
the
near
future?
Okay,
so
we
were
discussing
with
ricardo
because
ricardo
and
we're
trying
to
add
new
architectures
to
the
build
and
aid
with
32-bit,
and
that's
probably
because
you
cannot.
C
A
B
C
A
Would
like
to
break
my
head
on
problems
which
are
like
more
how
to
say
more
affecting
the
users
yeah.
A
On
the
main,
so
what's
supporters
to
build
or
are
read
me
known
issues?
Well,
actually
we
can
look
at
this
from
the
other
way
that
our
readme
never
mentions
any
32-bit
platform.
A
B
But
we
should
say
we:
no,
we
should
say
that
currently
it's
only
it's
only,
you
know
supported
64-bit,
that's
it.
B
A
A
Because,
as
ricardo
mentioned
on
previous
meetings,
it
would
be
very
nice
to
have
released
so
before
we
are
making
this
release.
I
would
like
to
finish
the
script
and
I
want
in
this
meeting
to
go
over
like
other
things
and
then
dive
just
a
bit
deeper
into
the
release
script
and
see
where
we
are
standing
there
and
what
are
the
technical
issues
and
how
that
goes
so
unrelated
to
release
script
and
anything
else.
A
There
were
several
github
issues
and
discussions
and
I
would
like
to
share
my
screen
and
go
over
that
hoping
not
to
miss
anything
okay.
So,
let's
see
what
we
still
have
open
by
now,
so
ricardo
just
opened
a
32
bits,
build
it's
not
32,
build
it's
32
bits
build.
A
Build
okay:
let's
see
it
does
this
for
a
moment?
Okay!
So
what
else
do
we
have
auto
vivification?
Oh,
that
was
big
discussion
it's
not
over
yet,
but
the
general
idea
is
to
well
okay,
that's
pretty
big
and
to
implement
automatification
in
ngs.
I
I
in
general
agree
that
it's
a
desirable
feature.
A
Most
of
the
discussion
goes
like
about
details
and
how
better
to
implement
that
the
current
view
on
that
is
that
it
will
be
without
new
syntax
and
without
changing
any
default
behavior
and
we're
kind
of
trying
to
figure
out
the
details
of
the
implementation,
so
ricardo.
We
are
now
advanced
users
of
github,
because
it
was
the
first
discussion
that
I
created.
A
And
it
actually,
it
looks
from
my
perspective.
It
looks
fine,
so
they
have
like
this
message
and
then
they
can
reply
to
the
message
and
the
yeah
like
discussion.
Okay,
it's
I
think
it's
much
better
than
to
discuss
this
in
in
an
issue.
A
It
looks
better
okay
that
was
unrelated,
so,
while
on
the.
A
Yeah,
okay:
where
is
my
stuff
that
I
think
I
closed?
There
was
no
issue
on
that,
but
I
added
some
stuff.
Okay,
so
let's
go
over
the
recently
closed
ones,
so
trailing
closure
syntax
request
by
user
to
to
have
like
many
other
languages.
A
They
have
this
thing
when
you
can
do
my
func
yeah
and
then
provide
the
closure
and
code
here
and
the
main
problem
with
this
thing
is
in
ngs:
that's
a
bigger
syntax,
because
you
can
have
an
if
you
have
condition
and
then
okay,
so
my
funk,
this,
that's
the
yes
close
of
the,
if
that's
for
sure,
but
now.
What
is
this
is
this?
Does
this
belong
to
my
funk?
Or
is
it
the
else
part
so.
A
So
meanwhile,
nothing
nothing
happened
here
and
just
does
have
somewhat
similar
features.
So
meanwhile,
meanwhile,
nothing
happened
with
that.
It
was
a
bit
of
discussion,
but
let's
say
if
the
demand
will
be
high,
we'll
try
to
solve
that
too.
I
just
currently
don't
see
straightforward
solution
to
that.
A
Okay,
pcre
call
outs,
that's
feature
request,
but
also
we
are
like
waiting
for
more
demand
on
that.
It's
like
in
general
pcre
is
a
library
which
ngs
already
uses
it
already
exposes
some
functionality.
I
don't
have
any
conceptual
problem
with
exposing
more
functionality
of
the
same
library
we
are
already
using.
A
Now
it's
just
a
matter
of
priorities.
I
see
this
like
a
kind
of
a
bit
lower
level,
especially
when,
if
you
can
lose
quite
a
bunch
of
performance,
you
can
implement
that
in
another
way,
yeah
yeah.
I
would
happily
you
know,
review
a
pull
request
for
contribution
of
this.
That
will
be
great.
A
Some
discussion
about
syntax
yeah,
so
that's
a
fix
for
wiki.
A
I
said
pearl
grammars,
it's
actually
rakugramos,
but
I
guess
that
at
the
time
that
I
looked
at,
that
it
was
pearl
six
grammars
and
now
pearl
six
is
actually
called
raku,
so,
okay
so
fix.
I
fixed
that.
I
just
took
it
from
here
and
paste
it
into
wiki
requirements
yeah
another
discussion,
not
particularly
interesting.
A
A
Dje,
if
you
would
like
to
talk,
you
need
to
unmute
yourself.
If
not
it's
also,
fine,
not
everybody
has
to
talk.
C
C
Hi
hi,
just
one
quick
remark
about
this:
what
I
call
this
trailing
closures,
stentax,
I'm,
okay,
that
you
know
this
will
impact.
You
know
how
you
do
things
in
nts,
so
I'm
okay
to
use
this.
You
know
this
do
things
and
do,
and
with
I
mean
you
talk
about
this,
I
think
this.
This
would
be
just
fine.
Actually,
you
know,
but.
C
A
Yeah-
let's
do
this
for
a
moment,
so
my
funk
do
and
expression
here
and
so
what's
yeah,
I'm
talking
look.
I
think
you
already
know
that,
but
I
I
will
be
talking
about
the
potential
viewers
of
this
video,
so
what
we
have
here
like
unlike
other
languages.
First
of
all,
there
is
a
keyword
between
the
the
braces
and
the
expression,
but
what's
interesting
that
you
can
actually
continue
and
pass
several
arguments
like
this.
A
Instead
of
do
you
can
use
with
which
I
think
was
my
mistake,
because
I
don't,
I
think
it's
actually
the
only
place
in
ngs
when
you
have
two
things
like
keywords
or
or
something
like
that
which
do
exactly
the
same
thing.
I
think
I
think
it's
just
wrong
on
on
on
the
level
of
like
when
you
think
like
how
different
people
will
be
using
this
language,
and
then
you
know
yeah.
C
A
I
like
currently,
the
current
implementation
is
like
after
parsing
into
st.
These
are
like
completely
identical
things,
so
there
is.
C
A
And
actually,
after
the
parsing
part
is
just
so
much
syntactic
sugar
that
you
will
not
be
able
to
distinguish
not
only
between
do
and
whis,
but
even
like
between
actual
parameters.
It
would
go
here,
so
it
looks
like
completely
identical.
A
Do
with
and
the
regular
passing
of
arguments
are
all
completely
equal.
I
can.
Let
me
share
the
screen
for
a
moment.
I'll
share
another
window
and
I'll
just
show
the
syntax
file
share.
A
Okay,
that's
the
script,
but
we'll
get
into
this
in
a
moment,
syntax
yeah!
I
was
actually
okay
so
with
and
do
they
are
like
completely
aft
after
this
place,
nobody
is
able
to
distinguish
and
all
of
this
by
the
way,
there's
also
arrow,
but
it's
like
it's
completely
deprecated
already
it's
when
you
have
like
named
parameter,
but
it's
like.
I
duplicated
that
already
so
reason
do
they
are
here.
A
They
are
function
called
external
argument
in
our
syntax
and
and
as
you
can
see,
we
have
other
function,
call
arguments
here
and
oh,
what
happened?
Oh,
no,
okay
and
after
we
have
this
external
argument,
it's
just
appended
to
the
same
place
and
from
here
on,
you
just
can't
distinguish
any
of
this
stuff.
A
Yeah,
okay,
so
now,
okay,
is
there
anything
we
would
like
to
discuss
before
I
go
deep
into
the
release.
Script.
A
Okay,
by
the
way,
if
there
are
like
there's
like
a
particular
topic
which
is
like,
maybe
doesn't
fit
the
weekly,
we
can
do
another
meeting.
We
can
maybe
do
like
right
after
the
weekly
or
some
other
time
so
feel
free.
Everything
is
up
for
discussion
and
it's
good
to
have
okay.
So
for
now
the
script.
What
is
interesting
in
the
script
main
functions?
That
would
be
the
entry
point.
A
Okay,
a
third
program.
Well,
I
think
it's
like
one
of
the
areas
where
kind
of
I
would
say
and
just
beats
bash
in
its
own
game,
because
in
bash
this
looks
so
much
worse.
A
So
this
actually
checks
that
we
have
a
github
program
in
the
path
and
if
it's
not
in
the
past,
exception
is
thrown,
and
it
actually
says.
What's
what
happens
that
there
was
this
program?
It
was
gh.
Here
is
the
past
that
we
looked
at
and
it
was
not
found
there.
A
C
Sorry
because
you
try
to
compare
you
know
the
functionality
ngs
provides
and
bash
for
the
common
syntax.
C
My
question
is:
what
is
the
are
you
trying
to
have
a
kind
of
compatibility
level
between
ngs
command,
syntax
and
bash,
or
that's
totally
different.
A
It's
it's,
there's
no
goal
to
be
compatible
and
just
uses
a
small
subset
of
bash
and
and
just
actually
has
two
syntaxes.
That's
expression.
A
C
A
This
common
syntax,
like
here
it's
like
here,
it's
like
bash,
very
similar-
you
just
goes
program,
name
the
arguments
and
all
the
stuff.
So
what's
interesting,
we
have
options
part,
for
example,
this
command
will
be
logged,
so
you
will
see
we
can
actually
run
this.
C
Yeah,
but
what
I
want
to
know
is
that
about
these,
this
command
line
expansion
there's
a
bunch
of
different
type
of
expansion.
C
When
you
write
a
a
bash
comments
and
also
the
three
directions,
I've
seen
some
of
the
directions
in
ngs,
but
not
all
bash
things
are
supported,
and
this
might
be
a
in
an
interest
to
some
people
who
would
want
to
switch
to
ngs
because
they
are
used
to
bash
and
and
if
they
need
it,
they
have
to
lose
some
flexibility
on
the
command
syntax
part
they
may
cause
some
problem.
I
mean
that's
what
I
can
think
of
right
now.
A
Yeah,
so
here's
my
view
on
that.
Yes,
so
right
now
it
just
implements
small
subset
of
bash
and
I
think
whatever
will
be
a
hindering
productivity
should
be
fixed.
So
if
people
need
some.
A
So
I
I
would
like
to
explain
just
a
bit
more
in
absence
of
such
feedback
and
demand,
I'm
kind
of
making
it
just.
A
My
purposes
it
it
works
fine
and
I'm,
I
will
be
happy
to
add
some
other
functionality
if
anybody
asks,
particularly
if
it's
like
in
the
domain.
Okay,
so
work
with
files
must
be
convenient.
Work
with
processes
must
be
convenient,
so
this
goes
like
because
it's.
B
A
A
So
here
comes
a
kind
of
ugly
part
of
the
script
running
the
comments.
So
since
later
we
have
a
bunch
of
comments
which
would
be
running
in
specific
directory
and
with
log
option.
I
factored
that
thing
into
this
run
function.
A
So
what
is
happening?
What
is
happening
here,
this
percent
syntax
is
actually
saying.
Okay,
that's
the
command,
just
don't
run
it
now.
Okay,
so
you
you
have
a
reference
to
the
command
which
is
like
ready
to
run,
but
you
can
also
modify
it
before
running
so
what's
happening
here,
run
run
is
called
with
with
the
command
to
run
actually
it's
commons
pipeline
because
there
could
be
pipes
in
there,
so
it
gets
the
wall
pipeline.
A
So
what
it
does
here,
it
goes
and
for
every
command.
Here
we
just
have
one
in
each
pipeline,
but
for
every
comma
that
that's
the
log
option
and
if
current
directory
is
set,
it
also
sets
the
directory
in
which
to
execute
the
command.
I
think
it's
pretty
ugly
and
I'll
be
thinking
how
to
fix
that.
A
Yeah,
okay,
worn
is
just
something
which
is
go.
Message
goes
into
standard
error,
nothing
particularly
interesting.
So
what
what
are
we
doing
here
when
we
do
release?
I
expect
all
the
commits
to
be
on
the
dev
branch,
and
I
expect
there
would
be
no
commits
on
master
branch
which
are
not
on
the
dev
branch.
A
Otherwise,
we
are
like
in
a
bad
situation.
So
that's
the
check
which
checks
the
situation
with
the
master
branch
and
sees
if
there
are
any
commits
on
the
master
branch
which
are
not
on
the
dev
branch.
A
A
So
if
the
end-
and
I
also
marked
all
the
commits
from
the
master
branch
I
mark
them
as
if
they
were
merged
into
dev,
without
actually
merging
them,
so
this
check
is
now:
okay,
okay,
what's
interesting,
temp
directory
okay,
so
I
didn't
want
to
mess
with
this
directory
where
all
the
source
is
so
ngs
has
now
I
recently
added
a
temporary
directory
object.
A
A
A
So,
what's
interesting
here,
git
diff
with
exit
code
can
tell
us
if
the
file
was
changed
and
what's
interesting
here
from
ngs
side.
Is
that
there's
an
option
which
says:
ok
and
that's
a
list
of
exit
codes
on
which
not
to
throw
an
exception
so
for
comments
that
ngs
doesn't
know
about
non-zero
exit
code
would
be
an
exception
so
about
git
diff.
It
just
doesn't
know
yet
so
I
needed
to
list
it
not
to
have
an
exception
and
then
conversions
into
boolean.
That's
the
regular
stuff.
Zero
is
true.
A
Yeah,
because
once
you
are
in,
for
example,
namespace
you
switch
syntax
from
commands
to
expression
and
to
switch
back
to
commands
like
bash.
You
need
to
do
this
stuff.
C
This
is
fine,
but
we
have
this
this
percent.
Yes,
this
one
thing:
why
do
we.
A
Yeah
and
percent
only
actually
create
the
command
object
without
running
it.
You
can
do
here.
A
Commons
pipeline:
let's
do
another
one,
which
is
more
elaborate,
so
we
have
here
okay,
commons,
pipeline
common
zero
as
that's
a
ls,
then
we
have
a
pipe
and
then
we
have
another
command.
A
Without
and
if
you
would
a
dollar,
that's
see
it's
already
processed,
so
it's
processes
pipeline,
not
comments,
it's
processes
because
they
were
running
and
let's
see
what
they
did
yeah.
So
we
have
redirects
here
and
file
descriptor,
one
and
stuff
like
that.
Okay,
anything
else
before
we
continue
with
the
script
nope,
okay,
so
yeah.
So
while
I'm
working
the
script,
I
also
seen
you
know
how
like
there
are
quite
a
few
ugly
parts
which
I
will
need
to
fix,
but
there
are
also
quite
a
few
good
parts.
A
So
in
change
log
we
have
unreleased
at
the
top
change
log.
Okay,
so
we
have
it
here
because
unreleased
it
comes
like
instead
of
the
date
which
will
have
another
versions.
So
during
the
release
process
it
should
be
substituted
with
the
date.
So
how
we
do
that,
I
added
a
replace
function
which
works
with
file
now,
so
it's
in
in
in
place
replace,
so
it
just
takes
the
unreleased
and
places
the
date
over
there.
A
Here
is
just
it's
just
kind
of
sanity
check
that
after
I
replace
unreleased,
I
expect
to
see
git
div,
which
says
that
unreleased
was
removed
just
to
make
sure
it
all
worked.
Fine
git
commit
okay.
Now
it
comes
something
more
interesting,
so
it
has
this
git
commit
which
needs
to
be
pushed.
A
But
then
I
want
to
watch
the
github
action.
A
Yeah
we
got
the
commit
id
from
git
and
and
now
it's
interesting
stuff,
okay,
retry
built
in
in
standard
library,
and
we
are
waiting
until
github
cli
will
tell
us
that
there
is
a
workflow
started
and
the
the
commit
id
matches
that
flow
yeah.
So
what
is
happening
here
is
this.
A
A
If
any
of
the
elements
is
matching
this
pattern-
and
we
are
just
looking
if
we
have
our
commitment
there
so
after
it's
there,
okay,
so
what
happens
if
it's
all
like
over
and
no
and
the
body
is
still
failing?
Well,
it's
an
exception.
It's
retry
exception.
So
no
nothing
continues
here.
So
then
we
need
to
wait
for
bill
to
finish
a
very
similar
thing.
A
What
I'm
thinking
is
actually
to
replace
this
github
command
line
with
something
else,
because
it's
it
seems
absurd
to
me
that,
as
this
guy
needs
my
login
to
work
with
the
repository,
which
is
public,
I
think
I'll,
probably
just
use
the
rest
api
they
provide.
I
think
I
will
be
able
to
fetch
what
I
need,
because
you
know
if
you,
if
you
go
to
the
website,
you
don't
need
to
be
logged
in
to
see
all
this
actions
and
flows
and
all
that.
A
A
A
A
Yeah
yeah,
that's
that's
exactly
the
idea.
Any
questions
before
I
stop.
Sharing
the
release.
Script.
A
Okay,
so
I'll
stop
okay,
so
I
think
we're
kind
of
good
for
this
week,
so
I'll
stop
recording
and
you
guys
can
stay
for
a
bit.
If
you
want
to
discuss
anything
before
I
stop
recording
what
I
need
to
say,
ricardo.
What
do
we
need
to
say
before
stopping
recording.