2024-08-24 00:00:13 but I did implement them in http://canonical.org/~kragen/sw/dev3/meta5ix.m5 2024-08-24 00:00:20 And I stopped using it after that really, it's good for writing a syntax quickly 2024-08-24 00:00:38 and so did Schorre's META-II that Meta5ix is based on 2024-08-24 00:00:48 which is from 01963 2024-08-24 00:00:50 I wouldn't use it to write a parser 2024-08-24 00:01:06 Why are you writing dates like that? 2024-08-24 00:01:15 I like to 2024-08-24 00:03:02 You like making your dates look like typos 2024-08-24 00:03:25 heh 2024-08-24 00:04:39 clearly xentrac is from an era after 10000 and is compelled to differentiate between our primitive times and the phuture 2024-08-24 00:12:22 Except normal numbers just do that 2024-08-24 00:12:46 There is no reason to prefix years with a 0 except to feel special about yourself 2024-08-24 00:13:26 (and yes, I know "the reason" for the prefix, it's silly) 2024-08-24 00:27:16 yeah we can start using 5 digit years in 10,000 AD 2024-08-24 00:54:53 o/ hey 2024-08-24 00:55:40 hihi~ ^^ 2024-08-24 01:00:14 I was wondering, does continuations mean anything in forth languages(not joy-likes) 2024-08-24 02:52:43 neauoire: continuations in the sense of call/cc? sure, it's the contents of the data and return stacks 2024-08-24 02:54:40 saving a continuation is just copying those stacks somewhere, and invoking it is restoring them to their previous state. a lot of Forths have words sp@ sp! rp@ rp! which point those stack pointers to some arbitrary place in memory so that you can do this more efficiently for one-shot continuations 2024-08-24 02:54:52 (because you don't have to copy them) 2024-08-24 02:55:16 is that what you meant? 2024-08-24 03:15:18 i haven't seen much written about co-routines in forth, except for https://home.hccnet.nl/a.w.m.van.der.horst/forthlecture6.html - which begins with zelgomer's LATER :) 2024-08-24 04:40:11 that's a good use for it. though those are "stackless" coroutines like Python generators, not "stackful" ones like Lua coroutines 2024-08-24 04:40:57 (which are more like Scheme's continuations, linking back to what I think neauoire's question was) 2024-08-24 04:48:21 i've always intended to one day do lua style coroutines in forth, but i can't seem to get out of the rebuilding a better meta compiler loop atm 2024-08-24 04:52:25 xentrac: i've been thinking about your guesses at what my later was for and i like the resource management one. i have some automatic memory words that on first use i tried to use to pass something back to the caller, and then i realized it's kind of like returning the address of a local in c. now i can use later to ensure that memory hangs around until the caller consumes it. 2024-08-24 04:56:50 well, it's sort of what van der Horst's LOCALS is doing: it allocates a resource, invokes CO (your later) to suspend its execution, and the code following CO deallocates the resource 2024-08-24 04:57:13 in this case, return stack space 2024-08-24 04:58:49 I feel like the case for it is somewhat more limited than for Golang's `defer` or Python's `finally` and `with` because there's no exception-driven stack unwinding that it hooks into; it'll only run on normal exits from the routine 2024-08-24 04:59:49 it certainly doesn't work when the word containing later is called from to interpreter loop 2024-08-24 05:00:04 (guess how i know) 2024-08-24 05:01:25 haha 2024-08-24 05:01:52 yeah I've had trouble with return stack manipulation in words I invoke from Gforth's text interpreter too 2024-08-24 05:02:16 I haven't analyzed why 2024-08-24 05:03:36 well in mine, it "works" in that it does exactly what it was supposed to: it arranges to resume after the outer interpreter. which is never. 2024-08-24 13:47:10 Forth is a very old language but never seen it in use anywhere 2024-08-24 13:48:41 It's got it's "niche," and a strong "loving community." But you're right; it doesn't get a lot of press compared to other "hotter" languages. 2024-08-24 13:56:29 I remember in an old book there was a drawing in which forth was standing on the head of C and Fortran as the next generation language. 2024-08-24 14:14:43 that is where the name comes from. it was supposes to be a "fourth generation programming language", where c and fortran were third gen. 2024-08-24 14:42:06 crashed jsforth in less than a minute of fiddling with it. i'd say it's accurate :) 2024-08-24 14:42:24 hm, almost, seems like it just hanged. 2024-08-24 14:42:57 code was 1 : test begin true while 1 + dup . repeat ; 2024-08-24 14:43:07 https://brendanator.github.io/jsForth/ 2024-08-24 14:45:50 you hung it just by defining a word? 2024-08-24 14:46:09 Er, I forgot to mention executing it. Dummy. 2024-08-24 14:46:25 well that's an infinite loop 2024-08-24 14:46:51 I didn't get output for some reason, I wonder if it was waiting for the word to return. 2024-08-24 14:47:19 yeah, maybe buffers output until it returns to repl 2024-08-24 14:48:08 1 : r 1 + dup . recurse ; r \ also hangs it 2024-08-24 14:51:32 Anyway, channel's quite quiet, so share silly forth ideas. I was thinking about an implementation whose cells are linked lists, but now that I think about it it's just CAR/CDR in RPN :) 2024-08-24 14:54:33 Well, not quite, I believe it would require keeping information about what's what. 2024-08-24 15:08:25 what information do you mean? 2024-08-24 15:15:02 My bad, I think I mixed loading a cell with executing its contents. 2024-08-24 15:19:49 >Hi, how do you do in Forth? Does that make sense in Forth? 2024-08-24 15:20:30 >Doesn't really apply to Forth. I guess you can use to do it 2024-08-24 15:23:21 Too many questions go like this, guys if you want to use a small useful language that works like Lisp or has a lot of functional features; use Lisp 2024-08-24 15:23:41 the answer is always no. nothing makes sense in forth. 2024-08-24 15:23:55 lol 2024-08-24 15:25:10 I think Forth is good at writing assemblers, but I've not finished writing any assemblers in Forth :) 2024-08-24 15:25:31 I guess technically it's done as soon as I start, but it's not really 'working' until I've written something proper in it 2024-08-24 15:26:15 Meanwhile I *did* write an assembler in Lua, technically with less features than a Forth assembler, but it was used to write actual code 2024-08-24 16:50:21 veltas: what arch did/does it target? 2024-08-24 17:08:21 xentrac: thank you, that's exactly what I wanted to know in regards to call/cc 2024-08-24 17:13:01 unjust: The one I wrote in Lua was for a made-up architecture https://github.com/Veltas/lvcpu/tree/master/asm 2024-08-24 17:13:51 https://github.com/Veltas/lvcpu/blob/master/cpu/arch.txt 2024-08-24 17:14:36 It's not a good fake architecture 2024-08-24 17:15:36 Ugh that C++ code is horrible 2024-08-24 17:18:48 I hate C++ 2024-08-24 17:22:33 Wow the unbelievable cruft in adding liblua just so I can read a config file that looks like this https://github.com/Veltas/lvcpu/blob/master/cpu/lvcpu.conf 2024-08-24 17:22:33 looks like an interesting machine, and that c++ isn't that bad in my opinion - the functions are concise enough and it's not unreadible 2024-08-24 17:25:42 did you write any programs for it apart from miscsrc/*.asm ? 2024-08-24 17:27:35 Started an OS in vos directory 2024-08-24 17:27:47 Might have gone a bit further locally, don't know 2024-08-24 17:28:01 But I ran those programs so I consider that a succesful assembler program 2024-08-24 17:30:38 agreed 2024-08-24 17:30:58 cool little cpu 2024-08-24 17:31:30 I don't think the arch is that good, but appreciate the kind words 2024-08-24 17:31:59 it's almost like something intel would have produced in an alternative reality 2024-08-24 17:32:21 Writing programs in it the first time I realised it has some fundamental deficiencies, but I can't remember what 2024-08-24 17:32:34 I don't know if architectures are either good/bad, I think almost anything can be written on anything, comfort may bvary that's all 2024-08-24 17:33:03 I can name one thing that's bad, the multiply instruction sets a carry flag, this is totally useless, it should save the high word to another register 2024-08-24 17:33:11 i agree with that, each architecture is kind of an artistic medium unto itself 2024-08-24 17:33:53 Having learned a number of CPU architectures, I definitely feel some are better than others 2024-08-24 17:33:54 I've been writing code for a cpu target I made up for the past 3 years now, I've pretty much only written code for it and nothing else. It was horrible at first, but you get used to anything 2024-08-24 17:33:54 "Tracing the roots of the 8086 instruction set to the Datapoint 2200 minicomputer" https://www.righto.com/2023/08/datapoint-to-8086.html 2024-08-24 17:34:18 I'm quite familiar with PowerPC and I consider that to be a bad design 2024-08-24 17:35:10 veltas: where's it deficient in your opinion? 2024-08-24 17:35:36 Bit 0 is 0x80000000, that's one thing I dislike 2024-08-24 17:35:56 That's not even about endianness, it's just plain IBM 2024-08-24 17:36:54 neauoire: is that a virtual or physical target? 2024-08-24 17:38:04 virtual 2024-08-24 17:38:24 it's what I use to make portable binaries between my plan 9 system and linux system 2024-08-24 17:38:39 (and run these gizmos on the kindle and nintendo DS) 2024-08-24 17:39:04 but the architecture is not that good, I just sort of grown into it, and now I can't think in other "modes" 2024-08-24 17:39:44 every tool I use is running on that same postfix assembly syntax, from my text editor, to my terminal emulator, to my website, etc 2024-08-24 17:40:13 the target was "frozen" a few years back, and stopped bothering changing it 2024-08-24 17:40:20 I just live with the quirks 2024-08-24 17:41:38 I've actually grown to quite like the quirks 2024-08-24 17:43:20 That's cool, I'm a fan of stuff like that 2024-08-24 17:43:51 I think my interest in writing low-level stuff, from scratch, possibly for made-up architectures, is one of the things that lead me to Forth 2024-08-24 17:44:02 same : ) 2024-08-24 17:44:24 looking for viable candidates, I stumbled on retroforth's ilo and the J1, which became my principal inspiration for the project 2024-08-24 17:44:59 bouncing between devices, the portability aspect was very appealing 2024-08-24 17:47:24 neauoire: got any links to share about it? 2024-08-24 17:48:06 I'm currently playing writing design for a virtual arch based on 60's mainframes, this is the disfunction I live with every day 2024-08-24 17:48:32 https://cpldcpu.wordpress.com/2020/02/14/what-made-the-cdc6600-fast/ 2024-08-24 17:48:35 https://wiki.xxiivv.com/etc/uxnmin.c.txt 2024-08-24 17:48:59 that's an implementation of it that I use 2024-08-24 17:49:14 some notes on the assembly: https://wiki.xxiivv.com/site/uxntal.html 2024-08-24 17:49:27 You wrote this? 2024-08-24 17:49:39 and some excuses as to why it looks so weird: https://wiki.xxiivv.com/site/devlog 2024-08-24 17:49:54 yes, I did 2024-08-24 17:49:59 I am to blame 2024-08-24 17:50:01 What you were saying I thought sounded like uxn stuff 2024-08-24 17:50:22 neauoire: very nice, i appreciate that kinda minimalism 2024-08-24 17:50:24 I am very impressed by that project, it's very creative and cool 2024-08-24 17:50:43 well I'm glad to hear : ) 2024-08-24 17:51:00 it has made me write concatenative code every day and I couldn't be happier about that 2024-08-24 17:51:48 The quirks you talk about, even real arch's have those, and so it is really part of the fun 2024-08-24 17:52:04 I totally agree 2024-08-24 17:52:48 I see people bend themselves backward on trying to find the perfect achirecture for years and years, I think at one point you're better off just embracing the mess 2024-08-24 17:53:04 and write cool things 2024-08-24 17:53:09 The uxn zine thing is cool, reminds me of Starting Forth; have you seen that? 2024-08-24 17:53:24 I have yes : ) 2024-08-24 17:53:58 I love Starting Forth although I think lots of people didn't like it, it's an acquired taste 2024-08-24 17:54:58 I love it, and thinking forth as well 2024-08-24 17:55:02 Nice 2024-08-24 17:55:17 Although I've not read Thinking too closely 2024-08-24 17:55:27 Apparently that book invented the term 'refactoring' 2024-08-24 17:55:41 haha, I didn't know 2024-08-24 17:55:56 there's very little written about concatenative languages 2024-08-24 17:56:08 Well it's probably not that researched, but the author pointed out that the earliest reference on Wikipedia was younger than his reference in Thinking 2024-08-24 17:58:42 I've started to gather concat examples of some famous programs here: https://concatenative.org/wiki/view/Example%20programs 2024-08-24 17:58:55 it's often kind of hard to find forth-like examples for things 2024-08-24 18:00:44 There's Rosetta code 2024-08-24 18:01:32 https://rosettacode.org/wiki/Category:Forth 2024-08-24 18:01:41 yeah that's true 2024-08-24 18:02:06 I always forget about that one 2024-08-24 18:02:09 Consider adding a washing machine to the example programs 2024-08-24 18:02:14 thanks for the reminder 2024-08-24 18:02:22 washing machine? 2024-08-24 18:02:26 lemme look it up 2024-08-24 18:02:34 I love Mecrisp Forth - close to hardware and very fast! 2024-08-24 18:03:32 I mustn't be looking it up right veltas 2024-08-24 18:03:35 got a link? 2024-08-24 18:03:39 is that from starting forth? 2024-08-24 18:04:35 WASH SPIN RINSE SPIN 2024-08-24 18:04:36 https://www.forth.com/starting-forth/1-forth-stacks-dictionary/ 2024-08-24 18:04:54 yes, it's the quintessential go-to unrepresentative example of forth 2024-08-24 18:05:16 : WASHER WASH SPIN RINSE SPIN ; : RINSE FILL AGITATE DRAIN ; : FILL FAUCETS OPEN TILL-FULL FAUCETS CLOSE ; 2024-08-24 18:05:21 right but does it do something? 2024-08-24 18:05:33 it washes your clothes 2024-08-24 18:05:43 the concat wiki examples have to have all of its words defined 2024-08-24 18:06:09 it's not so much introduction to concat languages, as much as solution to some varied euler problems type things 2024-08-24 18:08:17 i guess you could pick a target that has a bunch of I/Os available and then fill in the missing words with the control logic that would assume you have the valve and motor controllers wired up for what could be a real washing machine 2024-08-24 18:09:29 The only person I knew in real life who wrote Forth worked at MPE Forth and wrote lift (elevator) controllers 2024-08-24 18:09:32 i wonder if any appliance manufacturers have used forth for washing machine control 2024-08-24 18:10:31 I don't know, I do know Forth was used in space, and was probably the first high-level language in space 2024-08-24 18:11:26 a little while back, I was trying to find people with websites running in forth-like languages, I thought maybe a webring might be fun, but I could find no more than 3-4.. 2024-08-24 18:12:30 Personally I think Forth is weak at pure abstract computational problems. Capable, but weak. 2024-08-24 18:13:39 neauoire: web server and/or server-side scripting written in something forth-like? 2024-08-24 18:13:40 https://www.forth.com/resources/space-applications/ 2024-08-24 18:14:15 Part of the reason Forth was used in space was there was a radiation hardened version of a chip designed by Chuck 2024-08-24 18:14:55 https://en.wikipedia.org/wiki/RTX2010 2024-08-24 18:16:09 I thought that was really cool and looked briefly into funding an old rad hard chip to play with but they are coated with berrylium which is carcinogenic 0_0 2024-08-24 18:16:11 well whichever, depends if your website is stack or not 2024-08-24 18:16:29 funding=finding 2024-08-24 18:16:36 I find forth is really good at doing mechnical transformation of states, that's why i use it so much for video games programming 2024-08-24 18:16:42 GeDaMo: do you think if he hadn't been involved in telescope control, it would have been adopted for aerospace/satellite usage? 2024-08-24 18:17:28 neauoire: crc is a regular (and op) in here, wrote ilo, in case you didn't know 2024-08-24 18:17:29 *if you website is static* or not, lol 2024-08-24 18:17:33 I suppose it's possible he knew people because of that 2024-08-24 18:17:42 yeah I know crc, we talk on fediverse from time to time 2024-08-24 18:17:47 Nice 2024-08-24 18:18:02 ilo is fantastic, retroforth my first taste of forth ever 2024-08-24 18:18:27 I don't know them too well but I do like the concept, I wrote an AMD64 implementation of ilo's VM 2024-08-24 18:18:48 Greetings neauoire :) 2024-08-24 18:19:03 hey crc o/ good to see you! 2024-08-24 18:21:04 neauoire: i have something forth-like implemented in javascript, which makes it client-side only. though i haven't made use of it in a while - but i did write somewhat of an irc client for which makes use of websockets to connect to servers. if that's within the criteria boundaries for your webring, i'd be up for adding a banner to link into it. 2024-08-24 18:21:51 well, it's not just a forth webring, it'd be like webring dogfooding 2024-08-24 18:22:09 your website has to have some part of it programmed in forth with available sources 2024-08-24 18:22:31 My website runs on make lol 2024-08-24 18:22:32 if your webserver is running on your nodeJS forth thingy, then yes that'll work :D 2024-08-24 18:23:08 but I don't have anything for this yes, like a banner 2024-08-24 18:23:21 I figured I should at least find.. like 5-10 people first haha 2024-08-24 18:23:29 but lots of folks talk about forth, nobody's writing it 2024-08-24 18:23:37 so that complexifies things a bit in finding these 10 2024-08-24 18:24:08 I did write a Forth HTML generator and share it in here 2024-08-24 18:24:21 Lost to time, and pastebin 2024-08-24 18:24:43 Wouldn't take long to rewrite, was only a few lines 2024-08-24 18:26:15 https://raw.githubusercontent.com/XXIIVV/oscean/main/src/oscean.tal 2024-08-24 18:26:23 https://raw.githubusercontent.com/XXIIVV/oscean/main/src/maeve.tal 2024-08-24 18:26:33 this is some parts of how xxiivv is generated 2024-08-24 18:28:04 neauoire: it's at https://github.com/jhswartz/eczema - if you do try eczema-irc, the listed websocket to libera.chat in the README no longer works, so you'd have to setup your own websocket-to-socket proxy to connect anywhere 2024-08-24 18:28:24 I don't have node installed atm 2024-08-24 18:28:26 28 is how I generate xxiivv :P 2024-08-24 18:28:42 hehe 2024-08-24 18:28:48 you don't need node, it runs in a browser 2024-08-24 18:28:58 Oh, I gots me one of these 2024-08-24 18:29:05 lemme have a look 2024-08-24 18:30:40 oh that's pretty neat 2024-08-24 18:33:44 Honestly for HTML, PDF, etc groff is not incredibly far away from what you'd do in Forth 2024-08-24 18:34:53 yeah, there's lots of different ways of doing that 2024-08-24 18:34:57 Forth has all the features of troff language, just needs the backend/typesetting stuff ported 2024-08-24 18:40:23 I started writing a roff implementation a while back, I should probably try to finish it at some point 2024-08-24 18:43:13 I know it sounds hand-wavy to say "just needs the backend/typesetting" but within reasonable assumptions/reqs that's not too much work 2024-08-24 18:43:55 The thing that tripped me up last time is getting into PDF weeds, rasterising, TTF etc 2024-08-24 18:44:13 I could have made it a lot easier on myself 2024-08-24 18:44:47 I started a html2 renderer in uxn a while back, kicked my butt 2024-08-24 18:48:10 I do just want to cargo cult UNIX sometimes 2024-08-24 18:53:09 the J1 is pretty cool 2024-08-24 18:54:01 15:51 < veltas> The quirks you talk about, even real arch's have those, and so it is really part of the fun 2024-08-24 18:54:08 hey, uxn *is* a real architecture 2024-08-24 18:54:30 I thought maybe real would mean it was manifactured 2024-08-24 18:54:32 I don't think Thinking Forth contains the word "refactoring" 2024-08-24 18:54:34 it's real to-me 2024-08-24 18:54:49 just "factoring" 2024-08-24 18:56:26 neauoire: there used to be a Forth webring: https://web.archive.org/web/20161101081337/http://nav.webring.org/cgi-bin/navcgi?ring=forth;list 2024-08-24 18:56:35 but then webring.org went down 2024-08-24 18:57:08 these often do with time 2024-08-24 18:57:17 might be worth resurecting 2024-08-24 18:57:28 there's quite a bit of activity in the concat community these days 2024-08-24 18:57:42 people are rediscovering joy, factors, etc.. 2024-08-24 18:57:46 and making up new ones too 2024-08-24 19:00:04 beryllium basically isn't carcinogenic; it causes berylliosis, which is horrible and incurable but not really a cancer. of course any persistent injury will cause some amount of cancer but that isn't really the thing to worry about with beryllium 2024-08-24 19:01:11 16:23 < neauoire> but lots of folks talk about forth, nobody's writing it 2024-08-24 19:01:14 teenage sex 2024-08-24 19:01:50 lol 2024-08-24 19:05:19 By real I meant for a real processor 2024-08-24 19:06:07 This reminds me of the 'imaginary numbers' conversations 2024-08-24 19:06:58 16:23 < neauoire> but lots of folks talk about forth, nobody's writing it 2024-08-24 19:07:29 that's definitely one option but you could maybe use Forth words rather than interpreting a different programming language 2024-08-24 19:08:29 you can avoid getting into the PDF weeds by starting with a strictly limited featureset. start with the core fonts, for example, and only emit uncompressed page objects with only text operations on them 2024-08-24 19:08:58 I agree, and that's where I was starting 2024-08-24 19:09:16 most architectures have never been implemented in hardware, only microcode 2024-08-24 19:09:23 I definitely went off-piste though, and also I don't have a lot of time so I don't tend to accomplish much anyway 2024-08-24 19:09:33 oops, sorry, I was trying to paste the 16:33 < veltas> Honestly for HTML, PDF, etc groff is not incredibly far away from what you'd do in Forth 2024-08-24 19:09:44 when I said "that's definitely one option but" 2024-08-24 19:09:45 Well I picked up the conversation anyway lol 2024-08-24 19:09:45 there's a couple of uxn FPGAs, that's the more real it has come to be 2024-08-24 19:09:57 uxn FPGAs are more real than the 8086 ever was 2024-08-24 19:10:01 haha 2024-08-24 19:11:10 how many macrocells does uxn require? 2024-08-24 19:11:29 Any plan to get in on a tiny tapeout? 2024-08-24 19:11:45 macrocells? 2024-08-24 19:11:53 I don't know about this kinds of things 2024-08-24 19:12:08 neauoire: your remark about how nobody knows how to extract a square root in Forth inspired me to write forth-distance.md in http://canonical.org/~kragen/sw/pavnotes2.git 2024-08-24 19:12:19 neauoire: https://en.wikipedia.org/wiki/Macrocell_array 2024-08-24 19:12:59 I saw this! after the strangeloop talk, akartik sent me a link to it! 2024-08-24 19:13:18 possibly neauoire's internet connection is not fast enough to load Wikipedia pages, and they do not yet have a .ZIM file parser in uxn 2024-08-24 19:13:25 I'm currently implementing a bresenham circle routine for someone in uxntal 2024-08-24 19:13:32 xentrac: Where was this remark made? 2024-08-24 19:13:51 veltas: https://100r.co/site/weathering_software_winter.html 2024-08-24 19:14:21 > Forth had a different problem, everyone I'd talk to would say Forth was the best, and that I should really use it, but then I'd ask them questions like, "how do I calculate the distance between two points?" I walked away from that interaction thinking, well, it seems like a lot of people like Forth, but don't write it. It was hard to find any code at all. 2024-08-24 19:14:35 neauoire: which thing did yo usee? 2024-08-24 19:15:00 akartik sent me a link to a git file which I pulled and it was your distance implementation 2024-08-24 19:15:01 If you want to compare two distances, you don't need the square root 2024-08-24 19:15:06 a .ZIM file parser in uxn would be very useful for weathering a software winter 2024-08-24 19:15:13 yes, but to calculate one distance you do 2024-08-24 19:15:16 what is .ZIM? 2024-08-24 19:15:39 for the macrocell or fpga stuff, you'd have to ask the implementers 2024-08-24 19:15:40 .ZIM is the Kiwix file format in which you can download offline copies of Wikipedia, Stack Exchange, etc. 2024-08-24 19:15:52 tsalvo did a solid FPGA implementation of Varvara which runs everything 2024-08-24 19:15:57 for the Analog Pocket 2024-08-24 19:15:58 xentrac: Have you seen the fig forth cos/sin implementation? 2024-08-24 19:16:04 neauoire: np, i was just curious if it'd fit on any of the devices i have lying around here 2024-08-24 19:16:10 xentrac: thanks 2024-08-24 19:16:21 also for example Project Gutenberg: https://cdimage.debian.org/mirror/kiwix.org/zim/gutenberg/?C=S;O=D 2024-08-24 19:16:39 veltas: no, does it use CORDIC? 2024-08-24 19:16:48 It's just a lookup table 2024-08-24 19:16:50 CORDIC seems suitable for fig-Forth 2024-08-24 19:16:52 Fixed point 2024-08-24 19:17:03 It's one block though 2024-08-24 19:17:06 not much precision then? 2024-08-24 19:17:16 Actually a reasonable amount of precision 2024-08-24 19:17:19 Enough for a lot 2024-08-24 19:17:29 CORDIC wouldn't require an entire block 2024-08-24 19:18:32 It's not as smart as CORDIC 2024-08-24 19:18:34 and fig-Forth was written for machines without hardware multipliers, which would also favor CORDIC over things like linear interpolation of a lookup table or splines 2024-08-24 19:18:49 Oh it doesn't interpolate lol 2024-08-24 19:18:55 At least I don't think so 2024-08-24 19:19:17 I think CORDIC would be more steps, but more accurate 2024-08-24 19:19:35 I think it's cool anyway 2024-08-24 19:20:24 zelgomer is a fig forth appreciator 2024-08-24 19:20:46 I've never looked at fig-Forth 2024-08-24 19:20:58 I did look through the MS-DOG version of F83 the other night 2024-08-24 19:21:06 Nice 2024-08-24 19:21:33 not in the interests of retrocomputing but more with the objective of understanding how they implemented control structures and create does>, which I still don't understand 2024-08-24 19:22:05 CORDIC is definitely more steps than a lookup table 2024-08-24 19:22:48 I think I probably need a better browsing environment for reading the F83 source though 2024-08-24 19:23:14 something that displays shadow screens 2024-08-24 19:23:38 Sounds like a job for a forth 2024-08-24 19:24:03 you could certainly do it in Forth, but I was thinking maybe I'd do it in JS :) 2024-08-24 19:24:39 Halloween's a couple of months away 2024-08-24 19:27:16 Would an editor which can synchronise two files be any use? 2024-08-24 19:28:44 for browsing shadow screens? 2024-08-24 19:28:57 Yeah 2024-08-24 19:29:17 well, you could put the shadow screens in a different file 2024-08-24 19:29:27 but you could also put them in the same file 2024-08-24 19:29:43 I was originally thinking they were in separate files but they're probably interleaved 2024-08-24 19:31:10 they're normally in the same file; the first half of the file has its shadow screens in the second half 2024-08-24 19:31:54 veltas> zelgomer is a fig forth appreciator 2024-08-24 19:31:59 i just like starting at the beginning 2024-08-24 19:33:03 i still consider myself a forth novice, and i've decided to focus on old-school forth and then go from there rather than learning from the bad decisions made since then 2024-08-24 19:33:07 you might be interested to know that Mohasco Forth has come to life 2024-08-24 19:33:11 uh, come to light 2024-08-24 19:33:56 https://github.com/monsonite/1968-FORTH 2024-08-24 19:34:31 "Programing a Problem-Oriented-Language" https://archive.org/details/chuck-moore-forth-book 2024-08-24 19:34:36 zelgomer: I definitely have learned much from computing history 2024-08-24 19:35:00 POL is two years later 2024-08-24 19:35:33 History of computers, programming history, development of languages like C, Forth, etc 2024-08-24 19:36:15 There's some great stuff in history :P 2024-08-24 19:36:35 yeah, as a long-time c guy it's hard for me to go backwards and imagine what b was like without types. going off on that tangent a few weeks ago was very enlightening to me. 2024-08-24 19:37:33 You realise "C-style languages" are more "B-style languages" 2024-08-24 19:37:51 What about Algol? :P 2024-08-24 19:38:19 Syntax is quite different 2024-08-24 19:40:31 Unless we mean semantics in which case "C-style languages" have just as much in common with Fortran 2 2024-08-24 19:42:34 I guess the structure stuff is all ALGOL 2024-08-24 19:42:34 hi 2024-08-24 19:42:40 Hi 2024-08-24 19:42:50 veltas: Do you use linux? 2024-08-24 19:44:19 Yup 2024-08-24 19:44:23 veltas: I'm having a serious problem; my laptop doesn't work well on Linux, but it does on Windows 2024-08-24 19:46:23 Just FYI this isn't a tech support channel, it's for discussion about the Forth programming language and related languages 2024-08-24 19:47:03 It's not strictly an on-topic channel but it's not often people come in here talking about laptop trouble 2024-08-24 19:48:24 veltas: Where can I find the technical support chat? 2024-08-24 19:49:50 What distro are you using? 2024-08-24 19:50:21 That's usually a good place to start, most distros have official IRC support channels 2024-08-24 19:52:07 You can search channel names with /msg alis list *pattern* and channel topics with /msg alis list * -topic *pattern* 2024-08-24 19:52:38 I didn't spot any general tech help channels with a lot of users 2024-08-24 19:54:23 You can add -min 10 to only list channels with at least 10 nicks 2024-08-24 19:54:37 veltas GeDaMo: No matter which Linux distribution I use, all of them have the same poor performance, whereas Windows performs differently 2024-08-24 19:54:56 What distro are you on right now? 2024-08-24 19:55:13 veltas: Windows 10 2024-08-24 19:55:24 I mean which Linux are you trying right now? 2024-08-24 19:55:32 There's a lot of smart people on distro support channels who might be able to help tune it better 2024-08-24 19:55:32 what was the last linux distro that you used that you were unhappy with? 2024-08-24 19:58:22 veltas zelgomer: xubuntu, debian, slackware, lubuntu, fedora, archlinux 2024-08-24 19:58:37 try #debian 2024-08-24 19:59:10 On OFTC IRC network 2024-08-24 19:59:17 The main one is on OFTC 2024-08-24 20:01:01 zelgomer veltas: q4os 2024-08-24 20:01:49 here, this seems to do a good job of rendering the F83 text files as plain Unix text files: http://canonical.org/~kragen/sw/dev3/blk2unix.py 2024-08-24 20:02:36 xentrac: i open them with vim and use :%!fold -w 64 2024-08-24 20:03:08 zelgomer: that doesn't help with shadow screens; this displays the shadow screens 2024-08-24 20:03:12 well, "displays" 2024-08-24 20:03:28 vim has syntax highlighting for Forth though 2024-08-24 20:03:52 true, i have to use "50%" to jump to the start of the shadow screens 2024-08-24 20:04:00 it's a little clunky 2024-08-24 20:04:05 veltas: I thought the struct stuff was ALGOL but jcowan corrected me. ALGOL only had arrays, not structs 2024-08-24 20:05:14 hmm, I think I'll add \ down the center divider so vim's syntax highlighting doesn't get confused 2024-08-24 20:09:11 okay, done 2024-08-24 20:10:21 now if you run http://canonical.org/~kragen/sw/dev3/blk2unix.py on a block file with shadow screens it will render the shadow screens as \ comments 2024-08-24 20:11:52 it's super slow, converting kernel86.blk takes 70 milliseconds 2024-08-24 20:11:58 Wait xentrac what is canonical.org, is that the Ubuntu canonical? 2024-08-24 20:12:22 70ms, wow time to go make a cup of tea and come back 2024-08-24 20:12:55 no, they wanted to buy the domain from us when they started up but we didn't want to break links 2024-08-24 20:13:23 What is it then? 2024-08-24 20:13:31 the canonical hackers 2024-08-24 20:13:40 Oh s*** 2024-08-24 20:14:01 I accessed it just now, they already have my IP 2024-08-24 20:14:17 haha 2024-08-24 20:17:04 Was there ever a root page? 2024-08-24 20:17:31 but which one is the canonical canonical?? 2024-08-24 20:18:05 surely nobody has ever made that joke before 2024-08-24 20:18:18 i am the first. you are all witnesses. 2024-08-24 20:19:38 veltas: there had been a page there a few years ago 2024-08-24 20:19:57 I'll hop in the wayback machine 2024-08-24 20:27:40 yeah, I should fix the root page 2024-08-24 20:29:13 so now the source code of F83 looks like this: 2024-08-24 20:29:15 \ 16 and 8 bit Memory Operations 22Aug83map \ \ 16 and 8 bit Memory Operations 05MAR83HHL 2024-08-24 20:29:18 CODE @ (S addr -- n ) \ @ 2024-08-24 20:29:20 BX POP 0 [BX] PUSH NEXT END-CODE \ Fetch a 16 bit value from addr. 2024-08-24 20:29:23 CODE ! (S n addr -- ) \ ! 2024-08-24 20:29:26 BX POP 0 [BX] POP NEXT END-CODE \ Store a 16 bit value at addr. 2024-08-24 20:30:40 that would probably look nice if my irc client was wider than 80 columns 2024-08-24 20:30:56 zelgomer: it does 2024-08-24 20:36:49 it also kind of requires a fixed-wdith font 2024-08-24 20:38:04 sure, but anything else is a crime against humanity 2024-08-24 20:38:21 fixed-width fonts are the crime against humanity 2024-08-24 20:38:35 well mostly. I guess Chicago is tolerable 2024-08-24 20:38:37 barely 2024-08-24 20:38:39 i forgive you for your sins 2024-08-24 21:17:32 I just found out that Emacs has a "Forth block mode" which automatically does the 64 character line thing 2024-08-24 21:18:37 it also puts a >> mark at the beginning of the current block so you can see the block boundary 2024-08-24 21:18:49 and activates Forth syntax highlighting 2024-08-24 21:20:34 but neither Exuberant Ctags nor Emacs's etags supports building tags files for Forth 2024-08-24 21:20:55 "forth syntax highlighting" 2024-08-24 21:21:08 heh 2024-08-24 21:21:17 all the highlighters i know interpreted ( when it came after [char] 2024-08-24 21:21:19 and Emacs's Forth block mode doesn't seem to have any shadow screen support 2024-08-24 21:21:52 Emacs does disregard ( when it comes after [char] 2024-08-24 21:22:12 but not after ascii which is what you'd want for F83 2024-08-24 21:23:42 it also doesn't know about \s comments to end of block 2024-08-24 21:25:17 Vim has exactly the same set of advantages and drawbacks except that it doesn't support block files 2024-08-24 21:33:35 first time hearing about \s. why? '(' is already there! 2024-08-24 21:37:22 honestly i just quit using syntax highlighting for forth. you pretty much have to evaluate the source to be able to highlight it correctly. 2024-08-24 21:37:41 i have a ~/.vim/after/syntax/forth.vim that does "setl syntax=" 2024-08-24 21:38:31 hmm, I wonder what ( does if there's no matching ) in the block 2024-08-24 21:38:59 i think i asked that question in here months ago :) either that or ", i don't remember now. 2024-08-24 21:39:13 zelgomer: you could have your Forth write out information about how it evaluated the source to be able to highlight it correctly 2024-08-24 21:39:25 man, this 01968 version of Forth is pretty weird: OPERATION SWAP 0 LS XCH FF LS 0 SS XCH FF SS RETURN 2024-08-24 21:39:50 OPERATION CONSTANT E1 LX X3 I LD LOC LIT ACC 2024-08-24 21:39:50 2 ST X3 INST 0 LS 3 ST X3 INST RETURN 2024-08-24 21:40:48 OPERATION DUMBO.DROP 2024-08-24 21:40:58 ow, not on my FOOT! 2024-08-24 21:41:11 ACTION goes to the hospital 2024-08-24 22:53:55 hi. my marix clients can't find forth's room. can you please invite me? @origedit:matrix.org 2024-08-24 22:56:41 The matrix bridge was shut down last year; https://matrix.org/blog/2023/11/28/shutting-down-bridge-to-libera-chat/ 2024-08-24 22:57:37 hello 2024-08-24 22:58:16 hi ryan10 2024-08-24 22:58:38 crc: Do you use linux? 2024-08-24 23:01:00 Sort of; I use Android (which uses the Linux kernel) and the Termux app, and on an iPad I use iSH which semi-emulates an x86 Alpine Linux system 2024-08-24 23:01:17 for daily use, I use OpenBSD, and on a server, FreeBSD 2024-08-24 23:05:29 you use ilo in an android device? that's crazy! 2024-08-24 23:05:41 ryan10: is linux using you? 2024-08-24 23:10:21 crc: interesting, I didn't know about iSH! can it do GUI apps? 2024-08-24 23:10:36 kpn: yes 2024-08-24 23:11:21 xentrac: yes, but not well 2024-08-24 23:12:40 for GUI, I run a vncserver on both termux and ish, and connect with a local vnc client. But iPadOS's limits mean that the background program (iSH in this case) is somewhat deprioritized, so it's noticably slow to work with 2024-08-24 23:15:45 I could probably find a way to make this better, but have become tired of dealing with Xcode in recent years, so largely don't do much development for iPad now 2024-08-24 23:17:54 (I will have updates on the RetroForth & Konilo ports, and my Gopher client for iOS at some point, but it's hard to get motivated to work on them since I'd rather be writing programs in them, rather than dealing with Xcode's headaches and updating ancient Objective-C code) 2024-08-24 23:35:35 crc: it can't do a GUI app using the actual screen, just over VNC? 2024-08-24 23:36:04 apparently Termux has the same flaw 2024-08-24 23:38:04 xentrac: correct 2024-08-24 23:38:41 what a fucking nightmare 2024-08-24 23:39:11 I don't really run GUI programs most of the time, so this doesn't bother me much 2024-08-24 23:39:24 not being allowed to write them is a different problem 2024-08-24 23:39:54 termux apparantly has a termux-x11 extension that allows it to bypass needing vnc, but I've not tried it yet 2024-08-24 23:42:17 oh? I thought that was just a way to run a VNC server that spoke X11 2024-08-24 23:44:07 "Termux:X11 is a fully fledged X server. It is built with Android NDK and optimized to be used with Termux" 2024-08-24 23:44:28 I've not looked at how it actually works internally 2024-08-24 23:46:07 at least under termux, the vnc runs fast enough for the occasional times I run anything graphical (which is basically just ilo+x11 and some uxn programs) 2024-08-24 23:49:58 aha, cool 2024-08-24 23:51:01 yeah, VNC isn't as fast as shared memory, but it does allow you to transmit pixel data in a format that need only be copied into the framebuffer 2024-08-24 23:51:28 the nature of the protocol makes it jerky when there's any network latency, but on localhost there isn't 2024-08-24 23:53:16 it's a much nicer protocol than X11 in many ways, but it has a few serious defects