2026-06-23 00:00:13 though my CTO's CPU is showing its age 2026-06-23 00:01:17 your CTO created PicoRV32? 2026-06-23 00:01:43 and the B extension 0.9 proposal 2026-06-23 00:06:46 forgive my ignorance, but is PicoRV32 a soft core? 2026-06-23 00:06:52 yes 2026-06-23 00:06:57 Is B a collection of other extensions? 2026-06-23 00:07:24 (I get the impression that these days, if someone decides "hey I want to make a CPU", they implement RV32I) 2026-06-23 00:07:26 was written as a demo for icestorm to put on an iCE40HX1K 2026-06-23 00:08:08 Is B a collection of other extensions? <--- eeeh, originally was one extension, then got split up, and then only a few bits of the 0.9 proposal got standardised 2026-06-23 00:08:39 it's kind of to CPU's what Forth is to computer languages (so many implementations to choose from!) 2026-06-23 00:09:49 Okay 2026-06-23 00:10:17 a full B proposal would make RV state of the art for bit manipulation 2026-06-23 00:10:24 *the full B proposal 2026-06-23 00:10:37 so naturally it languished in the committee stage and got picked apart 2026-06-23 00:11:05 so why didn't they go with it? the fear of making something that could not be whittled down to a minimal toy/1c MCU implementation? 2026-06-23 00:12:21 ...kinda, yeah. I mean, Claire wrote an actual implementation of all the logic in the B v0.9 proposal to show how little logic it actually uses 2026-06-23 00:12:51 sometimes I call this the "you ain't gonna need it" vs "make the most of it" debate 2026-06-23 00:13:45 I think one thing RV really suffers from is the tendency to not standardize useful things because someone might want to make a 1c MCU without them 2026-06-23 00:14:04 like the interrupt model, or the lack of a decent PUSH/POP 2026-06-23 00:14:50 did you ever come across the term "macroinstruction fusion"? some of the RV people have talked a lot about it 2026-06-23 00:15:16 I've heard the term, and it seems like a stupid way to work around an overly-limited ISA 2026-06-23 00:15:42 can someone kickban cleobuline for a day? 2026-06-23 00:16:24 don't be mean 2026-06-23 00:16:38 I think the worst bit is that RV makes a really bad instruction set for macroinstruction fusion 2026-06-23 00:16:52 xentrac, who else has been sometimes joining and quitting multiple times within a minute? 2026-06-23 00:19:03 when I was working on zeptoforth-V I was really getting hit hard by the fact that I couldn't use the PUSH/POP extension because A) I wanted to write portable code, B) I didn't want to infest my code with lots of 'minicode', and C) I didn't want to be limited by 4-word SP alignment 2026-06-23 00:19:26 okay, I didn't write that right 2026-06-23 00:19:35 'minicode' isn't related to PUSH/POP 2026-06-23 00:19:41 because the obvious thing to fuse would be 32-bit immediates, to me. but...LUI and AUIPC take a register as destination, so you need an extra register file write port to handle fusion patterns more generally 2026-06-23 00:19:47 millicode 2026-06-23 00:19:52 hello 2026-06-23 00:19:54 yeah 2026-06-23 00:20:11 cleobuli_, you've been repeatedly joining and parting multiple times today, often within the same minute 2026-06-23 00:20:38 are you using IRC on a cell phone or something? 2026-06-23 00:21:21 xentrac, that's it 2026-06-23 00:22:17 lofty: which one was B? 2026-06-23 00:22:30 Bit manipulation 2026-06-23 00:22:36 isn't the current standardized B extension a small set of bit operations? 2026-06-23 00:23:13 https://github.com/riscv/riscv-bitmanip/releases/tag/v0.93 2026-06-23 00:25:59 lofty: it's sad that they didn't go with that 2026-06-23 00:26:22 when I called it "state of the art" I was not kidding :p 2026-06-23 00:27:18 but of course committees have to screw things up, as they always do 2026-06-23 00:28:33 tabemann: SP alignment is a pretty bad fit for Forths 2026-06-23 00:30:06 xentrac, precisely 2026-06-23 00:30:22 especially if you're on a microcontroller where you can't afford to waste SRAM 2026-06-23 00:31:14 I think the tradeoffs around interrupt models are somewhat unavoidable 2026-06-23 00:31:32 I'm spoiled by the ARM Cortex-M interrupt model 2026-06-23 00:31:54 and I designed zeptoforth around it 2026-06-23 00:32:19 which is why I'm stuck on zeptoforth-V 2026-06-23 00:32:26 everything needs either extra chip real estate or extra time, and the cost ratio of those things varies by orders of magnitude 2026-06-23 00:33:06 usually interrupt handling is a pretty small part of a system like zeptoforth; how did it end up being pervasive in the way you are suggesting? 2026-06-23 00:33:35 the problem with RV is that they made choices that make sense for 1c MCU's that make no sense for anything else, while simultaneously making choices that make sense for application processors that make little sense for anything else 2026-06-23 00:34:16 xentrac, the problem is that I'm trying to make a portable interrupt model like that for the original zeptoforth 2026-06-23 00:34:44 but I need to access certain RP2350 interrupts in the kernel, which have the effect of breaking that portability 2026-06-23 00:35:15 in the original zeptoforth on the RP2350 all I did was set a vector handler for a particular IRQ and all was good with the world 2026-06-23 00:35:45 whereas with zeptoforth-V I have to effectively break portability in the kernel itself in a much more fundamental way 2026-06-23 00:36:22 (the particular issue is that I need to capture inter-CPU communication interrupts in the kernel so I can trap the PC in SRAM when doing things like programming/erasing flash) 2026-06-23 00:38:46 after all, my intention with zeptoforth-V was to write a general RV32I (and possibly RV64I, I made some choices deliberately to make it easy to port to RV64) Forth, but it seems like I might end up having to bake a lot of unportable functionality that I'm trying to avoid into the kernel itself (beyond obviously unportable stuff like hardware initialization and flash drivers) 2026-06-23 00:39:17 btw, there aren't currently any 1¢ MCUs 2026-06-23 00:39:47 "1c" was hyperbole 2026-06-23 00:40:07 it's not very hyperbolic. the cheapest ones are 2¢, in quantity 600: https://www.lcsc.com/product-detail/C49173938.html 2026-06-23 00:40:31 down to 1.77¢ in quantity 9000 2026-06-23 00:42:48 that's $159.30 for 9000 MCU's, which sounds ridiculous 2026-06-23 00:42:58 usually when you buy that may chips you expect to pay more than that 2026-06-23 00:43:03 *many 2026-06-23 00:43:29 isn't that insane? 2026-06-23 00:43:37 they're SOT-23-6s though 2026-06-23 00:44:18 so probably about 10mg each, so 9000 computers should weigh about 90 grams 2026-06-23 00:44:26 I presume these have like one or two GPIO's tops 2026-06-23 00:44:30 4 2026-06-23 00:44:47 I think the cheapest RISC-V is probably the CH32V003 in a SOP-8: https://www.lcsc.com/product-detail/C5346354.html 2026-06-23 00:45:23 which is like 11¢ or 12¢ 2026-06-23 00:45:48 $423.60 for 4000 of them, which is still damn cheap 2026-06-23 00:45:53 yup 2026-06-23 00:46:22 though to my eye the more staggering number is US$62.20 for 500 of them 2026-06-23 00:46:45 I've seen *single* MCU dev boards that cost more than twice that 2026-06-23 00:47:04 I'd like 500 32-bit RISC workstations please. Oh, payment? I think I have some coins in my pocket, let me check. 2026-06-23 00:48:29 2K SRAM? still more than the amount of RAM in an Atari VCS 2026-06-23 00:48:42 yeah, 16× as muc 2026-06-23 00:48:42 h 2026-06-23 00:49:40 the only reason to not get these rather than, say, the venerable 8051 for new designs is who knows when the chip will be shelved as CH moves onto other things 2026-06-23 00:50:01 yeah, although if you're concerned about that, maybe go with an STM32 2026-06-23 00:50:01 (whereas you know the 8051 isn't going anywhere) 2026-06-23 00:50:32 that reminds me, I dissected a DVD player and found out that its main CPU was an 8051 2026-06-23 00:50:47 was it one of those super-8051's though? 2026-06-23 00:50:51 a humongous system-on-chip which included an on-chip MPEG decoder, yeah 2026-06-23 00:51:06 I thought so 2026-06-23 00:51:28 so that's the other kind of case where pairing a hardwired CPU with an FPGA could maybe save you power 2026-06-23 00:51:51 an MPEG decoder in an FPGA might use a lot more power than a hardwired MPEG decoder 2026-06-23 00:52:05 but it's likely to use less power than an MPEG decoder on the CPU 2026-06-23 00:52:11 yeah 2026-06-23 00:52:29 and now that you can easily buy hardwired MPEG decoders, the argument switches to something like AV1 decoders or something 2026-06-23 00:52:31 but if you're making DVD players you *could* probably afford to commission an ASIC 2026-06-23 00:52:44 historically true, probably not now 2026-06-23 00:53:07 yeah, things have marched onto streaming media 2026-06-23 00:53:30 thing is, why would you try to save power in a DVD player? 2026-06-23 00:53:43 you're probably hooked up to a power brick hooked up to mains 2026-06-23 00:54:13 the obvious motivation would be to save money, because these days DVD players aren't exactly high-margin items 2026-06-23 00:54:30 nowadays you're probably decoding the video on your cellphone on the subway 2026-06-23 00:54:52 your cell phone probably has a hardware MPEG decoder built in 2026-06-23 00:55:24 yes, and an H.264 decoder, but not an AV1 decoder or a VP8 decoder 2026-06-23 00:55:41 yeah 2026-06-23 00:58:24 I've also been amazed at the prices of some other electronic components on LCSC. 3¢ piezo buzzer: https://www.lcsc.com/product-detail/C22387762.html 1.6¢ headphone jack: https://www.lcsc.com/product-detail/C52750867.html 1.4¢ 6.5GHz transistor: https://www.lcsc.com/product-detail/C42370039.html 3¢ 74HC595: https://jlcpcb.com/partdetail/HGSEMI-HG74HC595MTR/C19193503 2¢ LM358 dual op-amp upgraded 2026-06-23 00:58:30 to 4MHz: https://www.lcsc.com/product-detail/C53373913.html 2026-06-23 00:58:48 hmm... apparently there is such a thing as mobile phone hardware VP8 support 2026-06-23 00:59:11 oh, cool 2026-06-23 00:59:27 yeah, apparently there are designs including it dating back as far as 2013 2026-06-23 01:01:57 wow, I'm pretty out of the loop! 2026-06-23 01:02:28 older cell phones implemented it in software though 2026-06-23 01:02:49 (VP8 came out in 2008) 2026-06-23 01:04:21 okay, I'm going to have dinner now, so I'll bbl 2026-06-23 01:04:34 talk to you later! 2026-06-23 06:10:37 Chuck Moor said he updated Windows to 10 or 11 and ColorForth stopped working. I wonder why Windows on the first place? If he's a hacker it doesn't make sense to use windows 2026-06-23 06:12:56 Though you can spell it 04color03Forth in IRC 2026-06-23 06:14:59 https://www.reddit.com/r/Forth/comments/1ozsajc/windows_update_break_colorforth_chuck_thinks/ (contains youtube video MvkGBWXb2oQ in frame) 2026-06-23 08:40:50 Stalevar: he was having a hard time writing drivers for new hardware 2026-06-23 08:41:33 Of course. That's where his philosophy bit him, I guess? 2026-06-23 08:42:09 In 60s, 70s, 80s and even 90s you can talk with hardware directly and get meaningful result 2026-06-23 08:42:39 But in 2010 onward where you can't even use RAM without proprietary training code? Not so much 2026-06-23 08:43:04 well, there's that, and then there's the time iTV Corp. failed because Chuck's numerical simulation of the fab's processes was inaccurate in a way that produced a dud tapeout 2026-06-23 08:43:14 so they ran out of money 2026-06-23 08:43:53 more generally speaking they were pushing too hard to get to the optimum when they could have settled for "good enough" 2026-06-23 08:44:25 Last 10% of anything usually require 90% effort 2026-06-23 08:45:00 also I suspect that omitting multipliers from the GA144 (and the F21/i21, and the MuP21) was a bad tradeoff; that ruled them out for the workloads that could have really benefited from the GA144's "unlimited supply of MIPS" 2026-06-23 08:45:47 I'm a little out of context. Moore tried to make gazillion core CPUs optimized to run Forth? 2026-06-23 08:45:56 he succeeded 2026-06-23 08:46:15 Where were they used? 2026-06-23 08:46:35 nowhere 2026-06-23 08:46:36 http://www.greenarraychips.com/home/documents/greg/DB001-110412-F18A.pdf 2026-06-23 08:48:39 Then it doesn't sound like "succeeded"? 2026-06-23 08:48:47 he made the chips 2026-06-23 08:49:04 the GA144 has 144 cores which run about a billion instructions per second each 2026-06-23 08:49:05 But he can't even procure some to power his own workstation? 2026-06-23 08:49:24 and had to use windows 11? 2026-06-23 08:49:45 well, he can get the chips, but that's just a CPU. he doesn't have the peripherals 2026-06-23 08:50:16 What's the point of CPU if there is no motherboard to plug it into? 2026-06-23 08:50:30 I think they sell evaluation boards actually 2026-06-23 08:50:43 each GA144 CPU has 64 words of RAM, 18 bits each 2026-06-23 08:52:37 and another 64 words of ROM. each word holds up to 4 5-bit instructions, but the last instruction can only be one of 8 possibilities 2026-06-23 08:53:34 Sounds more like a specialized MCU or something rather than general purpose CPU 2026-06-23 08:54:38 you could in theory use it that way, but a normal MCU would probably be a lot easier 2026-06-23 08:54:59 some of the CPUs around the edge of the array control a single GPIO each 2026-06-23 08:55:13 Still, if he's rich and smart enough to make his own chips, why not to make an entire computer to run 04color03Forth? 2026-06-23 08:55:31 Instead of struggling with Windows 10/11 2026-06-23 08:56:20 xentrac, so it's more like smart FGPA? 2026-06-23 08:58:01 I'd like to know that too. you'd think the GA144 wouldn't struggle with producing a video signal 2026-06-23 08:58:18 or decoding the PS/2 keyboard protocol 2026-06-23 08:58:33 it's in this uncomfortable space between FPGAs and normal CPUs 2026-06-23 08:59:02 where you can't practically program it in either Verilog or C 2026-06-23 08:59:33 but instead must manually lay out a floorplan and then program each node in MachineForth 2026-06-23 09:00:25 There is a game (sadly proprietary) OpusMagnum, where you have to arrange arms and program them to build "molecules". I guess programming that machine would be a similar struggle 2026-06-23 09:00:34 Sounds a bit like IA-64: an interesting concept, but no devtools ever appeared to make good use of it. 2026-06-23 09:00:36 Maybe there are free games similar to it 2026-06-23 09:00:49 I don't think he's rich. the settlement with Leckrone was apparently enough to pay for getting the GreenArrays chips out the door, but he lives in a log cabin in the woods 2026-06-23 09:04:43 last I checked, you could tape out a prototype chip with an "MPW"/"shuttle" service like MOSIS or CMP for about US$4000 2026-06-23 09:05:56 and now we have Tiny Tapeout, which reduces that to US$300 but is indeed pretty tiny (because you're sharing a chip with a lot of other designs) 2026-06-23 09:08:02 I don't know why Chuck didn't have his own GA144-based workstation. bitbanging a video signal is not rocket science, and his MuP21 included NTSC generation hardware, so he's familiar with what they consist of 2026-06-23 09:23:48 What would you pick out of pForth, SP-Forth, Lina, GForth or Jones Forth (though probably not useable as actual engine even if it works) 2026-06-23 09:24:02 or what else runs on Linux natively? 2026-06-23 09:36:00 I tend to use gforth, despite my issues with it 2026-06-23 09:39:22 xentrac: Maybe Chuck was burned out 2026-06-23 09:43:38 What issues? 2026-06-23 10:01:30 veltas: plausible 2026-06-23 10:02:13 I've tried Gforth, pForth, and PFE. of those three I like Gforth best 2026-06-23 10:02:33 not familiar with Lina 2026-06-23 10:04:08 for https://canonical.org/~kragen/sw/dev3/wmaze.fs I had to stub out time&date, form, and at-xy to get it to run in PForth. and I don't think that's because they're present under a different name; I think they're just missing functionality 2026-06-23 10:04:25 similar with PFE IIRC, though I don't think I got wmaze.fs running in it 2026-06-23 10:07:46 There is also zForth but it's minimal 2026-06-23 10:18:48 Issues with gforth: they've not released in well over a decade, even though there's a lot of activity, and it's trying to be too much like a normal programming language with its warnings and the bloat 2026-06-23 10:19:14 That said it's got a lot of useful features like C integration and conforms to ANS standard well enough 2026-06-23 10:20:03 My biggest complaint is they haven't bothered doing a release in so long, most people using gforth are using a version that's far removed from what the devs are using 2026-06-23 10:20:49 Debian seems to have dropped GForth 2026-06-23 10:21:37 The draft standard would probably do better if gforth was being released, they're one of the only big forths that is open source and follows the draft spec 2026-06-23 10:27:11 I like stack underflow detection 2026-06-23 10:27:41 Jones Forth spit some numbers if you keep taking numbers from empty stack and who knows what happens if you overwrite them 2026-06-23 10:28:11 xentrac: Found a little context https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1039051 https://tracker.debian.org/news/1730944/accepted-gforth-073dfsg-10-source-into-unstable/ 2026-06-23 10:29:30 Stack under/overflow is trivial to add, only very minimalist forths lack it 2026-06-23 10:29:41 Admittedly I don't think zenv has it, maybe I should add it 2026-06-23 10:30:16 xentrac: So sounds like Bernd (gforth leader) will get 0.7.3 back in for next release of Debian 2026-06-23 10:30:23 Or you can just put stack on an edge of permitted memory then undeflow will be a hardware exception 2026-06-23 10:30:42 I think that's how gforth does it(?) 2026-06-23 10:30:43 veltas: that's good! 2026-06-23 10:30:45 0.7.3 is still, like, 2008 though, right? 2026-06-23 10:31:03 Gforth catches signals like segfaults and returns to interpreter 2026-06-23 10:31:13 yeah, that's what you'd want, isn't it? 2026-06-23 10:31:19 It's actually relatively easy to do this although KipIngram knows some of the weeds 2026-06-23 10:31:22 that way you don't lose your work 2026-06-23 10:31:27 Of course 2026-06-23 10:31:27 Yes, but in Slackware I just did ./configure --prefix=/opt/gforth and make and make install and it worked 2026-06-23 10:31:39 For an 'environment' rather than just a 'program' it makes sense yes 2026-06-23 10:31:49 oh, I thought this was one of the things on the list of "my issues with [GForth]" 2026-06-23 10:31:54 No :P 2026-06-23 10:31:59 We're just chatting now 2026-06-23 10:32:05 sorry! 2026-06-23 10:32:15 My issue is the stable release is from 'like, 2008' 2026-06-23 10:32:40 If it works why change? 2026-06-23 10:32:40 We need to have a big bash for 0.7.3's 20th 2026-06-23 10:32:55 Everyone's invited 2026-06-23 10:33:36 yes! 2026-06-23 10:33:40 Stalevar: They have changed it loads and are on unreleased version 0.7.9, which is more like 0.9.3 or whatever because it's totally different model internally 2026-06-23 10:33:48 Anyway, why not to try SP-Forth or https://home.hccnet.nl/a.w.m.van.der.horst/lina.html 2026-06-23 10:34:07 But they haven't done a 'release' since 2008 so people are stuck on an old unloved version 2026-06-23 10:34:34 3 years ago they said they were near to 1.0, which I think is what they're holding off for 2026-06-23 10:35:18 Their criteria for 1.0 doesn't sound worth it, I think they should release now. I think they want better documentation first 2026-06-23 10:36:22 this reminds me of people with a hoarding problem 2026-06-23 10:37:03 by the way, right now my kitchen counter is full of parts from a microwave I just gutted 2026-06-23 10:37:15 In a way, writing a Forth is a bit like a hoarding problem 2026-06-23 10:38:06 oh? 2026-06-23 10:39:21 Well you're collecting and spending time surrounding yourself with stuff that's junk to most people, and is preventing you from a normal healthy lifestyle 2026-06-23 10:39:39 A lot of computing hobbies are worse than smoking 2026-06-23 10:39:50 stuff such as UM/MOD? 2026-06-23 10:39:56 Yeah exactly 2026-06-23 10:40:19 Damn you went straight for my heart there :P 2026-06-23 10:40:52 I think um/mod is brilliant but it is a rather esoteric problem 2026-06-23 10:41:08 as I was breathing the smoke from microwave circuit boards last night I was wondering how healthy it was 2026-06-23 10:41:11 Isn't UM/MOD just DIV 2026-06-23 10:41:43 it's divmod 2026-06-23 10:41:53 I mean DIV the x86 instruction 2026-06-23 10:42:08 oh, I thought you meant the Pascal operator 2026-06-23 10:42:26 It can be implemented as the one-parameter DIV instruction 2026-06-23 10:42:27 yes, it's exactly DIV the x86 instruction 2026-06-23 10:42:56 if I understand them both correctly 2026-06-23 10:42:59 UM/MOD is actually quite fundamental and I think most platforms have it 2026-06-23 10:43:09 What's weird is what e.g. C doesn't have it 2026-06-23 10:43:24 Well it's not weird because C is a systems language and not a portable assembly 2026-06-23 10:43:24 C doesn't really have mixed-mode arithmetic 2026-06-23 10:43:38 xentrac, the difference is you can set up ventilation or put on a respirator. but if you are smoking you can't 2026-06-23 10:44:09 But yeah, breathing toxic fumes regularly is probably as bad as smoking 2026-06-23 10:44:21 Could easily be worse than smoking 2026-06-23 10:44:36 Or better 2026-06-23 10:44:46 Smoking's not good for you but I think that people often end up with a hysterical view of it 2026-06-23 10:44:48 Stalevar: I think the main health problem with computing hobbies is just that you spend a lot of time sitting down 2026-06-23 10:45:24 By the way starting forth epub from web archive is so broken that it won't open in FBreader 2026-06-23 10:45:26 yes, probably the guy who smokes a cigar every other weekend is not going to have much of a health effect from it 2026-06-23 10:45:31 Though Book Reader kinda worked 2026-06-23 10:45:56 xentrac, it's an exception. Most of smokers smoke every day and more than once 2026-06-23 10:46:08 The rate of lung cancer for people who smoke like 20 cigarettes a day is like 14% in their whole life, that is way lower than I would have guessed without knowing that statistic 2026-06-23 10:46:25 I can't remember exact numbers but anyone can go look this up, I'm sure someone will google this outrageous statement 2026-06-23 10:46:33 If one smokes every other weekend it might not be too bad, but it's a very rare exception, most will either smoke several times a day or not at all 2026-06-23 10:46:50 veltas: I thought it was a little lower than that, but maybe I'm thinking of the lung cancer rate for all smokers 2026-06-23 10:46:53 20 a day is a ridiculous amount although sadly many people smoke that much 2026-06-23 10:47:01 yeah, it's common 2026-06-23 10:47:51 I don't see a point in smoking. Nicotine doesn't even give that much of a kick as I heard 2026-06-23 10:48:16 I think it's more that they're addicted so it calms their withdrawal 2026-06-23 10:48:26 Rather than it having inherent calming properties 2026-06-23 10:48:34 Stalevar: https://gwern.net/nicotine 2026-06-23 10:49:28 also regarding mecrisp, I'm a little confused with all stellaris, quarta and so on. Which one I need? 2026-06-23 10:49:38 for native linux if it works at all 2026-06-23 10:50:02 I wonder if steroid abuse is worse 2026-06-23 10:50:45 Apparently that can cause cancer too and it's getting common with body builders 2026-06-23 10:50:48 not sure about Mecrisp either 2026-06-23 10:50:57 Steroids / testosterone 2026-06-23 10:51:04 steroid abuse is potentially a lot worse than cancer 2026-06-23 10:51:17 Stalevar: I don't think mecrisp runs on native linux 2026-06-23 10:51:18 not many things are, but steroids can be 2026-06-23 10:51:34 Mecrisp is meant for MCUs, the different named ones run on different platforms / archs 2026-06-23 10:52:03 Like Mecrisp Quintus is for RISC-V 2026-06-23 10:52:43 I think if you take a bunch of steroids every day for 10 years that has a super high mortality rate 2026-06-23 10:52:50 Way higher than cigarettes 2026-06-23 10:52:51 it doesn't take 10 years 2026-06-23 10:53:03 Well it's all statistics right 2026-06-23 10:53:06 the reason most anti-inflammatory drugs are called "non-steroidal anti-inflammatory drugs" is the iatrogenic catastrophe that ensued upon the initial discovery of steroids: https://www.researchgate.net/publication/264248818_Origins_and_impact_of_the_term_%27NSAID%27 2026-06-23 10:54:41 mecrisp-2.0.7.tar.gz is mecrisp-stellaris? 2026-06-23 10:55:09 Stalevar: there's #mecrisp on hackint.org IRC 2026-06-23 10:55:21 And also libera.chat but I think that's less active 2026-06-23 10:55:32 steroid therapy started in 01949, won its discoverers the Nobel Prize in 01950, and patients started dying horribly en masse around 01953 2026-06-23 10:55:55 of course the dose makes the poison 2026-06-23 10:55:55 Wow 2026-06-23 10:56:06 A lot of early Nobel prizes associated with lots of people dying 2026-06-23 10:56:26 well, those steroid therapies are still in use today 2026-06-23 10:56:34 they just try to strictly limit their duration 2026-06-23 10:57:26 Did you know that they would inject thorium oxide suspense in vein? 2026-06-23 10:57:44 I think 'mecrisp' is for MSP430 2026-06-23 10:57:48 no, I only knew about it in intestines 2026-06-23 10:57:51 Yeah, that thorium people panic over a tiny amount in rods 2026-06-23 10:57:51 Mecrisp Stellaris is for ARM 2026-06-23 10:58:01 I can't tell you more than google though 2026-06-23 10:58:09 I've only used Mecrisp once 2026-06-23 10:58:18 Alright, I'll just use stellaris then 2026-06-23 10:58:32 I wonder if it should have been Mecrisp Brachius 2026-06-23 10:58:34 It has a nice readme listing forth words one per line, which just what I needed 2026-06-23 10:58:46 xentrac: Is that a joke? It might be over my head 2026-06-23 10:59:01 "brachium" is Latin for "arm" 2026-06-23 10:59:03 Mecrisp is a great project 2026-06-23 10:59:15 Very good xentrac 2026-06-23 11:00:42 The author of mecrisp is one of those people who just has loads of useful output and mostly keeps to themselves 2026-06-23 11:00:43 total cigarette mortality rate among 20-a-day smokers is probably significantly higher than the 14% lung cancer rate, even though lung cancer isn't always fatal 2026-06-23 11:02:11 https://en.wikipedia.org/wiki/Health_effects_of_smoking_tobacco mentions pneumonia, heart attacks, strokes, emphysema, chronic bronchitis, peripheral arterial disease, and high blood pressure 2026-06-23 11:02:53 saying, "About one-half of men who smoke long-term will die of illness due to smoking." 2026-06-23 11:03:13 You're absolutely right about that, it is a little dishonest to say what I said 2026-06-23 11:03:21 In that it's a bit misleading 2026-06-23 11:03:59 But I will also say that I question how many of these people with "illness due to smoking" are really dying because of smoking or have had lifespans shortened significantly because of smoking 2026-06-23 11:04:12 I didn't think it was dishonest; I just thought it was only part of the picture 2026-06-23 11:04:17 Nevertheless I don't smoke and don't plan on taking it up 2026-06-23 11:04:29 I think if you present things out of context it can be a little dishonest 2026-06-23 11:05:02 Does 0<> have any use? IF WHILE already accept numbers as true if they are not zero and false if zero? 2026-06-23 11:05:08 It adds nuance still to the conversation that lung cancel isn't a certainty 2026-06-23 11:05:35 Stalevar: It's a bool cast basically, so if you want to store a clean 'flag' you can use it 2026-06-23 11:05:40 Otherwise it's useless yes 2026-06-23 11:05:42 lung cancer definitely isn't a certainty, and neither is death due to smoking 2026-06-23 11:05:58 Stalevar: I guess also it's useful as documentation that you're checking for a value not being zero 2026-06-23 11:06:09 But in practice most forthers don't bother with that kind of code 2026-06-23 11:06:45 'lung cancel' I certainly don't want to get cancelled by my lungs 2026-06-23 11:06:54 #metoo 2026-06-23 11:07:06 I was amused to learn today that the proof assistant Lean has a new-to-me definition of inequality 2026-06-23 11:07:38 in Lean `A ≠ B` is syntactic sugar for `A = B → False` 2026-06-23 11:07:54 that is to say, that A = B would imply False 2026-06-23 11:08:10 that if it were true that A equaled B, then False would be true 2026-06-23 11:09:06 and in python 2, it can be /j 2026-06-23 11:09:50 I think dividing by 1j in Python is equivalent to multiplying by -1j 2026-06-23 11:10:54 dividing by j isn't especially well defined because j is just a variable 2026-06-23 11:11:31 (but not in Forth!) 2026-06-23 11:14:34 lofty: In Forth it can be 2026-06-23 11:15:09 but such would not be standard; in python the standard is "whatever cpython does" /lh 2026-06-23 11:15:27 TRUE CONSTANT FALSE is entirely standard 2026-06-23 11:16:14 > A true flag returned by a standard word shall be a single-cell value with all bits set. A false flag returned by a standard word shall be a single-cell value with all bits clear. 2026-06-23 11:17:30 Mecrisp Across is msp430. Mecrisp Stellaris is ARM. 2026-06-23 11:18:28 lofty: Yes but I mean you can write a new definition for 'FALSE', not change what true/false stuff is accepted by existing words 2026-06-23 11:42:33 You recommended me to read starting forth, I read it up to line where they say to try 15 spaces. Gforth has this, Create spaces ( u -- ) bl 80 times 2026-06-23 11:42:33 DOES> ( u -- ) swap 0 max 0 ?DO I' I - &80 min 2dup type +LOOP drop ; 2026-06-23 11:43:56 So `create spaces` adds a dictionary entry, bl 80 times skips 80 bytes filling them with 0x32 and then finally DOES> define what happens when you call word SPACES ? 2026-06-23 11:44:38 But unlike regular action after colon, DOES> (or create?) add the address of created word to stack 2026-06-23 11:46:49 Then the loop spits 80 spaces at a time until there are less than 80, then it prints the line with remaining spaces using length argument to TYPE 2026-06-23 12:24:06 '\' $7F17A21E9FD8 c! \ok 2026-06-23 12:57:15 '\' ' prompt 160 + c! \ok 2026-06-23 12:58:54 forthBot: OK 2026-06-23 12:58:55 Error: Unknown word: OK 2026-06-23 12:59:24 forthBot: ' prompt 198 dump 2026-06-23 12:59:24 Error: Unknown word: ' 2026-06-23 13:00:49 forthBot: LOAD ini.fth 2026-06-23 13:00:49 File ini.fth with MOON loaded 2026-06-23 13:00:56 forthBot: ' prompt 198 dump 2026-06-23 13:00:56 Error: Unknown word: ' 2026-06-23 13:08:43 forthBot: ['] prompt 198 dump 2026-06-23 13:08:43 Error: Unknown word: ['] 2026-06-23 13:09:41 forthBot: prompt 2026-06-23 13:09:42 Error: Unknown word: prompt 2026-06-23 13:11:32 "when you've learned one forth, you've learned one forth" continues to be a truism. 2026-06-23 13:12:01 forthBot: : BREAK-STRING ( 0 ... n2 n1 addr -- ) BEGIN OVER WHILE TUCK ! 4 + REPEAT DROP ; 2026-06-23 13:12:43 forthBot: : MY-STRING S" This should be thirty--two bytes "S ; 2026-06-23 13:13:03 forthBot: MY-STRING TYPE CR 2026-06-23 13:13:03 Error: Unknown word: TYPE 2026-06-23 13:13:25 forthBot: MY-STRING PRINT CR 2026-06-23 13:13:25 This should be thirty--two bytes 2026-06-23 13:14:07 forthBot: : BREAK-STRING ( 0 ... n2 n1 addr -- ) BEGIN OVER WHILE TUCK ! 4 + REPEAT DROP DROP ; 2026-06-23 13:14:44 0 31090 1869440365 543716457 1998615411 1701650548 661546092 1970235507 544567129 MY-STRING DROP BREAK-STRING MY-STRING PRINT CR 2026-06-23 13:14:58 forthBot: 0 31090 1869440365 543716457 1998615411 1701650548 661546092 1970235507 544567129 MY-STRING DROP BREAK-STRING MY-STRING PRINT CR 2026-06-23 13:14:58 Error: STORE: invalid memory index 20756f59 2026-06-23 13:18:58 Wait, why https://home.hccnet.nl/a.w.m.van.der.horst/ci86.lina64-5.5.0.tar.gz is a zip archive containing file saying it's obsolete... 2026-06-23 13:19:02 https://home.hccnet.nl/a.w.m.van.der.horst/lina.html 2026-06-23 13:19:08 It's latest version isn't it? 2026-06-23 13:23:28 guys there is a cat lang game jam :D 2026-06-23 13:23:51 https://itch.io/jam/catjam-2026 2026-06-23 13:24:21 you could participate with forth 2026-06-23 13:24:35 i want to participate with my toy lang which i'm rewriting 2026-06-23 13:25:24 https://gitlab.com/ohmycat/oh/-/blob/main/oh.js 2026-06-23 13:26:21 vms14, explain what it is for those who cannot open the links 2026-06-23 13:27:21 God is King of kings and Lord of lords // Hm, which god? 2026-06-23 13:42:00 so you can open the links xd 2026-06-23 13:42:08 it's my toy lang 2026-06-23 13:42:40 it's a layer on top of js, everything in this lang is a js function 2026-06-23 13:42:49 and has two kind of immediate words, immediate 0 and immediate 1 2026-06-23 13:43:09 immediate 0 just execute, immediate 1 have to return a function on the stack, which will be appended to the runtime 2026-06-23 13:44:04 for example the line comment '---' is an immediate 0 word that discards the source code until newline or eof 2026-06-23 13:44:42 if is an immediate 1 word that compiles it's own code array and returns a closure that will execute the test block, and depending on what's on the stack after that, the true or false branch 2026-06-23 13:48:44 vms14, I can't open first link 2026-06-23 13:49:03 Stalevar: it's a game jam for concatenative langs 2026-06-23 13:49:22 what is game jam? 2026-06-23 13:49:22 you could participate with forth, or any other cat lang, or your own :D 2026-06-23 13:49:36 dog lang? 2026-06-23 13:49:47 Stalevar: like a contest where you make a game and see whether you are better than anyone or not 2026-06-23 13:49:57 no, only cats 2026-06-23 13:50:46 cheetah? 2026-06-23 13:51:05 i guess 2026-06-23 13:51:16 cheater lang 2026-06-23 13:51:38 that's my lang, because it cheats on everything 2026-06-23 13:54:29 https://www.freepascal.org/pic/logo.gif 2026-06-23 15:14:58 Environment for Stalevar inactive, freeing... 2026-06-23 15:44:54 code incr ret ret ret ret end-code 2026-06-23 15:45:04 $50F0000003CB8 ' incr 16 + ! ok 2026-06-23 15:46:55 gforth breaks terminal if you do this (name incr is misleading. I wanted to make 1+ but didn't get it so I got down to syscall with 60 in %rax instead) 2026-06-23 17:47:57 https://github.com/jrudolph/picoforth there is also that, not only zeptoforth and mecrisp