00:00:00 --- log: started forth/03.09.19 00:45:09 --- quit: Serg_Penguin () 01:56:46 --- nick: bashfire -> bashfire|bbl 02:38:55 --- quit: bashfire|bbl (".") 03:01:02 --- join: bashfire (~bashfire@pD95458DE.dip.t-dialin.net) joined #forth 03:06:22 --- join: bashfire_ (~bashfire@pD9EE1B74.dip.t-dialin.net) joined #forth 03:24:07 --- quit: bashfire (Read error: 110 (Connection timed out)) 03:33:54 --- quit: bashfire_ (".") 03:56:28 --- join: Serg_Penguin (Serg_Pengu@212.34.52.140) joined #forth 03:56:40 --- quit: Serg_Penguin (Client Quit) 06:24:47 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 06:24:57 --- quit: tathi (Client Quit) 06:38:41 --- join: arke (~rk@ca-cmrilo-docsis-cmtsj-b-36.vnnyca.adelphia.net) joined #forth 06:44:01 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 06:44:10 --- join: Serg_Penguin (Serg_Pengu@212.34.52.140) joined #forth 06:44:24 re 06:44:40 * Serg_Penguin has to stay after work to fix ze server 06:44:54 it goes crazzy after power unit burnout 06:48:35 :/ 06:59:12 do you give Forth idea to classmates ? 07:00:53 I tell them to use Forth, but they refuse-. 07:01:24 do they code for hobby ? 07:03:05 No. 07:03:09 Just one of them 07:04:20 uff, trubble seems like gone 07:04:38 i'm in doubt - reinstall now or wait till it fall ? 07:05:53 Hehe 07:05:58 I'd wait, but that's because I'm lazy 07:06:11 me t00 ;)) 07:07:07 --- quit: tathi ("leaving") 07:12:28 --- quit: arke (Read error: 110 (Connection timed out)) 07:41:44 dhaaamn ! 07:41:52 same trubble on 2 boxes ;(( 07:42:26 can't delete folder - access denied :(( denied to admin ^(( 07:43:30 its +s 07:43:43 chattr -s file/dir ? 07:44:00 win XP ;((( 07:44:03 oh 07:44:07 rm -rf / 07:44:07 heh 07:44:21 its in use 07:44:34 reboot to safe mode? 07:44:37 then delete ? 07:44:40 i think so ;)) all data to another partition and format it 07:44:55 heh, i did a checkdisk - did not hellp ;(( 07:45:08 no - windows wont allow you to delete things that are "in use" 07:45:21 i.e. windows has a file in that directory open so you cant del the dir 07:45:27 i REBOOTED to do a check 07:45:40 does xp have a safe mode ? 07:45:57 no way, safe mode may cure only conseqence - but won't fix probably broken filesystem 07:55:46 Hey 07:59:30 hey 07:59:38 * Serg_Penguin is running between 2 boxes 08:03:23 W2k AS install on this box is also whacked 08:18:34 --- join: gilbertdeb (~gilbert@fl-nked-ubr2-c3a-37.miamfl.adelphia.net) joined #forth 08:20:40 sounds like windows not only commited suicide but murdered the other partition too 08:20:42 <-- working 08:20:44 brb 08:46:49 --- join: gilbertbsd (~gilbert@fl-nked-ubr2-c3a-37.miamfl.adelphia.net) joined #forth 08:55:25 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 09:01:45 --- join: bashfire (~bashfire@pD9EE1B74.dip.t-dialin.net) joined #forth 09:04:14 --- quit: gilbertdeb (Read error: 110 (Connection timed out)) 09:07:06 --- quit: Robert ("brb") 09:35:12 --- join: Robert (~snofs@h31n2fls31o965.telia.com) joined #forth 09:50:31 --- join: Herkamir1 (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 09:52:54 --- quit: Herkamire (Nick collision from services.) 09:54:16 --- nick: Herkamir1 -> Herkamire 10:35:04 --- quit: Serg_Penguin () 10:54:59 --- join: a7r (~a7r@irc.andern.org) joined #forth 10:55:01 hey 10:58:58 hi a7r 10:59:42 how's it going? 11:05:11 --- quit: gilbertbsd (Read error: 110 (Connection timed out)) 11:05:40 ok I guess 11:51:36 Hi 11:52:25 hi Robert :) 11:53:06 Hrm. Time for some more debugging! 11:55:17 oh boy. 11:56:29 Oh! 11:56:37 That was an easy-to-find bug. 11:56:44 yay 11:56:50 Too little stack space, heh. :) 11:57:06 On my 384MB RAM machine, I wanted to save 64 bytes on the stack. 11:57:14 Guess there's a moral in this story... 11:57:19 the last bug I was hunting for didn't actually exist. its till took me 20 min to figure that out though. 11:57:33 Took me 30 minutes to figure out why 3*6 is 12. 11:57:41 Then I remembered I'm using hex. 11:58:14 Robert: I've done that enough times to decide to do away with BASE 11:58:33 my interpreter reads numbers starting with $ as hex, and others as decimal 11:58:40 Hmm.. now when you mention it, I don't have base either. 11:58:48 I'm using hex all over. :) 11:59:10 brb 11:59:13 I mean 15 is always 15, it's never 21 11:59:28 and . always prints in decimal. h. prints in hex 11:59:53 I don't use decimal enough to implement it. 12:00:27 neat 12:00:31 I still think in decimal 12:10:46 --- quit: a7r ("Client exiting") 12:20:05 spiffy spiffy spiffy. now my forth editor shows the stack 12:22:18 that took 10 minutes. don't know why I didn't bother before. 12:26:48 Herkamire: I think in decimal mostly, sure. But when it comes to system progamming it's pretty useless. 12:50:06 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 12:54:35 --- part: bashfire left #forth 13:02:55 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 13:02:55 --- mode: ChanServ set +o kc5tja 13:03:25 In about seven lines of Forth code, I implemented tail-call optimization in FS/Forth's target compiler. 13:03:30 Damn sweet. 13:06:26 Herkamire is it a block or a file editor ? 13:07:07 kc5tja: Nice. :) 13:07:17 --- join: mur (murr@baana-62-165-186-174.phnet.fi) joined #forth 13:08:07 I440r-wrk: Got op on IRCnet now.. 13:08:35 Robert: Yeah. It will definitely affect how I handle complex control flow in FS/Forth though, since the last word of a definition does not cause a push to the R-stack, so I'm going to have to change how I code my R-stack manipulations for FS/Forth's (versus the target compilers!) compiler code. 13:08:48 So, for example: 13:08:51 : a b c d ; 13:08:55 : b r> drop ; 13:09:06 will behave just fine and as expected; however, 13:09:13 : w x y z ; 13:09:15 : z r> drop ; 13:09:32 won't, because w doesn't actually "call" z -- it jumps to it instead. 13:10:24 sometimes life is just difficult 13:11:55 I have to experiment with it once I get a working run-time environment going. 13:11:58 (which isn't too far off) 13:12:08 I440r-wrk: block editor for my special format. 13:14:11 kc5tja: what is b supposed to do? 13:14:37 return two levels up? 13:15:04 Herkamire: Whatever. 13:15:14 Herkamire: Oh, in the example above, yes. 13:15:45 gocha. so now a word can't garantee that the return address on the rstack is that of it's calling word. 13:16:05 Herkamire: The idea is, if b can process some event, there is no further need to execute c or d -- so just drop the continuation, and early-out of a. 13:16:45 So like in my current compiler's code, I have this: 13:16:48 kc5tja: yeah, I was wanting to write code like that 13:16:54 : compile ?compiler! ?forth, notDefined ; 13:17:10 right 13:17:12 ?compiler! will early-out of the word being compiled is a compiler word (it just executes it, and that's that). 13:17:41 ?forth, will compile a Forth word or numeric literal (itself: : ?forth, ?word orLiteral ;), if possible. 13:17:44 I almost did something like that. 13:17:57 If THAT doesn't work, then it falls through to notDefined, which emits an error message. 13:18:36 So as long as the very last word is the "default action," then the technique works. 13:18:40 Instead I have a control flow word: 0; (which exits the word if TOS is zero) 13:18:46 It's only when the last word is NOT the default action that it'll break in FS/Forth. 13:19:09 That's fine if you have sentinels/flags on the data stack 13:19:17 I do not bother with flags. 13:19:25 so I have (paraphrasing) : compile ?compiler! 0; ?forth 0; not-defined ; 13:19:36 * kc5tja nods 13:20:09 I don't like the flags either, but I haven't found something I like better 13:20:47 where possible I've had ?compiler! call ?forth if it fails. and ?forth call not-defined if it fails 13:20:50 Well, I'm still experimenting. 13:20:55 I think this is what I've done in this particular case 13:21:01 * kc5tja nods 13:21:26 I wanted to push my limits to see how far I could go with expressing rather complex logic with a minimum of control-flow words. 13:22:05 yeah. 13:22:06 I'm amazed at just how fast it allowed me to write the software, too -- because I was manipulating the return stack on a case-by-case basis, I didn't have to worry about the other cases within ?compiler! or ?forth, for example. 13:22:17 I'm trying to make this come out simple. because I really don't think it's all that complex. 13:22:27 That really freed me up to concentrate 100% on the task at hand: compiling or executing compiler words. 13:22:33 there are a few different cases, but each is simple, and it's not that hard to tell them apart 13:22:35 * kc5tja nods 13:23:02 I must admit that all that R-stack operations do lead to some difficulty in maintenance. But as I'm still experimenting with it, I'm not going to give up on it just yet. 13:23:44 --- join: thin (thin@bespin.org) joined #forth 13:24:01 kc5tja: that was my fear, that the meaning would not be clear when reading the source. 13:25:22 I find the meaning becomes clear if you read the code in a prescribed order, and make use of shadow blocks. 13:26:26 thin: Hi. 13:26:34 I prefer to read code with the assumption that each word in executed in order. but if you have a naming convention that means that the word exits in some case, then that would be fine too. 13:26:36 I didn't even see thin join. 13:26:39 re thin :) 13:27:03 so you guys want chuck moore here again? ;) 13:27:21 hmm, lets schedule it for mid october :P 13:27:31 I use "abcd?" for flag-generating words (eg., ": optimize tailcall? if $e9 lastop @ c! -1 allot then ;"), and "?abcd" for early-out or optional-action words. 13:28:03 kc5tja: me too except without the early-out 13:28:10 thin: I have to be here of course. :) It needs to be Monday, Wednesday, Friday, or Saturdays. :) 13:28:29 for early out (which for me are just words like 0; which conditionally exit) words I end them with ; 13:28:38 kc5tja: probably saturday 13:28:40 Herkamire: I haven't found a suitable prefix for early-out as distinguished from optional behavior. 13:29:05 oct 11 or oct 18 13:29:31 I'm not sure an IRC chat would be called for though. I'm more interested in a regular fireside chat, than a free-form chat session type thing. 13:30:11 than or then? 13:30:37 Herkamire: Though, I suppose I could use ^ to indicate early out (e.g., : compile nextop compiler^ forth,^ notDefined ;) 13:30:38 well then what does the fireside chat have to do with this channel? 13:30:47 than 13:30:49 do we want the channel involved in the fireside chat somehow ? 13:30:53 or not at all 13:31:06 kc5tja: why not semicolon? 13:31:08 I want Chuck to give a presentation, like he used to do in the late 90s. 13:31:10 semicolon means exit 13:31:38 Herkamire: Some of my words drop 3 continuations in a single gulp. ";" drops 4 to abort the compiler loop itself. :) 13:31:51 I suppose the number of ; can be used to indicate hwo many continuations it drops... 13:32:06 : compile nextop compiler?; forth,; notDefined ; 13:33:11 But that would be problematic too. 13:33:17 kc5tja: on irc? :P 13:33:18 I don't know -- I'll sleep on it. 13:33:24 --- join: bashfire (~bashfire@pD9EE1B74.dip.t-dialin.net) joined #forth 13:33:37 thin: ANywhere. Anyhow. Somehow. I don't care. I just want to know that Forth is progressing, even if it's only in his little own world. 13:33:48 yeah 13:33:58 --- join: Bot1 (~Bot1@pD9EE1B74.dip.t-dialin.net) joined #forth 13:33:58 Bot1: Welcome to #forth 13:34:44 nm just testing 13:35:08 bashfire: bzdoug I assume? 13:35:31 what is bzdoug? 13:35:48 bashfire: If you were him, you'd understand. :) 13:35:57 aha 13:36:10 bzdoug tried to create a bot a while back, so I assumed you were him. :) 13:36:58 there are parallels.. :-) 13:37:06 does the bot do anything besides say hello to it's self? 13:38:02 thin: At least FS/Forth is progressing. 13:38:17 step 1, greeting joining people 13:38:20 thin: The Linux version of FS/Forth's target compiler is very, very close to the point where I can actually start coding FS/Forth and/or other applications in it. :) 13:38:24 I'm advancing forth in my own way/world 13:38:26 --- part: bashfire left #forth 13:38:41 --- join: bashfire (~bashfire@pD9EE1B74.dip.t-dialin.net) joined #forth 13:38:42 bashfire: Welcome to #forth 13:38:43 thin: I just finished tail-call optimization earlier today. 13:39:50 thin: The next step is adding support for numeric literals. After that, IF and THEN. Then it, the target compiler, will be complete. All that basically remains is to add primitives to it to form a more complete "language." 13:40:03 hmm 13:40:07 at least something i can start building from :-) 13:40:30 bashfire: If you don't mind my asking, what would be botl's purpose? 13:41:47 kc5tja: are you using syscallsin your linux target compiler? 13:42:04 thin: The target compiler itself is written in GForth. 13:42:15 How I/O is performed in the target image depends on how you code it. 13:43:36 FS/Forth for Linux will exist as a UI-less kernel, since I want to be able to write console as well as X11 applications with it (and of course SDL). 13:43:46 kc5tja: oh, several. learning. a working wikibot + chumpbot. then come the visions 13:45:06 thin: The only library it'll be aware of at startup time is libdl, so I can use that to invoke APIs written in C or something. Of course, libc is one such library I can choose to load. :) 13:45:42 Though, to start things off, I'm probably going to be using a 640x480x16 color SDL bitmap. 13:46:13 This will make FS/Forth vaguely like ColorForth to start, but as it evolves, I'll eventually develop console and X11 (maybe even GTK!) bindings for it. 13:49:53 --- join: rpc (~rpc@npa.nxx.us) joined #forth 13:49:53 rpc: Welcome to #forth 13:57:04 herkamire: forth is by definition a product of chuck moore's mind. everyone else who create "forths" are really just creating pseudo forths.. forth-like forths. so when kc5tja wants to know what's happening with forth, he's refering to chuck's product :P 13:59:05 Hrm. 13:59:30 Then exactly what is Forth? Chuck has used many different solutions to each problem. 13:59:37 Which one is the most forthish? 14:00:00 i have a hypothesis: the better a person can code forth, the more likely he's an objectivist (or is open to objectivism) 14:00:09 robert: you're thinking inside the box there 14:00:27 thin: Haha! I don't think so :) 14:00:47 you're using the old paradigms to understand forth rather than using forth's paradigms 14:01:00 Robert! :) 14:02:02 thin: Chuck disagrees with your definition of Forth. He acknowledges that Jeff Fox is as 'with it' Forth-wise as he is. So there are those who can advance the state of the art in Forth without Chuck's prior approval first. 14:02:20 heh, i know, i'm trolling 14:02:21 thin: It's just that Chuck vehemently disagrees that the majority of Forth programmers are actually doing Forth. 14:02:28 yeah 14:02:43 that's what i really mean (altho i'm trolling a little) 14:02:54 I like to think that I am doing Forth, albeit 15 to 20 years "old" in terms of my state of the art. 14:03:19 mur: Hi :) 14:03:32 thin: You're good at trolling.. but have I ever seen you code Forth? ;) 14:04:23 * kc5tja is debating whether or not my self-hosted Forth environment should be a ColorForth or not. 14:04:32 oh so i have to code forth in order to be a forther? lies!!! 14:04:41 you obviously don't understand the forth paradigms :P 14:04:50 thin: which old paradigms and which "forth's paradigms" are you talking about? leads to, how do you define forth. 14:05:49 (if there's something behind trolling...) 14:08:44 forth is defined by "context" (or by "usage") grasping the forth paradigm involves grasping a bunch of concepts that are very tricky to actually explain.. exposure to forth material teaches you the concepts by context 14:09:08 that's not the actual answer, i'll type the actual answer now.. 14:11:56 ok by context. example 14:11:58 robert asked "what exactly is forth" and asked "which solution is the most forthish" but this implies that forth is a thing rather than a philosophy 14:12:08 thin: Argh"! 14:12:17 Map is still FORTH. At least IMHO. Map is a Forth engine in that it: 14:12:17 uses a Data Stack. has a Dictionary. is extensible. generates threaded code. 14:12:18 thin: Are you stupid, or just pretending to be? 14:12:41 hey, don't interrupt me when i'm trolling :P 14:12:46 "everyone else who create "forths" are really just creating pseudo forths.." 14:13:05 I was just replying to that troll-post. 14:13:08 bashfire: Forth has two stacks (data and return stack) and colon definitions. That's the only requirement. Threaded versus indirect threaded versus native code versus ... doesn't matter. 14:13:14 robert: dont feed the trolls 14:13:19 didn't your mommy tell you that? 14:13:24 thin: Guess you're right... 14:13:31 /ignore thin 14:13:50 Now I won't even become tempted to feed that troll. 14:13:54 Hehe -- oops. :) 14:14:17 * Robert returns to porting asm code to Forth. 14:15:20 robert: don't forget that chuck moore does disagree with the direction most people are taking forth. so it is valid (but polemical) for me to call them pseudo forths 14:15:35 UGH! 14:15:47 chuck moore as topic makes me think of something weird 14:15:53 is this the god role 14:16:03 or is it about some subject 14:16:16 (that was not question) 14:16:27 why are there so many wannabes in this chan? 14:16:28 mur: What? You're not making any sense. 14:16:33 including me :P 14:16:53 --- part: tathi left #forth 14:17:00 ewww 14:17:11 kc5tja: ok. at a 2nd glance the thread point becomes interesting... 14:17:13 i'm overexaggerating the fact that i'm trolling 14:17:21 cuz i'm not actually trolling that much 14:17:31 but everyone thinks i'm seriously trolling 14:17:33 which is sad.. 14:17:42 okay, redefined. reading few words, it makes me feel that chuck moore is used as "because" for questions like "god woudl use windows" or what ever someone might say 14:17:44 mur: You think Chuck is too much of an authority? 14:18:02 one ought to think what's best, not what some great personality has done 14:18:17 thin: how old are you btw? 14:18:33 even g bush and stalin killed loads of people, the fans of them shoudln't be doing the same 14:19:12 mur: I agree. But Moore has a vision, and is an established authority on what Forth is, how it should be used, how it should be coded, etc. 14:19:27 bashfire: about 8 years younger than you? 14:19:34 I think that his opinions bear great weight, all things considered. 14:19:52 thin: That's why people think you're trolling. You don't know when to stop. :) 14:21:02 kc5tja: could you tell robert i said "robert: don't forget that chuck moore does disagree with the direction most people are taking 14:21:06 +forth. so it is valid (but polemical) for me to call them pseudo forths" 14:21:41 Neat, I got my Forth kernel down several hundreds of bytes, by moving a bunch of high-level words out of it. 14:22:06 who really cares 14:22:18 about anything at all 14:22:19 i mean 14:22:26 i'm feeling apathetic at this moment 14:22:44 nevermind 14:23:15 Robert: One last text from thin: "robert: don't forget that chuck moore does disagree with the direction most people are taking forth. so it is valid (but polemical) for me to call them pseudo forths" 14:23:26 thanks kc5tja 14:23:43 OK, I unignored him.. 14:24:24 thin: Sure. But since he himself is moving away from the original Forth (which doesn't have to be a bad thing, however), you could say the same thing about his new creations. 14:24:57 i tend to view forth as a philosophy.. chuck moore's philosophy 14:25:20 or objectivism's philosophy.. depends 14:25:33 turns out chuck moore is a fan of Ayn Rand's philosophical writings 14:26:19 Oh. Well, he can't be right in everything. :) 14:26:35 has nothing to do with that 14:26:48 he has a vision 14:26:50 most people don't 14:27:25 he has strong values about minimalism, getting the most out of computers, etc 14:28:05 That doesn't mean he's right. :) 14:29:46 my logic goes like this: since forth was developed as an outgrowth of his values/philosophy, the only way to get the most out of forth yourself is by following his values/philosophy.. otherwise you end up using it less efficiently and getting less benefits out of it 14:30:26 kc5tja: about bzdoug. any pointer to code, docs? never seen that nick here 14:30:51 bashfire: No, I made a mistake. bzdoug is in the #hamradio channel. 14:31:17 bashfire: He's writing/written his in Perl, AFAIK. I never asked for sources. 14:31:22 IRC bots don't interest me that much. 14:32:31 which is why he's "right" because keeping to his philosophy is probably going to produce the best results (naturally everyone is going to have their own unique approach to problems, but as long as they hold the core values then they would get teh best results) 14:33:06 not everyone here has the same values as chuck moore 14:33:40 kc5tja: if it's in perl, i'm not that much interested too. 14:33:49 especially when they've been brainwashed by C ;) 14:34:42 thin: Hey, you leave C out of this. C will kick your ... whoa...I don't know what came over me for a minute there. Maybe I need to put on my tinfoil hat. :D 14:34:52 heh 14:35:04 yeah i thought about making a tinfoil hat and seeing what happened :D 14:35:15 Seriously, what appeals to me about Forth is not only its architectural simplicity, but also its ease of use (odd as that may seem). 14:35:20 also about eating the little radioactive piece in the smoke detectors 14:35:39 Once you get over the RPN hurdle, whole new vistas open up as far as what you can do with it, and the nice thing is, it's all consistent! No special syntaxes for anything. 14:35:51 yeah 14:35:55 one interface 14:36:04 beauty 14:36:11 esthetic 14:37:10 Hmmm 14:37:17 * kc5tja is currently trying to figure out how to handle numeric literals. 14:37:22 Here's the problem I'm having. 14:37:28 Suppose I write drop 314. 14:37:41 The emitted code for something like that is equivalent to drop dup (mov eax, 314). 14:38:10 The drop/dup combination cancel each other, so ideally, I would want to write just (mov eax,314). 14:38:38 But, if I wrote "foo 314" instead, then the compiler doesn't know the condition of the stack, so it has to dup. This all works just fine. No problems here. 14:38:54 The problem comes when I want to detect, in a later operation, whether the last operation performed was to push a literal onto the stack. 14:39:11 I would have to reach back into the code and detect one of two code sequences: either a mov to eax, or a DUP followed by a mov to eax. 14:39:15 Iicky. 14:39:28 i should go, laters 14:39:29 --- quit: thin ("bye") 14:39:30 * kc5tja considers looking at ColorForth to see how it does it. 14:40:41 Now you know why RAFTS and VFX model the stack instead of optimizing the generated code. 14:41:07 (and iForth now, too) 14:41:08 I've written code to model the stack before. 14:41:14 I'm not interested in doing things that way yet. 14:41:28 For the benefit you get out of it, the code investment is just too high. 14:42:13 That depends on the environment, but I can imagine scenarios where I'd agree with you. 14:43:15 I can stop worrying about my predicament if I don't bother with optimizing out the drop/dup combination. 14:44:20 But I know ColorForth handles it pretty well. But I want to see if I can arrive at a solution on my own before I look at how CF does it. 14:45:23 I guess I don't know enough about how your optimizer works to make any suggests. 14:46:41 It recognizes actual code patterns that have already been compiled, and backtracks over the code space accordingly. 14:47:07 Peephole/pinhole on actual code, eh? 14:47:18 So, for example, when ';' executes, it checks to see if the last compiled code sequence was a call. if it was, it changes the CALL to JMP, and leaves it at that. Otherwise, it compiles a RET instruction. 14:47:23 Basically. 14:47:26 I don't expect huge gains from it. 14:47:52 But the cases it detects can take out a large class of optimization problems for native-code Forths. 14:48:33 If you can depend on the order in which your rules run, execute the drop-dup-lit rule before the drop-lit rule. 14:50:27 lit has an implicit dup operation. 14:50:51 Otherwise 1 2 3 would result in only one number, 3, instead of 1, 2, and 3 being on the stack. 14:52:50 So lit, roughly, looks like: push EAX, mov EAX, #lit 14:53:23 Yes 14:53:55 And drop looks roughly like: pop EAX 14:54:14 Yep 14:55:06 So 'dup lit' looks like: pop EAX; push EAX; mov EAX, #lit 14:55:39 Oops: 'drop lit' 14:55:44 Correct. 14:56:39 So why not just compact out the pop/push pair? 14:56:59 That's what I just described above. 14:57:29 The problem comes when recognizing (e.g., for primitives like + - lshift etc) when I just pushed a constant onto the stack. 14:57:49 There are now two code patterns to check for. 14:57:58 One that does the push, and one that doesn't. 14:59:01 Run those rules first. 14:59:10 And you only have to consider the one case. 14:59:21 What one case is there? 14:59:33 There are always two cases to consider. 15:00:22 The + operator will never know, when it executes, whether or not the previously emitted code included the DUP operation or not, if even a constant was pushed at all. 15:00:45 It has to examine the actual generated code to determine this. 15:01:16 Do you not run the optimization en-bloc after generating the entire word? 15:01:25 No. 15:01:27 Ah. 15:01:30 Each word optimizes continuously. 15:01:40 Then you have problems :-) 15:01:43 It generates "good enough" code that way. 15:01:59 Such problems are solvable. The existance and success of ColorForth proves that. 15:02:02 Sure, but it means you have to code more smarts into each word. 15:02:10 Or do without. 15:02:20 You have to do that anyway with a fully optimizing compiler. 15:03:04 Per word? 15:03:36 Absolutely. It not only has to know the conceptual state of the stack (stack modeling), it must also know how many inputs and outputs each word you're using has, so that it can do register allocation and the like. 15:03:59 That's all on top of the need to identify whether or not the previous word compiled was in fact a literal. 15:04:11 I can assure you, this way is, in the end, much simpler. 15:04:47 The "big" optimizers I've looked at all generate some intermediate form that they perform their transformations on. 15:05:03 I stand by my statement. 15:05:09 Something has to do those transformations. 15:06:02 Sure, but they generally have the complete object or intermediate code for the entire word to work with. 15:06:34 Yes, so you need to write two compilers, and an optimizer, for code which often not going to benefit at all for it. 15:06:49 Why write two compilers? 15:06:52 Not, unless, you're doing serious number crunching or writing 80x25 definitions. 15:07:02 Compiler 1: translate Forth source into intermediate form. 15:07:17 Compiler 2: translate intermediate form into final object code, after optimizing passes have been performed. 15:07:38 Ok, I'll buy that definition. 15:07:50 comparation: macintosh screen is designed to show printing at right scale. pc screen is designed to show whole punch card contents (80x25) 15:08:11 mur: Sorry, 640x480 has the same aspect ratio as 512x384 and 1024x768. 15:08:43 also the screen size 15:08:50 physical.. 15:09:30 kc5tja: your method should work well enough given the performance of modern hardware. 15:09:41 You're thinking only of the Mac Classics. They abandoned that whole concept with the Mac II series. It didn't prove as useful as expected. 15:09:50 Why sweat it if it works well enough for you already? 15:10:02 TreyB: Exactly. I'm not looking to best C. I'm just looking for "reasonable" code. 15:10:27 kc5tja at least the powerbooks have widescreen standard :) 15:11:00 mur: Like I particularly care about that. If they really wanted to follow page layout closely, they'd be called "Tallscreens" instead of "widescreens." :-) 15:11:29 ;) 15:11:32 Just a reminder, assuming you plan to use a relatively recent PC-class machine, you could run a metric-buttload of rules against the entire word's object code in the time it takes you to lift your finger off the return key. 15:11:59 ? 15:12:04 TreyB: Technically yes. I'd rather spend my time in a good assembler though. ;) 15:12:30 kc5tja: have fun, and keep us posted. 15:12:34 I've found that, even on modern architectures, I can produce faster code than most C compilers, and that's without all the inlining, loop unrolling, etc. 15:12:42 G'day, all. 15:12:55 TreyB: Fun is the most important consideration for me. :D 15:13:02 TreyB: I wouldn't be doing this if it were a chore. :D 15:14:36 Oh well. 15:14:46 * kc5tja is going to get some bike riding in. I have a few errands to run, and I'll be back shortly. 15:15:38 * kc5tja is away: Bike riding 15:59:29 --- quit: Bot1 (Read error: 104 (Connection reset by peer)) 15:59:36 --- quit: bashfire (".") 16:08:37 --- join: dan_ (dan@pcp053555pcs.brlngt01.nj.comcast.net) joined #forth 16:08:45 --- nick: dan_ -> jstahuman 16:25:46 * kc5tja is back (gone 01:10:07) 16:28:39 hello 16:28:48 i was missing you whole 1 hour 10 minutes and 7 seconds 16:31:34 :) 16:46:20 :) 16:46:29 * kc5tja was enjoying the bike ride. 16:46:49 Got a new bike chain for my bike -- my combination lock for it won't open for ANY of its combinations (and yes, I went through all 10,000 combinations). 16:49:25 err 16:49:30 not bike chain -- bike lock. 16:49:51 It was such a nice ride, I might go out and do it again later today. 16:51:00 --- quit: mur ("Murr.") 17:40:21 kc5tja, sweet you ride! :) 17:40:58 nice lock, I have never met someone what would go thru 10000 permutations of a lock combo to save 20 bucks. 17:41:44 I guess you watch a lot of tv, or listen to a LOT of music. You also have to admit that the chances of you making a MISTAKE on the ONE permutation is pretty high since there is only a 1/10000th chance of getting the combo right, and due to human error a HIGHER rate of mistakes :) 17:50:26 Yes, I do. 17:50:55 I spent time doing it. 17:51:02 And yes, I did it while listening to music and such. 17:53:23 SDO: I did it because it was a perfectly servicable lock prior. 17:53:28 Why shouldn't I try to keep it? 17:53:30 Waste is bad. 18:09:04 * kc5tja is away: food... 18:09:19 --- join: I440r (~I440r@sdn-ap-007txhousP0281.dialsprint.net) joined #forth 18:12:54 --- join: eonbleu (~eonbleu@user-10ibagb.biz.mindspring.com) joined #forth 18:13:15 a #forth portal site, i bet THATs popular 18:17:08 --- join: TheBlueWizard (TheBlueWiz@pc8adn1d.ppp.FCC.NET) joined #forth 18:17:08 --- mode: ChanServ set +o TheBlueWizard 18:17:11 hiya all 18:25:26 hasnt been much news huh 18:25:28 7/03 18:25:30 slackers 18:40:28 lol 18:53:15 gotta go....bye all 18:53:31 --- part: TheBlueWizard left #forth 19:38:30 * kc5tja is back (gone 01:29:26) 19:39:06 SDO: wrt to me "riding," I don't ride a motorcycle if that's what you're referring to. 19:39:49 * kc5tja prefers the solitude and even greater exhileration(sp?) of a good old fashioned bicycle. 19:39:51 :)= 19:45:38 kc5tja, no I was referring a bicycle. I used to race. 19:45:47 bbl 20:13:27 --- join: snowrichard (~richard@207-254-200-173.dialup.shv.shreve.net) joined #forth 20:13:33 hello 20:19:10 --- quit: snowrichard ("Client Exiting") 20:20:01 I just got off my beater bike 20:25:12 Beater? 20:48:22 --- join: LOOP-HOG (TofuMonste@207.191.240.228) joined #forth 20:49:06 just a shitty bike that I don't mind so much if somebody steals 20:49:16 Ahh 20:49:23 nice for riding into town and leaving at bike racks 20:49:35 * kc5tja really wants to play with the Constantinesco torque converter and apply it towards a biking application. 20:49:54 yeah :) 20:50:21 I was thinking of first equipping some beater bike because (a) they're usually cheaper, and (b) if I make some kind of critical mistake, it won't be so expensive to fix it. :) 20:50:57 and you don't mind drilling a hole through a beam to bolt something on :) 20:51:02 * kc5tja discovered my local Rite Aid store sells bike chain, of all things. :) 20:51:09 Yes, exactly. 20:51:18 We can experiment with mounting options, masses, etc. 20:51:37 ooo :) I could use another bike chain 20:51:37 Getting the right balance for the rider and the bike is important. 20:51:55 If you want, I can purchase one for you, and ship it to you. 20:52:07 It's something like $9 to $10 or so. 20:52:21 I don't know how long it is though. 20:52:34 I didn't read the package fully. 20:52:37 heh :) I think I can find one on this coast 20:53:17 Yeah. Any bike shop ought to have one. 20:53:17 you going to mount stuff in the middle of the main triangle of the bike grame? 20:53:44 That's where I was thinking -- either that, or off behind the rear seat, where most people would put their saddle bags. 20:54:04 yeah, that was the other option I was thinking of. 20:54:18 don't know how wide it ould be 20:54:33 A Constantinesco torque converter needn't be very wide. 20:54:45 It just needs enough space to let the pendula swing, that's all. 20:56:39 would it be possible to do without chains? 20:57:21 Yes, absolutely. 20:57:38 If I had the facility to design a bike from ground up, I can very easily get rid of chains. 20:58:05 * kc5tja was thinking of using the Constantinesco torque converter in a front-wheel-drive recumbent bike application as well -- absolutely *zero* chains necessary. The torque converter would drive the wheels directly. 20:58:37 that would be cool 20:58:52 The only time there'd be a chain is when you're basically bolting the thing on to an existing frame, as with the beater bike idea. 20:59:03 It's hard to attach that kind of torque converter to an upright bike, though, I do have to admit. 20:59:12 This application just screams for a recumbent. 20:59:26 Which, I feel, is where it'd have its greatest application anyway. 21:00:17 wait, if you hook the converter to the front wheel can you still stear with it? 21:00:51 I don't see why not -- there already exists front-wheel drive chain-driven recumbents. 21:01:26 But, that being said, I would also experiment with rear-wheel steering too. 21:02:26 rear-wheel steering is scary 21:02:38 If you're unfamiliar with it, I'll agree. 21:03:03 I've only done it on a circus bike though, so perhaps it could be good :) 21:03:10 But a short-wheel-base recumbent is scary if you're unfamiliar with how it handles too. 21:04:17 true.that too :) 21:04:29 and I did get mostly used to that after a while 21:04:55 * kc5tja nods 21:07:21 do you have a general idea how much weight the pengelum will need? 21:07:42 like maybe 10 pounds? 21:07:55 2? 21:11:36 I have no idea. 21:11:41 I need to build a couple to get some feel for it. 21:11:48 It depends on how fast you reciprocate the pendulum too. 21:11:58 Yesterday, I was having some fun with a small hammer. 21:12:39 I found that it wanted to push against the floor even if I reciprocated slowly; it wasn't that heavy of a hammer. But as speed increased, the force it produced didn't increase as fast as I thought it would. 21:13:02 Contrast this to my jo staff, where as I reciprocated it faster, it was utterly uncontrollable at the base. 21:14:40 :) 21:16:55 I've found it to be somewhat complex. I think once I finish FS/Forth for Linux, one of the first things I'll write is software to model the Constantinesco torque converter in its most basic hardware configuration -- just a straight bar with a mass at the end. :) 21:19:29 And then I have to build a few models to make sure the simulation is accurate. 21:19:37 That'll be the hardest part, actually. 21:19:49 the moving end of the bar have to be attached to something? 21:20:17 Well, both ends are moving. 21:20:48 but one end contains the mass, and the other end is attached to a one-way clutching mechanism to make sure the output shaft rotates in only one direction. 21:21:15 Only, in my bench models, I'll probably use a set of spring scales or strain guages, to record maximum output force. 21:21:43 :)\ 21:22:44 one-way clutches aren't required for benchmarking. 21:23:02 yeah. unless you want to test the clutch 21:23:03 In fact, they kind of get in the way, as they discard half the information that you'd generate. 21:24:07 yeah, you'd probably want to test the clutch seperately 21:24:20 * kc5tja nods 21:24:50 Looking at it from a practical aspect, it's entirely possible for the torque converter to exceed the clutch's maximum torque rating if you're not careful. :) 21:25:04 So knowing how much force it'd generate up front is a wonderful tool. 21:26:11 yeah :) 21:26:47 you think you'll have to gear up the peddling? 21:27:01 Absolutely. 21:27:26 The Constantinesco torque converter has an infinite gear ratio between 1:0 (infinite) and 1:1. 21:27:55 seems to me you'd need a very big pendulum for it to work at 60rpm or whatever comfy peddling is 21:27:56 As with algebraic multiplication of fractions, a gear-up enables us to configure the desired range between N:0 and N:M. 21:28:26 Yes; my plan was to gear up the rider's pedaling by a factor of about 10 to 30. 21:28:42 how? 21:28:51 Then, depending on configuration, I may need to gear the output down to drive the rear wheel again. 21:28:58 Standard spur gears would work. 21:29:55 sounds like an aweful lot of moving parts. Do you think you will be able to get it to work with little enough drag that it will be nice to ride? 21:30:09 Absolutely. 21:30:46 There really would be only 4 to 5 moving parts. Constrast this with a chain, where you have LOTS of little moving parts (each element of the chain). 21:30:52 f0rth 21:31:01 I won't even begin to get into deraileurs. 21:31:47 Also, many recumbent bikes have multiple sprockets and extra-long, sagging chains, which really rob power compared to an upright's. The only reason these bikes are faster/more powerful is the recumbent nature. 21:32:01 Imagine such a recumbent with a mechanically positive CVT driving the rear wheel with only 4 moving parts. :) 21:32:01 this is boring 21:32:05 bye 21:32:05 --- part: eonbleu left #forth 21:32:35 That was rude. 21:32:39 And i told him so too. 21:32:40 charming fellow ;) 21:33:25 I mean, I've been talking about Forth all damn day long. Check the logs if you (or anyone else) don't believe me. :) 21:33:51 Last I checked, they DID sell soda and icecream at my local coffee bars, after all. :) 21:34:01 Anyway, . . . 21:34:03 Moving on. 21:34:52 as my mom tells me: "Remember, if you get boored, it's your own stupid fault" 21:35:56 --- join: thin (thin@bespin.org) joined #forth 21:36:46 Heh 21:36:51 True. 21:36:52 re thin 21:36:57 sup 21:37:05 talkin mechanics :) 21:37:15 Talking about the Constantinesco torque converter, and applications of it on a bicycle. 21:37:32 Basically the mechanical analog of Forth. 21:37:33 :) 21:38:09 has the converter been applied to anything around us? it seems to be largely forgotten, why? 21:38:21 Vested interests, for one. 21:38:49 Also, it's a torque converter, and not a true CVT (well, it is a CVT in the sense that it automatically adjusts to its surroundings, and effectively has an infinite set of gear ratios). 21:40:02 Still, I feel that it has immense value. 21:40:41 it only adjust upto the speed of the power source right? 21:41:57 Yes. 21:42:11 Which means it's really ideal for high-revving, low-torque power sources. 21:42:19 E.g., rotary engines, but I digress. 21:42:21 :D 21:42:24 :) 21:42:46 engines do come to mind :) 21:43:12 how to go 40MPH with your lawn mover engine 21:44:42 Hey, it's quite possible. 21:44:50 Those engines are typically around 3 to 5HP. 21:45:00 Those are plenty powerful enough to drive a go-kart to 40 to 60MPH. 21:45:07 I wish my cousins had a constantinesco on their go-cart. they've got some friction belt thing that somehow gears up a bit from the centrifugal force. 21:45:27 * kc5tja nods 21:46:01 V-belt CVT most likely -- those are quite good too (as long as you don't over-torque them). It's basically a rubber-belt version of the steel-belt CVTs in modern cars. 21:47:11 what about Lithium Ion Polymer batteries for electric bikes? 21:48:00 oh I remember. it's got something on the engine shaft that looks like this: >--< the centrifugal force of the engine spinning fast, draws the edges in like this: >-< so they squeeze in on the belt. when they get going real fast: >< the belt is going around a much bigger part of them, and so goes faster 21:48:46 Batteries don't hold the energy density that regular hydrocarbon fuels do. 21:49:05 Herkamire: Yeah, it's a V-belt CVT. 21:49:15 Herkamire: I have a URL coming up for you... 21:49:20 yes i know but i can't hook a windmill up to a machine to make hydrocarbon fuel 21:49:38 http://cvt.com.sapo.pt/toc_en.htm 21:49:51 --- join: gilbertdeb (~gilbert@fl-nked-ubr2-c3a-37.miamfl.adelphia.net) joined #forth 21:49:59 LOOP-HOG: True, but you can do something different: grow corn. :D 21:50:44 http://www.technicalbikes.co.uk/ check out the videos 21:50:54 I don't see why you couldn't make hydrogen with a wind generator 21:50:57 i'll say that I wouldn't want an electric bike with lead acid batteries 21:51:15 The fuel density is only 66% that of gasoline (read, "It's not nearly as bad as all the nay-sayers would have you believe"), and it is a complete closed-loop (e.g., CO2 and water that is formed from its combustion goes into growing next year's crops) 21:51:20 how would i store the hydrogen? 21:51:21 * kc5tja does understand though. 21:52:11 I don't know much about storing hydrogen. I gather that's an issue 21:52:12 LOOP-HOG: I'm thinking ethanol (aka, pure drinking alcohol, all 200 proof of it) 21:53:22 the advantage of ethanol is that you could store it over the winter and then use it in the spring in your tractors 21:53:25 LOOP-HOG: Not sure about the Li-ion batteries, but don't they hold less charge than Lead-acid? 21:53:32 brb 21:53:34 no, much much more 21:54:24 they are much ligher because lithium is a ligher metal than lead, and they hold a greater amount of energy 21:55:20 so you can go further with the lithium than you can with the lead 21:55:55 i would have to admit that the lithium batteries are very high tech though, requiring alot of technical know how to create 21:56:12 i think whites electronics invented them 21:56:15 not sure 21:56:25 you can make ethanol on the farm, not lithium batteries 21:56:39 i know whites electronics invented teh first rechargable battery that didnt gain a "memory" - other than lead acid that is 21:56:55 you can also not make red number 16 21:57:10 there are many different battery chemistrys 21:57:43 kc5tja: I'd love to see design sketches if a constantinesco powered recumbant 22:04:09 you might be able to have the bar run the length of the bike under the seat, and have the weight in the middle. 22:05:13 (front wheel) ------------------------- 22:07:37 it should be easy to make some room for the weight to move without hitting you in the butt or hitting the ground. 22:09:19 I am seriously debating if I should make a source token color for things that the compiler doesn't need (comments, persistant variable defitinions, line breaks, etc) 22:20:05 sri 22:20:11 was afk for a bit. 22:20:15 Got some company coming over shortly. 22:21:40 That won't work because the weight needs to be on the opposite end of the bar in order to produce the leverage. 22:22:09 But, you can kind of "fold" the transmission so to speak using a clever mechanical arrangement called a "floating bar," which allows some more flexibility in where you place the mass. 22:22:28 The only disadvantage to the floating bar idea is that it does introduce some additional flexure. 22:35:50 whose motorcycle was that from the url? 22:36:44 I don't understand why the weight can't be in the middle, but we'll have to save that for another day. I'm getting tired. 22:36:54 ie this one -> http://www.technicalbikes.co.uk/ 22:37:00 LOOP-HOG: The Toyota Prius has both Lithium Ion and lead-acid batteries. 22:37:19 The Li-ion batteries are used for instantaneous power delivery -- they do deliver more power to the load faster. 22:37:45 But the Pb-acid batteries are used for longer-term, higher-power loads. 22:37:47 is the latest toyota prius the one which can parallel park by itself? 22:38:08 gilbertdeb: Huh?! I never heard of any car that can do that. 22:38:29 lemme see if I can fetch the url 22:39:00 http://www.wired.com/news/technology/0,1282,60154,00.html 22:39:31 also this: http://www.just-auto.com/news_detail.asp?art=41961 22:40:02 JAPAN: Japanese-market Toyota Prius can park itself - report 22:40:14 That system can be put pretty much on any car with an automatic transmission. 22:40:25 kc5tja it might be time to trade in your mazda for a prius ;) 22:40:28 Granted, it's easier with an EV though. 22:40:36 gilbertdeb: Sorry, no way in hell. 22:40:40 ha! 22:40:50 Nothing, and I mean nothing, beats the rotary for driving comfort and smooth acceleration. 22:40:59 but you realize I only noticed the article because you mention the prius so often right? 22:41:13 And the car's extremely agile handling has allowed me to escape a number of potential accidents at freeway speeds. 22:41:28 gilbertdeb: No, and I frankly don't care how you noticed it. :) 22:41:44 sheesh man, thats cold! 22:41:50 It's a neat concept, but I have to wonder, why not just skip everything and make cars that drive themselves everywhere automatically? 22:41:51 just trying to give some props here. 22:42:05 Sorry. I didn't mean it to be cold. 22:42:40 cars that drive themselves huH? 22:42:57 However, that being said, your question (but you realize...) came across as a little rude itself. 22:42:57 it makes sense but people want their 'freedom'. 22:43:02 Yes, they do. 22:43:06 And I want mine too. 22:43:28 The more complex cars become, the more opportunity for failure. 22:43:43 back to the model T I say. 22:43:45 And cars, as any car owner knows, do fail. Often, in the most inopportune times. 22:43:56 No, back to mechanically efficient bicycles. 22:44:00 As far as I'm concerned, at least. 22:44:20 bicycles rock, but they can't take you all the way to south beach to chase women :( 22:44:25 Recumbent bikes can be plenty powerful enough for 99% of all city-driving needs. 22:44:33 besides, where might one place said chased woman? ;) 22:44:43 kc5tja: do you know what your MBTI is? 22:44:55 ENTJ or something like that? 22:45:08 thin: I don't remember. 22:45:19 thin: I think it might be ENTJ, but I don't really know. 22:45:37 --- quit: LOOP-HOG (Read error: 110 (Connection timed out)) 22:45:37 gilbertdeb: Rhoade's car has seats for one, two, or four, depending on the model of car you get. 22:45:48 Rhoade? 22:45:50 gilbertdeb: It's pedalled like a bike, though they also make electric-assist units too. 22:46:33 ah I see. 22:47:22 I don't have much problems with electric-assist -- but too many people ignore the potential of the human body. 22:47:30 yes yes. 22:47:36 Americans are getting more and more obese every day (I admit, I'm clinically obese myself). 22:47:42 and they grow fat and flaby and then spend $$$ on getting thing . 22:47:48 I firmly feel that this is largely the result of "automating" everything. 22:47:48 touche 22:48:12 My motivation for a CVT-equipped bike is, actually, NOT to make riding a bike easier. 22:48:25 That is just a side effect. 22:48:44 My primary motivation is to maintain a consistent cadence! That cadence is vitally important for getting a good aerobic workout. 22:49:18 But unlike a training bike, I also want to GO places, SEE things, etc. The CVT enables me to have my cake and eat it too (sic). 22:50:01 do you happen to know where the gossamer albatross is? 22:50:15 Never heard of it. What is it? 22:50:20 (besides being a bird) 22:50:37 HPV 22:50:40 it flies :) 22:50:46 No idea. 22:50:46 umm, but a constant cadence ruins the HIT aspect doesn't it? 22:50:51 http://www.dfrc.nasa.gov/Gallery/Photo/Albatross/Large/ECN-12604.jpg 22:50:55 * kc5tja has seen HPV plains before -- neat things. 22:51:08 * kc5tja wouldn't be able to keep one in the air for more than 30 seconds, probably, though. :) 22:51:15 thin: HIT? 22:51:49 --- join: gilbertbsd (~gilbert@fl-nked-ubr2-c3a-37.miamfl.adelphia.net) joined #forth 22:52:22 i might be confusing it with some other methodology of exercise, but basically its supposed to be better to work hard for a few minutes then chill for a few minutes and keep repeating.. 22:52:28 Ugly looking thing, that albetross... :) 22:52:32 so like running then walking etc 22:52:32 :) 22:52:35 but yet it moves! 22:52:48 thin: You can do that with a CVT too. 22:52:55 what's the cadence thing then? 22:53:03 But try to do that while going up a hill while changing gears. Not bloody possible. 22:53:10 thin: Consistent rate of pedaling. 22:53:17 thin: Think marching cadence. 22:53:30 well i get a consistent rate of pedaling 22:53:35 i don't get the problem :P 22:53:42 and my bike doesn't have a CVT 22:53:43 thin: No, try doing that going up A HILL. :D 22:53:52 Like, as in, California-grade hills. 22:53:57 Starsky-and-Hutch hills. 22:54:04 where cars at 40MPH can take air. 22:54:22 Or go 0-60MPH under gravity than they do under engine power. 22:54:38 You can't change a gear on a bike while the chain is tensioned. 22:54:56 You have to release the tension on the chain in order for the deraileur to do its job; that robs you of a LOT of momentum. 22:55:18 Then, even after you downshift, you have to totally haul ass to regain your former velocity, much less maintain it. 22:55:25 It's most uncool. 22:56:05 s/under gravity/faster under gravity/ <-- sorry, I didn't realize I was missing a word 22:57:43 Besides, even if you could change gears while the chain was under tension, you seriously run the risk of it popping off the sprocket, which can cause physical harm to the rider (I've first-hand experience in this). 22:59:53 Anyway, I think I'm going to jet. Got some company over, and I'm being anti-social by staying on IRC. 23:00:19 gilbertbsd: Sorry about that bit above; I really didn't expect that to be so 'cold.' 23:00:22 Anyway, I'm out. 23:00:28 no worries 23:00:36 I was just giving you a hard time :D 23:00:46 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 23:02:33 Zzzzz 23:02:35 --- part: gilbertbsd left #forth 23:03:04 --- quit: Herkamire ("goodnight folks") 23:08:20 ENTJ ppl rule 23:08:25 they're my kind of ppl 23:08:36 they don't lurk on irc either 23:08:45 they quit instead of appearing antisocial 23:08:58 they're the rational types 23:09:03 oh yeah baby 23:09:06 rationality 23:09:08 forth 23:09:09 --- quit: gilbertdeb (Read error: 110 (Connection timed out)) 23:09:15 sex 23:09:25 --- quit: thin ("yay") 23:13:01 --- quit: I440r () 23:59:59 --- log: ended forth/03.09.19