00:00:00 --- log: started forth/18.11.19 00:13:30 --- quit: phadthai (Ping timeout: 268 seconds) 00:26:10 --- join: xek (~xek@apn-31-0-23-82.dynamic.gprs.plus.pl) joined #forth 00:35:35 --- join: john_cephalopoda (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 00:35:47 Hey 00:45:39 Good afternoon Forthwrights :) 00:49:05 --- join: phadthai (mmondor@ginseng.pulsar-zone.net) joined #forth 00:51:00 On the one hand I want to write a forth library for handling images, on the other hand I really don't want to mess with color profiles... Hmmmm... 00:58:15 --- quit: Keshl (Quit: Konversation terminated!) 00:58:39 Do you have an application for it in mind? 00:59:43 Yeah, I kinda would like to save my Mandelbrot sets to PNG instead of Farbfeld. 01:00:05 Farbfeld is kinda clumsy. It isn't a great format. 01:00:45 So I'm thinking, if I'm going for PNG saving, I could just as well make it a library so other people can use it, too. 01:01:17 If it's for desktop use, could you use an existing C library? 01:02:25 Yeah, that would be a possibility... 01:03:03 Then I'd have to rely on the C bindings that gforth gives me. 01:03:22 --- join: Keshl (~Purple@24.115.185.149.res-cmts.gld.ptd.net) joined #forth 01:03:45 Is that a problem? 01:05:00 I don't know if I should just use those bindings and have things done or if I should write it directly in Forth, so I learn something new :þ 01:06:20 --- join: dave0 (~dave@47.44-27-211.dynamic.dsl.syd.iprimus.net.au) joined #forth 01:06:57 re 01:11:46 I haven't looked into gForth much, read the manual a while back, and some of the related papers 01:12:24 More like skimmed the manual 01:13:02 Hey dave0 01:13:21 Hi Dave 01:13:23 hi john_cephalopoda 01:13:26 hi rdrop-exit 01:19:08 --- join: smokeink (~smokeink@185.189.254.154) joined #forth 01:22:47 --- join: ncv (~neceve@unaffiliated/neceve) joined #forth 01:39:49 --- quit: ncv (Ping timeout: 240 seconds) 01:39:59 --- join: ncv (~neceve@unaffiliated/neceve) joined #forth 01:43:49 --- join: TheCephalopod (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 01:46:59 --- join: ncv_ (~neceve@unaffiliated/neceve) joined #forth 01:47:07 --- quit: ncv (Read error: Connection reset by peer) 01:54:10 --- join: nighty- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 02:03:49 --- quit: ashirase (Ping timeout: 240 seconds) 02:07:51 --- join: ashirase (~ashirase@modemcable098.166-22-96.mc.videotron.ca) joined #forth 02:10:33 --- quit: ncv_ (Ping timeout: 250 seconds) 02:23:53 --- join: ncv (~neceve@unaffiliated/neceve) joined #forth 02:27:56 --- quit: dys (Ping timeout: 268 seconds) 02:35:41 --- join: dys (~dys@tmo-107-75.customers.d1-online.com) joined #forth 02:37:46 --- quit: pierpal (Quit: Poof) 02:38:02 --- join: pierpal (~pierpal@host91-236-dynamic.22-79-r.retail.telecomitalia.it) joined #forth 03:02:52 --- quit: TheCephalopod (Quit: Trees can see into your soul. They lurk everywhere.) 03:43:44 gforth has a ton of features. Personally maybe too many, but it also comes with a ton of libraries it doesn't tell you about 03:44:55 Don't really see how farbfeld is clumsy, the design doesn't really give room for that. Unless by "clumsy" you mean "uncompressed"? 03:48:32 oh it's an image format 03:58:36 what you up to dave lad 04:15:44 trying to code some forth words 04:15:47 it's hard 04:18:32 what is? 04:19:40 it's hard to code in forth! 04:19:45 juggling the stack 04:19:58 :) Anything in particular? 04:20:14 --- quit: ncv (Ping timeout: 272 seconds) 04:20:31 It becomes second nature after a while 04:20:37 dave0: don't forget about the power of the return tsack 04:21:19 i did a MEM= ( c-addr c-addr n -- flag) that's for comparing 2 strings that are the same length 04:21:20 factor more 04:22:00 I commented on a post on lobste.rs, rambled about Forth, but I point I made was the pure power of a directly accessable return stack 04:22:42 yeah it's not usual in a high level language 04:22:46 What's lobste.rs? 04:23:12 like Reddit or Hacker News (I think, I don't use HN) but less popular 04:23:30 Ah, thanks 04:23:59 You need an invite to post 04:32:59 --- join: ncv (~neceve@unaffiliated/neceve) joined #forth 04:33:50 --- quit: ncv (Read error: Connection reset by peer) 04:42:50 Dave, that's a good candidate for a primitive 04:45:17 If I were to do it in high level Forth it would look something like this (non standard) 04:45:47 : foo ( a1 a2 # -- -1|0 ) 04:45:53 bounds ?do 04:46:00 b@+ i b@ <> if 0m leave; then 04:46:07 loop -1m ; 04:46:38 (non tested) 04:47:05 Not very efficient 04:47:38 i wrote a long one 04:49:01 "b@+", "0m", "-1m", "leave;" are primitives 04:50:51 That's off the cuff, I wouldn't normally write such a word in high level Forth 04:58:03 : (MEM=) ( c-addr c-addr n -- flag) 04:58:03 >r 04:58:03 BEGIN r@ 0> 04:58:03 WHILE count rot count rot = 04:58:03 WHILE r> 1- >r 04:58:03 REPEAT 04:58:05 THEN 04:58:09 2drop r> 0= ; \ length is always on the return stack 04:58:11 big flood 04:58:15 that's what i came up with 04:59:15 i don't have DO LOOP yet 05:00:02 Are you implmenting your own Forth then dave 05:00:18 yeah but very slowly 05:00:22 could do it recursively 05:01:24 2DUP C@ SWAP C@ = INVERT IF RECURSE ELSE FALSE THEN something like that 05:02:02 ofc with incrementing the address values and decrementing/comparing len with 0 at the start of a recursion 05:06:06 KipIngram got me on to count to walk thru a string 05:07:25 SWMBO is back, gotta go. Keep on Forthin' 05:07:33 cya rdrop-exit 05:07:34 --- quit: rdrop-exit (Quit: Lost terminal) 05:07:45 SWMBO? 05:08:46 ah yeah count is good 05:09:02 would actually mean you don't have to worry about increments in a recursive implementation 05:24:17 --- quit: smokeink (Ping timeout: 244 seconds) 05:33:44 --- join: TheCephalopod (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 05:33:55 Hi again 05:42:40 --- join: ncv (~neceve@unaffiliated/neceve) joined #forth 06:00:06 --- quit: pierpal (Quit: Poof) 06:00:26 --- join: pierpal (~pierpal@host91-236-dynamic.22-79-r.retail.telecomitalia.it) joined #forth 06:52:57 --- join: [1]MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 06:53:38 WilhelmVonWeiner: you familiar with https://calebjc.com/1999/01/12/hot-tubbing-an-online-community/ ? looks like lobste.rs is the next 'tub' so to speak. 06:55:44 --- quit: MrMobius (Ping timeout: 244 seconds) 06:55:44 --- nick: [1]MrMobius -> MrMobius 06:55:50 I wouldn't know. I don't consider myself a member of any online "communities" 06:56:07 excpet #Forth, of which I am your KING and will be respected as such 06:56:42 Your king must take his leave to eat hot spicy ramen 06:59:09 --- quit: ncv (Ping timeout: 240 seconds) 07:23:38 --- quit: TheCephalopod (Quit: Trees can see into your soul. They lurk everywhere.) 07:31:39 --- quit: tabemann (Ping timeout: 276 seconds) 07:35:13 https://forthworks.com/share/91c0f2e63f7764959e09b168376243d9 is a retro implementation of a mem= word. 07:36:07 Takes 22.33s to do 1,000,000 checks of length sequences on my server. If the factors are converted to assembly this drops to 16.44s. 07:50:55 Zarutian: Cool article. It reminds me of Mastodon, the decentralized twitter alternative. Many instances opened their doors for some time but then closed registration when they had reached a certain size. Inviting new people is possible for anybody on these instances. 07:51:35 General registration is usually opened for short periods of time, so a random flood of people will come in, then start to settle in and the community will organically grow together. 08:02:40 --- quit: dave0 (Quit: dave's not here) 08:08:33 john_cephalopoda: Do you use mastodon? 08:11:36 --- join: ncv (~neceve@unaffiliated/neceve) joined #forth 08:12:33 I'm looking for additional forthers to follow. 08:25:37 pointfree: I am on mastodon, chaos.social/@jmf 08:25:52 I posted my Mandelbrot stuff there. 08:53:05 mastodon is so ugly 08:53:12 I prefer pleroma instances 08:58:17 --- quit: dys (Ping timeout: 268 seconds) 08:59:18 The great thing is that it's all interoperable. 08:59:33 The protocol is open, you could even make your own UI. 09:00:45 Mastodon has even integrated RSS, just attach ".rss" to the user name. 09:01:01 e.g. https://chaos.social/@jmf.rss 09:22:07 --- join: dys (~dys@tmo-080-3.customers.d1-online.com) joined #forth 09:25:29 --- join: mark4 (~mark4@148.80.255.161) joined #forth 09:40:18 --- quit: ncv (Read error: Connection reset by peer) 09:46:55 --- quit: pierpal (Quit: Poof) 09:47:16 --- join: pierpal (~pierpal@host91-236-dynamic.22-79-r.retail.telecomitalia.it) joined #forth 09:54:41 --- join: ncv (~neceve@unaffiliated/neceve) joined #forth 09:59:05 --- quit: xek (Remote host closed the connection) 09:59:28 --- join: xek (~xek@apn-31-0-23-82.dynamic.gprs.plus.pl) joined #forth 10:00:26 --- quit: proteusguy (Ping timeout: 264 seconds) 10:48:53 --- quit: ncv (Ping timeout: 260 seconds) 10:55:19 --- join: ncv (~neceve@unaffiliated/neceve) joined #forth 11:15:03 --- quit: ncv (Remote host closed the connection) 11:15:29 dave0: Yeah, count is good for walking a string. So good, in fact, that I think count is the wrong name fo rit. 11:15:31 for it 11:15:55 I call mine .c@++ (the . means it keeps the incremented address). 11:16:08 Then that carries over to other sizes - .w@++ .@++ .h@++ etc. 11:16:33 And that's post-increment. I have pre-increment and pre and post decrement versions too. 11:16:54 That's one of the big reasons I have so many primitives; the primitive count goes up fast when you start covering "families" like that. 11:19:36 --- quit: pierpal (Remote host closed the connection) 11:50:31 --- join: proteusguy (~proteus-g@cm-134-196-84-98.revip18.asianet.co.th) joined #forth 11:50:31 --- mode: ChanServ set +v proteusguy 12:57:40 --- quit: proteusguy (Ping timeout: 272 seconds) 13:53:03 --- quit: mark4 (Ping timeout: 268 seconds) 14:36:49 --- join: Keshl_ (~Purple@24.115.185.149.res-cmts.gld.ptd.net) joined #forth 14:40:08 --- quit: dave9 (Ping timeout: 268 seconds) 14:40:10 --- quit: ashirase (Ping timeout: 268 seconds) 14:40:10 --- quit: dddddd (Ping timeout: 268 seconds) 14:40:10 --- quit: Keshl (Ping timeout: 268 seconds) 14:40:45 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 14:41:14 --- join: dave9 (~dave@47.44-27-211.dynamic.dsl.syd.iprimus.net.au) joined #forth 14:42:07 --- join: ashirase (~ashirase@modemcable098.166-22-96.mc.videotron.ca) joined #forth 15:15:09 --- join: wa5qjh (~quassel@freebsd/user/wa5qjh) joined #forth 15:15:41 --- quit: nighty- (Quit: Disappears in a puff of smoke) 15:33:32 --- join: xek_ (~xek@apn-31-0-23-85.dynamic.gprs.plus.pl) joined #forth 15:36:17 --- quit: xek (Ping timeout: 252 seconds) 15:36:59 --- quit: jedb (Ping timeout: 250 seconds) 15:37:01 --- join: jedb_ (jedb@gateway/vpn/mullvad/x-owzxuyevpbrbmscj) joined #forth 15:37:09 --- nick: jedb_ -> jedb 15:47:07 --- join: rdrop-exit (~markwilli@112.201.164.82) joined #forth 15:50:01 --- join: xek__ (~xek@apn-31-0-23-82.dynamic.gprs.plus.pl) joined #forth 15:52:33 --- quit: xek_ (Ping timeout: 244 seconds) 16:00:31 --- quit: john_cephalopoda (Quit: Trees can see into your soul.) 16:09:24 --- join: mark4 (~mark4@12.41.103.244) joined #forth 16:26:20 --- join: dave0 (~dave@47.44-27-211.dynamic.dsl.syd.iprimus.net.au) joined #forth 16:26:53 --- join: jedb_ (~jedb@199.66.90.113) joined #forth 16:27:50 --- quit: jedb (Ping timeout: 268 seconds) 16:29:38 hi 16:42:54 Hi dave0 16:54:08 --- nick: jedb_ -> jedb 17:00:46 hi crc 17:39:55 --- quit: dddddd (Remote host closed the connection) 17:57:37 --- quit: MrMobius (Ping timeout: 252 seconds) 18:04:41 --- join: MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 19:03:13 --- quit: wa5qjh (Remote host closed the connection) 19:46:35 --- quit: dave0 (Quit: dave's not here) 20:00:30 --- quit: rdrop-exit (Quit: Lost terminal) 20:49:46 --- join: pierpal (~pierpal@host91-236-dynamic.22-79-r.retail.telecomitalia.it) joined #forth 21:09:35 --- quit: dys (Ping timeout: 246 seconds) 21:20:35 --- join: proteusguy (~proteus-g@119-46-178-3.static.asianet.co.th) joined #forth 21:20:36 --- mode: ChanServ set +v proteusguy 21:23:23 --- quit: proteusguy (Remote host closed the connection) 21:23:31 --- join: proteusguy (~proteus-g@119-46-178-3.static.asianet.co.th) joined #forth 21:23:31 --- mode: ChanServ set +v proteusguy 21:30:49 --- join: dave0 (~dave@47.44-27-211.dynamic.dsl.syd.iprimus.net.au) joined #forth 21:31:07 re 21:48:01 --- quit: mark4 (Ping timeout: 244 seconds) 22:05:46 --- quit: jedb (Ping timeout: 268 seconds) 22:22:17 --- join: dys (~dys@tmo-108-171.customers.d1-online.com) joined #forth 22:40:25 --- join: jedb (jedb@gateway/vpn/mullvad/x-pgxpuqgtywfmjzem) joined #forth 23:07:36 --- join: smokeink (~smokeink@185.189.254.154) joined #forth 23:12:46 --- quit: pierpal (Quit: Poof) 23:13:06 --- join: pierpal (~pierpal@host91-236-dynamic.22-79-r.retail.telecomitalia.it) joined #forth 23:21:52 --- quit: ttmrichter (Ping timeout: 264 seconds) 23:22:06 --- join: ttmrichter (~ttmrichte@2a00:f10:401:0:4d3:e0ff:fe00:20d) joined #forth 23:59:59 --- log: ended forth/18.11.19