►
From YouTube: NGS weekly meeting #17 - 2022-02-06
Description
Project website - https://ngs-lang.org/
Release script - https://github.com/ngs-lang/ngs/blob/9f72d55f1889e2d9c6eab4d3a229858bf5653a21/release.ngs
Discord - https://discord.gg/6VqgcpM
A
Hello
welcome
to
ngs
weekly
meetings.
Ngs
stands
for
next
generation.
Shell,
I'm
ilya
share
the
author.
Weekly
meetings
are
about
recent
progress
and
future
plans.
Let's
start
okay,
so
ricardo
is
not
with
us
today
because
he
is
busy.
That's
fine!
It's
all
you
know
volunteer
volunteer
work,
so
no
questions
asked
even
yeah.
A
So
ricardo
reminded
me
that
well
we
don't
have
a
release
script
yet
and
we
should
really
automate
the
release
and
he
is
right-
and
I
had
it
kind
of
in
the
back
of
my
mind,
but
since
chicago
reminds
us
that's
what
I'm
working
on
recently,
but
let's
maybe
before
we
dive
into
that.
I
would
like
to
share
my
screen
and
discuss
very
shortly
the
milestones.
A
Okay.
So
where
are
we
muscle
0
to
14?
A
A
We
had-
I
don't
remember
if
you
reported
the
previous
week
or
not,
we
have
update
to
the
site
on
the
dev
branch
which
is
not
released.
Yet
we
are
supporting
dark
team
now
on
the
site,
not
released,
but
it's
will
be
released
soon,
okay.
So
what
I
would
like
to
do
now
is
to
share
my
screen
and
share
the
release,
script
and
discuss.
A
Not
from
the
perspective,
what
what's
to
do
and
what's
done,
but
more
as
a
general
explanation
about
how
ngs
scripts
look
and
how
they
work.
A
A
Yeah
so
maybe
let's
start.
A
A
I
would
like
people
to
switch
to
ngs4
and
I
would
like
to
switch
because
I
I
think
people
will
be
more
productive.
Is
this
with
the
switch,
because
ngs
was
specifically
intended
for
this
niche,
it's
not
about
being
better
or
worse
than
other
languages.
A
It's
about
particular
fit
for
the
tasks.
Okay.
So
with
all
that
in
mind,
let's
go
from
top
to
bottom
of
the
script,
so
well,
first
line
yeah
we're
on
the
switzerland.js,
nothing
particularly
surprising
here.
This
is
my
comment.
I'm
actually
translating
the
release
process
document
which
you
have
in
the
repository
at
the
top
level.
Also-
and
these
are
all
the
steps
that
I'm
currently
doing
manually.
A
Let's
say
eliminate
most
common
cases
where
there
are
no
new
changes
on
master,
which
is
a
typical
use
case,
and
so,
as
I
really
script
will
detect
the
will,
detect
this
and
just
continue
running
without
any
intervention
on
my
part.
A
Okay.
So
here
we
have
original
document,
and
this
is
just
a
start
of
translating
the
document
into
a
script.
So
ns
ns
is
a
namespace
declaration
in
ngs
the
definition.
Actually,
this
will
go
away
because
all
files
will
have
this
namespace
wrapper,
like
you
have
in
let's
say
javascript
and
python
right
now,
without
an
s,
you
would
have
this
source
branch
and
target
branch.
A
A
Unintended
and
advised
against,
let's
say
so:
you
should
use
namespace
yeah.
Okay.
What
do
we
have
next,
as
the
definition
of
the
main
function?
What's
important
and
just
doesn't
actually
look
for
this
function
from
the
start?
What
is
happening?
A
So
why
I'm
defining
main
function
here,
because
I
expect
to
get
command
line
arguments
like
version,
for
example,
it
would
be
a
string
that
will
be
added
later,
but
I
already
know
that
I
will
add
that
and
what
what
is
happening,
if
you
do
this,
if
you
do
this,
if
you
give
the
parameter
to
the
main
function
and
js
will
see
that
and
will
automatically
match
the
command
line
arguments
with
this
parameter.
So
you
don't
need
to
do
like
manual
parsing
of
of
the
command
line
arguments.
A
A
A
A
To
ruin
anything
in
the
current
directory,
where
the
script
is
because
that's
the
checked
out
code
that
I'm
working
with
so,
for
example,
if
I
would
delete
the
build
folder
on
my
my
machine,
the
ngs
binary
is
actually
linked
to
the
build
folder,
so
it
just
crashes.
So
I
don't
want
that.
I'm
copying
copying
the
working
directory
into
another
directory,
but
let's
discuss
this
for
a
moment.
This
is
a
temporary
directory,
so
ngs
had
up
until
recently
had
tmp
file.
A
So
what
tmp
file
and
tmpd
have
in
common
is
the
behavior
on
exit
on
exit,
the
temporary
file
or
temporary
directory
are
automatically
removed,
and
actually
there
are
several
policies
about
how
to
remove
the
file.
So
in
this
particular
case,
by
the
way
this,
like
requirement
to
have
these
policies
comes
from
my
friend
andre.
He
looked
at
the
temporary
file
and
said,
okay.
What?
A
If
I
don't
want
to,
if
something
crashed,
what
I
want
to
see
what
happened
so
either
policies
quite
a
bit
ago,
so
I'm
creating
temporary
directory
here
and
this
temperature
directory
will
be
removed
automatically
unless
there
was
an
error,
and
in
that
case
this
directory
will
be
kept.
A
I'm
logging,
where
this
directory
is
this,
is
not
strictly
necessary,
because
if
you
have
this
policy,
oh
I
can.
I
can
just
show
what
happens.
A
Okay,
let's
see
what
happens
if
the
script
crashes,
okay,
I'm
creating
temporary
directory,
I
don't
need
any
reference
to
it
and
then
I
just
want
to
crash
okay.
So
in
this
case,
if
this
policy
is
active
and
the
directory
is
kept,
you
will
have
log
which
says
tmp
there,
and
I
did
nothing
in
my
script
in
my
command
line
to
have
that
as
a
behavior
which
is
built
in
so
this
log
is
not
strictly
necessary.
A
A
Which
is
a
subdirectory
of
temperature
directory?
What
is
happening
next?
We
are
copying
current
directory
into
that
branch
directory.
We
clean
that
directory
up
his
kit
reset
hard
and
then
check
out
the
needed
branch.
A
A
And
this
is
an
example:
yeah
writing
command,
ls,
okay,
so
these
are
things
are
called
options.
They
must
have
colon
if
nothing
follows
the
colon.
That
means
that
the
value
is
set
to
true
that's
kind
of
implementation
detail,
but
nevertheless
it
is
useful
in
several
ways
like,
for
example,
with
log
okay,
cd
is
another
option
is
where
you
want
to
run
the
command
yeah.
A
A
You
could
potentially
redefine
the
dollar
dollar
parenthesis
command
and
well
it
it
will
work.
It
will
not
look
good
and
it's
a
bit
cumbersome.
There
should
be
something
simpler
than
that:
okay,
so
what
we
have
after
the
four
we
have
source
tier,
which
is
the
source
branch
there
target
deer,
which
is
quite
clear
okay.
A
So
there
are
several
several
things
which
will
happen
in
the
source
there,
which
is
the
dev
branch,
I'm
removing
build,
I'm
making
build
running
tests
running
this,
and
you
can
once
again
see
that
there's
a
bunch
of
options
which
are
copy
paste
here
and
that's
not
good.
A
A
A
Types
count:
okay,
that
is,
output
of
a
script
which
is
run
by
this,
make
comment
and
what
we
can
observe
is
actually
indistinguishable.
A
A
Okay,
so
we
just
went
over
the
script.
I
don't
think
there
was
anything
like
completely
surprising.
A
I
think
that
we
have
seen
several
power
features
like
temp
tier
and
something
that,
for
example,
if
you
work
in
bash,
you
would
have
like
trap
commands
to
trap
the
exit
process
delete-
and
you
know-
and
all
of
this
is
just
repeated
with
so
many
scripts-
that
I
don't
see
any
particular
reason
not
to
factor
this
out
into
standard
library
where
tmpd
is
actually
defined,
and
my
kit.
A
Okay,
so
leave
comments.
If
you
have
any
questions
or
advice
or
recommendations
also
feel
free
to
open
github
issues.
If
you
think
of
something
feel
free
to
join
our
discord,
I'm
there
I
can
help
you
with
adoption
of
ngs
questions
other
help.
What
not
well
hope
you
liked
this
episode,
how
to
say
like
and
subscribe.