00:00:00 --- log: started forth/21.04.23 01:20:41 --- join: hosewiejacke joined #forth 01:29:12 Don't do that. They have to balance. { covers up the return address. 01:29:24 As well. 01:29:47 You can see how I used them in my FIND here: 01:31:15 https://pastebin.com/t289RZ77 01:33:58 Anyway, there's precedent for that; you get into trouble if you >r without r> as well. 01:34:31 And of course you can't issue either one from the interpreter; they're in-definition only. 01:35:06 And I don't protect against that, though I suppose it wouldn't be terribly hard to add. 01:36:02 But one of the things I like about Forth is that it will let you shoot your foot off. 01:43:29 That paste shows two modes of usage. In vocs and words I nenver actually use the frame variables - the primary purpose of { ... } is to effect stack cleanup, regardless of how lower code left the stack. But the usage in chars, in addition to doing that, makes the stack variables available for the lower code to use. 01:45:10 I was quite pleased with that code - just 13 short little definitions, but it handles the whole dictionary search. Walks the vocabularies, walks the word lists, iterates over the words' characters. 01:45:36 Much more concise than in my previous attempts. 01:46:13 I feel that's it's the stack framing and the conditional (sometimes double) returns that made that happen. 01:48:29 KipIngram: At one point I thought that's why filesystems were in trees, but now I think it's more to do with namespacing and structure than anything else 01:48:38 But yes they do naturally balance in a lot of cases 01:50:04 If I wrote a filesystem then it would be one big B-tree with the paths as keys, directories would be stored as files with a list of paths or block numbers solely to speed up enumerating a directory 01:50:43 And files would store a B-tree of actual block ranges (block range is the key) 01:51:10 I would not be surprised if an existing filesystem does something like this 01:52:47 Yeah, it's hard these days to be the first to think of something. But it's still nice to think of it independently. 01:53:21 Interesting that block *range* is key - I think I have a gut sense of how that could be, but I'd have to think through it to be sure. 01:54:57 In a lot of cases it seems like there would be a gradual evolution away from having many ranges, as you frag up the file system. But in something like flash-based storage where you move stuff around every time you re-write it anyway, you could perhaps put some natural recovery from that in. 01:55:24 Well, maybe. Not sure. Just woke up a few minutes ago - need coffee... 01:55:58 I'd already thought about how a b-tree could store a file without using ranges; I haven't pondered it with the range option yet. 01:56:22 I take it the b-tree sort would be on start of range? Or is there something more clever going on? 01:58:35 So, those thoughts I was having about storing comments - I realized I was thinking about just one layer. Source, attached comments, and that's it. But there would be no reason not to have source, comments on source, detailed comments on comments, etc. - it's really a whole wiki scheme. B-tree really seems to handle that well; you could implement an arbitrary "linkage network" amongst spots in the storage 01:58:36 array. 01:59:21 And that would be a very compact b-tree; I decided you could get about 200+ links in each 4k block. 02:00:27 If I do that I'll probably put the links in in both directions, but with an indication of whether each one is a forward link or a backward link. 02:00:32 Logically, I mean. 02:01:17 So it would wind up that the source code just contained entry points to a documentation tree. 02:01:30 documentation wiki, rather. 02:05:38 KipIngram: Block range would be key in file B-tree because you would store ranges of contiguous blocks 02:05:52 And because the key can be hashed easily and has a well defined ordering 02:06:34 A lot of modern filesystems have a lot of unnecessary crap to do with hard drive geometry that's now redundant on SSDs 02:07:27 Yes. We design flash-based storage at work, so I'm fairly well exposed to the differences between managing hard drives vs. flash. 02:08:12 While it would have been a lot of fun figuring out all those spinning disk optimizations, it's really nice that the need for that stuff is fading. 02:09:59 But let's say you define a new file, and it's all nice and contiguous. Then you make a small change to it - that re-writes one block and now you have two contiguous ranges with one odd man out (range of 1). Update another block, and one of those ranges gets split. Don't you eventually wind up with very few ranges? 02:10:45 And lots of odd men out? 02:10:56 It seems like unless you periodically go clean up that's the direction it would go. 02:11:47 This small change hasn't changed the size? 02:12:31 Might not, but ok - if you have to re-write everything after that then that would eliminate the odd guys out I guess. 02:13:04 It would just update the block "in place" (not really in flash but that's a different level of abstraction) 02:13:30 And if it changed size it would update the block and all later blocks in place, maybe adding some extra blocks elsewhere as a tail 02:13:32 Oh, ok - you're still assuming a logical to physical management layer that's separate. 02:13:56 Ok, but that would still split the original range? 02:14:00 Yes that's worth doing because flash has such strange behaviour and there's little or no disadvantage to layering that 02:14:21 Well, and it's almost always going to be part of what you buy with the SSD anyway. 02:14:28 I'm not sure how modern SSDs do it but I think they abstract this stuff out themselves 02:14:50 Unless you're actually building your own system from raw flash, you don't really have control over the L-to-P stuff. 02:14:50 If you bought NAND chips yourself then you can do hardware or software stuff to track logical blocks 02:15:03 Right - that's the level we work at at work. 02:15:12 I am familiar with NAND/NOR flash 02:15:24 These days I know NAND better. 02:15:34 Haven't worked with NOR in a long time. 02:16:01 NAND fits a block abstraction better 02:16:15 With NOR more complicated abstractions or lower level algorithms become more productive 02:16:33 Because the programming granularity is much lower 02:16:49 Makes sense. Anyway, I'm not arguing with you here. I believe you've thought it through. Just trying to follow your reasoning. 02:17:31 Well if you have a reasonable number of contiguous regions then it yields a smaller tree to track the file 02:17:42 Yes. 02:17:57 That's the advantage, on SSD there is no other real advantage to having contiguous blocks of course 02:18:07 Right. 02:18:27 So that's why I'm storing ranges 02:19:20 Ok; it makes sense. As long as the range length didn't go all the way to one there would still be an advantage. 02:19:43 And it seems reasonable to me that it might not (go to 1) in a randomly accessed system. That there would be some equilibrium. 02:35:45 Dragon Crew2 launch at T-13:50 https://www.youtube.com/watch?v=lW07SN3YoLI 02:43:20 proteus-guy: Thanks! Good morning entertainment! 02:50:14 Yee ha! 02:50:41 Flying now! 02:53:29 That's just awesome. 02:53:32 The things we can do... 02:54:55 I watched the first Falcon Heavy launch. When those two side thrusters just set themselves down pretty as you please on their pads, it almost brought tears. That kind of thing was just science fiction to me before that day. 02:55:26 Yeah that was freaking amazing. I call it "lawn darts for billionaires"! :-) 02:55:35 lmao 02:55:38 Right on. 03:02:09 Wow - see that little rock or something float by? 03:02:23 Just after separation. Maybe it was a piece of gear. 03:02:33 I do hate to think of all the junk we're accumulating up there. 03:02:40 haha there's all kinds of bits of stuff that get shook loose. 03:02:55 it's all low orbit - it falls down pretty quickly. 03:03:31 That's good. :-) 03:03:45 That was great. 03:05:33 they can't see outside until nose cone is off. 03:06:09 --- quit: mjl (Ping timeout: 258 seconds) 03:07:18 --- join: mjl joined #forth 03:13:24 Ah, so they weren't actually enjoying those views when they mentioned it. 03:13:46 So, how is Musk's whole Mars plan going? Is he still generally on track? 03:18:22 Up to getting Starship flying but the new generation vehicles are up next and I think they'll be flying and landing multiple times soon. 03:18:57 Groovy. That's an aggressive name, by the way - "Starship." 03:19:13 That actually has a cultural meaning, and... it isn't. 03:19:39 Well do you know what its original name was? 03:19:54 But they were already playing thta game when they named the first shuttle Enterprise. 03:19:59 No, I don't the name history. 03:20:28 BFS were the initials.... care to guess? :-) 03:21:02 :-) Well, big f***ing comes to mind. 03:21:09 But that wouldn't do for a public name. 03:21:13 Particularly embarassing when Enterprise was never gonna fly into space. Just an outrageously expensive glider. 03:21:21 Big Fucking Spaceship. :-) 03:21:23 Yes. 03:21:33 I remember being vastly disappointed by that. 03:22:02 Honestly, though, the fact we were able to do anything at all in space before the modern microelectronics era is pretty amazing. 03:22:12 That stuff was so damn crude compared to what we can do now. 03:22:20 Yeah a good chunk of the Star Trek original cast was there when it was unveiled with the name and I was just like... grr.... idiots! 03:22:30 Yeah, I remember. 03:22:37 I'm old enough for that. :-) 03:22:39 That's like calling a boat an inter-planetary transport 03:22:48 Right? 03:22:52 indeed 03:23:10 Columbus was an astronaut 03:23:18 ;-) 03:23:46 Well to be honest, Apollo invented the modern microelectronics era. First ICs were the guidance and flight computers on Saturn/Apollo. 03:24:31 --- mode: ChanServ set +v crc 03:24:41 --- mode: ChanServ set +o crc 03:25:01 Howdy crc ! See the launch? 03:25:10 Well, that's actually very easy to believe. Even the early gens of chips would have made so much more possible. 03:26:12 KipIngram, yeah Apollo radically pushed the limits. And then the landing computer on Eagle was overwhelmed with data from the ground radar and kept resetting. They had not tested the two together... yikes! So truly pushing the boundaries to the extreme. 03:26:47 Ah, man. That could have been disastrous. 03:26:54 nearly was. 03:27:28 I remember sitting up late one night with my mom when I was just six to watch Armstrong climb down onto the moon. 03:27:45 But the computer guy saw what was going on and understood it immediately and called the ok to land. That call decided whether the mission would be scrubbed or not in less than 3 seconds. Those guys knew their stuff and were cool under fire. 03:28:11 Indeed - it was a great time for NASA. 03:29:23 I was younger. I do remember one night launch, likely Apollo 15, and I was super exited about it (less than 6 years old) all day long. Finally it went up and then I was so pissed when Cronkite said it'll be a couple of days until they land on the moon. I stayed up all night to see them walk on the moon that day! haha I didn't realize they wouldn't just get straight there. 03:55:08 --- quit: hosewiejacke (Ping timeout: 240 seconds) 04:21:21 --- join: hosewiejacke joined #forth 04:26:37 :-) The innocence of childhood... 05:17:02 Ok, cordics are really interesting. 05:18:08 --- quit: hosewiejacke (Ping timeout: 240 seconds) 05:21:28 --- join: f-a joined #forth 05:27:52 my father worked for NASA going round the world working on tracking stations 05:28:18 when i was 3 i was in madagasgar because nasa had a station there 05:28:41 i have a nasa patch for tananarive madagasgar 05:37:46 Cool. 05:48:23 that's pretty rad. 05:49:44 --- join: hosewiejacke joined #forth 05:50:05 --- quit: f-a (Ping timeout: 268 seconds) 05:51:37 --- join: f-a joined #forth 05:57:33 --- quit: f-a (Ping timeout: 240 seconds) 05:59:21 --- join: f-a joined #forth 06:04:35 --- join: boru` joined #forth 06:04:37 --- quit: boru (Disconnected by services) 06:04:40 --- nick: boru` -> boru 06:10:40 --- join: boru` joined #forth 06:10:43 --- quit: boru (Disconnected by services) 06:10:45 --- nick: boru` -> boru 06:17:57 --- quit: tabemann (Remote host closed the connection) 06:27:56 ""The Seventh Seal"" ( https://youtu.be/H4b6i1CmypM ) review. 06:29:31 --- quit: f-a (Quit: leaving) 06:32:31 --- join: boru` joined #forth 06:32:34 --- quit: boru (Disconnected by services) 06:32:37 --- nick: boru` -> boru 06:42:08 --- join: tech_exorcist joined #forth 06:44:34 --- join: mtsd_ joined #forth 06:44:50 --- join: f-a joined #forth 06:45:10 --- quit: mtsd (Read error: Connection reset by peer) 06:48:55 --- join: boru` joined #forth 06:48:58 --- quit: boru (Disconnected by services) 06:49:00 --- nick: boru` -> boru 06:49:03 --- quit: mtsd_ (Ping timeout: 240 seconds) 06:53:49 --- join: boru` joined #forth 06:53:52 --- quit: boru (Disconnected by services) 06:53:54 --- nick: boru` -> boru 07:00:52 That the Demi Moore movie? 07:01:00 When she was really young? 07:01:45 Oh, no. 07:02:09 That was The Seventh Sign. 07:02:24 Wow, she was so so young. 07:02:45 --- quit: boru (Ping timeout: 246 seconds) 07:08:23 --- part: f-a left #forth 07:27:42 --- join: boru joined #forth 07:33:14 --- join: anonim joined #forth 07:34:34 I'm just a sucker for movies of that general genre - apocalypse stories, I guess. And similar. 07:34:50 Things like The Omen and its ilk can always rope me in. 07:36:50 --- quit: anonim (Client Quit) 07:37:07 --- join: boru` joined #forth 07:37:10 --- quit: boru (Disconnected by services) 07:37:12 --- nick: boru` -> boru 07:40:17 --- join: anonim joined #forth 07:43:09 --- quit: anonim (Client Quit) 07:57:39 --- join: boru` joined #forth 07:57:42 --- quit: boru (Disconnected by services) 07:57:44 --- nick: boru` -> boru 08:00:06 We're gonna need a baremetal forth environment for this new chip... https://spectrum.ieee.org/tech-talk/semiconductors/processors/cerebras-giant-ai-chip-now-has-a-trillions-more-transistors 08:00:23 --- quit: boru (Client Quit) 08:03:53 --- quit: hosewiejacke (Ping timeout: 260 seconds) 08:11:08 --- quit: Zarutian_HTC (Ping timeout: 252 seconds) 08:15:43 --- join: f-a_ joined #forth 08:15:59 --- join: hosewiejacke joined #forth 08:18:31 --- quit: f-a_ (Client Quit) 08:18:46 --- join: f-a joined #forth 08:56:09 --- join: Zarutian_HTC joined #forth 09:17:01 Wow. 09:22:28 Ok, so my usual desire in a digital system (to be able to feel explicitly aware of what every little bit of it is doing) just isn't really going to work with a monster like that, is it? 09:24:55 HOLY COW. 20 PB/sec memory bandwidth. 09:25:36 That desire hasn't worked since like the early 90's 09:25:39 Perhaps even earlier 09:26:06 And frankly if you expand the scope of what you understand you've never been alive in a situation like that 09:26:13 That was around when I moved from design only to management. 09:26:26 I was still able to fake it for a while, but you're really right. 09:26:47 Even just the CPU was so ridiculously complicated by the Pentium Pro 09:26:51 Sure. I don't understand all the quantum events underlying everything I do. :-) 09:27:01 Or even all of the analog behavior. 09:27:12 But digital network design provides a pretty stark "dividing line." 09:27:41 Something like spectre and meltdown required nobody to really understand how the Intel CPUs work from top to bottom 09:27:41 What I"m referring to is the level of designing an FPGA image by drawing a schematic. 09:27:55 Yes 09:52:52 KipIngram: I should think that a chip like that would be a lot of blocks of something repeated many times 09:53:30 maybe not hard to grasp the fundamental block 10:00:16 --- quit: f-a (Ping timeout: 260 seconds) 10:02:02 --- join: f-a joined #forth 10:08:23 --- join: boru joined #forth 10:12:14 Very true; it says in the article that it spreads the resources out over the various layers for neural network training. And those training algorithms are pretty easy to express using matrices and so forth. 10:43:00 --- quit: hosewiejacke (Ping timeout: 268 seconds) 10:49:42 --- quit: andrei-n (Read error: Connection reset by peer) 10:53:48 --- join: andrei-n joined #forth 11:33:57 --- quit: dave0 (Quit: dave's not here) 11:54:27 --- quit: Zarutian_HTC (Read error: Connection reset by peer) 11:54:43 --- join: Zarutian_HTC joined #forth 12:26:11 --- quit: Zarutian_HTC (Ping timeout: 265 seconds) 12:29:53 --- quit: gravicappa (Ping timeout: 260 seconds) 12:41:16 KipIngram: compositional design helps immensely with complex systems, if something is comprised of reusable parts with clear semantics/behavior, IME it becomes drastically easier to reason about the whole 12:41:54 depends on the domain of course but outside embedded it's often infeasible to get to the bottom of everything 12:41:59 ↑ 12:42:33 tho siraben , some $haskell_firm solved a problem by hiring a ghc lad 12:42:52 f-a: oh, elaborate 12:42:54 as only he knew the internals and could insta pinpoint the performance problem 12:43:01 I wish I could, lore from #haskell 12:43:10 or was it discourse.haskell.org 12:43:13 --- join: hosewiejacke joined #forth 12:43:29 I was happy for the new hire but felt «betrayed» too :P 12:43:35 amazing how Haskell stdlib source is very readable but the whole is insanely complex 12:43:54 various list functions come to mind, implemented like textbook versions heh 12:44:00 * f-a nos 12:44:02 +d 12:44:03 ah i see 12:44:13 I tried peering into C++ internals before and oh boy 12:45:03 hehe 12:45:14 bbl 12:50:37 --- quit: hosewiejacke (Remote host closed the connection) 12:51:23 --- join: mtsd joined #forth 13:03:30 --- quit: shmorgle (Quit: [TalkSoup] via NEXTSPACE) 13:06:54 --- join: eli_oat joined #forth 13:14:30 --- quit: eli_oat (Quit: WeeChat 2.8) 13:25:02 --- quit: andrei-n (Quit: Leaving) 13:51:09 --- join: Zarutian_HTC joined #forth 13:59:36 --- quit: f-a (Ping timeout: 246 seconds) 13:59:37 https://web.mit.edu/alexmv/6.037/sicp.pdf 13:59:48 Apparently that's a kind of famous book. 13:59:54 --- join: f-a joined #forth 14:18:50 --- quit: mtsd (Ping timeout: 268 seconds) 14:24:18 KipIngram: I looks like it would be handy to have one of those book spinning machines on the front page 14:25:27 I'm mildly curious what the 20 gears do 14:25:32 --- part: f-a left #forth 14:26:30 must be involved in maintaining/setting the position, I'd guess 14:35:35 --- quit: tech_exorcist (Ping timeout: 252 seconds) 14:48:42 --- quit: cantstanya (Remote host closed the connection) 14:51:05 --- join: cantstanya joined #forth 14:54:51 Yeah, no kidding. 14:55:23 This is the outer cover: 14:55:25 https://upload.wikimedia.org/wikipedia/commons/9/9d/SICP_cover.jpg 15:06:51 This book looks like it's doing it's best to be a full coverage computer science textbook. 15:06:58 Like, from scratch. 15:32:50 But the "review" I read of it (https://twobithistory.org/2018/10/14/lisp.html) makes it sound like it also has a weird mix of philosophy and humanism in it. Just sounded too strange for me not to track it down and take a look. 15:35:09 I'm doing a fairly rapid perusal of it now, and it's going through all of the basic number theory stuff and really laying down the low-level foundations. 15:47:09 --- join: Zarutian_HTC1 joined #forth 15:47:10 --- quit: Zarutian_HTC (Read error: Connection reset by peer) 16:01:52 --- quit: phadthai (Remote host closed the connection) 16:16:13 --- nick: Zarutian_HTC1 -> Zarutian_HTC 16:43:38 --- join: X-Scale` joined #forth 16:43:42 --- quit: X-Scale (Ping timeout: 252 seconds) 16:44:13 --- nick: X-Scale` -> X-Scale 17:48:12 --- join: tabemann joined #forth 17:56:02 --- quit: tabemann (Remote host closed the connection) 17:56:41 --- join: tabemann joined #forth 18:00:07 --- quit: tabemann (Remote host closed the connection) 18:00:47 --- join: tabemann joined #forth 18:04:31 --- join: boru` joined #forth 18:04:34 --- quit: boru (Disconnected by services) 18:04:36 --- nick: boru` -> boru 18:11:50 --- quit: jess (Quit: Lost terminal) 18:12:48 --- join: jess joined #forth 18:15:51 --- join: Zarutian_HTC1 joined #forth 18:15:52 --- quit: Zarutian_HTC (Read error: Connection reset by peer) 18:31:26 --- join: phadthai joined #forth 19:44:54 --- quit: sts-q (Ping timeout: 240 seconds) 19:48:35 --- join: sts-q joined #forth 19:57:06 --- quit: Zarutian_HTC1 (Remote host closed the connection) 19:58:57 --- quit: phadthai (Remote host closed the connection) 20:12:00 --- join: Zarutian_HTC joined #forth 20:15:34 --- join: phadthai joined #forth 20:36:20 --- join: mtsd joined #forth 20:57:57 --- quit: Zarutian_HTC (Remote host closed the connection) 21:11:24 --- join: Zarutian_HTC joined #forth 21:49:27 --- quit: Zarutian_HTC (Remote host closed the connection) 22:28:19 --- join: gravicappa joined #forth 22:50:24 --- join: hosewiejacke joined #forth 23:02:29 Sussman (lead author of SICP) & Hanson have a cool new book just published that's pretty much the follow up of their years of teaching SICP at MIT. Software Design for Flexibility. https://www.goodreads.com/book/show/53730364-software-design-for-flexibility 23:03:58 I just got it two days ago. Pretty good stuff. Here's a video that doesn't talk about the book but it is the very themes Sussman covers in it. https://youtu.be/cblhgNUoX9M 23:04:23 Another video that has some of the same themes that I found quite interesting: https://youtu.be/xZmPuz9m2t0 23:04:46 This stuff all applies to any language that treats data as code and code as data so quite useful for thinking in Forth. 23:08:09 --- join: dave0 joined #forth 23:08:10 Thx for mentioning. What language(s) does the book use for code examples? 23:09:03 scheme of course. haha Sussman thinks in scheme it seems! 23:11:07 Thx. I'd be surprised if if wouldn't have been Scheme :) 23:16:31 It's truly the ultimate follow up to SICP. But you don't need to be an SICP fan to get some great insights. 23:18:18 --- nick: hosewiejacke -> hwj 23:42:36 --- join: andrei-n joined #forth 23:59:59 --- log: ended forth/21.04.23