00:00:00 --- log: started forth/18.03.09 00:08:41 --- quit: dys (Remote host closed the connection) 00:12:18 --- quit: proteus-guy (Remote host closed the connection) 00:32:10 --- join: mtsd (~mtsd@77.110.61.100) joined #forth 00:44:24 --- quit: wa5qjh (Read error: Connection reset by peer) 01:23:38 --- quit: proteusguy (Read error: Connection reset by peer) 01:24:32 --- join: proteusguy (~proteusgu@183.88.75.55) joined #forth 01:24:33 --- mode: ChanServ set +v proteusguy 02:02:42 --- quit: nighty- (Quit: Disappears in a puff of smoke) 03:21:39 --- join: ncv__ (~neceve@unaffiliated/neceve) joined #forth 04:10:25 --- quit: Labu (Ping timeout: 255 seconds) 04:11:26 --- join: Labu (~mik@194.242.115.78) joined #forth 04:17:07 --- quit: smokeink (Ping timeout: 268 seconds) 04:19:32 --- quit: groovy2shoes (Remote host closed the connection) 05:34:58 --- join: Gromboli (~Gromboli@static-72-88-80-103.bflony.fios.verizon.net) joined #forth 05:40:31 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 06:35:32 --- quit: mtsd (Quit: Leaving) 07:54:35 --- join: impomatic (~digital_w@host81-136-84-139.range81-136.btcentralplus.com) joined #forth 08:09:30 --- join: proteus-guy (~proteus-g@cm-134-196-84-176.revip18.asianet.co.th) joined #forth 08:26:31 EvanCarroll: How much time do you have for this lightening talk? 08:30:06 --- quit: Labu (Ping timeout: 260 seconds) 08:37:13 EvanCarroll: If it's a lightening talk I would focus entirely on the cool, fun, and nifty to entice the audience into a more thorough introduction afterwards. 08:37:50 EvanCarroll: Perhaps a clean code snippet that makes good use of compilation being exposed as part of the language + not requiring explicit parameter passing. 08:46:08 --- join: Labu (~mik@mvice.pck.nerim.net) joined #forth 08:50:48 EvanCarroll: I like this example from RigTig https://hackaday.io/project/13420-rigtigs-big-3d-printer/log/53758-esp14-as-gcode-interpreter -- rather than writing some parsing code to parse gcode RigTig writes forth that looks like gcode. 08:52:37 EvanCarroll: https://www.reddit.com/r/Forth/comments/55b8ta/what_makes_immediate_mode_the_key_to_everything/d8bs6bq/ <-- my favorite description of compile-time execution that I always point people to. 09:23:03 --- quit: bedah (Ping timeout: 240 seconds) 09:35:39 --- join: bedah (~bedah@2a02:810d:1c0:3608:84a5:3123:5651:ea5d) joined #forth 09:44:09 --- join: dys (~dys@tmo-108-42.customers.d1-online.com) joined #forth 09:51:56 I don't intend to even touch on that. 09:53:31 I'm probably going to start off with dc, postfix, and the stack. As a quick introduction: ~3 min. And, then move to FORTH, showing basic functions and loops. I don't intend on taking more than 30 seconds for VARIABLE/CONSTANT and the return stack. 09:59:19 I think teaching dup/swap/over/rot/nip/pick stack gymnastics and operator/function airity will be satisfactory 10:04:07 tbh I think those things are really the warts of the language 10:04:12 what makes it great is how it works 10:04:37 if you wanted to get me interested in it, that's probably what you should focus on 10:05:33 --- quit: ncv__ (Ping timeout: 240 seconds) 10:16:28 I'm not sure what is for you "how it works." 10:17:52 threaded code, the simplistic parser, the blurring of runtime and compiletime (immediate words), and how easy it is for a mere mortal to bootstrap it from scratch 10:24:21 --- quit: karswell (Ping timeout: 252 seconds) 10:25:13 but that could just be me 10:37:44 I think explaining a short example showing off some of the things zy]x[yz mentioned would be the only way to show what makes forth great and why people should care in lightening talk time. If people in the audience want to write their own thing afterwards they'll need to refer to a tutorial or reference regardless. 10:39:17 right, I wouldn't expect you to have the time to go into depth. my point is just that, in my opinion, the selling point of forth isn't the user interface. rather, I see it as a shitty user interface that we accept because it's outweighed (in particular situations) by what's underneath 10:39:38 so given that, I don't see it as valuable to try to sell the language by showing off the user interface 10:41:14 I'm not long-time forth user, either, though, so maybe my opinion isn't entirely valid. I also haven't touched it in a few months because I burned out on it and went back to some old c projects for comfort 11:00:45 I think it depends on what you're trying to teach, what I want to teach is how to use a stack to organize a program's state, rather than as an data-structure. 11:02:18 I think a lot of the things that are zy]x[yz are too detailed for a lightning talk, and most are probably found elsewhere in more contemporary languages. 11:03:36 Looking for stack-based languages, I see FORTH, Postscript, and golfing-languages. I came here from ESIL. I think teaching Postscript and how FORTH uses the stack is more useful for others. 11:04:17 fair enough 11:05:42 In other news, if you got a good reference on threading I'd like to read it 11:05:52 FORTH threading 11:06:14 http://www.bradrodriguez.com/papers/moving1.htm 11:06:48 zy]x[yz++ # thanks! 11:06:58 that whole series is probably some of the most useful stuff I've seen on the subject of forth, tbh 11:07:44 I also downloaded his camelforth and found some of it to be enlightening, if a bit hard to follow 11:08:04 hard to follow is just kind of par for the course though, I think 11:20:06 For a lightening talk comments to the effect of 'forth words should be nothing more than abbreviations' (Chuck Moore?) and 'forth abstraction is non-hierarchical and component oriented' (Thinking Forth) are probably all the detail you need. Beyond that, different approaches to threaded code are something to think about when implementing a forth. 11:24:09 --- quit: EvanCarroll (Remote host closed the connection) 11:48:09 --- quit: dys (Ping timeout: 265 seconds) 12:04:54 --- join: EvanCarroll (~ecarroll@96.73.87.188) joined #forth 12:07:35 I think avoiding pick/roll would be a good idea 12:07:46 they're not very forthy tbh 12:16:54 --- join: dys (~dys@tmo-110-209.customers.d1-online.com) joined #forth 12:51:09 --- quit: EvanCarroll (Read error: Connection reset by peer) 12:51:36 --- join: EvanCarroll (~ecarroll@96.73.87.188) joined #forth 12:56:17 --- quit: EvanCarroll (Read error: Connection reset by peer) 12:56:54 --- join: EvanCarroll (~ecarroll@96.73.87.188) joined #forth 13:01:20 --- quit: EvanCarroll (Ping timeout: 240 seconds) 13:02:16 --- join: EvanCarroll (~ecarroll@172.58.99.15) joined #forth 13:08:18 --- join: wa5qjh (~quassel@freebsd/user/wa5qjh) joined #forth 13:30:21 zy]x[yz: so when you say "threaded" you mean in a context that has nothing to do with actual Kernel/POSIX threads 13:30:39 I think I get what's happening here, and what they're talking about but never seen "threading" used like that. 13:32:19 right, "threaded code" in the context of forth doesn't mean concurrent threads of execution 13:33:00 and FWIW, "threads" in the sense that you thought mean more than just linux/POSIX threads 13:33:29 (e.g., I've written a cooperative thread library for c that exists entirely in userspace) 13:40:31 Sure, granted too. I think the POSIX threads are userspace too, no? 13:54:02 --- join: Deep-Thought (~photon@1.132.104.106) joined #forth 14:02:49 EvanCarroll: POSIX threads or equiv are usually called tasks in multitasking Forths, iirc. 14:09:15 So when we say "threading" in FORTH, we're just referring about the underlying calling convention of FORTH? 14:10:04 C has cdecl which sets up and tears down a stack. It seems like a better way to think of this is something like "fdecl" which ignores that operates on the same stack, and just jumps to different blocks ressembling words? 14:10:08 Is that correct? 14:25:44 calling convention and colon word formats 14:26:48 cdecl sets up and tears down a stack of frames, while in Forth you get two stacks. Data and return. 14:28:31 most Forth implementations I have looked at just have a list of addresses in their colon words 14:32:29 yep, just making sure I was right on that. I think a lot of things not based on C have different calling conventions (though I'm no language expert) 14:33:17 so when talking about interesitng things unique to FORTH, that would be near last on my list. The stack-gymnastics is a lot more fun. 14:33:30 In other news. you ever see the dc answers in codegolf? 14:40:20 I dont follow codegolf. It is Off-Putting. 14:41:42 I never got into Swing of it 14:45:35 can learn a lot =) 14:52:27 --- quit: backer (Remote host closed the connection) 14:55:51 --- quit: Deep-Thought (Quit: Leaving) 14:56:21 --- quit: Labu (Quit: Leaving.) 15:03:59 EvanCarroll> Sure, granted too. I think the POSIX threads are userspace too, no? 15:04:51 I suppose that's implementation not specified by the standard, but on linux it calls clone() which asks the kernel to fork off a thread 15:05:56 I meant that my cooperative thread library is all in userspace, it makes no system calls 15:37:56 --- quit: EvanCarroll (Ping timeout: 256 seconds) 16:09:52 --- join: karswell (~user@cust125-dsl91-135-5.idnet.net) joined #forth 17:07:46 --- join: EvanCarroll (~ecarroll@172.58.99.4) joined #forth 17:31:44 Zarutian_PI: Give me a break. 17:36:04 WilhelmVonWeiner: or you Nine Iron me? 19:01:41 --- quit: EvanCarroll (Remote host closed the connection) 19:28:21 --- join: EvanCarroll (~ecarroll@172.58.99.4) joined #forth 19:56:23 --- quit: EvanCarroll (Remote host closed the connection) 20:23:08 --- join: karswell_ (~user@cust125-dsl91-135-5.idnet.net) joined #forth 20:25:22 --- quit: karswell (Ping timeout: 264 seconds) 21:08:59 --- join: EvanCarroll (~ecarroll@172.58.99.21) joined #forth 21:20:35 --- quit: Gromboli (Quit: Leaving) 21:49:04 --- join: smokeink (~smokeink@185.134.120.54) joined #forth 22:05:24 --- quit: dddddd (Remote host closed the connection) 22:24:44 --- quit: smokeink (Ping timeout: 264 seconds) 23:37:10 --- join: Labu (~mik@mvice.pck.nerim.net) joined #forth 23:47:50 --- quit: dys (Ping timeout: 256 seconds) 23:58:12 --- join: dys (~dys@tmo-107-175.customers.d1-online.com) joined #forth 23:59:59 --- log: ended forth/18.03.09