Let's implement `public` and `private` method visibility on a Ruby class.
About the Project: Natalie is a very early-stage work-in-progress Ruby implementation that compiles Ruby to an executable. It does so by transpiling Ruby to C++ and feeding it to gcc or clang to produce a binary.
We have a new IR-based compiler, so let's build a VM to interpret the instructions directly!
About the Project: Natalie is a very early-stage work-in-progress Ruby implementation that compiles Ruby to an executable. It does so by compiling Ruby to C++ and feeding it to gcc or clang to produce a binary.
GitHub: https://github.com/seven1m/natalie
Twitter: https://twitter.com/timmrgn
Discord: https://discord.gg/hnHp2tdQyn
YouTube: https://www.youtube.com/timmorgan
#programming #interpreter #vm #ruby
...
https://www.youtube.com/watch?v=3OqfQaT5X5c
Our PEG-based parser is too slow. :-(
Let's DELETE the code and start over! I started working on a new lexer and will be working soon to build a parser by hand.
GitHub: https://github.com/seven1m/natalie
Twitter: https://twitter.com/timmrgn
#programming #ruby #cpp #compilers #parsers
...
https://www.youtube.com/watch?v=oyBZD-WXJhc
Natalie is our little Ruby compiler that keeps getting better! So many things have happened in the last few months and I wanted to get an update out about what's new and where we are. Thanks for watching!
0:00 Intro
0:52 Just for Fun
1:25 YARP/Prism Parser
6:33 Date class
7:10 Self-hosted
8:28 OpenSSL Stuff
9:00 publicsuffix-ruby
9:53 Are we Ruby yet?
10:30 Self-hosted binary
12:16 PrettyPrinter
13:39 Useless Hacktoberfest PRs
14:22 Misc Herwin PRs
15:02 38 Contributors
15:41 FUN!
GitHub: https://github.com/natalie-lang/natalie
Twitter: https://twitter.com/timmrgn
Discord: https://discord.gg/hnHp2tdQyn
YouTube: https://www.youtube.com/timmorgan
#programming #compiler #ruby
...
https://www.youtube.com/watch?v=X55vMWxesxQ
Taking a break from trying to compile the ruby_parser gem, I thought it might be fun to try to write a PEG-based parser for Ruby. The C++ library I'm using supports left-recursion, so I'm hoping this can work. You never know unless you try!
GitHub: https://github.com/seven1m/natalie
Twitter: https://twitter.com/timmrgn
#programming #ruby #cpp #parsers #compilers
...
https://www.youtube.com/watch?v=5kGcuhDz4JA
Step 4 of the Make a Lisp process adds "if" and user-defined functions. Gonna be fun!
This video is part of a series. You can find the Make a Lisp playlist here: https://www.youtube.com/watch?v=hCH5HhftB5Q&list=PLWUx_XkUoGTrXOU0pFa_OVGA-6voiIEAt
GitHub: https://github.com/seven1m/mal-cpp
Twitter: https://twitter.com/timmrgn
Make a Lisp (mal) is a fantastic little guide that will teach you how to build your own lisp using whatever language you want! mal was created by Joel Martin (not me), and is available here: https://github.com/kanaka/mal
#cpp #lisp #mal #interpreter #programming #if #function
...
https://www.youtube.com/watch?v=0UfhCtv7T1E
For the month of December, I wanted to experiment with some... stuff. I don't know exactly where this going; stay tuned for more to come!
#ruby #compiler #vm #programming #types
...
https://www.youtube.com/watch?v=7KRVUmEwch4
Ruby's `redo` statement is quite interesting! Let's add it to Natalie.
About the Project: Natalie is a very early-stage work-in-progress Ruby implementation that compiles Ruby to an executable. It does so by compiling Ruby to C++ and feeding it to gcc or clang to produce a binary.
GitHub: https://github.com/seven1m/natalie
Twitter: https://twitter.com/timmrgn
#programming #compiler #ruby #cpp #redo #loop
...
https://www.youtube.com/watch?v=ob8iQn_Rljw
Join me as we finish up step 1 of the Make a Lisp guide, adding a HashMap, Vector, and teaching our reader to handle more input!
This video is part of a series. You can find the Make a Lisp playlist here: https://www.youtube.com/watch?v=hCH5HhftB5Q&list=PLWUx_XkUoGTrXOU0pFa_OVGA-6voiIEAt
Make a Lisp (mal) is a fantastic little guide that will teach you how to build your own lisp using whatever language you want! mal was created by Joel Martin (not me), and is available here: https://github.com/kanaka/mal
...
https://www.youtube.com/watch?v=f13dTrBHDqY
I'm writing a programming language that resembles Ruby, called Natalie.
https://github.com/seven1m/natalie
In this quick video, we teach Natalie how to accept arguments and make them available as an array in a constant. Easy peasy!
...
https://www.youtube.com/watch?v=oRlKytzB5sE