2022-11-28 03:25:01 And an Oric Atmos 2022-11-28 14:26:32 Well, I'm not going to add those standard style control structures back in after all, under any names. That's just me wanting 'to be able to do anything'; I haven't *needed8 them. What I am going to do, though, add a word :~ that will have the jump target effect of creating a new dictionary entry, without actually creating one. So I'll be able to do 2022-11-28 14:26:52 : foo blah blah :~ blah blah me ; 2022-11-28 14:27:06 And the back-jump will go back to the next to last blah. 2022-11-28 14:27:49 And I may add a word me; that compiles the (me) runtime but also terminates compilation. That solves that end of definition optimization I mentioned. 2022-11-28 14:28:07 And it looks a lot like "ending a definition." 2022-11-28 14:28:18 Be equivalent to me [ 2022-11-28 14:30:52 pretty sure I saw something like that in eforth 2022-11-28 14:31:33 Not unlikely - I never expect to think of anything no one else ever has. 2022-11-28 14:31:54 For a while when I was younger I entertained that idea, but... you outgrow it as humility sets in. :-) 2022-11-28 14:37:53 But anyway, yeah - ordinary tail optimization wouldn't operate on a definition that ends in me, because me is a primitive. 2022-11-28 14:38:03 So that slot would just get wasted every time. 2022-11-28 14:39:26 And unlike a tail call, the me compilation doesn't need to be modified. We just don't want the (;) 2022-11-28 15:09:26 That might make you think using normal tail calls, with the word's name would be the way to go, but having me opens the door to adding the conditional versions with a consistent naming convention. 2022-11-28 15:44:43 I'm still kind of torn over the floating point options on x86 platform. It really sounds like the old x87 instructions, while "there" aren't "the modern way." Modern way uses the SSE stuff. But the x87 stuff is more amenable to a stack language (if I just use the fpu stack to hold the floats). 2022-11-28 15:45:07 Maybe I need to see how ARM handles it and see if that helps me decide. Do whatever's best for portability. 2022-11-28 15:46:22 The neat thing about the SSE stuff is that it does up to four operations in parallel, so that could be real #'s, complex #'s, 3D vectors, or $D "four-vectors" a la relativity. 2022-11-28 15:47:01 And those would live in the ropes with pointers to them on stack. That does seem like something SSE is well-suitedd to. 2022-11-28 21:05:51 not totally on topic here, but i'm implementing a forth, so eh: 2022-11-28 21:06:19 anyone know a way to make nasm accept an arbitrary string as a label name? 2022-11-28 21:06:51 I wanna have my words be labelled by their names, but I'm not seeing a way to that doesn't involve e.g. writing my own name-mangling scheme in their macro-language 2022-11-28 21:32:02 I have some macros I use with nasm that I can share with you, and you can hack on them if you like. I've been pretty happy - they pretty much construct the initial dictionary for me, and let me enter something not too far from Forth for the words defined in Forth. Easily translatable, at least; I usually write them in Forth as comments and then directly translate them to nasm macro form. 2022-11-28 21:32:19 that'd be great, thanks! 2022-11-28 21:32:35 You might want a different header layout or something, but you can probably figure out how to diddle them. 2022-11-28 21:32:41 I'll pm them to you in a bit.