00:00:00 --- log: started forth/05.08.04 00:07:08 --- join: Topaz (~top@spc1-horn1-6-0-cust128.cosh.broadband.ntl.com) joined #forth 00:36:22 --- quit: JasonWoof ("off to bed") 01:07:32 --- join: Raystm2 (~vircuser@ppp-70-248-32-135.dsl.rcsntx.swbell.net) joined #forth 01:07:32 --- quit: nanstm (Connection reset by peer) 01:23:30 --- join: Raystm2_ (~vircuser@ppp-70-248-32-135.dsl.rcsntx.swbell.net) joined #forth 01:23:31 --- quit: Raystm2 (Read error: 104 (Connection reset by peer)) 01:41:51 --- join: arke (~chris@p54A7CD12.dip.t-dialin.net) joined #forth 02:05:05 --- quit: arke (Read error: 104 (Connection reset by peer)) 02:24:29 --- join: llama32 (~zak@077.a.001.beg.iprimus.net.au) joined #forth 02:24:57 anyone here? 02:53:08 nnope 02:53:12 :P 03:17:18 --- join: Raystm2 (~vircuser@ppp-70-248-32-135.dsl.rcsntx.swbell.net) joined #forth 03:17:19 --- quit: Raystm2_ (Read error: 104 (Connection reset by peer)) 03:36:11 --- quit: llama32 (Read error: 104 (Connection reset by peer)) 03:41:21 aint nobody here but us chikkins.... 03:41:27 damn missed him 05:04:48 --- join: tathi (~josh@tathi.bronze.supporter.pdpc) joined #forth 05:21:03 --- join: PoppaVic (~pete@0-3pool158-47.nas24.chicago4.il.us.da.qwest.net) joined #forth 05:21:34 Mornin' 05:21:55 Good morning. 06:01:55 --- join: arke (~chris@p54A7CD12.dip.t-dialin.net) joined #forth 07:08:55 --- join: madgarden (~madgarden@London-HSE-ppp3546403.sympatico.ca) joined #forth 07:15:03 --- join: sproingie (foobar@64-121-15-14.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 07:32:58 --- quit: arke (Read error: 104 (Connection reset by peer)) 07:45:26 --- join: samc (~sam@203-114-131-6.inspire.net.nz) joined #forth 08:02:48 --- nick: Raystm2 -> nanstm 08:24:06 Well, sheeit... Managed to get the first test-file parser to work properly. Shazaam 08:26:29 --- quit: PoppaVic ("Pulls the pin...") 08:28:25 --- join: PoppaVic (~pete@0-3pool158-2.nas24.chicago4.il.us.da.qwest.net) joined #forth 08:29:23 --- quit: samc (Read error: 113 (No route to host)) 08:42:25 PoppaVic: you writing something with the bits you got from autoconf? 08:42:27 or...? 08:42:50 working up the guess.c program using a guess.dat 08:43:36 http://rafb.net/paste/results/CyTu3q34.html 08:44:00 http://rafb.net/paste/results/Xgah6f25.html 08:46:26 I will still need to do more, but I'm trying to decide where, how and what. 08:48:22 interesting 08:59:19 did you write all the C code in that second paste? 08:59:56 yeah 09:00:03 sorry, I had to bring in groceries 09:00:08 sure. 09:00:34 I actually wrote it all, just using guess.sh as a sorta' guide 09:00:43 in aline(), you have a do...while(p) loop 09:00:53 and the last thing in it is if(!p) return p; 09:01:16 seems like you could have do...while(1) and it would be the same thing. 09:01:20 just wondering if I'm missing something. 09:01:27 yeah, it works - but that was the fucker I beat for three days total, because I thought I'dbroken it. 09:01:45 ..in fact, I'd called the same process twice *sigh* 09:03:06 I figure, (at this point), I'll leave the lil' shit alone as long as it works. Maybe refab it later, when I have everything else cleaned. 09:03:41 ok 09:04:19 do/while is odd anyway, as is stuff like fgets 09:04:38 you almost need a top & bottom check 09:05:17 that's an interesting collection of comment chars you have there :) 09:05:21 folks tend to forget you can get a valid fgets, but set feof and such 09:05:25 right. 09:05:26 where's that? 09:05:37 if( strchr(" #\t", ff->buf[0]) ) continue; 09:05:46 hehe - line-muncher 09:07:36 That whole func was a LOT nicer before I thought I'd munged the fp 09:14:34 man, lexing is such a nuisance. 09:14:39 yeppers 09:15:34 That's why adding a vector to vocs/wl doesn't scare me much... Most folks are too stupid to exploit it well. 09:16:31 I'm still chuckling over yesterdays attempt to communicate with the #asm folks 09:17:04 ..Boy, you can NOT convince them that umpty-assemblers and syntaxes are unacceptable 09:18:21 They almost admit that every cpu has a collection of ops they need to do, and some are unique - but they can't see any remote reason to use anything more portable/unified (THEY then suggest C ;-) 09:20:02 heh.. they were busily yakking about \0 string-terminators and bios versus kernels, etc the other day 09:36:29 --- join: virl (~hmpf@chello062178085149.1.12.vie.surfer.at) joined #forth 09:38:08 hmm...it's so tempting to start a new assembler project 09:39:02 I can see that it would be nice to have a unified syntax, but which one would you pick? 09:39:20 and... you'd probably also want to redo all the documentation for the various processors to conform to it... 09:39:31 not at&t 09:39:33 period 09:39:35 ick 09:39:55 what's at&t syntax again? 09:40:07 it's been a long time since I did any x86 asm 09:40:26 sorry, I was editing a mess 09:40:57 intel is pseudo masm, at&t is gas-like... None of it makes me wet myself 09:41:18 and that's another problem, operand order. 09:41:30 different camps do it different ways. 09:41:32 erm intel isnt psudo masm 09:41:36 its intels chip 09:41:38 well, you'd not "redo" docs, you'd write it once, properly and then offer differences 09:41:49 eric isaacson wrote intels first x86 assembler 09:41:54 MASM is a copy of intel 09:41:57 I440r: think about it - reverse it 09:42:11 PoppaVic: no, I mean...the original documentation is by the company that makes the chip. 09:42:16 or by some standards organization 09:42:22 tathi: sure, nap 09:42:28 they dictate the mnemonic names and some syntax and whatnot. 09:42:42 if you had a unified assembler, you would want to re-do all that stuff with your new syntax. 09:42:47 I'd imagine. 09:42:51 the prob is the way every assembler and his cousin feels free to change anything, anywhere 09:43:25 because having to think back and forth is kind of a nuisance. 09:43:37 took me almost 6 months to get used to the different operand order when I switched from x86 to ppc. 09:43:47 you cant write an arm assembler that uses intel syntax 09:44:11 theres things arm can do that have no counterpart in x86 09:44:14 in what way should it be portable? 09:44:15 You can write nearly anything to do anything 09:44:21 so the syntax is guaranteed to be different 09:44:30 and, I already said every chip has a variant 09:44:39 no 09:44:49 "syntax", like "semantics" is human 09:45:05 machine code is machine code 09:45:45 in which sense? 09:45:59 Anyway, no: I'm not writing one. Frankly, I'm about tired of the argumentative, unsupportive nature of the mess 09:47:07 http://rafb.net/paste/results/IOwe3s47.html 09:47:17 give that a whack, tathi 09:47:28 I just can't see getting everyone to switch over. 09:47:29 is anyone working on THE any more ? 09:47:47 I agree, tat: they are too busy protected their ass and turf 09:47:56 there isn't really any benefit to them -- their code probably wouldn't be portable anyway. 09:48:18 I440r: dunno, I haven't looked since Jef died. 09:48:30 what is "THE" 09:48:43 PoppaVic, you have a symphatic codingstyle ;-) 09:51:21 Jef Raskin's 'The Humane Environment' 09:51:31 never hoid of it 09:53:07 Raskin pushed good interface design from way back. 09:53:15 ah 09:53:34 was responsible for the Mac, a Forth machine called the Canon Cat, and then moved on to newer designs. 09:53:50 has a book _The Humane Interface_ talking about some of the basic principles. 09:54:18 I'd also add "uniformity" (per platform), and a consistent way to ascertain variations and support them 09:54:23 IMO he doesn't really do much beyond drawing the obvious conclusions from the research, but it's a good read. 09:55:31 hmm Sometimes, guidelines are worth reading, yeah. 09:59:28 I440r: hmm, doesn't really look like it. 09:59:54 http://rchi.raskincenter.org/fordevelopers/getsourcecode.html 10:00:01 says they'll be posting regular tarballs 10:00:14 but svn thinks the date on their latest is from the middle of april 10:00:57 of course, he died the end of february, so they did keep on with it for a little bit... 10:01:02 maybe they're just having a dry spell 10:01:52 not sure what it all means, myself.. Looks like they have a shell/env, rather than guidelines 10:03:05 err...THE is the implementation of his ideas. 10:03:11 ahh 10:03:17 I gather it's basically just a text editor at this point. 10:03:40 but then...so is emacs nominally a text editor :) 10:03:47 so, anti-gui stuff? They are (apparently) encompassing a whole field of issues 10:03:59 eww, emacs - ugh 10:04:20 oh, not anti-gui. 10:04:36 but anti WIMP (windows/icons/menus/programs) 10:05:47 yeah...I don't see how you could possibly unify syntax between RISC machines and x86. 10:06:22 x86 has FAR more complicated address encodings. 10:06:58 Personally, I see it as "easy", but I'm odd 10:07:31 The #asm folks took exception as well, forgetting that asm is mostly 1:1 and compiling is just 1:n 10:07:55 maybe I'm misunderstanding what you're talking about. 10:08:16 care to elaborate? 10:08:46 They seem to forget that the synthetic-language and machine tends to intersect realities. And, where it does not, you "compile" rather than "assemble" 10:09:08 oh. well, that's why you lost them. :) 10:09:11 Yep 10:09:49 if they were interested in compiling, they wouldn't be using asm. 10:09:56 It was still frustrating and irksome - I kept reaching for a 4x4 10:10:23 lol 10:11:02 well, the idea that FOO actually builds 1-N instructions apparently loses them, which makes me laugh - because asm does that very thing almost everywhere 10:11:37 macros and such, you mean? 10:11:51 Frankly, I'm beginning to get the impression that folks that can't speak forthism and C just can't speak programming. 10:12:03 sure, expansion/inlines- whatever 10:12:21 yeah, but folks go to asm for the control over the code. 10:12:31 sometimes 10:12:43 well, I think a lot of them do. 10:12:50 ..the rest of the time is because they are too lame to know wtf is happening around them 10:13:19 and if you go to something portable, you inherently are targetting the least common denominator, and you lose that control. 10:13:33 if the guy is writing for his own unique embedded foo, I can understand the stance - they don't and are not. 10:14:02 what's wrong with writing asm programs for a non-embedded platform? 10:14:16 tathi: not really, allow for a marker and decl that plain old specifies "FOO optimized" 10:14:48 I didn't say it was "wrong", but - meant in reference to your early observation 10:15:01 oh, right. 10:15:37 ok, but (speaking just for myself) I'm in forth and asm because I like the minimalism. 10:15:44 anyway, it's damn near a paradigm-shift, so.. I don't expect it to sink in or change anything 10:15:58 absolutely 10:16:02 I don't want the overhead of some system that can generate code for anything, only to back up and say "this code only works on FOO". 10:16:15 I'd rather just use a tiny little assembler that only works on the platform that I'm targetting. 10:16:21 my prob is the way the shit flows (assumptions all over) 10:17:22 I suppose, but you have to have assumptions in order to function. 10:17:37 ..my gut feeling is that there absolutely must be a way to turn a universe of similar assumotions into something that makes sense 10:18:01 I don't know that they are all *that* similar. 10:18:13 I mean, at some level, sure. 10:18:42 arith, logic/compare, shift, rotate, load, save..... 10:19:14 yeah, but even there. 10:19:32 arithmetic: division -- rounding modes vary between processors 10:19:38 yep 10:19:51 shift/rotate -- what do you do (set flags etc.) with the bits you shift or wrap? 10:20:06 yep, you begin to see it. 10:20:12 load/save -- x86 can take things like [EBX*4+SI+2], RISC machines would have to calculate it all too. 10:20:32 what's generic, what is not, what do you need to know preproc versus runtime, etc 10:21:03 I don't see any way to encompass all that without losing the differences that make it interesting to know this stuff in the first place. 10:21:20 oh, "INTERESTING" - ok, then you'd be right 10:21:43 yeah. 10:21:59 I think that most of the folks that know this stuff know it because they find it fun. 10:22:05 Personally, whatever I write is "interesting". 10:22:15 ..otherwise, I don't write it 10:22:52 well, yeah. 10:23:02 I expect they like to feel "special" - the psycho-babble about "empowerment". 10:23:20 but, so'k - I see the flow 10:23:26 heh 10:23:56 It seems to rank up there with "write obscure-crap, save yer job" 10:24:13 reminds me on java 10:24:31 I can see it all, but I can't really agree with it all (as folks argue it) 10:24:49 I'm doing asm because I think it's fun. I like to understand the whole system, because I wrote the whole damn thing. 10:24:50 Java is a fucked-up whore, bored out a few calibers 10:25:06 yep 10:25:07 if I were doing this for any practical reason, like making money, I'd be using other tools. 10:25:14 Ahh 10:25:21 and there are plenty of those out there. 10:25:21 which? 10:25:33 whatever was appropriate to what I was doing. 10:25:38 ahhhhh 10:25:49 back to "appropriate" ;-) Ok 10:26:03 Python feels like kind of an ugly hack, but it works pretty well. 10:26:12 I'll pass 10:26:18 Perl is fairly nice for text processing stuff. 10:26:24 eww 10:26:34 Yer just evil, dude 10:26:45 Smalltalk seems like it's fairly productive, but I don't know about the availability of compilers. 10:27:04 I hear good things about Ocaml, (great optimizing compiler, apparently), but never tried it. 10:27:26 ok, I see all the issues I began with. ;-) S'ok, I'm about ready to call it a day and work up dinner 10:27:28 Actually, I might buy Forth, Inc.'s compiler and do it in forth. 10:27:49 I can't afford the prices I saw for their shit years ago 10:28:02 just seems like the high-level folks aren't going to want to know about the low-level details 10:28:05 ..But, that sorta' makes my point ;-) 10:28:13 and the low-level folks aren't going to want to lose the details 10:28:16 but... 10:28:20 hehe 10:28:34 if you have something working, I could see people using it. 10:28:34 * PoppaVic considers an insane rotfl 10:28:41 I can't 10:29:15 --- join: ramkrsna (~ramkrsna@61.2.66.250) joined #forth 10:29:24 I can see haqueers using it, and maybe some home-users What I'm hearing is 98% "don't rock my boat". 10:29:39 yah, that's always the case. 10:29:50 if you want to change technology, you have to make it easy for people to switch 10:29:56 yep, except - I remember FIG-forth 10:29:59 and throw in some nice benefits as well, to induce them to move. 10:30:04 nope 10:30:26 If I go to that effort, I will absolutely charge them all the blood I can get. 10:31:01 short of that, why would anyone bother with it? what they have works well enough. 10:31:10 I will merely bang my head off this autoshit cinderblock 10:31:55 anyway, stay well folks. Time to go cobble-up dinner and chill 10:31:57 --- quit: PoppaVic ("Pulls the pin...") 10:33:12 anyway...back to writing yet another forth... :) 10:35:47 --- quit: tathi ("foo!") 10:54:07 so another piece of forth system 10:55:22 * virl is working on a forthish vm which should replace the ugly java/.net shit. 10:55:38 some ideas about api functions? 10:56:37 actually I'm making a vm which plays with some of my ideas, so anything you find 'cool' in a language? 10:59:54 http://193.151.73.87/games/lemmings/ 10:59:56 :) 11:04:05 what did he mean with 'don't rock my boat'? 11:11:02 nobody want's his idea or what? 11:11:03 --- join: Al2O3 (SDO@24-55-114-227.clspco.adelphia.net) joined #forth 11:11:10 hello :) 11:11:13 --- part: Al2O3 left #forth 11:19:09 --- join: Al2O3 (SDO@24-55-114-227.clspco.adelphia.net) joined #forth 11:19:12 --- part: Al2O3 left #forth 11:57:42 --- join: arke (~chris@p54A7B85A.dip.t-dialin.net) joined #forth 12:03:15 --- quit: Jim7J1AJH (Read error: 110 (Connection timed out)) 12:05:49 --- quit: Quartus () 12:23:54 --- join: Jim7J1AJH (~jim@221x115x224x2.ap221.ftth.ucom.ne.jp) joined #forth 12:25:09 --- quit: ramkrsna (Remote closed the connection) 12:35:11 --- join: moreCowbell (~moreCowbe@ca-lapuente-cuda2-c1c-186.arcdca.adelphia.net) joined #forth 13:12:22 --- join: Raystm2 (~vircuser@adsl-68-93-40-183.dsl.rcsntx.swbell.net) joined #forth 13:25:57 --- join: Quartus (~trailer@ansuz.pair.com) joined #forth 13:27:42 --- quit: nanstm (Read error: 110 (Connection timed out)) 14:34:11 hi everyone 14:38:23 --- quit: moreCowbell ("That wasn't supposed to happen") 14:42:21 --- join: JasonWoof (~jason@Herkamire.student.supporter.pdpc) joined #forth 14:42:21 --- mode: ChanServ set +o JasonWoof 14:44:09 Hi crc 14:56:48 mmmm 14:56:51 what to eat 14:59:40 pop tarts 15:06:34 --- quit: Quartus (SendQ exceeded) 15:07:35 --- join: Quartus (~trailer@ansuz.pair.com) joined #forth 15:16:30 no, I mean as food 15:18:07 ...lol 15:37:41 --- quit: Jim7J1AJH (Read error: 110 (Connection timed out)) 15:49:30 --- quit: onetom (kornbluth.freenode.net irc.freenode.net) 15:49:38 --- join: onetom (~tom@ns.dunasoft.com) joined #forth 15:56:09 --- join: ayrnieu (~julian@ip70-187-26-105.om.om.cox.net) joined #forth 15:56:25 hi all 15:58:05 Hi. 16:00:31 --- quit: Topaz ("Leaving") 16:01:31 (vista already has viruses, sort of: http://www.pcworld.com/resource/article/0,aid,122125,pg,1,RSS,RSS,00.asp) 16:09:11 --- join: Jim7J1AJH (~jim@221x115x224x2.ap221.ftth.ucom.ne.jp) joined #forth 16:27:18 yay food 16:32:24 --- join: TheBlueWizard (TheBlueWiz@ts001d0822.wdc-dc.xod.concentric.net) joined #forth 17:17:35 --- part: TheBlueWizard left #forth 17:24:17 --- quit: OrngeTide ("back to work") 18:00:00 --- join: Raystm2_ (~vircuser@adsl-68-93-40-183.dsl.rcsntx.swbell.net) joined #forth 18:00:34 --- quit: Raystm2 (Read error: 104 (Connection reset by peer)) 18:03:27 --- nick: swalters -> OxFEEDFACECOFFEE 18:14:12 --- nick: OxFEEDFACECOFFEE -> swalters 18:40:36 --- quit: I440r (Read error: 104 (Connection reset by peer)) 18:41:15 --- join: snoopy_16 (snoopy_161@dsl-084-058-128-010.arcor-ip.net) joined #forth 18:42:27 --- quit: Snoopy42 (Nick collision from services.) 18:42:29 --- nick: snoopy_16 -> Snoopy42 18:43:52 --- quit: Snoopy42 (Client Quit) 18:44:36 --- join: I440r (~foo@rrcs-24-242-160-169.sw.biz.rr.com) joined #forth 18:45:06 --- join: Snoopy42 (snoopy_161@dsl-084-058-134-215.arcor-ip.net) joined #forth 19:05:53 I440r, any progess? 19:06:55 yea i fudged it 19:07:20 Got your tourette's properly medicated? :) 19:07:30 im writing teh code to relocate word headers at boot from rom to ram (and thecode space too but thats just a straight cmove) 19:07:39 fuck no :P 19:13:53 --- join: slava (~slava@CPE0080ad77a020-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 19:16:10 You need them to move at boot, eh? 19:16:50 at boot they are in rom 19:16:59 Can't leave them there? 19:17:07 cant write to rom 19:17:12 some_variable: 19:17:16 bl dovariable 19:17:17 You need to write to the headers? 19:17:21 .word body_of_varlaibe 19:17:29 hey I440r 19:17:37 of corse i do i need to be able to write to both head space and list space 19:17:38 i slava2 19:17:40 ! 19:18:01 I know you need to write new headers. Any possibility of a split model? Some headers in ROM, some not? 19:18:13 its possible :) 19:18:32 they are just linked lists in a flat address space :) 19:18:38 That might give you some flexibility further along. 19:18:45 I440r, working on your ARM forth? 19:18:51 theoretically tho arm code runs slower in rom because the rom has a 16 bit address space 19:19:01 so it takes two fetches to for each instruction 19:19:01 yea 19:19:06 cool 19:19:11 for the gba or any other arm 19:19:29 i'm working on my compiler. i know you hate optimizing compilers, but i intend to replace common lisp as my numerical computing language 19:19:31 :p 19:19:53 Hate them, do you I440r? 19:20:00 i dont hate them, im just opposed to compilers mucking with the 1:1 corelation between source and object :) 19:20:13 which precludes any kind of optimization :) 19:20:19 Quartus have you ever used eric isaacsons a386 assembler ? 19:20:22 I'm pro-optimization, but I don't take it to the wall. I'm happy to stop at the last factor of 2 or so. 19:20:28 I440r, no. 19:20:31 Not that I recall. 19:20:41 eric is opposed to assemblers plugging things into your code behind your back 19:20:43 i'd like to achieve performance on par with gcc eventually 19:20:47 like segment overrides and stuff like that 19:20:52 and use sse and altivec 19:21:21 I440r, guessing you're not into native-code compliation. 19:21:21 isforth applications wount have any problems competing with gcc apps once i got the assembler 19:21:22 if ever 19:21:30 quartus im not 19:21:31 assuming you hand-code asm 19:21:41 subroutine threading isnt forth :P 19:21:42 I'm surprised, I440r -- figured you for a speed demon. 19:21:49 only direct and indirect :) 19:22:03 quartus no. i do not believe code execution speed is important in ANY WAY 19:22:14 code size and maintainability are the ONLY things that are important 19:22:15 period 19:22:16 I440r, you don't do any numerics do you? :) 19:22:36 higher execution speed can mean you write your code in a more clear style without concern that it will run slowly 19:22:44 slava code optimizations give you maybe a 1% improvement 19:22:47 Well, then from a simplicity standpoint -- adding a VM on top of a CPU seems like it'd rub you the wrong way. Why add a VM when the CPU is right there and able to do the job? 19:22:59 algorithm optimizations can give you a 200% or more improvement 19:23:06 I440r, that's not true 19:23:25 I440r, a good compiler can beat a direct threaded interpreter by 5x or more 19:23:27 yeah, code optimizations can be significant. 19:23:42 And native-code vs. threading -- what slava said. 19:23:58 they can also significantly impact on code readability :P 19:24:12 what does a compiler have to do with the readability of your code? 19:24:46 i mean. if you write a super-whutsit function and optimize it to the umpteenth level 19:24:48 for speed 19:24:57 you just destroyed all readability in that function 19:25:04 Not talking about that. 19:25:05 or at least made it a hell of alot more complex 19:25:14 i was.. thats my point 19:25:26 i'm talking about the compiler here 19:25:36 code optimizations decrease maintainability and algorithm changes DONT 19:25:49 if the compiler is good, you can write your code in a high level style 19:25:50 How do code optimizations decrease maintainability? 19:25:58 i.e. you take your most heavilly optimized bubble sort and it isnt gona be anywhere near as fast as my totoaly unoptimized shell 19:26:03 and shell is jsut one up from a bubble 19:26:18 well it depends on teh optimizations 19:26:23 but a shell sort compiled by an optimizing compiler will be faster than the same one compiled by a naive compiler 19:26:34 if you do code interleaving so that you reduce agi your fucking all over the readability 19:26:40 wtf? 19:26:46 thats just one example 19:26:48 Readability of what? 19:26:53 readability of the generated asm? 19:26:56 the source 19:27:02 the source is not affected 19:27:09 Talking about an optimizing compiler, here. Same source. 19:27:29 heh yea. you tell compiler X and it compiles Y because it knows better 19:27:33 im opposed to that 19:27:52 optimizations should not change the observable behavior of the code 19:28:00 Right. Then that would be a bug. 19:28:02 In the optimizer. 19:29:10 well lets just agree to disagree :) 19:29:23 hmmm fresh roasted coffeee!!! love that smell 19:30:00 quartus you have an x86 linux machine ? 19:30:13 install isforth and do ./isforth -fload src/examples/window.f 19:30:14 Not fired up at present. 19:30:28 tell me if thats slower than the quiv using c and ncurses 19:30:44 i can tell you this to... i think its going to be faster 19:30:51 and i KNOW its a hell of alot easier to do in isforth 19:31:07 and ncurses is "optimized" 19:31:21 Supposing it is faster than the c and ncurses, it'd be faster yet if it were compiled with an optimizing compiler. 19:32:00 I440r, how do i time how long it takes to call a word? 19:32:02 and the increased speed would be negligable 19:32:14 in isforth ? 19:32:17 do you have a <= word? 19:32:17 yes 19:32:30 timer-reaset blah .elapsed 19:32:51 timer-reset even 19:32:53 grr i cant type 19:33:39 34 fib is 3.5 seconds in isforth, 344ms in factor :) 19:34:00 That's only a factor of 10. :) 19:34:40 which fib 19:34:45 there are 3 versions of it 19:34:49 i can cheat and disable type checks in factor, and it runs in 181ms 19:35:00 but that's not fair since factor is strongly-typed 19:35:06 I will bet on the same order of speed-up regardless of the version of fib. 19:35:08 : fib dup 2 < if drop 1 else 1 - dup recurse swap 1 - recurse + then ; 19:35:14 and i can cheat and run my itterative function and do 40 fib 90 million times a second 19:35:18 i can do that too 19:35:43 that recursive method recurses on itself one humdred and thirteen MILLION times to calculate teh 40th fib 19:35:49 recursion is stupid 19:36:01 so is my typing 19:36:13 You think an iterative one is going to eliminate the speed difference? 19:36:45 how do i do a counted loop in isforth? 19:36:52 heh your using a very trivial example for your arguement 19:37:03 i gave a non trivial example 19:37:10 and mine is either as fast or faster 19:37:11 With nothing to bench it against. 19:37:14 and MUCH easier to work with 19:37:48 Forth being easier to code in than C is another argument, and I agree. 19:38:05 well i dont code ncurses or i would write that example using it 19:38:37 But benching comparisons need to be apples->apples, and you do it with trivial examples that show how long it takes to call, recurse, loop, etc. 19:38:56 'fib' pretty measures the overhead of direct threading 19:38:59 pretty much* 19:39:20 and the overhead is indeed about 10x over native code 19:42:01 Even non-optimized subroutine threading would give you a boost, and you'd still have your 1:1 correspondence. 19:42:21 Add inlining to it and you get some significant speed. 19:42:27 nonononono 19:42:36 specially not "behind yoru back" inlinling 19:42:39 Yesyesyesyesyes. Nothing I said there is false. 19:43:05 thats why in ans forth you cannot guarantee knowing exactly whats at the top of the return stack at ANY time other than after you put it there yourself 19:43:14 This has nothing to do with ANS Forth. 19:43:19 why would you do anything with the return stack? 19:43:21 not knowing whats on the return stack is teh same as not knowing whats on the parameter stack 19:43:29 no its not 19:43:39 : asm> r> last-op @ >r last-op ! blah blah blah ; 19:43:47 what the hell does that do? 19:43:54 put that in every opcode word and you now have an assembler that looks right 19:43:58 mov eax, # 1 19:44:02 mov ebx, # 2 19:44:03 there's other ways to implement that 19:44:10 when mov in eax runs it does nothing 19:44:20 then eax, runs, # runs and 1 is put on the stack 19:44:36 when the secong MOV runs it actually executes teh first one. 19:44:46 actually this is a bad example let me start over 19:44:48 mov eax, # 1 19:44:50 push eax 19:44:56 when mov runs nothing happens 19:44:57 --- join: OrngeTide (~orange@rm-f.net) joined #forth 19:45:04 forth parses everything else on that line 19:45:13 re I440r 19:45:14 when push in executed it doesnt execute. MOV does 19:45:18 So you think inlining is evil because it prevents you from using a certain \coding trick to implement a prefix assembler? 19:45:30 and by then all the operands are ready for you to construct your opcode 19:45:33 And I'm not even sure it prevents it. 19:45:42 quartus no this is just ONE example 19:45:56 Ok, put inlining aside for a moment. What's wrong with subroutine threading? 19:45:56 isforth has a way to inline colon definitions 19:46:00 but YOU have to do it 19:46:06 its not forth 19:46:09 what wants to call a bunch of subroutines? 19:46:34 It is Forth. Note my assertion is as valid as yours. 19:46:34 also threaded forths are more space efficient 19:46:49 ya. they are both opinions 19:46:51 memory is cheap 19:46:54 I'm asking you to support yours. 19:46:57 slava no its not 19:47:04 not in an embedded application 19:47:09 threaded forths are performance efficient on certain architectures too. 19:47:16 If it's space you're worried about, you'd go to a tokenized model. 19:47:26 i'm only interested in desktop/server stuff 19:47:33 and that arguement is why i now need 660 gigs of drive space, a 3.8 ghz cpu and 2 gigs of memory 19:47:38 people use java for server apps. go figure. 19:47:38 ill NEVER agree with that 19:47:39 ever 19:47:54 quartus and thats way slower 19:47:56 java is fast for server apps 19:48:07 I440r, you already said speed doesn't matter. 19:48:14 it does to a degree 19:48:18 i think memory is cheaper than your time. but sometimes your time is not as valuable as the collective time and memory of all your users. 19:48:22 but not at teh expense of readability 19:48:27 I440r, but my argument is that you DON'T need the 3 ghz cpu 19:48:29 I'm not haranguing you, I'm trying to pin down what backs up your assertions. 19:48:36 I440r, because the compiler can optimize your code and make it run faster 19:48:44 quartus maybe its just prejudice 19:48:49 but so be it 19:48:57 slava no thankyou 19:49:13 slava, it's acceptable for server apps. but it's not fast. (I maintain the core linux platform at cisco that they build thier java-based appliance/servers on) 19:49:51 Subroutine threading with inlining is easily competitive with direct threading in terms of memory usage. 19:49:58 OrngeTide, and what is faster? 19:50:07 forth 19:50:11 I440r - Quartus Forth's divergences from your One True Forth ideal let it run much more leanly than its competitors on a platform that demands leanness in any case. 19:50:20 slava, well C. but it's theoretically more difficult to maintain. 19:50:31 OrngeTide, C is only marginally faster, and its harder to maintain 19:50:32 I440r, most forths produce lousy cache and branch optimizations 19:50:40 OrngeTide, and i'm not a big fan of java 19:50:54 OrngeTide and i dont think thats a significant hit 19:50:55 slava, C doesn't trash my memory like a JVM does 19:50:55 at all 19:51:00 s/trash/thrash 19:51:11 I'm constantly doing vm tweaks to the kernel to deal with the startup of JVMs 19:51:20 it's kind of a headache 19:51:31 OrngeTide, firefox leaks huge amounts of memory because the idiot programmers didn't want to implement a proper garbage collector... 19:51:32 I440r, it's about a 50% hit 19:52:06 slava, yea and linux kernel hardly leaks any memory even though all they have is slabs. no GC either 19:52:39 I440r, but 50% of 2Ghz is still 1Ghz... 19:52:41 OrngeTide, kernel hacking is very hard though 19:53:17 we like to tell everyone that. but there isn't much to it other than being thorough with code reviews and unit testing 19:53:32 which you should be doing with your java or c++ or whatever code too:) 19:53:49 i don't code java or c++ 19:53:57 and i do a lot of code review and unit testing 19:54:03 me either. but a lot of crappy programs are written in those 19:54:05 but i don't like manual memory management 19:54:18 there's crappy programs in most languages 19:54:21 except ones that nobody uses, like forth :) 19:54:34 i think manual memory management is a chore. but not a hard one if you have good habbits. 19:54:48 I just learned obj-c and I'm kind of pissed that it doesn't have GC. it just has reference counting. kinda bogus. 19:54:55 its not something i want to do 19:55:04 refcounting is really lame... its one reason python sucks 19:55:14 it's super lame. 19:55:48 it's so easy to create islands and end up leaking huge datastructures all at once. 19:55:58 its also much slower than a good gc 19:56:21 yea. it's an operation every reference. which doesn't scale 19:57:27 C++ programmers like giving bogus reasons for preferring refcounting 19:57:29 people take short cuts with RC to sort of "loan" a reference. which effectively makes RC just as complicated as manual memory allocation 19:58:42 computers are pretty good at mundane book keeping tasks. there are even real-time systems that use GCs. there are many different kinds of GCs and it's not hard to find an algorithm suitable for your system. 19:59:04 a simple generational GC suits me fine 19:59:14 right now i'm using copying, but later i'm switching to mark/sweep/compact 19:59:20 for apps and servers. a generational copying collector works nice 19:59:35 for real-time none of those work well. 19:59:39 yup 19:59:47 well actually a variation on mark-sweep works well for real-time. 20:00:18 where you can mark for a short amount of time, in a low priority thread. 20:00:46 copying is usually out since you often don't have an MMU so doubling your address space is a pretty significant cost 20:01:04 i used copying because then cons cells don't need a header, and so are 8 bytes 20:01:09 but i'm phasing cons cells out 20:01:21 what language is this? 20:01:47 factor 20:01:54 ah. cool 20:01:59 http://factor.sf.net 20:02:42 yea. i'm familiar with it. 20:02:47 i forgot it's your baby:) 20:03:18 when did it get an x86 and ppc compiler? 20:03:58 x86 has been there for about a year, although it started off as pretty trivial STC 20:04:01 ppc is a few months old 20:04:07 that's really great. 20:04:16 i'll try it out on my mac. 20:07:34 nice handbook! latex? 20:07:38 yup 20:08:44 i've been thinking a forth vocabulary to do the same thing as latex would not be hard... :) 20:08:54 i'm going to have online help later 20:09:16 does it have gui bindings? 20:09:24 i'm working on a gui toolkit 20:10:30 i'd probably just go with native bindings for win32, x11(gtk? motif?), and carbon. then build a generic system ontop of that. 20:10:46 i'm using sdl right now, but its temporary 20:11:13 how do you interface the C ? 20:11:20 i'd like to replace it with something that lets me open an opengl window, and gives input events, clipboard access, and most importantly, *multiple top level windows*. SDL doesn't do that 20:11:25 there is a C library interface 20:11:39 i have some crap laying around to initialize glx, agl and wgl without using sdl. it's just 3 short little C files. 20:11:50 we already have an opengl binding, see for example http://cvs.sourceforge.net/viewcvs.py/factor/Factor/Factor/contrib/gl/gl.factor?rev=1.5&view=auto 20:12:13 yea. i noticed the opengl binding. i was assuming if you used sdl you also used it to init the opengl contexts on the various systems 20:12:20 yup 20:13:35 so are you pretty happy with factor? I think I'll dig into it. it sounds like it fixes things I was unhappy about with scheme and forth. 20:13:53 well, its still very young and i have a lot to change/implement 20:14:28 so i won't make grandoise claims. but overall i'm happy and i expect to do all future coding in factor (including contract work) when it matures, maybe in a year or two 20:14:28 how's the stability? 20:14:32 the stability is fine 20:14:38 and what sort of debug support exists? 20:14:55 single-stepping, tracing, inspecting objects 20:16:06 oh that's pretty nice 20:16:28 any sort of core dump type stuff? 20:16:47 no, you debug inside the environment. its like squeak, except there's no integrated editor (yet!) 20:17:21 i prefer debugging inside the environment, that's how forth works best too. but sometimes a post-mortem is nice. 20:17:45 well i'll rtfm and give it a whirl at least:) 20:17:52 you can save and load images (again, like squeak) 20:18:04 and there is also a 'low level debugger' that can run if the runtime falls over badly 20:18:05 or like turnkey in forth? :) 20:18:26 there's no support for making turnkey images. i mean, you can customize an image with whatever you want in it, but i have to make a nice interface/set of words for that 20:18:56 is it even that useful of a feature? 20:19:30 --- join: samc_ (~sam@203-114-131-250.inspire.net.nz) joined #forth 20:19:52 OrngeTide, yes, to deliver applications to end-users 20:22:12 * ayrnieu rediscovers http://quartus.net/cgi-bin/twiki/view/Main/EnthPCSpeakerWords 20:22:24 man, I'm still proud of that. :-/ 20:26:29 slava, or add your own customer editor:) 20:26:45 what do you mean? 20:27:06 turnkey lets you add something like an editor to a forth and save it 20:27:27 ayrnieu, hey! that's neat 20:29:41 --- quit: samc_ (kornbluth.freenode.net irc.freenode.net) 20:29:41 --- quit: Quartus (kornbluth.freenode.net irc.freenode.net) 20:30:10 * ayrnieu is also #1 and #2 on reddit.com , right now. 20:30:27 --- join: samc (~sam@203-114-131-250.inspire.net.nz) joined #forth 20:30:54 i'm not familiar with that 20:31:39 h 20:34:08 --- join: Quartus (~trailer@ansuz.pair.com) joined #forth 20:36:33 --- quit: saon ("leaving") 20:36:40 --- join: saon (1000@c-66-177-224-235.hsd1.fl.comcast.net) joined #forth 20:53:41 lovely 20:53:46 oops 21:12:23 --- join: moreCowbell (~moreCowbe@ca-lapuente-cuda2-c1c-186.arcdca.adelphia.net) joined #forth 21:17:58 --- quit: moreCowbell ("That wasn't supposed to happen") 21:23:05 --- quit: madgarden (kornbluth.freenode.net irc.freenode.net) 21:23:05 --- quit: warpzero (kornbluth.freenode.net irc.freenode.net) 21:23:05 --- quit: cmeme (kornbluth.freenode.net irc.freenode.net) 21:23:06 --- quit: ccfg (kornbluth.freenode.net irc.freenode.net) 21:24:24 --- join: madgarden (~madgarden@London-HSE-ppp3546403.sympatico.ca) joined #forth 21:24:24 --- join: warpzero (~warpzero@wza.us) joined #forth 21:24:24 --- join: cmeme (~cmeme@216.184.11.2) joined #forth 21:24:24 --- join: ccfg (ccfg@dsl-roigw3de0.dial.inet.fi) joined #forth 21:25:15 --- join: warpzero_ (~warpzero@wza.us) joined #forth 21:28:28 --- quit: ccfg (kornbluth.freenode.net irc.freenode.net) 21:28:28 --- quit: cmeme (kornbluth.freenode.net irc.freenode.net) 21:28:28 --- quit: madgarden (kornbluth.freenode.net irc.freenode.net) 21:28:28 --- quit: warpzero (kornbluth.freenode.net irc.freenode.net) 21:29:44 --- join: cmeme (~cmeme@216.184.11.2) joined #forth 21:29:44 --- join: madgarden (~madgarden@London-HSE-ppp3546403.sympatico.ca) joined #forth 21:29:44 --- join: ccfg (ccfg@dsl-roigw3de0.dial.inet.fi) joined #forth 21:31:19 --- quit: samc (Read error: 104 (Connection reset by peer)) 21:32:10 --- quit: madgarden (Read error: 104 (Connection reset by peer)) 21:53:54 --- join: samc (~sam@203-114-131-200.inspire.net.nz) joined #forth 22:02:38 --- quit: swalters ("User disconnected") 22:02:53 --- join: swalters (~swalters@2416457hfc118.tampabay.res.rr.com) joined #forth 22:25:30 --- quit: samc () 22:26:40 --- quit: cmeme (Remote closed the connection) 22:27:30 --- join: cmeme (~cmeme@216.184.11.2) joined #forth 22:27:49 --- quit: cmeme (Remote closed the connection) 22:28:35 --- join: cmeme (~cmeme@216.184.11.2) joined #forth 22:36:08 --- quit: virl (Remote closed the connection) 23:00:58 --- join: true-grue (~true-grue@office.medlux.ru) joined #forth 23:15:58 --- quit: sproingie ("Konversation terminated!") 23:19:43 --- join: ramkrsna_ (~ramkrsna@61.2.69.212) joined #forth 23:36:49 --- join: moreCowbell (~moreCowbe@ca-lapuente-cuda2-c1c-186.arcdca.adelphia.net) joined #forth 23:42:26 slava, what sort of apps have people been writing with factor? 23:46:20 hi all :) 23:59:59 --- log: ended forth/05.08.04