Here it is, my latest compiler book! Basically an expanded version of "Write Your Own Compiler", this time discussing code generation for CP/M on the Z80 (instead of ELF on modern systems), which simplifies some things a lot.
How much complexity do you need to self-compile a compiler in 10 minutes on a 4MHz Z80 system? Take a look and find out! The code is free (but the book is not).
Always look forward to hearing about what you're working on Nils! I hope your business of doing this is profitable as well! One day I'm going to finally buy a copy of everything and work through it all. It seems like there is so little time though lol.
Edit: I'd also love to see you do a no-nonsense book on Forth and your take on it.
Thank you!
Books are my biggest source of income, but "big" is relative here: I am earning about $500 per month in revenues. This is mostly a problem visibility, I think. Most people stumble across my books by accident. Reviews, presence on the front page of HN, etc. usually increase revenues significantly for one month.
Regarding FORTH, lets see. The code is already there: http://t3x.org/t3xforth/
Nils, regarding visibility, have you considered setting up a Mastodon account? Yesterday I shared on Mastodon a link to your book and my post got 28 reshares, 42 likes, and half a dozen comments. And I'm not even the author of the book. In the Fediverse people do notice you, read what you write, and click your links. Which is mind blowing for those used to traditional social platforms.
Thank you, but I do not even know what Mastodon or the Fediverse are. :) Could you point me to some resources that would get me started? Preferably to something for the social media-illiterate! Which software to use (on BSD), where to register (if that is a thing), etc. That would be cool!
Think of Mastodon as an open-source Twitter with multiple servers ("instances" in Mastodon-ese) instead of the only twitter.com The servers interoperate through a common protocol, thus allowing any user on any server to follow and engage with any other user on any other server. The protocol actually makes it possible to interoperate with platforms other than Mastodon that are part of a larger system called the Fediverse, but you can ignore it for now.
The only software you need to get started is a web browser to use a web client, which is typically the Mastodon server you create an account on. Picking a server is the only potentially confusing choice, so for retrocomputing enthusiasts I recommend creating an account at https://bitbang.social or https://oldbytes.space Once you have an account on a server you can migrate to another one if needed.
For more on Mastodon see https://joinmastodon.org For any other questions feel free to ask here or follow me on Mastodon at @amoroso@fosstodon.org and ask there.
I see. Thanks for the explanation and the links! Unfortunately I pretty much do not know what Twitter is, either. So I looked at the instances (?) you suggested and pretty much saw a doom-scrolling wall of random postings, which I find exhausting.
So when adding an account, I would just add to that wall of postings? How would people interact on such a platform? I am coming from Usenet, which had the greatest user interface ever (IMHO): you just follow-up on a posting and replies will pop up in your stream of unread messages. How would this work on Mastodon?
On Mastodon (and similar socials like Twitter and Facebook to a certain extent) you mostly follow people instead of themed groups like Usenet.
You set up your "wall of postings" (the "feed" or "timeline" in the jargon of socials) by following (subscribing to) the people you're interested in. On Mastodon you can also follow topics by following "hashtags", which are the sets of posts by any user tagged with a string preceeded by a hash character. For example, following the hashtag #retrocomputing will bring in your timeline the posts about that topic.
So, on socials, you typically scan your feed and the feeds of any additional hashtags you're interested in. For each post you can reshare it, reply (comment), or like it.
Some additional resources: 1) https://opensource.com/article/23/1/mastodon-beginners-guide 2) https://github.com/joyeusenoelle/GuideToMastodon
Fediverse refers to a collection of decentralized applications that use some kind of common protocol. Like instead of centralized Twitter, you could choose Mastodon and so on. My understanding is very basic though.
Long story short, I'd love to see you advertise some more. I'm not sure how you'd reach your typical audience though.
Let's see. I have had a look at Mastodon and all I see at the moment is a wall of random distractions. Maybe I am missing something, though. I will investigate further. On HN, for example, there are just headlines and it takes me maybe a minute to scan the front page. Mastodon looks pretty chaotic and time-consuming compared to that.
Oh I agree and of similar mind to yourself. I was just answering the question above about Mastodon.
Regarding advertising...idk, but there should be some kind of option for you out there. HN is of course a good place for this kind of thing. Is that lambda the ultimate blog still a thing? Not sure how many people listen to the arraycast podcast, or if you're comfortable with that format...but I'm sure they'd be interested in your work on Klong and the implementation choices.
$500 isn’t really enough to live on — do you have a job that you use to support yourself (or do you live in a low cost-of-living country)?
I have multiple sources of income, but book revenues are the biggest one. The area I live in is a rather expensive one, but I pay no rent, which helps. By the standard of our country I qualify as "poor", but I do not mind much. A little bit of safety would be nice, but I do not need much to live comfortably.
This is great quality work---you'd crush it writing technical documentation or putting together technical internal corporate training programs.
I tried that some time ago, but do not seem to be compatible with all the business stuff. Thanks anyway! :)
Thanks for being so transparent
Sure, no problem :)
Awesome Forth implementation! I'd love to read a high level book on the implementation too once you get around to it!
Thanks! I will keep it in mind!
Nils just wanted to say I love your work. I have your C compiler book and one of your lisp compiler ones as well. I’ve learned a lot and your work has helped me appreciate compilers a lot more, so thanks!
This is good to hear! Thank you!