00:00:00 --- log: started forth/02.11.14 00:34:58 --- join: bwb (~bwb@ip68-4-124-131.oc.oc.cox.net) joined #forth 00:35:59 hey 00:48:25 --- quit: Serg_penguin (Killed (NickServ (Nickname Enforcement))) 00:48:26 --- join: Serg_p (~Z@nat-ch1.nat.comex.ru) joined #forth 00:48:34 hi 00:53:19 hey 00:53:21 sup? 00:54:02 hi, work hard now, ask if something hot 01:06:46 --- join: proteusguy (~proteusgu@65.191.88.177) joined #forth 01:23:09 hi 01:25:19 --- quit: Serg_p (Read error: 110 (Connection timed out)) 01:25:24 --- quit: bwb ("later") 01:32:29 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 01:43:32 z 02:09:55 z 02:26:26 --- quit: pyromania (Read error: 110 (Connection timed out)) 02:35:45 --- part: Serg_Penguin left #forth 02:36:25 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 02:44:59 --- quit: thin (Read error: 110 (Connection timed out)) 02:56:10 --- quit: lament ("Client Exiting") 03:19:13 --- quit: Soap` (Read error: 104 (Connection reset by peer)) 03:58:04 --- part: Serg_Penguin left #forth 03:58:07 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 03:58:35 --- quit: Serg_Penguin () 04:06:33 --- join: pyromania (~pyromania@dialup-192.128.221.203.acc02-high-pen.comindico.com.au) joined #forth 05:13:44 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 05:13:53 hi 05:35:17 --- quit: Serg_Penguin () 05:39:43 --- join: fridge (meldrum@zipperii.zip.com.au) joined #forth 05:47:03 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 05:54:31 --- quit: Serg_Penguin (Read error: 104 (Connection reset by peer)) 06:09:12 --- join: Herkamire (~jason@wsip68-15-54-54.ri.ri.cox.net) joined #forth 06:28:23 are there any large freeware applications written in forth? 06:37:54 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 06:48:56 --- join: tathi (~josh@wsip68-15-54-54.ri.ri.cox.net) joined #forth 06:49:46 fridge: I don't, but I haven't looked. There are a bunch of free software forth compilers 06:50:08 hi 06:53:53 hd surg 06:54:05 s/u/e 06:54:41 can I go back to bed? 06:54:52 I'm just looking for large real world apps like text editors, mail clients, games? etc 06:55:10 or if its usually for things like embedded application 06:55:46 I don't know. 06:55:51 there are some operating systems 06:57:58 hopefully someone who knows about this will wake up. I really haven't been very interested in other people's forth code. (except maybe Jeff Fox and Chuck Moore's) 06:59:04 http://www.lightsoft.co.uk/zex/index.html (space game with a forth engine, been under development for a while, by the guys that made the Fantasm assembler for 68K/PPC) 06:59:27 unfortunately it looks like they took most of the docs about the forth stuff off the site... 06:59:50 wow! 07:00:04 wasn't expecting 3d games 07:00:12 more like a scroller oldschool 07:00:42 IIRC, they started writing it 100% in C, but it was too slow and inflexible, so they added a forth engine and now have a large chunk of the code in forth :) 07:02:24 a guy on comp.lang.forth a while back had a news client that he was using 07:03:01 he hadn't released it -- said it wasn't quite ready for public consumption, but good enough for him to use 07:06:24 * Serg_Penguin can make news client out of perl and netcat 07:06:39 at least primitive one 07:07:06 didnt do news but messed w/ pop3/smtp 07:07:43 perl makes me sad 07:09:30 2 much fat, i agree 07:09:44 and obfuscate syntax 07:23:18 z 07:28:20 --- quit: Serg_Penguin () 07:38:02 --- join: onetom_ (~tom@novtan.bio.u-szeged.hu) joined #forth 07:38:15 --- quit: onetom (Read error: 60 (Operation timed out)) 07:38:35 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 07:40:24 --- join: neobrat (~neobrat@h-64-105-21-62.DNVTCO56.covad.net) joined #forth 07:54:58 --- join: I440r (~mark4@sdn-ap-002tnnashP0455.dialsprint.net) joined #forth 07:55:52 hey I440r, i gotta som tiger-size bugs 4u :) 07:55:53 Did you want me anything earlier? 07:56:20 yea ? 07:56:25 --- quit: Serg_Penguin () 07:56:31 argh he left! 07:56:35 You messaged me yesterday... 07:56:35 heh 07:56:35 Hehe 07:56:37 yea 07:57:06 http://robert.zizi.org/ <-- is that YOUR page ??? :) 07:57:14 Yeah. 07:57:20 Hosted on an old pentium in the basement :P 07:57:28 well --- your hired :P 07:57:36 can you do me an isforth web page ? 07:57:42 For? Writing boring manuals for IsForth for no payment? 07:57:46 Haha, almost :P 07:57:56 Well... Thing is, I stole that page :) 07:58:01 www.oswd.org 07:58:18 I need to work on my own page... 07:58:41 Link section needs to be updated, and half of the projects on the page died when I was like 13 08:11:01 dang :P 08:26:53 --- join: XeF4 (xef4@lowfidelity.org) joined #forth 08:36:19 there is a TheFox and a thin on ircnet right now and BOTH are imposters heh 08:39:31 "imposters"? 08:40:57 excellent, does that mean we get a break from the real ones? 08:42:12 * Robert hears a Fox-and-futhin critical voice. 08:42:36 lol 08:48:44 --- quit: pyromania (Read error: 110 (Connection timed out)) 08:50:19 has anyone got "Starting Forth" ? 08:50:28 I looked on amazon, its out of print =( 08:52:23 I haven't got it. 08:58:49 hey guys 08:59:20 check libraries 08:59:28 it's a fun book 08:59:40 it would be nice if someone put that book entirely online 08:59:48 like "Stack Computers" -- loved that one 09:11:46 amazson sells out of print books 09:12:15 I think thin may have asked the author about putting it online... 09:12:49 leo brodie 09:13:20 thanks, I couldn't remember his name for some reason 10:04:30 hi I440r 10:04:51 hi :) 10:05:56 i440r, do you have any docs for isforth yet?:) 10:06:18 well, not REALY, im working on a help system slowly 10:06:29 short descriptions of each word in the kernel 10:06:48 ive done them for compile.1, exec.1 and part of io.1 10:06:49 oh. okay. 10:07:12 ill be doing the same for the extensions PLUS in depth descriptions of all the major functions in the extensions 10:07:33 meanwhile ya got the source and you know where i hide :) 10:07:44 is isforth in line mode or character at a time mode by default? i'm trying to figure that out. ehehe. 10:08:02 hrm.. i think character at a time. 10:08:11 * OrngeTide is dumb. he just ran 'key' and figured it out. 10:08:12 character at a time 10:08:28 i was trying to read the src instead of just doing it the easy way. DOH! 10:08:31 heh 10:08:48 i found a tetris written in forth. i was just going to tweak it to run under isforth 10:09:13 if you look in isforth.f you will see the first FORTH thing it calls is a word called defauklt 10:09:15 erm 10:09:16 defauklt 10:09:18 alirseutgwileytruioq 10:09:21 d e f a u l t 10:09:27 (mental not to learn to type) 10:09:37 hehee. 10:09:54 this is a defered word that points to a headerless colon def called init 10:09:57 init calls initterm 10:10:07 http://www.orangetide.com/forth/tt.pfe <-- that's the original src. 10:10:19 I440r, gotcha! 10:10:28 ALOT of initialization words defer into default 10:10:39 : some-init defers default do lotsa shit here ; 10:10:47 you know how "defers" works ? 10:12:15 defers is an immediate. it fetches the body of the specified defered word and compiles that address into itself. it then stores the cfa of the word invoking it into the defered word 10:12:24 : x defers y blah blah ; 10:12:30 y is a defered word pointing to foobar 10:12:42 "defers" compiles the address of foobar into the definition for x 10:12:49 and then points the defered word at x 10:13:09 so when the defered word runs it runs x and X runs the word previously pointed to by y 10:13:11 oh. okay 10:13:12 get it ? 10:13:25 default is the defered initialization chain 10:13:33 atexit is the defered deinitialization chain 10:13:34 so your building kind of a linked list. but with code? 10:13:39 BYE calls atexit 10:13:42 yes 10:13:52 that's cool:) 10:14:09 i didnt invent it hehe 10:14:38 so i wouldn't need to define an entry point. i'd just make a function that had defers default in it. default is like the entry point but defers makes sure it enters all the routines i want. 10:14:48 yah. i just never had it explained very clearly. 10:15:18 you understand defered words right? 10:15:21 yes. 10:15:28 ok. 10:15:34 defer x 10:15:37 ' blah is x 10:15:45 when you run x you run blah 10:15:50 right. 10:15:54 : foo defered x ...... ; 10:15:56 hey, I finally get your defers thing :) 10:15:59 the definition for FOO will be 10:16:07 : foo blah ..... ; 10:16:11 and x will point at foo 10:16:21 --- quit: proteusguy (Remote closed the connection) 10:16:24 you can also do 10:16:37 ": foo ...... defers x ; 10:16:38 asm{ move.i d0 d0 }asm \ do you think that's okay? 10:16:48 this will put foo at the HEAD of the defered chain 10:16:54 ,d0 ,d0 ,move.i \ or is this better? 10:17:06 * OrngeTide hrms 10:17:07 erm bas ackwards asm sux heh 10:17:13 isnt that an effective NOP ? 10:17:19 yah. i know you don't like backwards x86 asm. how about backwards m68k ? :P 10:17:30 i440r, yes. that's just an example. 10:17:35 no. i dont like backwards ANY assembler 10:17:51 okay. how about the first way. is the asm{ thing okay? or is that too C-like? 10:18:20 erm i see alot of people using { } chars in forth and it always makes me cringe heh 10:18:29 they use them for local variables etc. 10:18:42 for local variables? 10:18:47 thers no reason why other than YES the brace is a C thing :) 10:18:54 yes locals { x y z } 10:19:03 oh. that's kinda freaky:P 10:19:04 ive seen stuff like that before 10:19:07 i dont like locals 10:19:20 locals are not forth. dont tell marcel hendrix i said that tho hehe 10:19:30 i prefer to keep stuff on the stack than to come up with names for little local temp variables. 10:20:10 that's one thing i don't like in C. i have to name everything. bah 10:20:41 thats one of the reason forth is so much better. chuck even went as far as to do sourceless programming 10:20:45 functions are easy to name. because they actually do something. a variable isn't always easy to name because it doesn't do anything, it just is something. 10:20:57 simply because he felt that NAMING stuff is what causes all the problems in other languages 10:21:24 its like a register. just name your variables x1 x2 x3 x4 x5...... hehe 10:21:29 I440r: I understand how your deffer thing works, but I don't see the usefullness of it 10:21:42 ok 10:21:48 i create a defered init chain 10:21:56 I440r: for init why don't you just do: : default word quit find if execute then bye ; 10:21:59 later i extend and add terminal stuff (term.f) 10:22:02 i440r, most of my variables are named i,j,k and x,y,z,t depending on what i'm doing. 10:22:15 theres stuff that my term code needs to know at BOOT time (forth boot time) 10:22:16 like the size of the terminal 10:22:31 so. i defer it into init to run a word that gets the current terminal size 10:22:37 it just needs to know that before you use the terminal 10:22:45 * OrngeTide wonders about SIGWINCH in isforth:) 10:22:48 forth needs to know the 'cols' etc 10:23:01 sigwinch ? 10:23:16 i440r, yes. it's a signal you get when the terminal changes size:) 10:23:25 : quit term_init ..._init main ; 10:23:57 in telnet, ssh and xterm the terminal resize event is passed along OOB to the terminal driver. which then SIGWINCH's the applications. 10:24:07 s/terminal/pseudo-terminal 10:24:29 its a signal 10:24:32 right. 10:24:42 isforth doesnt trap signals yet 10:24:45 it will need to 10:25:03 for JUST this reason heh 10:25:11 now i know what your talking about lol 10:25:34 if you change teh size of the terminal (make it bigger) do a (?term) 10:25:38 that will fix things :) 10:26:27 yah. you'll want to to SIGPIPE,SIGINT,SIGCONT,SIGSTOP and SIGQUIT bare minimum i think. 10:26:30 that tetris looks cool - but it can be done far better in isforth 10:26:36 I440r: ok, I see. you need defer because of your turnkey thing 10:26:46 it can be done with COLOR in isforth :) 10:26:53 I440r, i don't like colors:P 10:27:06 lol 10:27:16 OrngeTide: what forth does the tetris work in now? 10:27:23 two of my computers don't have color displays. 10:27:32 Herkamire: PFE .. it's a DOS forth. 10:27:48 I440r, maybe i should just do it from scratch then? 10:27:49 oh well :) 10:27:50 pfe works all over the place even linux\ 10:27:57 but its not a real forth :) 10:28:02 isn't it done in C? 10:28:07 --- join: pyromania (~pyromania@dialup-22.128.221.203.acc02-high-pen.comindico.com.au) joined #forth 10:28:07 I440r: you're not a real forth 10:28:08 OrngeTide sure - would be interesting :) 10:28:09 yes. 10:28:14 thats what makes it not real :) 10:28:20 i know - but im working on it :) 10:28:33 yah. the more i look at isforth the more i realize how much more work my C forths were. 10:29:15 im not a big fan of c forths, but bigforth and gforth are actually quite good 10:29:17 my friend freaked out when i told him i'll probably just do my server software in pure compiled forth instead of doing it in C and then having a crappy forth interpreter front-end. 10:29:24 im sure pfe is awesome but ive never looked at it 10:29:36 i dont want to diss its creator, he is well respectd from what ive seen 10:29:37 (actually my forth wasn't so crappy. it was a virtual machine for a machineForth-like cpu) 10:30:15 i wrote the VM in C. and all the forth was done in machine code and forth. it doesn't really do anything except parse input right now. (routines written in the VM) 10:30:43 although if i do my whole server in forth there would still be advantages to using the VM for parts of it. 10:31:05 i gotta go sort out paying a bill, ill brb 10:31:44 I440r: i didn't like gforth that much. although i used some ideas from it to write my own direct-threaded forth in C. (because GNU C lets you get addresses of labels) 10:32:11 i didn't finish my forth. it could only do basic operations and stuff. 10:32:35 well more than + and - .. like parse itself and do : definitions. 10:34:48 OrngeTide: you writing a web server? what will it do? 10:36:08 Herkamire: it's a graphical role playing game server. :P 10:36:36 OrngeTide: oh, yeah :) 10:36:43 it's object oriented, but with my own OO system. it's somewhat similar to Smalltalk OO. 10:36:59 it's really just a glorified MUD. but i don't like calling it a MUD. 10:37:09 cool 10:37:15 I've done a little programming in Squeak 10:37:32 i never used squeak or smalltalk or anything like htat. 10:38:43 my goal is to charge a small fee for access to my system. people groan about charging for anything in the internet. but on the otherhand people forget that i pay $200/mo for colo. 10:40:05 what do you think of taking donations instead of charging? 10:40:20 that won't pay my bills 10:40:55 i run a shell server using donations. i still fork out about $100/mo from my own pocket. 10:40:58 it does for dyndns.org 10:41:05 that's totally different. 10:41:18 lower bandwidth etc? 10:41:23 exactly. 10:41:38 how much bandwidth do you get for $200/mo? 10:41:39 i actually pay per bit. 10:42:14 I can do 30Gbytes/month. 10:42:38 about. they give it to me in different numbers but that's what it works out to 10:42:38 ahh, ok 10:42:58 i actually get a good deal. most people can only do about 8GB/mo for that price. 10:43:21 yeah, my place says Kbps and bills "at the 90th percentile" :) it's a hord to say the GB/month 10:49:15 back 10:49:48 OrngeTide i rana shell server FREE for anyone - but i had dsl then (i miss my dsl!) 10:49:48 we pay $61.25/month for 128Kbps at the 95th percentile 10:50:12 i had unlimited thruput heh and a static ip 10:50:16 and 384/384 10:51:21 cool CSCO is gaining back a little bit of what it lost. its above where i baught it atain 10:51:22 well my shell server is at a massive colo with 100Mbps burstable. :P 10:51:23 again 10:51:37 OrngeTide how many peope you have with accounts? 10:52:00 like 50+ 10:52:31 i need to reinstall my box. between having 4 people with root we really messed it up so some things are broken on it. 10:52:38 i had about 30 or 40 ppl over different times 10:52:55 i got rooted once and lost (but later recovered) 10 years of assembler source library 10:53:07 you should have ONE root 10:53:19 i usually have 45-50 clients logged in at a time. 10:53:23 i440r, why? 10:53:31 i don't want to maintain this by myself. too busy. 10:53:50 still. ONE root and many admin 10:53:52 so i have some trusted friends. but the problem was we don't all install stuff the same way so we had shit in /usr/local/lib and /usr/lib 10:54:04 i440r, well yes. one root account. but each admin could sudo into it 10:54:12 install debian and let APT and DPKG take care of where shit goes 10:54:17 debian sucks. 10:54:20 debian has the only SANE directory tree anyway 10:54:33 and it wouldn't work for my server because we run stuff that isn't available through debian. 10:54:44 debian is the only canned distro worth using 10:54:51 gentoo is far better. 10:54:51 aha 10:54:58 i love gentoo. it's the best. slackware is 2nd best. 10:55:07 but it's a distant second. 10:55:33 distro wars!!!!!!!!!!!!!!!1 heh 10:55:36 i'd install freebsd before i would install debian again. i used to be a complete debian fan. but the politics surrounding that distro are annoying. 10:55:48 i had a big massive war with them trying to get some important packages in there. 10:55:58 you know your channel has made it wheh 98% of the people in it just idle and the other 2% argue distros :) 10:56:15 ehehhe. 10:57:16 hmm...I440r...if you ever port isforth to other platforms you may have to change bits of your forth code... 10:57:16 --- join: Forth (~Forth@sdn-ap-002tnnashP0455.dialsprint.net) joined #forth 10:57:25 i started working on the decompiler in isforth again 10:57:34 tathi which bits 10:57:41 i assumed that would be the case heh 10:57:45 alpha, mips, ppc, sh, and sparc define the get-win-size ioctl # as something other than 0x5413 10:57:54 if it's only bits that's fine. as long as it's not bytes or kilobytes of changes. 10:58:14 I thought that would be consistent within linux... 10:58:20 thats ok because every single one of those will have TOTALLY different soruces 10:58:29 ah 10:58:37 im not interleaving 284975624937865 different versions of isforth into the same fscking source files :) 10:58:53 remember. isforth does not support and will NEVER support conditional compilation 10:58:58 i440r, i would. except i'd break it up into 3 levels. 10:59:04 unless a user adds it. and it will only then work for HIS code :) 10:59:24 and only combine the highest levels. and the two low-levels would be mostly indepedent. 11:00:08 i440r, you could just have it target all architectures simotanously. ehhehehe 11:00:19 woohoo 63% of this ISO im downloading :) 11:00:22 at less than 56k :P 11:03:18 hrm. i can download warez from this website for a $15/mo subscription. it's a archive of a bunch of alt.binaries groups. they have a BUNCH of anime divxs there. i wonder how you can run a company that sells stolen material? :P 11:04:15 * OrngeTide installs a news reader... :P 11:05:03 your not selling it, your selling your services and DISTROBUTING teh stolen shit :) 11:05:15 distributing it is illegal in most countries too:P 11:05:26 "I'm not selling crack, i'm mearly distributing it" :P 11:05:31 i know :) 11:05:54 my morals are strong enough to stop me from stealing anime that i can't normally buy. 11:06:18 s/are/are not 11:06:28 i wish i wouldn't invert the meaning of my sentences like that. 11:07:56 lol 11:10:54 * OrngeTide installs SLRN. 11:11:01 i swear S-Lang is so weird. 11:13:38 they prolly say the same of forth :) 11:14:41 have you seen S-Lang? 11:14:48 it's a C-like scripting langauge. except with a stack. 11:15:06 foo() .. put's a reference to the function foo on the stack. () pops an item off the stack and evalutes it 11:15:25 and foo (abc)? 11:15:41 yes. it would evaluate it and pass some parameters. 11:15:44 can you do foo bar () () ? 11:15:47 yes 11:16:06 foo ( bar) () ?? :) 11:16:07 bar() () is legal if bar leaves a function on the stack for you to call 11:16:10 sounds a bit like that weird VM named after some island 11:16:24 and it's actually popular for some things. 11:16:25 cool:) 11:17:04 but it looks just like C and has all the { } stuff going on. i like it way better than Tcl but it is pretty weird. 11:17:25 the guy is kinda crazy and includes the interpreter and a ncurses clone in his library. 11:17:36 because he didn't like curses, so he wrote his own. 11:17:54 it does pretty much the same thing. i've ported curses apps to slang before. not hard. 11:18:02 i like him 11:18:05 ehhee. 11:18:10 how much smaller is HIS curses ? 11:18:28 that's a good point. i'm not sure. i would assume a lot smaller. 11:18:55 slang does everything byte-compiled too. you can even precompile stuff and have "binary" scripts. 11:19:04 so is MINE :) 11:19:06 it's been around for about 10 years now. 11:19:21 i440r, yours is machine code compiler :P 11:19:25 s/compiler/compiled 11:19:50 my curses stuff is forth. not machine code :) 11:22:57 well it compiles it all to machine code. :P 11:23:09 so it's not a byte-interpreter. 11:24:15 no it doesnt, it compiles it to XT's 11:24:42 i.e. lists of pointers to machine code 11:24:51 oh. that's true. 11:25:09 i guess it is just an interpreter then. 11:25:22 it wouldn't be a major step for you to make it compile though. :) 11:25:33 it's just harder to debug a compiler 11:25:54 no. its a compiler 11:26:12 it compiles FORTH. in the traditional sense 11:26:59 are you guys both talking about slang? 11:29:38 we were :) 11:38:11 --- quit: neobrat () 11:39:22 i440r, that's true. 11:46:51 whats true ? 11:49:22 that it's ac opmiler 11:50:44 I440r: I'm reading through isforth sources, and in the header macro, are %%link and %%name just local labels, or does the %% have some extra meaning for nasm? 11:52:14 heh i forget, and i think those are a tcn modification to the file - i just didnt change it 11:52:21 you coluld rtfm it :) 11:53:02 OK 11:53:06 figured I'd ask first 11:53:16 hehe ya 11:53:37 would you happen to have a URL for nasm docs? :) 11:54:03 erm nasm.sf.net ? 11:54:16 im sure they would have them online there - if not you could complain :) 11:55:02 ok...I just remembered last time I went looking, the "official" site was way out of date and it took me a while to find the site where actual development was going on :) 11:55:24 yea sf.net is now the official site isnt it ? 11:56:09 says so 11:56:23 still only appears to have up through version 0.98.35 though 11:57:10 oh. 11:57:23 heh. I already have nasm docs on this computer 11:59:07 grr...I really wish sf.net wouldn't have links labeled blah-version.tar.bz2 that go to an HTML page... 12:01:38 hehe 12:18:49 tathi: nshit. 12:18:52 I *hate* that 12:21:10 yup. you just tell your browser to save it, then go and untar it and get "not a bzip file" 12:21:39 so then you go download it again to make sure it wasn't just some dumb network problem. same thing happens 12:22:08 finally, you realize it's too quick to be an 800KB download and go get the actual tarball :) 12:40:40 heh 12:40:55 tathi: that shits me, too 12:41:50 they should do some auto-closest mirrory detection, or provide all the links of the mirrored files on the initial page 12:46:43 --- join: gilbertbsd (~gilbertbs@67.97.122.14) joined #forth 12:50:35 Herk: does the PPC have instructions to quickly replace 8/16 bits of a register? 12:50:47 or indexing using only the low 8/16 bits of an index register? 12:50:59 or better yet, high 8/16 bits 12:53:35 16 yes 12:53:42 all immediates on PPC are 16 bits 12:54:09 but register-to-register? 12:54:34 no, why? 12:55:05 because I'm wondering how some wavelet playing code I'm writing on i586 will perform on PPC 12:55:16 well, simple to get any bit range you want from a register 12:55:43 with shifts and ands, or are there special ops for it? 12:56:02 there's instructions rlwinm and rlwnm 12:56:09 aah 12:56:19 Rotate Left Word by Immediate and AND with Mask 12:56:20 excellent 12:56:25 excellent 12:56:26 thanks 12:56:52 that's my favorite instruction :) 12:58:32 rlwinm dest_reg, src_reg, rotate, mask_hi_bit, mask_lo_bit 12:59:19 =P~~~~~~~~~~~~~~ 13:00:37 * XeF4 has a 2^n sintab and fixed 16.16 index 13:01:04 but I suppose fsin on ppc is 1 cycle so it doesn't matter =P 13:03:43 dunno about trig 13:04:06 but in general, the floating-point on my G4 seems to be faster than the integer math...weird 13:07:42 quick question: if I were to implement an OS in Forth could that be considered as a good school project? 13:09:51 _I'd_ be impressed :) 13:09:55 really? 13:10:39 gilbertbsd: I'd be damn impressed 13:11:17 its gonna take me a year starting from Oh, January 2003 :D 13:12:07 you just gotta make sure it runs on some computer you can show to your teacher(s) 13:13:09 have any of you guys used vms? 13:13:47 hmm...I'm not sure PPC _has_ trig instructions...they don't seem to be mentioned in the reference manual anyway... 13:14:08 does trig not need to be simulated? 13:16:05 ? 13:16:26 is the PPC supposed to have trig functions already? 13:16:45 I assumed it did... 13:17:38 I suppose it is sort of a RISC processor though 13:31:01 --- quit: fridge ("http://lice.codehack.com") 13:33:14 --- nick: onetom_ -> onetom 13:33:37 hi 1toM 13:34:10 hi 13:35:47 Hey gilbert 13:36:31 hi Robert 13:50:17 Nobody move. 13:50:25 * Robert doesn't move. 13:53:23 but you moved! 13:56:16 Liar. 13:56:54 heh. you say you didn't? 14:02:34 NO! YES! DIE! 14:07:50 can't we all just get along? 14:10:51 we can :) 14:19:53 anybody know how direct threading stacks up against subroutine threading on x86 (speed/space)? 14:29:40 bah, time to go home...anybody has any ideas, I'll be on later... 14:29:41 --- quit: tathi ("leaving") 14:31:57 --- quit: Herkamire ("leaving") 14:32:58 --- part: gilbertbsd left #forth 14:45:53 --- join: thin (~thin@h68-146-166-145.cg.shawcable.net) joined #forth 14:46:03 the king has been turned 14:46:07 the king codes forth now 14:46:13 zombie yea baby zombie 14:46:15 blahblahblah 14:46:23 * thin hides 14:46:25 --- nick: thin -> bugslayer 14:46:35 ph333333r! 14:46:38 --- quit: bugslayer (Client Quit) 14:46:54 Hrm. 14:55:38 --- join: tathi (~josh@ip68-9-58-207.ri.ri.cox.net) joined #forth 15:32:02 --- join: lament (~lament@h24-78-145-92.vc.shawcable.net) joined #forth 15:39:12 --- quit: pyromania (Read error: 110 (Connection timed out)) 15:45:02 --- quit: lament ("Client Exiting") 15:48:54 --- join: lament (~lament@h24-78-145-92.vc.shawcable.net) joined #forth 16:15:10 --- quit: Forth ("abort" Reality Strikes Again"") 17:23:54 --- join: fridge (meldrum@zipperii.zip.com.au) joined #forth 17:44:21 --- join: bugslayer (~thin@h68-146-166-145.cg.shawcable.net) joined #forth 17:45:08 --- nick: bugslayer -> thin 17:45:10 --- mode: ChanServ set +o thin 17:45:41 chanserv is weird 17:45:58 ops me automatically when i identify myself 17:46:33 didn't used to do that 17:46:33 heh 17:46:33 s/used/use 17:46:33 you can change that in the channel preferences 17:46:33 but yeah, this new behaviour sucks 17:46:49 well in my other channels, chanserv doesn't op me 17:47:00 somebody must've tampered with the settings in this chan 17:47:02 :P 17:49:11 bored bored bored bored 17:49:38 --- quit: thin ("late") 17:49:42 heh 18:13:48 --- join: Herkamire (~jason@68.9.59.184) joined #forth 18:36:14 --- join: neobrat (neobrat@67.2.78.83) joined #forth 18:36:17 hey all!! 18:36:37 I just finished up a wireframe 3D engine for my simForth (GBA) 18:36:52 * neobrat listens to the crickets. :) 18:37:57 !!! that sounds neat! 18:38:00 * OrngeTide cheers. 18:38:05 thanks ;) 18:38:06 GBA forth? hrmm. 18:38:21 i'd devel for GBA but it's such a pain to get the flash carts and stuff. 18:38:34 if anyone wants a sample screen shot of a dumb cube spinning, let me know :) 18:38:45 is it perspective correct? :P 18:38:51 yep 18:38:56 full vector and matrix mathematics 18:39:00 nice. 18:39:03 follows the ideas of OpenGL 18:39:14 toned down a bunch for speed tho 18:39:17 i usually take shortcuts and live with it not being totally perspecitive correct for speed. 18:39:29 but that was back when i had a 386 and DOS 18:39:40 hehe i know that feeling 18:40:20 I was particularly proud of myself for this: 18:40:35 whole engine contains 1 (count em... 1) divide 18:40:50 woot:) 18:41:04 :) 18:41:35 next im gonna try to add a polygon bsp tree and render full triangles 18:41:46 i've done it on the palm, but not in Forth 18:41:52 hrm. i'll look at a screen shot. i gotta install some kind of image view first though. 18:42:05 sure thing 18:42:19 i'm actually trying to put together a replacement OS on my Palm. 18:42:22 I can make an AVI of it in action, too 18:42:34 wow, that'd be impressive 18:42:42 if you get one, pass it along :) 18:43:05 PNG or BMP? 18:43:18 png :) 18:43:28 the OS will be totally Forth of course. 18:43:39 well, of course :) 18:44:15 my project was originally to put together a Z80 kit. but it's actually cheaper to pick up a low-end palm. and the m68k Dragonball is actually pretty neat. built-in DRAM controller, etc. 18:44:34 yeah, the dragonball is nice 18:44:51 There's a Forth compiler for Palm? 18:44:53 the new dragonball is ARM 18:44:56 since the newer palms are using ARM processors, I'm eventually gonna try and port my GBA simForth to the Palm 18:44:59 lament, yes. it's $40 18:45:04 yup. 18:45:21 there are two I know of: Dragon and Quartus 18:45:24 bah, commercial :( 18:45:43 Quartus is free if you don't want compile capabilities 18:45:54 lament: there is a non-commercial 1 too 18:46:11 lament: hold on, gonna look4 it 18:47:16 orngetide, lemme know when you want that screenshot 18:47:33 whenever:) 18:47:43 yah. who would what a forth that couldn't compile? :P 18:47:44 need an address :) 18:47:46 i hate PalmOS anyways. 18:47:52 oh. you'll email it. i was expecting a link. :P 18:47:54 orange@rm-f.net 18:48:03 * OrngeTide is a little slow:P 18:48:58 i'm using OnBoardAsm and OnBoardC for palm devel right now. it's a full blown ANSI C compiler that runs on PalmOS. it's actually seems to work pretty well. 18:49:02 but again i hate palmos:P 18:49:15 ok its sent 18:49:19 it's like old school MacOS with it's silly little resource files. 18:49:22 neobrat, rad! :) 18:49:50 got it already? wow 18:50:16 http://206.171.116.227/forth/index.html 18:50:22 http://206.171.116.227/forth/ppforth.html 18:51:31 wooo.. neat. it's a cube:P 18:51:49 yeah, exciting -- the cool part is that i get 60+ FPS 18:51:55 wooo. it's public domain! 18:51:58 * OrngeTide pees his pants. 18:52:00 thanks 18:52:02 thanks onetom. 18:52:07 lol 18:52:13 can I see can I see? 18:52:58 the screenshot ? 18:53:06 yeah :) 18:53:06 but its font handling is buggy on some devices 18:53:15 oh. hrm. 18:53:17 sure thing 18:53:24 is it just an interpreter or can it build stand-alone apps? 18:53:59 herk, your email w/o the tilde? 18:54:00 who knows.. 18:54:02 OrngeTide: I just got pilot-link working for the first time. Maybe I will help with making a forth OS for palm 18:55:23 Herkamire, that'd be neat. 18:55:44 OrngeTide: do you use POSE? 18:55:45 i'm thinking i'd make it just boot from PalmOS first before i start writing flash. 18:55:55 yah. i've got POSE running PalmOS 4.1 on a IIIx 18:56:26 OrngeTide: oh, I've got a visor. (pro I think) 18:56:29 Herk: on its way 18:56:43 I used palm-link to grab the rom from it 18:56:45 Herkamire: cool. i need to get teh emulator to also look like my Visor Edge. 18:57:04 Herkamire: i think you have to do something special to get POSE to do Handspring or Sony. 18:57:33 OrngeTide: no, works fine. you just grab the rom off the visor and run pose 18:57:43 oh. cool. i'll have to try that. 18:57:54 i have like every Palm,Inc. palmOS rom. :P 18:58:25 Any of you use those Sony Clie's ? 18:58:34 neobrat: beautiful :) oh, how I wish I could watch it spin... ;) 18:58:38 --- quit: XeF4 ("nukkumaan") 18:58:46 I can make an AVI :) 18:58:47 and most of the sony and handspring roms. i want to make sure i can boot this up on many devices before i burn any flashes. 18:58:57 OrngeTide: do you have astroids (the B&W version) 18:58:59 neobrat: i almost bought a Clie instead of my Edge. 18:59:11 Well, they are really nice, but... 18:59:19 Herkamire: oh i mean the roms like for the OS. i don't have all the games. :P 18:59:27 ...at work I've been developing an IR interface between our tools and a palm 18:59:38 neat. 18:59:39 the Sony's drop bytes at random if you don't use IRDA 18:59:52 real pain in the ass 18:59:54 well IRDA is superior when you can use it. 19:00:21 yeah, but our tool is using an 8-bit BASIC STAMP processor with 256 bytes of code space 19:00:35 My boss thinks it is plenty powerful 19:00:50 cause he can get tons of em for $0.10 or some shit like that 19:01:40 those just run on scenix PICs. why not buy PICs instead of basic stamps? 19:02:12 they already have code in place and don't want to invest the time/money to upgrade yet 19:02:37 * lament installs ppforth 19:02:38 i went to an entire microchip seminar to look at the PICs -- they are nice 19:03:02 not great (I love my ARM processors) 19:03:08 but nice 19:03:19 yay! It actually works. 19:04:23 neobrat: but there is a damn good forth 4 pics ;) 19:04:46 hey, you don't gotta convince me... :) 19:05:03 onetom: where? 19:05:15 lament: hey. tell me what you think of it:) 19:05:22 Herkamire: r u joking? chef develops it 19:05:57 :bn 19:06:01 oops ;) 19:06:20 OrngeTide: I don't know enough Forth to judge. 19:06:33 But it seems to work, so... :) 19:07:05 lament, me either. :P 19:09:34 oh. it has 'fsave' at least. 19:14:15 Hey all. 19:14:20 heya, fractal 19:14:31 What's up? 19:14:35 onetom: who's chef? 19:14:54 just talkin palm forth now 19:15:14 Herkamire: a resident ppl here 4 some weeks... 19:15:23 Ah yes. For palm I like quartus 19:15:43 Has a float stack been added to it yet? 19:15:46 Herkamire: chefs stuff: http://www.rfc1149.net/devel/picforth 19:15:59 Umm... I dunno. Doesn't palm have an FPU? 19:16:23 Fractal: eeeh, what is an fpu good!? ;) 19:16:38 onetom : It is if you're doing floating calcs. 19:16:41 no, well, not the dragonball, dunno about ARM 19:17:20 Hm, well there might be a soft float implementation. 19:18:40 ok Forth question: 19:18:59 is there a standard way of getting a pointer to an array in ROM? 19:19:18 for exmaple, in my forth, right now I am doing: here 0 , 1 , 2 , const my-array 19:19:26 Well, your array will have a word associated with it. 19:19:34 Er... 19:19:46 there must be a better way to code this and get the same results 19:19:49 That should be const my-array 0 , 1 , 2 , 19:20:02 Then my-array will be your pointer. 19:20:17 well, that gets me in trouble 19:20:37 That should be: 0 const my-array 1 , 2 , 19:20:40 it expects something on the stack 19:20:43 There you go. 19:20:47 neobrat: create my-array 0 , 1 , 2 , 19:21:03 herk: can't do that with my implementation 19:21:04 Yes, or that, if you're using a CFA forth. 19:21:13 create makes a word that points to RAM in my impl. 19:21:18 Use: 0 const my-array 1 , 2 , 19:21:37 neobrat: so make another one 19:21:40 I'll try that 19:21:55 Fractal: he probably doesn't want my-array to be 0... 19:21:57 hehe, I like what i got right now :) 19:22:02 romcreate my-array 1 r, 2 r, 3 r, 19:22:31 neobrat: that's what I do in my forth mostly (here ... , , const name) 19:22:38 Right now, my CREATE VAR and , / ALLOT words all go to RAM 19:22:44 CREATE should make a pointer to where it leaves HERE (which is where , should put stuff) 19:23:02 tathi : Yes, you're right. I don't know where my mind is. Do: variable my-array 0 , 1 , 2 , 19:23:30 wont work for me 19:23:43 RAM space is separated from ROM space 19:23:48 Well, how does your forth handle ROM space? 19:23:51 neobrat: make another set of words that work with rom: rcreate rvar etc... 19:23:52 and there is no way for me to initialize RAM to a value 19:24:06 the ROM is the program space. 19:24:08 ppforth doen't work for me 19:24:17 so for example, if I do: VAR r 2 cells allot 19:24:30 i keep a pointer to the last address used in RAM 19:24:42 and it makes a r a constant to it 19:24:55 then increments the used RAM by 3 cells (1 for VAR + 2 more) 19:25:03 make sense? 19:25:04 I see. Well, create a word : make-the-array here 0 , 1 , 2 , 19:25:06 ; 19:26:16 That'll leave your address on the stack. 19:26:20 perhaps... some good ideas here. One thing I love about Forth: 20+ ways to do 1 thing 19:26:38 neobrat: so does HERE give you a ROM address, or a RAM address? 19:26:45 ROM 19:27:08 and the code for the new word you're defining goes in ROM as well? 19:27:14 yes 19:27:38 Hmmm... 19:28:00 So how do you make variables? 19:28:00 I was thinking of just defining a new word: DATA 19:28:08 I have a word: VAR 19:28:21 And how does that work? 19:28:26 yeah, you need a word that defines a constant that is the address just past the word that it defines 19:28:29 Is there a ram-here or something? 19:28:33 (if that makes any sense) 19:28:52 Remember, this isn't an interpreter -- compiler only 19:28:59 so the Compiler keeps track of RAM-HERE 19:29:21 VAR makes a pointer to RAM-HERE as a constant, then increments RAM-HERE by 1 cell 19:29:22 is const immediate? 19:29:27 yes 19:29:40 so is var 19:30:02 neobrat : Well, what you want to do is var my-array ram-here arraysize +! 19:30:13 VAR and CONST are exactly the same, except CONST points to PC + 8 and VAR points to RAM-HERE 19:31:16 neobrat : Well, what you want to do is var my-array ram-here arraysize + 19:31:31 ram-here shouldn't a variable, sorry. 19:31:31 hmm 19:31:59 Doesn't that make sense? 19:32:14 i hear ya, fractal. Just its isn't an interpreter, so it idn't matter at design time 19:32:23 the GBA has no terminal input :) 19:33:31 Well I don't see the problem then. 19:33:51 what about something like 19:34:00 I'm just not a Forth guru like some of y'all. Was just wondering about other methods is all 19:34:07 : rcreate here codesize + postpone const ; 19:34:28 tathi: that would be great on an interpreted system. 19:34:30 where codesize is the amount of heap space that gets taken up by the word that const makes 19:34:37 duh, sorry 19:34:44 actually 19:35:09 if anyone can help, I'm going nuts trying to come up with some words to allocate space and free memory 19:35:55 People have made dynamic allocation implementations for forth, lemme find a link. 19:35:59 not in the compiler, but in the program itself 19:36:07 thanks, fractal 19:36:31 my 3D engine will be all for naught w/o dynamic BSP tree 19:42:24 i should write a raycasting engine in forth. :P 19:42:36 hey now, that's my next project :P 19:42:50 raycasting is a good one, too 19:42:51 although i'm working on porting this tetris game from PFE to isforth. that's somewhat beyond me. 19:42:54 no FP required 19:43:03 neobrat, raycasting is actually really easy to do too:) 19:43:08 less math 19:43:12 yep 19:43:19 i just know 3D inside and out 19:43:30 I actually have to go read material on raycasting -- never done it :) 19:43:50 oh. it's cute. you can whip up a complete raycasting game from scratch in a weekend. 19:44:00 i totally can't do real 3D. I suck:P 19:44:17 "cute" -- there's a word I've NEVER heard describe ray-anything :) 19:44:33 real 3D is easy once you know your vector/matrix math 19:45:02 http://www.taygeta.com/fsl/library/dynmem.seq < Dynamic memory allocation for ANS forth. 19:45:25 thanks, fractal -- looking now 19:45:33 NP. Hope it's useful. 19:46:02 I've been coming up with something simple and works, but doesn't allow freeing of memory (just a heap wipe) 19:46:20 neobrat, oh i know the math. i just never applied it to anything. 19:46:29 the GBA has 2 RAM areas -- so I use one for the compiler (32K) and 1 for a heap (256k) 19:46:55 plus there are so many methods. like portal engines, bsp engines, oct-tree engines, terrian engines. 19:47:07 neobrat : Well, if all your records are the same size, you can maintain a flag for "in use 19:47:09 " or not. 19:47:22 for some of the more interesting things you end up writing an engine that combines 2 or more thing 19:47:23 s 19:47:24 that's true 19:47:48 And when you want to alloc, check for one that's not in use before allocating another one. 19:47:54 orngetide: bah, just know what you want to set out and accomplish, then work from that 19:48:33 fractal: almost link-list-ish, with a byte up front with info about it: in use, size, etc. 19:49:13 neobrat : Exactly. 19:49:34 neobrat : Except it wouldn't be that effective for size. 19:49:38 would take a little work, but definitely doable. Could even do resizing 19:50:02 Resizing would be quite difficult. 19:50:36 well, if there is enough free space right after, then extent, otherwise could just copy to end and free current block 19:51:13 Yes, possibly. 19:51:22 afk for a bit .... 19:54:15 --- quit: tathi ("leaving") 19:55:53 if all computers had 2^64 bytes of RAM i could write programs so much simplier. i wouldn't have to deallocate memory for example because i could just leak memory and i'd have enough ram to run my program contineously for hundreds of years. 20:02:32 heh 20:04:47 --- part: lament left #forth 20:06:08 OrngeTide: :D 20:13:25 --- join: pyromania (~pyromania@dialup-189.158.220.203.acc01-high-pen.comindico.com.au) joined #forth 20:14:06 back 20:14:50 orgnetide, i guess thats one way to look at it 20:14:59 probalby not the "forth" way tho :) 20:18:20 what's raycasting? I know raytracing... 20:18:31 they are almost the same thing 20:18:53 i had a good tutorial bookmarked -- i'll have to find it again 20:19:20 the basic idea is that instead of raytracing for every pixel, you just cast 1 ray per column 20:20:02 you traverse a 2D map until a "wall" is hit. The distance away tells you how much ceiling, floor and wall is vertically drawn per column 20:21:50 Herkamire: here is the URL http://www.permadi.com/tutorial/raycast/index.html 20:21:58 REALLY good tutorial 20:21:59 thanks 20:22:07 if you understand raytracing, raycasting is a sinch 20:22:15 cool :) 20:23:05 there are lots of tricks to do it all with integer math, which is what makes so much faster 20:23:16 I'll see if I can figure it out tomarow 20:23:26 I want to get into 3d stuff 20:23:44 well, if you have any questions, just ask away :) 20:24:29 great :) 20:25:13 bedtime for me 20:25:22 later! 20:25:45 --- quit: Herkamire (":q") 20:25:46 neobrat: the link is not resolvable 4 me.. 20:26:11 hmm, i got the site up -- looking at it now 20:26:13 http://www.permadi.com/tutorial/raycast/index.html 20:26:18 tho, gotta go 20:26:26 maybe tomorrow 20:26:28 cya 20:26:31 yup, that 1 20:26:57 ping www.permadi.com 20:27:06 does nothing :( 20:27:21 hmm ... something's wrong then between you and that site 20:27:27 i can ping it fine 20:27:36 ok, ns error 20:27:53 o well 20:40:09 --- quit: neobrat () 21:21:55 hrm. 21:22:29 : char ( -- c ) $20 parse drop c@ ; \ what do i have to do to that to make it work like an immediate? 21:24:44 oh. i'm using IsForth :) 21:32:15 ug dont use CHAR!!! 21:32:20 use 'x' 21:32:25 its MUCH less visual clutter 21:32:53 char x <-- very verbose 21:33:01 and you dont just want it immediate, you want it state smart 21:33:22 state @ if literal then <-- add that to the end and make word immediate 21:33:31 but i advise against :) 21:34:36 cool a ray casting tutorial :) 21:38:21 I440r: but ' isn't a word. 21:38:26 well ' is a woord 21:38:33 but 'x' isn't a word:P 21:38:39 I440r, you don't even support tabs! :P 21:38:42 no. 'x' is interpreted as a number 21:38:52 that's weird:P 21:39:13 hehe i hate tabs :P 21:39:20 actually i used to support tabs but when i changed fload that b0rked 21:39:26 its on the todo list to fix that 21:39:31 the BOTTOM of the todo :) 21:39:48 you have weird taste:P 21:39:56 $123 inputs a hex number 21:39:58 i like tabs to indent. it's useless for formatting tables. 21:40:10 yah. i've been using $23 and stuff like that instead of '#' :P 21:40:15 . /111 inputs an octal number 21:40:36 $xx has HISTORIC president 21:40:36 i dunno if i like that. 21:40:38 # doesnt 21:40:54 i'm using '#' to draw tetris tiles. :P 21:40:57 you can do -'!' 21:40:59 not for hex. 21:41:01 for negative 21:41:10 a negative character. neat. :P 21:41:11 no $123 is hex 21:41:18 right. $23 is '#' 21:41:18 'x' is ascii number 21:41:20 i'm happy with that. 21:41:30 right 21:42:12 --- join: proteusguy (~username@65.191.88.177) joined #forth 21:43:20 'x' is much neater, less verbose. less visually cluttering 21:43:29 yes. i don't like char cuz it doesn't do space :P 21:43:45 thats part of what i hate about ans forth, its so fucking visually cluttered with all the bullshit red tape 21:43:49 ' ' wont work in isforth 21:43:54 that will try and tick tick 21:43:59 use bl 21:44:31 i could MAKE ' ' work by trying to interpret everything as a number first :) 21:44:39 oh. that's right. 21:44:45 i440r, yes. don't do that. 21:44:48 * OrngeTide wasn't thinking. 21:45:01 heheh i wasnt about to do that :) 21:45:07 it would just be ALL WRONG 21:45:10 totally. 21:45:15 * OrngeTide needs to take his brain out of C-mode. 21:45:18 like postpone postpone postpon postone 21:45:20 ugh 21:45:21 that's one of the reasons i don't like '' :P 21:45:40 btw the word postpone is BANNED in isforth 21:45:46 use compile and [compile] 21:45:54 okay. i won't miss it. 21:45:54 '' ? 21:45:58 'x' 21:46:04 sorry. 21:46:12 thats not c-ified 21:46:15 i like char x or [char] x or whatever 21:46:33 and i like space after " 21:46:43 well neither will be part of my forth because i dont like red tape 21:46:58 well i have the src. i can just change your forth:P 21:47:10 red tape bores the fuck out of me - which is why i can never read ans forth or c sources 21:47:24 i don't see how it's red tape. it seems very forth-like. 21:47:28 yes. but if i decide i like your code enough to add it to my distro ill FIX it :) 21:47:30 heh 21:47:34 no 21:47:54 i'd rather solve problems with the dictionary than implement a more complex parser. 21:47:57 any time you have a word that you need to inject into your sources to do something that can be easilly done without that word 21:48:00 you have red tape 21:48:11 the parser isnt more complex 21:48:27 in fact my implementation of number is very simple 21:48:33 I440r, : mygame insert-quake-game-here ." Written by Jon Mayo." cr ; 21:48:41 yet you can input decimal, hex, binary, octal and character nubers 21:48:57 OrngeTide i want to do a quake game in isforth :) 21:49:01 why don't you support that? ... because it's not very forth like. 21:49:29 i think the assembler extension and frame buffer would be needed first :) 21:49:34 erm support what ? 21:49:46 insert-quake-game-here isn't already defined for me. :) 21:49:55 aha 21:49:57 heh 21:50:08 s" <--- MORE red tape BULLSHIT 21:50:20 : blah s" blah blah" blah blah blah ; <-- fucked in the head code 21:50:28 here ," blah blah" 21:50:41 : blah literal blah blah blah ; <- much better 21:50:41 that's more verbose. :P 21:50:51 no. its better factored 21:51:00 perhaps 21:51:32 teh only time i support inlining a string in a colon definition is if it is actually USED at its source 21:51:46 ." xyzzy" <-- the (.") uses teh fucking string 21:52:00 abort" blah" same (abort") 21:52:01 right. 21:52:09 (s") doesnt fucking USE the string 21:52:15 it just leaves teh address thereof 21:52:27 s" just shoves it on the heap and does nothing with it 21:52:32 that is also a HELL of alot SLOWER than my non inlined method 21:52:57 well you can make s" fast. 21:53:01 s" has to do r> dup count + >r 21:53:13 MY version has to do a (lit) <-- very fast 21:53:25 you put it someplace when you compile it. and when you execute s" you just get the same pointer over and over. 21:53:26 better factoring. less visually cluttering. faster 21:53:42 oh. thats cool 21:53:42 s" blah blah" evaluate 21:53:53 another fway to totally fuck up your forth 21:54:14 the blah blah should be factored into its own : definition and referenced 21:54:31 hrm. 21:54:33 that gts rid of one (s") token, the entire string and the evaluate token 21:54:44 and it doesnt prevent you from turnkeying 21:54:57 if you do : blah s" interpret this string at run time" ; 21:54:59 that tetris i'm trying to port uses s" for initializing varibles. 21:55:00 you CANNOT turnkey 21:55:19 you can turnkey in pygmy forth:P 21:55:20 well its bad code. want me to tell you how it SHOULD do it ? 21:55:30 but you have to do an extra step to do it. 21:55:40 sure. how would you initialize string variables? 21:55:47 not in isforth because in isforth the entier compiler vocabulary is going to be completely discarded on turnkey 21:55:59 create string-variable ," blah blah blah" 21:56:03 there 21:56:18 if you have 50 string variables 21:56:18 oh. okay. 21:56:34 well u get it heh 21:56:38 you could do 21:56:41 create strings 21:56:45 ," first string" 21:56:49 ," second string" 21:56:59 only the first one actually has a header 21:57:08 if you want the nth string you could do 21:57:14 neat. how do i know where the nth string is? 21:57:19 like how do i access it? 21:57:46 strings swap for count + nxt 21:57:55 you will now be pointing at the Nth string 21:58:07 oh. okay 21:58:18 actually, you would need to use a ?do 21:58:30 i think i understand it. i'll have to use that 21:58:37 : to-string-n ( n --- ) strings swap ?do count + loop ; 21:59:11 what forth/os does your tetris work in as is ? 21:59:19 PFE 21:59:22 sucks 21:59:36 i bet it runs a HELL of alot faster in isforth 21:59:45 i bet you won't notice. it's tetris man. 21:59:46 if it doesnt ill fix it so it does :) 21:59:46 heh 21:59:52 actually, it might not :) 22:00:15 how about doing an all text doom game :) 22:00:20 THAT you could do in isforth already 22:00:24 THAt would kick ass :) 22:00:34 using different ascii characters etc :) 22:00:38 nah. it'd be too slow. 22:00:45 nope 22:00:46 it wouldnt 22:00:59 have you run my itowers.f ? 22:01:01 do this 22:01:09 fload stuff/itowers.f 22:01:12 off> 2delay 22:01:14 i did something like that in C. it cause the processor utilization to go to 85% in *kernel* space. 22:01:16 8 towers 22:01:30 do the above, watch it fly 22:01:35 you have no control over it. don't use terminal use /dev/vcsa 22:01:40 the doom wouldnt eat that much up 22:01:44 it does. 22:01:49 *kernel* 22:01:50 vcsa ? 22:01:57 it's the terminal driver. 22:02:09 it's not that effiecent. if you try to draw 10fps it'll choke. 22:02:13 where can i rtfm that ? 22:02:25 man vcsa 22:02:29 im drawing way more than 10 fps in the terminal now 22:02:32 mmap it and you have attribute-char 22:02:39 i440r, no you'r not. :P 22:03:07 err i CANT do that 22:03:07 do a worst-case test of changing colors ever character and changing every character on the screen. 22:03:16 i440r, you can't? 22:03:17 because the program might be running in an xterm etc 22:03:34 (xterm is actually faster than linux terminal driver) 22:03:36 and it might ALSO be remote 22:03:54 it is. at least eterm is (which i use) 22:03:56 <-- rewrote parts of the linux kernel driver to fix bugs and improve speed. but it was never accepted by linus 22:04:07 remote would kill you. :P 22:04:14 someone telnets in and i write to vcsa then they WILL NOT see it 22:04:21 only the LOCAL person will 22:04:21 IsForth draws to the display really slowly as it is. 22:04:29 i440r, right. that's the point. 22:05:03 i440r, you'd be better off embedded a mini VNC driver and doing your output to that. 22:05:09 s/driver/server 22:05:59 err that would limit programs coded under isforth to a specific client 22:06:34 VNC isn't a specific client. 22:06:42 yes it is. 22:06:56 it's a standard and there are 5 clients available on 17 operating systems 22:07:03 nobody outside the local machine can execute programs coded in isforth except they are running a vic viewer ? 22:07:05 no thanx 22:07:21 terminal escapes == trash for games 22:07:24 isforth will eventually be parsing terminfo files 22:07:25 no make/break codes. 22:07:29 slow rendering. 22:07:32 not a high priority tho 22:07:33 no state 22:07:53 its a terminal. what do you want ? heh 22:08:02 i440r, i'd just parse termcap at compile time and insert the codes for a few terms into the system 22:08:04 ANYONE can view it even if they dont have a vnc viewer 22:08:08 not everyone does 22:08:11 no 22:08:22 i440r, anyone with a computer that supports graphics mode can use VNC 22:08:30 it will be done at run time. right now ive hand coded the escape sequences and i only test for one of 3 different terminal tyoes 22:08:31 there is even a java applet for VNC that runs pretty fast. 22:08:36 CAN use 22:08:47 im NOT limiting them to it 22:08:57 i would limit playing DOOM to them. 22:09:06 heh 22:09:09 yes. 22:09:14 thats a GRAPHICS thing 22:09:20 frame buffer is local 22:09:26 not a VNC buffer. 22:09:50 to see the local frame vuffer on a remote machine you need a vnc viewer and your NOT realy seeing the local fb :) 22:09:57 but something very similar :) 22:10:22 you're seeing a framebuffer. who cares about the local framebuffer, as far as i'm concerned a server has no head. 22:10:53 right 22:11:04 your talking graphics, i was talking text :) 22:11:11 isforth doesnt support any gfx yet 22:11:13 my opinion is if it doesn't hurt anyone then one day support both. 22:11:15 just terminal :) 22:11:25 i PLAN TO! lol 22:11:39 but im not adding frame buffer, x support or any of that shit till i have like an assembler 22:11:41 debugger 22:11:46 metacompiler 22:11:56 at this rate that will be in about 4 or 5 years 22:12:00 if having a vnc extension for isforth doesn't interfer with terminal drivers. (you could abstract it to render the buffer in ascii too:) 22:12:08 yah. you need a debugger :P 22:12:19 im working on the decompiler NOW 22:12:25 which the debugger will need 22:12:27 or fload to spit out line numbers. that would help for someone who can't program in forth like me 22:12:39 yea it will 22:12:40 i440r, oh. it's not going to be like DOS debugger? :P 22:12:50 on error, when fload abort it will give file name and line number 22:12:57 sounds good 22:13:07 my debugger will be able to debug : definitions AND coded definitions eventually 22:13:20 my todo list is HUGE 22:13:24 <-- one man 22:13:52 yah. my VM forth had a disassembler that would actually walk through the dictionary and try to figure out what words you used. 22:14:06 dont need to with isforth :) 22:14:17 every word points to its own nfa :) 22:14:24 ' myword \ get cfa of myword 22:14:28 well the disassembler was writte in VM machine code. *shrug* 22:14:33 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 22:14:38 4- @ \ fetch contents of address at cfa MINUS 4 22:14:47 hey I440r !! 22:14:49 well it wasn't ment to debug interpreted code. 22:14:52 you are now pointing at the nfa 22:14:55 hi serg 22:15:05 i wasnt ignoring you yesterday 22:15:05 sorry for yesterday abrupt quit - boss emerged 22:15:09 i was afk heh 22:15:12 ok :) 22:15:16 what was it you said ? 22:15:25 on my VM you didn't execute out of the dictionary. it wasn't direct-threaded. it was compiled. 22:15:33 a bug ? 22:15:35 i found bug in isforth 22:15:37 a huge bug in isforth ? 22:15:39 cool :) 22:15:40 where is it 22:15:44 and did you fix it heh 22:15:49 * OrngeTide gets isforth to segfault all the time. :P 22:15:55 : >name core dump ; :) 22:16:21 lol stop trying to access memory you dont own and you wont seffault :P 22:16:30 serg >name is barfing for you ? 22:16:38 i tryed to write SEE ( essential for any forth ! ) but found what >name corebarfs all the time 22:16:39 funny, ive just modified all those words :) 22:16:49 serg im working on that right now :_ 22:16:52 :) 22:16:54 wanna see what ive done so far ? 22:17:03 thje bug isnt in isforth 22:17:06 well it is 22:17:15 yes, but pse _bin_ link 22:17:22 the problem is that some words arent created the way the compiler would compile them 22:17:31 for instance 22:17:53 if i know a word never reaches its exit (the one that would be put there by ;) i didnt PUT the exit there 22:18:07 i sort of hand optimized the colon definitions that nasm assembles 22:18:19 i DE-optimized them so see has a better chance of working 22:18:31 isForth is the buggiest forth i ever used, but i dunno any better 4 linux :( 22:18:33 theres quite a few MINOR changes ive done to fix it so see will work 22:18:52 serg when isforth can assemble and metacompile it will be ALOT smaller 22:19:10 there is alot of shit built into the kernel itself that realy belongs in extensions 22:19:16 if i could assemble i could move them out 22:19:26 serg never used fpc ? :) 22:19:38 are u gonna write nasm in frth, w/ what damn XDEFINE ? 22:19:45 Serg_Penguin: i've used much buggier. :P 22:19:54 serg let me go get my laptop ill show you my see so far :) 22:20:11 knok shit out of krnl - it was what i almost said 22:20:30 serg no im going to write an assembler extension. ive already got the makings of one. im not releasing that till its finished tho 22:20:40 dunno hurry, i can wait 7 hrs till i leave work..... 22:20:50 serg yes. if it can be moved to an extension it SHOULD be 22:20:54 right now it cant 22:21:00 alot of it cant 22:21:43 why can't u make isForth load BINARY extensions written in ASM, like others do, like russian gp-forth ? 22:21:59 so u can do many things load-on-demand 22:22:34 and i object on vocabulary switch - it's EXCESS FAT !, remove it if u can.... 22:23:33 serg wait till you see what i have planned :) 22:23:45 ill give it the ability to load pre-compiled vocabularies :) 22:24:28 isForth is best by ideology from all Linux forths i seen ( despite i have lots of criticism ), but too buggy now for real use 22:24:57 tryed eforth - only kernel, no even INCLUDe and SAVE, no i/o 22:25:10 serg its under development... read under developed :) 22:25:14 no. 22:25:18 NEVER will i have include 22:25:21 or needs 22:25:22 you have fload 22:25:27 which might be a bad name 22:25:41 tryed some others - crap written in C, forot even names 22:25:44 but ill never have words that will selectivly include files if they arent already 22:26:00 i will not subject my forth to the sort of shit c coders do 22:26:07 like conditional compilation 22:26:29 bury 40 million #defines in 284976523478 different source files all including each other over and over 22:26:35 fucking coding a gordian knot 22:26:44 if user needs no-dupe fload and #if, he can do it himself 22:26:48 brb /me gets a coffee:) 22:26:58 ok 22:27:06 is sources wont ever be included for distro with isforth 22:27:19 there are things i dislike but will put up with 22:27:26 is ?????? 22:27:28 but there are things that i absolutely will not tolerate 22:27:37 and what ? 22:27:46 conditional compilation and files including files including files including files 22:27:56 and tabs. tabs are evil :) 22:28:22 * Serg_Penguin does factorize files and never puts all prog at one src 22:29:57 so gimme link 2 hottest isforth.... 22:30:25 * Serg_Penguin considers good having 2 version chains - dev and stable 22:31:21 right 22:31:22 thats good 22:31:36 what you should do however is have N files for your application 22:31:41 and ONE LOAD FILE 22:32:04 if file X in your application requires something in file Y then file X should NEVER include file Y 22:32:12 everything should be loaded from the LOAD FILE 22:32:31 if your compile aborts in file X becayse Y was never included you should know why and add Y to the load file 22:32:39 thats teh ONLY sane way to do it 22:33:21 agree 22:33:50 :) 22:33:53 ok hang on 22:34:11 ftp://63.185.9.201/see.f 22:34:26 its a work in progress and only just started but i know how the rest will work :) 22:34:53 btw there were some headerless code words in the kernel like nest and doconstant etc that are no longer headerless 22:35:04 i.e. ' nest will now work :) 22:35:16 decompiler realy needs to be able to see those words 22:35:34 damn, opera says file not found 22:35:50 er try without the filename 22:35:52 just go to the ftp 22:35:53 oh 22:35:56 no i know the problem heh 22:36:10 try now 22:36:13 with the file name 22:36:24 when i copy a file over my samba share from the laptop to the server 22:36:46 and then ssh TO the server and copy it from the share to the ftp dir its -r grrr 22:36:52 fucking stuipd samba 22:37:04 there ya go :) 22:37:26 i moved .id out to utils.f too 22:37:32 see.f needs it and so does words 22:38:31 oops, i'd better get all pack then it will be ready 22:38:51 ? 22:38:59 oh yea 22:39:02 * Serg_Penguin dislikes frankenstein builds from different versions pieces 22:39:14 i dont release patches 22:39:27 thers alot thats going to be in the next release if i ever get it finished 22:39:36 like a mini help system for teh words in the kernel 22:39:39 sockets code 22:39:45 a useless irc bot heh 22:39:57 (the sockets code just needs dns queries finished) 22:40:16 --- join: Forth (~Forth@sdn-ap-002tnnashP0455.dialsprint.net) joined #forth 22:40:23 theres the useless bot:) 22:40:50 and the decompiler too 22:41:05 plus a fix for the text windowing code i released last time 22:41:13 which i made a tactical error with 22:41:23 so dont use either that or the structures code :) 22:43:27 had u ever tryed writing progs strictly in one-line words ? 22:43:40 oh - btw the mini help system help files are also currently in my ftp 22:43:44 under the help/ dir 22:43:55 those need proofreading etc 22:44:06 and ive not finished the entier kernel 22:44:13 done 2 and a bit files so far :) 22:45:29 oh. ive also restructured the directories under the isforth dir 22:45:35 i no longer have asmsrc and forthsrc 22:45:42 i have src/kernel and src/example 22:45:44 erm 22:45:50 src/ext for extensions i mean 22:47:50 the one more thing i want - named definitons of many useful syscalls w/ comment how to use 22:48:07 yea 22:48:25 so i won't look at kernel docs myself, just cut'n'paste 22:48:29 im not going to add every syscall that exists in the linux kernel to the forth kernel 22:48:37 heh 22:48:40 steal it from eforth 22:48:53 heh 22:49:10 i dunno ask it, put them to example file so user may cut'n'paste 22:49:24 when you need a syscall all you need to knnow to create that syscall is how many parameter sys_foo takes and what the syscall number is for sys_foo 22:49:35 #parameters syscall# syscall 22:49:47 if u put all in kernel like eforth, i would surely object for extra fat 22:49:59 siscall takes 2 parameters and creates a syscall handling word for ANY syscall 22:50:20 yes :) 22:50:23 and _what_ the params mean, dammit ! 22:50:34 well 22:50:53 i wanna file like this: 22:50:58 1 2 suscall \ i just made that up it will crash you hhe 22:51:15 will create a word called which will invoke syscall number 2 22:51:23 and will expect one parameter on the stack 22:51:26 you can now do 22:51:44 240 <-- you passed one parameter to blah 22:51:51 oh, dunno even know its syntax, but badly scared by the prospect of digging kernel docs 22:51:55 what that 240 is can be learned from man 2 blah :) 22:52:04 yea. 22:52:16 maybe i submit u the ones i'll make for my needs..... 22:52:24 if theres a syscall you need and are having difficulty working it out ill help :) 22:52:39 sure. which do you need 22:52:48 some might be planned already 22:53:07 nothing now, till isforth will stop crash all the time 22:53:26 what are you doing thats crashing it 22:53:30 * Serg_Penguin never released stuff crashing all time 22:53:32 can you narrow it down to any specific words ? 22:53:47 notice the B on the end of the version number? 22:53:50 that means BETA heh 22:54:00 its not even in stable release version yet 22:54:04 ' dump >name - CORE DUMP! 22:54:17 wait 22:54:27 i actually crashed many times, will try to reproduce some at home 22:54:59 ' some-word >name crashed you ? 22:55:19 its fixed now 22:55:25 yes, both from console and compiled word 22:55:40 let me try in a : def thusly 22:55:57 : test ['] noop >name count lexmask type ; 22:56:08 and see if test prints 'noop' 22:56:32 no crash 22:56:36 displays noop just fine 22:56:41 wait :) 22:56:41 ok, now will switch CRT to test another computer 22:56:49 brb 23:00:03 im tgzing latest up for you 23:00:13 when u get back :) 23:00:58 tell me when you get back serg 23:03:24 OrngeTide still there ? 23:04:12 alone, alone, all all alone, alone on a wide wide sea.... 23:05:12 day after day, day after day. we struck nor breath nor motion. 23:06:24 as idle as a painted ship, upon the painted ocean 23:06:24 :) 23:06:24 sure. 23:06:24 i'm playing with my strings for the pieces. 23:06:24 lol funny how that fits with irc :P 23:06:24 did you check out the "decompiler" so far ? 23:06:25 aha cool :) 23:06:25 not yet. 23:06:25 well it will be in the next release i hope :) 23:06:34 nah. it'll probably suck too much and you won't like it 23:06:40 no 23:06:46 my code NEVER sucks :P 23:06:56 dammit :) 23:08:18 oh. i misread you 23:08:25 i thought you wanted to include MY program with your release. 23:08:29 MY code sucks. 23:08:36 heh\ 23:08:38 <-- n00b 23:08:41 it wont when i include it :) 23:08:51 i440r, ehehe. 23:09:02 well. your a cluebie n00b :) 23:09:11 i.e. your a newbie but you got a clue :) 23:09:20 well i know some stuff. i've just never actually written a significant forth program 23:09:32 me either :) 23:09:35 hehhe 23:09:44 :P IsForth is significant. 23:10:11 but its an assembler program right now :P 23:10:20 and its incomplete 23:10:31 its not a real forth till it can compile its own sources 23:10:41 well programmers can never "complete" anything. they always want to add more stuff. 23:11:04 i have shit thats planned for inclusion into isforth as OPTIONS 23:11:27 when i got all the shit i have in the backlog coded ill start writing REAL applications for isforth 23:11:46 ill always be adding more options but they will be OPTIONS not requirements :) 23:12:29 what was it? create blah ," foo" ," bar" ... ? 23:12:33 Most of my projects follow the rule of thumb: Evolution, not Revolution. 23:13:27 explain what you mean? 23:13:40 i have NO master plan, just general things i want for isforth eventually 23:14:33 I mean most of my projects progress by a slow process of changes that I do for necessity. 23:14:47 right 23:14:54 mine too 23:15:20 to a degree. like i said, no MASTER plan set in stone 23:15:31 Master plans are lame. 23:16:10 Heh. 23:16:12 i'm back - comp is half-dead 23:16:28 toss out 'options', write core 23:17:07 ask users to submit their options, but obey to thinkful, low-fat progging 23:17:50 :) 23:18:02 * Serg_Penguin would prefer bare kernel capable ONLY for extension, but stable, rather than eye-candy crashing all time 23:18:57 That's just relegating the bugs to the extensions, which you practically have to use anyways. 23:19:06 serg yes agreed. check privmsg serg 23:21:31 i give up. i don't understand how to use create 23:21:36 well, im keeping inter-extension dependancies to a minimum 23:21:57 there are dependancies but very few. this makes almost everything an option :) 23:22:09 OrngeTide create is funny 23:22:11 create foo 23:22:15 0 , 23:22:23 you now have a VARIABLE called foo 23:22:34 create always assumes the word you are creating is a variable 23:22:34 that's what i want. it didn't work though. 23:22:46 if its a : definition you have to PATCH it later as follows 23:23:09 i just want a variable with some strings in it. 23:23:11 : : create ;uses nest ] ; 23:23:18 OrngeTide : Do you understand the dictionary system of forth? 23:23:21 create 23:23:23 ," string 1" 23:23:27 ," string 2" 23:23:40 fractal, yes. but i don't understand create does> ;uses and other manipulation words 23:23:57 I440r, yah. it didn't seem to like taht. i must have some dumb syntax error 23:24:05 OK, well none of those are necessary for string variables. 23:24:40 fractal, how would you do a string variable? 23:25:15 Well, define a "string variable". Is it a word that when called leaves the address and length of a string on the stack? 23:25:40 : my-string-var s" Hello World!" ; 23:25:44 That'll do it. 23:25:50 no. i won't use s" 23:26:08 I see. 23:26:12 s" does not exist 23:26:15 its FICTION 23:26:18 ehheeheh 23:26:19 forget s" 23:26:21 a MYTH! 23:26:25 :) 23:26:42 * OrngeTide goes to play a PSX game with his gf. seeya. 23:26:51 fractal the above is extreeeeeeemly inefficient 23:27:11 for a start it puts the string inside a : definition. you have the (s") token and an exit token compiled 23:27:29 run time will be slow because (s") has to adjust its return address and return the address of the string 23:27:43 the : definitions is poorly factored and thus more difficult to read 23:27:53 create mystring ," my string" 23:28:08 : blah mystring do stuff here ; 23:28:09 or 23:28:11 here 23:28:15 ," my string" 23:28:21 : blah literal do stuff here ; 23:28:33 ,' foo!' \ guessing that is something different than ," foo!" .. perhaps not null terminated or something? 23:28:35 much more efficient 23:28:53 yes the single quote version compiles an uncounted string 23:28:55 for instance 23:28:58 create foo 23:29:03 ,' foobar' 23:29:06 is the same as doing 23:29:07 create foo 23:29:09 Explain what ," does. 23:29:24 'f' c, 'o' c, 'o' c, 'b' c, 'a' c, 'r' c, 23:29:29 yah. i figured :) 23:29:46 ," compiles a counted string. 23:29:49 JUST the string 23:29:53 thers no (,") 23:29:57 i should just use uncounted strings for these tetris pieces. 23:29:59 I see. And how do you reference the count? 23:30:11 create blayh ," the string " 23:30:16 blah count type 23:30:30 So your strings are null terminated? 23:30:35 --- quit: Serg_Penguin () 23:30:44 no 23:30:46 i think they are counted. 23:30:51 counted 23:30:58 ," compiles a counted string 23:31:11 Oh, I see. 23:31:27 So it doesn't more than 'f' c, 'o' c, 23:31:33 ," parses teh input to the next " char and compiles what it finds as a counted string 23:31:47 ,' parses the input to the following ' char and compiles it as an UN counted string 23:31:54 yes 23:32:10 ," foo" compiles 3 c, 'f' c, 'o' c, 'o' c, 23:32:26 okay. create isn't creating shit. 23:32:39 Oh, gotcha. So you can't have strings 256+ characters... 23:32:45 erm try this 23:32:48 create foo 23:32:59 ' foo 4- @ count lexmask type 23:33:01 tell me what it does 23:33:06 no 23:33:16 i might add the ability later 23:33:35 i.e. have a 16 bit count counted string 23:33:37 LATER heh 23:33:43 its not exactly a high priority tho 23:33:46 yet 23:34:00 what word would you suggest to compile one ? 23:34:20 I would think having strings limited to 255 would be a rather signifigant disadvantage, but whatever. :) 23:34:42 it might be. but its also ALOT simpler :) 23:34:48 oh. iknow what i did now. thanks. 23:35:05 if you decide you need larger strings ill add it :) 23:35:16 Well, I would suggest making all your strings 16-bit counted. A byte is cheap, and creating unnecessary APIs is not good practise, IMO. 23:36:02 one byte is cheap - 249385672978452 bytes because thats how many strings you have is not cheap :) 23:36:07 but i get your point heh 23:36:27 actually i might make a word to compile asciiz strings 23:36:33 In my forth, counted strings don't exist. The application is responsible for keeping track of the length. 23:36:54 there is a balance. you can only have so many strings total in a system cuz you only have so much ram. figure out how big you can make them before wasting ram becomes significant. 23:36:59 thers already a strlen word that will convert an address pointing to an asciiz string into an anddress and a count 23:37:41 allowing asciiz is just as efficient as having 16 bit counted strings with regards to run time 23:37:47 and more efficient in teh compile 23:37:48 64bit counted strings would be fine on a desktop machine, as far as the amount of memory you waste. obviously you couldn't have strings that long. but realize that 8 bytes * 20,000 strings you might have. who cares. 23:37:54 but.... asciiz isnt forths way heh 23:38:38 Er, I don't see what you mean exactly, i440r... 249...52 bytes? 23:38:53 ? 23:38:55 i think it's convient to support both asciiz and counted strings. because i find that you need to interact with systems that use both. that's one problem in C. it really only does asciiz 23:39:09 yes. 23:39:09 --- part: pyromania left #forth 23:39:18 2^16 = 65536 23:39:21 2^32 = 23:39:29 4294967296 23:39:33 2^64 = 23:39:36 18446744073709551616 23:39:38 which is why i have s>z to convert a counted to an asciiz and strlen to convert a1 of an asciiz into a1 n2 23:39:40 erm a1 n1 23:39:57 you did that in your head right ? 23:39:59 :) 23:40:03 Yup. :) 23:40:25 /exec -o echo "2^64"|bc 23:40:39 an asciiz string can be any length and STILL only use one byte to say where teh terminator is :) 23:40:51 ahah.. i just had a TAB infront of something was the problem. :P 23:40:53 heh 23:40:54 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 23:41:06 Yes, but you have an O(N) function you need to call to find it. 23:41:16 asciiz is great for storing data. it's annoying if you actually want to do anything with your strings 23:41:39 right 23:41:45 counted is more efficient 23:41:58 you already know how big the string is, you dont have to "find out" 23:42:39 Yeah. 23:42:47 my old text editor used ...string... a buffer was just one long string to it because it dealt with the next transparently. when you started inserting thigns it just broke it up into smaller strings. and eventually would merge them back together. 23:42:58 c's printf has to write each char one at a time or parse the string to find its end. my original "type" did a write of the string from address a1 for length of n1 23:43:08 there were other easons to go the slow way tho 23:45:51 re hi I440r 23:46:00 one more thing 23:46:11 ya ? :) 23:47:00 i advice u to make core words vectored, so i may subst'em 23:47:20 define "vectored" 23:47:23 KEY, EMIT, TYPE, FIND , ACCEPT, INTERPRET etc... 23:47:28 oh 23:47:30 \they are 23:47:33 werm find isnt 23:47:38 accept doesnt exist 23:47:48 interpret shouldnt be used in application code 23:47:54 key and emit are defered 23:48:01 i think type is too 23:48:10 so i may say ' mykey is key ? 23:48:19 yes 23:48:59 ha-ha, what if i wanna set breakpoint and singlestep INTERPRET or FIND ? 23:49:18 both interpret and find are in the compiler directory 23:49:41 on turnkey (eventually) the entire compiler vocabulary is going to be discareded 23:49:45 i meant compiler vocabulary 23:50:05 so use of "find" and "interpret" in user applications isnt good :) 23:50:21 plus 23:50:30 if your writing an application "interpret" 23:50:39 you just do ' myinterpret is quit 23:50:45 or if i wanna hack INTERPRET so if it cant FIND it try to FLOAD file w/ word's name ? 23:50:49 and have myinterpret reference myfind 23:51:06 i dont understand 23:51:25 or EXEC it 23:51:33 imagine i type : 23:51:36 interpret is called by (quit) which is called by quit 23:51:38 quit being defered 23:51:48 ls -lR at forth prompt 23:51:58 now it will barf no such word LS 23:52:03 thats planned :) 23:52:09 correct 23:52:20 ls will be added 23:52:31 but if i hacked INTERPRET, it will try to EXEC not FIND'ed word 23:52:32 as will cp etc and most of the bash things 23:52:35 HAY! where the heck is dup2 23:52:45 2dup 23:52:48 hrm. 23:53:07 its only called dup2 in the assembler sources because the assembler is crippled in that a name cant start with a digit 23:53:18 ( n1 n2 --- n1 n2 n1 n2 ) 23:53:55 look at my (quit) interpret and (interpret) 23:54:03 its not much code... 23:54:18 ok, ok are they forth or code ? 23:54:25 forth or asm ? 23:54:40 erm they are colon definitions but are in the kernel so nasm assembles them 23:54:47 ok 23:54:58 the sources i just gave you shows theh way all : definitions actually look 23:55:03 in comments 23:55:03 so all that 23:55:11 dd blah, foo, plit, 10 23:55:13 would show as 23:55:15 ... 23:55:17 blah foo 10 23:55:20 .... ; 23:55:36 ok, good 23:55:52 makes it easier to see what a given : definition is doing - the assembler source versions of teh : defs are a bit difficult to read sometimes 23:56:07 another idea i'm too lame to code myself: 23:56:21 instead of writing full asm in forth, 23:56:38 i WANT teh full assembler in forth heh 23:56:47 write macro-compiler w/ minimal set of primitives 23:56:49 i dont want to be dependant on ANYTHING except isforth sources 23:56:57 so shelling out to nasm isnt acceptable :) 23:57:12 like @ ! etc... 23:57:54 and then write Forth in such inlined primitives ( almost in Forth ), not in asm 23:58:33 i just copied my skeleton assembler source files into my ftp 23:58:42 none of the mneumonics are in there yet 23:58:54 its on the back burner right now 23:58:59 i just disabled port 80 at firewall :) 23:59:13 lol 23:59:20 want me to /play it into here ? 23:59:22 heh 23:59:30 no, no, all later 23:59:35 \ asm.f - isforth assembler extension 23:59:35 \ ------------------------------------------------------------------------ 23:59:37 vocabulary assembler assembler definitions 23:59:38 \ ------------------------------------------------------------------------ 23:59:40 \ prefixes applied to current and previous opcode 23:59:42 create p1 5 allot \ buffers to hold prefixes on current and 23:59:43 create p2 5 allot \ previous instruction 23:59:46 : 0prefixs \ zero out both prefix buffers 23:59:46 1prefixs 5 erase 23:59:48 2prefixs 5 erase ; 23:59:49 p1 var prefixs1 \ prefix buffer for previous instruction 23:59:52 p2 var prefixs2 \ prefix buffer for current instruction 23:59:52 \ ------------------------------------------------------------------------ 23:59:55 \ create a prefix mneumonic 23:59:55 : prefix \ word to create a prefix 23:59:57 create c, \ create prefix word, compile its value 23:59:58 does> \ when prefix is referenced do... 23:59:59 --- log: ended forth/02.11.14