2025-03-05 09:54:31 What words should I focus on writing first? 2025-03-05 09:55:42 I've got a not-quite-forth seemingly working, not super happy with it but I've tuned the code way too much instead of solving the problem I have. 2025-03-05 09:56:05 Alternatively, I could just focus on doing some simple programming tasks in it and see what comes up. 2025-03-05 11:44:17 veltas: condolences 2025-03-05 11:44:56 user51: my suggestion would be to write a game 2025-03-05 11:45:43 AoC is a fine alternative if you like solving puzzles more 2025-03-05 14:07:22 user51 you can just try to make some program and add whatever you need on the fly 2025-03-05 14:07:49 that's what I usually do 2025-03-05 14:08:06 then I go to a corner to cry because using my lang is hard 2025-03-05 14:09:13 at the end it is your lang so you can do whatever you want, which is the cool part 2025-03-05 14:09:32 also if you are curious on how to add some programming concept you can just do it 2025-03-05 14:09:50 like if you want to add objects, or some sort of metaprogramming, etc 2025-03-05 14:10:52 that said, forr a forth like I would try to make words that mess with the dictionary and memory 2025-03-05 14:11:12 making a simple todo list might be a good start 2025-03-05 14:18:34 I guess in your case I would start by having ':' then stack operators, create does>, ." s" dump move fill erase variable constant etc 2025-03-05 14:19:04 debugging words would be helpful, dump being one of them 2025-03-05 14:19:50 I'm going to add a word named 'debug' that will take a list and will evaluate every element one by one, printing the stack and additional info 2025-03-05 14:20:04 you could make something similar 2025-03-05 14:20:45 I have a cool word named 'check-stack' that takes a number and checks if the stack has that number of elements 2025-03-05 14:21:54 but I have no more ideas for words that help to debug 2025-03-05 14:23:48 F83 has a single-stepping debugger 2025-03-05 14:24:17 I have also decided to not waste time documenting it and not publishing since I loose a lot ot time trying to explain everything to anyone and the end 2025-03-05 14:24:40 when I have to focus on making it usable for me 2025-03-05 14:25:07 at the end* 2025-03-05 14:26:58 oh I already had the debug word xd 2025-03-05 14:55:51 update on my bot project: the vm now starts, runs a per-user session with the provided input, saves the ram & stacks, then prints a stack dump. Each run resumes the ram stacks from the prior run, so it has persistence w/o needing any long running processes. 2025-03-05 14:57:31 I'll be working on finishing the per-user block storage tonight or tomorrow, then will get this documented & active for general testing 2025-03-05 14:57:44 crc: cool! 2025-03-05 15:06:09 ForthBot: 1 2 3 4 5 DEPTH ROLL .S 2025-03-05 15:06:09 Stack: 1 2 3 4 5 2025-03-05 15:06:24 ForthBot: FLUSH 2025-03-05 15:06:30 ForthBot: 1 2 3 4 5 DEPTH ROLL .S 2025-03-05 15:06:30 Stack: 2 3 4 5 1 2025-03-05 15:12:54 ForthBot: 1 2 3 4 5 DEPTH PICK .S 2025-03-05 15:12:54 Error: PICK: Stack underflow or invalid index 2025-03-05 15:16:04 ForthBot: FLUSH 1 2 3 4 5 DEPTH 1 - PICK .S 2025-03-05 15:16:04 Stack: 1 2 3 4 5 1 2025-03-05 15:47:23 I guess I will add a word to check that the elements on the stack are what I expect 2025-03-05 15:48:34 like: 1 2 (1 2) expect-stack 2025-03-05 15:50:53 and I can make it check only the last elements and combine it with check-stack 2025-03-05 15:59:19 what debugging words did you add to your own forths that I could steal? 2025-03-05 15:59:45 or how to give more control over the stack 2025-03-05 16:00:05 I have no problems for operating with the stack, but I have problems to control it 2025-03-05 16:00:48 it is so easy for the stack to start having garbage or missing elements at different points of execution 2025-03-05 16:02:37 that's why I added the debug and check-stack word and I'm going to add expect-stack and : prove-stack dup >r expect-stack r> length expect-stack ; 2025-03-05 16:03:26 although I have no r> >r, but temporary variables that will be destroyed once the colon word ends execution 2025-03-05 16:18:52 vms14: the main things I use are just .s and a memory dump word 2025-03-05 16:20:01 crc what advice do you have on managing complexity in a concat lang more than factor, factor, factor? 2025-03-05 16:20:41 Retro has a debugger with single stepper, execution tracing, and disassembly/decompilation, but I only ever use it when working on compiler extensions 2025-03-05 16:21:37 vms14: for me, practice over the years, and building up useful abstractions 2025-03-05 20:49:42 Any videos of F86 in action? I can't find any on YT 2025-03-05 20:56:10 F86? 2025-03-05 20:56:55 xentrac: forth86 2025-03-05 20:57:02 never heard of it 2025-03-05 20:58:36 Maybe it was 83? 2025-03-05 21:00:09 crc now that I think of, I have something similar.to your sigils, although I name them special chars 2025-03-05 21:00:49 and just make return them as a whole word without needing spaces 2025-03-05 21:01:26 '(' and ')' are special so I can (oh) 2025-03-05 21:01:36 but '(' is just a defined word 2025-03-05 21:02:40 for example this creates comments with < and > like 2025-03-05 21:02:52 : < source '> skip ; '< special 2025-03-05 21:03:23 source is the source code file handle being pushed on the stack, and skip just skips until it finds the > 2025-03-05 21:03:43 '< special would be similar in your lang to make it a sigil 2025-03-05 21:04:09 well also < has to be immediate 2025-03-05 21:04:51 to work in : and ( and any reader word that is aware of immediate words 2025-03-05 21:05:40 not sure about using but I'm already using a lot of symbols 2025-03-05 21:05:42 F83 and Forth-83 are two different things; Forth-83 is a standard, and F83 is a model implementation of it 2025-03-05 21:05:59 I have F83 here running in Dosbox 2025-03-05 21:16:56 vms14: you might want your block comment word to count nesting 2025-03-05 21:17:27 in jonesforth `(` counts additional ( and ) and only ends the comment on the matching ) 2025-03-05 21:49:20 maybe in the future I might want that feature 2025-03-05 21:49:41 but for now I do not have a reason 2025-03-05 21:49:50 although I do not really like <> to be comments 2025-03-05 21:50:51 I suppose I should change one of the ones I use already 2025-03-05 21:51:42 maybe [ ] 2025-03-05 21:52:35 Lua, Ada, and VHDL use -- to end of line 2025-03-05 21:53:16 OCaml uses (* *) which I think it got from Pascal 2025-03-05 21:53:22 (and they do nest) 2025-03-05 21:53:49 Pascal uses { } as well, but (* *) lets you do Pascal in character sets that lack { } 2025-03-05 21:54:56 traditional block-structured Forths have "shadow blocks" with commentary on corresponding code blocks, which are conventionally printed out on the right side of a page 2025-03-05 21:55:04 I guess I will forget about multiline comments for now and just use --- for line comments 2025-03-05 21:55:18 so it's something like the first 64 columns are code and the next 64 columns are comments 2025-03-05 21:55:36 they will require a space between, but I like that also 2025-03-05 21:56:19 yeah, normally there were more columns devoted to line numbers and separators 2025-03-05 21:56:27 but the main use for a comment in my lang would be to disable code 2025-03-05 21:56:42 ColorForth uses a different color for comments 2025-03-05 21:56:54 you could also use a different font 2025-03-05 21:57:02 I can make a word that ignores stuff at any moment