IRC Log - 2025-03-13 - ##forth

Channel: ##forth
Total messages: 180
Time range: 11:51:16 - 23:51:52
Most active: veltas (88), xentrac (82), user51 (4)
12:15:04 ##forth <veltas> noice
12:15:44 ##forth <veltas> Could run Forth on that, for sure
16:54:48 ##forth <user51> veltas: Yeah, that makes sense, but branching words would need to keep their depth, probably on the cf/rstack.
16:57:33 ##forth <user51> veltas: re: words like IF during interpretation.
16:58:06 ##forth <veltas> Been trying to work with a simpler editor https://pastebin.com/raw/9ekEWkJe
17:00:49 ##forth <veltas> user51: [IF] only uses a stack while it's skipping content, so the rest of the time there
17:00:52 ##forth <veltas> 's no stack
17:01:29 ##forth <veltas> [THEN] is a no-op and [ELSE] just skips to the next [THEN] with [IF][THEN] nesting, so also a stack while running
17:01:34 ##forth <veltas> But not otherwise
17:02:19 ##forth <veltas> I'm not really keen on [IF] [THEN] but it's in the ANS standard so I can refer to it
17:03:17 ##forth <veltas> The old-school way to conditionally skip stuff is to conditionally LOAD blocks, and segregate different versions in different blocks
17:17:29 ##forth <user51> Darn crash.
17:17:49 ##forth <user51> I'm not really doing anything old school, just exploring what I'm interested in.
18:21:47 ##forth <veltas> user51: https://forth-standard.org/standard/tools/BracketELSE has a reference implementation
18:28:03 ##forth <veltas> I'm just saying because I am interested in classic Forth techniques, especially as they tend to result in smaller implementations
18:28:06 ##forth <veltas> Well sometimes anyway
18:28:39 ##forth <veltas> Also because it was the 'classic' Forths that were used when Forth had a proper niche and serious market share, but since e.g. the ANS standard it's had less and less
19:22:51 ##forth <veltas> Yeah this block editor in less than a block is definitely ripped off of crc's basic editor
20:19:36 ##forth <veltas> It is already surprisingly functional
20:42:39 ##forth <veltas> Of course Forth isn't for bootstrapping
20:42:43 ##forth <veltas> Forth is the destination
21:52:16 ##forth <xentrac> not sure if *serious* market share
22:00:22 ##forth <xentrac> GeDaMo: there are definitely microcontrollers that are cheaper than that, like https://www.lcsc.com/product-detail/Microcontroller-Units-MCUs-MPUs-SOCs_PADAUK-Tech-PMC251-S14_C317604.html which costs half as much and has two hardware threads
22:00:34 ##forth <xentrac> a bit harder to run Forth on
22:00:45 ##forth <GeDaMo> I thin kit was more about the size, the price was just mentioned
22:03:36 ##forth <xentrac> I've seen a couple of microcontrollers on LCSC that are under 2¢, like the NY8A051 (which is not an 8051 despite the name) and the Cypress CY8C4045FNI, but they're out of stock now, and who knows if that's forever
22:04:14 ##forth <xentrac> it's true that I don't know of any microcontrollers that are smaller than a WLCSP-8
22:06:56 ##forth <xentrac> you could target-compile a Forth for any of these, but none of them have enough RAM to hold much of a program. TI's has 1KiB of RAM
22:07:33 ##forth <xentrac> so you aren't going to do much interactive interpretation
22:08:23 ##forth <xentrac> the PY32 has enough RAM, though, and like the TI chip, it's a 32-bit ARM: https://www.lcsc.com/product-detail/Microcontroller-Units-MCUs-MPUs-SOCs_PUYA-PY32F002AL15S6TU_C5292060.html
22:09:38 ##forth <xentrac> 8.92¢ and I think 3KiB of SRAM, though the datasheet actually says "最大 3Kbytes SRAM", where the Chinese means "maximum", so it's probably a datasheet for multiple models
22:14:44 ##forth <xentrac> yeah, I'm not finding anything as small as WLCSP-8 on LCSC
22:25:30 ##forth <GreaseMonkey> IIRC the Padauk ones are largely a shuffled-around-for-legal-reasons PIC
22:26:01 ##forth <GreaseMonkey> 3 KB RAM sounds kinda tight for ARM
22:26:09 ##forth <xentrac> they definitely have a lot of PIC-like characteristics
22:26:19 ##forth <xentrac> you'd put the ARM code in the Flash, not the RAM
22:26:36 ##forth <xentrac> which is 20KiB
22:26:59 ##forth <xentrac> I don't think the reason Padauk shuffled around PIC stuff was legal
22:27:01 ##forth <GreaseMonkey> ...then again the RISC-V CH32V003 which competes in that space is 2 KB RAM, 16 KB flash
22:27:19 ##forth <xentrac> their datasheets have diagrams that seem to have been copied from Microchip datasheets
22:27:53 ##forth <xentrac> so they aren't too concerned about copyright law, and copyright law doesn't cover instruction sets or similar functional things
22:28:49 ##forth <xentrac> to stop competitors from copying that kind of stuff you need patents, and I'm pretty sure all of Microchip's patents that could cover the original PICs expired before Padauk launched their line
22:59:29 ##forth <veltas> xentrac: Forth was more serious in the late 70's and 80's
22:59:48 ##forth <veltas> It was never a major popular language though
23:00:12 ##forth <xentrac> yeah, I feel like Forth is still a serious language
23:00:15 ##forth <veltas> But I mean it was the first high level language in space, as far as we know. Standard in astronomy
23:00:27 ##forth <xentrac> standard?
23:00:30 ##forth <veltas> Used in medical equipment, minicomputers
23:00:40 ##forth <veltas> Big and tiny applications
23:00:48 ##forth <xentrac> yeah, used in a lot of different places!
23:00:49 ##forth <veltas> It's barely used now compared to how it was back then
23:01:18 ##forth <xentrac> yeah, it's definitely much less used now
23:02:34 ##forth <veltas> There was at least one BYTE special on it, where Chuck Moore wrote a pretty terrible article about lots of stuff that most people wouldn't care to hear about
23:02:55 ##forth <veltas> But really that matches the language itself, because inherently it's not going to be appealing to most people
23:04:32 ##forth <veltas> Forth shined when the software ecosystem was a lot less developed, and the hardware landscape was more diverse
23:04:38 ##forth <veltas> And also more memory constrained
23:05:42 ##forth <xentrac> looks like this issue of BYTE: https://archive.org/details/byte-magazine-1980-08
23:05:52 ##forth <xentrac> I really loved BYTE's covers
23:05:53 ##forth <veltas> Yeah
23:06:07 ##forth <veltas> He proudly declared in this article that Forths can't be portable, and that they have to be rewritten for each arch
23:06:24 ##forth <veltas> I mean even in 1980 it was obvious that that was not a good software strategy
23:06:30 ##forth <veltas> And I think he was decidely proven wrong
23:06:32 ##forth * xentrac downloads a 200-megabyte PDF like a fool
23:07:15 ##forth <veltas> Also talked about being a difficult person etc, I mean if you've got a figurehead like this then things won't go well
23:07:20 ##forth <xentrac> I don't know, I feel like there are a lot of software companies that ran aground on trying to make software portable around that time
23:07:26 ##forth <veltas> The writing was on the wall in 1980
23:07:55 ##forth <xentrac> like, everybody who tried to ship products on the UCSD P-system came to regret it
23:08:12 ##forth <xentrac> I ran the P-system myself
23:08:30 ##forth <xentrac> I remember it as being painfully slow
23:08:46 ##forth <veltas> I just mean in the sense that standard programming languages, or mostly-standard languages, dominated the 80's, 90's, ... need I go on?
23:08:56 ##forth <xentrac> yeah, they did
23:09:26 ##forth <veltas> Likewise ultimately operating systems abstracted the hardware for programs
23:09:33 ##forth <xentrac> but in 01980 the only way to ship software of salable quality for microcomputers was by writing it in assemby
23:09:36 ##forth <xentrac> *assembly
23:09:51 ##forth <xentrac> I was looking at MacPaint the other day, which was from 01984
23:09:55 ##forth <veltas> Exactly, in 1980 the limitations of the time were good for Forth
23:10:01 ##forth <xentrac> it's almost half written in assembly, not counting QuickDraw
23:10:52 ##forth <veltas> But anyone who thought that this was a matter of *principle* was left by the wayside, including Forth Inc.
23:10:52 ##forth <xentrac> which was written entirely in assembly by the same author and which in some sense contained most of MacDraw's code
23:11:02 ##forth <xentrac> and if she wasn't running Forth, Inc., in 01980, she certainly was by 01984
23:11:26 ##forth <xentrac> well, let's say 01985. But I think 01984 or earlier
23:11:34 ##forth <veltas> It's a weird situation that historically one of the worst things for Forth was the person who made it
23:12:02 ##forth <xentrac> he's a weird person, but maybe it took a weird person to invent Forth
23:12:04 ##forth <xentrac> or discover it
23:12:06 ##forth <veltas> I think Chuck really was just not a businessman, he never really got that
23:12:38 ##forth <xentrac> at the Silicon Valley Forth year-end fireside last year, he talked a fair bit about Forth and GreenArrays
23:12:45 ##forth <veltas> Chuck was a really solid engineer at some point, but he got to a stage where he also had to be a leader and a businessman, and that he couldn't do
23:13:04 ##forth <xentrac> but also he talked about the virtues of using a metal walking stick when you go hiking in the mountains
23:13:13 ##forth <xentrac> because it electrically earths you
23:13:31 ##forth <veltas> That probably has more to do with him being 86 than anything else
23:13:50 ##forth <xentrac> see https://old.reddit.com/r/Earthing/
23:13:57 ##forth <xentrac> it's a whole meme
23:14:05 ##forth <veltas> Yeah I can't take that seriously
23:14:24 ##forth <veltas> ColorForth has some interesting stuff in it, and cool ideas, and I know crc found it inspirational
23:14:24 ##forth <xentrac> yeah, it doesn't seem plausible to me
23:14:41 ##forth <xentrac> I was having lunch with Andy Glew a few years back
23:14:44 ##forth <veltas> But the greenarrays stuff is pretty crazy
23:15:01 ##forth <xentrac> the guy who designed MMX, you might know of him
23:15:12 ##forth <xentrac> I asked him what he thought of Chuck Moore
23:15:32 ##forth <veltas> I don't know him, but still interesting
23:15:34 ##forth <xentrac> at first he thought I was talking about his ex-boss at AMD
23:15:40 ##forth <veltas> lol
23:15:47 ##forth <xentrac> but when I clarified, he exclaimed:
23:15:59 ##forth <xentrac> "Oh, HIM! In my DREAMS I could do what he does."
23:16:50 ##forth <veltas> Chuck was a fantastic engineer at some point....
23:16:59 ##forth <xentrac> the GreenArrays and IntellaSys chips do actually work in practice, unlike the F21/i21
23:17:38 ##forth <xentrac> but to me this doesn't look like "Chuck was a fantastic engineer at some point, but stopped being any good later"
23:17:50 ##forth <veltas> ga144 is totally useless
23:18:15 ##forth <xentrac> to me it looks like "Chuck spent his entire career doing things that were at the limit of being feasible, so they often failed"
23:18:19 ##forth <veltas> I mean holistically, obviously you *can* use it, but I don't see any place where it's the best value
23:19:04 ##forth <xentrac> yeah, I haven't seen anybody using it successfully, but it does seem to do what the datasheet says and have a working, usable instruction set
23:19:09 ##forth <veltas> My analysis here is more specific and less vague, I think at some point the equation went against him and he doubled down on reinventing the wheel
23:19:41 ##forth <veltas> Like e.g. GA144 is not a good business idea, I wouldn't have invested, even though I find the creator and concept both fascinating and want it to work
23:19:42 ##forth <xentrac> reinventing the wheel was already, as you pointed out, often a poor cost/benefit tradeoff in 01980
23:19:52 ##forth <veltas> Even more so now
23:20:18 ##forth <xentrac> I think the GA144 was a much better idea when Intellasys was first working on it, 20 years ago, before GreenArrays was founded
23:20:40 ##forth <veltas> Okay but still there's a whole 20 years to figure it out
23:21:01 ##forth <xentrac> most of those were spent in lawsuits between Chuck and Leckrone
23:21:28 ##forth <xentrac> Chuck's wife died before his final victory
23:21:45 ##forth <veltas> Yeah I read what Chuck wrote about her, very sad
23:22:43 ##forth <xentrac> yeah
23:23:44 ##forth <veltas> I'd be less critical if this was a personal endeavour, but when you try and actually get people involved in a business and drive them over a cliff it's a bit different
23:25:03 ##forth <veltas> Cheaper than ever to do a Forth chip ASIC if someone wants to do that for their amusement
23:25:19 ##forth <xentrac> well, enormously more expensive than it would have been six months ago
23:25:39 ##forth <veltas> But ... Forth is easy to port, why make a chip *for* it?
23:25:40 ##forth <xentrac> and probably more expensive than when iTV was trying to do it in the 90s
23:26:28 ##forth <xentrac> when you could do a MOSIS run for US$2000
23:26:44 ##forth <xentrac> as for why, well, it's aesthetically appealing to not have an extra unnecessary instruction set underneath Forth
23:27:52 ##forth <veltas> Honestly, writing a Forth in a 'Forth-friendly instruction set' is not really that much nicer
23:29:14 ##forth <veltas> I just think there's a point in saying Forth is good at porting to different archs, so why bother making an arch for it
23:29:22 ##forth <veltas> Given making an arch is already really hard to do proper
23:30:54 ##forth <xentrac> the IHP Tiny Tapeout alpha-testing run had a bunch of different CPUs but no Forth CPUs: https://tinytapeout.com/runs/ttihp0p2/
23:31:28 ##forth <xentrac> I think there's a creditable argument in favor of RISC rather than MISC
23:31:31 ##forth <veltas> Yeah that's something I'm thinking of
23:31:41 ##forth <veltas> I mean, in discussion, I don't plan to do this
23:32:04 ##forth <veltas> I think RISC, MISC, whatever. Forth will drive any of it.
23:32:23 ##forth <xentrac> have you seen Chuck Thacker's "A Tiny Computer"? https://www.cl.cam.ac.uk/teaching/1112/ECAD+Arch/files/Thacker-A_Tiny_Computer-3.pdf
23:32:29 ##forth <xentrac> It's about a page and a half of Verilog.
23:32:57 ##forth <veltas> Yeah it's easy to make a bad simple CPU
23:33:06 ##forth <xentrac> I don't think it's bad, though.
23:33:53 ##forth <veltas> I don't really know what the point is, business wise
23:34:06 ##forth <veltas> Obviously it's someone's hobby, or educational, fair enough
23:35:01 ##forth <xentrac> Well, take a look at the link I posted above.
23:35:08 ##forth <veltas> Yeah I did
23:35:20 ##forth <veltas> What about it?
23:35:29 ##forth <xentrac> It's not someone's hobby; it's educational.
23:36:58 ##forth <veltas> I said "hobby, or educational"
23:37:28 ##forth <veltas> The author makes some bold claims in there and they're yet to be proven, good luck to his idea, meanwhile I'm not in CPU research or the CPU business
23:37:33 ##forth <veltas> Better men than me have tried
23:38:06 ##forth <xentrac> Oh, he was, though. He was one of the top computer architecture researchers in history: https://en.wikipedia.org/wiki/Charles_P._Thacker
23:38:36 ##forth <veltas> This was written in 2007
23:38:46 ##forth <xentrac> Yeah. he's dead now.
23:39:50 ##forth <veltas> Well it sounds like he was proposing these ideas for CPUs in FPGAs, I don't know what if any of that was applied to FPGAs
23:40:29 ##forth <xentrac> in the link I gave above, he described the results of applying it to FPGAs; he got it to run at 66 MHz in 200 LUTs on a Virtex.
23:41:08 ##forth <veltas> Sorry I don't find this that interesting, honestly
23:41:09 ##forth <xentrac> Historically it seems like a MISC design like the MuP21 takes less transistors to reach a given level of performance and convenience than a RISC design like the ARM2, but arguably the RISC approach is conceptually simpler, and it can run at a lower clock speed
23:41:56 ##forth <veltas> Is English a second language for you?
23:42:06 ##forth <xentrac> Haha, no, why?
23:42:27 ##forth <xentrac> I'm not sure if the same relation holds on an FPGA substrate.
23:42:29 ##forth <veltas> It feels like there is a communication issue here
23:42:44 ##forth <veltas> But could just be culture/dialect etc rather than language
23:43:17 ##forth <veltas> But the way I feel talking to you is quite similar to experiences I've had exclusively with people who are ESL
23:44:03 ##forth <xentrac> Yeah, I had that feeling to a very peculiar extent with our conversation the other day
23:44:13 ##forth <veltas> But you seem to like inventing conventions and all that so maybe that extends beyond intentional quirks
23:44:39 ##forth <xentrac> I was pretty puzzled at how hard it was for you to understand what I was saying
23:45:09 ##forth <xentrac> but I concluded that you were probably feeling defensive, which interfered with communication
23:45:25 ##forth <veltas> I assure you I wasn't
23:45:56 ##forth <xentrac> But I'm sure you've encountered the idea that there is an objective reality before, for example
23:46:00 ##forth <veltas> I was engaging in a confrontational way because sometimes that's good for people, but obviously failed
23:46:10 ##forth <veltas> It's a risk
23:46:29 ##forth <xentrac> even if you don't agree with it personally
23:46:43 ##forth <veltas> I do believe in an objective reality
23:49:27 ##forth <veltas> Well I was arguing in good faith, openly, and attempting to do so constructively
23:50:52 ##forth <veltas> I think re-reading I did misunderstand you a bit, but I think you are not as good at 'reading' people as you think maybe, because you have guessed my state quite a bit and been far off the mark
23:50:52 ##forth <veltas> I do apologise though if you think I was too much
23:51:49 ##forth <veltas> Well it's a skill to be able to understand what people misunderstand. Sometimes I pull it off, which is always good for working with customer support cases
23:51:52 ##forth <veltas> Not always