I never got to take a compiler course in school, so I’m toying around with writing a compiler front-end (lexer/parser) from scratch. I’ve done stuff on my own with lex(flex)/yacc(bison) before, for this I’m not inventing a language or anything, just learning things. I wrote a math expression parser with order of operations including evaluation, simple, but it made me happy.
I’m torn between learning about type checking vs code generation, my goal is to get the point to generate a simple “hello world” standalone executable, maybe using QBE or LLVM as a backend.
Adding feature detection to the Ruby profiler I am working on, rbperf. The idea is to run a BPF program to query the running Kernel and see whether some capabilities are present or not. For example, I would like to check if the’s support for BPF ring buffer among others, and adjust some of rbperf’s settings dynamically.
This will also be useful for bug reporting, as so far I am asking some users to run commands for me, which doesn’t really scale. I am thinking of something like rbperf info to show all the relevant runtime information to aid in debugging.
Starting a new role at $WORK. For the first time in my professional career, my focus on the job closely lines up with my organic interests and skills. A little nervous at the possibility of getting burned out with the overlap of work and hobby coding, but I think that is outweighed by how excited I am to be working with the new team.
In the middle of two weeks of vacation, getting some writing, some coding, and—most importantly of course—some poolside drinking done.
I’m really impressed with my M1 MacBook Air. Even in direct sunlight here in Barcelona it’s still idling at 46-52C, and has lost less than 20% battery after two hours of usage at full brightness. The only downside is my wrists and fingertips are burning on the metal and black keys
I’m working on a library for working with real numbers in arbitrary precision. This week I want to focus on refactoring it. It’s still extremely basic, but it can do addition, subtraction, multiplication and division of real numbers. Next are square roots, exponentials, and logarithms.
It’s based on continued fractions, explained in https://perl.plover.com/classes/cftalk/INFO/gosper.txt, with some improvements I thought of (for example, it tries to use simple continued fractions and falls back to generalized continued fractions when a computation gets stuck).
Signing back up to the gym! Now that my house stuff is settling I have time again, but honestly the house work alone was enough to make up for it. Looking forward to my daily high intensity exercise again. Get them endorphins.
Planning a little for building a game console shelf (10 consoles). I calculated with a little Standard ML program that one wood 5x8 foot wood panel is enough to recreate an Ikea-sized one at the same price but better quality!
I need to start thinking about how to host my projects too now that I’ve scrubbed GitHub. I want something stupid simple. I was thinking just an RSS feed that lists the projects and when the feed updates the projects that were updated just get pushed to the top. Each entry can be described by a project’s README and cloned from my VPS. Collaboration can be done via git-send-mail because out of the years of using GitHub I’ve probably received < 20 PRs over my life there. Usually it’s the people that really care that submit things in any which way.
Mmm that’s about it! Hope you all have a good week.
Work: Joining a new team at work in a new to me technical area. Exciting times!
Private: Signing contracts to buy a house this week. Even more exciting times!
Back from three weeks of vacation. So, I’ll be reading my email backlog. Ugh.
Starting a two week family trip to Norway!
I never got to take a compiler course in school, so I’m toying around with writing a compiler front-end (lexer/parser) from scratch. I’ve done stuff on my own with lex(flex)/yacc(bison) before, for this I’m not inventing a language or anything, just learning things. I wrote a math expression parser with order of operations including evaluation, simple, but it made me happy.
I’m torn between learning about type checking vs code generation, my goal is to get the point to generate a simple “hello world” standalone executable, maybe using QBE or LLVM as a backend.
What language are you compiling? Or is it some ad-hoc you’ve thrown together for the purpose?
I’m just doing math expressions right now, I was thinking of doing something small and well-defined, like a small Python subset.
If you’re using Rust, I highly recommend Cranelift.
Interesting, but I’m using C++.
Adding feature detection to the Ruby profiler I am working on, rbperf. The idea is to run a BPF program to query the running Kernel and see whether some capabilities are present or not. For example, I would like to check if the’s support for BPF ring buffer among others, and adjust some of rbperf’s settings dynamically.
This will also be useful for bug reporting, as so far I am asking some users to run commands for me, which doesn’t really scale. I am thinking of something like
rbperf info
to show all the relevant runtime information to aid in debugging.Back from a fortnight in Greece, getting settled back into land-life and home-life. Beyond work, not a huge amount planned.
Starting a new role at $WORK. For the first time in my professional career, my focus on the job closely lines up with my organic interests and skills. A little nervous at the possibility of getting burned out with the overlap of work and hobby coding, but I think that is outweighed by how excited I am to be working with the new team.
In the middle of two weeks of vacation, getting some writing, some coding, and—most importantly of course—some poolside drinking done.
I’m really impressed with my M1 MacBook Air. Even in direct sunlight here in Barcelona it’s still idling at 46-52C, and has lost less than 20% battery after two hours of usage at full brightness. The only downside is my wrists and fingertips are burning on the metal and black keys
Home: Parents arrived for an extended stay to be around for when their first grandchild is born!!! 😊👶🏼
Work: Normal work week, diving into some new stuff and hopefully escaping a fourth straight week of writing nothing but Postgres triggers.
I’m working on a library for working with real numbers in arbitrary precision. This week I want to focus on refactoring it. It’s still extremely basic, but it can do addition, subtraction, multiplication and division of real numbers. Next are square roots, exponentials, and logarithms.
It’s based on continued fractions, explained in https://perl.plover.com/classes/cftalk/INFO/gosper.txt, with some improvements I thought of (for example, it tries to use simple continued fractions and falls back to generalized continued fractions when a computation gets stuck).
Signing back up to the gym! Now that my house stuff is settling I have time again, but honestly the house work alone was enough to make up for it. Looking forward to my daily high intensity exercise again. Get them endorphins.
Planning a little for building a game console shelf (10 consoles). I calculated with a little Standard ML program that one wood 5x8 foot wood panel is enough to recreate an Ikea-sized one at the same price but better quality!
I need to start thinking about how to host my projects too now that I’ve scrubbed GitHub. I want something stupid simple. I was thinking just an RSS feed that lists the projects and when the feed updates the projects that were updated just get pushed to the top. Each entry can be described by a project’s README and cloned from my VPS. Collaboration can be done via git-send-mail because out of the years of using GitHub I’ve probably received < 20 PRs over my life there. Usually it’s the people that really care that submit things in any which way.
Mmm that’s about it! Hope you all have a good week.
Flying back from DEF CON in Las Vegas - looking forward to getting back into routine
Editing the new Technium podcast episode on Datomic
Finish editing blog post
Write two more functions for learning Haskell
Read Chapter on Bifunctors in Category Theory book
Work: Finishing up a rewrite of some php code into Golang! My first foray into Go, and I have really enjoyed learning it
Private: Hanging with friends, playing super smash bros ultimate (captain falcon main of course) and playing soccer
Work: making some dev tools to make regression testing a bit more effective as well as make developing easier.
Personal: looking into hiring a lawn service because mowing is awful tbh