2022-09-03 14:17:48 https://www.youtube.com/watch?v=0gjdUPmwBbs :0 2022-09-03 14:38:43 https://www.reddit.com/r/Forth/comments/x51ias/join_to_the_forth_irc_libera_channel/ 2022-09-03 14:38:55 I try to lure people to this irc channel by using reddit 2022-09-03 14:38:56 xD 2022-09-03 14:46:07 https://www.xilinx.com/products/som/kria/kr260-robotics-starter-kit.html 2022-09-03 14:47:12 are you going to buy it KipIngram? 2022-09-03 14:47:19 it's quite expensive :/ 2022-09-03 14:48:13 less than a Cyberdine personal digital assistant 2022-09-03 16:09:31 vms14: I posted a reply with the URL for libera's web chat and a link to the channel logs 2022-09-03 16:24:49 ACTION upvotes 2022-09-03 16:25:14 ty crc didn't remember there was a log ( I saw it some time ago ) 2022-09-03 16:25:45 btw I've made the interpreter from scratch again, now words can read from source code 2022-09-03 16:26:02 so no shitty regex like the implementation I gave you :D 2022-09-03 16:27:03 I'm wondering if I should add immediate words, I have a similar thing and would be easier to just have immediate words 2022-09-03 16:27:16 for example [ is a word that builds lists until it finds ] 2022-09-03 16:27:38 but if it finds another [ or { or : or ( will execute them 2022-09-03 16:27:47 and { does the same, so does : 2022-09-03 16:27:55 ( are comments ) 2022-09-03 16:28:17 being them immediate words would be cleaner code 2022-09-03 16:49:18 having immediate words is useful 2022-09-03 16:50:36 That said, in my current system I only define three immediate words: ; [ ] 2022-09-03 16:52:02 yeah, that's also the reason I didn't care about immediate words, it's likely I won't use them 2022-09-03 16:52:20 but this way the user could create more immediate words and [ would be able to use them 2022-09-03 16:53:08 I just need to make two kinds of immediate words, the ones that only execute, and the ones that return an element 2022-09-03 16:53:29 for example ( is comments, so when executed you don't need a return value 2022-09-03 16:53:41 but [ builds a list and pushes it on the stack 2022-09-03 16:54:06 I can have a hash where immediate words are the keys 2022-09-03 16:54:10 My bigger system has ‘word classes’, which define the behavior for different groups of words. 2022-09-03 16:54:19 and the value would be the number of elements they return 2022-09-03 16:54:54 this way the user is not limited to return one or zero elements 2022-09-03 16:55:25 and [ does not have to care, just push them to the list is building 2022-09-03 16:56:02 I have some work to do I guess, but I like what I have for now 2022-09-03 16:56:06 The class handlers are just normal words; they get the address of the word to handle and then do something with it. So a ‘data’ class might look like `:class:data compiling? [ compile:lit ] if ;`, then I can make a constant by having a header with the address field being the value and the class being `class:data`. 2022-09-03 16:58:24 I have no memory allocation or address :D 2022-09-03 16:58:39 but look at this almost oneliner to read from a socket until eof 2022-09-03 16:58:43 '127.0.0.1 2424 client.socket 'oh def 2022-09-03 16:58:57 defines a socket and stores it as the word 'oh' 2022-09-03 16:59:07 [ oh read.line ] [ i .cr ] while 2022-09-03 16:59:18 will print every line until eof from that socket 2022-09-03 16:59:49 the server is nc -l 2424 xD 2022-09-03 17:00:10 but I have to add more options to create sockets, for now there's only this word 2022-09-03 17:00:18 you can write to it too btw 2022-09-03 17:00:36 crc did you implement 'J' in loops? 2022-09-03 17:00:45 I only have 'I' 2022-09-03 17:03:03 I have I J K for loops using `indexed-times` 2022-09-03 17:06:15 :0 2022-09-03 17:06:42 I force the user to save 'I' before nesting loops xD 2022-09-03 17:12:47 Is your I accessible from words outside the loop body? 2022-09-03 17:18:59 yes 2022-09-03 17:19:10 which is a bug now that I realize 2022-09-03 17:19:12 xD 2022-09-03 17:19:25 but I'll say it's a feature :D 2022-09-03 17:19:41 maybe you want to know the last value of I once the loop ends 2022-09-03 17:20:29 I have let and bind that make some kind of scope, but it's scope based on time more than a lexical scope 2022-09-03 17:20:57 1 2 3 [ one two three ] let [ one . two . three . ] 2022-09-03 17:21:06 I like having it accessible outside for factoring purposes 2022-09-03 17:21:27 they'll get removed or the previous value the word had will be restored 2022-09-03 17:22:08 I want to add some kind of scope for creating accumulators, let and bind won't work 2022-09-03 17:22:47 oh that example was bind not let 2022-09-03 17:23:17 bind takes elements from the stack and defines those words in the order I've shown 2022-09-03 17:23:42 let just "marks" words and executes code, then restores those words or removes them if they didn't exist 2022-09-03 17:23:57 [ oh ] let [ : oh 1 2 3 ; oh .cr ] 2022-09-03 17:24:08 oh won't exist outside the code of let 2022-09-03 17:24:34 but does not work for creating closures or alike, so I can't have accumulators yet 2022-09-03 17:25:32 I'm waiting to have a real need for closures before implementing them 2022-09-03 18:33:04 I'm trying to document the language, but document takes a lot of time :/ 2022-09-03 18:34:02 https://termbin.com/6v05a is almost 400 lines and I've only documented like 10 words xD 2022-09-03 18:34:08 programmers often skip that part, for some reason 2022-09-03 18:34:37 thrig: I think documentation is the most important "feature" of a language/library/framework/software in general 2022-09-03 18:35:30 if you have two libraries to choose, one that sucks but has nice documentation, and another that is good, but you have to read the source code to understand how it works, what would you choose? 2022-09-03 18:35:40 I think most people would choose the one that sucks 2022-09-03 18:36:27 Documentation is easily the most time consuming part, but I find it worthwhile 2022-09-03 18:37:14 Documentation should be documenting the why, not the what or how 2022-09-03 18:37:52 unless the "what" is "What kind of idiot would write this thing like this?" 2022-09-03 18:37:58 xD 2022-09-03 18:38:09 in my case I'm making some sort of tutorial 2022-09-03 18:38:12 hello, incidentally 2022-09-03 18:38:21 hi gordonjcp did you join from reddit? 2022-09-03 18:38:23 I'd kind of forgotten about this channel, I used to be in here a lot 2022-09-03 18:38:27 vms14: reddit reminded me 2022-09-03 18:38:29 Documenting the ‘how’ can make sense if the overall logic is difficult to follow from the code. 2022-09-03 18:38:30 :D 2022-09-03 18:39:27 I’ve also been working on documentation; in my case, a dictionary for my new system 2022-09-03 18:39:32 vms14: I was very active in here about 15 years ago when I was writing a Forth for my PDP11, and about ten years ago when I was porting a Forth across to the Ensoniq Mirage 2022-09-03 18:39:49 which is still probably one of the most objectively nerdy projects on github 2022-09-03 18:39:55 how is your forth relationship today? 2022-09-03 18:40:11 I'm making a concatenative lang, but not a real forth :/ 2022-09-03 18:40:14 I use Forth quite a bit, mostly on small embedded systems 2022-09-03 18:40:35 I'd like to build a Jupiter Ace clone 2022-09-03 18:40:40 I'd like to have a forth where you can play with sockets, db, gui stuff, etc 2022-09-03 18:40:43 I have an actual Jupiter Ace motherboard 2022-09-03 18:41:13 gforth can do this as it has some awesome ffi to C, but I'm not able to make the ffi part work in netbsd 2022-09-03 18:41:26 so I'm rolling my own abomination instead :D 2022-09-03 18:43:32 gordonjcp: must be real fun 2022-09-03 18:43:40 you can even make a game I guess 2022-09-03 18:43:56 there was a JA clone but they stopped selling them 2022-09-03 18:46:17 I've seen https://www.youtube.com/watch?v=0gjdUPmwBbs from reddit 2022-09-03 18:46:34 the HP 71B FORTH/Assembler ROM from 1984 2022-09-03 18:47:11 it would be nice to have some handheld devices running forth 2022-09-03 18:47:27 for a forthwright wouldn't be hard to roll one anyways 2022-09-03 18:47:58 must be a very rewarding project, I have some devotion for umpcs and alike 2022-09-03 18:49:17 If some day I'll end getting hardware to make a handheld device I'll try to learn assembly and make a forth for it 2022-09-03 18:49:43 just needs a chip, keyboard and screen 2022-09-03 18:52:02 I’ve been (slowly) working towards this with one of my kids. We have built a few (rough, flimsy) prototypes; we’ll hopefully have something actually durable enough to use later this year. 2022-09-03 18:54:35 crc_: what will exactly be? 2022-09-03 18:54:51 like a minicomputer, a game boy-like device? 2022-09-03 18:55:37 are you going to make your children be forthwrights? :0 2022-09-03 18:57:14 I’m planning to build two; one is similar in form factor to the Cambridge Z88; the other is going to be probably closer in form factor to a game boy (but with a keyboard) 2022-09-03 18:57:39 my second oldest son is helping in retroforth’s development 2022-09-03 18:58:15 :0 2022-09-03 18:58:23 adopt me 2022-09-03 18:58:33 I want the game boy one 2022-09-03 18:58:57 :) 2022-09-03 18:59:07 wow, how do you feel knowing your son is helping you at coding? 2022-09-03 18:59:31 so he likes forth and even knows C 2022-09-03 18:59:37 quite good. I like that he’s interested and learning 2022-09-03 19:00:14 he does python, c, forth, and a little assembly (for our vm designs) 2022-09-03 19:00:30 how old is? 2022-09-03 19:00:36 17 2022-09-03 19:00:55 he must end being a very good developer 2022-09-03 19:01:41 hahaha I wonder when will he surpass you 2022-09-03 19:02:23 I think it will eventually do, that moment would be like a feeling that you've made a good job 2022-09-03 19:02:29 he* 2022-09-03 19:03:51 hard to say. in some aspects, he’s better than me. (e.g., anything involving graphics or sound; I’m firmly a terminal guy, with very minimal skills in the visual or audio realms) 2022-09-03 19:04:54 it’s likely, if he avoids developing rsi issues that slow him down, that’ll he’ll be beyond me in most ways within a few years 2022-09-03 19:05:33 ACTION doesn’t really care. as long as he’s enjoying what he does, it’s all good :) 2022-09-03 19:06:08 crc_: give him a proper keyboard that prevents that as soon as possible 2022-09-03 19:07:24 he uses an ibm model m and an ergodox currently 2022-09-03 19:10:11 A keyboard for the pros. https://ergodox-ez.com/ 2022-09-03 19:10:21 that's what the site says xD 2022-09-03 19:11:22 I find the ergodox to be pretty comfortable, though I only use 36 of the keys 2022-09-03 19:11:24 I have a gpd micro pc as my only computer so I miss a real keyboard 2022-09-03 19:11:48 I'm pretty happy with the old standard ones btw 2022-09-03 19:12:25 (I use an ergodox at home/work and an atreus when traveling and sometimes at work) 2022-09-03 19:12:36 I always hated any keyboard with less size than the standard one because it makes me fail so much 2022-09-03 19:12:51 specially the laptop ones 2022-09-03 19:17:49 crc_: would be a bad idea to allow concatenative languages being discussed here? 2022-09-03 19:18:12 cause #concatenative is kind of dead, so you could get users from there too 2022-09-03 19:18:24 Concatenative languages are welcome here 2022-09-03 19:18:30 :0 2022-09-03 19:19:20 then I should go to r/concatenative and post the same text as I've did in r/Forth 2022-09-03 19:20:02 but note that most of them differ a lot from Forth and maybe some users could dislike that 2022-09-03 19:20:33 I've done* 2022-09-03 19:22:54 I'll take the dog for a walk, see you forthwrights :D