00:00:00 --- log: started forth/19.04.20 00:23:11 --- join: Croran (~quassel@2601:601:1801:6dde:7d93:b956:e1a6:b755) joined #forth 00:58:17 proteusguy: gforth 00:58:27 Should work on my forth too 00:58:42 :-) 00:59:27 made some progress on one of my white papers over songkran. hope to get a draft done soon... as usual. :-) 00:59:58 Fun stuff. How's the break going? 01:00:10 I went to Hua Hin over songkran 01:00:36 it's over. haha was in Bali again. Back in BKK have to deploy a few projects in the next week or so. 01:02:13 * the_cuckoo says hi :) 01:02:44 had a "fun" couple of weeks - had a stroke 01:03:20 the_cuckoo, :-( how are you? still got symptoms? 01:03:51 absolutely fine - at less risk than ever it would seem 01:04:03 goodness - that's damn lucky! 01:04:12 turns out i've had a hole in my heart my whole life 01:05:04 currently on some blood thinning medication which effectively means it just won't happen again 01:05:11 get that fixed up? 01:05:24 later in the year, yeah 01:05:29 dunno exactly when 01:05:51 good luck! 01:06:09 cheers :) 01:07:00 worst thing about it is that i can't drive for the next 6 months 01:07:13 best about it is that i can't drive for the next 6 months 01:07:16 where do you live? car town? 01:07:16 haha 01:07:21 hate driving :p 01:07:27 I'm in Bangkok. No point in driving here. 01:07:34 :) 01:07:47 i live in town, work from home 01:07:54 no need to drive anyway 01:08:01 that's fortunate 01:08:10 for sure 02:02:31 --- quit: ashirase (Ping timeout: 246 seconds) 02:08:57 --- join: ashirase (~ashirase@modemcable098.166-22-96.mc.videotron.ca) joined #forth 03:10:30 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 04:54:58 <`presiden> proteusguy, having holiday in Bali? also welcome :) 04:57:03 the_cuckoo: Oh, I saw a story just like yours on imgur just a few days ago. 04:57:31 There's some special twisty thing that can be used to easily seal the hole. 07:02:56 --- quit: ashirase (Ping timeout: 246 seconds) 07:05:20 --- join: ashirase (~ashirase@modemcable098.166-22-96.mc.videotron.ca) joined #forth 07:12:07 --- join: X-Scale` (~ARM@46.50.6.99) joined #forth 07:12:30 --- quit: X-Scale (Ping timeout: 245 seconds) 07:12:49 --- nick: X-Scale` -> X-Scale 07:16:24 --- quit: dys (Ping timeout: 268 seconds) 07:23:53 Wish there was a book on "data structures and algorithms in Forth" 07:24:37 An imperative algorithm more or less looks the same in the mainstream imperative languages, C, C++, Java, what-have-you 07:24:44 but translating it to Forth changes a lot. 07:50:38 certainly an interesting idea. Chuck Moore would probably argue that it's adding a lot of unneeded complexity because in forth you'd strictly implement something that fit you exact needs and nothing more. The cost of generalizing the algorithms would be un-forth-like. But a book showing small example problems that happen to need something like common data structures and algorithms would probably be quite compelling. 07:52:12 Probably show the sample problem. Then the initial implementation explaining the data and algorithms. THEN the fully refactored OMG it hardly looks the same final version optimized in a "proper" forth-like manner. Quite a challenging book to write. 07:55:53 --- join: PoppaVic (~PoppaVic@unaffiliated/poppavic) joined #forth 07:57:29 john_cephalopoda: yeah - seems like a fairly standard procedure - the doc described it as an "umbrella-like thing" which is used join the two parts - am generally kinda squeamish, so trying not to consider the details for now - will worry about it nearer the time no doubt :) 08:11:12 <`presiden> what you call something that written in a "proper" forth-like (or other language) manner? 08:11:14 <`presiden> an idiomatic forth? 08:12:05 "forth" 08:12:48 PoppaVic, agreed. ;-) 08:13:16 If you can READ it, you might add: "[forth] source" 08:20:29 --- join: rdrop-exit (~markwilli@112.201.166.63) joined #forth 08:22:38 proteusguy: Thinking Forth comes halfway there, but it's more about the philosophy of Forth than actually implementing things 08:23:26 What might be hard is how algorithms usually require temporary variables and so on, which seem to be big no-nos in Forth 08:23:47 siraben, yep - it's an excellent book for how to approach a problem using forth. but I think what you suggest is a book that applies that concept to real sample apps. 08:24:55 I think using ANS Forth's optional Locals word set would help in these cases 08:25:04 Meh 08:25:06 proteusguy: heh, "Practical Forth" 08:25:25 few real programs avoid any use of temporaries. indeed - Chuck's latest forths always have this "a" register which is used specifically for that purpose. And there there are STILL a few local variables scattered about. 08:26:04 The A register is a register 08:26:31 the thing against temps/locals is when every function is some big thing with several bits of local data declared at the top like it was C. 08:26:41 rdrop-exit, yep - so it's a very efficient temporary. 08:26:55 Imagine writing quicksort without locals or temporary variables, dear me. 08:27:09 If quicksort has ever been written in Forth that is 08:27:13 It's a machine register 08:27:37 yeah... so??? it's a cell. 08:27:54 https://rosettacode.org/wiki/Sorting_algorithms/Quicksort#Forth 08:28:13 seems to detect an "email" in the code, here it is again: https://rosettacode.org/mw/index.php?title=Sorting_algorithms/Quicksort&action=edit§ion=40 08:28:21 this one renders correctly 08:28:37 That isn't so bad, no locals or temporaries needed 08:30:40 You see no difference between a temporary memory variable and a register? 08:31:48 unless a register gets clobbers by primitives in the language then it is simply a nice place to put a fast efficient temp object, no? what am I missing? that's what one does with registers. 08:32:11 As you say, fast and efficient 08:32:34 your point? or are we now in agreement? 08:32:58 Are you locals fast and efficient? 08:33:03 * your 08:33:13 they are if they're in the "a" register. :-) hahaha 08:33:26 which is why Chuck put it there. 08:33:30 That's the difference, yes 08:33:42 completely and precisely my original point. 08:34:21 compilers (liveness analysis, register allocation etc.) tend to make temporary variables whole registers anyway 08:35:40 So if you start using the ANS locals wordset you are at the mercy of your Forth's optmizer 08:35:53 * proteusguy has no intention of doing so. 08:36:21 I applaud you for it 08:36:54 heh 08:37:06 IIRC Chuck's main use for the A register is streaming through memory 08:37:25 Forth compilers hardly optimize anything, so there's that. 08:38:14 Jeff Fox wrote about it and showed some examples as I recall. It's basically a scratch cell that saves a lot of stack movement. Streaming through memory is certainly a valid usecase. 08:38:39 It's still O(1) access anyhow, to access data in a register or the stack or heck, even RAM (cached or uncached) 08:38:41 There's bigger problems to solve like the time complexity of the whole algorithm 08:39:38 Knuth & Co. to the rescue 08:40:13 I should add that certain constant time optimizations DO pay off nicely, like making TOS a register 08:41:30 Or design a stack machine with on-chip stacks 08:42:17 Knuth said something about premature optimization, hm. 08:42:42 "We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%" 08:42:43 he was all for it, right? :-D 08:43:24 I wouldn't call on-chip stacks a premature optimization :) 08:43:55 well, if it is, it's one hell of a commitment to that optimization! 08:45:04 Judging by the way he codes and writes books, he is anything but sloppy :) 08:47:41 I was reminded today of the transputer with its ABC three item stacks 09:10:32 Midnight, time for bed. Ciao :) 09:10:40 --- quit: rdrop-exit (Quit: Lost terminal) 09:31:55 Approaching midnight here, bye all 09:43:53 Forth is a nice abstraction. It can run on a lot of machines 09:51:37 I have to write some more Forth again. 12:20:59 --- quit: gravicappa (Ping timeout: 250 seconds) 12:36:40 --- quit: Zarutian (Ping timeout: 255 seconds) 12:44:14 --- quit: dave0 (Quit: dave's not here) 12:57:05 --- join: Zarutian (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 12:58:47 ls 12:58:51 sorry lol 12:59:02 haven't been on a computer in a couple days I think 13:00:19 interesting discussion on the locals stack 13:00:34 it's why I kinda like FIFO the more I tackle algorithmic problems with Forth 13:02:50 I hope Chuck writes another book before he leaves us 13:06:27 Heh, reading through jonesforth right now, the first things are done exactly how I independently implemented them :þ 13:08:57 I need to write an eForth. 13:16:28 WilhelmVonWeiner: Is there a specification of which words are part of eforth? 13:16:45 whatever's in the eForth book, I suppose 13:17:57 Is it available somewhere? 13:19:53 Amazon, for one. 13:21:16 https://wiki.forth-ev.de/doku.php/projects:ting_s_electronic_forth_bookshelf 13:23:20 --- join: cnidario (~dont@cli-5b7ec41e.ast.adamo.es) joined #forth 14:30:09 --- quit: tabemann (Ping timeout: 240 seconds) 14:35:14 --- quit: cnidario (Read error: Connection reset by peer) 14:51:45 --- quit: djinni (Quit: Leaving) 14:55:29 --- join: djinni (~djinni@68.ip-149-56-14.net) joined #forth 14:56:05 --- quit: djinni (Remote host closed the connection) 14:59:55 --- join: djinni (~djinni@68.ip-149-56-14.net) joined #forth 15:02:55 --- quit: pierpal (Ping timeout: 255 seconds) 15:16:02 --- quit: Zarutian (Read error: Connection reset by peer) 15:16:04 --- join: Zarutian_2 (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 15:55:06 http://ix.io/1GKz 15:55:42 siraben: trees similar to your implemntation, but different. 15:55:52 The eforth implementations will surely specify what they offer - it's always minimal 16:13:07 --- quit: john_cephalopoda (Ping timeout: 252 seconds) 16:26:47 --- join: john_cephalopoda (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 16:29:51 --- quit: Keshl (Read error: Connection reset by peer) 16:30:10 --- join: Keshl (~Purple@207.44.70.214.res-cmts.gld.ptd.net) joined #forth 17:11:46 --- join: pierpal (~pierpal@host197-221-static.34-79-b.business.telecomitalia.it) joined #forth 17:21:42 --- join: tabemann (~tabemann@rrcs-162-155-170-75.central.biz.rr.com) joined #forth 17:43:45 I'm stumped 17:43:54 I try debugging my buffer code 17:44:14 I try putting a single-tasked .s in the expansion code 17:44:15 --- quit: pierpal (Ping timeout: 250 seconds) 17:44:22 it works fine for trivial examples 17:44:38 <`presiden> but 17:44:38 but when I try with a nontrivial example, it crashes 17:44:53 <`presiden> happy debugging 17:44:55 mind you these nontrivial examples mostly work without the .s 17:45:12 except for a couple nontrivial examples, which fail regardless 17:45:43 which are why I tried putting .s in there in the first place 17:46:56 mind you I'm not running plain .s but rather ['] .s execute-single-task-io, which ensures that TYPE during .s does not cause a task switch 19:01:57 I figured out why my sixels weren't displaying right 19:02:04 somehow nulls were getting in my output 19:02:27 but the way I as dumping the output (basically just replacing escapes with spaces and dumping it to standard output) didn't display the nulls 19:17:12 yes! 19:17:29 I got sixels working under hashforth with my generalized sixel-rendering code 19:17:33 unfortunately 19:18:01 the latest version of the hashforth userspace refuses to build newer versions of hashforth 19:18:13 so to build newer versions I need to use an older version 20:00:11 --- quit: tabemann (Read error: Connection reset by peer) 20:19:43 --- quit: dddddd (Remote host closed the connection) 20:26:48 --- join: tabemann (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) joined #forth 21:01:52 I was never able to get a reply from Dr Ting when trying to buy something, alas. 21:30:49 --- quit: APic (Ping timeout: 255 seconds) 21:40:24 --- join: APic (apic@apic.name) joined #forth 22:39:50 --- join: gravicappa (~gravicapp@h109-187-43-215.dyn.bashtel.ru) joined #forth 23:12:09 --- join: rdrop-exit (~markwilli@112.201.166.63) joined #forth 23:13:22 Greetings Forthists 23:59:59 --- log: ended forth/19.04.20