00:00:00 --- log: started forth/21.05.10 00:11:13 --- join: gravicappa joined #forth 00:11:44 --- quit: mtsd (Quit: Leaving) 00:41:44 --- join: mtsd joined #forth 01:56:21 Interesting article. I've used NFAs for string search in a security app before but was not aware of the scalability issues of Perl and other popular FSMs. 01:58:32 --- quit: andrei-n (Read error: Connection reset by peer) 01:59:10 --- join: andrei-n joined #forth 02:46:54 --- quit: proteus-guy (Ping timeout: 240 seconds) 03:00:09 --- join: proteus-guy joined #forth 03:06:56 --- quit: spoofer (Ping timeout: 252 seconds) 03:08:37 --- join: spoofer joined #forth 03:35:54 --- join: f-a joined #forth 03:46:48 --- quit: andrei-n (Quit: Leaving) 03:49:16 --- quit: f-a (Read error: Connection reset by peer) 03:52:54 --- join: f-a joined #forth 05:39:15 --- join: tech_exorcist joined #forth 05:42:33 --- quit: f-a (Quit: leaving) 05:46:59 --- join: f-a joined #forth 06:28:00 Yeah, I thought it was pretty good. It links to parts 2 and 3, and they were good too. 06:29:02 I liked the very detailed info on a VM for computing the things. 06:30:36 --- part: f-a left #forth 06:36:09 --- quit: lispmacs (Ping timeout: 268 seconds) 06:36:41 --- quit: dave0 (Quit: dave's not here) 06:48:56 Speaking of regexes, this looks like a fun little playground: 06:48:58 https://regexr.com/ 07:52:19 --- quit: zolk3ri (Ping timeout: 240 seconds) 08:00:11 --- join: zolk3ri joined #forth 08:10:50 --- quit: cantstanya (Remote host closed the connection) 08:13:12 --- join: cantstanya joined #forth 08:29:01 There are some people who, faced with a search problem, say "I'll solve that with a regular expression!". Those people now have two problems. :-) 08:38:20 no the saying is: there are some people who, faced with a problem, say "I'll solve that with multithreading!" Now thtwoey prohavblee ms. 08:38:29 hahahaha 08:55:25 :-) 08:55:27 Nice... 08:57:13 i have to give credit to the #lua op for that one 09:11:43 --- quit: proteus-guy (Ping timeout: 260 seconds) 09:23:54 --- join: proteus-guy joined #forth 10:05:07 --- join: Zarutian_HTC joined #forth 10:05:52 My compliments to him. 10:07:56 You know, I'm understanding better what's been happening to my coding since I started using these conditional returns. 10:08:06 My definitions have definitely, clearly gotten shorter. 10:08:15 Ok, yay. It's Forth, we're taught to like that. 10:08:36 But the stack of definitions I write for a particular task has grown "taller" - it's not really taking (much) less code. 10:08:41 It's just arranged differently. 10:09:12 The defs are getting short and very terse, but the "interconnections" that run vertically up and down the call chain are becoming more involved and sophisticated. 10:09:37 So I don't REALLY know if my code would be easier, harder, or about the same in terms of a stranger's ability to understand it. 10:09:52 They'd almost certainly have to get accustomed to my style before they got fluent with it. 10:10:51 Since I use double returns as well as single returns (both conditional and unconditional), you can jump two lines up in the call stack sometimes. 10:11:26 I try to use the double ones in a way that promotes still regarding the return as being "logically" associated with the higher of the two levels. 10:11:49 Like it's foo triggering the return, but it has to happen from bar, which foo calls, so it's a double instead of a single. 10:12:11 Anyway, I think I like it. I may just be infatuated with myself or something, though. 10:13:19 The other thing I can point out about it is that I no longer really "jump." At all. I *implement* some things with jumps, but they're really recursions. 10:13:29 And tail recursion has really become the only kind of looping that I do. 10:13:40 So no forward jumps, anywhere, ever. 10:13:59 And only backward jumps to the start of the current def, as associated with a tail recursion call. 10:15:17 This is just where the words led me, though - I did have all the usual control constructs in my last Forth. But I had the return-oriented tools as well, and I found myself gravitating to them, and not using the traditional things even when they were there. 10:15:22 So I just left them out this time. 10:46:38 --- quit: lispmacs[work] (Quit: needs to reboot) 10:49:30 --- join: lispmacs[work] joined #forth 10:50:02 if you can come up with names for all of your words, i don't think getting taller is necessarily a problem 10:50:12 i like that forth allows you to code in two dimensions 10:50:44 my problem has always been that naming small one-purpose functions well is one of the most difficult aspects of programming for me, and forth amplifies that 11:11:06 i guess the big issue I've been wondering about since day one was module support and in particular public name conflicts. I've run across some simple systems for have private vs public words but none dealing with conflicts 11:12:36 for private vs public you adjust the dictionary pointers afterwards, I think 11:12:58 I mean, the pointers in the linked list 11:20:16 since you can reuse names, the conflict typically isn't an issue 11:21:01 e.g., you may push vocab foo onto your context stack, and foo may contain a word called bar, and as long as you don't need bar (maybe it's a word used internally by the foo module) then you can define your own bar and nothing will break 11:25:39 cmtptr: that is true, though I think you would have to face the issue eventually with a project of large size. Like, say the byte-out word means different things to your storage and your network libs 11:26:29 C.M. said that prefix- namespaces are evil so I've tried to avoid those 11:27:13 --- join: wineroots joined #forth 11:27:18 anyway, FlashForth only allows something like 13 characters in a word name 11:27:46 FlashForth also does not allow word redefinitions, but I guess that would be non-standard 11:28:46 admittedly, word naming conflicts are not likely to be much of a concern on a microcontroller project 11:28:53 so I haven't worried about it 11:29:37 i think "project of large size" is counter to moore's vision of forth 11:31:59 cmtptr: well, he said we don't even need operating systems, so I'm still waiting for that Forth system to replace my Gnu/Linux OS 11:32:47 just getting x86-64 to boot is a large project 11:35:23 so the takeaway should probably be don't worship everything moore says like it's the word of god 11:35:31 his use-case is probably not representative of yours 11:37:24 well, let's just try to reconcile the philosophy of forth with the practicality of it. he said the ideal is to have a great, simple name for each and every word. He also said that you should be able to run your entire computer off Forth libraries. ("Operating Systems are the greatest scam ever"). 11:38:11 when did he say those things and what was the context? 11:39:04 if you don't know, then those quotes are worthless, regardless of how brilliant the source may be 11:39:30 cmtptr: need about 30 second to get you the reference from my social feed 11:39:51 sounds about right. probably said that during one of his presentations he gave using a windows pc 11:40:00 it is loading slow, might take about 2 or 3 minutes 11:40:05 lol MrMobius 11:40:16 the classic move of philosophy, do as I say, not as I do 11:40:45 cmtptr: interview specifically regarding the subject (and a few other things): 11:40:48 https://www.oreilly.com/library/view/masterminds-of-programming/9780596801670/ch04.html 11:40:56 is collapseOS too much of an OS for chuck moore if he's against OSs 11:40:59 even though it's also forth 11:41:20 2009 11:41:50 he calls them a con game instead of a scam but close enough 11:42:03 how absurd 11:42:56 thinking forth has instruction against using multi-word (as in, spoken word) names for forth words 11:42:58 I think that's bunk 11:43:12 because that's clearer than picking a single english word that kinda sorta makes sense when you think about it 11:43:38 everybody will see draw-tab-bar and know what that means, or whatever your naming convention is for names with multiple words 11:43:51 nihilazo: I'm downloading that collapseOS. Seems like I learn about a new Forth everytime I chat here 11:50:50 collapse OS is a project that will never see use in the environment it was built for 11:51:15 because that environment will probably never exist (I'm 100% predicting the collapse of society, but we're not going to bootstrap computers from old z80 machines) 11:51:19 but it's still an awesome project 11:52:42 i think personally that if funding could be found for just one person to develop Forth "OS" for x86-64 and do nothing else, that you could get a nice desktop in fairly short order (year?). But it seems like you would need to have some kind of module system to distinguish between, e.g., a network pipe and a buffer pipe 11:53:19 I started programming AHCI support for forth - it seemed quite doable, but you need more than 15 minutes a week 11:53:43 I was interacting with the PCI express bus on my laptop 11:53:52 but why would you? 11:54:32 a computer where everything was running on top off forth sounds more fun than everything running off of C 11:55:07 I agree. 11:55:21 http://www.catb.org/~esr/writings/unix-koans/ten-thousand.html 11:55:40 s/C/forth/ 12:06:20 well, I guess we could put that 10,000 lines of code towards finally writing a decent gforth gui library. One that does FFI to c libraries, of course 12:06:45 or something really useful, like PHP code for a gambling website 12:10:11 now you're talking 12:24:19 --- quit: zolk3ri (Ping timeout: 240 seconds) 12:28:08 --- quit: gravicappa (Ping timeout: 240 seconds) 12:48:24 could be fun to make that computer but it would not be fun use 12:48:31 or as fun as what we have 12:48:41 but then again thats forth in practice :D 12:53:32 I'm wondering... once you had a full-featured forth system kernel, if it wouldn't be terribly hard to reimplement libc, and a few other compatibility libraries 12:54:08 to run all the C programs 12:54:26 or, a lot of them 12:54:41 userspace C programs, I mean 12:56:29 i guess you would have to address the issue of whether or not you wanted a POSIX style environment or now 12:56:37 * or not 12:57:29 or, maybe not 12:58:59 there is your C standard libraries, and then your POSIX OS interfaces, not the same thing 13:59:33 --- quit: mtsd (Ping timeout: 240 seconds) 14:35:18 --- quit: tech_exorcist (Ping timeout: 268 seconds) 14:48:14 --- join: dave0 joined #forth 14:48:44 maw 14:59:41 wam 16:46:08 --- quit: dave0 (Quit: dave's not here) 18:43:46 --- join: boru` joined #forth 18:43:48 --- quit: boru (Disconnected by services) 18:43:51 --- nick: boru` -> boru 19:28:29 --- quit: sts-q (Ping timeout: 265 seconds) 19:32:48 --- join: dave0 joined #forth 19:35:41 maw 19:41:06 --- join: sts-q joined #forth 19:49:46 Evening, dave0. 19:50:20 hey KipIngram 20:25:39 --- join: Zarutian_HTC1 joined #forth 20:25:43 --- quit: Zarutian_HTC (Read error: Connection reset by peer) 20:38:45 --- quit: dave0 (Quit: dave's not here) 20:52:34 --- join: gravicappa joined #forth 21:02:36 --- join: mtsd joined #forth 22:26:54 --- quit: cantstanya (Remote host closed the connection) 22:29:16 --- join: cantstanya joined #forth 22:30:11 --- quit: proteus-guy (Ping timeout: 252 seconds) 22:41:07 --- join: dave0 joined #forth 22:42:42 --- join: proteus-guy joined #forth 22:45:28 --- quit: dave0 (Client Quit) 23:29:40 --- quit: mtsd (Quit: Leaving) 23:44:30 --- quit: proteus-guy (Ping timeout: 246 seconds) 23:56:54 --- join: proteus-guy joined #forth 23:59:59 --- log: ended forth/21.05.10