2023-03-26 13:14:35 Hello! So I got further on my little VM project, I now have fully working screen (can draw pixels) and controller input, I just lack some audio stuff and I am wondering wether to handle args from the cmdline in a special case to make it convenient to access them. 2023-03-26 13:15:19 Now, I would be very happy to get some feedback on my set of base words (which are like the assembly for my vm). 2023-03-26 13:16:16 I have no experience designing opcodes for a vm, I just started with the colorforth/f18a opcodes and then added a few like "/" "mod" "swap" etc... 2023-03-26 13:17:01 it's a stack machine, with a circular data stack of 8 slots + a tos, and the return stack is a normal stack of 256 values. 2023-03-26 13:17:21 here is the base words: https://git.blazebone.com/pochi/tree/pochi.c#n143 2023-03-26 13:44:46 what does this run on? 2023-03-26 13:45:10 blood, sweat, and tears, same as any other software 2023-03-26 13:48:47 tears of engineers, sweat of overworked logisticans, and the blood of the cheap labour assembling it 2023-03-26 13:55:41 x86 2023-03-26 13:55:57 (and some blood and tears too) 2023-03-26 13:56:30 I develop on OpenBSD, should compile on Linux too 2023-03-26 13:56:34 Hi nature! 2023-03-26 13:56:35 so, out dated legacy ISA then 2023-03-26 13:56:43 Happy weekend. 2023-03-26 13:56:44 and I plan to port it to wasm as well 2023-03-26 13:57:02 'sup KipIngram! 2023-03-26 13:57:02 RISC is where it is at! 2023-03-26 13:57:11 RISC-V that is 2023-03-26 13:58:31 It's writtend in C, if there is a C compiler and SDL2 on RISC-V it should be relatively easy to have it running there, I have around 5-8K loc with the full graphical environment. 2023-03-26 13:59:28 But yeah, basically just some feedback/guidance on the choice of base set of words would be much appreciated as I still consider myself quite the forth neophyte 2023-03-26 14:03:50 depends, lot of these seemto be to speed up things, no? 2023-03-26 14:07:36 the primitives I have got in my FCPU-16 thing are: NOP UM+ AND XOR 1LBR 1+ @ ! DUP DROP SWAP SKZ >R R> EXT/EFI EXIT 2023-03-26 14:08:26 but then again FCPU-16 is a conventional dual stack machine based with I/O in memory address space 2023-03-26 14:09:12 bbl 2023-03-26 14:12:11 yeah, I initially started with with 5 bits opcodes (the 32 from the F18a) but I thought that things like "/" and "swap" could quickly become quite slow and wouldn't really take advantage of the fact that it's a vm and not running on an actual f18. So I bumped the opcodes to 6 bits and found myself with lots of room to add opcodes that would be quite convenient/faster. But I am really not sure if I should still keep my opcodes count low 2023-03-26 14:12:11 (for simplicity) or just go ahead and make full use of 64 opcodes as well. 2023-03-26 14:12:45 wow that's low, and what is skz? 2023-03-26 14:13:20 Also any opinions on using a and b registers for the @ and ! words? 2023-03-26 14:14:10 sounds like it needs some A/B testing 2023-03-26 14:23:12 ACTION is back 2023-03-26 14:23:35 skz is SKip if Zero 2023-03-26 14:24:03 skips the next instruction cell 2023-03-26 14:46:09 ACTION sees https://pm.stackexchange.com/questions/34768/why-are-developers-expected-to-estimate-tasks-at-all and notes that these kind of “estimates” requests are really promise extraction 2023-03-26 14:47:08 promise extraction is kind of toxic behaviour that should never be allowed to go on 2023-03-26 14:47:52 didn't the Romans take hostages for when the celts revolted? 2023-03-26 14:56:24 nature, this type of consideration is actually a bit complicated. trying to make the opcodes as small as possible might not pay off at all and saving a handful of bytes doesn't do much on x86 2023-03-26 14:57:06 also, if you are developing the forth to develop another program, just add whatever words you need as you need them 2023-03-26 14:57:42 you will probably lose a lot of performance but don't worry too much about that. it probably doesn't matter for most things 2023-03-26 15:01:35 whipitup Y is very different from long term support of X 2023-03-26 15:31:25 Got it, thanks MrMobius 2023-03-26 18:55:01 Zarutian_iPad: I mostly agree. In some cases a lead engineer with good experience can make a good guess at the duration of a project, and that can help business peeps make rough plans. But it really shouldn't ever be looked upon as a guarantee or a requirement. It's impossible to know for sure how work will go until you do it. 2023-03-26 18:55:23 oh boy crunch time 2023-03-26 18:55:35 If management typically treats such things as requirements, then the dev team will learn to sandbag. 2023-03-26 18:55:45 So the bosses don't get the best prediction. 2023-03-26 18:56:15 And the bosses learn to counter that by demanding "less than the estimate." 2023-03-26 18:56:20 or you end up with what some have called "softare death marches" 2023-03-26 18:56:39 What should be a cooperative relationship becomes an adversarial game. 2023-03-26 18:58:03 It really does seem incredibly common for executives to operate as though they can simply will something into existence. 2023-03-26 19:02:00 stacked rankings probably didn't help with the adversarial thing 2023-03-26 20:33:29 Well, I think there's a lot wrong with all those "big company process" type things. 2023-03-26 20:33:51 My most satisfying days career wise were in a company with barely over a hundred employees. 2023-03-26 20:34:45 Felt like I really made a difference there. Not that someone else couldn't have done the job, but at that time it was me they looked to to do it, and I took that really seriously. 2023-03-26 20:35:26 Sometimes I think I'm probably lucky I'm still married - I overworked quite a lot those years. And my wife was quite young at the time, and hadn't had her own "high pressure work" experience yet. 2023-03-26 20:36:06 Then when she did later, it was a lot easier for me to be understanding about it, since I recognized exactly what she was going through. 2023-03-26 20:37:18 Sometimes I miss it, but then I think, "Do I REALLY want to do all that again?"