00:00:00 --- log: started forth/04.01.22 00:18:14 --- quit: fridge (Remote closed the connection) 00:36:12 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 00:49:14 --- part: Nutssh left #forth 00:53:34 --- join: Nutssh (~Foo@gh-1029.gh.rice.edu) joined #forth 00:56:44 --- part: Nutssh left #forth 01:46:56 --- join: qF0x (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 03:46:50 --- nick: qF0x -> qFox 04:11:07 * warpzero is back (gone 10:14:22) 05:14:59 I440r/mmanning: ping 05:27:26 --- join: schihei (~schihei@pD9E5C468.dip.t-dialin.net) joined #forth 05:52:06 Hi 05:52:41 sup Robert 05:53:21 * Robert is reading, listening to music and IRCing. As usual :P 05:55:28 --- join: fridge (~hovil@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 05:56:25 what are you listening to 06:12:43 warp i just got up 06:12:54 i gotta get tow work, im late lol 06:12:57 --- quit: I440r ("brb") 06:28:34 warpzero: Pink Floyd! 06:29:05 Robert: :P 06:29:19 Hey, you don't like them? 06:29:41 Not really. 06:29:54 Sad 06:29:59 What do you like then? 06:30:05 sad that people have different tastes? 06:30:17 fridge: Yeah, sad everyone isn't like I am ;) 06:30:26 I'm of course not serious 06:32:26 I'm blasting The Who currently. 06:39:06 :) 06:40:51 pink floyd are awesome 06:50:27 mmanning: YOU I NEED TO TALK TO YOU 06:54:02 mmanning: :) 06:54:09 Almost as good as Forth, eh? 06:57:26 :) 07:02:27 cya 07:28:30 * Robert goes to the shop 07:38:43 Is there a direct link somewhere to the #forth logs? 07:41:47 there are forth logs? :) 07:45:30 lol yes 07:45:34 you are being watched! 07:45:39 omg 07:45:44 all your logs are belong to meeeeeee 07:45:50 clog is a channel logging bot 07:46:13 clog would be the channel mascot if Robert wasnt already :) 07:46:19 hehe 07:55:05 Heh 07:55:23 * Robert returns from...that non-IRC thing. 07:55:26 It's cold 07:55:29 -15C or so.. 07:56:11 What planet could there be that is visible now, as the only object on the sky? 08:01:33 what time 08:01:38 i mean what time is it there now 08:01:53 5pm 08:02:09 is it towards teh west ? 08:02:30 South-west, somewhere. Can it be Venus? 08:02:46 I always thought it would show itself only at lower angles. 08:02:54 yes prolly 08:03:00 It's nice anyway :) 08:03:02 venus follows teh sun ya know :) 08:03:42 Yeah, but it's quite a bit from the sun.. Oh, well.. As long as it's there I won't complain. 08:46:55 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 08:46:56 --- mode: ChanServ set +o kc5tja 08:56:01 Sup kc5tja? 08:56:30 I am, now. 08:56:55 :) 08:56:58 I realized this morning that for some of the custom parts requirements for some of my model engine goals, I can just pour the parts directly from ordinary solder. 08:57:13 At the power levels my engines would run at, there'd be no risk of damage from using such soft metal. 08:57:23 OIC 08:57:35 You do have quite a wealth of projects don't you? 08:57:43 Yes. 08:57:47 Part of my downfall. 08:57:56 But it's fun and educational no matter how you look at it. 08:58:19 I wish I had a coworker like Seymour Cray did: Cray would start a project, and his coworker would finish them. :) 08:58:31 That's how Cray really got to be so successful. 08:58:32 lol 08:59:02 is cray dead ? 08:59:14 Yes. 08:59:30 But his company is still going, and still making absolutely monsterous machines. 08:59:47 Cray apparently abandoned the 4096-node Pentium-based supercomputer, too. 09:00:15 Comedy Opteron option. 09:00:16 Their latest supercomputer design is the Cray X1, and as a totally fitting tribute to Cray, it is basically a superset of the original Cray 1. 09:00:39 It has 64 scalar registers, 64 address registers, and 32 vector register. 09:01:02 Each vector register holds 64 scalars or 64 memory offsets (enables scatter/gather vector operations -- NICE!). 09:01:15 The integer runs at 400MHz, and the vector unit runs at 800MHz. 09:01:26 integer unit rather. 09:01:42 That's just one CPU node. There are 28 total CPU nodes in the X1. 09:01:53 And the performance/CPU ratio is out of this world 09:01:55 His last system, the CRAY-4 which was nearing completion before Seymour had to abandon the project, was in 1994 operating at a clock rate of 1 GHz. A clock rate that no one else to date has achieved 09:02:02 It blows PowerPC clean out of the water. 09:02:03 is that still true ? 09:03:11 mmanning: The Cray-4 was never completed, to the best of my knowledge, due in large part to the outrageous expense of Gallium Arsenide technology, its fragility (CMOS is static sensitive, but it appears that GaAs is *vibration* sensitive as well), etc. 09:03:43 aha 09:05:57 --- join: Nutssh (~Foo@gh-1029.gh.rice.edu) joined #forth 09:07:01 kc5tja: wow, sounds like a nice processor 09:07:21 you don't hear about stuff like that being designed these days these days 09:08:00 I think it's the second Cray-architecture processor they've designed since Cray's death. 09:08:20 hm 09:08:28 And the nice thing is, the Cray X1 is no bigger than the Cray 1 in physical size. 09:08:35 All CPU nodes are liquid cooled too. 09:08:54 cool. wish I had one in my basement 09:09:03 *sigh* someday, when I'm rich... 09:09:06 Heheh :) 09:09:21 my other dream has been to have an S/390 in my basement 09:10:23 Heh, now that I learned how the CM-1 and CM-2 machine's 1-bit CPUs worked, I wouldn't mind having one of those hanging around. 09:10:35 ooh, s-lisp 09:10:52 1 bit ? 09:10:53 lol 09:11:07 Yes, 1 bit. 09:11:25 that sounds almost useless lol - but i KNOW there are 1 bit D/A's out there - thi ive no idea how you would convert a single bit to analog lol 09:11:28 1-bit serial. The total ALU consisted of a two 2-bit MUXes, and 2 8-bit MUXes. 09:11:29 That's it. 09:11:53 The ALU "opcode" was programmed in by supplying the 16-bits directly to the MUXes, and then data was piped through that circuit one bit at a time. 09:11:56 It's *SWEET*. 09:12:18 It's simple, it's cheap, yes it's slow, but when you can pack 65536 on a single chip, it's *DAMN* elegant and quite fast for manipulating vector data. 09:13:05 Who cares if it takes 66 clock cycles to process 64-bits worth of data when you're processing 65536 64-bit words at a time? 09:13:21 mmanning: I've heard of that. do a 1 bit d-a, which is bloody cheap, then analog-filter out all the high frequencies. 09:13:37 kc5tja: Because most of the time, latency is much more important than throughput. 09:13:45 my old cd player used a 1 bit dac 09:13:46 Nutssh: Not on a supercomputer it isn't. 09:14:13 --- join: proteusguy (~proteusgu@65.196.135.240) joined #forth 09:14:16 i dont think you'll see any 1 bit supercomputers any time soon hehe 09:14:26 Nutssh: A supercomputer is designed to do one thing only: crunch numbers. I/O is almost universally handled by off-line computers in their own right, usually with more traditional CPU architectures. 09:14:27 Nutssh: you don't run your IRC client or your GUI on a machine like that 09:14:36 Embarassingly parallel tasks are rather rare if there are strong datadependencies. 09:14:40 mmanning: Connection Machines was quite successful for a long time. 09:15:19 Nutssh: You'll be amazed at what can be *made* parallel if you try hard enough. 09:15:22 Yeah, but I don't remember seen a CM anywhere in the Top500 list. 09:15:39 dork, CMs were from the 70s 09:15:44 Nutssh: I don't remember seeing a Top500 list *at all*. 09:15:54 kc5tja: you don't know about the top 500 list? 09:16:04 http://www.top500.org/ 09:16:10 TOP500 SUPERCOMPUTER SITES 09:16:12 kc5tja: in particular check out #3 09:17:04 http://www.top500.org/dlist/1996/06/ -- there is a reference to the CM-5 09:17:11 The fifth generation connection-machine. 09:17:38 So, gee, I guess the concept has validity after all. 09:17:41 AFAIK, what makes a supercomputer is usually the memory/communications subsystem. I think someone from cray once phrased it as they sell a multimillion dollar memory backbone, with a few CPU's bolted on. 09:18:22 the reason they said that is that the memory and backbone are more expensive and complicated than the CPUs themselves 09:18:35 it's easy to design a very fast parallel processor; they're called DSPs 09:18:39 what's harder is not starving it 09:19:19 heh, those rmax/rpeak values are funny 09:19:23 Yep. 09:20:03 And a CM has more sophisticated connection requirements (err...hence its name perhaps) since it must do parallel to serial conversion on vector data, and back again. 09:20:52 However, from personal experience, I also know that if you fetch 64 64-bit data from memory, and feed each through a shift register that is also 64-bits long, then start blasting data back out as soon as you're done loading it, you'll get an effective performance of one 64-bit datum per clock throughput. 09:20:57 It's just like pipelining. 09:21:13 In fact, it *is* pipelining, on a 1-bit basis. 09:21:54 I know someone who researches compilers, some DSP's have partitianed register sets, and 6 branch delay slots, and can issue 4? 8? instructions/clock cycle. 09:22:24 the best example of a modern DSP is probably a pseudo-DSP like the PPC 09:22:50 This was from Keith Cooper's compiler optimization class. 09:23:14 I admit that DSPs are pretty hairy things to work with. 09:23:21 but oh so fun :-) 09:23:25 I'd like to play with one someday. :) 09:23:30 get a moto 56k 09:23:37 He was describing the CPU, and I could only marvel at attempting to build a compiler at all. 09:23:43 How does it compare against a PowerPC? :) 09:24:44 definitely more basic, it's an older design, but it's a good starting point 09:25:21 kc5tja: A DSP can have 16 registers, but because the register MUX is a bottleneck, they're are split into banks of 8. You can dispatch 8 instructions a clock cycle (pipelined), as two sets of 4. Each set is limited to only one register bank, with one cross-reegister bank load/store. 09:26:35 Thats because you can't *read* 8 registers in a clock tick. Now, for branch delays, the following 5 instuction groups after a branch are always invoked, each with 8 instructions so you can have >40 instructions after a branch *in flight* before the branch is taken. 09:27:08 * kc5tja nods 09:27:11 Sounds like MIPS on steroids. 09:27:21 er, the MIPS concept I should say. 09:27:32 That is, don't hide the pipeline, expose it to the programmer. 09:29:51 MIPS was the first CPU really targeted to be targetted by a compiler. Nowadays, delay slots are afaik, somewhat obsolete because branch miss latencies are too high (8 delay slots?!?), and we use branch prediction and speculative execution now. 09:35:25 Actually, speculative execution came about because people didn't want to put up with delay slots. 09:36:07 Which is a pity. MIPS can demonstrably compete with existing CPU architectures even without the branch prediction logic, because of those delay slots. 09:38:00 nutssh the dsp they are using here is weird like that - when you do a branch the FOLLOWING instruciton is also executed lol 09:38:15 lots of weird things like this - luckilly im not teh one dealing with this particular dsp 09:40:04 mmanning: Thats called a branch delay slot. Several early RISC designs had them, though usually only ONE. DSP can have 5, with 8 operations each which means that to maximize utilization ya gotta *find* 40 useful operations to put there. 09:42:32 It starts getting bizarre. 09:57:35 yea lol - the guy coding for this knows his shit too and takes advantage of these quirks hehe 09:57:51 but god help anyone else needing to work on his code :/ 09:58:44 can the branch decision rely on the result of instructions in the slots ? 09:59:12 i.e. branch instruction followed by test code - result of which decides weather to branch or not... ? 09:59:35 In the case of MIPS, yes. 09:59:46 Well, actually, scratch that. 09:59:47 lol talk about obfuscated code heh 09:59:51 MIPS doesn't have the concept of CPU flags. 10:00:02 mmanning: Dude, if you know the architecture, it's not obfuscated. 10:00:03 neither does the nec 75x !! 10:00:26 That's like someone saying Forth is unreadable, but then they don't know a lick of Forth. 10:01:35 forth can be unreadable lol 10:01:38 but yea i know what you mean 10:03:52 *cough* or like someone repeating over and over that the parentheses are an issue with lisp because they look bad *cough* 10:04:18 Time for me to exit stage left, it seems... :) 10:04:26 * kc5tja won't touch this one with a 10' pole. 10:08:35 lol 10:08:39 lunch... 10:13:28 mmanning: No, thats the idea of branch delay slots. Those instructions are always executed. (which gets things even funkier when you have branches in branch delay slots.. You can have several branches outstanding. 10:15:25 lol ouch! 10:17:58 BBL 10:18:03 --- quit: Nutssh ("Client exiting") 10:51:20 --- join: aktnot (ident@233.80-202-65.nextgentel.com) joined #forth 10:51:25 --- quit: aktnot (Client Quit) 10:51:31 --- join: aktnot (ident@233.80-202-65.nextgentel.com) joined #forth 10:51:32 --- quit: aktnot (Client Quit) 11:05:17 --- join: Nutssh (~Foo@dunwlessnat.rice.edu) joined #forth 11:07:31 Back. 11:11:36 Hi 11:23:03 chandler: (i(dont(know(what(you're(talking(about)))))) 11:27:29 Actually, that should probably be written as: (not (know i (what (talking you about)))) 11:27:50 LOL 11:27:55 stupid prefix 11:28:44 It's not just a prefix thing. 11:28:50 Here's the same structure in postfix: 11:29:01 Everyone knows postfix is better. 11:29:09 you about talking what i know not. 11:29:30 Actually, postfix is weird, because adverbs have no place in the language. 11:29:43 yeah sure 11:29:48 just put them after the previous word 11:29:49 So saying something like "run quickly" is best expressed as run-quickly as a single verb. 11:30:00 oh you're right 11:30:38 Why/how do I know this? It's all because of a D&D game I ran one time. 11:30:47 I needed a unique language that no player would understand. 11:30:48 uh oh 11:30:51 So I made my own, based on Forth. :) 11:30:55 you nut 11:31:15 Hey, I cannot give secrets to the players. They'd be able to live longer if they found out what the enemy was saying! 11:31:34 Besides, it was a fun mental exercise. 11:31:51 it was ? 11:31:57 I enjoyed it immensely. 11:32:15 i i think prefix in talk could. 11:32:34 * kc5tja notes that Japanese is very largely a noun-verb language, not a verb-noun. 11:33:05 who needs secret codes? this is great! 11:33:28 :) 11:34:09 i could day all prefix in talk 11:34:28 What's funny is I understood that. :D 11:34:42 that right is? 12:05:35 --- quit: Nutssh ("Client exiting") 12:12:36 ? i could talk in prefix all day be it wouldn't 12:15:17 --- quit: schihei (Client Quit) 12:29:18 fridge: postfix prefix > 12:31:48 er 12:31:56 postfix prefix > fridge 12:43:17 --- join: Herkamire (~jason@h00c0a8884fa4.ne.client2.attbi.com) joined #forth 12:43:34 Herkamire sup ? 12:43:57 my internet connection just came back up. it's been down for 5 days 12:44:03 that sucks 12:44:12 yeah. 12:45:01 me kc5tja and postfix in talking have-been 12:45:09 I got a ton of work done on my forth though. 12:45:33 :) 12:45:51 thats good 12:47:38 well that good is 12:47:51 i am having too much fun 12:51:25 i fun too much having am 12:52:02 forum I missed, vacation I need 12:52:59 sup proteusguy 12:56:11 i working am, to tears I bored am 12:56:32 tears to I am bored 12:56:59 grammer wrong mine is? 12:57:12 i so think 12:57:13 grammar better spelled 12:57:19 >> i working am , tears to i bored am 12:57:38 who do you think you are 12:57:38 i corrected stand 12:57:48 er 12:58:13 yoda like you sound 12:58:29 yoda like sound you 12:58:33 backwards english speak don't how know you 12:58:34 I muppet am not 12:58:47 corrected stand you, do you 12:58:56 Forth humor... 12:59:06 funny much not 12:59:12 Right.. 12:59:22 english backwards speaking when, before modifiers objects come 12:59:26 it fun still is 12:59:37 syntax is: subject [adjective] object [adjective] verb [adverb] right? 13:00:23 Pretty much. 13:00:24 no no no. adjective object adjective subject adverb verb 13:00:39 adverb goes after 13:01:15 lazy dog brown quick the fox over jumped 13:01:49 Since an adjective modifies the noun to which it's bound, it can be considered a function which takes a noun as a parameter, and returns a new noun-like thing. 13:01:57 Since it's a function, it makes more sense for it to go after the noun. 13:01:58 adjectives should be after the noun 13:02:01 Likewise with an adverb. 13:02:01 yes 13:02:04 indeed 13:02:29 dog lazy brown quick fox the jumped over 13:02:45 fox quick brown dog lazy jumped over 13:03:00 YES FOX ROX OK TNX 13:03:03 :\ 13:03:04 no the dog just jumped over the fox 13:03:07 I thought the fox was brown :) 13:03:22 yes brown and quick 13:03:52 Whatever. :) I just wanted to use it as an example. 13:04:30 dog lazy brown quick qFox the jumped over 13:04:45 fox quick brown dog lazy can whoopass of on opened. 13:05:16 oops 13:05:20 fox quick brown dog lazy can whoopass of opened on. 13:05:22 That's better. 13:05:32 yeah 13:05:41 for my sake, please let a chicken jump over the goddamn dog 13:05:43 :) 13:05:54 you have to think of the stack kc5tja 13:06:08 you newb sheesh 13:06:19 qFox: For the record, my last sentence says that the fox opened a can o' whoopass on the dog. :) 13:06:26 yes 13:06:27 fox 13:06:28 exactly 13:06:44 would it amaze you if i told you i had a highlight on fox :p 13:07:22 qFox: Nope, because my client highlights both kc5tja and kc, so whenever someone says 'kc', deliberately or otherwise, I'm constantly getting beeped by my client. : D 13:07:23 :D even 13:07:27 --- quit: fridge ("Leaving") 13:07:31 well 13:07:34 i dont have beeps 13:07:51 but i scripted it so i get msgs in my active window 13:07:52 22:07:18 kc5tja@#forth@freenode: qFox: Nope, because my client highlights both kc5tja and kc, so whenever someone says 'kc', deliberately or otherwise, I'm constantly getting beeped by my client. : D 13:08:06 mine does it on warp and josh 13:08:18 WE JUST HIT WARP SPEED HURR HURR 13:08:31 Prepare for Ludicrous Speed! 13:08:41 Anyway, back to my work at hand... :) 13:08:49 well i have it on fox vos and $me , it kinda sux when someone calls their new OS movOS, especially if he's the op of a chan you're in ;) 13:09:01 vos = fox in dutch 13:09:05 People keep talking about this Robert Love guy, so I get 'false alarms' all the time. 13:09:51 * qFox continues on mysql script 13:10:00 on that note... mysql protocol sux 13:10:07 * Robert continues eating pie and doing nothing. 13:10:15 qFox: thats what APIs are for 13:10:32 nah 13:10:37 i'm doing one raw 13:10:43 but its hard to find decent documentation 13:10:46 its like searching for sex :s 13:11:00 why does everyone in this channel insist on doing things the hard wya 13:11:13 what other point is there to programming... 13:11:19 :) 13:11:19 what would be the challange :s 13:21:21 were not doing it teh hard way, we just refuse to do it the STUPID way 13:33:03 WELL EXCUSE ME MISTER MY CODE MUST BE UNDER 50K 13:33:07 :P 13:34:31 --- join: Sonarman (~matt@adsl-64-169-95-160.dsl.snfc21.pacbell.net) joined #forth 13:38:06 :) 13:38:26 no, it can be over 50k but when its 50 gigs i point my finger at you and laugh :P 13:38:46 And to think all I want my code to do is scale. 13:39:09 I want my code to work. 13:39:31 shut up Robert this isn't a channel about making things work 13:40:13 Oh, sorry, I thought I was in #asm 13:40:50 then shouldn't that have been: "I want my code to use less wait states."? 13:41:20 zing 13:41:38 well, I guess it has to work first 13:44:06 No it doesn't 13:44:10 just ask mmanning 13:45:32 --- join: fridge (~fridge@dsl-203-113-231-101.NSW.netspace.net.au) joined #forth 13:46:04 my code always works, exactly as i typed it 13:46:05 :P 13:46:37 even if you typed bugs :) 13:47:51 the is no bugs 14:10:05 * kc5tja discovered something rather amusing just a few minutes ago. 14:10:15 what 14:10:23 There is a benchmark called STREAM, which is designed to measure raw CPU<->memory (e.g., actual RAM chips) bandwidth. 14:10:41 The stupid benchmark I came up with to make my proposal? It's basically really cut down version of STREAM. :D 14:11:01 So my benchmark does have real-world implications. 14:11:52 But it seemed so tied to integer speed? 14:12:07 No, it was tied to programming language implementation. 14:12:36 The real STREAM is equally as tied, but the benchmark encourages you to use the most arcane and obfuscated of all machine language tricks to get the utmost in raw performance. 14:13:07 exampl 14:13:07 e 14:13:27 Using the PREFETCH instructions on the AMD Athlon to pre-load cache lines before they're actually used. 14:15:00 Unrolling loops 1000 to 4000 times to minimize control flow overheads, while minimizing the chances of flushing the code cache (which interferes with the measurement) 14:16:05 oic 14:17:36 But when you consider that hardware can't be changed by software (not without user-visible programmable gate arrays, and even then, that rarely will affect bus performance unless the part being programmed is the bus controller itself, which doesn't happen), it's a good benchmark for measuring software performance too. 14:19:00 I guess thats why -funroll-loops dropped the C time to :51 14:19:16 Yep 14:19:57 I think gcc is under-apreciated. 14:21:18 For the x86 platform, gcc is one of the *best* code producers there is. 14:21:42 I can't say it's been all that good for other architectures, of course, but that's because the man-years of investment on other CPUs is substantially less than it is for x86. 14:22:04 GCC 3.x aims to bridge those gaps, making more optimizations that were previously x86-specific more general across all CPUs. But we'll see how it goes. 14:22:07 Its pretty good on ppc too... Apple helps out. 14:22:44 * kc5tja nods 14:23:44 Its horrific on mips supposedly. 14:25:01 * kc5tja nods 14:25:10 Nobody put the work or the effort into the code backend for it. 14:26:01 kc5 i TOLD you!!!! PUBLISH IT !!!! lol 14:26:23 My code isn't nearly as scientific as the real STREAM and STREAM2 benchmarks. 14:26:38 so... tweak it a little :) 14:26:55 Besides, as you say, it's a senseless benchmark unless you can compare to a grand unified baseline system. 14:27:04 And that isn't going to happen. Everybody's computers are different. 14:27:37 Well I just broke my desk chair. 14:33:55 --- quit: mmanning ("Reality Strikes Again") 15:04:38 OK, time for me to get going too. 15:04:44 I have some errands to run. 15:05:10 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 15:42:07 --- quit: proteusguy (Connection reset by peer) 15:43:26 --- join: Nutssh (~Foo@dunwlessnat.rice.edu) joined #forth 16:06:52 --- quit: qFox ("if at first you dont succeed, quit again") 16:14:11 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 16:16:55 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 16:16:56 --- mode: ChanServ set +o kc5tja 16:39:18 --- quit: Nutssh ("Client exiting") 17:14:09 --- quit: fridge ("Client exiting") 17:39:59 --- quit: Robert (Read error: 113 (No route to host)) 18:24:39 * kc5tja is away: aikido 18:26:24 --- join: Nutssh (~Foo@gh-1177.gh.rice.edu) joined #forth 20:16:06 --- quit: Nutssh ("Client exiting") 20:53:27 * kc5tja is back (gone 02:28:48) 21:24:48 --- join: Teratogen (leontopod@intertwingled.net) joined #forth 21:24:56 what's the very best forth out there!? 21:25:26 isforth :) 21:25:51 ok 21:25:54 gnu forth any good? 21:26:53 well - i wont say NO exactly but i dont like forths written in c 21:27:00 it just seems WRONG 21:27:16 btw isforth is MY forth so you can take my opinion with a grain of salt heh 21:27:19 gforth! 21:27:26 oh 21:27:30 what file extension do you use? 21:27:34 .isf 21:27:35 ? 21:27:41 lol no just .f 21:27:44 ok 21:27:46 just wondering 21:27:47 =) 21:28:00 are you interested in learning forth ? 21:28:11 I used to do some forth 21:28:17 wanted to install it on my linux box 21:28:22 so I could play around 21:28:26 guess I could try gnu forth 21:28:41 I know that www.fourmilab.ch has a forth-like language too 21:28:42 do you code assembler ? 21:29:08 There is no best Forth out there. 21:29:22 The best Forth is the one that does the job you want it to, as quickly as you need it to. 21:29:31 dont listen to kc5 - listen to me!!!!! "isforth" !!!!! :) 21:29:46 ATLAST (Autodesk Threaded Language Application System Toolkit) is a (very) FORTH-like language kernel designed to be embedded into applications, rendering them extensible to a degree far beyond normal macro languages. 21:30:01 bop 21:30:05 I will try gnu forth! 21:30:23 dont just try one, try any and all 21:30:34 What did you do with forth back when you used it? 21:30:34 gforth is a nice introductory system to learn Forth on, and it's possible to write some nice console-level applications with it. But don't expect the world from it. :) 21:30:35 but... let me search freshmeat 21:30:45 Sonarman, wrote some stuff on my Atari ST 21:30:47 =) 21:30:50 graphics programs 21:31:06 cool :) did you use bigForth? 21:31:11 Teratogen not an amiga ???? heh 21:31:18 I'll tell you right now that there is no standard graphics wordset for Forth. 21:31:40 hey, isforth is on freshmeat 21:31:42 wh00t 21:31:52 lol yea 21:31:53 l440r, no, I only had an Atari 520 ST =/ 21:32:03 well its ALMOST as good :) 21:32:13 hehe 21:32:37 I am tinkering with some new concepts for a threaded interpretive language 21:32:44 so I want to play around and get the hang of forth again 21:33:20 well then your in the right channel :) 21:33:30 Mark I Manning IV 21:33:34 what kind of a name is that? 21:33:37 sounds like a missile 21:33:39 heheh 21:33:44 lol 21:34:00 Umm...that's his personal name? 21:34:03 I think a lot can be done with a little bit of syntactic sugar 21:34:20 but I am not sure if syntactic sugar is in every case a good thing 21:34:31 l440r, hey is that your name? 21:34:39 lol 21:34:44 kerbanga 21:34:48 yup 21:34:56 the I is initial only 21:35:04 the4 IV is because im the 4th in line with that name 21:35:20 * kc5tja is Samuel A. Falvo II 21:35:26 Though I expect I'll be the last of my bloodline. 21:35:29 what is the Mark I 21:35:29 ? 21:35:38 * Teratogen is Anthony R. Nemmer 21:35:43 glad to meetchya 21:35:44 * Sonarman is the first edition and thus will draw higher bidding on eBay 21:35:48 kc5tja: actually you'll be the second to last, your father was the last 21:36:00 :) 21:36:12 it's cool the way MIMIV is in the corner of the isforth window :) 21:36:22 chandler: No, I'll be the last to die, and have zero prospects for marriage, let alone having children. Ergo, I'm the last. 21:36:33 heh my initials 21:36:40 they are only there if they can fit 21:36:56 well if you want to get laid I'd suggest reading HHGTG. otherwise you'll never know how to be a truly hip frood 21:37:14 (since it's obvious you haven't read it) 21:37:14 chandler: I've read it. It didn't do anything. 21:37:23 ack, gotta do a .configure 21:37:28 ./configure that is 21:37:40 who ? 21:37:48 kc5tja: obviously not closely enough if you didn't know what I was talking about :-) 21:37:58 oh - for gforth - yea lol 21:38:02 its a C program 21:38:04 bleh :P 21:38:09 hmm, yep, it's compiling from source 21:38:16 guess I got the source tarball 21:38:25 Teratogen: what arch are you on? 21:38:25 chandler: Sorry, but I read the book twice, and I still can't remember any quotes from it. I've watched Holy Grail seven times at least (literally, thrice in one year in particular), and I can only remember *two* key scenes from it. 21:38:37 In file included from engine.c:32: 21:38:37 threaded.h:260:2: warning: #warning direct threading scheme 8: cfa dead, i386 hack 21:38:38 heh, ok, just bad memory :-) 21:38:40 eek. 21:38:42 chandler: I don't have the mind to remember books or movies verbatim for eons on end. I apologize if I let you down. 21:38:43 errm 21:38:44 archive? 21:38:48 kc5tja: and it's not verbatim 21:38:52 0.6.2 21:38:57 is what I downloaded 21:39:02 Teratogen: what arch are you on? 21:39:09 http://www.jwdt.com/~paysan/gforth.html 21:39:10 from there 21:39:14 errm, explain "arch" 21:39:16 chandler: Speaking of which, I still have to finish LotR. 21:39:21 Teratogen architecture 21:39:23 oh! 21:39:24 Teratogen: architecture 21:39:25 architecture 21:39:25 i386 prolly 21:39:26 hehe 21:39:26 computer type 21:39:57 what processor do you have and what distro do you run ? 21:40:03 Vendor ID: "GenuineIntel"; CPUID level 2 21:40:03 Intel-specific functions: 21:40:03 Version 00000681: 21:40:03 Type 0 - Original OEM 21:40:03 Family 6 - Pentium Pro 21:40:03 Model 8 - Pentium III/Pentium III Xeon - internal L2 cache 21:40:05 Stepping 1 21:40:07 Reserved 0 21:40:09 from cpuid 21:40:10 I meant x86 as opposed to ppc et al 21:40:12 gargh 21:40:12 written by a pretty cool ham radio guy 21:40:13 oh 21:40:15 *laff* 21:40:17 sorry 21:40:29 550 mhz pentium box 21:40:48 hum, I don't know if it is still compiling or what 21:40:53 maybe it got stuck 21:41:06 ah, more warning 21:41:07 any drive activity ? 21:41:12 more warnings, so it's still compiling 21:41:19 ok :) 21:41:34 * chandler is a ham radio guy in disguise 21:41:37 isforth would compile in .00000001 of a second on a dx/2-66 hhe 21:41:38 looks like it is linking 21:41:45 * Teratogen is a cb+linear kind of guy 21:41:50 Teratogen: ? 21:41:55 kc, little joke 21:41:56 ;-) 21:42:11 As long as you stay on your own assigned frequencies, I don't care. 21:42:20 BREAK BREAK 21:42:26 * kc5tja can't tell you how many CBers think the 10m and 20m bands are theirs. 21:42:30 SKYKING, SKYKING, DO NOT ANSWER 21:42:42 I am pissed off, I bent the antenna on my Sony ICF-SW100 earlier today 21:42:45 which is easy to do 21:42:47 =/ 21:42:52 let alone 11 meters. oh, you mean they have a license to broadcast that crap on that band? 21:42:55 somebody call the FCC! 21:43:10 gotta find a new antenna 21:43:16 Sony will charge me an arm and a leg =( 21:43:18 kc5 how do they get on those bands ? 21:43:24 dont they have to modify their equipment ? 21:43:33 I440r: They masquerade as ham radio operators, walk into a ham shop, and buy a rig. 21:43:38 I440r, turn the crystals backwards 21:43:39 hehe 21:44:01 kc5 oh. unlisenced wannabe's 21:44:04 Crystals are not polarized; turning them backwards won't do anything. 21:44:08 still compiling engine.c 21:44:09 blah 21:44:19 Trust me -- I know my electronics. :D 21:44:29 * kc5tja <-- ham radio callsign. >:) 21:44:41 <-- not my ham radio callsign 21:45:01 I use my callsign because I don't have to fight for my nick when I join an IRC network. :) 21:45:17 errm, gforth must be huge 21:45:19 or something. 21:45:26 3 minutes and still compiling 21:45:28 not huge. coded in c. 21:45:28 I am only on two networks and this nick is not as popular as one might think 21:45:33 well, even so 21:45:37 shouldn't take THIS long 21:45:46 Teratogen isforth compiles 800k of source per second :P 21:46:04 shutup 21:46:05 why not - the linux kernel takes that long :P 21:46:05 !@#% 21:46:17 so this is the gforth kernel 21:46:19 *laff* 21:46:30 threaded.h:420:2: warning: #warning indirect threading scheme 8: low latency,cisc 21:46:39 getting some awefully weird warnings 21:46:53 they make sense to the developer 21:46:54 maybe 21:47:19 I440r planted them to scare people away 21:47:29 away to isforth :) 21:47:32 C has no non-warning or non-error diagnostic print commands, so they use #warning to emit helpful messages to the coder. 21:47:33 Ignore them. 21:47:39 load average is 2.5, so it's chugging away 21:47:45 ah 21:48:38 its in an infinite "compie x y z x y z x y z ... " 21:51:25 kc5 its all spam if you ask me lol 21:51:27 oot@www:/home/download/software/gforth/gforth-0.6.2# gforth 21:51:27 Gforth 0.6.2, Copyright (C) 1995-2003 Free Software Foundation, Inc. 21:51:29 Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license' 21:51:31 Type `bye' to exit 21:51:33 10 15 + . 25 ok 21:51:35 whoot 21:51:37 all set 21:51:48 hmm, it comes with a license dictionary entry 21:51:49 I440r: Whatever. 21:51:49 *laff* 21:51:59 You only compile the thing once. Deal with it and move on. 21:52:16 Teratogen: Type WORDS to see the list of words. 21:52:18 you only compile once 21:52:23 I can assure you license isn't the only word it supports. :) 21:52:26 crikey! 21:52:32 lots and lots of words 21:52:47 does it give a word count? 21:53:00 no 21:53:01 I440r: No. 21:53:09 too bad I can't pipe it to wd 21:53:09 i just realised a disadvantage of a c based forth 21:53:10 err 21:53:11 Nor does it paginate them, which is a major issue for me. 21:53:12 too bad I can't pipe it to wc 21:53:12 hehe 21:53:28 almost NO users thereof would know how to modify the kernel 21:53:42 * Teratogen searches for tk words 21:53:51 nope, guess the tk "package" of words is not installed 21:53:55 ;-) 21:54:00 forth/tk! 21:54:04 or its not in context 21:54:47 IS there a Tk package for it? 21:55:10 I440r: gforth doesn't have anything non-ANSI built-in to it. 21:55:23 (except for its unique { and } locals words, which I might add, I never, ever use) 21:56:06 * Teratogen is all set to tinker with forth 21:56:07 whoot. 21:56:21 :) 21:56:24 kc5 - aye, I wonder if anyone actually ever uses them. 21:56:35 errm, does forth hash the dictionary at all? 21:56:42 kc5 - even when I just started learning Forth, I only used them long enough to understand them. 21:56:45 or is it a simple linked list 21:57:08 Teratogen - ANSI Forth doesn't care. gforth certainly hashes its dictionary. 21:57:13 ah 21:57:22 ayrnieu: Anton Ertl is known to have used them in the past. 21:57:31 kc even so, the kernel is coded in C not forth/assembler - that alone makes it practically unmaintainable other than by the original author 21:57:44 I disagree 21:58:08 isforths dictionary is hashed 21:58:16 C is a portable assembly language (it can be argued) 21:58:23 i would argue that one 21:58:25 FS/Forth's dictionary is neither hashed nor stored in a linked list. It's stored in an array. 21:58:32 its neither portable NO asm 21:58:32 Teratogen - poorly argued, sure. 21:58:35 nor 21:58:43 C is a portable assembly. 21:58:45 Teratogen - but people like to say that. 21:59:00 kc5 is it a sorted array ? do you use binary searches ? 21:59:06 I440r: No. 21:59:06 C++, on the other hand, is a steaming pile of horse manure! 21:59:15 How can I maintain the EMPTY pointer if it's sorted? :) 21:59:24 EMPTY would be useless on such an array. 21:59:27 and I have a special axe to grind, because I think Stroustrup has given the C Preprocessor a bad name 21:59:33 It's sorted chronologically, like it shoudl be. 21:59:33 macro preprocessors rule 21:59:42 EVERY language should have a closely coupled macro preprocessor 21:59:44 even Forth 21:59:53 I440r, add one to your isforth please 21:59:58 =) 22:00:00 Teratogen: Sorry, but I feel macro preprocessors are the antithesis of good language design. 22:00:11 Teratogen: Instead, macros should be physically part of the language itself. 22:00:19 kc5tja, they are incredibly versatile, but like anything else, they can be abused 22:00:21 Both Forth and Lisp incorporate these goals. 22:00:36 Teratogen: That's an orthogonal argument. You're not arguing the same thing. 22:00:52 doesn't win32forth make heavy use of { and }? or do the braces have different meanings there? when i looked at the win32forth example code, the braces seemed like they would be useful in some cases to write more readible code 22:01:03 kc5tja, don't understand what you meant by "physically a part" 22:01:10 are you talking self-evaluation? introspection? 22:01:24 Teratogen: The code which properly handles "macros" (e.g., immediate words in Forth) is *exactly* the same code that handles anything else. 22:01:27 I'm talking about a textual preprocessing phase 22:01:36 Teratogen: There is no concept of "macro expansion time" versus "compile time". 22:01:36 Teratogen - at the very least, I'd prefer a macro system that understood the language it operated on. 22:01:39 It's just "compile time." 22:01:42 oh. 22:01:53 ayrnieu, that's what I mean by "closely coupled" 22:02:03 for example, perl has -P (where available) 22:02:10 which runs perl code through the C preprocessor 22:02:15 kc5 - you certainly have a distinct 'macro expansion time' in lisp. 22:02:15 not really a good "fit" 22:02:19 but it's better than nothing 22:02:20 Teratogen: forth. i dont know any other languages with that property 22:02:21 ayrnieu: Nope. 22:02:32 Teratogen - not that the C preprocessor does much better for C. 22:02:37 ayrnieu: Macros are expanded when they are encountered; they literally are "immediate" in every sense of the word in Forth. 22:03:08 I don't think you can have a prefix macro in forth though 22:03:08 Otherwise, it could not properly handle recursive macro definitions (which both Forth and Lisp do) 22:03:12 it's all postfix! 22:03:16 prefix macro ? 22:03:21 Teratogen: Lisp has the (defmacro) form. 22:03:39 like, #define add(a,b) a b + 22:03:43 something along those lines 22:03:51 Teratogen: I'm sorry, your example makes no sense. 22:03:59 that is prefix notation 22:03:59 It's very possible to have macros in a prefix system. 22:04:03 +(a,b) prefix 22:04:05 a+b infix 22:04:06 LISP has been doing it for years. 22:04:07 a b + postfix 22:04:09 for example 22:04:10 Decades even. 22:04:27 LISP IS getting a bit long in the tooth 22:04:28 =) 22:04:36 Prefix is more properly written (+ a b), and the placement of the + inside the parentheses is precisely why such macros are allowed to work. 22:04:37 but then, so am I 22:04:40 kc5 - Teratogen speaks of the unlikelyhood of 'prefix macros' in Forth. 22:04:45 kc5tja, I was just giving you an example 22:05:11 Ok, I'm really getting annoyed with people mixing concepts from one thread of discussion to another, without making it apparent. 22:05:14 kc5 - e.g., an immediate ADD that parsed to get its arguments. Hardly unusual. 22:05:17 Of *COURSE* you won't have prefix macros in Forth. 22:05:35 --- join: Serg (Serg_Pengu@212.34.52.140) joined #forth 22:05:40 ayrnieu: It's not impossible. 22:05:50 I've written plenty of parsing macros before. 22:06:05 * kc5tja refers the coder to the definition of ['] -- that is a forward parsing macro. 22:06:24 kc5 - then I don't understand what you mean by 'prefix macro' -- not that Teratogen has made any more sense out of his assertion. 22:07:03 ayrnieu: I'm responding to Teratogen's definition of prefix macro, which is outlined above. 22:07:31 OK, calling +(a,b) a 'prefix macro'. 22:07:42 every computer language should have a closely-coupled macro preprocessor -- Anthony R. Nemmer 22:07:48 and you can quote me on that 22:07:49 =) 22:07:55 MY point, what brought this whole thing up, was that Lisp macros are every bit as "immediate" (and should the thought of in the same manner) as Forth's concept fo immediate words. 22:08:07 How we got to prefix macros from that is still beyond me. 22:08:29 hi ! 22:08:35 hello Serg. 22:08:37 goodnight everyone. 22:08:51 Every language should support macros as an integral design element of the language. -- Samuel A. Falvo II 22:09:07 Preprocessors are the sign of an insufficiently designed language. -- Samuel A. Falvo II 22:09:17 =P 22:09:30 C language is insufficiently designed? 22:09:59 C language is **VERY** insufficiently designed. 22:10:03 On NUMEROUS accounts. 22:10:12 Pascal is a much better language, then. 22:10:29 * ayrnieu scrolls up, to discover that this troll began in a familiar fashion. 22:10:29 sorry, I'm being a bit ironic 22:10:36 ayrnieu! =D 22:10:46 whatchya doin' on #forth!? 22:11:16 it's not a troll. macro preprocessors are very handy things 22:11:21 and every language should have one available 22:11:44 you need to learn either lisp or forth 22:11:52 because then you would stop using the word "preprocessor" 22:12:26 Teratogen: It is, but Oberon is overwhelmingly better still. 22:12:32 as it is you're trapped in the C worldview 22:12:40 preprocess-compile-link-run 22:12:55 not in the interactive read-compile-run-read-compile-run loop 22:16:38 Teratogen - I don't have gforth at the moment, but try: gforth -e words -e bye|wc $wc_args 22:18:48 root@www:/home/download/software/gforth/gforth-0.6.2# gforth -e words -e bye|wc 22:18:48 192 1523 12857 22:19:58 Teratogen: look for my question in #lisp 22:20:14 * ayrnieu goes to sleep for real. 22:22:46 forth has a pre-processor, it just doesnt have a post processor :) 22:31:22 it went all quiet :P 22:31:35 serg! lol i didnt notice you sneak in lol 22:35:44 hi I440r :) 22:36:23 did u make any good out of my game and text mangler ? 22:40:12 not really done anything in isforth for about a year now :( 22:40:20 i need to get some documentation out there 22:40:39 and im not very good at doc's :/ 22:40:54 heh, i'm getting a life and not code at all, unless strong need forces me ;) 22:40:58 i cant remember if i even included it in the last release 22:41:05 it was kinda a rush release 22:44:00 :) 22:55:42 --- quit: chandler (Read error: 110 (Connection timed out)) 22:56:34 --- quit: Serg () 23:04:50 I440r: can you put those files up on your web page, please/ 23:04:51 ? 23:05:07 they sound interesting 23:05:53 which files? 23:06:00 oh heh 23:06:08 the ones you were talking about with Serg 23:06:29 he made a word to do a 1 way encryption of a string heh 23:06:36 kinda like write only memory lol 23:07:03 so once the string has been encrypted there's no way to get it back? :) 23:07:36 ! 23:07:37 lol 23:07:50 what's so funny? 23:08:01 :) 23:08:12 am i not "getting" something? :) 23:08:19 i still have that source file hehe it should have been in the last release 23:08:25 i dunno why it wasnt 23:10:25 i need to go zzz 23:10:29 werk 2morrow 23:10:41 Sonarman do you use isforth ? 23:11:13 --- join: chandler (~chandler@d-84-77.dhcp-149-159.indiana.edu) joined #forth 23:12:00 yeah, a little bit. i like it, and your code is easy even for me to read :) 23:12:10 i haven't really done anything with it though 23:12:28 other than a couple words which filled the screen with green numbers ala the matrix :) 23:13:02 I was amazed at how fast it compiled everything 23:13:40 heheh 23:14:02 it doesnt run things as fast as other compilers do tho 23:14:10 >:) 23:14:20 the compile speed is in my opinion way more important 23:14:33 isforth runs its code at an acceptable rate 23:14:41 I440r, is that because it's direct-threaded rather than native-code/subroutine-threaded? 23:14:49 I440r: Dude, PygmyForth is the slowest possible dictionary implementation, and it was quite often *WAY* faster than I could respond with. 23:14:55 having to wait 20 hours for 50 gigs of source to compile is not acceptable 23:15:00 "that" meaning it doesn't run as fast 23:15:07 as other forths 23:15:26 kc5 heh cool 23:15:41 And I know my system is way faster than Pygmy's. 23:15:48 actually as forths go isforth is quite slow at executing things :) 23:15:50 (and it'll get much, much, *MUCH* faster still in the future.) 23:16:05 kc5 isforths compile speed is down to TWO simple things 23:16:07 Especially now that I know more about vectors and how to implement them properly on x86 architecture. 23:16:14 1: hashed dictionary 23:16:17 what are vectors? 23:16:20 2: memory mapped source files 23:16:50 Sonarman: A vector is an array. 23:17:01 Well, more precisely, a vector is a 1-dimensional array. 23:17:22 so what is there to learn about them, and how are they different from one-dimensional arrays? 23:17:35 Sonarman: A vector is a 1-dimensional array. :) 23:17:49 oh heh :) 23:18:12 There is not much to learn about them except that your looping constructs can make or break your performance. 23:18:31 The goal is, obviously, to eliminate loops in your code, but also in the code that manipulates vectors too. 23:18:58 --- quit: Sonarman ("leaving") 23:19:12 And I now have some tricks up my sleeve to make my dictionary searching code (which stores its state information in vectors) much faster than it currently is. 23:21:04 Of course, having dedicated vector processing units would be so much better, but I digress. 23:21:29 kc5 any plans to make fs stand alone ? 23:21:36 i.e. not require gforth ? 23:21:38 * Teratogen abandons forth and takes to writing cool tcl scripts 23:21:42 I440r: Of course. 23:21:46 JUST TEASING 23:21:56 =) 23:22:13 I440r: That's been the plan from the beginning. 23:22:22 This is why I'm very hesitant about porting FS/Forth at such an early stage. 23:22:23 good :) 23:22:29 Heck, I don't even have FS/Forth *running* yet. 23:22:37 everyone told me i should use gforth or something to bootstrap isforth with 23:22:40 Just it a crude prototype of its compiler. :) 23:22:48 they said i would get it working much faster 23:22:57 i think i would stil be fighting with gforth lol 23:23:06 GForth is very easy to work with. 23:23:18 My delaying with FS/Forth is purely due to my lethargy and my lack of free time. 23:23:30 thats my problem right now too 23:23:32 Anyway, I have to get to bed. 23:23:36 I have to work tomorrow. 23:23:36 yea. me 2 23:23:39 me 2 lol 23:23:43 aint it a bitch :) 23:23:51 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 23:59:59 --- log: ended forth/04.01.22