00:00:00 --- log: started forth/03.06.12 00:06:10 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 01:06:14 --- join: deluxe (~deluxe@pD9E59EA5.dip.t-dialin.net) joined #forth 01:25:50 --- quit: deluxe ("Client exiting") 02:24:40 --- join: fridge (~matt@dsl-203-33-160-181.NSW.netspace.net.au) joined #forth 03:51:45 --- join: mur (murr@baana-62-165-185-171.phnet.fi) joined #forth 05:26:33 --- join: delYsid (xlsidel@N001P031.adsl.highway.telekom.at) joined #forth 05:53:57 --- join: crc (~crc@AC8E8138.ipt.aol.com) joined #forth 06:04:51 --- nick: mur -> mur_bbl 06:35:12 --- join: tcn (~tcn@tc2-login11.megatrondata.com) joined #forth 06:38:25 --- nick: mur_bbl -> mur 07:10:08 --- quit: crc ("I was using TinyIRC! Visit http://www.tinyirc.net/ for more information.") 07:17:15 --- quit: tcn ("TinyIRC 1.1") 07:34:43 --- join: hovil (~matt@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 07:43:30 hey 07:43:33 any mac users awake? 07:43:41 yes 07:45:43 are there some c++builder kind of RAD on mac? 07:46:19 where you can place items on form and easily set their actions 07:46:27 delphi is one that kind too 07:47:09 if you know any 07:47:27 InterfaceBuilder 07:49:08 thanks i'll have a look 07:49:14 http://developer.apple.com/tools/interfacebuilder/' 07:49:48 codewarrior also 07:49:56 but that is a commercial product 07:50:24 actually, codewarrior uses interfacebuilder too. 07:50:42 for the GUI designing bits 07:53:23 c++builder did great impression on me ages ago. i even bought it. i still think it's the best developer software there is, even i've been using linux nowdays (might change to mac soon) 07:54:25 I haven't had much experience with IDEs 07:57:19 mur: have you tried a lot of different IDEs that are out there? 07:59:00 i think i have 07:59:12 none on mac as i haven't been able to work on one :/ 07:59:38 the only software I've written on macs have been in python 07:59:55 no real openstep development 08:00:01 i once made one program 3 times on different os :) with different rad to test how they work :) 08:00:10 python seems to be fine langauge 08:00:23 one greenpeace server uses it :) 08:09:03 apple's interface builder kicks ass 08:39:51 I don't really like GUI apps 08:40:16 yet for some reason, I still like OS X =) 08:41:33 --- quit: cleverdra (Success) 08:41:52 probably because usually gui apps are not good at all 08:42:02 unlogical, filled with obsolete stuff 08:47:31 http://www.wincvs.org/shots.html 08:47:36 that application has scarred me for life 08:47:50 so many widgets 08:47:52 so little logic 08:57:43 the mac version looks best of the 3 08:57:56 but windows one is filled with all nonsense buttons yes 08:58:23 * mur has been planning to do ultimate irc program for osx :) 09:01:52 mur: groan, not another cocoa irc client 09:02:04 I use ShadowIRC if for some reason I dont want epic ;) 09:02:26 (you have to build it from CVS) 09:02:37 I use epic 09:02:41 in Terminal.app 09:02:45 I use GLterm 09:02:51 because I couldn't find a decent GUI one 09:02:52 better emulation. 09:02:57 ShadowIRC is decent. 09:03:05 I'll have to check it out 09:03:08 it's on sf.net 09:03:19 ta 09:05:22 aha 09:06:10 glterm supports those, not sure what they're called, ascii lines, like ncurses uses 09:06:47 if it sends pgup character to the irc client, I will be a happy man 09:07:19 yeah - umm 09:07:23 it's a font thing I think 09:07:33 see, my lines are the A umlaut :( 09:07:36 but i deal 09:07:44 so that is an ncurses thing ? 09:07:55 well, I couldn't find the right font using the fonts in Terminal.app 09:08:03 not specifically 09:09:19 I think they are ANSI codes 09:09:35 well, not sure, that is a wild guess 09:24:57 ianni the outlook is not important 09:25:09 i want to make irc client that is suitable for hard core irccers :) 09:25:15 that it's on background all the time 09:25:43 and works a bit like gimp (that the windows can be overlied on other utilities) 09:25:59 a bit like instant messangers but with irc goodies :) 09:26:16 IRCle was like that 09:27:17 * mur has certain view to what programs shoudl look like and behave. and so far no irc program has been working well enough 09:27:29 bersirc has very good menu, though 09:28:23 for hardcore irc users? 09:28:26 like .... epic? :) 09:28:36 hheh 09:29:07 i thought to merge in the program suite a bouncer 09:29:49 boncer? 09:30:09 well it is in a way irc proxy 09:30:46 when you go sleep the nick can still be there even you shut down computer (and can e.g. log messages) or change nick like mur__ZZZZ 09:31:31 there coudl be also cache, so you can browse back if your local internet connection dies during irc conversation 09:35:05 i irc from a linux server w/ screen 09:35:16 i get all that plus i can irc from anywhere in the same client 09:36:01 yes i am aware of that. i used to irc from shell in school sometimes (when irc proggies were not installed :) 09:38:12 --- join: crc (~crc@AC9E1C44.ipt.aol.com) joined #forth 09:38:21 --- quit: crc (Client Quit) 09:39:22 hmm is the streaming ircle only? 09:41:04 some general streaming might be useful in irc 09:47:49 --- join: Herkamire (~jason@h0030657bb518.ne.client2.attbi.com) joined #forth 09:57:15 streaming? 09:57:25 like audio? 09:57:28 that'd be interesting. 09:59:04 ogg 10:12:01 there could be a general streaming method in dcc 10:12:21 /dcc stream person 10:12:22 dcc is cumbersome. 10:12:42 msgs go via server 10:13:55 yeah, i know the difference 10:14:04 it would be the way to do it 10:17:28 perhaps people shoudl be given option to decide 10:17:39 you can't msg large amounts of data 10:17:49 streaming audio should not go through the server. 10:17:51 without getting kicked 10:18:04 well duh :D 10:18:46 if it's not through the irc server, then why try to bundle it into irc. just use http or some other protocol for streaming. 10:19:33 /msg nick hey, listen to this: http://URL/song.ogg 10:22:15 it'd require uploading / local server 10:22:20 most people dont have one 10:24:05 are you making it for yourself, or 'most people'... if you're making it for 'most people' you will make a piece of software that is full of compromise 10:25:00 --- join: deluxe (~deluxe@pD9E59EA5.dip.t-dialin.net) joined #forth 10:25:01 most people don't want to stream audio off their computer 10:25:18 aye 10:25:23 hello deluxe! 10:25:29 terve 10:25:38 * mur thinks deluxe was talking yesterday before the head was about to explode 10:25:56 lol excuse moi 10:26:47 * mur dones't remember at all what we were talking about 10:27:38 found an amazing stream in turku, wondered if you knew them 10:28:01 stream? water stream? 10:28:28 we were just talking about audio and video streams :o) 10:28:32 fusion jazz audio stream 10:29:00 probably they have a small studio also 10:30:32 * deluxe also likes the reposado .mx stream 10:30:39 decent :-)) 10:39:19 some1 here owns blue note vinyl? 10:40:10 we have lot of old vinys 10:40:14 but dont know what they are 10:41:00 we? 10:42:08 my parents 10:42:12 * mur still haven't moved 10:42:19 will within 2 months 10:44:06 oh nothing like shadow irc 10:44:24 * mur is having a look at irc screenshots 10:51:46 perhaps what woudl you think of this kind of query /ctcp streaming_supported ? 10:51:49 --- quit: fridge (Read error: 104 (Connection reset by peer)) 10:53:53 mur: erm what for? 10:54:01 to see if they are running his client 10:56:33 ;) 10:56:38 which client? :-) 10:56:49 * mur woudl like to have general streaming standard 10:57:06 /dcc stream audio/film 10:57:20 deluxe i have one in mind i might code :) 10:57:43 if the client writes out the data straight away to disk, they can just play the stream as it spools in 10:57:57 no need for fancy standards 10:58:06 mur: :-) 10:58:51 plus they'd need their blocksize turned way up 10:58:55 and it'd be niec if it was TDCC 10:59:04 which is non-checking dcc, i think 10:59:10 its faster, i think 10:59:51 some1 w/ cocoon experience here? 10:59:56 --- join: fridge (~matt@dsl-203-33-160-181.NSW.netspace.net.au) joined #forth 11:00:01 --- join: kc5tja (~kc5tja@ip68-8-206-137.sd.sd.cox.net) joined #forth 11:00:07 --- mode: ChanServ set +o kc5tja 11:00:09 well i might add then in dcc window "stream" button ;) 11:07:52 cocoon? that java stuff? 11:14:40 apache cocoon, xml portal. and yes, "java stuff", why? 11:15:34 maybe we should suggest to them to replace java w/ forth ;-) 11:17:50 ianni: would you prefer perl or python for xml processing? 11:22:38 I dunno, i'm a java coder, and I do all my XML processing in Java 11:22:51 i dunno, perl, since it seems faster ;) 11:23:02 i'm american - i like speed 11:23:11 speed and power 11:24:43 * mur is european. i like usability and stability :) 11:26:29 mur: try out java :) 11:26:31 hehehe 11:30:33 another gem :-) stanley turrentine - leavin' west 11:32:35 i like speed and power i'm a java coder 11:33:30 deluxe: I get paid. but I *do* like it, too ;) 11:33:45 and it is quick and powerful, when I use it right! 11:35:02 just keep away from swing! 11:37:17 indeed 11:37:27 wiser words are hard to find 11:37:54 ianni: wasn't sure 'cause you said "stuff". at a first glance java seemed to be awful slow 11:38:05 deluxe: which part ? 11:38:45 language execution speed? 11:39:02 it's pretty fast.. close to C++ speeds 11:39:59 overall. well yes, swing also. or online banking, chat clients etc pp 11:40:31 deluxe: that part is pretty fast, here 11:40:42 Java GUIs are inherently slow as crap 11:40:49 which? 11:40:50 and I do not do those 11:40:56 language execution. 11:41:06 i can write a method in C if i really needed it 11:41:12 but i never do, it's always more than fast enough 11:42:06 I've seen Java rival c and c++ in certain environments.. 11:42:16 granted that the language is so much better than C++, it's pretty cool. 11:45:33 ianni: but even precompiled java gui's are slow, how come? 11:48:30 Java is extremely wasteful with its core set of objects, that's why. 11:48:40 Java, as a language, is quite sufficient. 11:48:54 But the core libraries are horrifying to use and are as unorthogonal as the x86 opcode map. 11:49:18 One thing my roommate (a Java programmer) *constantly* complains about is the fact that Integer and String are finalized -- you cannot subclass them. 11:49:46 So you have to write your own classes, which aggregates such objects, you need to replicate their methods, et. al., just to get the same effect you'd normally get through ordinary inheritance. 11:50:22 Hopefully, 1.5's polymorphic parametricism will assist in this area. But I suspect it'll just add more bloat to the Java spec and run-time. 11:51:16 I don't do much Java coding, so I don't know so much about these details. But by the way he talks about it, it seems endemic throughout the core Java libraries. 11:52:08 However, that being said, you folks might want to check out the STK(??) toolkit, used on the Eclipse Java IDE environment. 11:52:58 While noticably slower than a raw C/C++ GUI environment, it's also *markedly* faster than any other Java GUI environment I've ever seen. It does this through tighter coupling with the host OS' native GUI environment. 11:53:21 I haven't tried it under Linux, but under Win32, the slowness was barely noticable. 11:54:46 SWT. it sucks. 11:54:59 ianni: but even precompiled java gui's are slow, how come? 11:55:24 think about it, loading thousands of classes, checking memory, all that as a bottleneck to all the native component peers 11:55:36 AWT is better, Swing is inherently slow as dirt 11:55:47 SWT is great if you use windows (count me out) 11:56:04 and actually i heard it's not all that great internally, too, but i dunno 11:56:25 kc5tja: most of these ugly spots in the java langauge are cleverly avoided by experienced java programmers.. 11:56:33 it is ugly though yeah :) 11:56:41 ianni: My roommate is using Eclipse under Linux, and loves the hell out of it. 11:56:59 kc5tja: cool.. glad it's usable under linux. I use a better IDE, called IDEA.. it's damn amazing 11:57:17 ianni: Good libraries shouldn't require cleverness on the part of the programmer. 11:57:19 it makes me have faith in IDEs, and Java GUI ide's both. 11:57:34 Is IDEA commercial? 11:57:44 kc5tja: well the thing is that String is special for performance reasons, and Integer is a primitive wrapper - there are primitive types 11:57:46 yes, it is 11:58:02 an int/char/short/long/double isnt an object in java 11:58:08 so, yeah, that gets messy too 11:58:08 ianni: Yes, I agree that 'int' is a primitive type. Integer, as a wrapper, though, should not be final. 11:58:17 Otherwise, why in the world would you produce a wrapper? 11:58:26 kc5tja: nothing stops your from writing your own Number subclass, IIRC. 11:58:36 ianni: Again, duplicating code/functionality. 11:58:38 why would you need Integer wrapper functionality? why would it be hard to duplicate? tec 11:58:49 true - i dont know why they arent extensible. 11:58:59 but i bet it stems from the fact theyre primitiev wrappers 11:59:14 maybe there could be immutable/mutable types. MutableInteger. 11:59:16 I don't think you're getting the gist of what I'm trying to say. 11:59:29 kc5tja: i thought i did 11:59:31 And I don't think you ever will; either I'm explaining it wrong, or your thought processes aren't open enough. 11:59:50 Your question about, "Why would you ever. . ." leads me to believe you aren't. :) 12:00:00 oh, disregard it then 12:00:13 my mistake 12:00:28 Just another reason to write code in Forth for a virtual machine -- libraries are evil. >:) 12:00:39 I'm not good enough for forthyet 12:00:43 Heheh :) 12:00:55 that's an admirable quality for a platform :) 12:01:07 "finalized" "unorthogonal" "wasteful" "ugly spots" design/spec flaw or strategy(eg. distributedness etc)? 12:01:13 i understand how it works internally a bit more now 12:01:38 deluxe: nobody said it was perfect - but there are nowhere near the array of libraries and frameworks that I find very useful in architecting systems 12:01:42 for forth, for example 12:02:00 (sadly!) 12:02:01 * kc5tja has considered writing a Forth virtual machine, something akin to a P32, with 32-bit word size. Then, using code morphing and JIT to make it run fast on whatever host PC you're playing with. 12:02:21 Speuler wrote a JVM in ASM and was talking about the similarities. 12:02:22 good idea 12:02:25 of forth and the JVM 12:02:35 he said there were some interesting ones 12:02:43 y 12:02:56 i dunno much about the jvm internals... but interesting topics here nonethelesss 12:03:15 P32 is a forth vm? 12:03:37 It's an actual Forth processor, made by Dr. Ting, IIRC. 12:03:48 It's similar to the P21, but is 32-bits wide instead of 21-bits wide. 12:06:46 has any1 read the article "optimized forth xml processing" yet? 12:07:05 nope 12:07:08 no 12:07:20 where is it? 12:22:22 kc5tja: do you think forth, on modern desktop computers (x86, PPC, etc.) should be in a virtual machine, or should it be native? 12:25:59 * ianni MMMBop 12:26:02 lol ww 12:26:12 little boys! 12:26:12 oh no! 12:26:20 mmmbop 12:26:21 mmmbop 12:26:21 mmmbop 12:26:34 what happened to them ever sice? 12:27:19 I think it depends on what you want to do with it. 12:27:39 One of the reasons I wanted to play with the virtual machine concept is the exploitation of instruction-level parallelism on modern CPU architectures. 12:27:57 A single Forth thread is horribly difficult to optimize for this instruction-level parallelism. 12:28:12 But in a VM situation, you can set up multiple Forth tasks, which the JIT compiler is aware of. 12:28:27 makes sense. 12:28:43 a simple VM sounds like a great intermediate step for a forth optimizer. 12:28:45 It can compile two or more tasks interleaved in the same physical CPU instruction stream, thus keeping the CPU's pipeline full and busy. 12:29:03 The net result is, while any one Forth task runs "slow," it's actually running multiple Forth tasks as fast as possible. 12:29:43 sounds interesting 12:29:45 It can do this by making better use of CPU registers. This is especially true on RISC architectures. I have PowerPC in mind here, because it not only has tons of registers, but tons of execution units too. 12:30:30 cool. I mostly only think abuot PPC, because that's what I have. (and that's what my forth runs on) 12:30:52 It's important to maintain a clean separation of the Forth environment and the host environment in this situation, though. 12:31:02 you should definately be able to speed a forth up a lot by optomizing out much of the stack usage. 12:31:25 That is, the FVM has its own unique address space, and communications with the host environment must be done through special "system call" opcodes, etc. 12:31:36 Well, I'm not optimizing out the stack usage. 12:31:41 I'm optimizing register usage. 12:32:01 Each forth thread still has all the normal stack manipulations (peephole optimization not withstanding; of course that will occur as well). 12:32:12 The average Forth VM requires only three or four CPU registers. 12:32:34 The PowerPC has at least 16 that are usable for general purpose work in most ABIs. 12:33:24 Hence, the JIT engine could work to code-morph up to four concurrently executing Forth threads into a *single* PowerPC thread, taking care to optimize for out-of-order instruction execution, register allocation, etc. 12:34:44 This is the same basic technology as what Transmeta is doing, or the MacOS 68K-to-PowerPC conversion software in their 68K "emulator." 12:35:25 only 16 free registers? 12:36:12 Herkamire: You don't do much PowerPC assembly language, do you? :) The ABI specification for most PowerPC environments pre-assign many of the chip's registers for dedicated purposes. For example, some are used as parameter inputs to C functions, some as outputs, some are even reserved by the host OS. 12:36:33 That leaves relatively few "scratch" registers to play with. 12:36:35 I don't know what ABI is 12:36:55 syscalls use r0-r10 12:37:00 So out of 31 registers that the PowerPC has, a small fraction of those are available for use as general purpose registers for your program. 12:37:06 you can use r11-r31 for whatever 12:37:32 and I've never done a syscall that used r8, r9 or r10 12:37:39 Those are syscalls. 12:37:43 What about C calling conventions? 12:37:49 screw C 12:37:59 I don't do C and asm together. 12:38:15 Well, the ABI document specifies all that stuff. ABI is Application Binary Interface, BTW. 12:38:24 You're only using a subset of it, it seems. 12:38:40 So, in your run-time environment, I'd have 20 registers to play with. 12:38:46 What model PowerPC are you using? 12:39:03 the only thing I'm interfacing with is 3 syscalls. and they only use r0, r3 r4 r5 r6 r7 12:39:30 r0 is hardwired to the constant zero, last I checked; I do not consider that a register. 12:39:42 only for a few instructions 12:39:52 I use r0 as a scratch register in my asm code a lot 12:40:12 Well, OK, whatever -- it doesn't change the point I'm trying to make. 12:40:32 The point is, your PowerPC can probably retire up to four integer instructions per cycle, if it's a G4. 12:40:34 Maybe three. 12:40:49 no, I was just curious why you said 16. I didn't realize you were working with C. 12:40:58 I think C and asm and forth is too many languages at once :) 12:41:11 The JIT engine for your platform would take advantage of that, by saying, "Forth thread A uses registers R11-R15, thread B uses R16-R21, and thread C uses R22-R27." 12:41:39 And compiles each instruction sequence *interleaved*, so as to take advantage of the PowerPC's pipelining to maximize overall FOrth performance. 12:42:05 Herkamire: I'm not, but you still have to adhere to the system's register usage requirements. 12:42:06 what about the condition register? 12:42:19 Herkamire: What about it? 12:42:37 kc5tja: only to the extent that you use the system. Linux is very good about leaving your address space and registers alone. 12:43:13 Herkamire: I thought you were working under MacOS X, which is why I brought up the ABI. Each OS has its own ABI, generally speaking. 12:43:18 --- quit: delYsid (Read error: 60 (Operation timed out)) 12:43:32 the biggest issue I'm aware of with stalling a PPC is waiting for the condition register to get set, so you can branch conditionally. 12:43:47 The JIT engine would compensate for that. 12:43:49 oh. I'm working under Linux. 12:44:03 Obviously, some border cases will always occur where the compiler won't be able to escape. 12:44:29 although, with the "compare" instructions, you can choose which field in the condition register, so you could interleve the stuff if your careful. that sounds cool. 12:44:35 Most, if not all, of the stack permutation words do not (or, at least, should not) affect flags. 12:45:11 So if thread A is comparing and branching, it can interleave one or more instructions from the other Forth threads until it feels the condition codes are appropriately set, making sure not to affect the flags registers. 12:45:31 yeah. it's only for conditional branches. 12:46:05 However, if the JIT engine sees that thread B is about to do a conditional branch after, say, a SWAP, then it knows that it too will block on condition codes, and will NOT schedule task B's instructions. It'll just insert NOPs or, if available, thread C's instructions. 12:46:42 wait, back to square one. What code are you going to interleve? How will that be faster (or isn't this a goal) then just having a single thread, native forth? 12:46:58 PowerPC is lucky, because it has such an orthogonal instruction set. x86 isn't nearly as flexible, so I don't know what kind of speed-up I can expect from this, if any. 12:47:05 * kc5tja sighs 12:47:24 PPC seems very oriented towards optimizers. 12:47:25 PowerPC can execute instructions completely and unabashedly out of order if it knows that the results of one instruction do not depend on another. 12:47:37 Herkamire: As all RISCs are, by explicit design and definition. 12:47:39 yes. 12:47:56 However, a single Forth thread is **HEAVILY** dependent on the results of any previously executed words. 12:47:56 very cool, but occationally causes stalls 12:48:18 The only way to parallelize Forth execution is to run multiple Forth threads concurrently, preferably in hardware. 12:48:26 So, . . . 12:48:37 so. that's only an issue if you are switching execution units (like if you int calculations affect a branch, or if you do float<-->int) 12:48:50 Huh? 12:48:59 I can't explain this if you keep second-guessing me. :) 12:49:27 oh right. You're trying to interleve int math code with other type instructions from thread B, so it can execute both instructions at once. 12:49:35 I keep thinking you're just trying to avoid stalls. 12:49:39 Int math with int math too. 12:49:46 I am trying to avoid stalls. 12:49:50 That's the whole point. 12:50:06 If I JIT only a single thread of Forth code, 1 2 + 3 4 + * will produce three stalls. 12:50:08 Easily. 12:50:28 will the PPC do two int instructions at once (if one is not dependant on the results of the other?) (I think the answer is no here...) 12:50:39 However, if the JIT is aware of another thread that is ready to run, then it can schedule instructions to run where the stalls would normally occur. 12:50:50 Sir, PowerPCs do **FOUR** per cycle. :) 12:51:07 four _different_ types of instructions. 12:51:11 No. 12:51:20 one int, one branch, one float, etc 12:51:22 Four *INTEGER* instructions (I'm talking G4 here) 12:51:31 it can? 12:51:32 Yes. 12:51:36 damn. that's impressive :) 12:51:37 That's what superscalar means. :) 12:52:00 AMD Athlons can do the same, but it has a much, much tougher time doing it. 12:52:23 An athlon can actually retire 7 instructions per cycle (four integer, two floating point, one branch, and one load or store). 12:52:24 G3s don't do this I presume 12:52:36 G3s I think only do 2 integer instructions per cycle. 12:52:46 Note that FPU and branching is *ALSO* done concurrently. 12:52:58 So I'm concentrating *ONLY* on Integers for the purposes of this discussion. 12:53:02 I've never heard of this before 12:53:21 PowerPCs have been superscalar since at least the PowerPC 604. I'm very surprised. 12:53:54 ok. so I can see how you can compile some nice code, if you know two forth functions that will be executing at the same time. but what situations will always have those two functions executing at the same time? 12:54:04 Technically the PowerPC 601 is superscalar, but IT only executed 1 integer instruction, 1 branch, etc. per cycle. 12:54:25 I was told that PPC could execute 4 instructions at once, but only when they were from different units. 12:54:33 It's not guaranteed to do that. This is why the JIT runs in real-time, all the time. 12:55:09 Nope -- top-end PowerPCs are as heavily superscalar as Intel units. For their clock rates, they're mind numbingly fast. 12:55:50 Seriously, given the choice between my AMD Athlon at 800MHz and an 800MHz PowerPC G4, the G4 is my choice, hands down. I don't even need to think about it. :) 12:56:12 that's cuz it's way faster and simpler 12:56:28 It's faster because it can retire more instructions per clock, and it can do that because it has more registers. 12:56:49 is your JIT compiler going to be generating a stream of instructions that only gets executed once? 12:56:51 x86 assembly language is still limited to 8 pseudo-general purpose registers. 12:57:11 Herkamire: Yes. 12:57:26 I don't know AMD, but I know that G4 has a very short pipeline 12:58:11 My particular Athlon has, like, 7-deep pipeline. It's pretty short, but PowerPCs have 5-deep pipes. 12:58:33 7 is very good 12:58:46 It's an old chip though. Modern Athlons have 22-deep pipes. :( 12:59:00 They *rock* for straight-line code, letting the CPU hit multi-GHz speeds. 12:59:07 But man, do *NOT* mispredict a branch. :D 12:59:22 now here's another thing I've been curious about. A 7 deep pipeline means 7 cycles, or 7 instructions? 12:59:25 Modern Pentiums also have deep, deep pipelines. 12:59:30 Both. 12:59:37 Each instruction takes 7 cycles to execute. 12:59:47 But, given straight-line code, it can process 7 instructions at a time. 13:00:02 right. 13:00:03 So while the instruction *latency* is 7 cycles, instruction *throughput* is one instruction per cycle. 13:00:09 (per pipe) 13:00:13 man those things must be complex on the inside 13:00:18 No kidding. 13:00:25 That's why I want to make my own MISC processor some day. 13:00:38 I plan on doing it with discrete component TTL, and running it *fast*, because I know I can do it. :) 13:01:18 I liked what I read about Chuck's 25x cores 13:01:35 I (obviously) don't know much about chips though 13:01:54 I was actually thinking of going with a 16-bit design, but in retrospect, I think a 24-bit or 32-bit design is more usable to me. 13:02:28 The X18 (so-called because the CPU cores are 18-bits wide instead of 21 bits) is an *intriguing* design. 13:02:41 If realized, it could revolutionize programmable logic as we currently know it. 13:02:53 The "border" CPUs are all connected to external pins on the chip. 13:03:15 All CPUs are connected to each other via a high-speed bus of some kind (I assume parallel ports or VERY high-speed serial ports). 13:03:31 Each CPU has its own store of memory, and runs independently of the other CPUs. 13:03:50 It's a 25-node Transputer on a single-chip, essentially. 13:04:09 But the thing is, each CPU runs so fast that under *software* control, it can emulate traditional bus-connected hardware devices. 13:04:19 Things like video chips, DMA engines, etc. can be coded in *software*. 13:05:34 That degree of programmability has heretofore only been the domain of FPGAs. 13:05:40 Too bad it isn't being worked on. :( 13:08:40 it isn't? 13:08:49 Chuck has no funding for it 13:09:12 It's just a personal project for him. 13:09:14 I haven't checked in for a while, last I checked, he took the info off his site because of a moneyed interest. 13:09:22 Oh? 13:09:26 That's news to me. 13:09:31 Hopefully we'll see some positive developments then! 13:11:18 or we'll just see an amazing product. 13:11:37 We need more fireside chats. :) 13:11:39 that sounded so amazingly cool. 13:11:59 you could just program some of the pins to do ethernet, or whatever. 13:12:30 I really want a handheld with a cool chip, that does TCP/IP over ethernet 13:12:50 (documentet well enough that I can write my own OS) 13:13:45 * kc5tja is interested in making a USB host controller with built-in DMA engine, actually, for my homebrew computer I want to build. 13:14:33 I'm not ready to get into making a computer yet 13:14:51 The first CPU I made was when I was around 15 years old. 13:15:06 :) 13:15:12 It didn't do much -- ran at 60Hz, though I debugged it at 1Hz. 13:15:15 _made_ a CPU? coooool 13:15:24 what did it do? 13:15:37 4-bit, had two registers (accumulator A and LED register L), could address 256 nybbles of memory, but that's it. 13:15:53 It wasn't Turing complete though. It couldn't run any arbitrary software. 13:16:30 I wish I'd known about the Steamer16 back then, though, because that runs on only 8 instructions (3-bit opcodes!). :) 13:16:36 And IS Turing complete. :) 13:16:42 Steamer16 is the ultimate MISC. 13:17:00 kc5tja wow what opcodes did you have? 13:17:06 3-deep data stack, *NO* return stack (you have to emulate return stack yourself), and 5 3-bit opcodes packed into a 16-bit word. 13:17:21 LDA #n - load accumulator with the value 'n'. 13:17:27 TAL - Transfer A to L 13:17:36 TLA - Transfer L to A (useless, but it worked) 13:17:46 STA nn - Store accumulator to address 'nn'. 13:17:54 LDA nn - Load accumulator from address 'nn' 13:17:58 INC - Increment A 13:18:03 DEC - Decrement A 13:18:13 JMP nn - Jump to address nn 13:18:27 :) 13:18:30 Oh, and NOP -- no operation. :) 13:18:32 That's it. 13:18:47 was nop empty loop ? 13:18:55 Now, if I'd implemented a JZ instruction (Jump if A is zero), then it could do stuff. But, I didn't realize that at the time. 13:19:16 mur: Empty "loop"? What do you mean by 'loop'? 13:19:54 i dont knwo much electronics 13:20:15 was it on normal board? 13:20:19 or one chip? 13:20:20 Each instruction executed in four cycles. 13:20:24 mur: Breadboard. 13:20:30 k 13:20:56 What the processor did in those four cycles depended on the output of a 74154 chip, a 1-of-16 decoder. 13:21:02 Most of the outputs were unused, of course. 13:21:16 And most of the instructions executed wasted three of the four cycles 13:22:04 But by making each instruction 4 cycles, supporting instructions with variable number of nybbles after it (e.g., LDA #n had one data nybble, while LDA/STA nn had two) became rather easy. 13:22:44 the easier it is the less likely there are bugs :) 13:23:02 Yup. 13:23:02 kc5tja: thanks for teaching me about chips. 13:23:16 I've gotta go actually work now 13:23:18 But it was slow . . . To get 1MIPS out of it, you had to drive it with a 4MHz clock. 13:23:29 Herkamire: OK, later. :) 13:23:46 --- quit: Herkamire ("leaving") 13:24:05 Making CPUs is actually very, very fun. 13:24:13 I enjoy the hobby a great deal. 13:24:19 I just wish I had the time and resources to continue it. 13:25:16 I built a simulator for the Steamer16 once while at Hifn. That was a fun project. Even seeing the simulator run was an amazing achievement for me. :) 13:25:30 It allowed me to run software between x86 and MIPS seamlessly -- no recompilation needed. 13:25:35 I never did get around to writing a Forth for it though. 13:25:44 Management killed the project. 13:33:27 yes it is indeed :-) 13:40:43 create a hal with it :) 13:41:19 I'm sorry, Dave . . . I can't do that. 13:41:47 >:) 13:41:57 okay, let's forget the space part 13:42:01 only the bot? :) 14:44:38 --- join: PoppaVic (~pfv@s188.waters.gtlakes.com) joined #forth 14:46:16 hmm.. Everyone busy-busy ;-) 14:47:47 yes 14:47:51 irc is on fire ;) 14:48:32 Hi :) 14:48:59 back - with more coffee ;-) 14:50:27 re 14:50:32 howdy 14:50:44 * kc5tja has a headache. 14:51:20 uploading the latest tarball, kc5tja 14:51:21 And somebody took my $85 bokken last night at aikido. 14:52:15 I'm still wozzling over the interactive level.. Trying to see how to break it up more, if I can.. Too much in one bite 14:53:04 * kc5tja nods 14:53:19 uploaded 14:54:13 I just know I should be right atop interacting with it, but.. Those damned alligators are all over the swamp. 14:55:06 btw.. you may want to beat vm5.c up heartily.. I still have not seen your stream stuff - so I sorta' fake it. 14:56:20 I haven't been doing much work on Forth lately. 14:56:31 I have to get my website for my company done, some marketing materials produced, etc. 14:56:36 * kc5tja is rather burnt out at the moment. 15:03:47 --- part: hovil left #forth 15:32:55 --- part: PoppaVic left #forth 16:21:45 --- join: cleverdra (nailuj@ACC343A4.ipt.aol.com) joined #forth 16:23:42 Hi cleverdra 16:24:01 Getting food. 16:25:24 --- nick: kc5tja -> kc-food 16:25:57 Hello Robert 16:30:58 --- quit: deluxe ("off line") 16:31:19 --- part: kc-food left #forth 16:31:26 --- join: kc-food (~kc5tja@ip68-8-206-137.sd.sd.cox.net) joined #forth 16:38:43 --- quit: ChanServ (asimov.freenode.net irc.freenode.net) 16:39:03 --- join: ChanServ (ChanServ@services.) joined #forth 16:39:03 --- mode: asimov.freenode.net set +o ChanServ 16:57:30 --- quit: mur ("MURR!") 17:37:43 --- nick: kc-food -> kc5tja 17:37:47 --- mode: ChanServ set +o kc5tja 17:37:50 back 18:27:12 --- join: a7r (~a7r@206.72.82.135) joined #forth 18:30:16 re 20:34:21 evening 21:03:21 re 21:09:36 re hi 21:14:20 heh 21:14:33 * kc5tja is reading the old ColorForth mailing lists. Reading Chuck's posts is interesting. 21:14:42 I even *gasp!* found a post that was more than one paragraph long from him. :) 21:17:56 damn 21:17:57 hehe 21:18:03 that guy is sharp asa tack 21:18:26 there is some interview with him on forth.ru, i wish i could understand all that 21:18:37 but he sounds like a forther, hehe 21:19:11 I know -- I was there. 21:19:23 He is the ultimate Forther. He *is* Forth. :) 21:19:43 Learning Forth techniques and philosophy from him is like learning Aikido from Ueshiba Morihei himself. 21:19:57 Funny thing is, the masses probably won't like what they see. 21:20:21 It is funny to think that so many people think that aikido is the "lovey-dovey touchie-feelie" martial art. 21:20:39 Just watch a video of O'sensei some day . . . your whole preconception of aikido will change in a heartbeat. :) 21:21:18 Likewise, not many people like what Chuck has to say about computer systems, how things should be, or even how other Forth programmers work with Forth. 21:21:46 The "rifts" that occur in the Forth communities are healthy -- they help keep the *art* alive. 21:22:06 C is too standardized -- there are no competing interpretations of it. Hence, it's become too big, too universal -- it's hindered people's thinking. 21:24:43 LOL 21:26:17 I'm not sure I understand what is so funny? 21:26:54 kc5 - nothing's funny. Since when does 'lol' have anything to do with humor? 21:27:25 Well, a good portion of the value of C comes from its standardization. 21:27:34 lol = Lots of Laughs 21:27:44 laugh out loud 21:27:56 Sure it does. 21:28:06 I have no quarrel with that. 21:28:16 kc5 - I haven't heard of that interpretation before, but however you take the acronym, its usage does not fit with it being at all humor-related. 21:28:55 cleverdra: No kidding, sherlock. 21:29:08 That's why I asked what was so funny that warrented a laugh. 21:29:22 --- part: cleverdra left #forth 21:29:27 Thank you. 21:29:28 C evolves differently than Forth because of the nature of the language. The C-domain evolves into related languages like C++ and Objective-C because it can't change itself like Forth can. 21:31:02 Yes. 21:31:43 But the philosophy that the C-family of languages promulgates is not a philosophy I share, and I believe has resulted in all of our major sources of code-bloat and unreliable systems. 21:32:13 But now I think we're both changing the subject. So I'll stop. 21:33:52 I think we agree in priciple, if not in all of the details. You haven't offended me and I didn't intend to offend you. 21:34:51 No offense taken by you. A tad annoyed by cleverdra, though -- an insult of my intelligence is not taken lightly by me. 21:39:48 G'night, kc5tja. 21:40:34 'night 22:59:47 --- join: Fractal (nmjedaze@i.either.got.mad.cow.from.alberta.beef.or.strongLSD.com) joined #forth 23:05:58 re 23:59:59 --- log: ended forth/03.06.12