Premium Only Content

Compiler From Scratch: Phase 1 - Tokenizer Generator 009: Generating DFA State code
Streamed on 2024-09-13 (https://www.twitch.tv/thediscouragerofhesitancy)
Zero Dependencies Programming!
I have to confess to cheating ... I did some work on the compiler off-stream. I created an asset pipeline for managing Code Snippets ... large chunks of text that are the same no matter what. These Code Snippets can be divided into chunks with a line of "...", so I can write a chunk, then emit custom code, and move on to the next chunk. The other thing was I refactored TxtBuf and ChrRef to remove the circular dependency that would necessarily exist if I use ChrRef in a TxtBuf::Iterator. And now I have a TxtBuff::Iterator. But that was all the cheating, I swear! Everything else we do on-stream.
Today was starting to emit DFAStates into our Tokenizer. Each DFAState has a list of Transitions and each Transition contains a list of conditions to check, and where the next DFAState is if those conditions are met. All the code emitted today was into simple methods, one per DFAState.
But a lot of the complexity we will face will come in the form of the PerformanceSwitches I am putting in. Whenever I come to a decision that I think will impact performance I am emitting code for each of those decisions, wrapped in a #ifdef/#endif so we can change some defines in our build and test the alternatives. There is some overlap between some of the options I've thought up, so we are going to be emitting way more code than we will end up with. As we go we will confirm correctness of each PerformanceSwitch, but we won't profile until things are working end-to-end and we have a large body of text to test against ... maybe JSON? So, if this stage of development seems a little slow, remember, I am generating 96 (currently) permutations of the way this code could be written.
-
56:09
Steven Crowder
19 hours agoBlack Fatigue is Real and I Told Them Why | Black & White on the Gray Issues
518K2.21K -
2:05:36
Inverted World Live
11 hours agoSaint's Tomb Opened for First Time in 800 Years for Ancient Ritual | Ep. 121
102K18 -
2:43:30
TimcastIRL
9 hours agoNY AG Indicted For FRAUD, Faces 30 Years In Prison, $1 MILLION FINE | Timcast IRL
228K110 -
1:09:16
Man in America
19 hours agomRNA 2.0: This Frightening Tech Can Target Your BRAIN Using Biological Post Codes
60.3K22 -
1:28:31
The Charlie Kirk Show
8 hours agoTHOUGHTCRIME Ep. 100 — Turning Point Halftime? Potatoes and Katie Porter? Hasan the Dog Shocker?
119K61 -
6:33:19
SpartakusLIVE
10 hours agoNEW Update, NEW Meta || Zombies Mode is BACK - Smokes NURFED
70.8K5 -
13:10
Robbi On The Record
8 hours ago $9.53 earnedThe War on Christians | China’s Surveillance & Nigeria’s Killing Fields
49.5K36 -
1:24:49
Flyover Conservatives
1 day agoYour Home Just Became a Healing Room — The Truth About Red Light & Med Bed - Jonathan Otto | FOC Show
48.1K8 -
2:11:35
Mally_Mouse
4 days ago🎮 Throwback Thursday! Let's Play: Kingdom Hearts 1 pt. 2
35.5K2 -
3:00:37
Barry Cunningham
12 hours agoBREAKING NEWS: LETITIA JAMES INDICTED FOR MORTGAGE FRAUD!!! LIBTARD TEARS ARE FLOWING!
66.9K46