2024-05-06 00:10:41 linkgore, that might be a nice name for a groutesque-dark-metal band 2024-05-06 00:11:04 in memory of link-gone-park. 2024-05-06 00:13:59 the best looking man-monkey is clearly Brad. 2024-05-06 00:14:44 He did write some forth code at a time, so I read. 2024-05-06 00:15:36 https://sourceforge.net/projects/acweb/ 2024-05-06 00:15:43 That's cool. 2024-05-06 00:17:00 nice, if it has a forth translator imbedded? 2024-05-06 00:18:00 It's a web server implemented in Forth 2024-05-06 00:18:05 https://web.archive.org/web/20020205081707/http://www.embedded.com/story/OEG20010731S0028 2024-05-06 00:18:20 search for "powered by Forth" 2024-05-06 00:18:20 well, then it is cool. 2024-05-06 00:18:53 and 7 years old. 2024-05-06 00:19:22 as you may have suggested, windows only it seems 2024-05-06 00:20:01 yeah, but at least the barrier is broken 2024-05-06 00:20:15 would be interesting to see how tightly wrapped around windblown it is. 2024-05-06 00:20:30 if not, could it be released from that dependency and made into a stand alone. 2024-05-06 00:20:36 folks have also written web servers using PostScript 2024-05-06 00:20:44 Yes, that is true :) 2024-05-06 00:21:00 and in comp.lang.postscript those folks are 'legend' 2024-05-06 00:21:30 https://www.reddit.com/r/programming/comments/2fwy1y/a_web_server_in_postscript/ 2024-05-06 00:21:39 and I have never seen such a thing, but apparently true. 2024-05-06 00:21:46 reedit says so 2024-05-06 00:21:52 so does a$$crook. 2024-05-06 01:46:51 0 <> versus 0= 0= debate 2024-05-06 02:03:36 let's make a cms 2024-05-06 02:03:40 forthpress 2024-05-06 02:11:30 there are a lot of books on internet archive 2024-05-06 02:11:33 https://archive.org/search?query=subject:%22FORTH%20(Computer%20program%20language)%22 2024-05-06 03:01:25 On the problems chapter 2, https://www.forth.com/starting-forth/2-stack-manipulation-operators-arithmetic/ the hardenedcriminals test question is exceptional false, today. 2024-05-06 03:18:06 Nice to see my video is attracting people :) 2024-05-06 03:18:17 I put at shoutout in the video description 2024-05-06 03:18:19 at/a 2024-05-06 03:26:07 Actually this channel is ##forth rather than #forth, lf94. 2024-05-06 03:26:48 Luckily, libera is setup to redirect 2024-05-06 03:26:54 I messed up telling everything #forth 2024-05-06 03:27:08 Ah - I didn't realize it would redirect it. That's good. 2024-05-06 03:27:15 Will update the video too anyway just in case 2024-05-06 03:27:53 Is the idea that they reserver the single # for "projects" with more formal organization than we sport here? 2024-05-06 03:28:04 yea 2024-05-06 03:28:09 ## is general 2024-05-06 04:00:19 lf94, what's your programming background? 2024-05-06 04:00:33 luiz_: I'm a plumber 2024-05-06 04:02:48 that's street lingo for MIT hacker? 2024-05-06 04:02:55 hahaha 2024-05-06 04:03:06 I'm kidding, it was tongue-in-cheek "doesn't matter" :P 2024-05-06 04:05:30 how hard was the transition? 2024-05-06 04:05:50 in the video you said you were leaving Zig 2024-05-06 04:06:28 It's hard to articulate the difficultly of the transition 2024-05-06 04:06:42 I had many moments of effort 2024-05-06 04:06:48 That's the right way to describe it I think 2024-05-06 04:07:10 Now, I have way less moments of effort :) 2024-05-06 04:07:30 Because it's a new way of thinking about data flow, it does take more time than most other languages. 2024-05-06 04:07:44 I went through the same thing when learning function programming for the first time. 2024-05-06 04:07:49 functional* 2024-05-06 04:09:25 What about memory? I can't seem to quite get it, too many years of use-after-free I guess 2024-05-06 04:09:40 What's the question? 2024-05-06 04:09:53 Like how do you deal without heap allocation? 2024-05-06 04:10:07 You have the data stack to allocate as many gigabytes you want :) 2024-05-06 04:10:17 You can even write words to turn this into a heap. 2024-05-06 04:10:29 (A heap is just a type of memory structure in contiguous memory.) 2024-05-06 04:10:31 but it's static 2024-05-06 04:10:38 No, the data stack is not static 2024-05-06 04:10:44 See: ALLOT 2024-05-06 04:11:22 like alloca(3)? 2024-05-06 04:11:32 No, the word definition for ALLOT :) 2024-05-06 04:11:39 "Forth ALLOT" 2024-05-06 04:11:54 sir forthalot 2024-05-06 04:12:01 lol 2024-05-06 04:12:17 Almost sounds like I'm making a joke I guess 2024-05-06 04:12:51 ooh the word 2024-05-06 04:12:52 lol 2024-05-06 04:12:54 luiz_: the data stack is also sometimes called "dictionary" (it's not related to a dictionary structure at all) 2024-05-06 04:13:35 yeah, like from what I'm reading here, the "heap" is reserved for the code, and the "stack" for the data 2024-05-06 04:13:54 *in Forth 2024-05-06 04:14:45 Code storage is system dependent 2024-05-06 04:14:57 There are more than 1 stack in Forth systems 2024-05-06 04:15:10 There's the paramater stack, the return stack, and the data stack 2024-05-06 04:15:19 what's the memory layout like then? 2024-05-06 04:15:29 System dependent 2024-05-06 04:16:47 On a system like gforth, I'm pretty sure when you allot a certain amount, it may cause OS level memory management to kick in and allocate more memory from the OS memory heap. 2024-05-06 04:38:32 ALLOT is one way to do it. Note that you would have to allocate a large chunk and manage it yourself 2024-05-06 04:39:20 you can't allocate one thing then allocate a second thing then free the memory for the first thing without also losing the second one if you're using the built in dictionary functionality 2024-05-06 04:52:04 you treat all large memory blocks as just massive stack values you move around the memory stack :) 2024-05-06 05:11:41 the data or parameter stack is not the dictionary, by the way 2024-05-06 05:14:51 The data stack isnt? 2024-05-06 05:15:07 I thought as you add words, it gets added to the dictionary, otherwise called the data stack 2024-05-06 05:15:20 luiz_: if you're familiar with linux system calls, the dictionary is similar to brk/sbrk. approach forth like you would assembler or an embedded c with no libc in this regard. if you want dynamic memory more sophisticated than moving the dictionary pointer (akin to adjusting the program break up and down), then you're facing writing your own 2024-05-06 05:15:32 the dictionary is not a stack 2024-05-06 05:15:50 yea 2024-05-06 06:06:50 lf94: ALLOT doesn't allocate from the stack - it allocates from the block the dictionary is growing in. 2024-05-06 06:07:17 And once you allocate it, it's allocated, unless you use FORGET or the modern equivalent to prune the dictionary back. 2024-05-06 06:07:35 I.e., you also have to deallocate everything you allocated after the one we're talking about. 2024-05-06 06:07:47 Of course you can equip your Forth with a heap if you want to. 2024-05-06 06:08:18 luiz_: Normally Forth doesn't come with any heap "out of the box." 2024-05-06 06:08:33 Some full featured ones may, but it's not a "standard thing" as far as I know. 2024-05-06 06:09:49 I think a heap is one of the things you probably need to be able to use Forth effectively in a "personal computing" environment. 2024-05-06 06:09:57 And I think a file system probably is too. 2024-05-06 06:10:12 Storage is too big these days for manual block # management. 2024-05-06 09:37:40 luiz_: Another interesting resource, though not sure how relevant to your quest: https://www.forth.org/fd/ 2024-05-06 13:27:12 KipIngram> And once you allocate it, it's allocated, ... 2024-05-06 13:27:38 you can allot a negative count 2024-05-06 13:33:16 It's so cool... In the process of learning a new tool I'm becoming an historian 2024-05-06 14:18:26 that's what happens when the "new tool" you learn is actually a very old tool 2024-05-06 16:41:10 KipIngram: I know it's not from the parameter stack ;) 2024-05-06 16:41:22 I think saying "data stack" really messed up communication lol. 2024-05-06 17:17:11 I think I'm going to to Langton's ant on my My4th as the first program 2024-05-06 17:28:08 Langton's Ant looks interesting. Reminds me of the Computerphile video on L-systems https://youtu.be/puwhf-404Xc 2024-05-06 17:35:27 I read a book called Artificial Life by Stephen Levy in the 90s that covers things like Langton's and, cellular automata, L-systems, it was pretty good 2024-05-06 17:36:11 I've done L-systems a few times, really fun stuff 2024-05-06 17:36:16 I'll probably do all that fun shit on My4th :) 2024-05-06 17:36:25 I see the My4th as an art piece almost 2024-05-06 17:36:45 I'll have L-systems and cellular automata running beside me all the time :p 2024-05-06 18:21:24 Oh, Langton's ant does look neat. 2024-05-06 18:29:13 sounds like a cool premise for a core war style competative game 2024-05-06 18:30:50 not sure how that would work though, come to think of it. since the initial layout of the board /is/ your program, and there's no ability to influence it after the initial state