00:00:00 --- log: started forth/18.06.15 00:02:30 --- quit: proteus-guy (Remote host closed the connection) 00:12:30 --- join: jedb (~jedb@199.66.90.113) joined #forth 00:20:29 --- quit: reepca (Ping timeout: 260 seconds) 00:56:29 --- join: ThirtyOne32nds (~rtmanpage@147.sub-174-204-12.myvzw.com) joined #forth 01:07:39 --- quit: ThirtyOne32nds (Ping timeout: 245 seconds) 02:24:20 --- quit: proteusguy (Ping timeout: 260 seconds) 02:35:59 --- join: proteusguy (~proteusgu@2403:6200:88a6:d26d:3564:97bc:1662:37c9) joined #forth 02:35:59 --- mode: ChanServ set +v proteusguy 02:58:04 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 03:31:22 --- quit: nighty- (Quit: Disappears in a puff of smoke) 05:11:38 i just read the "Part 3: Demystifying DOES>" (http://www.bradrodriguez.com/papers/moving3.htm) i'm going to have to read this again a few times :-) 05:15:18 --- quit: mtsd (Quit: Leaving) 05:46:48 --- join: reepca (~user@208.89.170.230) joined #forth 05:47:43 --- join: nighty- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 05:49:11 sleep now... cya tomorrow 05:49:50 --- quit: dave9 (Quit: one love) 07:11:51 --- join: user__ (~user@2-62-170-163-bbc-dynamic.kuzbass.net) joined #forth 07:13:52 --- quit: user__ (Quit: leaving) 07:30:26 --- quit: pierpal (Quit: Poof) 07:30:43 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 07:57:37 --- quit: pierpal (Quit: Poof) 07:58:26 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 08:29:10 --- join: impomatic (~digital_w@host81-136-104-94.range81-136.btcentralplus.com) joined #forth 08:57:23 --- quit: pierpal (Read error: Connection reset by peer) 08:57:33 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 09:04:07 --- quit: pierpal (Ping timeout: 248 seconds) 09:21:05 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 10:03:21 --- join: dys (~dys@tmo-110-237.customers.d1-online.com) joined #forth 10:57:36 --- nick: thoth -> lugh 11:28:56 --- quit: Labu (Quit: WeeChat 2.0.1) 11:29:04 --- join: Labu (~Labu@labu.pck.nerim.net) joined #forth 11:30:50 --- quit: Labu (Client Quit) 11:31:57 --- join: Labu (~Labu@labu.pck.nerim.net) joined #forth 11:56:24 --- join: dave9 (~dave@207.213.dsl.syd.iprimus.net.au) joined #forth 11:57:24 re 12:21:43 re 12:27:00 hi z0d 12:48:36 --- quit: Zarutian (Read error: Connection reset by peer) 13:09:45 --- join: TCZ (~Johnny@ip-91.246.66.248.skyware.pl) joined #forth 13:14:58 --- quit: pierpal (Quit: Poof) 13:15:16 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 13:28:15 --- quit: TCZ (Quit: Leaving) 13:42:02 --- join: Zarutian (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 13:55:34 --- quit: epony (Ping timeout: 256 seconds) 14:19:26 --- join: ThirtyOne32nds (~rtmanpage@69.sub-174-204-39.myvzw.com) joined #forth 15:22:19 --- quit: dys (Ping timeout: 240 seconds) 17:21:53 --- quit: dddddd (Remote host closed the connection) 17:27:56 --- quit: KipIngram (Quit: WeeChat 1.4) 17:53:13 --- join: KipIngram (~kipingram@185.149.90.58) joined #forth 17:53:13 --- mode: ChanServ set +v KipIngram 18:03:18 hi KipIngram 18:03:30 Hey Dave. 18:22:09 KipIngram: my head is not around DOES> so i am reading the page on http://www.bradrodriguez.com/ again :-) 18:54:46 Ok. Let me know if you have any questions. 18:55:50 Just keep in mind that with defining words, there are three distinct "phases" involved: 1) When you define/compile the compiling word, 2) when you use the defining word to define/compile a new word X, and 3) when you execute the new word X. 18:56:19 The stuff after DOES> runs in phase 3. 18:56:36 And it expects to find X's parameter field address on the stack. 19:20:00 you can think of create/does> as making closure templates 19:20:26 sort of 20:09:42 :-) I don't know what a closure template is. 20:12:53 Nice fancy name, though. 20:13:26 time to go to the shops 20:13:29 bbl 20:14:04 --- quit: dave9 (Quit: one love) 20:15:27 well, a closure is a thing 20:15:36 and a template is another thing 20:15:55 idk if anybody's ever put those two words together before now 20:16:45 a closure is a function bound to some state 20:17:00 Ok. I just think of it as the stuff between CREATE and DOES> running when I use the defining word, and the stuff after DOES> running when I used the defined word. 20:17:54 in a lot of garbage-collected languages with lexical scoping, you can write a function with a local variable and then return another function which "closes over" that variable 20:19:14 so what you get is that each time you call the outer function, you get back an instance of the inner function with its own private state that's persistent between calls 20:19:22 Does that mean that the variables beahves as though it's that function when that happens? 20:20:18 I see. In this case the private state would be the storage allocated by the code between CREATE and DOES> for that particular instance? 20:20:25 yeah 20:20:38 Ok. I see the similarity, I think. 20:21:01 it might be kind of a stretch I guess. I probably should have just kept that to myself 20:21:33 I think cross-fertilizing ideas is a good thing. 20:22:29 I'm not a computer science guy by education, and I'm not really a "software guy" by profession either; I've done a fair bit of programming over the years, but really in a fairly informal way. 20:22:45 I'm really a hardware guy who just picked up some software tricks along the way. 20:23:28 And my education pre-dates an AWFUL lot of developments in software technique. 20:24:37 I think I understand CREATE DOES>, but in a brutally simple and "direct" way. 20:26:22 I've even mostly ignored POSTPONE, because it wasn't around when I first learned Forth and I've just never bothered. I had a sort of vague notion of what it related to, but that was all. I finally read up on it just a couple of days ago. 20:26:38 At first I thought it seemed like the same thing as COMPILE, and it does seem to be for non-immediate words. 20:26:48 But it has an alternate behavior for immediate words that makes it different. 20:26:53 Or at least that was my take-away. 20:27:26 COMPILE doesn't make any distinction between immediate and non-immediate words, does it? 21:05:16 --- quit: pierpal (Remote host closed the connection) 21:22:50 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 21:24:58 --- quit: pierpal (Read error: Connection reset by peer) 21:44:42 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 22:42:09 --- join: dys (~dys@tmo-118-116.customers.d1-online.com) joined #forth 22:58:28 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 23:59:59 --- log: ended forth/18.06.15