00:00:00 --- log: started forth/18.11.21 00:01:35 --- nick: jedb_ -> jedb 00:38:24 I got a strange bug in my program... 00:38:38 https://bpaste.net/show/8e5d38090995 00:38:50 matrices.fth:51: Invalid memory address 00:40:33 Oh, wait... 00:40:54 Yeah, I'm stupid. Forgot an RDROP 00:51:23 --- quit: rpcope (Ping timeout: 244 seconds) 00:58:45 --- quit: john_cephalopoda (Quit: Trees can see into your soul.) 01:04:06 --- join: ncv (~neceve@unaffiliated/neceve) joined #forth 01:10:12 --- quit: rdrop-exit (Quit: Lost terminal) 01:13:02 --- quit: ncv (Remote host closed the connection) 01:39:26 --- quit: pierpal (Ping timeout: 244 seconds) 01:41:06 --- join: pierpal (~pierpal@host91-236-dynamic.22-79-r.retail.telecomitalia.it) joined #forth 01:46:39 --- quit: pierpal (Quit: Poof) 01:46:55 --- join: pierpal (~pierpal@host91-236-dynamic.22-79-r.retail.telecomitalia.it) joined #forth 02:03:06 --- quit: ashirase (Ping timeout: 268 seconds) 02:07:59 --- quit: smokeink (Remote host closed the connection) 02:08:05 --- join: ashirase (~ashirase@modemcable098.166-22-96.mc.videotron.ca) joined #forth 02:08:20 --- join: smokeink (~smokeink@118.131.144.142) joined #forth 02:16:47 --- join: nighty- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 03:17:03 --- join: john_cephalopoda (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 03:20:09 https://thecutecuttlefish.org/tmp/mobile.png <-- pforth on android 03:39:49 --- quit: xek (Ping timeout: 244 seconds) 03:45:22 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 04:05:00 --- join: xek (~xek@apn-37-248-138-80.dynamic.gprs.plus.pl) joined #forth 04:12:19 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 04:36:01 --- quit: john_cephalopoda (Quit: Trees can see into your soul. They lurk everywhere.) 05:00:30 --- join: john_cephalopoda (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 05:01:23 --- quit: rpcope (Ping timeout: 252 seconds) 05:06:15 --- quit: pierpal (Quit: Poof) 05:06:33 --- join: pierpal (~pierpal@host91-236-dynamic.22-79-r.retail.telecomitalia.it) joined #forth 05:08:21 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 05:09:41 --- quit: dddddd (Ping timeout: 246 seconds) 05:16:12 --- join: proteusguy (~proteus-g@cm-134-196-84-98.revip18.asianet.co.th) joined #forth 05:16:12 --- mode: ChanServ set +v proteusguy 05:20:24 --- quit: proteusguy (Client Quit) 05:20:42 --- join: proteusguy (~proteus-g@cm-134-196-84-98.revip18.asianet.co.th) joined #forth 05:20:42 --- mode: ChanServ set +v proteusguy 05:21:53 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 05:34:44 --- join: Zarutian (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 05:37:05 --- quit: gravicappa (Ping timeout: 268 seconds) 06:05:18 --- quit: rpcope (Ping timeout: 250 seconds) 06:21:19 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 06:25:48 --- quit: rpcope (Ping timeout: 268 seconds) 06:33:49 there is a gforth app by the way john_cephalopoda 06:35:50 also you can RDROP out of the loop at any point if you put those MATRIX...THEN checks in their own words 06:37:37 not loop, "create" word. Someone said loop in a talk I'm listening to. 06:38:38 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 06:43:07 --- quit: smokeink (Remote host closed the connection) 06:56:42 --- quit: rpcope (Ping timeout: 276 seconds) 07:15:51 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 07:16:28 --- quit: jedb (Remote host closed the connection) 07:19:24 --- join: MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 07:22:30 --- quit: rpcope (Ping timeout: 245 seconds) 07:36:10 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 07:38:06 --- join: jedb (~jedb@199.66.90.113) joined #forth 07:38:20 Conditional returns for the win... 07:42:03 --- quit: Zarutian (Read error: Connection reset by peer) 07:42:09 --- join: Zarutian_2 (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 07:48:55 --- quit: tabemann (Ping timeout: 250 seconds) 08:14:46 --- nick: Zarutian_2 -> Zarutian 08:54:23 --- join: xek_ (~xek@apn-37-248-138-83.dynamic.gprs.plus.pl) joined #forth 08:58:02 --- quit: xek (Ping timeout: 264 seconds) 09:01:11 --- quit: rpcope (Ping timeout: 244 seconds) 09:06:49 --- quit: moony (Write error: Connection reset by peer) 09:08:41 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 09:13:09 --- quit: rpcope (Ping timeout: 240 seconds) 09:16:33 --- join: gravicappa (~gravicapp@ppp83-237-167-87.pppoe.mtu-net.ru) joined #forth 09:18:59 --- nick: xek_ -> xek 09:45:09 --- join: lonjil2 (~quassel@2a02:418:6050:ed15:ed15:ed15:e741:32d6) joined #forth 09:45:55 --- quit: lonjil (Ping timeout: 250 seconds) 09:47:09 --- join: probablymoony (moony@unaffiliated/moonythedwarf) joined #forth 10:45:26 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 10:50:12 --- quit: rpcope (Ping timeout: 244 seconds) 10:54:46 --- quit: dys (Ping timeout: 252 seconds) 11:00:52 --- quit: xek (Ping timeout: 264 seconds) 11:01:44 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 11:02:52 --- join: dys (~dys@tmo-107-89.customers.d1-online.com) joined #forth 11:09:03 --- join: xek (~xek@apn-37-248-138-80.dynamic.gprs.plus.pl) joined #forth 11:13:44 --- quit: rpcope (Ping timeout: 252 seconds) 11:24:35 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 12:26:22 * crc is going to implement something similar to the dcpu16 hardware model in the next release of retro. (thanks to prompting by Zarutian) 12:35:15 Are you adding I/O to Nga, Rx, or RetroForth? 12:36:16 (This DCPU-16 style thing.) 12:36:59 Retroforth, specifically. Not the minimal nga spec or the basic kernel part (rx). 12:38:05 It'll replace the entire current set of additional opcodes with three new ones for enumerating, identifying, and interacting with the I/O 12:39:50 This mostly affects the internals, but will make it easier to adapt and reuse the IO code across the different interfaces. 12:41:16 It'll also make it considerably easier for me to add new I/O in the future as this will internally use a jump table similar to the opcode processor instead of a bunch of giant switch() statements 12:42:05 I thought the opcode processor was a jump table? 12:42:37 or am I thinking of Nga.c 12:43:21 it is, for the core nga opcodes, but not the current i/o opcodes 13:02:13 --- quit: jedb (Read error: Connection reset by peer) 13:06:01 --- quit: rpcope (Ping timeout: 268 seconds) 13:13:25 --- quit: gravicappa (Ping timeout: 268 seconds) 13:13:51 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 13:22:55 --- quit: rpcope (Ping timeout: 245 seconds) 13:28:45 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 13:38:29 --- quit: rpcope (Ping timeout: 240 seconds) 13:41:13 --- quit: xek (Ping timeout: 252 seconds) 13:45:26 --- join: jedb (~jedb@2604:6880:c742:5a70::f3e) joined #forth 13:47:23 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 13:52:04 --- quit: rpcope (Ping timeout: 244 seconds) 14:01:01 --- quit: jedb (Ping timeout: 252 seconds) 14:07:38 --- join: jedb (~jedb@199.66.90.113) joined #forth 14:28:07 * pointfree just tried john_cephalopoda's sixel mandelbrot set visualization. Very cool! 14:46:27 --- join: smokeink (~smokeink@118.131.144.142) joined #forth 15:01:40 pointfree: Thanks! 15:03:15 pointfree: I am working on a sixel library and a matrices library right now, so eventually you'll be able to just write your data to a buffer matrix and let the sixel library do the work for you. 15:05:42 Off for the night~ 15:05:42 --- quit: john_cephalopoda (Quit: Trees can see into your soul.) 15:06:12 why not just write it straight to linear cells? That's what I'm confused about 15:16:24 --- join: rdrop-exit (~markwilli@112.201.164.82) joined #forth 16:06:25 --- quit: wa5qjh (Remote host closed the connection) 16:08:45 --- join: wa5qjh (~quassel@freebsd/user/wa5qjh) joined #forth 16:33:19 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 16:35:36 --- quit: jedb (Quit: Leaving) 16:35:47 --- join: jedb (~jedb@199.66.90.113) joined #forth 16:38:47 --- quit: rpcope (Ping timeout: 268 seconds) 16:39:02 --- join: dave0 (~dave0@47.44-27-211.dynamic.dsl.syd.iprimus.net.au) joined #forth 16:39:34 hi 16:44:00 hey dave 16:44:27 Good morning Dave and Wilhelm 16:44:50 it's 16:44:55 0044 here 16:45:07 suppose that is kind-of "morning" 16:45:24 08:44 Thursday here 16:47:32 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 16:47:37 Still on my first cup of coffee 16:50:15 Started watching the Forth Day videos yesterday. 16:50:44 I should get around to watching some 16:51:26 i saw the first slab of one about GA and the new GA144, up until the description of the new OKAD 16:51:27 I didn't get through much, too many distractions yesterday. 16:51:52 I watched the first two morning sessions. 16:52:06 Ting and Golding. 16:54:29 --- quit: rpcope (Ping timeout: 240 seconds) 16:55:13 I'll try to finish the morning video sometime today. 16:55:28 quite long too 16:56:54 True, I might skip over some sessions, if the topic isn't interesting to me. 16:58:45 There are 8 morning sessions on the agenda 17:00:38 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 17:01:37 The afternoon video doesn't have an agenda list 17:05:49 --- quit: rpcope (Ping timeout: 244 seconds) 17:13:10 rdrop-exit: click "sort by -> newest first" 17:14:23 thumbs-up the comment so it becomes a top comment 17:14:31 Thanks Pointfree, that worked. Wonder why it doesn't display unless you sort first. 17:15:00 There are 4 afternoon sesssions 17:15:35 12 sessions in all, they really packed the day 17:17:05 I'll probably skip the gForth, lisp, and Cosy ones 17:29:07 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 17:33:09 --- quit: rpcope (Ping timeout: 240 seconds) 18:00:44 --- quit: pierpal (Ping timeout: 250 seconds) 18:07:33 --- join: tabemann (~tabemann@h193.235.138.40.static.ip.windstream.net) joined #forth 18:27:35 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 18:43:28 --- quit: X-Scale (Ping timeout: 244 seconds) 18:46:28 --- quit: dddddd (Remote host closed the connection) 19:01:13 --- quit: tabemann (Ping timeout: 268 seconds) 19:06:17 --- join: X-Scale (~ARM@143.21.54.77.rev.vodafone.pt) joined #forth 19:28:38 --- quit: dave0 (Quit: dave's not here) 20:02:53 --- join: tabemann (~tabemann@2602:30a:c0d3:1890:2db1:4ef6:126b:d5ee) joined #forth 20:38:34 --- join: pierpal (~pierpal@95.239.223.85) joined #forth 21:25:12 --- nick: probablymoony -> moony 21:32:38 * tabemann is happy that he found a faster way to calculate e^x - with only 8 divisions to reach the full precision of double-precision floating point 21:34:34 --- join: dave0 (~dave0@47.44-27-211.dynamic.dsl.syd.iprimus.net.au) joined #forth 21:34:47 hey 21:35:01 hi 21:35:09 hello 21:35:43 hi tabemann, rdrop-exit 21:35:46 sup? 21:36:08 Just finished lunch, chillin' 21:36:35 i've got some candy :-) 21:37:05 I've got Nutella 21:37:08 working on FEXP 21:37:12 :-) 21:37:23 apparently my FEXP works better for 1E than for 10E 21:37:36 so I've gotta increase the number of divisions 21:37:46 I haven't used floating point in 30 years 21:38:21 That paper in the ACM Computing Surveys killed it for me 21:40:06 I still have the issue on my shelf 21:40:23 Just in case 21:41:13 okay 2 + ((70 - 6) / 4) divisions gets me as much precision as I can get 21:41:32 doing everything with fixednums since then? 21:41:54 Yes 21:42:28 and binary scaling 21:42:40 when possible 21:42:57 yeah, I implemented floating point in attoforth, complete with a separate floating point stack and being able to load and store to memory with both single-precision and double-precision 21:43:12 https://en.wikipedia.org/wiki/Binary_scaling 21:44:07 pi Convergent rational approximation of pi. 21:44:10 : pi ( -- numerator denominator ) 21:44:18 $ 24baf15fe1658f99 $ bb10cb777fb8137 ; 21:44:30 for 64-bit Forths 21:46:05 PDF 21:46:10 http://perso.ens-lyon.fr/jean-michel.muller/goldberg.pdf 21:49:37 back 21:55:59 --- quit: proteusguy (Remote host closed the connection) 21:58:20 okay, I honestly did not know about catastrophic cancellation 21:58:55 but I don't see how binary scaling improves on it 21:59:21 because you still have to shift right, and any bits that are below a certain significance are lost 21:59:34 --- quit: pierpal (Read error: Connection reset by peer) 21:59:51 --- join: pierpal (~pierpal@95.239.223.85) joined #forth 22:00:50 --- quit: dave0 (Quit: dave's not here) 22:03:55 For me it's about up front simplicity, you know what you're getting up front, don't have to ponder any weird corner cases 22:06:48 Have you seen this: 22:06:50 https://www.crcpress.com/The-End-of-Error-Unum-Computing/Gustafson/p/book/9781482239867 22:07:55 no I haven't 22:08:11 It was available locally but at double the US price, so I passed on it. Will probably order from Amazon eventually. 22:09:16 I should probably implement fixednums with binary scaling in attoforth 22:09:32 since attoforth on here uses 64-bit cells, there's more than enough precision to go around 22:09:57 and fuck, attoforth supports 128-bit double cells, so potentially I could use those for fixednums 22:11:01 I don't have doubles in my 64-bit Forths, but my scaling operators */mod and u*/mod internally use an 128-bit intermediary. 22:12:15 Also have *hi and u*hi 22:12:48 for the high-order 64 bits or a 128-bit product 22:13:42 yeah, I implemented a full set of double-cell operations 22:14:01 with better support than what Forth 2012 specifies 22:14:31 this is because I anticipate running attoforth on 32-bit systems, and it'd be useful to have 64-bit double cells on those 22:14:32 I figured I'd never need them on a 64-bit Forth, those four operators I just mentioned are all I really need 22:15:29 My 64-bit Forth is for the Host PC side of an umbilical Forth, it's not meant for targets 22:17:03 I'd probably rewrite attoforth if I wanted to run it on a sufficiently small system where I'd consider using an umbilical 22:17:44 I'm thinking more like a Raspberry Pi-type system - smaller than a modern tower or laptop, but way larger than the kind of board you'd run something like Mecrisp on 22:18:38 for starter, attoforth uses a IO manager system designed for running under a preemptive multitasking OS 22:19:14 (attoforth has its own preemptive multitasking system internally independent of and lighter-weight than OS multitasking) 22:19:33 My Forth's are all cooperative. 22:23:30 My host Forth has only two tasks, foreground and background, coroutines for any additional concurrency requirements. 22:23:44 --- join: proteusguy (~proteus-g@184.82.233.251) joined #forth 22:23:44 --- mode: ChanServ set +v proteusguy 22:24:33 *two cooperative tasks 22:24:59 No preemptive multitasking 22:25:58 --- quit: jedb (Read error: Connection reset by peer) 22:26:55 --- join: gravicappa (~gravicapp@ppp83-237-163-149.pppoe.mtu-net.ru) joined #forth 22:31:10 back 22:31:40 yeah, I opted for stuff like locks and condition variables and like 22:32:06 but I've gotta go to bed now 22:32:26 In a cooperative Forth a simple variable can be used as a mutex 22:32:31 good night 22:33:17 --- join: jedb (jedb@gateway/vpn/mullvad/x-iiaaicvyqqvnohnx) joined #forth 22:54:59 --- quit: dys (Ping timeout: 252 seconds) 23:59:59 --- log: ended forth/18.11.21