2022-11-05 11:11:03 Re: the note in one of those to Elizabeth Rather, I agree with the contention that embedded work is Forth's domain of excellence. I won't say it's "not good" for other things - it's more that it's just NATURALLY SUPERB for embedded, so it's easy to make it shine there. I'm sure it could shine in other arenas too, but work needs to be done. 2022-11-05 11:11:28 Also, we set the world up to "not accept Forth" by keeping postfix notation something that's entirely foreign to people for the most part. 2022-11-05 11:12:26 I deliberately embraced it in college by using an HP scientific calculator, so I was "primed to grok Forth" when I discovered it. But if I had a nickle for every person that picked my calculator up and freaked out because "it didn't work right," I'd be a wealthy man. 2022-11-05 11:12:38 For most people postfix is an opaque wall. 2022-11-05 11:12:53 And let's face it - if you can't think postfix, then Forth is fairly useless to you. 2022-11-05 11:15:20 I just happen to put really high value on embedded methods, and I voluntarily climbed that postfix wall in college, so it seems obvious to me that Forth is something special. But take either one of those things away, and maybe things would have been different. Most youngsters these days are all about things like web programming, cloud stuff, big data. Most folks don't "just tinker" the way a lot of people 2022-11-05 11:15:22 did when I was starting out. 2022-11-05 11:18:56 I constantly have to remind myself that I appear to be "weird" just by enjoying learning. Most people DO NOT want to have to learn new things. The reason GUI interfaces are so popular is because chances are, if it's done halfway well, a person can sit down cold in front of an application and fumble there way to some minor accomplishments just by exploring the menus. They get to "do something" and they 2022-11-05 11:18:58 didn't have to subject themseles to any training. 2022-11-05 11:20:22 Probably also explains the pervasivness of "sound bite politics" in our culture. Don't bother studying the issues - just live life and keep your ears open, and you'll pick up some buzz phrases you can drop here and there when you want to sound sage and wise. 2022-11-05 11:20:51 Apparently familiarity with the latest sound bites constitutes being "well informed." :-| 2022-11-05 11:41:56 is postfix harder to learn than infix or prefix? 2022-11-05 11:41:59 just different? 2022-11-05 11:42:34 If you want to "sell" it, you need 1) A good ecosystem of libs; 2) Probably showing off some easy parallellism 2022-11-05 11:43:11 I'm really interested in a "typescript" for forth 2022-11-05 11:44:43 You need type-safety and memory safety while being compatible with vanilla forth 2022-11-05 11:46:37 I think it's really hard to see people try forth and not like it and assume you know why 2022-11-05 11:48:20 the idea that it doesn't have easy libraries and GUIs is a popular theory but then you have to wonder why vanilla C was so much more popular than forth in the 80s 2022-11-05 11:49:02 Might be factors outside the lang itself, like "killer app" UNIX 2022-11-05 11:49:04 some people criticize the readability and speed loss. I think you would have to ask people who tried it and dont like it to really know why 2022-11-05 11:49:14 Good point 2022-11-05 11:50:25 haskell but postfix would be cool 2022-11-05 11:51:41 That's just factor? But it's not compatible, so just another splitting of the community 2022-11-05 11:52:00 compatible with forth* 2022-11-05 11:53:59 Me and another guy did a simple embedded forth in ocaml, using its syntax extension feature 2022-11-05 11:54:09 So you could write [%forth 1 2 plus dot] 2022-11-05 11:54:23 But [%forth 1 plus dot] is a type-error, because stack state is wrong 2022-11-05 11:55:20 But you'd need to make a lexer to allow proper forth words like `:` 2022-11-05 11:59:10 wait, embedded as in embedded in another language? I thought embedded electronics was what KipIngram meant 2022-11-05 12:00:30 Yes, sorry, I mean embedded DSL, Forth inside OCaml 2022-11-05 12:00:52 KipIngram probably did not :) 2022-11-05 12:05:01 Just an example of how to make a superset of a lang, like typescript is, although that one is a transpiler 2022-11-05 12:22:55 Hey, how many times do you have to tickle an octopus to make it laugh? 2022-11-05 12:23:48 42 2022-11-05 12:24:04 Heh. Well, that answer can never be argued with... 2022-11-05 12:24:16 But no - the answer is ten. Ten tickles. 2022-11-05 12:24:19 640 seemed too high 2022-11-05 12:24:38 Except an octopus only has eight tentacles, so the first two are test tickles. 2022-11-05 12:28:06 wait why is TCL involved 2022-11-05 14:26:43 :-) 2022-11-05 14:28:35 also, programmers writing tests? please. 2022-11-05 14:28:44 next thing you'll be claiming they write documentation 2022-11-05 14:29:26 isnt that what technical writers with cheap liberal aets degrees are for? 2022-11-05 14:30:39 arts* 2022-11-05 14:31:56 A good technical writer is a nice asset to have, because I sure don't like doing that kind of work. 2022-11-05 14:32:41 I had a really good one back in the day; I told her when I hired her that she could have the job if she felt comfortable going to the engineers and extracting the information she needed without having it be onerous to anyone. 2022-11-05 14:32:51 She said yes, I said ok, it worked out great. 2022-11-05 14:33:08 Lost her eventually because she wanted to do some of her work from home and our EVP wouldn't hear of it. 2022-11-05 14:33:14 nobody expects the documentation inquisition! 2022-11-05 14:33:15 So she found a new job. 2022-11-05 14:33:45 Yeah, I don't know exactly how she pulled that off, but the docs were good and no one complained. 2022-11-05 14:33:54 I felt lucky. 2022-11-05 14:34:09 the trick is to have the dungeon and torture room out of hearing range 2022-11-05 14:34:15 She was... "colorful." :-) 2022-11-05 14:43:46 So, got a high hope for events at the office this week. I run performance tests on our solid state drives. These drives are really designed to go into boxes we also make, and they don't connect in normal computers quite the way standard SSDs do. 2022-11-05 14:44:00 The provide two connections, so they can be used in high-availability systems. 2022-11-05 14:44:21 I historically have used standard Linux boxes to test them, which involves this hoaky y-cable arrangement. 2022-11-05 14:44:33 Generation 4 is just coming out now, and those aren't working properly in my test stands. 2022-11-05 14:44:46 Maybe signal integrity; may be something about the power architecture. 2022-11-05 14:45:06 Anyway, this week I'm going to try installing Linux on the two canisters of a standard product box. 2022-11-05 14:45:22 So that will be customer grade signal integrity, customer grade thermal management, etc. 2022-11-05 14:45:31 Hardware-wise it "has to work." 2022-11-05 14:45:51 But - I don't know for sure if any common Linux distro will deal with all the custom hardware in that box. 2022-11-05 14:45:59 So, this week's goal is to find out. 2022-11-05 14:46:18 I'm preparing installation media now for three different distros. 2022-11-05 14:46:27 not much time left on the week in some systems 2022-11-05 14:46:38 Oh, next week. Tuesday. 2022-11-05 14:47:00 If this works, though, it will streamline the hell out of my test setup. 2022-11-05 14:52:16 The thing holds 12 drives, which would let me have all four capacities of the last three generations installed at any given time. 2022-11-05 14:53:01 The bit of work I'll have to do is set up to have each "test" running from two hosts (the two canisters) instead of one - so that will require a touch of synchronization between the two. 2022-11-05 15:14:20 https://www.youtube.com/watch?v=uZMICS6cNCU 2022-11-05 15:14:24 FORTH2020 12-12 Ulrich Hoffmann #4Thoughts on Literate Forth Programming 2022-11-05 15:14:35 How's that bot going along, btw...?? 2022-11-05 19:44:32 c@ 2022-11-05 19:44:33 Fetch and zero extend the character at memory address addr. 2022-11-05 19:44:38 What's zero-extend? o0 2022-11-05 19:44:52 > 2022-11-05 19:44:54 ? 2022-11-05 19:49:14 ? 2022-11-05 19:51:30 Zero-extend just means that the higher-order "unused" bits in the int are zeroes. 2022-11-05 19:53:24 yes but dont thik thers a specific zero extend primitive 2022-11-05 19:54:09 Might be dialectal 2022-11-05 19:54:14 https://www.mpeforth.com/arena/ProgramForth.pdf 2022-11-05 19:54:15 From this one 2022-11-05 19:54:50 Well, seems to be in gforth 2022-11-05 20:02:40 awww, no init-multi in gforth 2022-11-05 20:10:21 But some pthread thingies 2022-11-05 20:32:26 Zero extend - is that when you're wanting to grow some smaller word into a larger word? Because unless the size is changing the unused bits would already be zero, right? 2022-11-05 20:33:36 Oh, I see now. 2022-11-05 20:34:35 Looks to me like c@ in gforth already zero-extends. 2022-11-05 20:34:49 I tried it with a >127 byte and it kept the higher order stuff zero. 2022-11-05 20:38:34 C can do some pretty wacky extensions 2022-11-05 20:39:45 Hmmm. Looks like my c@ sign extends. 2022-11-05 20:40:06 Which actually seems more appropriate to me, but I haven't thought much about it. 2022-11-05 20:40:24 Usually unsigned words get a u prefix. 2022-11-05 20:41:39 w@ also does not sign extend in gforth and does in mine. 2022-11-05 20:41:50 And that seems even more to me like it should sign extend. 2022-11-05 20:43:29 Ah, maybe not is better. 2022-11-05 20:44:29 I imagine the gforth guys actually discussed it, whereas I just copied my @ code with suitable memory width modifiers. 2022-11-05 20:45:15 But what I did was the obvious and direct thing to do - I wonder if gforth has extra code to mask it. Can you do it either way in assembly? 2022-11-05 20:45:39 It's just a mov instruction. 2022-11-05 21:15:02 Oh, ok. It looks like there are movsx and movzx instructions in x86 assembly. 2022-11-05 21:15:17 I think I knew about movsx. 2022-11-05 22:15:09 Oh, ok - of course I do. I used it. That's how all my shorter @ words work. So, why is there both movzx and mov? Are those synonyms? 2022-11-05 22:17:09 ... turn to page 8,367 of the Intel(R) ASM guide and ... 2022-11-05 22:17:31 long time ago, but maybe zero extends value, so moving a byte to a word? 2022-11-05 22:20:06 :-) Page 8,367. That's already insane sounding. But yeah - I've seen that thing. 2022-11-05 22:21:01 intel ain't loading in w3m. maybe someone else has the PDF 2022-11-05 22:21:15 or PDFs because there be like a series and lots of pages 2022-11-05 22:22:15 movzx is useful when you want to load into a larger register 2022-11-05 22:23:34 ie load a byte into eax 2022-11-05 22:24:19 You could load the byte into al instead then mask out bits 31-8 of eax to get the same effect 2022-11-05 22:24:33 re mov vs movzx 2022-11-05 22:24:50 mov itself won't let you load a byte into eax 2022-11-05 22:35:01 Oh, right - mov won't work on mismatched sizes, will it? 2022-11-05 22:35:10 I seem to remember that now. 2022-11-05 22:35:25 Ok, having all three - mov, movsx, movzx, makes sense then. 2022-11-05 22:35:44 It's been a while since I wrote those primitives.