2024-03-18 00:01:00 and historically there is much moore :) of the author and his creation. 2024-03-18 00:04:06 lf94: You want CREATE H0 6A C, 09 C, E6 C, etc 2024-03-18 00:04:36 VARIABLE allocates a cell, CREATE leaves it empty 2024-03-18 00:05:36 oh nice 2024-03-18 00:06:06 wait, I thought variable *could* leave it empty also 2024-03-18 00:06:08 Tend to use CREATE for arrays, structs 2024-03-18 00:07:03 VARIABLE allocates one uninitialised cell 2024-03-18 00:07:58 isn't that ok 2024-03-18 00:08:12 just means I'll have 4 unused bytes per cell on this system I think? 2024-03-18 00:08:20 I'll use CREATE to initialise a var as well, e.g. CREATE COLS 64 , instead of VARIABLE COLS 64 COLS ! 2024-03-18 00:08:39 https://gist.github.com/lf94/13e6955395a2db5a8f01cd656762c943 2024-03-18 00:09:09 Missing c, at end of lines 2024-03-18 00:09:16 ah whoops 2024-03-18 00:09:25 I'm trying to understand create vs variable 2024-03-18 00:09:52 VARIABLE X -> X is address of one cell 2024-03-18 00:10:05 CREATE X -> X is a unique address but nothing is allocated there 2024-03-18 00:10:17 CREATE X 5 , -> X is address of one cell containing 5 2024-03-18 00:10:33 CREATE X 5 C, 10 C, -> X is address of two bytes 2024-03-18 00:11:27 VARIABLE X 5 C, -> X is address of 3/5/9 bytes, containing ?? ?? [?? ?? [?? ?? ?? ??]] 05 2024-03-18 00:11:35 ^^^ NICE 2024-03-18 00:12:19 nice buffered space of mostly whatever. 2024-03-18 00:12:40 Ah, I see the issue. 2024-03-18 00:12:46 thank you for drawing a picture :) 2024-03-18 00:14:18 I need to create a little cheatsheet 2024-03-18 00:15:00 n cells -> space n cells takes up; allot -> moves the here data stack pointer? 2024-03-18 00:15:48 So is C, doing something like : c, here 1 allot c! ; ? 2024-03-18 00:16:06 (my mind is a bit mixed up with all this new information in a short amount of time) 2024-03-18 00:17:13 get a good nights sleep then 2024-03-18 00:18:25 Yes lf94 2024-03-18 00:18:37 What gforth do you have? 2024-03-18 00:18:50 Gforth 0.7.3 2024-03-18 00:18:51 You can use SEE C, or LOCATE C, depending on which one 2024-03-18 00:19:02 to see the forth code it runs 2024-03-18 00:19:09 or assembly 2024-03-18 00:19:11 I like how the copyright stopped in 2008 2024-03-18 00:19:14 oh nice! 2024-03-18 00:19:23 gforth 0.7.3 is ver yold 2024-03-18 00:19:37 I guess the AUR version for Arch Linux is hella old 2024-03-18 00:19:41 They've just not done a 'release' in age 2024-03-18 00:19:46 ages* 2024-03-18 00:19:55 hm 2024-03-18 00:19:58 ah 2024-03-18 00:20:03 yeah I was going to say, says current here https://www.gnu.org/software/gforth/ 2024-03-18 00:20:12 I think it's awesome 2024-03-18 00:20:13 If you've got gforth 0.7.3 installed you can build a later snapshot 2024-03-18 00:20:14 forth is timeless 2024-03-18 00:20:36 later versions have LOCATE which shows the actual source used to build the word 2024-03-18 00:21:07 And other features, a bit more stable for one thing 2024-03-18 00:24:29 How do I deallot 2024-03-18 00:24:47 I can just do ` ,` pretty much anywhere right? 2024-03-18 00:24:56 It'd be unnamed data stack data 2024-03-18 00:32:25 https://gist.github.com/lf94/7388802c6e7a5b1fd2c8f4f3660312a7 the start of my little cheatsheet 2024-03-18 00:39:22 something with my understanding of ! and allot 2024-03-18 00:39:25 is wrong 2024-03-18 00:39:36 does ! know the size of a cell or something? 2024-03-18 00:39:40 or... no 2024-03-18 00:40:00 ! is treating a number like 57 as a 8 byte value (64 bit int) filling the cell 2024-03-18 00:41:20 terrible things can happen if you use the wrong ! for the target 2024-03-18 00:57:07 lf94: -n allot deallocates n bytes 2024-03-18 00:57:38 ! is for storing a cell given its address 2024-03-18 00:57:47 C! is for storing a byte given its address 2024-03-18 04:05:58 guys 2024-03-18 04:06:12 Im starting to feel the "forth obsesion" 2024-03-18 04:06:43 like... 2024-03-18 04:06:48 why is the world not running on forth? 2024-03-18 04:12:41 parts of it are 2024-03-18 04:15:04 depends on the define of the world, running on and forth, maybe if try hard, can find one. 2024-03-18 04:17:05 I'm talking most of it. 2024-03-18 04:18:12 Like... the language is as powerful as lisp basically. And yes, I know lisp doesnt run most of the world either. But forth can run as fast as C, be as expressible as lisp, and have anything it needs added. It's crazy. 2024-03-18 04:18:22 Runs just as well on 8 bit cpus up to 64 bit cpus 2024-03-18 04:18:36 Can be understood and implemented by one person 2024-03-18 04:19:05 It very well may be all we've ever really needed. 2024-03-18 04:19:14 And if we need more? extend. 2024-03-18 04:20:54 practically forth dosen't run fast as C/C++, i think it dosen't play well with code cache and registers allocation. sure you can do well with embeded assembly in forth, but you can do that even in BASIC. 2024-03-18 04:21:00 http://www.arestlessmind.org/2009/02/03/intro.html 2009. Type system in Forth. 2024-03-18 04:21:38 Forth doesn't run as fast as C or C++? That seems to be wrong based on what I've been reading from others 2024-03-18 04:21:54 Forth can be optimized to use registers 100%. 2024-03-18 04:22:30 "doesn't play well with code cache" from what I understand this is incorrect as well 2024-03-18 04:22:56 I would love to see evidence against this 2024-03-18 04:23:15 I want to be right about my understanding, so any evidence that guides me toward being right, I'm open to it 2024-03-18 05:09:16 https://codeberg.org/DW0RKiN/M4_FORTH this z80 forth doesn't seem to have C, 2024-03-18 05:09:22 makes me concerned 2024-03-18 05:11:59 https://github.com/ams-hackers/gbforth/blob/e131cc807b884b69f4512d1be6b223cfefd3a8ae/docs/memory.md?plain=1#L29 2024-03-18 05:12:05 Does have C, 2024-03-18 05:12:25 Is someone's Forth *really bad* if they don't have C, ? 2024-03-18 05:13:44 https://jkotlinski.github.io/durexforth/ 2024-03-18 05:14:11 Ok good, at least zenv (z80), durexforth (c64) and gbforth (gameboy) all have C, 2024-03-18 05:27:01 lf94: suppose I want to write an emulator for a 6502 based system (eg: Nintendo NES), in forth a typical implementation for the cpu core would use 1 word for 1 instrution, like https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/emul/6502.fs . is there a free availabled forth can do inline and register allocations optimizations like GCC for C/C++, with at least portable for x86 and ARM? I don't think so... 2024-03-18 11:27:56 lf94: It's really bad or just non-standard 2024-03-18 11:29:50 Looks like M4_FORTH has a lot of standard words but is otherwise its own thing 2024-03-18 11:30:13 You've already demonstrated that writing C, is easy 2024-03-18 11:30:29 Don't worry about compatibility, you can write a small shim for forths that are almost-standard usually anyway 2024-03-18 11:32:10 > Oh no they don't have struct support! 2024-03-18 11:32:21 > : +FIELD CREATE , DOES> @ + ; 2024-03-18 11:32:25 > Never mind 2024-03-18 11:33:39 Hello 2024-03-18 11:36:54 That should be : +FIELD CREATE OVER , + DOES> @ + ; but you get my point 2024-03-18 11:37:04 Hello olle 2024-03-18 11:38:30 And : FIELD: ALIGNED 1 CELLS +FIELD ; : CFIELD: 1 +FIELD ; to complete the set 2024-03-18 11:40:46 lf94: "Forth doesn't run as fast as C or C++?" Yes, it doesn't run as fast as C or C++. This oversimplifies the matter, but it's mostly true. 2024-03-18 11:41:13 Theoretically C, C++ and Forth are all as fast as possible because you can drop down to inline assembly 2024-03-18 11:41:29 Theoretically they all generate decent optimised code because all three have e.g. GCC and LLVM frontends 2024-03-18 11:41:49 In practice Forth designs have tradeoffs that generate slower high-level code than C or C++ 2024-03-18 11:42:43 I would argue Forth is better equiped for optimising high-performance code as necessary than most other alternatives to C/C++ 2024-03-18 11:45:18 One should only judge idiomatic code when comparing langs I think 2024-03-18 11:46:32 Depends on what kind of performance comparison we're doing 2024-03-18 11:47:22 If you're writing high performance code, where it matters, then C, C++, and Forth all start to look similar: they will all need heavy vector intrinsics, or inline assembly, in the performance-critical sections. 2024-03-18 11:49:25 The best possible C code often uses vector extensions as well, in this case it's not standard C being written, it's GNU C or something. Again, we can extend Forth to support vectors in this way too. 2024-03-18 11:50:39 Hm 2024-03-18 11:51:42 Like C and C++, if you want the most performance from high-level code you need to change how you write stuff. THings like DOES> and spamming large non-constant automatic arrays on C's stack go out the window. 2024-03-18 11:52:23 But I wouldn't remove those features because they're all useful in the right context 2024-03-18 11:53:58 :d 2024-03-18 12:07:50 lf94: "doesn't play well with code cache" Forths written for systems where this matters often put machine code in a separate section to the main dictionary data 2024-03-18 12:08:05 Which resolves that specific issue without any serious drawbacks 2024-03-18 12:09:42 I think the biggest thing that affects is it makes DTC a bit worse, but DTC clearly has optimisation limitations anyway 2024-03-18 13:33:57 I don't mind if Forth is generally 2x slower than C 2024-03-18 13:34:04 Because you gain *a lot* in other areas 2024-03-18 13:34:10 and 2x slower is ... basically nothing 2024-03-18 13:35:25 Depends 2024-03-18 13:35:34 2x slower can mean 100% more expensive :) 2024-03-18 13:52:52 That's ok. Like really, if it means going from 2hr of battery life to 1hr that's completely fine 2024-03-18 13:53:04 Again you gain a lot otherwie 2024-03-18 14:05:26 Depends on your domain I'd figure 2024-03-18 14:07:39 Well when it does matter you can optimise, and likewise you'd have to optimise C anyway 2024-03-18 14:07:47 If it really matters 2024-03-18 14:07:55 Performance is complicated 2024-03-18 14:08:19 Right 2024-03-18 14:08:28 I've had a flick through my second edition of starting forth, and this is definitely the best version. You can find them out there if you look, it's was released in the 80's 2024-03-18 14:09:33 I don't know if there's a scan but physical copies are not too expensive, I think the first editions are more coveted 2024-03-18 14:15:03 And the spine does look like K&R C so it can go next to your copy of that, if you have one 2024-03-18 14:23:37 hehe 2024-03-18 14:40:44 :-) 2024-03-18 14:42:15 I got that Enigma emulator working correctly. At least under light testing. 2024-03-18 14:50:23 lf94: Would advise this algorithm if you want performance https://github.com/openssl/openssl/blob/master/crypto/sha/sha256.c 2024-03-18 14:52:13 lf94: Neat seeing someone catch the Forth bug. 2024-03-18 15:42:36 In addition to all of the positive things you said about Forth, I'd just add the fact that it's simple enough for one person to implement from scratch on a new system in a reasonable period of time. 2024-03-18 15:42:45 That is the big draw for me. 2024-03-18 15:43:15 That and the fact that it's stack based - I learned to program on an HP-41 calculator, so "data stack" has always just felt natural and intuitive to me. 2024-03-18 15:43:35 RPN is you pal :) 2024-03-18 15:44:25 I learned stack stuff first in the late 70s on HP-41C in late 79 or early 80, and I too took that to the FORTH world. 2024-03-18 15:45:05 Initially it was my only reason for appreciating Forth, but when i eventually learned how Forth works under the hood I found many more reasons to love it. 2024-03-18 15:57:46 pal rpn yours is 2024-03-18 15:59:04 Yoda clearly used Forth. 2024-03-18 15:59:21 or it's a rare form... https://en.wikipedia.org/wiki/Object%E2%80%93subject%E2%80%93verb_word_order 2024-03-18 16:00:17 here is a bit of fun history about fig, forth inc, and all this curiosed me into finding polyForth in the garage in a box, with some other stuff. 2024-03-18 16:00:19 https://comp.lang.forth.narkive.com/tejgeZlO/fig-forth-vs-f83-vs-polyforth 2024-03-18 16:00:44 hard to believe its been 40+ years 2024-03-18 16:02:07 https://iili.io/JX7QGPR.jpg 2024-03-18 16:06:31 I quite like PolyForth 2024-03-18 16:08:49 The whole discussion of "pirated" Forths puzzles me. There's no need to "pirate" Forth - it's not like it's that hard to write one. 2024-03-18 16:09:08 It's a little like stealing water. 2024-03-18 16:09:35 when you talk about Forth Inc., and business, it was pirated. 2024-03-18 16:09:58 when you talk about the standard, and doing forth from a standard, no issues at all. 2024-03-18 16:10:07 Sure - I'm not denying it as factual; just wondering why anyone took the risk of doing it that way. 2024-03-18 16:10:40 The concept of software being copyrightable was new in the 80's 2024-03-18 16:11:13 ^^^ 2024-03-18 16:12:06 The law changed to make it possible in the US in ~1978 if I remember, and the case that created precedent involved Apple and was decided in ~1982, re a company copying portions of Apple II ROM 2024-03-18 16:12:09 and to read something about Chuck, one of the overwhelming reasons FORTH to me is so simple unless an effort is made otherwise, is from this phrase of his... 2024-03-18 16:12:14 "Do not speculate!" :) 2024-03-18 16:12:41 Might have been Laser 2024-03-18 16:12:52 or Franklin 2024-03-18 16:12:57 Laser 1000 and Ace 2024-03-18 16:13:06 they both were cloning the Apple II 2024-03-18 16:13:07 You mean don't speculate about future requirements? 2024-03-18 16:13:24 KipIngram, what chuck meant is this... "The main enemy of simplicity was, in his view, the siren call of generality that led programmers to attempt to speculate on future needs and provide for them. So he added a corollary to the Basic Principle: “Do not speculate!”" 2024-03-18 16:13:32 Yes. 2024-03-18 16:13:52 I'm quite familiar with his feelings on that front. And basically agree with them for the most part. 2024-03-18 16:14:14 Al2O3: Unfortunately comp.lang.forth is unreadable because of like 1-2 users that derail every thread 2024-03-18 16:14:26 sad 2024-03-18 16:14:37 Seems like there's almost always someone like that. 2024-03-18 16:14:40 but ##forth is usable I hope with my ramblings 2024-03-18 16:15:19 my years in USENET world was never imbedded with comp.lang.forth stuff, I was onto other things from the 80s to 00s, and google groups lost me quickly. 2024-03-18 16:15:41 For some reason comp.lang.forth attracted a handful of very bitter toxic people that like to complain about other users and generally history, and forth 2024-03-18 16:15:58 I love the history of forth, I do not like politics of it. 2024-03-18 16:16:02 I don't say that lightly, it's extremely bad 2024-03-18 16:16:16 I hate it when people complain about 'toxicity' over nothing, this is not that 2024-03-18 16:16:33 vim vs vi, vs emacs, vs ed, vs whatever 2024-03-18 16:16:37 could care less. 2024-03-18 16:16:46 there used to be a guy here that would do that, a number of years ago. 2024-03-18 16:16:48 Asau? 2024-03-18 16:17:04 All forums need moderation 2024-03-18 16:17:07 I don't have to be right, but I am more than 50% of the time :) 2024-03-18 16:17:14 :-) 2024-03-18 16:18:02 Or to an REM song maybe ... "I'm right 50% of the time, and I feel fine!" 2024-03-18 16:18:45 anyway, thought finding and sharing that box of goodies was a nice Monday image to share. 2024-03-18 16:18:58 Yeah sorry I do like that 2024-03-18 16:19:23 I've got an MPE PC PowerForth copy here 2024-03-18 16:20:02 Nice 5 1/4" disk and manual 2024-03-18 16:22:10 neat, care to share a photo if you dare :) 2024-03-18 16:22:32 I'm not sure if polyForth was ever implemented on other systems than x86. 2024-03-18 16:23:30 I'm pretty sure it was on some mainframes 2024-03-18 16:23:38 Or minicomputers anyway 2024-03-18 16:24:04 like CDC type mains, AS400, DECPDP? 2024-03-18 16:24:14 The polyforth manual describes systems where like 64 terminals were connected 2024-03-18 16:24:20 So sounds like some kind of larger computer 2024-03-18 16:24:21 Apparently it was on an LSI-11 2024-03-18 16:24:32 yah, does. 2024-03-18 16:25:54 I need to take a weekend and go through all that stuff in that box :) Hmmmm, gardening, beekeeping, making wine, and forth, who gets my time this weekend :) 2024-03-18 16:26:03 And now it's on the Greenarrays chip too :| 2024-03-18 16:26:19 I saw that with a google here, kinda interesting. 2024-03-18 16:26:35 Al2O3: https://i.imgur.com/tGVuQlX.png 2024-03-18 16:27:25 Looks like they did use more than one segment, re that thread's first reply 2024-03-18 16:28:26 MPE powerforth seems to call the hiding operation SMUDGE 2024-03-18 16:28:29 sadly imgur and my system/s browsers don't work, even with a direct link to the jpg. 2024-03-18 16:28:44 no worries, I'm sure its cool :) 2024-03-18 16:28:49 Yeah imgur sucks 2024-03-18 16:28:53 yes it does. 2024-03-18 16:28:57 I use now freeimage.host 2024-03-18 16:29:05 works great, less filling, no issues, and FREE 2024-03-18 16:29:45 https://freeimage.host/i/JXY92Yx 2024-03-18 16:30:03 imgur was good originally 2024-03-18 16:30:14 A long time ago 2024-03-18 16:30:48 I had to write a greasemonkey script to sort of get imgur working 2024-03-18 16:33:38 like so many things, biological or otherwise, time can or not be a friend. 2024-03-18 17:14:10 <_1player > anyone know of a good resource on parsing in Forth? I enjoyed the BNF parser article at https://www.forth.org/literature/bnfparse.html but the code went way over my head 2024-03-18 17:14:25 <_1player > : IN @ >R DP @ >R >R ELSE R> DROP THEN ; 2024-03-18 17:14:35 <_1player > that's just madness for me to understand 2024-03-18 17:14:58 <_1player > even worse, : | SUCCESS @ IF R> R> R> 2DROP DROP ELSE R> R> R> 2DUP >R >R IN ! DP ! 1 SUCCESS ! >R THEN ; 2024-03-18 17:16:05 Forth isn't context-free 2024-03-18 17:16:15 <_1player > I am basically looking to write a basic parser generator in Forth.. I made some decent progress but backtracking made stack management way too hard to deal with 2024-03-18 17:16:53 <_1player > veltas, I am not trying to parse Forth. I'm looking to write a parser IN forth. 2024-03-18 17:16:53 save everything and rollback? 2024-03-18 17:34:20 Ok, so _lplayer, the ELSE clause up there is doing a "double return." It's causing a return from the CALLER, to whoever called it. The THEN clause looks like it is, among other things, causing you to return to HERE, so allegedly something has been placed there. Some Forth compiled code. 2024-03-18 17:34:29 That was for I'm not sure what putting IN onto the return stack is all about; need more info on what's going on overall. 2024-03-18 17:35:07 Oh, wait. 2024-03-18 17:35:37 That THEN analysis isn't quite right - it's actually putting your return address back. But it's putting a pointer to HERE UNDER it. 2024-03-18 17:35:46 So I still t hink there must be code at HERE. 2024-03-18 17:36:03 Unallocated code - DP needs to be moved past it, really. Maybe it's temporary. 2024-03-18 17:36:38 So if the THEN path is taken, you will return to your caller, but the CALLER will then return to HERE. 2024-03-18 17:36:46 The else path just bails. 2024-03-18 17:38:39 _1player: Might look into the exception words like CATCH and THROW 2024-03-18 17:38:55 Seem useful for recursive descent parsing 2024-03-18 17:40:43 Also using BNF with Forth sounds like a misstep, Forth has parsing abilities baked in 2024-03-18 17:40:59 ^^ 2024-03-18 17:41:06 PARSE WORD PARSE-NAME etc 2024-03-18 17:41:36 I assume _lplayer is interested in playing with parsing algorithms "formally." 2024-03-18 17:42:26 Those words you listed still ought to useful, unless the interest is at a lower level. 2024-03-18 17:42:32 ought to "be" 2024-03-18 17:42:58 Not Forth but possibly interesting https://www.researchgate.net/publication/220828932_A_parsing_machine_for_PEGs 2024-03-18 17:43:54 This Enigma stuff is fun - now I find myself speculating on how they could have made it better, in that era. The big weakness it had was that it never maps a letter to itself, and that should be done randomly some percentae of the time. I'm mulling over how they might have added a "bypasser" that would randomly just skip around all of the mapping stuff and leave the letter untranslated. 2024-03-18 17:44:06 If they'd had that it's likely that it never would have been broken. 2024-03-18 17:44:43 But it would have to be accomplished with a *mechanism* of some kind. The easy way we'd do it today was unavailable. 2024-03-18 17:56:33 If that's packrat, that PEG parser uses a LOT of memory for a parser, but guarantees linear parsing time wrt input size 2024-03-18 17:57:08 It's about a virtual machine for parsing 2024-03-18 17:57:14 Fair enough 2024-03-18 17:57:22 IMO recursive descent is the easiest to understand and write, and in my highly subjective opinion is the forthiest way, apart from forth's actual parser 2024-03-18 17:57:49 Recursive descent / PEGs are the only parsing algorithm I feel like I actually understand :P 2024-03-18 17:58:07 QED 2024-03-18 17:59:38 I did at some point memorise how the different basic kinds of parsers work, like top-down, bottom-up, how to normalise your grammars and check for LL(k), LR(1) etc 2024-03-18 18:00:05 But after uni I came to learn that the most important compilers don't bother with any of this, so why should I 2024-03-18 18:02:13 The weird thing about language theory is that even though I'm convinced 99% of it was useless, I'd still recommend it. Finite automata manipulation, grammars, parsers etc all a lot of fun. 2024-03-18 18:03:37 This is a great paper I tend to link too often :P "PEG-based transformer provides front-, middle and back-end stages in a simple compiler" https://web.archive.org/web/20220627164843/http://www.vpri.org/pdf/tr2010003_PEG.pdf 2024-03-18 18:05:35 Sounds like a toilet PDF 2024-03-18 18:07:30 13:06 <_1player> [16:14:25] : IN @ >R DP @ >R >R ELSE R> DROP THEN ; 2024-03-18 18:07:32 13:06 <_1player> [16:14:35] that's just madness for me to understand 2024-03-18 18:07:48 If that's hard for you to understand you need to learn a bit more before attempting this IMO 2024-03-18 18:08:27 It's just moving things in and out of the return stack 2024-03-18 18:09:32 Bear in mind that first R> moves the return address of the word onto the data stack 2024-03-18 18:11:11 And it's only put back in the first case, in second case it's popped off ... so you return to the caller's caller or whatever was there 2024-03-18 18:17:54 It's a popular advanced technique for structuring code, there used to be a guy in here called rdrop-exit 2024-03-18 18:32:37 Neat little technique 2024-03-18 18:45:09 I corrected my understanding of , and create 2024-03-18 18:45:25 In particular I was confused about , but it's very clear now 2024-03-18 18:45:36 I thought , took some sort of address. But it just continues to move `here` 2024-03-18 18:46:13 my partner is out for the night so ill get lots of hacking done on the sha256 today :) 2024-03-18 18:46:18 (after work) 2024-03-18 20:45:49 are you a cowboy? 2024-03-18 21:28:15 lf94: , puts the item on the top of the stack at here and advances here over it. 2024-03-18 21:28:52 ALLOT will advance here by bytes. 2024-03-18 21:29:07 Without initializing the newly allocated RAM in any way. 2024-03-18 21:42:23 This is the goal https://www.youtube.com/watch?v=KvNLr_AVTAM 2024-03-18 21:43:43 https://www.youtube.com/watch?v=2UNN5qB5L1A 2024-03-18 21:45:43 https://archive.org/details/ataribooks-forth-on-the-atari-learning-by-using 2024-03-18 21:46:20 https://www.youtube.com/watch?v=lkoNKrBHWOo 2024-03-18 21:47:12 GeDaMo: But why that illustration though 2024-03-18 21:47:53 That is an accurate representation of a Forth programmer at work :P 2024-03-18 21:48:53 lf94: The games Forth lets you play by exposing the return stack are really quite cool. I have a whole flock of "conditional return" and "conditional double return" words in my own Forth. I don't even have the usual IF THEN WHILE etc. stuff - I use those conditional return items exclusively. 2024-03-18 21:50:26 GeDaMo: It feels like someone was commissioned to do an illustration for some "Atari program" and assumed it was some sort of avent garde videogame 2024-03-18 21:50:37 avant* 2024-03-18 21:50:58 The 80s was like that though 2024-03-18 21:52:43 To be fair game art didn't really have any bearing on the game either 2024-03-18 22:12:33 lf94: Thanks for posting zenv on lobsters, spent a little time in the sun there on hacker news too 2024-03-18 22:13:11 Only noticed it was on there scrolling with my wife earlier to see if there was anything interesting on HN :) 2024-03-18 22:13:57 It's on https://twostopbits.com/ too 2024-03-18 22:15:04 Oh cool I've not seen that website before, looks interesting 2024-03-18 22:15:22 Yeah, lots of retro stuff 2024-03-18 22:47:45 Has anyone here tried kitten? 2024-03-18 23:14:24 https://news.ycombinator.com/item?id=13345832 2024-03-18 23:14:26 nope. 2024-03-18 23:14:33 well, I haven't, maybe someone else has. 2024-03-18 23:15:39 but ai maybe has, just did a port (mac thing) search for kitten, and there is a robotfindskitten :) 2024-03-18 23:16:02 now looking around for source of kitten, for osx. 2024-03-18 23:17:02 and for those that care, https://kittenlang.org/ 2024-03-18 23:18:24 veltas you may try #concatenative, that is where apparently the author of kitten suggests folks go on IRC 2024-03-18 23:18:50 I will try 2024-03-18 23:18:54 On libera.chat? 2024-03-18 23:19:27 I suspect so, and here are at least 3 examples. 2024-03-18 23:19:28 https://rosettacode.org/wiki/Kitten 2024-03-18 23:20:56 99 bottles :) https://rosettacode.org/wiki/99_bottles_of_beer#Kitten