►
From YouTube: NGS weekly meeting #8 - 2021-11-28
Description
Project website - https://ngs-lang.org/
Website update pull request - https://github.com/ngs-lang/ngs/pull/486
MacOS man pages fix pull request - https://github.com/ngs-lang/ngs/pull/503
Closed issue about fixed decoding of Bool - https://github.com/ngs-lang/ngs/issues/451
Pattern matching in NGS - https://github.com/ngs-lang/ngs/wiki/UPM-Design
A
Hey
recording
in
progress,
okay,
hello,
everybody
welcome
to
weekly
ngs
meeting
ngs
stands
for
next
generation.
Shell
here
is
ricardo,
a
contributor.
A
B
A
B
So
I
traced
it
down
to
the
point
that
apparently
the
place
where
the
money
is
being
stored
is
not
the
default
place
on
mac
os
for
reading
the
months
so
yeah.
A
B
A
B
B
A
B
What
so
I
did
the
fix,
it's
just
a
nif,
so
you
know
it's
it's
fine.
So
what
what
I
was
actually
now
thinking
about
is
that
I
should
probably
do
a
uni
test
about
that,
because
I
was
asking
you
to
test
on
your
linux
and
on
your
mac.
To
be
sure
you
know
it
was
working
fine,
but
I
could
actually
also
do
a
a
test
for
this
to
see
if
the
command
would
return.
You
know,
okay
or
you
know,
or
fail.
B
B
B
A
B
B
Up
this
thing
you
know
we
need
to
to
enter
in.
You
know
to
enter
in
a
week
or
month
that
we
just
do
ngs
night
to
you
know
date
tonight
clean
up
all.
A
Should,
on
the
other
hand,
you
know
if,
if
I'm
working
on
something,
I'm
trying
to
focus
on
it,
so
if
I
see
like
a
side
dish
I'll
just
file
a
bug
and
I'll
continue,
that's.
A
A
B
A
That
sometimes
probably
not
enough
yeah,
okay,
so
yeah,
so
anything
else
from
your
side.
No,
that
was
okay,
so
yeah
I've
seen
you
had
comments
on
issues
and
stuff
like
that
yeah
I
didn't
get
to
any
of
that
yet,
but
I
made
progress
on
other
things,
so,
let's
get
to
that.
Okay.
So
for
the
first
point
I
by
the
way
prepared
notes.
So
I
don't.
B
A
B
A
B
A
A
And
I
was
thinking,
maybe
make
a
pattern
like
this,
but
five
minutes
ago
I
concluded
that
existing
facilities
in
the
language
would
be
good
enough
status
in
two
two.
Three
and.
B
A
Is
nice
yeah?
That's
part.
A
A
A
A
Yeah,
a.
A
A
B
B
A
B
A
So
other
issues
so
tr
the
new
facilities
that
I
added.
Unfortunately,
I
have
forgotten
to
add
it
in
the
script
which
makes
the
documentation
and-
and
why
did
it
miss
it
because
it's
it's
a
standalone
file
like
it's,
not
the
communication
doesn't
see
it
because
it's
not
loaded,
you
need
to
load
it
like
other.
B
A
B
A
We
need
to
set
up
email
for
the
ngslang
okay.
I
also
seen
that
there
are
missing
documentation
for
all
of
methods.
A
As
a
reminder,
all
office
represents
a
pattern
where
all
of
the
sub
patterns
needs
need
to
match
for
the
overall
match
same
for
any
off,
but
it's
any
of
the
patterns
should
match.
Maybe
we
could
give
an
example
any
off.
Let's.
A
I'll
share
the
terminal-
maybe
no,
maybe
later
I'll,
take
a
note
that
maybe
later
when
I
share
the
yeah.
A
A
B
A
For
zc
libraries
that
it
passed
only
like
some
of
the
text-
I
guess
it's
by
design
by
the
way.
So
in
this
situation
it
passes
one
dot
understands
it's
a
real
number
and
returns
real
number
1.0.
A
Yeah
yeah,
it
looks
completely
weird
when
you
see
that
so
you
do
backslash
backing
back
to
kls
and
you
get
real
1.0
and
it
was
like
one
html.
It's
completely
bizarre
okay,
but
I
it's
it
looks
like
it
will
be
pretty
work,
some
some
work
to
do
to
fix
that.
So
I
left
it
for
now,
but
it
would
be
like
one
of
the
acute
that
needs
to
be
fixed.
Okay.
A
That
was
some
time
ago.
It
was
not
okay,
so
we
are
done
with
the
last
week
regarding
the
bugs
next
thing.
Okay
of
the
closed
issues.
I
closed.
A
A
B
B
It's
it's
open.
It's
cleanup,
ngs
source.
B
A
A
A
Most
people
wouldn't
care
that
much
from
several.
A
B
A
So
I
can't
find
it,
but
I
fixed
the
code,
I
think
ricardo
yeah
this
one
four
days
ago.
I
didn't
see
it
in
the
closed
ones.
So,
okay,
so
if
you
remember,
we
seen
that
the
strings
starting
with
y
were
parsed
as
boolean.
Yes,
yes,
well
guess
what
there
was
a
regular
expression
and
and
the
closing
bracket
was
in
the
wrong
places
should
be
in
the
end
and
it
was
like
somewhere
in
the
beginning.
A
So
anyhow,
this
is
now
fixed,
of
course,
and
it's
not
like
the
that
you
type
y
x
and
it
will,
it
will
fail
now
it
will
fail.
It
will
not
parse
it
as
boolean.
True.
A
Like
okay,
so
there
will,
it
will
be
some
work
here
so
because
I
wanted
to
be
okay,
so
there
are
two
options
as
far
as
I
understood,
by
the
way,
my
understanding
there
is
not
100,
yet
you
can
do
a
layer
or
you
can
do
a
custom
runtime
like
completely
like
new
container
stuff,
like
that,
I'm
going
with
custom
layer,
because
I
want
to
make
possible
to
use
ngs
as
like
additional
language
in
the
container
yeah.
It.
A
A
I
know,
but
now
apparently
it's
it's
a
blocking
for
this
one.
B
A
B
B
A
Looking
at
this
and
guess
what
there
is
a
problem
and
and
the
problem
okay,
so
I
started
okay
by
the
bootstrap
okay,
I
took
the
one
that
they
had
for
bash
and
I
just
rewrote
this
and
then
yes,
well
guess
what
and
then?
Yes,
it's
look
it's
looking
much
better,
but
there
are
a
few
things
here.
Okay,
so,
let's
start
with
all
the
problems
I
didn't
find
peg,
which
is
a
real-time
dependency.
A
B
A
B
But
are
we
using
pandora
because
I
didn't
saw
it
in
the
man
script
we
used
to
build
man,
I
don't.
A
A
Okay,
I
I
can
tell
you
that
the
source
of
one
pages
is
markdown,
because
it
was
like
too
shitty
of
a
syntax
to
work
with.
So
I
did
one
and
and
by
the
way
it's
it's.
The
sources
in
markdown
and
the
output
is
not
only
man
but
also
the
html
pages
for
the
documents
site.
B
A
B
Library,
it's
a
it's
a
binary,
it's
a
program,
external
program
that
that's
being
used,
but
generally
you
include
it
on
cmc
list
right,
including.
A
Yeah
we
use
it
yeah.
I
told
you,
okay,
so
take
a
look
at
this
thingy,
so
you
are
past
environment
variable
with
underscore
handler,
so,
okay,
how
how
all
this
works.
When
your
runtime
starts,
when
your
laptop
starts,
it
looks
for
the
bootstrap
file
and
runs
that
that's
it
other
than
that.
You
have
apis
that
you
need
to
call
okay
and
the
most
important
api
is
on
this
line.
That's
the
invocation!
Next!
B
A
Okay,
so,
okay,
now,
let's,
let's
look
for
a
moment
what
is
happening
so
this
environment
underscore
handler.
A
That's
how
you
pass
the
file
name
and
the
function
name
to
run
okay,
so
here's
this
part
which
deals
with
that
and
I
don't
like
it
a
lot
this
inability
to
to
assign
to
two
variables
at
once-
and
I
was
thinking
about
this-
how
to
do
that
and
the
problem
that
when
I
think
about
this
is
just
too
much
to
think
about,
because
why.
B
A
It
can
start
like
getting
messy
okay,
because
then
you
add,
like
dot
dot
dot
to
capture
like
arbitrary
number
of
elements
right
like.
A
B
Because
not
so
why
not.
B
A
I
know
I
want
to
think
about
this
now,
because
maybe
it's
not
the
appropriate
way
to
go
about
this,
I
see,
maybe
it
will
be
like
garbage
syntax.
You
know
which
is
not
yeah
yeah.
So
there
were
several
thoughts
and
I
kind
of
we're
thinking
about
something
like
that.
Well
here
it's
a
comment
right,
but
maybe
in
ngs
appropriate
way
would
be
to
have
some
some
operator
and
to
the
right
of
that
operator.
A
Yes,
something
like
that
yeah,
but
there's
just
too
many
nuances,
so
I
meanwhile
didn't
do
anything
about
this.
B
A
Well,
maybe
not
no,
I
mean
well,
you
had
okay,
if
you
just
zoom
out
a
bit
okay,
so
this
destruction
assignment
is
actually
a
specific
case
of
pattern
matching
and
in
other
places,
when
we
have
pattern
matching.
B
It's
just
weird,
you
know,
because
the
problem
of
thinking
a
function
there
right
is
that,
then
you
should
keep
the
context
of
a
function.
If
not,
you
know
you
are
implementing
a
completely
new
concept
that
doesn't
match.
You
know
what
the
function
should
be.
A
B
A
B
A
B
B
A
B
A
Is
also
not
that
bad,
but
then
you
don't
even
have
to
have
new
syntax,
you
can
add
dot
dot,
I
don't
know,
call
wiz
or
whatever,
and
you
pass
this
function
as
a
callback
and
that's
it.
You
don't
need
syntax
at
all
and
I
like
not
having
syntax
at
all
or
maybe
just
to
use
some
existing
operator
here.
B
A
I'm
thinking
about
this,
I'm
not
100
sure
I
right
now.
I
think
that
all
the
solutions
that
they
have
they
are
not
good
solutions
and
that's
why
it
takes
so
long
because
I
don't
think
like
not
not
any.
One
of
them
feels
like
100
percent,
correct.
B
A
B
A
You
know
what
it
becomes
a
long
discussion,
so
maybe
maybe
we
can
do
it
another
time?
Yes,
maybe
even
after
this-
I
don't
know,
let's,
let's,
let's,
let's
see
when
we
do
it,
okay,
so
to
the
fun
part:
okay,
so
line
24
here,
okay,
there's
curl,
okay
and
dash
I
on
the
curl
so
dash
I
on
the
curl.
That
means
also
return
headers.
So
now
you
have
this
headers
empty
line
and
the
body
okay.
So
what
I
thought
would
be
cool
and
useful
for
other
use.
A
A
Is
json,
so
you
have
the
cone
jason
here
I
considered
making
this
the
code
to
go
to
also
descend
into
body
and
decode
that
okay.
A
B
B
B
A
A
B
B
A
A
A
I
think
that
if
you
like
reset
your
mind
and
now
ask
arbitrary
person
on
the
street,
which
is,
I
don't
know,
beginner
programming
programmer
and
never
heard
about
javascript
or
python
or
like
any
one
of
this,
and
you
show
this
to
syntaxes
yeah.
I
think
maybe
is
that
person.
B
B
B
B
B
A
Can
use
them
in
in
the
chunk
of
code
that
you
have
so
while
it
is
like
good
feature
of
a
language,
and
it
was
actually
copied
from
other
languages,
and
they
also
have
it
pretty
much
like
that.
I
would
like
to
maybe
highlight
the
differences
in
in
the
approach.
A
A
A
Okay,
so
nngs
you
have
this
basic
functional
stuff
like
all.
What
does
all
do
all
checks
if
all
elements
of
the
array
are
matching
something?
So
that's
something
in
ngs
is
a
pattern.
Okay,
so
for
example,
and
would
be
a
pattern
and
guess
what
all
these
numbers
on
the
left
are
integers,
so
that
matches.
So
all
the
argument
to
all
is
a
pattern.
A
Okay
and
you
just
don't-
have
it
in
other
languages
like
that,
unless,
unless
I
didn't,
I
did
miss
in
some
language,
but
typically
in
languages,
you
would
get
this
basic
functional
stuff.
All
any
filter
eject
blah
blah.
They
would
have
a
predicate
in
here.
Predicate
a
function
like
this,
and
so
you
would
have
to
write
something
like
that:
x,
isn't,
okay,
that
would
be
the
typical
language
in
ngs.
When
I
added
patterns,
I
thought
okay,
which
places
should
work
with
patterns,
and
I
think
it's
like
anywhere,
where
you
have
predicate.
A
So
that's
one
kind
of
aspect
of
that.
Another
one
is
that
patterns
and
js
are
not
special
syntax.
They
are
just
objects.
That
means
that
you
can
actually
compose
them
like.
Okay,
my
pattern
is
a
one
right
and
then
I
can
use
it
like
this.
A
Okay
and
it's
guess
what
composable?
Okay.
That
also
means
that
I
can
do
you
know
what
that
was
not
enough.
I
had
some
other
condition,
and
now
I
need
to
add
something
to
p.
Okay,
no
problem
p
will
now
also
require
entry
b,
which
is
two
okay.
So
now
it's
false
and
b
two
now
it's
true
okay,
so
I
composed
the
pattern
and
you
just
can't
do
it
in,
for
example,
python.
A
The
downside
of
this
approach,
which
I
have
now
is
that
you
know
you
don't
have
right
now.
I
don't
have
a
way
at
all
to
capture
sub
patterns.
A
A
A
That
means
a
method
which
has
several
implementations
depend
depending
on
the
arguments,
and
here
x
is
a
string
and
for
string
it
returns
s.
A
Okay
and
now
I
have
f
of
one
that
will
be
one
and
f
of
s
would
be
yes,
no,
let's
do
x
s
still
s,
that's
because
it's
s
from
here,
okay,
so
I
I
thought
it
just
worth
mentioning
that
ngs
already
has
kind
of
built
in
pattern
matching,
and
that
happens
every
time
you
call
a
multi
method
which
is
kind
of
all
over.
A
So
that's
it
for
my
side.
For
today,
if.
A
Screenshot,
oh
my
yeah,
okay,
okay,
so
I
guess
that
would
be
all
for
today
we
are
we're
having
whoa
that
was
long,
one.
Okay,
this.
B
A
A
Yeah
like
and
subscribe
yeah,
because
if
you
don't.
A
Okay,
I'll
stop,
recording
so
see
you,
everyone.