00:00:00 --- log: started forth/03.03.07 00:05:19 --- join: Kitanin (~clark@SCF61185.ab.hsia.telus.net) joined #forth 00:06:35 Hi Kitanin i:) 00:06:37 er 00:37:27 --- join: gilbertdeb (~gilbert@fl-nked-ubr2-c3a-29.dad.adelphia.net) joined #forth 00:47:35 --- quit: gilbertdeb ("Client Exiting") 01:06:51 --- quit: Kitanin (Read error: 104 (Connection reset by peer)) 01:19:37 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 01:25:33 --- join: Speuler (~Speuler@mnch-d9ba4bb6.pool.mediaWays.net) joined #forth 01:27:01 --- part: Jim7J1AJH left #forth 01:35:55 --- quit: Serg_Penguin () 03:02:13 --- join: Kitanin (~clark@SCF61185.ab.hsia.telus.net) joined #forth 03:39:25 --- quit: Speuler (Read error: 60 (Operation timed out)) 04:05:30 --- quit: Kitanin (Read error: 104 (Connection reset by peer)) 04:26:31 --- join: Speuler (~Speuler@mnch-d9ba4bb6.pool.mediaWays.net) joined #forth 05:45:49 'morning 06:05:07 --- join: Kitanin (~clark@SCF61185.ab.hsia.telus.net) joined #forth 06:08:05 --- join: Herkamire (~jason@wsip68-15-54-54.ri.ri.cox.net) joined #forth 06:25:15 --- join: gilbertdeb (~gilbert@fl-nked-ubr2-c3a-29.dad.adelphia.net) joined #forth 07:06:13 --- quit: Kitanin (Read error: 104 (Connection reset by peer)) 07:28:12 --- quit: gilbertdeb (Read error: 60 (Operation timed out)) 07:56:07 --- join: Kitanin (~clark@SCF61185.ab.hsia.telus.net) joined #forth 08:27:13 do I have this right: : tuck ( a b -- b a b ) swap over ; 08:27:26 or is tuck supposed to do something else? 08:28:47 That works. 08:38:51 cool. just making sure it wasn't supposed to be : tuck ( a b c -- c a b c ) or something 08:40:00 :) 09:01:55 I'm having so much fun writing this forth 09:02:08 the basic words are so easy to implement 09:02:24 I haven't done any flow control words yet though 09:06:14 in principle, flow control words are easy too 09:07:01 just need to watch out for correct branch offset 09:08:14 and, if you have your flow control words to check structure, there's some fiddling with else 09:08:31 and then 09:10:58 +loop runtime can be non-trivial 09:11:58 last go round I only made one flow control word: 0; 09:12:08 efficient implementations use the overflow bit for signalling end-of-loop 09:12:12 I made it exit if TOS was 0 (and not drop it) 09:12:37 like for...next 09:13:54 what platform are you talking about? 09:13:57 does> will be fun 09:14:01 I'll just use the count register for for/next 09:14:49 not about a specific platform. a number of forths support for..next. 09:14:57 cmforth does, gforth does 09:15:17 I mean for overflow signalling end-of-loop 09:15:32 I'm definately not going to implement do/loop 09:16:06 eforth also has for next 09:16:15 bye 09:16:25 nope, don't mean to "bye" here 09:16:33 meant to "bye" eforth :) 09:17:07 no nested loops, it is ? 09:17:27 or will you push/pop the count register ? 09:17:44 yeah I think I'll push/pop the count register to/from the rstack 09:17:53 only down side is that I need an unloop 09:18:04 do loop is not a big deal 09:18:19 as opposed to +loop 09:19:46 Herkamire: problem with +loop is that it needs to work for negative loop increment as well 09:20:56 most efficient way i know is to use the overflow at $7FFFFFFF <> $80000000 for end-of-loop detection 09:21:02 works both ways 09:22:23 problem is, you can't use = to compare loop index and loop limit 09:22:48 or 11 0 do 2 +loop never terminates loop 10:05:28 --- quit: Kitanin (Read error: 104 (Connection reset by peer)) 10:24:56 I'm using 0; together with tail recursion to do loops 10:25:25 0; drops and exits if TOS is zero. otherwise it does nothing 10:26:42 I'm using the following, maybe your variant would make things a bit more convenient.. is0 drop ; then 10:27:17 yeah. basically I stuck that in a definition 10:27:44 :) 10:28:00 basically: : 0; dup 0 = if drop rdrop exit then ; 10:28:40 or, depending on your implementation, maybe: s/rdrop/rnip/ 10:29:09 I can't define it using if though, because I don't have if (yet?) 10:29:27 I might use this in place of if. we'll see 10:38:57 I like this: : mod 2dup / * - ; 10:39:54 Mmmmm...speed. 10:44:14 ssshhh 10:44:20 ;) 10:44:33 yeah, I know, I could do it in asm 10:44:35 http://www.azillionmonkeys.com/qed/sqroot.html <-- mmm.. speed. 10:44:45 That's something for IsForth. 10:44:46 --- join: Kitanin (~clark@SCF61185.ab.hsia.telus.net) joined #forth 10:44:48 Hi Kitanin 10:45:01 * Kitanin picks jaw up off floor. 10:45:03 Hi! 10:45:10 PPC does sqrt in one instruction 10:45:27 Hi Kitanin 10:45:38 * Herkamire picks Kitanin off the floor. 10:45:46 Herkamire: Really? Nice :) 10:45:54 SCO... sued... IBM... for... patent... infringement... 10:46:30 Robert: yeah :) it looks like I'll have to find cool algorithms for sin, cos, atan etc though :) 10:46:43 Kitanin: on what? 10:46:59 Herkamire: Is that integer or floating point square root we're talking about? 10:47:38 Apparently, IBM couldn't _possibly_ have made Linux work as well as it does without stealing UNIX knowledge from SCO. 10:48:20 humph 10:49:16 Yeah. I think we're going to be able to roast whole herds of cattle over the smoking hole that Caldera/SCO is about to become. :-) 10:49:22 Robert: floating point 10:49:35 OK... can FPUs on PC do that? 10:49:52 I don't know 10:50:06 And...if you do want integer square root, how fast can you convert integer->float->integer to get that? 10:53:52 float<-->int is one instruction (fast) but it slows the pipeline down if you use it right away (5-9 cycles??? I forget) 10:54:20 my knowledge is way out of date. I'm sure it's better now 10:54:46 Neat... 10:55:07 I'm not describing it well. I just know that there's a stall if you convert and then want to use it right then 10:55:27 I've never used the FPU in asm 10:56:11 my forth has . (dot) again :) my life is complete 10:56:21 ;) 11:09:39 Okay, I give up. How did you lose dot in the first place? 11:17:49 --- join: I440r (~mark4@1Cust116.tnt1.bloomington.in.da.uu.net) joined #forth 11:17:55 hehe 11:18:42 Hey I440r 11:18:51 I stripped my kernel down to 8 words, and wrote an assembler in forth 11:19:02 I440r: Please, don't use that old version of my pong in IsForth, you're embarrasing me : 11:19:06 :) 11:20:19 lol 11:20:25 no im not - YOU are :P 11:20:28 email me a new one :) 11:20:33 heh 11:20:35 Ah, okay. I figured you'd just managed to break it somehow. :-) 11:21:19 Kitanin: in a manner of speaking. though deleting such words as / was pretty deliberate :) 11:21:39 not to mention DUP 11:30:05 You eliminated dup? Occam would be proud. 11:31:34 I440r: Haha 11:31:40 I440r: Sure.. :) 11:34:13 The fastermail.com address? 11:34:40 I could take drop out of the kernel too, I only call it once before I can assemble it. 11:36:28 I could get the kernel down to 4 words (plus interpret) pretty easily 11:58:02 --- join: Soap` (~flop@202-0-42-22.cable.paradise.net.nz) joined #forth 12:09:43 --- part: Jaster left #forth 13:05:15 --- quit: Kitanin (Read error: 104 (Connection reset by peer)) 13:12:41 --- join: Kitanin (~clark@SCF61185.ab.hsia.telus.net) joined #forth 13:42:38 --- quit: I440r ("Reality Strikes Again") 14:07:47 --- quit: Herkamire ("weekend! here we come!") 14:33:17 http://www.amresearch.com/v5.html ... hrm. an LGPL forth for linux. i never heard of this company 14:33:36 it's written in forth. it uses gforth to compile itself 14:33:49 Hey OrngeTide 14:33:57 Long time no see :) 14:35:13 hey. :) 14:36:12 oops. gotta go again. work has been hectic. :( 14:39:51 :/ 14:39:53 See you 15:29:44 --- join: Klaw` (anonymouse@ip68-4-155-247.oc.oc.cox.net) joined #forth 15:29:44 --- quit: Klaw (Read error: 104 (Connection reset by peer)) 15:29:51 --- nick: Klaw` -> Klaw 15:43:38 --- quit: Kitanin ("Client killed by developer sick of answering stupid questions.") 18:38:20 --- quit: Soap` (Read error: 104 (Connection reset by peer)) 19:08:40 --- join: karingo (karingo@33.portland-03-04rs.or.dial-access.att.net) joined #forth 19:10:37 --- join: Soap` (~flop@202-0-42-22.cable.paradise.net.nz) joined #forth 19:58:08 --- quit: karingo (Read error: 60 (Operation timed out)) 20:16:51 'morning 20:55:25 --- quit: Soap` (Read error: 54 (Connection reset by peer)) 21:08:26 robert awake ? 22:10:59 --- quit: Speuler (Read error: 110 (Connection timed out)) 22:12:38 --- join: Speuler (~Speuler@mnch-d9ba4867.pool.mediaWays.net) joined #forth 22:35:38 --- join: Soap` (~flop@202-0-42-22.cable.paradise.net.nz) joined #forth 23:23:16 --- quit: Speuler (Read error: 60 (Operation timed out)) 23:59:59 --- log: ended forth/03.03.07