2022-04-13 00:06:48 I found it. It is the check where I ignore control characters. 2022-04-13 00:07:16 That is a signed comparison, and the bytes are getting loaded from the tib with the c@ word, which will sign extend. 2022-04-13 06:58:09 Sorry guys - that last three messages I entered last night were out of context - I thought I was in a private channel. 2022-04-13 06:58:13 Morning, BTW. 2022-04-13 07:15:07 Dyalog responded and the instructions they gave worked. My keyboard now produces the extended characters. Now the hard part - learning that layout. 2022-04-13 08:53:55 So what I was just saying up there when I thought I was in a different channel had to do with the fact that last night when I tried pasting some of those APL chars into my system, it just *completely* ignored them. 2022-04-13 08:54:40 huh 2022-04-13 08:54:45 But a month or two ago I modieifed it to ignore aa characters below the space character, except for null and escape. So that line feeds in vim text I pasted into a the blockfile would compile. 2022-04-13 08:55:11 Anyway, those APL chars are UTF-8 and are all bytes >127. When I use c@ to fetch them from the tib, they sign extend. 2022-04-13 08:55:23 So the signed comparison I was doing caused them to be ignored. 2022-04-13 08:55:49 I've got all the compare options, though - I just changed it to an unsigned compare and now it properly throws an unrecognized word error. 2022-04-13 09:08:45 KipIngram: nice bug! 2022-04-13 09:11:47 once i accidentally used signed chars in a short checksum loop.. it just summed the characters and stored the total.. i didn't notice the bug for 3 months, when i passed it a utf-8 filename :-p 2022-04-13 09:12:21 i changed it to sum unsigned chars :-) 2022-04-13 09:12:28 then it worked 2022-04-13 09:13:46 Yep. Really easy to see "falling into that pit." 2022-04-13 09:14:22 But hey, I could have used UTF8 characters of some exotic sort for comments, and then it would have been a "feature." :-) 2022-04-13 09:15:50 Also, when I enter one of those characters into my system, I get the character now, but the cursor jumps two spaces to the right. Because EXPECT doesn't grok multi-byte characters. It receives the bytes, but it allows a space on the screen for each one. 2022-04-13 09:17:13 But it still sends all three bytes back to the output, so the char shows up fine - just with a couple of blanks after it. If I then hit backspace it removes the last byte and then the char doesn't show up right anymore (obviously). 2022-04-13 09:22:19 I don't know yet how hard it will be to get things "sensible" for the necessary character set exansion. I think it'll be easy to recognize when the first byte of a UTF-8 code shows up, but my understanding is (at least for general unicode) the byte count can vary, so I'll have to see how bad it gets trying to know when I'm "done." 2022-04-13 09:22:27 KipIngram: i found an interesting code in the sectorlisp project on github, it is called `bestline` and it's like gnu readline... gets a line of input with editing and unicode aware 2022-04-13 09:22:40 I imagine there are plenty of little "algorithm sites" out there that talk about recognizers. 2022-04-13 09:22:58 https://github.com/jart/bestline/ 2022-04-13 09:23:17 Ok, but will it wait until after the "ok" to print the newline? 2022-04-13 09:23:24 Or do you get the newline when you hit Enter? 2022-04-13 09:23:37 That was the reason I had to tinker with the termios. 2022-04-13 09:23:38 ah i'd have to check that 2022-04-13 09:23:48 I do all of the line editing in EXPECT. 2022-04-13 09:24:05 And will be integrating command history into that, when it's called from QUERY. 2022-04-13 09:24:51 Basicaly the first thing I did bringing this system up was hack the keyboard interface so I could do "by character" processing. 2022-04-13 09:28:16 Anyway, that's one of the things I decided to do myself rather than via a library call not only because I wanted specific features the standard read doesn't provide, but also because when I port to bare metal I'll have to do it all anyway; so this way I have less porting work to do later. 2022-04-13 09:28:54 One of my initial goals was to be "syscalls only" - no libraries of any kind whatsoever. 2022-04-13 09:29:16 Apple started to make that hard; that's the main reason I bought this new Linux box. 2022-04-13 09:29:44 Apple changed their tool chain and I could see them pushing us toward using certain libraries they're fond of. 2022-04-13 09:29:56 My understanding is that they don't really want people making syscalls even. 2022-04-13 09:30:35 It's pretty hard to chase down online info on Apple syscalls even. 2022-04-13 09:30:45 It's "there," but it's certainly not "obvious." 2022-04-13 19:15:40 Ok, so I think blending Forth and APL might pose some difficulties. 2022-04-13 19:16:08 One notion that is built deep into APL is that functions like + - and so on can take either two arguments or one. 2022-04-13 19:16:33 We're used to this with the - sign. We might say 4-8 or we might just say -8. 2022-04-13 19:16:55 As far as I can tell APL processes signs from right to left. 2022-04-13 19:17:00 So, for example, 2022-04-13 19:17:10 1-7-3 2022-04-13 19:17:13 ¯3 2022-04-13 19:17:33 The rightmost - sees operands 7 and 3, so it comes up with 4, and we have -1-4. 2022-04-13 19:17:45 then the rightmost remaining - sees 1 and 4, so we have -3. 2022-04-13 19:18:24 And: 2022-04-13 19:18:28 -1-7-3 2022-04-13 19:18:31 3 2022-04-13 19:18:44 That just has the additional - on the far left, which negates the -3. 2022-04-13 19:19:13 But Forth just doesn't "go there" on "operands on both sides." 2022-04-13 19:19:22 That just doesn't happen, by definition. 2022-04-13 19:19:49 For simple arithmetic it may not matter - we can do arithmetic just fine. 2022-04-13 19:20:04 But this kind of dual use applies a a whole pile of APL functions. 2022-04-13 19:20:18 Oh, and it calls those things functions - they have one or two arguments. 2022-04-13 19:20:29 It also uses the term "operators," but those turn a function into another function. 2022-04-13 19:20:49 I ran across this: 2022-04-13 19:20:52 https://groups.google.com/g/comp.lang.forth/c/x7cmrXzzhK0 2022-04-13 19:32:57 there's a forth-apl merger 2022-04-13 19:33:17 CoSy 2022-04-13 19:43:18 I looked at that a little the other day, but not enough to catch on. I'll take another look. 2022-04-13 19:46:49 Heh. cosy.com - there's someone with definite opinions. :-) 2022-04-13 19:48:12 yuuup 2022-04-13 19:48:56 I can't actually find a "tutorial" or anything there. Really strange website. 2022-04-13 19:49:09 its really hard to navigate 2022-04-13 19:49:11 i found one 2022-04-13 19:49:11 once 2022-04-13 19:51:50 Yeah, I'm gradually finding some closer things. 2022-04-13 20:52:55 I probably asked this before. Does anyone know of a shell coded in forth? 2022-04-13 21:02:51 you can just use forth as the shell 2022-04-13 21:18:27 yes, but, process control and pipe's? 2022-04-13 21:18:50 multiple processes.. 2022-04-13 22:44:34 That very thing is on my "fuzzy project list." I.e., maybe 30% chance I ever get around to it. 2022-04-13 22:45:08 The syscalls are all there for the things you mentioned - you'd mostly need a nice interaction with them. 2022-04-13 22:45:25 That is, the shell doesn't actually DO the process control, right?