00:00:00 --- log: started forth/01.06.22 01:36:00 --- quit: adu (IRCStep) 03:25:05 --- quit: dired (varley.openprojects.net zelazny.openprojects.net) 03:25:05 --- quit: klooie (varley.openprojects.net zelazny.openprojects.net) 03:25:06 --- quit: aaronl (varley.openprojects.net zelazny.openprojects.net) 03:25:06 --- quit: I440r (varley.openprojects.net zelazny.openprojects.net) 03:25:06 --- quit: nate37 (varley.openprojects.net zelazny.openprojects.net) 03:25:06 --- quit: Trey (varley.openprojects.net zelazny.openprojects.net) 03:25:27 --- join: nate37 (nate@cx83983-d.irvn1.occa.home.com) joined #forth 03:25:27 --- join: klooie (kloo@213-84-79-23.adsl.xs4all.nl) joined #forth 03:25:27 --- join: Trey (Baxter@ns.TreySoft.com) joined #forth 03:25:27 --- join: aaronl (aaronl@vitelus.com) joined #forth 03:25:27 --- join: dired (aaronl@vitelus.com) joined #forth 03:25:27 --- join: I440r (mark4@purplecoder.com) joined #forth 03:25:27 --- mode: farmer.openprojects.net set mode: +o nate37 05:42:03 --- quit: I440r (Read error to I440r[purplecoder.com]: Connection reset by peer) 08:44:21 --- join: Fare (fare@ppp33-net1-idf2-bas1.isdnet.net) joined #forth 09:45:04 --- join: edrx (edrx@200.240.18.64) joined #forth 10:18:51 --- quit: edrx ([x]chat) 10:30:04 --- join: I440r (mark4@purplecoder.com) joined #forth 11:18:17 --- join: eddymaue (eddymaue@modemcable154.68-202-24.hull.mc.videotron.ca) joined #forth 11:19:33 --- part: eddymaue left #forth 11:20:53 --- join: eddymaue (eddymaue@modemcable154.68-202-24.hull.mc.videotron.ca) joined #forth 11:21:24 --- part: eddymaue left #forth 11:53:01 --- join: MrReach (mrreach@209.181.43.184) joined #forth 11:53:17 hihi! 13:03:09 --- quit: aaronl (Ping timeout for aaronl[vitelus.com]) 13:15:27 --- join: cleverdra (jfondren@1Cust6.tnt4.florence.sc.da.uu.net) joined #forth 13:25:07 greets, cleverdra 13:25:41 hello MrReach. I don't think I've seen you here before. 13:26:13 it's been about a year that I've been away from forth 13:26:20 so I haven't been here, true 13:26:59 * cleverdra shrugs. 13:27:33 question: an optimized native code forth would run MUCH faster 13:27:54 BUT it would lose forth's neat single-stepping and debugging tricks 13:28:05 is it worth it? 13:29:35 I'm not familiar with optimized native code Forths, but I'm curious -- why do you think that it would lose Forth's "neat single-stepping and debugging tricks", and do you actually use these often? What words to you create that are so large or complicated that such tricks are necessary? Printing status messages and interactive testing isn't enough? 13:29:59 uh? 13:30:29 on those forth's where single-stepping was available, I used it extensively to look for stack mistakes 13:30:59 Single-stepping is pretty universally available, MrReach. 13:31:04 it's possible to do the same with more primitive tools, but not nearly as nice 13:31:31 cleverdra: SS will be almost meaningless with optimized machine code 13:31:57 Stack mistakes are something you look for while you're programming :/ But OK. I don't see how native optimized code has anything to do with this. At the very worst, you could compile a debugging version using some of the tricks in the ANS Forth debugger. 13:32:13 sure, you can SS the disassembled code ... but it is extremely diff to associate the machine code with specific forth words. 13:33:38 well, optimized machine code does look ANYTHING like the source code used to produce it 13:33:49 does NOT look 13:34:04 I figured the 'NOT'. 13:34:50 Well, OK. Stipulating that single-stepping in an optimizing native forth is horribly difficult or impossible, I'd still declare the loss insignificant. 13:34:59 so that basically wipes the ability to SS the forth code, though you could the machine code 13:35:06 Positively speaking: it's worth it. 13:35:20 fair enough 13:36:03 also, one might turn optimizations off for debugging ... that should leave enough enfo to produce forthy output 13:36:45 because each forth word would compile to a JSR [word's code] 13:37:06 the aforementioned ANS Forth debugger works in the face of trememdous limitations imposed by the dpANSForth standard... by embedding the source of words in their dictionary entry =) 13:37:28 I'm not sure what else it does, though I thought it a single-stepper. 13:37:31 god forbid there might be a bug in the optimizer 13:37:57 Yes... that would be unfortunate. 13:37:58 that's actually a good idea 13:38:24 takes huge room, but developers usually have good machines to write on 13:38:29 that's why you must keep trusted working versions of the compiler around, even if unoptimizing 13:38:48 the source-in-words thing? Yeah, it's clever, though I prefer a simple DIS on threaded machines. 13:39:38 of course, but ANS specifically forbids manipulation of XTs 13:40:43 Probably one of the reasons the ANS Forth debugger doesn't do that. 13:41:26 of course, I don't care one way or the other. DIS is a wonderful tool. 13:42:17 heh, you like DIS , I like DEBUG 13:43:01 I usually don't need to see what I've written ... I need to see what the stuff I wrote is doing 13:43:13 I think I'll check out how lina compares to eForth, and mail Bill to get his word. 13:43:17 hi ppl 13:43:26 greets, I440r 13:43:29 hello, i44or! 13:44:13 im mpg encoding all my cd's -- its taking ages and im using 2 machines at the same time :P 13:44:15 Fare: agreed about trusted compilers, it's part of good housekeeping and version control 13:45:02 I440r: we had an office full of machines, at night, we'd put them all ripping music CDs and dumping it all to the server 13:45:23 the server had the cd burner, and we'd burn the ripped stuff in the morning 13:45:34 thats basically what these 2 machines are doing except one if them IS the server hehe 13:45:41 abcde is cool :) 13:45:52 what is that? 13:47:10 its a front end for grabbing tracks off cd's using cdparanoia, tagging them and lame encoding them 13:47:23 oh, ok, which platform? 13:47:29 it can encode track n while grabbing track n+1 13:47:36 linux 13:47:50 That's cool. 13:47:55 we ripped from Windows workstations onto a linux server 13:48:14 i dont like windows based mp3 encoders, not even the ones based on lame 13:48:35 don't remember what software we used on the win machines, but remember what a nightmare it was to script the cd-burning part 13:48:54 scripting windows in a bitch in generally. 13:48:58 hehe thats basically what abcde is :) 13:49:07 no, the scripts were on the linux box 13:49:13 another b??? cd encoder i think 13:49:20 at the time, there's weren't any good frontend 13:49:58 my problem is that my slow machine has the fast cdrom in it and my fast machine has a slow cdrom 13:50:03 --- join: adu (andrew@adsl-63-201-88-69.dsl.snfc21.pacbell.net) joined #forth 13:50:34 so I wrote a shell script that created a virtual filesystem (the .iso), moved all the files into it, unmounted it, and started the burning process 13:50:38 hello adu. 13:51:07 wb, adu 13:51:08 u used loopback ? 13:51:13 yes 13:51:35 cool :) 13:51:40 it worked quite well, actually, but took a long time to figure out 13:51:56 hey 13:51:57 hehe 13:52:36 --- part: adu left #forth 13:52:36 --- join: adu (andrew@adsl-63-201-88-69.dsl.snfc21.pacbell.net) joined #forth 13:52:48 adu? 13:52:51 chanserv misbehaving adu ? 13:53:30 I'm reading about how to write minimal .EXE files for win95 13:53:31 nah my client discon-cons when i detatch a window 13:53:50 --- part: I440r left #forth 13:53:54 --- join: I440r (mark4@purplecoder.com) joined #forth 13:53:54 --- mode: ChanServ set mode: +o I440r 13:54:01 --- mode: I440r set mode: +o adu 13:54:03 oh, I can't use eforth anyway. Tsk. 13:54:09 --- mode: I440r set mode: +o MrReach 13:54:12 --- mode: I440r set mode: +o Fare 13:54:18 --- mode: I440r set mode: +o clog 13:54:21 dired, isforth? 13:54:26 dired? 13:54:26 cleverdra: what type of project you working on? 13:54:26 cleverdra? 13:54:30 i like gforth & bigforth 13:54:30 dired, what is isforth? 13:54:30 i don't know, cleverdra 13:54:34 --- mode: I440r set mode: +o dired 13:54:38 adu - too big for this. 13:54:45 whats 'this'? 13:54:56 isforth is I440r's home-roll forth 13:54:59 --- mode: I440r set mode: +o klooie 13:55:16 dired, isforth is at isforth.sourceforge.com 13:55:21 the URL for isforth is usually in the topic for this channel 13:55:23 isforth is a native x86 forth compiler, written hopefully in isforth, but currently in asm 13:55:37 well its not native 13:55:38 don't ask me why a compiler would be written in asm 13:55:51 adu, MrReach - I'm setting up an x86 Forth for a small Linux distribution. 13:55:53 adu: no, it's a threaded compiler 13:55:54 it wont compile forth source to machine code 13:56:13 really? 13:56:16 cool 13:56:27 i440r - are you going to metacompile it? 13:56:44 /mode #forth +oo cleverdra Trey 13:56:47 I440r seems to think that native-code forths are evil bastards children of forth and should not be called "Forth" 13:57:09 native code as in asm? 13:57:12 i440r - really? why? 13:57:16 we have had fun arguing the point in the past 13:57:17 adu - native code != asm 13:57:36 because... 13:57:38 1) i dont know how 13:57:43 2) i like threaded forths 13:57:44 what is native code? 13:57:53 adu - err, wrong terminology there. Yes they compile Forth to machine code as assembly source is compiled to machine code, but assembly-coded forths are not the same as native forths. 13:58:03 it means that forth compiler compiles to machine code, not threaded forth 13:58:07 native code means that the words get compiled to raw machine code 13:58:20 i440r - that's cool. I've very similar reasons. There are neat things you can do with threaded Forths. 13:58:31 isforth is only ASSEMBLED as a bootstrap 13:58:47 traditionally, forth has compiled "tokens" ... lists of addresses for an interpreter to walk through 13:58:48 once isforth can compile it will compile itself 13:59:06 but there will be alot of coded definitions so it will need an assembler :) 13:59:09 dired, isforth =~ s/com/net/ 13:59:19 i440r - cool! 13:59:45 cleverdra this is future stuff... i need more developers :P 13:59:47 i440r - I could probably actually use that for cLIeNUX. Only catch is nasm, but that may be a small catch. 13:59:53 my one developer is offline rite now 13:59:55 i440r - that's cool. 14:00:02 yes, I was asking about ability to disassemble threaded forths 14:00:05 isforth wont always use nasm 14:00:25 u mean decompile or disassemble 14:00:36 fpc has a disassembler and a decompiler built in... 14:00:37 very handy when debugging, but very hard with optimised native code 14:00:42 decompiling forth is easy 14:00:46 i have a few ppc routines, that you could use for a isforth-darwin distro, and a few ppc/linux asm code 14:00:59 thats my #1 gripe against optimizing compilers 14:00:59 Threaded forth code is easily decompiled, as are assembled words. 14:01:02 I440r: it's easy IF it's a threaded forth 14:01:15 I440r: what is? 14:01:17 u lose the 1:! correlation between source and object 14:01:18 yea 14:01:26 well if its not threaded its not forth to me so... 14:01:27 yep 14:01:31 * MrReach laughs. 14:01:32 my statement still stands hehehe 14:02:09 huh? 14:02:12 which statement? 14:02:27 about forth being easy to decompile 14:02:29 one simple decompiler for threaded forths is DIS, which simply starts at an address and (with prompts from the user) steps forward by cells, matcing each number with something in the dictionary, with some knowledge of literal numbers and branches and the like. 14:02:38 yes 14:02:43 decompile as in bytecode -> forth source? 14:02:48 yep 14:02:55 adu - it's not bytecode. bytecode is different. 14:02:56 ?!?!? how is that possible 14:03:03 tokens -> forth source, actually 14:03:38 o that 14:03:39 adu - it's pretty easy. Go read something on threading in Forth. 14:03:43 ok, the compiler, started with ":" looks up each word and appends its address onto the curent definition 14:03:44 isn't that standard? 14:03:59 adu - I would be shocked if it were. I don't think it is. 14:04:12 nope, the standard was EXTREMELY carefull not to define what a "token" is 14:04:15 yes .. but it depends on which standard you are talking about hehe 14:04:23 lol thats dumb 14:04:29 adu - what's dumb? 14:04:31 well ok.. split hairs ":{ 14:04:38 the std never defined a token 14:04:39 :P 14:04:40 yes, all the previous standards defined how words were laid out 14:04:53 tokens are the basic element of forth tho 14:05:00 adu - there's a lot of things they didn't define -- intentionally. It would've been dumb of them to define it. 14:05:00 it left it up to the compiler writer how huis forth would be threaded/tokenised 14:05:13 adu - no they *aren't*, as evidenced by the existence of native-code forths. 14:05:14 not dumb 14:05:16 but i still don't understand how that has anyhing to do with assembled/threaded 14:05:16 restricting 14:05:38 adu: the was a reason they didn't do so ... some forths are direct threaded, some indirect threaded, some compile to machine code, others use a lookup table 14:05:39 adu there is direct threaded and indirect threaded .. ignoring all other threading methods 14:05:39 whats the difference? 14:05:50 like subroutine threading with is NOT FORTH grrr 14:05:58 between native code and whatever its opposite is? 14:06:00 adu - there is a huge, unbelievable difference. 14:06:08 code a compiler with either of teh above 2 methods and you have a valid forth... 14:06:09 cleverdra: being.... 14:06:10 adu - think of it as a chasm, OK? 14:06:22 adu: the standard was written for APPLICATIONS ... and went out of its way not to say anything about how the forth systems were made 14:06:29 u mean schizm ??? :) 14:06:31 what is the opposite of native code? 14:06:35 adu - well as we've just stated, one compiles to machine code. 14:06:53 MrReach - and it said too much as it is about the system. 14:07:06 instead of referencing past words? 14:07:07 cleverdra: you think so? 14:07:45 ok, adu, subroutine threaded forth produce output that looks something akin to C function calls 14:07:47 MrReach - yeah, though I don't bother with it much. You'll hear discussions on clf about it. 14:08:04 MrReach - um.. 14:08:13 adu: but token threaded forths (direct or indirect) looks more akin to java bytecode 14:08:32 well i heared java was based on forth ... is that true ? 14:08:43 MrReach - I think that's a bit different. C function calls entail more overhead, they deal with stack frames and the like. 14:08:58 yes, I was using a very rough comparison 14:09:26 also, forth tends to have a MUCH deeper calling level than C programs 14:09:52 because forth coders factor their code properly and there is little overhead involved with nesting 14:09:56 i440r - I don't know about that. It's a bit sick to think of JAVA being related at all to Forth -- they're almost completely contradictory in nature. The one thing I can say here is that Java's bytecode is far less powerful than Forth, with many restrictions relating to Java the language. 14:10:04 c coders tend to code 2498562384975 line functions 14:10:16 i440r - yeah. 14:10:27 huh 14:10:30 interesting 14:10:45 actually, I find that my forth defs are increasing in size 14:10:52 so does threaded mean multithreaded? 14:10:58 no, it does not 14:10:58 C Compilers typically have optimizations that reduce the overhead of C functions, but the memes against good factoring still exist, and the overhead is often still there. 14:11:02 ive seen a 60 page function with a single switch statement of abot 10 cases where each case was a single switch statement of about 10 cases where each case was another switch statement of about 10 cases 14:11:03 adu - no, not at all. 14:11:07 no bull 14:11:16 "multithreaded" is a characteristic of an operating system 14:11:21 cleverdra: no wonder i was so confused 14:11:30 adu - *totally different*. Forth calls what other languages call "multithreading" or "threading", "multitasking. 14:11:49 a far more discriptive name 14:11:56 You've preemptive multitasking, what you're probably used to, and round-robin multitasking, more popular in Forth. 14:12:00 ok 14:12:01 "thread" is obsure nomenclature 14:12:04 however, adding multithreading to forth takes about 30 lines of code. 14:12:17 heh 14:12:25 i440r - that, the C code reference, is *disgusting*. 14:12:33 mrreach isforth will use linux kernel to do multi tasking hehe 14:12:42 so thread is the opposite of assembled? 14:12:49 i440r - maybe there's some brilliant reason for it... shiver. 14:12:59 adu - not "opposite". 14:13:01 of course, if the op-sys provides the functionality, then use it, by all means 14:13:08 cleverdra no --- it was coded by lamers. :) 14:13:09 does thread mean referencing the word in the definition? 14:13:11 adu - most Forths produce threaded code. 14:13:20 unfortunatly siemens hired me to fix the monstrosity... 14:13:28 adu - here, I'll give you an example: 14:13:33 i was rescued by someone higher up shit canning teh project hehe 14:13:47 "thread" means compiling a pointer to a function, rather than some machine code 14:14:01 ok 14:14:13 that makes sense now 14:14:21 which is why subroutine threading is NOT threading 14:14:22 : foo if 1 . then ; --> may compile in threaded code (just the code part, but the other stuff) to: ?BRANCH, DOLIT, 1, NEXT 14:14:35 oh, a number after the branch, sorry. 14:14:41 I440r: I can't imagine myself writing that kind of flow control in ANY language 14:14:58 mrreach i dont even use switch statements in c., 14:15:14 my parody of teh linux coding style doc in /pub says why 14:15:22 actually, at that point, I might consider using a vector table 14:15:37 I440r: which monstrosity? 14:15:37 amazingly, people use CASE statements in Forth -- even in situations where a table would be so much easier (especially in Forth!) and more efficient. 14:16:03 i use an array of structures with 2 elements. first one being teh option to compare against - teh second being a pointer to teh code to execute 14:16:12 adu: the nested switch statements are a monstrosity 14:16:14 adu a 60 page c function i had to deal with once :) 14:16:33 oic 14:16:41 dang 14:17:20 That's cool, isforth (even if just what it intends to be) is just what I'm looking for right now. 14:17:41 cleverdra me 2 :P 14:17:42 cleverdra: there is a need for CASE when the logic starts getting convoluted ... CASE allows for complicated conditionals 14:17:46 pity its not finished :P 14:17:56 not a pity, 14:18:02 it should be in a working state already but ive hardly touched it 14:18:06 the word for that is 'oppurtunity' 14:18:09 =) 14:18:21 my other developer was helping but doesnt have very much online time right now 14:18:27 he has it compiling now tho :) 14:18:32 MrReach - yeah, I was (!!) about to say something about that, but got distracted. Scheme uses something very similar called COND, which is primarily used in recursive functions. Even there though, I'd prefer better factoring. 14:18:35 thats a good sign 14:19:00 yes but it realy needs to be able to ASSEMBLE too hehe 14:19:03 have you seen lina, i440r? 14:19:09 lina ? 14:19:13 no - is she cute ??? :) 14:19:14 yes, when you need CASE , you might start thinking about overall structure again 14:19:22 so you want an assembled, threaded forth? 14:19:33 linux version of ciforth, computer-intelligence forth or somesuch. It's neat, but I haven't looked at it much yet. 14:19:38 adu: the primitives must be assembled 14:19:46 i didnt like the way fpc did case (basically because i didnt figure out how it worked hehe) 14:19:51 ya 14:19:53 i tend to stear away from case statements 14:19:58 i usually do an exec: 14:20:02 much neater 14:20:05 exec:? 14:20:09 there has to be SOME machine code somewhere, for any language 14:20:24 6 exec: a b c d e f g ; 14:20:32 isforth.sourceforge.net doesn't have the isforth tarball. 14:20:32 would execute teh f 14:20:37 i like OpenFirmware, there are so many words that still have their source definitions 14:20:39 and unnest from that word 14:20:55 : foo ( n --- ) exec: a b c d e f ; 14:21:05 teh exec: is an implied unnest from foo 14:21:10 i440r - oh, cool. You could implement that with a dynamic branch and simple arithmetic! 14:21:14 ah! so exec: doesn't save it's own return address? 14:21:16 4 foo would redirect you to d 14:21:25 :) 14:21:41 i stole it fare and square from fpc actually... 14:21:48 oh, ok, it compiles a table of addresses, and then does the call at runtime 14:22:03 if i could compile a case statement using exec: i would ... but it would be a little difficult 14:22:18 I once wrote a SKIP word that, at compile time, produce a branch to jump forward or backward (up or down?) a given number of cells. 14:22:18 code exec: 14:22:20 huh 14:22:21 that pretty nifty ... zimmer is a genious ... to bad he can't be bothered to write documentation 14:22:21 pop eax 14:22:22 interesting 14:22:24 add eax,eax 14:22:29 add esi,eax 14:22:36 mov esi,[esi] 14:22:42 The number was a compiletime thing, though. 14:22:45 erm no im fscking up here 14:23:18 i440r - where's the tarball for isforth? 14:23:20 heeh look in isforth sources i cant remember exactly how it goes :P 14:23:42 well theres teh cvs on sourceforge and in my /pub u can find teh sources 14:23:49 cleverdra: in that case it was compile time because it was a literal 14:23:53 but i dont have a tarball because its not released yet 14:23:58 la r3,-1(r3) 14:24:08 add r3,r3,r3 14:24:20 tcn sort of released an unofficial tarball and gave it an unofficial version number 14:24:27 addis r3,r4 14:24:29 isforth isnt even version 0.000000001 yet 14:24:43 yey! 14:24:47 MrReach - I know, but a word that could modify the literal after a following branch would be interesting. I've done that outside of a word, but not in it. 14:25:02 oh, IC what you're saying 14:25:49 what do you mean modify a literal following a branch ? 14:25:54 modify teh branch vector ? 14:26:00 yes 14:26:05 self modifying forth ? 14:26:06 hehe 14:26:08 evil!!!! 14:26:09 hehehe 14:26:09 kind of like a back-path, I gather 14:26:16 kind of like a back-patch, I gather 14:26:52 i think there would be neater ways of doing it wothout that sort of obfuscation tho 14:27:32 agreed, but i think cleverdra was wondering what kinds of uses such a monster would be used for 14:28:09 evil? 14:28:40 self modifying code is frowned upon... 14:28:42 usually 14:28:47 tho i do it alot in asm :) 14:28:50 evil because when the word is called, you have to keep very carefull track of what it will do ... it might do something defferent each times its called 14:29:00 well, screw that. self modifying code can be nice. 14:29:08 also it might not even do what you modified it to do 14:29:20 thats sad 14:29:21 mov foo+1,newaddress 14:29:23 foo: 14:29:27 jmp oldaddress 14:29:44 it might not even do what you originally coded it to do. Such problems are not unique in programming. 14:29:47 even tho the mov instruction modified teh jmp you still end up at oldaddress 14:30:05 cleverdra: agreed about it being nice ... although using a variable or constant might be clearer reading 14:30:12 because of teh prefetch 14:30:32 or a defered word 14:30:45 tahts self modifying code... but not in the evil way hehe 14:30:50 now THERE'S a big case statement 14:31:45 sorry, meant to say "variable or value" ... not "constant" 14:32:09 erm no... value is a fubar politically correct name 14:32:14 CONSTANT :P 14:32:30 10 constant 10 14:32:32 heh, here we go again 14:32:35 5 !> 10 14:32:37 hehe 14:32:56 now that IS evil :) 14:32:57 : evil-word cells >r [ here 7 cells + ] literal dup r> + swap ! [ ' ?branch , here , ] foo bar baz quux ; 14:33:06 until it's burned into ROM ... in which case a constant is really a constant, and a value is something else 14:33:20 * cleverdra thinks about that. 14:33:32 1-based jump table. I'll work that out later on a forth. 14:33:48 i like what i did in isforth 14:34:00 i make a word var that has teh same definition as constant 14:34:14 and a word const that eitehr executes like a constant or compiles a literal 14:34:15 I could probably factor that whole first part into an immediate exec:, but your word is cool. 14:34:55 I440r: that should work fine so long as isforth is never embedded 14:35:28 mrreach it would work fine then too if you made sure VAR compiled its body into ram :) 14:35:51 MrReach - defined 'embedded' 14:36:05 is VAR close enough to VALUE to be called such? 14:36:24 embedded = system burned into ROM, limited RAM 14:36:43 ah, OK. There are so many different definitions for that word nowadays... 14:37:04 VAR as I've seen is typically defined as: CREATE , 14:37:19 oh, I know, many embedded systems now have more power and i/o than my first full-blown desktops 14:37:31 not quite VALUE, as it's just a VARIABLE given a number. 14:37:43 oh, ok 14:37:57 see also VAL: CREATE , DOES> @ 14:38:24 now that is VALUE ... on the nose 14:38:34 and then have to use TO to change it 14:38:44 i440r - there are eleven files in CVS isforth, right? I'm using a DOS cvs from here and it occasionally flakes out on some names perfectly acceptable to my linux machine. 14:39:04 oops, yeah. One of my machines used VALS, something far different. 14:39:37 s/machines/forths/, it also hat NEG, INV, and such abbreviations. 14:40:02 yep 14:40:28 it is interesting to note that I440r generally disapproves of aliases 14:40:38 hehe erm not sure... check against ftp.purplecoder.com/pub/isforth ? 14:41:48 OK. Thank you i440r. 14:42:56 heh, I'm thinking of rewiring my motorhome ... just for fun ... making everything computer controlled 14:43:11 i got an update from tcn but he was half way thru an edit and i havent seen him since :P 14:43:32 i realy need to talk to that boy :P 14:43:51 clever one thing... you need to get a FIXED version of nasm 14:43:58 because nasm is seriously b0rked 14:44:00 that is why I've been thinking about the "embedded" issue 14:44:02 fscked in the head 14:44:44 mrreach isforth wouldnt work in an embedded situation without a few mods... mostly to variable and defered words but it wouldnt be impossible to make it work 14:44:47 easy actually 14:45:08 i440r - yeah, I've already got that. 14:45:14 I440r: if you were to write the assembler today ... what level of processor would it support? 14:45:21 cleverdra cool nasm 98 e ? 14:45:26 i440r - yeah. 14:45:38 s/yeah/yup/ # let's stretch my vocabulary a little! 14:45:46 haha! 14:45:50 i would want it to support pentium and maybe mmx 14:46:00 im thinking of stripping out the use of mmx in isforth 14:46:09 i dont think teh kernel should use mmx 14:46:13 ' yeah dup alias yup alias yep 14:46:16 slows down teh context switching 14:46:38 i440r - why don't you check out the gforth assembler/disassemblers? Or Pygmy's? Or lina's? Lina has by far the wierdest of the three, as it uses its own variant mnemonics which are more precise. 14:46:55 because i cant use them 14:47:01 Why not? 14:47:18 is gforth gpl ? 14:47:22 unwilling to use a "broken" forth to bootstrap with 14:47:25 ive avoided gforth ... 14:47:26 I'm not suggesting you just pull them out. I haven't looked at assemblers in general yet to get an idea of this. 14:47:32 definatly unwilling 14:47:38 i440r - gforth is GPL. lina may be GPL or LGPL. 14:47:38 gforth doesnt have forget 14:47:45 it has -6 alloc 14:47:55 -6 alloc? 14:48:03 huh? gforth has MARKER , I'm sure 14:48:04 so you can break the word you just created by freeing up half way throu it 14:48:07 negative allots, you mean? 14:48:18 gforth dox tell you to use -n alloc 14:48:23 yeah, gforth has MARKER. 14:48:26 allot i mean 14:48:34 argh im going crazee here hehe 14:48:38 6 allot -6 allot 14:48:42 alloc is used in Anton's garbage collector. 14:48:51 i didnt mean alloc.... 14:48:54 i mean allot 14:49:00 I know, I was just commenting. 14:49:08 yes, I'm quite impressed with his garbage collection research 14:49:10 ' someword here - allot 14:49:12 ugh 14:49:22 it's not like that anymore 14:49:24 Is that the only reason you've been avoiding gforth? Or because it's GPL and isforth is LGPL? 14:49:28 ugh why use garbage collection in forth 14:49:31 what needs collecting 14:49:43 no, he's talking major apps 14:49:44 i440r - nothing, that I've seen =) 14:50:05 cleverdra also i tend to dislike most other ppls forths... 14:50:07 still, garbage collector is nice. I may have use for it someday. 14:50:11 --- nick: adu -> adu-gone 14:50:13 specialy pygmy 14:50:19 windowing, symbolic list processing, stuff like that 14:50:21 pygmy uses subrouting threading doesnt it ? 14:50:23 What's wrong with Pygmy? 14:50:28 or some funky names for words 14:50:31 I don't know what threading pygmy uses. 14:50:36 I440r: no indirect 14:50:38 like push and pop for >r and r> 14:50:48 Pygmy *does* have different names for words, from its cmForth heritage. 14:50:52 I440r: yes, those are Seargent's pet words 14:50:53 I *like* push/pop. 14:50:55 i looked at it a while back and know there was something i didnt like 14:51:02 I use push/pop in Enth/Flux. 14:51:03 brb 14:51:06 they are non descriptive of whats going on 14:51:09 the biggest disadvantage of Pygmy is it's odd compiler 14:51:18 pop does both a pop AND a push 14:51:23 push does both a push AND a pop 14:51:30 its bad naming 14:51:41 r> and >r describe whats happening 14:51:48 I440r: I agree with Seargent on that one, PUSH and POP were much easier for me to remember than >R and R> 14:52:04 erm not realy... 14:52:09 > prononced TO 14:52:25 >r r> to r r to 14:52:29 no, I understand ... I use either system equally easy now 14:52:36 :) 14:52:49 i tend to like what i learned first hehe 14:52:51 push and pop do pushes and pops relating to the return stack. 14:53:03 but for beginners, I can vouce that push / pop are easier to remember ... if not as terse 14:53:13 tho my version of does> is nice because dodoes and nest are the same thing 14:53:26 Still, I like them because they're A) more readable, B) more expressive, C) easier to type, and D) easier to type -- and did I say easier to type? They're also easier to read. 14:53:40 hehe 14:53:53 i have to THINK where are they pusing to, where are they popping from 14:54:00 like i said they both do both operations 14:54:05 pop from one stack 14:54:07 push to the other 14:54:21 why? You don't use push or pop or any such named words on the data/procedure stack. 14:54:23 does push/pop operation refer to teh SOURCE stack or destination stack 14:54:47 but teh parameter stack is the primary stack 14:55:01 when I think forth, there is THE STACK ... if a number is in my way, I'm going to PUSH it away 14:55:03 one should not get into the habit of using teh return stack too much... 14:55:05 Well, yeah -- more reason to remember the return stack in this. 14:55:17 Why not? Why shouldn't you use the return stack? 14:55:26 not shouldnt use it 14:55:30 MrReach - hah! Good analogy. 14:55:32 shouldnt use it TOO MUCH hehe 14:55:37 mostly, I don't care where it goes, unless I'm doing something funky, in which case I'm thinking three times anyway 14:55:43 Well, too much of anything is, by definition, too much of it =) 14:56:04 well my 8051 forth has 3 stacks 14:56:08 parameter 14:56:09 return 14:56:11 processor 14:56:27 The processor stack is what's on the intel stack? 14:56:29 so push and pop would be counter intuative 14:56:40 yes, might be confusing there 14:56:45 its teh one using the sp register pushing into internal ram 14:56:46 yeah, I can see the problem there. 14:56:58 I don't know what an 8051 computer is. 14:57:08 its a micro controler 14:57:13 intel 8051 14:57:13 little teeny-tiny chip 14:57:18 harvard architecture 14:57:20 Ah, OK. 14:57:31 only good thing intel invented :P 14:57:46 used to run microwaves, coffee pots, etc 14:57:52 cars 14:57:54 Oh! I remember a reference to it now, something on the old FIGGY BAR. "If it's from intel, it probably has band-aids and hamster wheels in it." 14:58:05 doppler navigation fon apache helecopter :) 14:58:15 Cool. 14:58:23 ack! glad I wasn't in charge of THAT code 14:58:29 and i think teh 8051 is teh brains inside teh DDC ACE 1553 bus controler chip 14:58:47 y not ? 14:59:04 * MrReach hands I440r a smallish screwdriver, "Now, I need that skyscraper demolished in 7 days." 14:59:06 the 8051 didnt do any of teh navigation computations 14:59:26 it was used to monitor a ddc ace chip :) 14:59:30 and initialize it 14:59:40 mr reach worked with 1553 ? 14:59:57 nope, never heard of it 14:59:58 i have a ddc ace chip rite her with teh can popped off :) 15:00:04 its a bus protocol 15:00:10 used by teh mil 15:00:13 --- nick: adu-gone -> adu 15:00:15 oh! ok 15:00:19 no, I haven't 15:00:21 every device in an aircraft talks 1553 15:00:44 its very complex encoding... 15:00:50 prob the same proto that's used on the shuttle, then 15:00:54 manchester encoded 15:01:05 it would be 15:01:27 the shuttles have a bazzilion little forth computers all yapping at each other 15:01:51 :) 15:01:56 heh, and you can quote me on that 15:02:01 u mean "im here are you still there" 15:02:05 appltalk like ? 15:02:25 "No, nobody here but us chickens." 15:02:39 i just watched chicken run last nite 15:02:43 realy funny :) 15:02:46 OH! cleverdra!!! My family uses that phrase too! 15:02:47 I haven't seen it yet =( 15:02:56 its realy funny :) 15:02:59 typically english 15:03:06 MrReach - doesn't everyone use it? 15:03:13 cleverdra: nope 15:03:27 I nearly always get strange looks when I use that phrase 15:03:33 Wierd! 15:03:46 cleverdra: your family from the mid-west? 15:04:02 No, I think I saw it a long time ago on a warner brothers cartoon. 15:04:15 Actually though, I do come from Texas. 15:04:20 not quite the mid-west. 15:06:13 I just got back from Eastern Montana, damn what a drive! 15:06:23 12hrs out, 12 hrs back 15:06:41 hey cleverdra did u know they were thinking of splitting alaska in 2 and makign texas the THIRD largest state ??? 15:06:42 hehehe 15:06:44 got 4 bottles of Everclear(R), though 15:07:28 i440r - grrrrr. 15:07:34 brb 15:07:37 hehe :) 15:08:03 my little sister owns a ranch out there 15:08:51 .( goodbye, #Forth) bye 15:08:53 --- part: cleverdra left #forth 15:08:54 i like tx... 15:09:09 heh, not so "little" anymore ... she'd kick my ass into next week if we ever got into a fight 15:09:16 hehe 15:10:14 which reminds me .... I got to decide if I'm going to do a project I've been considering 15:10:25 be back in a while 15:10:28 :) 15:10:32 --- nick: MrReach -> MrGone 15:55:47 --- join: cleverdra (jfondren@1Cust99.tnt4.florence.sc.da.uu.net) joined #forth 15:57:15 hi clever 15:57:37 grrr how do you apply one of alan cox's patches grrr 15:57:50 theres no dox on how to do it 15:57:53 hello i440r. 15:57:59 On how to apply patches in general? 15:58:02 and man patch isnt at all helpfuk 15:58:05 dunno 15:58:11 patch < alan-cox.patch 15:58:15 patch patchfile file-to-patch 15:58:28 but patch wants a file to patch 15:58:41 and teh ac patch files patch MULTIPLE files 15:58:50 sometimes you want -p arguments. If it bothers you with "where is this file?" crap, you may need -p1 or -p2 or such to knock off that many directories from the files in the patch 15:58:58 if i say patch file-to-path-with it asks 15:58:59 i440r - patch < thefile 15:59:03 what file should i patch 15:59:05 oh 15:59:08 wait il try that 15:59:15 i tried patch -i patchfile 15:59:28 `patch < thefile` is how God wanted it to be. 16:00:02 nopoe 16:00:08 it asks for a file to patch 16:00:13 if i say 16:00:19 patch ../patchfile 16:00:21 it asks 16:00:25 file to patch: 16:00:32 and tahts not rite 16:00:45 Are you sure you're really using patch, and not wrapper? 16:00:46 the patchfile patches MULTIPLE files 16:00:48 catch ya later d00dz 16:00:56 patch 16:01:00 i440r - I *know*. That fact is irrelevent. 16:01:06 interesting 16:01:06 that command should be execute from the root directory of the program being patched 16:01:15 --- quit: adu (IRCStep) 16:01:22 i was doing that 16:01:25 cd /usr/src/linux 16:01:26 i440r - OK. Destroy it. remove it. File it in the circular file. Go get a *real* patch that takes input from stdin. 16:01:33 patch < ../patchfile 16:01:40 the file to be patched is specified in the patch file, but if patch can't find it, it asks 16:01:40 asks for file to be patched 16:01:42 --- join: leo037 (leo037@grenoble-45-5.dial.proxad.net) joined #forth 16:01:52 i440r - give us the exact output 16:02:21 patch <../patch-2.4.6-pre5 [enter] 16:02:39 argh the ting is working differently now hehe 16:02:48 It's patching now? 16:02:49 patching file CREDITS 16:03:03 its asking me 16:03:28 Reserved (or previously applied) patch detected! Assume _r? [n] 16:03:44 i hit enter 16:03:45 asking you...? 16:03:47 hello leo. 16:03:53 and NOW its asking me for a file to be patched 16:04:17 OK. Give it -p1 16:04:30 oh god its going to ask me what file to patch for each file specified in teh patch file 16:04:34 -p1 ? 16:04:43 or -p2, or -p3, or so on until the patch is working on the tree you're in. Alternatively, give an example question from there. 16:04:45 thats working 16:04:49 Cool. 16:04:59 i did 16:05:06 patch -p1 <../patchfile 16:05:11 It may be set to work on linux in a directory, but you can't trust that anyway because Alan Cox probably has bunches of differently named linux source directories. 16:05:16 i was told -p0 and wasnt told to use < 16:05:17 grr 16:05:31 i440r - kill that person =) 16:05:48 I don't see any forth stuff on purplecoder! Just assembly, and a link to FIG. 16:06:15 yea i aint touched taht in ages either 16:06:19 but i have an excuse for that 16:06:25 i been working contract job :P 16:06:55 and i realy dunno what to put in there... 16:07:01 that asm is my old sources... 16:07:05 all a386 stuff 16:07:09 registered a86 16:07:36 yeah. a86 looks int'resting. 16:08:06 a86 is without a doubt teh best assembler i have ever used 16:08:12 on any processor/controler 16:08:23 i dont need to include library files 16:08:46 if i make a reference to a function/label/variable inside any library source file, that file is automatically included 16:08:56 and i mean included not linked... 16:09:06 teh lib files are SOURCE files, not binary files 16:09:09 --- join: adu (andrew@adsl-63-201-88-69.dsl.snfc21.pacbell.net) joined #forth 16:09:20 Cool. 16:09:24 welcome back adu. 16:09:30 actually .lib files are binary, they say what labels etc are in what source files 16:09:41 so if i say call foo 16:09:44 and foo is not defined 16:09:54 i forgot something 16:10:08 a86 will look in any a86.lib files in its path and find what source file foo is defined in and auto include it 16:12:47 dired, lina is (see ciforth) 16:12:47 OK, cleverdra. 16:12:50 dired, ciforth is http://home.hccnet.nl/a.w.m.van.der.horst/lina.html 16:12:51 OK, cleverdra. 16:15:58 grr teh kernel supports cyber200 but not cyberblade i7 grrr 16:16:09 what are those two? 16:16:18 video 16:16:30 trident cyberblade i7 is in my laptop 16:16:57 it supports maestro3 now tho at least :) 16:17:07 which is teh sound card in my laptop 16:17:49 oh. 16:17:57 op me, i440r 16:18:13 --- mode: I440r set mode: +o cleverdra 16:18:19 hrm hang on 16:18:27 Thank you. 16:19:04 --- topic: set to ': ?exit if r> drop then ;' by cleverdra 16:19:07 cleverdra register your nickname 16:19:16 say /msg nickserv help register 16:19:22 register? 16:19:28 yes. with nickserv 16:20:13 OK. registered. 16:20:31 exit #forth and then re-enter 16:20:44 --- part: cleverdra left #forth 16:21:00 --- join: cleverdra (jfondren@1Cust99.tnt4.florence.sc.da.uu.net) joined #forth 16:21:00 --- mode: ChanServ set mode: +o cleverdra 16:21:04 :) 16:21:12 problem solved :P 16:21:24 Cool =) 16:21:29 now if i find out you are realy bill gates in desguise im gona be realy pissed :P 16:21:43 Me too! 16:21:47 hehehehehe 16:21:57 i recon bill gates would be too... 16:22:08 I gotto go real soon. Walk. 16:22:11 wake up one day only to realise he isnt himself but someone else is :) 16:22:20 blink! 16:23:55 leaving? ?bye 16:23:56 --- quit: cleverdra (Leaving) 16:31:59 --- quit: leo037 (Visit http://ofaurax.free.fr !!!) 17:25:47 --- join: aaronl (aaronl@vitelus.com) joined #forth 17:29:05 --- join: TheBlueWizard (TheBlueWiz@ip-216-25-205-160.vienna.va.fcc.net) joined #forth 17:29:05 --- mode: ChanServ set mode: +o TheBlueWizard 17:29:14 hiya all 17:29:16 --- mode: TheBlueWizard set mode: +o aaronl 17:29:21 --- mode: TheBlueWizard set mode: +o adu 17:29:24 --- mode: TheBlueWizard set mode: +o Trey 17:29:26 heya, TheBlueWizard 17:29:32 hiya MrGone 17:29:38 --- nick: MrGone -> MrReach 17:39:37 --- nick: TheBlueWizard -> ThePinkWizard 17:44:51 --- nick: ThePinkWizard -> TheBlueWizard 17:45:03 uh huh 17:45:13 hmmm??? 17:46:04 back to normal :) 17:50:14 --- nick: TheBlueWizard -> TheChaosWizard 17:50:22 --- nick: TheChaosWizard -> TheBlueWizard 18:12:20 bye 18:12:21 --- quit: adu (IRCStep) 18:35:45 --- quit: MrReach (Ping timeout for MrReach[209.181.43.184]) 18:35:56 --- join: MrReach (mrreach@209.181.43.184) joined #forth 18:37:37 --- mode: TheBlueWizard set mode: +o MrReach 18:57:05 --- join: bewm (bewm@purplecoder.com) joined #forth 18:57:30 --- mode: TheBlueWizard set mode: +o bewm 18:58:46 ta. 19:01:47 --- quit: bewm (BitchX-1.0c17 -- just do it.) 19:02:27 --- join: edrx (edrx@copacabana-ttyS25.inx.com.br) joined #forth 19:05:18 --- mode: TheBlueWizard set mode: +o edrx 19:11:39 --- quit: edrx ([x]chat) 19:18:57 * aaronl is away: dinner 20:25:51 --- quit: Fare (Connection reset by pear) 21:00:57 time to go to bed....bye! 21:01:00 --- part: TheBlueWizard left #forth 21:35:52 * aaronl is back (gone 02:16:54) 22:24:06 --- quit: MrReach () 22:41:33 --- join: adu (andrew@adsl-63-201-88-69.dsl.snfc21.pacbell.net) joined #forth 22:43:37 --- join: x2Sx (irc@Mix-St-Amand-112-4-184.abo.wanadoo.fr) joined #forth 22:49:54 --- quit: x2Sx (Ping timeout for x2Sx[Mix-St-Amand-112-4-184.abo.wanadoo.fr]) 22:52:07 * Trey is away: sleeping [0:52] 23:59:59 --- log: ended forth/01.06.22