00:00:00 --- log: started forth/19.06.26 00:55:19 --- join: `preside1 (~presiden@unaffiliated/matematikaadit) joined #forth 00:55:44 --- quit: `presiden (Ping timeout: 246 seconds) 01:05:52 morning Forth 01:07:55 a lot of criticisms of Forth I see are pretty suck 01:08:26 someone was calling it hard to navigate a Forth codebase because you don't know what words do, completely not knowing about stack comments 01:08:36 usually arguments from ignorance 01:08:41 agreed 01:09:16 always from ignorance I think 01:09:34 who wouldnt love Forth if they knew it ? 01:10:03 there are valid criticisms but the go-to ones are pretty weak 01:10:56 in the small embedded field i often run into C users who tell me that the 'modern C compiler makes better/smaller code than a human' which sends me into fits of laughter 01:12:11 not once in 5 years has a C user actually supplied a bootable blinky binary smaller than hand made assembly, or even smaller than a Forth made binary 01:13:14 of course theyre all certain C has some awesome god like ability because thats what all the other C users all say 01:13:34 I call them 'C' programmers now 01:13:35 that darn C prompts eating my ram ;) 01:13:44 because Jeff Fox did it and it's f'ing funny 01:13:46 hahah 01:14:07 people can get *really* annoyed by 'C' in quotes 01:14:20 nice to now ;-) 01:14:25 know 01:15:33 there are far worse abominations than C. I.e when you realize that all programmable behavior in gnome3 is written in javascript 01:16:11 jackdaniel, I like C and used it for decades 01:17:06 Im not picking on C, Im picking on Forth ignorant C programmers who want to argue the pros and cons but have no idea about Forth 01:17:21 alright, I must have misunderstand then, apologies 01:17:31 misunderstood° 01:17:33 no worries, I doubt anyone hates C ? 01:18:01 well, I have love-hate relationship with it for instance 01:18:16 besides the entire small embedded world is all C 01:18:25 it would be a perfect "portable" assembler if not for the fact that callstack belongs to the caller (not to the callee) 01:19:30 I think 'portability' is highly overrated 01:19:57 depends on what you aim at. If you write compiler targetting C that would buy you *a lot* 01:20:10 in small embedded when you change models from the same manufacturer all kinds of hardware changes, all kinds of register changes 01:20:13 well, it's not portable, and it's nothing like assembler 01:20:14 so like 01:20:15 ... 01:20:36 bit weird to call 'C' "portable assember" 01:20:49 to me, Forth is incredibly portable among the same Forth and different MCU's 01:21:28 WilhelmVonWeiner: it sounds better if you contemplate compilers having C as a target language (and then utilizing gcc or other C compiler provided by vendor) 01:24:16 tp: I absolutely despise C. 01:28:53 ttmrichter, wow I didnt realise! 01:29:37 ttmrichter, have you written a article explaining why you do ? 01:30:27 ttmrichter, one of your legendary rants perhaps ? 01:43:38 Nope. I should someday. 01:44:11 you should, I'd love to read it! 01:44:15 Basically, though, my stance is that C, whenever it faced a trade-off between writing code and maintaining code, chose the one that optimized the writing of code. 01:45:12 They systematically chose, whenever there was a design choice point, to make the default behaviour "fuck maintenance". 01:45:46 Which is why we have a language without arrays, say, just (lousy) syntax sugar that sorta/kinda approximates arrays. 01:46:36 Among a myriad of other such flaws. 01:48:20 But hey! We can copy strings from one place to another with "while (*dest++ = *src++);"! As long as we don't care about security! Or accidental overlaps! Or memory order sequencing! Or a million other things that matter in the real world, but make for code that doesn't look so spiffy and cool! 01:49:57 i begin to see your point 01:50:04 lol at the dest src thing 01:51:39 It's also why we have a language without any meaningful sense of modularity. Why the language had to get littered with so many stupid things like the "volatile" keyword. Why we have a language that has no meaningful constants. Why the language implementer community got onto this weird bandwagon of "if it doesn't match this bizarrely specific int 01:51:39 erpretation of a badly-written specification we can silently fuck up your code's intent for sake of "optimization"." 01:54:48 well there is enough for a short rant :) 01:57:18 there was this C++ guy who was interested in Mecrisp-Stellaris and spent months making C like 'libraries' that turn a MCU port config into one complex line of C syntax thats so confusing that it's unusable without a specification, and I found really hard to read anyway 01:58:29 eventually he started asking the Mecrisp-Stellaris architect to change his Forth to suit his C libraries and was denied, so he just gave it all up and went back to C++ 01:59:10 thats my pet hate about C, when C people get all fired up about Forth and then try to make it just like C 02:00:04 that's why I think Chuck, Jeff et al became anti-ANS 02:00:57 'C' programmers trying to 'C'-ify Forth 02:01:02 yeah 02:01:58 it's a common human condition tho, thank heavens that Forth is so weird to C programmers that they cant really get into it ;-) 02:02:05 I think trying to standardize Forth misses the point. 02:02:22 Forth is all about EXTREME customization, as far as I'm concerned. 02:02:34 yep - forth is two stacks and RPN. there's your standard. 02:02:51 didnt chuck say that standardising Forth makes it a non Forth ? 02:02:53 oh and a word dictionary defined in terms of itself. 02:03:01 You start able to twiddle bits as low as you can get, but with a few lines can reach dizzying heights of abstraction ... and the abstraction is exquisitely custom-fitted to your actual problem domain. 02:03:20 ttmrichter, well put 02:03:29 +11 02:03:36 <`preside1> +12 02:04:17 someone also said 'programmers dont program with forth, they use Forth to build a new problem domain language' 02:05:53 even chuck once said when asked 'what is Forth ?" .... " I can't say what it is, but I know it when I see it" 02:06:41 I love Chuck quotes 02:06:57 dude is great 02:07:07 13 + 02:09:16 --- quit: proteusguy (Ping timeout: 272 seconds) 02:10:14 tp: You know what made me really love Forth? 02:10:42 In one of the Forth magazines I stumbled across a Modula-2 style module system for Forth. 02:10:50 It was three lines of code. 02:10:54 Three. Lines. 02:10:55 I can think of many reasons but Im sure I'll never guess yours 02:10:58 Does anyone here play Magic the Gathering? 02:11:15 Forth always makes me think of the card "One With Nothing". 02:11:47 In three lines of code you had the ability to have a private implementation with a public interface that was easily as powerful as Modula-2s. 02:11:52 WilhelmVonWeiner, sorry Im not familiar with that 02:11:54 A single black mana instant with the text "Discard your hand". 02:12:19 Get rid of everything. That's how simple Forth feels 02:12:33 especially colorForth, though I don't write any as of now 02:12:47 ttmrichter, I have no clue about modula-2 but I'm familiar with the name from 20 years ago ? 02:13:01 shame GA stopped supporting it on the GA144 dev board v2 02:13:46 tp: Modula-2 is what should have been used as a systems language in place of C. 02:13:50 30 years ago ? 02:13:54 Yep. 02:14:07 I know it was very popular once 02:14:15 --- quit: vxe (Remote host closed the connection) 02:14:17 Only in small circles, though. 02:14:22 yes 02:14:42 But it has everything that I wish, literally daily, I could have in C. 02:14:46 Actual constanats. 02:14:48 Constants. 02:14:55 I guess C made better shrink wrapped box sets ? 02:14:57 (Fucking keyboard is acting up.) 02:15:08 mine too 02:15:13 Modularity, yet with whole-program optimization. 02:15:27 my kybd is so work out i need to throw it away soon 02:15:36 Arrays that are actually arrays, not thinly disguised pointer arithmetic. 02:16:00 Strings that don't nail you with the Schlemiel the Painter problem unless you use backflips to avoid it. 02:16:14 DEFAULTS to secure, correct code. 02:16:23 ttmrichter, yet you have to use C on your latest projs, such as the therm camera ? 02:16:26 But gives you the rope, if you demand it, to hang yourself. 02:16:30 Yep. :-( 02:16:50 'Cause it got no traction. There's no meaningful Modula-2 ecosystem out there anymore. 02:17:13 There was one guy trying to bring it back, but he had a series of real-life disasters that pretty much ended that effort. 02:17:58 Schlemiel the Painter's Algorithm (also spelled Shlemiel) is a term referring to a class of routines that may seem to perform well under small workloads but prove to be highly inefficient as they scale due to needlessly redundant operations that are performed at a lower level. The term was coined by Joel Spolsky in late 2001. 02:17:58 https://bitbucket.org/trijezdci/m2r10 was where the activity on that was. 02:18:31 as we know from windows, something doesnt have to be good or even work to become massively common 02:18:36 In C, a "string" is just a pointer to a memory field of bytes. 02:18:48 It's terminated by a NUL character. 02:19:27 So if you do the obvious thing to build up, say, a longer string from shorter pieces, what you find is exponential growth in time complexity as your string gets longer. 02:19:47 understand 02:20:07 Because to concatenate strings, you have to read the WHOLE STRING of the destination to find the end, then read the WHOLE STRING of the source to find the number of bytes to copy. 02:20:35 Do this a thousand times... And you're reading an ever-increasing string from beginning to end thousands of times. 02:20:41 unlike Forth where a string is a combination of the start adddress and the length ? 02:20:55 Or Pascal where the length is a prefix on the string, yes. 02:21:18 (Which MOdula-2 used because same language designer.) 02:21:24 ttmrichter, what do you think of "fp" free pascal ? 02:21:29 Meh. 02:21:38 It suffers from the "congealed design" problem. 02:22:05 If I could get it targeting my kit I'd rather use it than C, obviously. 02:22:11 But ... it's a bit bloaty. 02:22:56 aha, thanks! 02:24:49 ttmrichter, I bought a stm32l073 Nucleo to check out the low power additions of the M0+ and oh.my.god what a ton of complexity! 02:25:24 ttmrichter, I can see where that stuff would keep a M0 designer up nights for months! 02:26:07 plus they have utterly changed the registers from the M0, all my hand made legends were useless 02:26:54 The L0 power management is WAY more complicated than the L4. 02:27:21 Of course the Cortex-M4 has, like, what? A million transistors? And the Cortex-M0+ has, like, maybe 15,000? 20,000? 02:27:30 LOADS more manual management in the L0. 02:27:55 I just finished tracking down the last microAmp I could squeeze out of the STOP mode today. 02:28:19 Got it so that I can STOP with RTC wakeup in about 1.5-2 uA. 02:29:03 The spec sheet says STOP mode goes down under a microA. 02:29:24 But ... the LSE crystal is 0.5uA/V. :-/ 02:30:07 At the lowest operating range set on the power regulator, I'm getting an additional 1.2-1.5uA drained by the crystal. 02:30:58 Heading home for the moment. 02:30:59 I no longer know what they mean by "stop" mode as there are so many sun categories of each mode 02:31:14 STOP mode kills the core. 02:31:17 sub categories 02:31:36 The rest is a matter of masking off clocks on peripherals you want to shut off. 02:31:42 and powers down the flash if you want 02:32:00 STOP powers down the Flash. SLEEP may or may not, depending on option bits. 02:32:12 what time to restart in that mode ? 02:32:37 Not sure off the top of my head. And I'm heading home, so no time to check. 02:32:49 To get the lowest consumption in Stop mode, the internal Flash memory also enters low- 02:32:49 power mode. When the Flash memory is in power-down mode, an additional startup delay is 02:32:49 incurred when waking up from Stop mode. 02:33:15 no worries, thanks for the long chat, youre always very educational! 02:41:13 --- join: dave0 (~dave0@069.d.003.ncl.iprimus.net.au) joined #forth 02:45:32 --- join: proteusguy (~proteusgu@cm-58-10-209-120.revip7.asianet.co.th) joined #forth 02:45:33 --- mode: ChanServ set +v proteusguy 02:47:13 Seems our logger is broken. I can't access this any more: http://bit.ly/91toWN 02:48:18 You don't have permission to access /~nef/logs/forth/ on this server. 02:48:18 Apache/2.4.10 (Debian) OpenSSL/1.0.1t Server at bespin.org Port 80 02:48:35 the channel is 17 years old 02:56:14 --- join: xek (~xek@37.248.253.160) joined #forth 03:00:46 --- quit: reepca (Read error: Connection reset by peer) 03:22:19 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 04:11:48 --- quit: proteusguy (Remote host closed the connection) 04:20:54 --- join: proteusguy (~proteusgu@cm-58-10-209-120.revip7.asianet.co.th) joined #forth 04:20:54 --- mode: ChanServ set +v proteusguy 04:28:44 --- quit: rpcope (Ping timeout: 245 seconds) 04:35:22 --- join: rpcope (~GOTZNC@muon.copesystems.com) joined #forth 04:50:18 my mirror of the logs is still working, so clog is still actually logging, it's just a permissions issue on the server 04:54:31 --- quit: gravicappa (Ping timeout: 268 seconds) 05:00:02 and only on the directory listings; direct access to the log files works 05:01:45 crc, hello! I just trued the clog link in the topic and got You don't have permission to access /~nef/logs/forth/ on this server. 05:02:15 http://bespin.org/~nef/logs/forth/19.06.26 05:02:20 looks like the link resolves to a directory ? 05:02:42 the directory listings don't work; I'm leaving a message for nef@bespin 05:03:22 your link worked fine 05:09:16 FWIW, my mirror is at http://forthworks.com/forth/irc-logs/, updated roughly once an hour 05:12:23 cool I'll make a note of it for anyone that asks 05:14:11 <`preside1> cool 05:38:22 --- quit: dave0 (Quit: dave's not here) 05:38:31 --- join: gravicappa (~gravicapp@h109-187-231-103.dyn.bashtel.ru) joined #forth 05:39:09 --- quit: deesix (Ping timeout: 245 seconds) 05:40:16 --- join: deesix (~dddddd@unaffiliated/dddddd) joined #forth 06:01:37 --- quit: Zarutian (Read error: Connection reset by peer) 06:01:57 --- join: Zarutian (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 06:05:37 --- join: xek_ (~xek@user-5-173-136-60.play-internet.pl) joined #forth 06:07:55 --- quit: xek (Ping timeout: 245 seconds) 06:10:30 --- quit: Zarutian (Read error: Connection reset by peer) 06:10:43 --- join: Zarutian (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 06:18:47 --- quit: rdrop-exit (Ping timeout: 248 seconds) 06:24:08 --- join: rdrop-exit (~markwilli@112.201.174.189) joined #forth 06:49:50 --- quit: rdrop-exit (Ping timeout: 272 seconds) 07:17:14 --- join: rdrop-exit (~markwilli@112.201.174.189) joined #forth 07:21:56 --- quit: rdrop-exit (Read error: Connection reset by peer) 07:22:03 --- join: rdrop-ex1t (~markwilli@112.201.174.189) joined #forth 07:36:05 --- quit: rdrop-ex1t (Ping timeout: 268 seconds) 07:38:02 --- quit: tabemann (Ping timeout: 252 seconds) 07:41:45 --- join: rdrop-exit (~markwilli@112.201.174.189) joined #forth 07:57:05 --- quit: rdrop-exit (Ping timeout: 245 seconds) 08:03:36 --- join: rdrop-exit (~markwilli@112.201.174.189) joined #forth 08:03:43 --- join: xek__ (~xek@37.248.253.223) joined #forth 08:06:21 --- quit: xek_ (Ping timeout: 258 seconds) 08:06:52 --- quit: rdrop-exit (Read error: Connection reset by peer) 08:22:23 --- join: rdrop-exit (~markwilli@112.201.174.189) joined #forth 08:29:59 --- quit: rdrop-exit (Ping timeout: 245 seconds) 09:01:34 --- join: rdrop-exit (~markwilli@112.201.174.189) joined #forth 09:08:35 --- quit: rdrop-exit (Ping timeout: 268 seconds) 09:12:41 mode +o proteusguy 09:13:06 --- join: rdrop-exit (~markwilli@112.201.174.189) joined #forth 09:13:31 --- mode: ChanServ set +o proteusguy 09:13:36 --- topic: set to 'Forth Programming | logged by clog at http://bit.ly/91toWN backup at http://forthworks.com/forth/irc-logs/ | If you have two (or more) stacks and speak RPN then you're welcome here! | https://github.com/mark4th' by proteusguy 09:13:49 Keep forgetting how to do that... :-) 09:17:59 --- quit: rdrop-exit (Ping timeout: 248 seconds) 10:26:36 forth.org is back 11:52:21 --- join: dys (~dys@tmo-102-222.customers.d1-online.com) joined #forth 12:12:33 --- join: mtsd (~mtsd@94-137-100-130.customers.ownit.se) joined #forth 12:41:57 --- quit: gravicappa (Ping timeout: 268 seconds) 12:42:09 yeah! 12:42:16 Time to scrape the whole damn site 13:05:26 --- quit: Keshl (Quit: Konversation terminated!) 13:10:26 --- join: Keshl (~Purple@207.44.70.214.res-cmts.gld.ptd.net) joined #forth 13:13:20 --- quit: APic (Ping timeout: 245 seconds) 13:23:39 --- quit: Keshl (Read error: Connection reset by peer) 13:23:57 --- join: Keshl (~Purple@207.44.70.214.res-cmts.gld.ptd.net) joined #forth 13:45:17 --- join: APic (apic@apic.name) joined #forth 13:48:16 --- quit: kori (Remote host closed the connection) 13:51:31 --- join: kori (~kori@2804:14c:85a3:81b8::1001) joined #forth 13:51:31 --- quit: kori (Changing host) 13:51:31 --- join: kori (~kori@unaffiliated/kori) joined #forth 14:23:42 --- join: dave0 (~dave0@069.d.003.ncl.iprimus.net.au) joined #forth 14:26:54 --- quit: mtsd (Quit: leaving) 14:29:52 hi 15:10:52 --- quit: xek__ (Ping timeout: 252 seconds) 15:41:20 --- quit: Zarutian (Read error: Connection reset by peer) 15:49:44 --- join: Zarutian (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 16:27:54 --- quit: john_cephalopoda (Ping timeout: 252 seconds) 16:41:27 --- join: john_cephalopoda (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 16:54:34 --- quit: dave0 (Remote host closed the connection) 16:54:52 --- join: dave0 (~dave0@069.d.003.ncl.iprimus.net.au) joined #forth 17:06:49 --- quit: catern (*.net *.split) 17:06:50 --- quit: crc (*.net *.split) 17:06:50 --- quit: koisoke (*.net *.split) 17:07:00 --- join: koisoke (xef4@epilogue.org) joined #forth 17:07:59 --- join: crc (crc@2a01:7e00::f03c:91ff:fe12:ac) joined #forth 17:09:52 --- quit: pointfree (Ping timeout: 272 seconds) 17:10:38 --- join: pointfree (sid204397@gateway/web/irccloud.com/x-bkdafozdoqjlbnge) joined #forth 17:17:24 --- mode: ChanServ set +v crc 17:21:02 --- join: catern (~catern@catern.com) joined #forth 17:45:21 Hi dave0. 17:45:37 hiya KipIngram 18:02:12 --- join: tabemann (~tabemann@rrcs-162-155-170-75.central.biz.rr.com) joined #forth 18:43:09 --- quit: dddddd (Remote host closed the connection) 18:51:58 --- quit: deesix (Ping timeout: 252 seconds) 18:53:57 --- join: deesix (~dddddd@unaffiliated/dddddd) joined #forth 20:04:02 --- quit: tabemann (Ping timeout: 272 seconds) 20:48:12 --- join: tabemann (~tabemann@2600:1700:7990:24e0:1ce2:9bd6:6ee:b28e) joined #forth 21:12:23 --- join: gravicappa (~gravicapp@h109-187-231-103.dyn.bashtel.ru) joined #forth 22:17:03 --- join: Blue_flame (~cdadr@2405:204:9510:15c9:191a:9323:9275:a48) joined #forth 22:42:14 --- quit: dys (Ping timeout: 252 seconds) 22:51:51 --- quit: proteusguy (Ping timeout: 248 seconds) 23:05:07 --- join: proteusguy (~proteusgu@2001:44c8:4189:ef7e:d589:1bac:636f:499d) joined #forth 23:05:07 --- mode: ChanServ set +v proteusguy 23:24:05 --- quit: gravicappa (Ping timeout: 244 seconds) 23:59:59 --- log: ended forth/19.06.26