2026-09-09 06:55:47 https://forth203x.hashnode.dev/changes-to-the-standard-or-how-europe-s-bush-leaguers-murder-forth 2026-09-09 06:55:51 https://forth203x.hashnode.dev/forth-s-architectural-mess-the-case-of-the-numeric-output-words 2026-09-09 06:56:14 lol this guys completely missed what the Forth philosophy is all about 2026-09-09 06:56:24 guy* 2026-09-09 07:02:37 isn't it about flaming people? 2026-09-09 09:57:46 xentrac: Second stack in RAM makes a lot of sense to me 2026-09-09 09:58:22 Is there an operation that lets you set the data stack height? 2026-09-09 09:58:45 Because that's commonly needed although should be fast even if not provided as an op 2026-09-09 09:58:57 I'm assuming the data stack isn't that large? 2026-09-09 10:19:47 deadmarshal: Yeah I will agree until the cows come home that the standard is flawed, but this guy seems to be arguing badly in favour of something that's actually worse than what the committee have even been trying to do 2026-09-09 10:20:44 His criticism of BASE... okay yeah low hanging fruit, most people wouldn't have settled on BASE today. But his arguments are so poor that I can't really blame the forth-standard.org people from being incredulous 2026-09-09 10:21:45 And then there's the small matter of BASE being a core recommended word even now, and not deprecated, so even if this gets added it will take many years to remove, and the direction is to replace BASE with a VALUE.... that's not even the right fix! 2026-09-09 10:22:28 The right fix for BASE is what has already been tried and proven in many Forths, to allow fixed base or variable base parameters to output/input words, i.e. have HEX. 2026-09-09 10:22:47 HEX. OCT. etc along with . 2026-09-09 10:23:12 And get rid of BASE completely, don't replace it with a bigger API 2026-09-09 10:24:08 And have e.g. BASE. if you really want variable control of radix for one output 2026-09-09 10:24:30 And the prefixes aren't a terrible way to parse different bases 2026-09-09 10:27:16 Anton Ertl hit the nail on the head "arguments about things like 'exposes implementation mechanisms' are generally used (often incorrectly) when arguing against proposals, but I don't remember any proposal that was based solely on this argument that has been successful" 2026-09-09 10:27:46 They're complaining about it exposing implementation details... that's the whole point of Forth 2026-09-09 10:38:11 Wow and in their second article they have more similar approach to radix as I stated above... so they are upset their proposal for an architecture they didn't even agree with or immediately changed their mind about was turned down? 2026-09-09 10:39:51 Standardisation of Forth has been a total failure and the people involved in that process now are essentially larping, the standard failed to capture the essence of the classic Forths and it failed to define an elegant alternative for modern Forths, so at this point deciding why it failed is just an academic exercise 2026-09-09 10:41:26 ANS is probably the best supported so stick to that if you want the best chance of portability 2026-09-09 11:14:48 veltas: Yes I didn't find his arguments good either 2026-09-09 11:15:41 Probably Moore was right to not care about "standards" 2026-09-09 12:48:07 I think they could have done a good job with the standard, if they had tried to base it around actual convention, but instead they were always trying to design by committee 2026-09-09 12:50:32 ANSI C in comparison only really added one thing (prototypes), and they managed to design it relatively well. If they had tried to add more than one thing they probably would have messed it up. They messed up volatile and they were just trying to steal that from C++ and existing semantics of C compilers that supported it 2026-09-09 12:52:07 Oh supposedly prototypes came from C++ too lol 2026-09-09 13:44:32 interesting. what happened with volatile? 2026-09-09 14:43:01 the HC thing https://github.com/cleobuline/hc/releases/tag/HC-0.5.9.9 2026-09-09 14:45:20 for the macintosh amateur 2026-09-09 14:57:14 MrMobius: The old C compilers from 90s handled volatile differently and I don't know honestly if that's a fault of X3J11 or the compiler writers but I would guess X3J11 2026-09-09 14:57:31 I'm just having a quick look at ANSI C rationale 2026-09-09 14:58:56 But basically there's a metric TON of old firmware I've had to work with that does stuff like `(volatile int)*p = 500;` because that's valid meaningful code with C++'s volatile semantics but not with ANSI C where the only way to get volatile behavior from an object that's not volatile is to cast the *pointer* to volatile-qualified type 2026-09-09 14:59:17 Also it's not just firmware, old versions of GCC written in C have this same problem, and won't compile with a standard compiler 2026-09-09 15:00:15 I guess we have to thank setjmp/longjmp and/or signals to thank for why old GCC being a single-threaded program has so much volatile stuff 2026-09-09 15:07:09 This document claims volatile was invented by X3J11 https://home.nvg.org/%7Eskars/programming/C_Rationale.pdf 2026-09-09 15:08:08 "It would have been possible, of course, to specify a nonconst keyword instead 2026-09-09 15:08:11 of const, or nonvolatile instead of volatile." 2026-09-09 15:08:24 That is hilarious lol they considered this for ANSI C 2026-09-09 15:09:00 Imagine a world where C had a "nonconst" or "mut" keyword and variables were constant by default 2026-09-09 15:10:42 The cracks were already forming when they wrote this rationale though as volatile started just as "don't optimise me" and quickly turned into a kitchen sink of synchronisation, no wonder people like Linus ended up hating it 2026-09-09 16:17:59 veltas: yeah, the Calculus Vaporis data stack height is 2 2026-09-09 16:18:36 so a lot of your assembly language looks like `$a @ $b @ - c !` which is seven instructions 2026-09-09 16:21:03 13:09 < veltas> Imagine a world where C had a "nonconst" or "mut" keyword and variables were constant by default 2026-09-09 16:21:40 one of the nice things about pre-K&R C is that most variables didn't need type declarations. take a look at the C in the Lions book if you haven't. it's beautiful 2026-09-09 16:22:10 it was much closer to BCPL and B. 2026-09-09 16:22:47 I suspect people were afraid of getting scolded by Dijkstra so they started implementing as many of the things he liked. 2026-09-09 16:31:20 "data stack height is 2" wow that's harsh! 2026-09-09 16:33:21 Officially types or a storage class were necessary I think, but I believe the old compilers didn't mandate this based on the kind of code I've seen, and also GCC used to tolerate this. 2026-09-09 16:33:56 I think B was the peak of pretty syntax in the C-like languages, ignoring all the weird hacks to support certain typewriters and encodings 2026-09-09 16:34:45 Ken Thompson knew what he was about, doesn't get enough credit (and he gets a lot of credit) 2026-09-09 16:39:06 xentrac: When it comes to compact representation you don't get much better than (normal) Forth bytecode, where your a @ b @ - c ! could be as short as 1 byte if I understand what that machine code does 2026-09-09 16:40:30 What is the aim with having such a small stack? It seems like a sort of 3-register operand encoding that's flexible in a way that's not too useful but will impact performance a lot? 2026-09-09 16:57:57 the aim is to minimize the amount of hardware without making the machine unreasonably hard to program. And I think I may have overshot that goal by not having addition or a return stack; the jump instruction `.` just swaps program counter and top of stack if the next item on the stack is nonnegative 2026-09-09 17:00:31 so a call is `$0 $callee .` and the callee's prologue wants to `$ra !`. Then return is `$0 $ra @ .`, which is relatively tolerable 2026-09-09 17:00:50 that doesn't leave any space on the stack for arguments, so you have to pass those in memory like on the 6502 2026-09-09 17:01:26 you can of course implement a return stack in software, but it costs 28 instructions of prologue and epilogue in the callee 2026-09-09 17:02:09 I think the current size is about 100 Lattice FPGA logic cells, 600 NAND gates, 2400 transistors, or 30 7400-series logic chips 2026-09-09 17:02:43 That's the cool bit is the number of gates etc I guess 2026-09-09 17:02:58 yes, without that none of the rest of the design is justifiable 2026-09-09 17:03:25 about half of that size is the four 12-bit registers P, A, X, and I. Except P is really 11 bits 2026-09-09 17:03:42 You wouldn't save any gates by using 'op a,b,c' style encoding instead of the 2 depth stack? 2026-09-09 17:04:36 Or even 'op a,a,b' encoding like x86? 2026-09-09 17:05:20 well, with 48 bits of registers in the CPU, the a, b, c would probably have to address memory locations rather than CPU registers 2026-09-09 17:05:22 By the way, I'm not shitting on your design ... well not out of spite anyway, I'm just interested as to what you're doing because I've not written an FPGA CPU so know nothing about it 2026-09-09 17:06:05 which means that the instruction register I would have to expand to at least 37 bits, and you'd have to split instructions across memory locations 2026-09-09 17:06:19 Although I've designed fake arch's before and seen enough old arch's and simple CPU design to know what seems to work and what doesn't, but this is far from a normal design so it's interesting 2026-09-09 17:07:36 but it's possible that some non-stack design would indeed reduce to a smaller number of gates than any stack design. rather than 3-operand instructions, though, I suspect an accumulator machine would be more viable 2026-09-09 17:08:28 xentrac: I may have asked (and forgotten), which fpga dev-kit are you using? 2026-09-09 17:08:33 Some of this reminds me of the 4004 2026-09-09 17:08:36 or was it purely software? 2026-09-09 17:08:43 so then you could have a memory address in every instruction. this suggests either having memory words longer than instructions, or taking a PDP-8-like approach where the address field in the instruction can only address part of RAM 2026-09-09 17:09:34 bjorkintosh: I'm using Verilator, yosys, nextpnr, icepack, and icetime so far, and I have an iCE40UP5K eval board which I haven't yet tried to load a bitstream onto 2026-09-09 17:09:57 this is something I'd been putting off for 17 years because I don't know Verilog 2026-09-09 17:10:27 hahahahahahahaha 2026-09-09 17:10:37 xentrac: my brother in christ, are YOU me??? 2026-09-09 17:10:42 you must be! 2026-09-09 17:10:47 ACTION is convinced. 2026-09-09 17:11:55 we definitely have a lot in common; that's why we get into arguments :-) 2026-09-09 17:12:37 ACTION refuses to engage. 2026-09-09 17:12:45 I just checked, and the FPGA board isn't in the drawer I thought it was in, but I'm sure I'll find it 2026-09-09 17:13:01 mine are right above my monitor. I've got two of them. 2026-09-09 17:13:10 and yes, I did the blinky light thing and then ... *sigh* 2026-09-09 17:13:21 so many projects. 2026-09-09 17:13:33 yes, mine came with a blinky sketch preloaded which I used to verify that it powered up 2026-09-09 17:13:49 but I haven't ever loaded a bitstream into it, and I hope that iceprog works 2026-09-09 17:14:07 I almost splurged on a MisterFPGA but reality pick pocketed me. 2026-09-09 17:14:19 maybe I might look again to see if the prices have come down. 2026-09-09 17:14:55 anyway, Claude Opus 5 does know Verilog, so it wrote the Verilog soft core, the example program I linked above (http://canonical.org/~kragen/tmp/mul.cv), a bunch of other example programs, a couple of Python simulators, an assembler and disasssembler in Python, and a fuzzer 2026-09-09 17:15:26 xentrac: I think the one thing you do, that I have been too lazy to do, is that you write. 2026-09-09 17:15:37 how the hell are you able to do that? it's like birthing a goddamned elephant. 2026-09-09 17:15:52 you're writing right now in IRC; it's the same activity 2026-09-09 17:15:58 mmmmm. 2026-09-09 17:16:06 maybe what I need is a body double. 2026-09-09 17:16:19 a ... robot of sorts which would converse with me. 2026-09-09 17:16:24 something simple. 2026-09-09 17:16:26 maybe you're overwhelming yourself with some kind of unreasonable expectations 2026-09-09 17:16:32 when you're writing in a text editor 2026-09-09 17:16:35 nah. I'm just fucking lazy about that. 2026-09-09 17:17:01 bjorkintosh: The sign of a quality repo is copy+pasting dumps from IRC into README.txt and pushing 2026-09-09 17:17:04 so you could maybe write both sides of a dialogue in a text editor 2026-09-09 17:17:09 veltas: hahahahah 2026-09-09 17:17:30 and then maybe you could summarize the dialogue in another buffer 2026-09-09 17:17:45 xentrac: I hate to admit that a localized LLM would be absolutely ideal. with it prompting me with questions, instead of the other way around, and then storing and formatting the whole thing in a decent way. 2026-09-09 17:18:03 I didn't want to ask if you'd used Claude but I did wonder from what you did 2026-09-09 17:18:08 you'll probably have to rewrite things yourself to publish them 2026-09-09 17:18:18 the first draft is the hardest. 2026-09-09 17:18:22 after that, it's just editing. 2026-09-09 17:18:33 yeah, getting started is the hardest part 2026-09-09 17:18:36 I'm the opposite, the first draft is easy for me and then I never publish 2026-09-09 17:18:40 and then (re)-Writing. 2026-09-09 17:18:51 veltas: just publish first draft. 2026-09-09 17:18:59 In fact that's consistent for me because everything I write in IRC too I probably shouldn't have sent 2026-09-09 17:19:04 haha 2026-09-09 17:19:14 yes, "publish first draft" is the reason my mailing list was called "Kragen thinking out loud" 2026-09-09 17:19:15 xentrac: you might be on to something. perhaps it's the fear that "someone on the internet" will say I'm wrong. 2026-09-09 17:19:27 I mean, I'm frequently wrong. more often than I'm right. 2026-09-09 17:19:48 "Kragen thinking out loud" 2026-09-09 17:19:52 Right now I'm writing a webserver in C, so I'm definitely wrong whatever I publish 2026-09-09 17:19:56 haha 2026-09-09 17:20:02 Claude Opus 5 has been helpful for pointing out when I'm wrong now that I've been able to use it this week 2026-09-09 17:20:09 hmm. Writing allowed: Kragen thinking aloud. 2026-09-09 17:20:41 What I've found out is that the HTTP protocol has more readable error messages than most web browsers 2026-09-09 17:21:07 although I have to keep hammering it on the sycophancy angle, because by default it works pretty hard to tell me that I'm an intellectually humble yet very rigorous polymath genius 2026-09-09 17:21:13 The HTTP I should say before xentrac slaps me 2026-09-09 17:21:23 the hypertext HTTP protocol? 2026-09-09 17:21:49 xentrac: apparently if you tell it you have ADHD, it skips the sycophancy entirely. 2026-09-09 17:22:08 although I'm not opposed to bukkake in principle, it isn't what I'm looking for from Claude 2026-09-09 17:23:20 hahahaa 2026-09-09 17:23:24 unfortunately the "Reflect" feature doesn't seem to read the "Memories" that tell it to skip the flattery, so it says bullshit like this: 2026-09-09 17:23:48 > You spent September designing systems at every level of abstraction — a display protocol built on filesystem primitives, a CPU architecture argued down to individual gates, a bit-serial processor sized for discrete logic, an NTSC encoder derived from first principles, and a terminal reimagined around elastic tabstops. Through all of it, you used Claude as a engineering collaborator: someone to check 2026-09-09 17:23:54 your reasoning against, to write code you'd then verify, and to push back on when the answer didn't hold up. The pattern across the month is a willingness to rederive rather than look up, and to keep going until the design is grounded in something you can touch — a waveform, a chip count, a byte on disk. 2026-09-09 17:24:10 geeze. 2026-09-09 17:24:12 Ugh please don't post stuff like that in the chat 2026-09-09 17:24:14 therapist much? 2026-09-09 17:24:21 sorry, veltas, I won't do it again 2026-09-09 17:24:23 The more you see LLM slop the worse it gets :P 2026-09-09 17:24:45 I barely use LLM's now because I am a bit triggered by this crap 2026-09-09 17:24:54 sorry 2026-09-09 17:25:16 I have to keep feeding the machine responses like "you are a matrix, shut up" 2026-09-09 17:25:52 for design documents it produces, I've had some success in getting it to disguise the LLM voice by saying "write in the voice of George Carlin" or "write in the voice of Richard Feynman" or "write in the style of the Emacs manual" 2026-09-09 17:26:12 you probably don't want to see a quote from the results, though, do you? 2026-09-09 17:26:15 is the emacs manual especially well written, xentrac? 2026-09-09 17:26:22 I don't mind xentrac 2026-09-09 17:26:24 When LLMs were getting good I immediately humanised them and then years of them talking to me like this has made me realise how incredibly lacking of humanity they are 2026-09-09 17:26:29 veltas: just say ai;dr 2026-09-09 17:26:37 lol very good, I've not seen that 2026-09-09 17:26:47 > This document describes version 1 of yvigil, a protocol by which one program produces images and another program displays them and reports what the user does with the keyboard and the mouse. 2026-09-09 17:26:57 I came up with that, but as usual, someone else somewhere else has already said AI;DR 2026-09-09 17:27:01 That's pretty good xentrac 2026-09-09 17:27:06 > Unlike most display protocols, yvigil has no wire format in the usual sense and no connection. The two programs communicate through an ordinary directory in an ordinary filesystem. One of them writes a file containing pixels; the other writes a file containing input events. 2026-09-09 17:27:15 is this a real thing? 2026-09-09 17:27:38 I think so. Claude Opus 5 claims to have implemented it last night and run a bunch of GUI programs I wrote on it 2026-09-09 17:27:50 I could read that but I do sort of think you shouldn't make people read stuff you couldn't be bothered to write yourself. I guess it's okay if you proof-read it all thoroughly. 2026-09-09 17:27:55 That's just my own principle though 2026-09-09 17:28:13 yes, this is like the fifth or sixth iteration after proofreading. no guarantee there aren't new problems in each iteration 2026-09-09 17:28:30 I haven't tried running the software on my own hardware yet, because I want to review the code thoroughly first 2026-09-09 17:28:40 so I can't attest from personal experience that it's a real thing 2026-09-09 17:29:33 anyway, the above quotes were after I told it to please rewrite the spec in the style of the Emacs manual because it sounded like a sales pitch 2026-09-09 17:29:47 I don't consider myself a narcissist but I started to wonder after realising how much I enjoyed talking to an LLM the first time I properly used one over talking to other people 2026-09-09 17:30:01 hahaha 2026-09-09 17:30:13 And the don't-be-an-asshole killswitch that somehow had failed to operate for most of my life managed to kick in and stop me from spending more time with it 2026-09-09 17:30:29 well, uh, kings throughout history have very frequently been surrounded by sycophants and flatterers 2026-09-09 17:30:30 veltas: that's unusually self reflective of you. 2026-09-09 17:30:50 xentrac: 'cause only sycophants and flatterers can surround a ruler. 2026-09-09 17:30:51 It's not healthy that people want to spend so much time with a bot instead of people just because the bot is a polite know-it-all 2026-09-09 17:31:03 started with Eliza. 2026-09-09 17:31:05 bjorkintosh: #notallrulers 2026-09-09 17:31:16 People LOVE to hear themselves talk. 2026-09-09 17:31:40 I quit alcohol, and so now I never feel like talking in social situations. I just let everyone else bore me instead. 2026-09-09 17:31:55 see, I have ADHD, so I never needed alcohol 2026-09-09 17:31:57 and bore me they do. with the crap they're doing with GPT. 2026-09-09 17:32:07 heh, sorry to be more of the same 2026-09-09 17:32:10 hahaha. 2026-09-09 17:32:17 xentrac: it's the zeitgeist. nothing to be done about it. 2026-09-09 17:32:29 I need a very precise dose of alcohol to feel good in social situations and not just ruin the evening 2026-09-09 17:32:39 That Ballmer Peak is real I swear 2026-09-09 17:32:40 veltas: it sounds like you might be English 2026-09-09 17:32:40 before then, social media was all the rage, and that's all people talked about. 2026-09-09 17:33:06 myself, I'm more interested in making technical advancements than in being told what a humble genius I am 2026-09-09 17:33:17 veltas: this can be tuned. you just need to monitor yourself for a few weeks to find out exactly what's required. 2026-09-09 17:34:06 I think 'normies' still watch TV, touch social media, and barely use GPT but assume it's 100% correct when they do. 2026-09-09 17:34:24 That's the impression I get anyway, I think the young ones are probably more social media than TV though 2026-09-09 17:34:41 The 100% correct bit I think is weighted by age, the older you are the more trustworthy GPT is 2026-09-09 17:34:49 veltas: reality is, most people simply do not know how to think. 2026-09-09 17:34:52 Me included. 2026-09-09 17:34:57 I rarely get it right. 2026-09-09 17:35:21 hell one of the greatest thinkers, Kurt Godel, starved himself to death because he believed he was being poisoned. 2026-09-09 17:35:46 one of the other great thinkers (einstein), happily married his cousin, and neglected his children. 2026-09-09 17:36:06 veltas: that was intended as a joke, about the English; I hope it wasn't offensive 2026-09-09 17:36:15 No not at all lol 2026-09-09 17:36:17 von Neumann refused to speak directly to his own daughter until she was twelve, because he believed she was not fully formed. 2026-09-09 17:36:28 We can all have our niche and involuntarily one of my niches has been realising the flaws in certain kinds of 'authority'. And I think that's loosely true for everyone in ##forth because this is not a language of 'authority'. 2026-09-09 17:36:33 I don't think Gödel actually *believed* he was being poisoned. it's more like he had a phobia of being poisoned 2026-09-09 17:36:53 xentrac: what's the difference? the result was exactly the same. 2026-09-09 17:37:07 it was STUPID 2026-09-09 17:37:10 I mean one of the main things Forth does, if you like it at all, is make you question the whole way programming languages have worked for most people and most of the history of computing 2026-09-09 17:37:28 according to Fermi (?), von Neumann talked to children the same way he talked to adults; possibly the daughter thing was an incorrect story? 2026-09-09 17:38:13 Having kids is hard and very exceptional people can have very exceptional problems with their kids, I would guess 2026-09-09 17:38:47 Doesn't have to be all kids, if he talked to other kids like adults that seems consistent with his daughter failing to live up to his notion of 'fully formed' 2026-09-09 17:39:19 the difference with Gödel is that intelligence and stupidity don't really enter into phobias. it's like, if you get nausea from motion sickness, you can't stop feeling nausea by rationally thinking that you haven't eaten anything that could be contaminated, and therefore you can't actually have food poisoning; you might still throw up 2026-09-09 17:39:32 xentrac: who knows? the man was from a different planet, and folklore developed around him. 2026-09-09 17:39:39 I have actually freaked out kids before because I forget whether I'm talking to them like kids or an adult and suddenly switch to my high-pitched "WOW THAT'S GREAT XXXX, WHAT A GOOD JOB!" 2026-09-09 17:39:58 I think I need to pick one 2026-09-09 17:40:12 vomiting and breathing are good examples of how our voluntary control over our actions is limited 2026-09-09 17:40:37 My mother in law had a sickness issue where she thought food would make her vomit, and it did, and there isn't really any cure for this 2026-09-09 17:40:43 But thankfully she just sort of got over it 2026-09-09 17:40:50 xentrac: it's controllable. after all, one can live the rest of one's life under water. 2026-09-09 17:41:02 if you believe you choose what you do, lie down and try to hold your breath for five minutes. in five minutes you will learn that there are limits to that 2026-09-09 17:41:09 ^ 2026-09-09 17:41:35 I choose not to hold my breath, but yes you are right :P 2026-09-09 17:41:38 our brains are layers of previous versions of our evolutionary path. 2026-09-09 17:41:47 and Gödel had developed this very strong habit of only eating food that his wife had tasted, founded in the trauma of one or two of his closest friends being murdered by poisoning in the 01930s 2026-09-09 17:42:32 and all of that is somewhat independent of thinking 2026-09-09 17:42:54 However there are good 'habits' re how to think about trauma that make it less likely for you to be impacted like this 2026-09-09 17:43:15 It's not entirely out of your control, more I would say it's not "your fault" if you fail here because your brain wasn't designed to handle this really 2026-09-09 17:43:22 yes, thinking isn't causally disconnected from your actions 2026-09-09 17:43:49 but all of us operate on autopilot almost all of the time without noticing it 2026-09-09 17:43:51 I think there's something in things like "CBT" 2026-09-09 17:44:04 yes, CBT does help a lot of people 2026-09-09 17:44:12 CBT is what? 2026-09-09 17:44:22 cognitive-behavioral therapy 2026-09-09 17:44:37 the only form of talk therapy that beats placebo in randomized clinical trials 2026-09-09 17:45:19 Amazing to think that and yet so much money is wasted on the stuff that can't beat a placebo or will do worse.... 2026-09-09 17:46:31 LLM's are bad therapists too 2026-09-09 17:51:42 well, I think it's more that what makes a good therapist isn't legible to randomized clinical trials 2026-09-09 17:53:11 I'm pretty sure that if you did a randomized clinical trial between actually good psychologists of any flavor, a placebo therapy, and CBT administered by average psychologists, the good psychologists will come out on top by several standard deviations 2026-09-09 17:54:02 but to be scientific you have to make it reproducible, and "choose actually good psychologists" isn't reproducible 2026-09-09 17:55:23 same problem as with programmers or executives or medical doctors or fiction authors or actors or musicians 2026-09-09 17:57:37 the average Juillard conservatory graduate is very competent at playing music, but never even lands a recording contract, much less has a top-40 hit, or does something revolutionary like Black Sabbath, Kate Bush, Tori Amos, or Bobby McFerrin 2026-09-09 17:57:45 people aren't interchangeable 2026-09-09 18:00:24 That's fair 2026-09-09 18:01:16 I don't like most therapy because I started realising one day that people around me had been seeing therapists because they were into these weird memes and I just put two-and-two together 2026-09-09 18:01:28 And realised they all seemed to be 'worse' somehow than before therapy 2026-09-09 18:01:33 But that's a small sample 2026-09-09 18:03:00 xentrac: technical competence is simply not enough. 2026-09-09 18:03:16 as I mentioned earlier with Godel. 2026-09-09 18:03:44 Yes, he wrote a tiny book, which completely knocked out Russel and Whitehead's tome, but he himself could not out think starvation. 2026-09-09 18:07:34 xentrac: So the CPU repo is from 17-18 years ago then? 2026-09-09 18:07:58 And you're implementing it now in Verilog, has your design changed since then? 2026-09-09 18:08:14 And how much did you think about the gate-level stuff 17-18 years ago? 2026-09-09 18:26:24 I drew NAND-level schematics of the whole thing when I first designed it 17 years ago, I think before I ever typed a word about it into a computer 2026-09-09 18:27:41 I gave the README to Claude to implement, and it turns out that I'd left the instruction encoding out of the README; I didn't specify which bit patterns corresponded to which instructions, except for the $literal load-immediate instruciton 2026-09-09 18:29:46 Heh I did notice that and assumed I'd missed something 2026-09-09 18:29:52 it suggested that one-hot encoding for the instructions would eliminate the decoding logic, whereas 17 years ago I see from my code that I had chosen a 3-bit encoding for the instructions 2026-09-09 18:30:02 except for $literal 2026-09-09 18:30:24 and I accepted that suggestion, but I might change my mind on that 2026-09-09 18:30:42 one-hot encoding? 2026-09-09 18:31:38 (But I did also think "I better just read the source to find out encoding"), see my brain is very open-source wired 2026-09-09 18:31:51 Why did I put that comma outside the parens though 2026-09-09 18:32:27 I think maybe parens are quieter in my head(?) 2026-09-09 18:32:29 yeah, in a CPU or whatever you generally need one control signal to activate each conditional: shift this register or not, read from this register or that one, write to memory or don't 2026-09-09 18:33:42 That sounds sensible 2026-09-09 18:33:59 so "instruction decoding" is generally a process of converting a relatively compact opcode field meaning something like "register-to-register add" into a somewhat larger number of control signals 2026-09-09 18:34:21 I do get that part 2026-09-09 18:34:36 Like the binary machine code needs to actually activate the correct parts of the CPU on its cycle 2026-09-09 18:34:38 select the addition output from the ALU, get the operand from the register file instead of memory, etc. 2026-09-09 18:35:38 if you have like 8 outputs from the ALU, at some level you likely have 8 wires that activate those outputs, and only one of those 8 wires should have a 1 on it at a time 2026-09-09 18:35:44 that is, be "hot" with voltage 2026-09-09 18:36:23 Yeah I understand now 2026-09-09 18:36:28 Can I just say I really dislike the use of 'file' there, is like the ZX Spectrum calls the bitmap the "Display File" 2026-09-09 18:36:43 so, an alternative to decoding those 8 outputs from a 3-bit instruction field is to just have an 8-bit instruction field 2026-09-09 18:36:55 and rely on the assembler to not set more than one of those bits at a time 2026-09-09 18:37:34 That's funny because it sounds like you've got a lot of "undocumented instructions" 2026-09-09 18:37:48 yeah, that can happen 2026-09-09 18:37:50 I can't wait for the websites documenting them to pop up and all the unofficial mnemonics 2026-09-09 18:38:05 hopefully none of them burn up the circuit 2026-09-09 18:45:46 (if you implement the multiplexing by tristating CMOS outputs that are driving a common bus line, you'll probably burn up one pin driver or the other) 2026-09-09 19:37:21 Undocumented Halt and Catch Fire 1, Undocumented Halt and Catch Fire 2, ... 2026-09-09 19:48:09 How to fix though