2023-03-12 08:20:34 crc: You don't have IF THEN etc.? 2023-03-12 08:20:50 That's not a criticism - I don't have them myself. Just curious. 2023-03-12 08:22:18 My alternative words are not immediate, but they are "different" from most words in that they require an offset back to the start of the definition be compiled after them. To "track" that I have a bit in the header, and the compiler checks for that. 2023-03-12 08:24:39 But I have a whole bunch of those words, for different types of conditionals, and I really just didn't want to have to implement all those in the usual way with immediate and run-time partners. 2023-03-12 08:35:50 In that FPGA based processor I've been working on that special handling won't be required - the hardware will "remember" the appropriate address using an extended return stack. It can do that in parallel so there's no time penalty. 2023-03-12 08:36:05 So that extra header bit would go away. 2023-03-12 08:37:17 I could do the same thing in a regular software system, but it would have a time cost. 2023-03-12 09:05:55 no. my conditionals take pointers to be called and a flag. 2023-03-12 09:08:08 Ah - you pass the target in on the stack at runtime? 2023-03-12 09:08:12 Interesting. 2023-03-12 09:08:29 yes 2023-03-12 09:08:56 Do you have a word that "captures" a pointer to the current location to generate those values? 2023-03-12 09:09:19 Or are they "labeled" in some way? 2023-03-12 09:09:29 So you can refer to them by name? 2023-03-12 09:11:03 I can get pointers using an & sigil (similar to ' or ['] ), or by [ ] which create inline anonymous functions 2023-03-12 09:11:14 In my most up to date nasm implementation the only targets I can jump to are "start of the latest definition." 2023-03-12 09:11:39 Oh, yeah - ok. I see how that dovetails nicely with those anonymous functions. 2023-03-12 09:12:39 In my system : is also immediate, so I can stick ; in anywhere and it will create a header. That also resets the "start of latest definition" point, so I can jump back to the middle of a code section if I want to. 2023-03-12 09:13:05 In the FPGA version I have an instruction :. which updates that extra item on the return stack, so that it becomes the new jumpback target. 2023-03-12 09:13:16 That lets me do it without adding anything to the dictionary. 2023-03-12 09:15:04 Once I've done either of those things, though, the original start of definition point is no longer accessible. 2023-03-12 09:15:35 There's always only one place a jump can go to, and it moves monotonically forward. 2023-03-12 09:16:10 I have no ability to nest these structures at one call level. 2023-03-12 15:43:12 this is how I'm trying to approach the transpiler thing 2023-03-12 15:43:13 https://perl.bot/p/7iuxfx 2023-03-12 15:43:19 it's text, not code 2023-03-12 15:43:40 mainly I wrote it to see if it helps me to get things a bit clearer, but meh 2023-03-12 15:43:53 what I don't have clear is what comes after that 2023-03-12 15:44:42 I'll call it write only lang for now, as it's what suits the language better xD 2023-03-12 19:00:21 That all looks... somewhat familiar. ;-) 2023-03-12 19:00:41 I just skimmed it, but you're certainly passably describing fair bits of how Forth works. 2023-03-12 21:03:35 Here's something kind of interesting: 2023-03-12 21:03:37 https://en.wikipedia.org/wiki/Soliton_%28optics%29 2023-03-12 21:03:45 Solitons are weirdly cool. 2023-03-12 21:04:08 In some ways they seem almost like magic, except they're not. 2023-03-12 21:05:03 Or at least that's how they make me feel. Another tech thing that strikes me that way is sigma delta modulation. If you work through the details, it's 100% legit, but it FEELS like cheating somehow.