00:00:00 --- log: started forth/09.08.22 00:09:13 --- join: GeDaMo (n=gedamo@212.225.115.96) joined #forth 00:27:41 --- quit: xjrn (Read error: 60 (Operation timed out)) 00:43:42 --- join: kar8nga (n=kar8nga@e-9.vc-graz.ac.at) joined #forth 01:22:32 --- quit: segher (Read error: 110 (Connection timed out)) 02:13:51 --- quit: kar8nga (Remote closed the connection) 02:20:40 --- join: DrunkTomato (n=DEDULO@ext-gw.wellcom.tomsk.ru) joined #forth 03:46:13 --- join: segher (n=rehges@84-105-60-153.cable.quicknet.nl) joined #forth 03:55:36 --- quit: madwork (Read error: 104 (Connection reset by peer)) 03:55:49 --- join: madwork (n=madgarde@204.138.110.15) joined #forth 04:01:58 --- quit: madwork (Read error: 104 (Connection reset by peer)) 04:02:00 --- join: madwork_ (n=madgarde@204.138.110.15) joined #forth 04:11:52 --- quit: GeDaMo ("Leaving.") 07:16:29 --- join: nighty__ (n=nighty@210.188.173.245) joined #forth 07:28:57 --- join: impomatic (n=John@nat67.mia.three.co.uk) joined #forth 07:29:02 Hi :-) 07:48:33 --- join: GeDaMo (n=gedamo@212.225.115.96) joined #forth 07:51:47 : 2over >r >r over over r> r> rot >r rot r> ; seems like the simplest implementation in Forth. 07:52:22 Without using non-standard words or other double words. 07:54:49 : 2over 3 pick 3 pick ; 07:58:00 Thanks, forgot that. I wonder how many Forths have a fast implementation of pick 08:02:37 Probably easier to make pick efficient than roll 08:03:30 On x86 it would be a single instruction 08:13:12 : 2over 2 pick 2 pick ; 08:13:40 some systems have an "under" that you can define as : under 2 pick ;\ 08:14:50 it's easy to make roll efficient, if your stack resides in memory, btw 08:15:21 well, sort-of efficient, eh. 100x faster than the "stupid" implementation 08:15:36 you still shouldn't use roll ;-) 08:17:08 So I shouldn't implement swap as : swap 1 roll ; ? ;-) 08:17:14 heh 08:17:22 : swap over >r nip r> ; 08:17:34 Don't worry, I'm using : swap tuck drop ; 08:17:43 or have your compiler track the stack, heh 08:17:59 That does cause me I slight problem, because I'm also using : tuck swap over ; 08:18:24 how many stack elements do you cache in registers? 08:18:30 Just one. 08:19:04 don't use swap for anything then ;-) 08:20:17 Hopefully it shouldn't be a problem. I'm on a fast computer. If the Cray can resolve an infinite loop in 6 seconds, mine shouldn't be too far behind. 08:20:26 You don't have swap as a primitive? 08:20:38 i don't. 08:21:08 all my primitives are one load or store maximum 08:21:21 Actually, I'm just joking. Nearly everything is a primative at the moment. 08:21:24 (well, the "regular" primitives. i have move as a primitive as well) 08:21:56 I'm just wondering what I can reimplement in Forth without too much of a performance hit. 08:22:08 it depends 08:22:37 if your compiler does renaming, you need very different stacj movement primitives 08:23:45 renaming? 08:23:51 "register" renaming 08:23:55 stack slot really 08:23:57 Ah okay. 08:24:14 i cache 0, 1, 2, or "2 swapped" stack entries in register 08:24:52 it's experimental, i don't yet know how well that works :-) 08:25:21 Does that mean you need up to four version of each primative? 08:25:27 yeah 08:25:42 not of every primitive though 08:25:59 Only the ones that use the stack? :P 08:26:06 ha no 08:26:18 the compiler adjust the stack for many 08:27:55 another example of primitives you don't need... "or" is used not much, you don't need it 08:28:30 You've been reading Chuck :P 08:28:58 of course 08:29:08 but things like paf/maf as well 08:29:45 i also do * and / in software on most systems 08:30:00 much easier to write it portable between systems that way :-) 08:30:18 if your applications needs lots of muls, that not such a great idea of course 08:34:23 what else... i don't have DOCON DOVAL DODOES etc anymore 08:34:34 everything is DOCOL, and it's implicit 08:36:36 Hmmm... 08:37:11 "When you've seen one Forth, you've seen one Forth" :P 08:37:21 :-) 08:37:24 yeah exactly :-) 08:37:51 although, it's not hard to read other forth's code as soon as you are fluent in one 08:38:05 well-written code, of course 08:39:57 My Forth by comparison is unremarkable :-) 08:40:05 ITC? 08:40:27 Or it will be when I've finished it. Still 14 words to finish. I haven't worked on it this week, thanks to being ill. 08:40:38 Yes, ITC, but shouldn't be hard to change. 08:41:25 ITC is a good choice, really 08:42:01 better than DTC, anyway 08:42:24 and much better than "stupid" STC 08:43:29 I thought the advantage of STC is to have the compiler automatically inline words below a certain size. 08:43:40 Anyway, I don't like STC 08:46:32 "stupid" STC in that definition only inline primitives 08:46:37 inlines 08:46:47 you know, 80% of the STC systems 08:46:54 (totally made up statistic, heh) 08:47:16 it results in a) big code; and b) slow code, on most CPUs 08:47:40 while people who do it think the results are the opposite. sad. :-P 08:48:52 :-( 09:38:56 --- quit: GeDaMo ("Leaving.") 10:02:56 --- quit: crc (Client Quit) 10:03:27 --- join: crc (n=charlesc@c-68-80-139-0.hsd1.pa.comcast.net) joined #forth 10:36:44 --- quit: nighty__ (Client Quit) 10:42:37 --- quit: DrunkTomato () 10:47:32 --- join: DrunkTomato (n=DEDULO@ext-gw.wellcom.tomsk.ru) joined #forth 11:35:57 Are Neil Bawd and Wil Baden the same person? The names are anagrams. 11:39:00 they are 11:39:03 he is? 11:41:01 --- join: jauaor (n=araujo@gentoo/developer/araujo) joined #forth 11:41:54 hello 11:42:51 Hi jauaor 11:42:59 hello impomatic 11:43:00 :) 11:55:01 good afternoon 12:04:33 Sounds like me: "By doing just a little every day you can gradually let the task completely overcome you." (Wil Baden) 13:08:36 --- join: aguai_ (i=aguai@114-44-4-62.dynamic.hinet.net) joined #forth 13:14:14 --- quit: aguaithefreak (Read error: 104 (Connection reset by peer)) 13:40:58 * jauaor needs to find a name for his tiny language 14:17:14 --- quit: madgarden (Remote closed the connection) 14:36:30 --- join: madgarden (n=madgarde@CPE001d7e527f89-CM00159a65a870.cpe.net.cable.rogers.com) joined #forth 14:39:32 --- quit: DrunkTomato (Read error: 60 (Operation timed out)) 16:33:26 jauaor: h1n1? 16:35:00 preon? 18:37:33 segher: hah 18:37:35 h1n1 18:37:38 what does it mean? 18:37:38 :) 18:44:07 pig flue 18:44:09 flu 19:15:07 --- quit: madgarden ("Leaving") 19:19:59 --- join: madgarden (n=madgarde@CPE001d7e527f89-CM00159a65a870.cpe.net.cable.rogers.com) joined #forth 19:32:10 --- quit: madgarden ("Leaving") 19:42:05 --- join: madgarden (n=madgarde@99.236.137.241) joined #forth 20:15:35 oh 20:15:36 hah 20:32:10 --- join: crc_ (n=charlesc@c-68-80-139-0.hsd1.pa.comcast.net) joined #forth 20:32:11 --- quit: crc (Read error: 104 (Connection reset by peer)) 22:35:52 --- quit: impomatic ("mov.i #1,1") 22:41:48 --- quit: I440r (Read error: 104 (Connection reset by peer)) 22:42:09 --- join: I440r (n=mark4__@c-69-136-171-118.hsd1.in.comcast.net) joined #forth 22:42:09 lo 22:59:54 --- quit: I440r ("Leaving") 23:46:41 --- quit: madgarden (Read error: 145 (Connection timed out)) 23:59:59 --- log: ended forth/09.08.22