00:00:00 --- log: started forth/03.12.07 00:02:59 --- quit: Shain ("ircII+tkirc2") 00:57:04 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 01:37:53 --- join: schihei (~schihei@p5085DD3F.dip.t-dialin.net) joined #forth 03:09:31 --- join: Robert_ (~snofs@c-305a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 03:11:24 --- quit: Robert (Read error: 54 (Connection reset by peer)) 03:40:27 --- nick: Robert_ -> Robert 05:02:06 --- join: Robert_ (~snofs@c-305a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 05:04:55 --- quit: ChanServ (ACK! SIGSEGV!) 05:19:50 --- quit: Robert (Read error: 110 (Connection timed out)) 05:24:18 --- nick: Robert_ -> Robert 05:27:03 --- join: haroldo_ (~haroldo@r200-40-166-8-dialup.adsl.anteldata.net.uy) joined #forth 05:39:40 --- quit: haroldo (Read error: 110 (Connection timed out)) 05:41:01 --- join: ChanServ (ChanServ@services.) joined #forth 05:41:01 --- mode: tolkien.freenode.net set +o ChanServ 06:45:02 --- join: Robert_ (~snofs@c-305a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 06:46:10 --- quit: Robert (Read error: 54 (Connection reset by peer)) 07:12:27 --- quit: ChanServ (ACK! SIGSEGV!) 07:14:14 --- join: ChanServ (ChanServ@services.) joined #forth 07:14:14 --- mode: tolkien.freenode.net set +o ChanServ 07:44:47 --- nick: Robert_ -> Robert 07:59:07 --- join: karingo (karingo@73.portland-01-03rs.or.dial-access.att.net) joined #forth 08:02:12 --- join: rO| (~noclue@p508078A2.dip.t-dialin.net) joined #forth 08:02:40 * rO| greets 08:03:37 hey 08:07:46 brb 08:08:32 --- join: rO|_ (~noclue@pD95238B2.dip.t-dialin.net) joined #forth 08:12:35 --- join: rO|back (~noclue@pD9E0AE4D.dip.t-dialin.net) joined #forth 08:14:27 --- join: rO|| (~noclue@pD9523720.dip.t-dialin.net) joined #forth 08:23:51 --- join: dpb9cpu (~dpb@lexx.daves.net) joined #forth 08:27:31 --- quit: rO| (Read error: 110 (Connection timed out)) 08:31:18 --- quit: rO|_ (Read error: 110 (Connection timed out)) 08:32:46 --- quit: rO|back (Read error: 110 (Connection timed out)) 08:35:48 --- quit: schihei (Client Quit) 08:44:51 --- join: sk1p (skip@p5086D8F1.dip.t-dialin.net) joined #forth 08:46:30 --- join: schihei (~schihei@pD9548A24.dip.t-dialin.net) joined #forth 08:55:43 --- quit: karingo () 08:59:40 --- quit: ChanServ (Shutting Down) 08:59:53 --- join: ChanServ (ChanServ@services.) joined #forth 08:59:53 --- mode: tolkien.freenode.net set +o ChanServ 09:07:06 --- quit: schihei (Client Quit) 09:08:18 --- join: schihei (~schihei@pD9548881.dip.t-dialin.net) joined #forth 09:15:05 --- quit: Robert (tolkien.freenode.net irc.freenode.net) 09:15:05 --- quit: onetom (tolkien.freenode.net irc.freenode.net) 09:15:05 --- quit: Herkamire (tolkien.freenode.net irc.freenode.net) 09:15:06 --- quit: wUoNrFk (tolkien.freenode.net irc.freenode.net) 09:16:30 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 09:16:54 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 09:17:09 --- join: Robert (~snofs@c-305a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 09:28:05 --- quit: schihei (Client Quit) 09:29:20 --- join: wUoNrFk (~unfy@ip68-99-27-190.om.om.cox.net) joined #forth 09:36:20 hey 09:36:22 everybody read this 09:36:25 http://www.complang.tuwien.ac.at/forth/ftp.dei.isep.ipp.pt/pub/forth/docs/cm891023 09:38:21 he is just bagging on ANS 09:48:12 --- join: rO| (~noclue@pD9E0AF87.dip.t-dialin.net) joined #forth 09:49:04 http://www.complang.tuwien.ac.at/forth/ftp.dei.isep.ipp.pt/pub/forth/docs/cm891023 09:49:07 :) 10:06:14 --- quit: rO|| (Read error: 110 (Connection timed out)) 10:10:54 Languages are interesting. I've always proselytized Forth, but I've done virtually nothing in it. CREATE/DOES> is a very powerful word, but it's not one that I know how to use effectively. In Perl, there was a day when map() just hit me like a brick. Now I don't use it like some people, but the light came on, and I frequently saw map() as a way to simplify code. I can write basic Forth, although effective string management still eludes me ( 10:10:54 Perl and even C have, from my perspective at this time, easier to use string functions). 10:12:05 Basically, I don't recognize opportunities to use CREATE/DOES>, so no doubt part of the code I have written are inefficient. 10:14:16 yeah, strings in forth are quite hard. 10:15:00 I assume you've been following the colorForth ranting in c.l.f? 10:16:54 i did for a while, then gave up :) 10:17:47 I recently just got back into newsgroup reading for c.l.f and comp.os.cpm. Anyway, it's pretty amusing some of the opinions on why Forth does or doesn't have the acceptance it does. 10:19:42 Personally, one of the reasons I think Forth doesn't have a larger acceptance on platforms like Linux is the lack of bindings to libraries that have been around for years. Not having any resources is (more) acceptable on a embedded processor, but when you need TCP/IP, FTP, UIs, crypto, etc, why re-invent everything in Forth when the libs already exist? 10:24:07 gforth does have lib.fs, which provides a crutch interface for libraries. 10:25:30 Yea, but it's one of the few. 10:39:27 --- join: wossname (wossname@HSE-QuebecCity-ppp81239.qc.sympatico.ca) joined #forth 10:39:48 wossname! 10:39:49 If you want to talk to fellow forthers on IRC 10:39:49 Get yourself an IRC client and join us at #forth on irc.freenode.net 10:39:53 er 10:39:54 oops 10:39:58 http://www.complang.tuwien.ac.at/forth/ftp.dei.isep.ipp.pt/pub/forth/docs/cm891023 10:39:58 ?~ 10:40:01 :D 10:40:02 check that out! 10:40:02 :) 10:40:08 wossname: how have you been? 10:41:32 i've been bleh 10:42:31 --- quit: sk1p ("/quit") 10:43:08 how have you been? 10:44:09 ive been very7 very very very very good :) 10:44:21 that good, huh? good for you :l 10:44:21 been coding on my environment server 10:44:23 in forth : 10:44:24 :) 10:44:27 ^_^ 10:44:28 environment server? 10:44:36 its is hard to explain... 10:45:00 imagine like an X server, but it can run on console, or an actual X server, or something else 10:45:03 sorta like that 10:45:52 what is it to accomplish, then? 10:48:42 beat emacs 10:48:46 :) 10:48:55 beat emacs without actually being an editor 10:49:15 ^_^ 10:50:29 emacs isn't an editor, it's an abomination against heaven and nature. 10:52:20 well, its all of those lol 10:52:22 be right back 10:52:26 ill explain more when im backj 11:01:17 jc no - thats vi 11:01:26 emacs is easy to ignore - vi isnt 11:01:39 vi is the editor of the gods. 11:01:51 When the universe was created, the script was written with vi. 11:05:00 your evil :P 11:05:22 the ONLY thin i ever needed with vi is escape colon q bang 11:05:36 and i hated having to learn that 11:05:53 the entire interface is an abomination - i understand the reason for it but i still dont like it 11:06:25 unfortunatly in linux you cannot guarantee ANY single keypress will return a keycode other than the anlpha numerics 11:06:47 every other key can be stolen from you by the operating syste, the terminal or the window manager 11:06:56 I had to relearn WordMaster the other day. Now I keep crossing up WM and vi keystrokes. 11:07:30 heh 11:14:01 :) 11:14:17 I440r: you gotta keep the link for isforth up ... i almost panicked about not being able to gt it!!! 11:14:35 --- join: schihei (~schihei@pD9548395.dip.t-dialin.net) joined #forth 11:16:03 vi is the best. 11:16:06 I440r: there? 11:16:16 I440r: you've got sockets, right?? 11:17:13 sort of 11:17:21 dont have dns queries finished yet 11:17:27 they are on the todo list 11:17:38 but the irc bot in src/bot does connect 11:18:39 UNIX sockets? 11:18:43 thats my main interest. 11:18:49 I'm sorta not liking gforth... 11:19:01 I440r: you got deferred boot or deferred entry? 11:19:18 defered boot ? you mean a defered init chain? 11:19:22 theres default 11:19:30 also, quit is defered in isforthg 11:20:16 er.. 11:20:17 ok 11:20:21 wow 11:20:31 if i want (on start up) to run the word foo, what do i do? 11:20:44 : foo defers default ...... ; 11:20:49 thats ALL you need to do 11:21:01 but it will run after everything else 11:21:12 if foo displays anything it will happen after hello 11:21:27 type hello in isforth to see what hello does hhe 11:21:34 do it from a cleared sceen 11:22:00 or if you do not want any of the other stuff to run do 11:22:03 : foo ..... ; 11:22:08 ' foo is default 11:22:14 fsave/turnkey fooblah 11:22:36 if its turnkey then foo must have a 0 in it 11:22:45 erm wait 11:23:20 hehe 11:23:23 if foo deferes default it should have a bye in it. if you do ' foo IS default and turnkey then foo must have a 0 in it 11:23:35 i need to fix it so that bye can be used in both cases 11:23:50 OK 11:24:22 : rkg-start ... 0 ; ' rkg-start is default fsave 11:24:24 is that it? 11:24:42 no .... 0 ; 11:25:01 isnt exit - is the syscall exit 11:25:12 oh 11:25:14 so 11:25:22 is the syscall ? 11:25:26 thats neat. 11:25:36 : bye 0 ; ??? 11:25:43 also. if your going to do a turnkey then i suggest you make a new copy of isforth.f, remove all the shit your app does not need - change the fsave isforth to fsave foocompiler 11:25:57 then have foocompiler compile your application and do 11:26:03 ' foo is quit turnkey fooblah 11:26:12 i kinda need to document all this 11:28:23 heh 11:28:23 ? 11:28:30 ' foo is quit turnkey fooblah 11:28:53 basically, int main() { atexit(foo); fooblah(); } 11:28:54 like that? 11:29:15 :) 11:29:33 do you mind if my project ships with a version of isforth? 11:31:00 (did i mention you need a make install?) install: cp isforth /usr/local/bin/ 11:31:09 :) 11:32:40 whats u< Unsigned shift left. 11:35:10 er 11:35:14 Yes. 11:35:37 I.e. fill the bottom bit with a zero. 11:35:57 no thats just a shift left dummy hhe 11:36:05 ok 11:36:09 thers no difference between an unsigned shift left and a signed shift left :) 11:36:10 I440r: Isn't that what it does? 11:36:16 isforth seemes to not like it. 11:36:21 I440r: Sure, but that's what it does, no? 11:36:28 said u<< and u>> didnt exist 11:36:36 thers << u>> and >> but no u<< 11:36:46 so i added : u<< << ; : u>> >> ; at the top of words.f 11:36:49 and it segfaulted 11:37:11 what dide 11:37:12 words ? 11:37:34 nforth :) 11:37:37 robert nforth 11:37:41 robert's* 11:37:44 runs on isforth 11:37:45 oooh heh 11:38:33 Heh. 11:38:44 It's not meant to be used 11:38:54 Just for forth freaks to look at and laugh 11:39:01 lol 11:39:20 lol 11:41:07 well, im gonna go get to work. 11:41:23 I440r: how long are you gonna be here? i might need some help setting up my unix sockets.. 11:42:50 (sorry, thats what you get for writing such an awesome forth! ^_^) 11:43:07 arke lol i dunno 11:43:12 im trying to fix my local network :P 11:43:15 :P 11:43:36 IRC works, so who gives a shit about the local network? :) 11:44:08 The one who uses it? 11:44:21 :) 11:45:22 nip nip nip!? 11:45:29 nip ( a b -- b ) right? 11:45:47 Yes. 11:45:53 : nip swap drop ; 11:46:03 :) 11:46:30 3nip ( a b c d -- d ) :) 11:47:18 : tuck ( a b -- b a b ) swap over ; 11:47:41 3nip, heh. 11:48:21 : catnip ( cat -- ) drop ; 11:51:13 lol 11:52:16 : xnip [for] compile nip [next] ; immediate 11:52:28 wtf is [for] ? 11:52:34 heh 11:52:45 an interpreted for 11:52:46 :P 11:52:48 isforth uses for/nxt <-- i refuse to call it NEXT 11:52:55 jc: :) 11:53:08 And I call it "next" just to tease I440r. 11:53:12 I440r: yeah, i understand that. is quite confusing. 11:53:40 :) 11:53:43 ^_^ 11:55:04 --- join: Sonarman (~matt@adsl-64-169-95-66.dsl.snfc21.pacbell.net) joined #forth 11:55:30 Sonarman: ^_^ 11:56:03 are you oninshiko? 11:56:27 no...lol 11:56:35 oninshiko is moving right now. 11:56:42 ^_^ 11:56:48 ^_- 11:57:03 I440r: could you gimme a hand please? 11:57:05 ... 11:57:08 that sounded wrong. 11:57:26 I440r: can you give me a hand with UNIX sockets in isforth please? 11:58:07 maybe 11:58:10 what you trying to do 11:59:21 well, first, im just trying to set up a simple UNIX socket client and server to communicate, and i can build from there. 12:04:06 hmm 12:04:13 well ive not looked at my sockets code in AGES 12:04:21 but that irc bot basically does just that 12:10:19 but its not UNIX socket :) 12:10:36 arke: you mean UDP? 12:10:59 Loading irc.f 12:10:59 #inbuff ? 12:11:06 Sonarman: no, UNIX sockets :) 12:11:13 AF_UNIX 12:11:46 irc.f ? 12:11:49 try fload bot/bot.f 12:12:42 src/bot/io.f open error 12:12:44 erm 12:12:45 oh 12:12:46 lol 12:13:08 ok, worked this time... 12:15:04 --- join: [Forth] (~Forth@ca-cmrilo-cuda1-c3b-124.vnnyca.adelphia.net) joined #forth 12:16:08 [Forth]: greetings 12:16:15 [Forth]: Quit 12:16:18 ugh 12:16:19 bah 12:16:21 . 12:16:30 alright, i think I got it :) 12:17:42 --- quit: schihei (Client Quit) 12:18:03 uum 12:18:07 how do I quit it? :) 12:18:22 erm press x in the console hhe 12:18:34 it sometimes takes a second or 2 before it quits 12:18:46 --- quit: [Forth] (Client Quit) 12:18:48 it doesnt respond to in channel 12:18:53 its a DO NOTHING bot 12:18:55 as yet 12:18:57 :) 12:22:50 I440r: C" for c-strings? 12:23:04 err no 12:23:09 what are you trying to do 12:23:21 make a C string 12:23:23 do you want a counted string or a null terminated string 12:23:27 null terminated 12:23:31 but show me both 12:23:36 create counted-string 12:23:42 ," this is a counted string" 12:23:48 create null-terminated-string 12:23:57 ,' this is an uncounted string' 0 c, 12:24:06 YOU have to put the null terminator 12:24:33 you CANNOT embed a string inside a : definition 12:24:41 other than a ." or an abort" 12:24:46 hrm 12:24:47 dam 12:24:49 ok 12:24:57 its a fucked up idea anyway 12:25:03 you cant execute a STRING 12:25:09 you can execute a ." tho 12:25:35 you embed a string insde a : def and its execution vector is to a word to SKIP past the string 12:25:55 just fscking compile the address of the string as a literal and keep the STRING outside the : def 12:26:12 iwish the fuck ans people would stop fucking coding gordian knot bullshit 12:26:16 makes sense. 12:26:18 heh 12:26:27 i read a transcript from some ANS meeting earlier 12:26:39 chuck kept bagging and bagging and bagging on them 12:26:42 about various things 12:26:55 like MOVE, IF, EVALUATE, and others 12:27:12 the company im working for had one of the guys on the ans std team working for them - from what i can gather he was a good forth coder but spend months there with NOTHING to show for it 12:27:23 he produced huge ammounts of NOTHING 12:27:38 move is anothyer fucked up featureitis word 12:27:45 use cmove and cmove> 12:27:59 move arbitrates which of the above to use 12:28:01 bah 12:28:28 thats so the dumbass coders dont need to know the language and decide which of the above two he/she needs 12:28:48 yeah 12:28:58 * I440r wont cater to the moronic "i dont know how to code really" group 12:29:29 i need to learn strings :P I don't get strings of any kind in any dialect of any sorts 12:33:37 what number is bind ? 12:37:32 wtf!? 12:37:48 i cant find bind! 12:38:59 syscall number? 12:40:06 socketcall number' 12:40:43 oh 12:42:12 ugh 12:42:16 i hate this fucking keyboard 12:54:18 --- quit: I440r ("Leaving") 12:55:47 --- quit: wossname (Connection timed out) 13:13:58 Robert: does isforth use EXIT or RETURN? 13:14:10 erm, nvm 13:45:39 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 13:45:39 --- quit: I440r (Client Quit) 13:46:26 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 13:55:11 --- join: _gps_ (~gps@166.70.196.201) joined #forth 14:30:16 --- quit: ChanServ (Shutting Down) 14:30:28 --- join: ChanServ (ChanServ@services.) joined #forth 14:30:28 --- mode: tolkien.freenode.net set +o ChanServ 14:30:37 --- join: Robert_ (~snofs@c-305a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 14:31:06 --- quit: Robert (Nick collision from services.) 14:31:14 --- nick: Robert_ -> Robert 15:11:40 --- join: Robert_ (~snofs@c-305a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 15:11:52 --- quit: Robert (Read error: 104 (Connection reset by peer)) 15:12:11 --- nick: Robert_ -> Robert 15:29:45 --- quit: rO| (Read error: 110 (Connection timed out)) 15:39:40 --- quit: I440r ("Leaving") 16:30:59 oops. left irc on all weekend while I was away 16:31:05 I'm back! 16:31:20 wow somebody actually looked at my website and sent a comment. 16:49:22 Hi :) 16:54:14 hi robert :) 17:13:54 I think what I need is a good example of using Forth to implement something real-worldish, like taking stdin, replacing every occurence of foo with bar, and writing to stdout. I don't know this for a fact, but I think Forth would tend to appeal to the unix-y types more than the Windows-y types. And in Unix, we do everything with files, redirection, and pipes. And I have no idea in something like isforth or gforth of how to implement reading f 17:13:54 rom stdin. Something like "cat foo | gforth myfilter >arf" 17:42:33 --- quit: haroldo_ (Read error: 110 (Connection timed out)) 17:43:31 jc: yeah :) 17:43:35 jc: you can use isforth for that. 17:43:46 jc: strings are not very nice in forth, however. 17:44:04 --- join: haroldo_ (~haroldo@r200-40-164-123-dialup.adsl.anteldata.net.uy) joined #forth 17:44:16 dude 17:44:19 arke: 17:44:24 strings aren't very nice in computers 17:44:29 jdrake: yeah. 17:44:30 er 17:44:32 warp0x00: yeah 17:44:36 lol 17:45:10 who invented strings anyway 17:48:17 --- quit: _gps_ (".") 17:53:16 they invented themselved. 17:53:50 strings aren't very nice in C 17:53:50 they were first discovered after they overflowed their buffers, entering the realm of humankind 17:55:04 :) 18:00:36 What?!? Strings in C are trivial. Heck, only Basic and Perl make strings any easier. 18:02:12 BASIC!??? 18:02:16 OMG 18:02:24 you are on some serious fucking crack 18:02:25 jc: strings are a pain to manipulate in C 18:02:45 most interpreted languages make strings easier than C 18:03:50 you can't do this in C: a = "Current value: " + x "\n"; 18:04:05 you can't do this in C: a = "Current value: " + x + "\n"; 18:04:11 brb 18:04:14 --- quit: Herkamire ("leaving") 18:14:43 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 18:45:31 I write thousands of lines of C every year. Strings are trivial. And I was using BASIC as a comparison for how simple strings are to use. I didn't say I liked basic. 18:45:53 Agreed, you can't use + (not talking C++ here), but concat'ing strings is still easy. 19:12:28 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 19:16:56 --- quit: ChanServ (Shutting Down) 19:17:10 --- join: ChanServ (ChanServ@services.) joined #forth 19:17:10 --- mode: tolkien.freenode.net set +o ChanServ 19:20:03 --- quit: ChanServ (ACK! SIGSEGV!) 19:24:58 --- join: ChanServ (ChanServ@services.) joined #forth 19:24:58 --- mode: tolkien.freenode.net set +o ChanServ 19:25:12 --- quit: ChanServ (ACK! SIGSEGV!) 19:29:58 --- join: ChanServ (ChanServ@services.) joined #forth 19:29:58 --- mode: tolkien.freenode.net set +o ChanServ 20:44:25 I440r: there? 20:44:33 nope 20:44:35 :) 20:44:37 I440r: :) 20:44:49 I440r: RECURSE in isforth isnt true tail-recursive 20:44:56 any way that can be amended? 20:45:12 depends lol 20:45:28 heh 20:45:55 how does a word look like in memory? 20:46:00 (i might have an idea 20:46:51 DTC doesn't allow jumps, but maybe you can declare words as tail-recursive 20:47:19 and in that case, isforth would jump to the second slot in the code field 20:47:25 the first slot being rdrop 20:47:29 dood use goto 20:47:39 : blah ...... goto foo ; 20:47:42 and RECURSE would go to 1st field (rdop ) 20:47:45 YOU make the words tail recursive 20:47:47 GOTO IS EVIL! 20:47:52 wheres foo? 20:47:54 no stop thinking basic 20:47:59 goto is NOT evil 20:48:03 goto still is evil 20:48:09 ok whatever 20:48:12 thats how you do it 20:48:13 but anyway 20:48:17 how does goto work? 20:48:23 : blah ... goto blah ; ? 20:48:36 no 20:48:41 : blah ..... recurse ; 20:48:43 bad 20:48:57 you CANT toto blah because its not revealed 20:49:04 but thats not tail recursion 20:49:05 use 20:49:06 begin 20:49:08 again 20:49:12 fuck recursion 20:49:35 anything you can do WITH recursion can be done FAR fucking better without 20:49:58 actually, i do like tail recursion very much in certain cases. 20:50:08 makes some things neater 20:50:14 which is why i want to use it 20:50:39 you tell ME the difference between begin ... again and label: ...... jump label 20:50:43 there IS none 20:50:46 use begin/again 20:50:55 or begin while repeat or begin until 20:51:03 recursion is for lamers 20:51:17 i am lame 20:51:22 so there. 20:51:41 : recurse 20:51:41 last @ name> , ; immediate 20:52:47 whats count and lexmask? 20:53:26 brband ill tell u 20:53:31 ok 20:55:14 : tail-recurse last @ name> @ compile goto , ; 20:55:47 lemme test :) 20:57:42 it doesnt recurse. 20:58:22 it jumps back to the start of the definition 20:58:35 yeah 20:58:40 it doesnt work... 20:59:01 : blah 1 + tail-recurse ; ok 20:59:01 0 blah ok 20:59:07 should give an infinite loop 20:59:18 . 1 ok 21:00:05 hang on 21:03:28 it seems that goto is the problem here ... 21:03:52 unless... 21:04:10 ok let me go test 21:04:37 ohh lol 21:04:40 make it immediate 21:04:41 : tail-recurse last @ name> @ compile goto , ; immediate ok 21:04:41 : blah 1 + dup . tail-recurse ; ok 21:04:41 0 ok 21:04:41 blah 1 Speicherzugriffsfehler 21:04:42 chris@chris:~/RkG> 21:04:51 i was already doing that... 21:04:53 : tail-recurse ..... ; immediate 21:04:55 sorry lol 21:05:00 it only seems to print it once though. 21:05:06 It's very difficult to recurse through directory trees without recursion. Where as the state can naturally be maintained on the stack, you're forcing the user to allocate space to preserve the state, and know ahead of time how much space he'll need. 21:05:13 no its not 21:05:48 i do depth first and breadth first tree spanning with itterative methods all the time 21:05:54 and tey are MUCH easier to understand 21:05:54 hrm 21:06:05 it seems that tail-recurse crashes now 21:06:13 ok wait lol 21:06:49 oh. yea it will. lol 21:07:09 it fils the return stack hang on ill re-write it 21:07:49 : trecurse last @ >body compile branch , ; immediate 21:08:45 i would put a dup . cr inside your loop to prove its running 21:09:06 hrm it crapped out on me after about 4k iterations 21:09:06 : test 1+ dup . trecurse ; 21:09:07 which shouldnt be happening 21:09:08 heh, thats exactly what i had 21:09:16 so i think it still fills the rstack somehow... 21:09:24 do you have a rdepth or such? 21:09:55 no. its a stack crash tho let me investigate lol 21:10:03 :) 21:12:54 i dun get it 21:13:03 thers a reason its doing this i just dont know what it is lol 21:13:26 well, it definetely does increase the rstack by 1 each time 21:13:58 try inserting : rdepemit rp@ rp0 swap - 2/ 2/ . ; in trecurse, and see what it does 21:14:09 the return stack is being overflowed 21:14:12 and it shouldnt be 21:15:06 yup the return stack is filling up 21:17:27 grr. 21:17:33 i know where its going wrong 21:17:37 you do? 21:17:39 where? 21:17:41 but now to fix it 21:17:50 whats it doing wrong? 21:18:00 heh 21:18:04 is it the branch? :) 21:18:09 the branch address is wrong - last @ is not giving the address of the word USING tail-recurse 21:18:35 er 21:18:39 shouldnt it? 21:19:17 : zzz last @ ; immediate ok 21:19:17 : test zzz literal h. ; ok 21:19:17 test 80D1B53 ok 21:19:17 ' test h. 8054846 ok 21:19:34 OOOH i think i got it lol 21:19:39 wait 21:19:44 dumbass grr 21:19:54 last @ gets the NFA not the cfa 21:23:21 : tail last @ name> >body compile branch , ; immediate ok 21:23:21 : test 1+ dup . cr tail ; ok 21:23:22 lol 21:23:22 er?  21:23:44 last @ returns the address of the most recent words name field 21:23:54 oh 21:23:55 haha 21:24:02 and its not in it before ; ? 21:24:10 ? 21:24:12 that works 21:24:17 but its pointless 21:24:23 : test begin ...... again ; 21:24:31 MUCH more readable 21:26:01 thanks 21:26:12 i like the recursive approach better in certain cases :) 21:26:55 be warned 21:27:05 that definition will NEVER be in the isforth release 21:27:10 so if you want it you keep it 21:28:33 I will. 21:28:43 thanks alot :) 21:32:28 arke can you ssh to my ip and tell me what it does ? 21:32:48 does it refuse connection or ask for a login 21:33:23 ; immediate 21:33:23 : cstring-len-do ( addr 0 -- addr+len len ) 21:33:23 over c@ if 21:33:23 \ Again... 21:33:26 1 + swap 1 + swap 21:33:28 tail-recurse 21:33:30 then 21:33:33 ; 21:33:35 : cstring-len ( c-addr -- len ) 21:33:38 0 cstring-len-do nip 21:33:41 ; 21:34:26 for some reason, it gives 14 for a size 6 string 21:35:04 er 21:35:05 nevermind 21:35:10 that was my own stupidity 21:35:13 it works :) 21:35:23 why 1 + instead of 1+? 21:35:38 dunno. 21:35:43 I440r: you need a disassembler. 21:35:46 :) 21:35:52 i need an assembler first 21:36:07 PLEASE, not a postfix assembler... 21:36:07 shouldnt be too hard. 21:36:10 stack baded? 21:36:15 can you /dns me ? 21:36:15 jc: those are fun though. 21:36:18 whats my ip ? 21:36:22 I hate postfix assembly. 21:36:27 chris@chris:~> ping 12-160.lctv-a5.cablelynx.com 21:36:27 PING 12-160.lctv-a5.cablelynx.com (24.204.12.160) 56(84) bytes of data. 21:36:27 --- 12-160.lctv-a5.cablelynx.com ping statistics --- 21:36:27 3 packets transmitted, 0 received, 100% packet loss, time 1999ms 21:36:27 chris@chris:~> ssh 24.204.12.160 21:36:41 (this went on about 3 minutes silent until i ctrl+c it) 21:36:55 jc: its not the greatest, but the best on a forth sys. 21:37:13 best? Maybe easiest, but I wouldn't say best. 21:37:25 easiest, fastest, you name it. 21:37:42 easiest to implement, actually 21:37:47 not easiest to use... 21:37:48 can someone please try sshing to this ip ? 21:37:53 24.204.12.160 21:37:56 I440r: i did. didnt work. :) 21:38:00 i need to know if its refused 21:38:05 was it refused or just nothing 21:38:12 it was doing nothing at all 21:38:25 I think your firewall is blackholing it. 21:39:09 mine might., 21:39:53 7: so-1-0-0.gar1.Atlanta1.Level3.net (67.72.8.5) asymm 8 117.707ms 21:39:53 8: so-6-0-0.gar2.Atlanta1.Level3.net (209.247.9.161) asymm 9 117.862ms 21:39:53 9: so-0-3-0.bbr2.Atlanta1.Level3.net (209.247.11.225) asymm 10 117.309ms 21:39:53 10: so-0-1-0.bbr1.Dallas1.Level3.net (64.159.1.109) 136.647ms 21:39:53 --- quit: I440r (Read error: 104 (Connection reset by peer)) 21:39:53 11: no reply 21:40:00 and once again, i shall wake up at 2am 21:40:34 no reply on hops 11 through 16 21:44:13 ugh 21:44:14 fuck 21:44:15 he left 21:44:16 dammit 21:44:48 Prolly restarting the firewall or somesuch. That usually drops a connection 21:45:11 : cstring-len-do 2dup + @ 0= if exit then 1 + ; 21:48:04 or if you have the handy word 0=; (works in place of "0= if exit then") it's just: : cstring-len-do 2dup + @ 0= 0; 1+ ; 21:48:39 I mean: : cstring-len-do 2dup + @ 0=; 1+ tail-recurse ; 21:49:38 that should be c@, shouldn't it? 21:49:43 --- join: jdrake (~whore@CPE00045afdd0e8-CM014410113717.cpe.net.cable.rogers.com) joined #forth 21:49:57 jc: :) yes 21:50:13 Herkamire: its supposed to be tail-recursive! 21:50:38 arke: huh? 21:50:41 thats why you skip the 0= and put tail-recurse instead of exit 21:50:44 makes i better :) 21:51:07 you have to exit when you get to the 0 terminator 21:51:10 not recurse 21:52:52 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 21:52:52 --- mode: ChanServ set +o kc5tja 21:52:55 kc5tja!!!! 21:52:56 yay! 21:53:09 re, for now. 21:53:11 kc5tja: i gave up on gforth. 21:53:17 kc5tja: isforth-time. 21:53:20 kc5tja: :) 21:53:21 I have to work tomorrow, so I will be going to bed within an hour or so. 21:53:25 :) 21:53:57 * kc5tja spent some time reviewing the ELF32 header format this morning. 21:54:22 Although I think it's quite doable (e.g., isForth does it), I'm not sure I want to use it to generate stand-alone executables in FS/Forth. 21:54:41 It seems like an awful lot of work to go through, and I'm not sure the gain is all that worth it for me. 21:55:16 FS/Forth = what type of forth? 21:55:25 ITC?DTC?STC?TTC?NTC? 21:55:36 and what the heck is doubly ITC? 21:55:59 Building and maintaining an ELF header is beneficial in that it enables me to compile faster software (fewer register-indirect addressing modes), but maintaining relocation tables just seems like a pain. And the string table doesn't seem like it'd help much. 21:56:05 arke, I already told you. :) 21:56:15 FS/Forth is native code compiling. 21:56:20 so NTC :) 21:56:26 And doubly indirect threaded code is just what it says: doubly-indirect. 21:56:29 (which doesnt make mark very happy) 21:56:43 Fuck Mark. 21:56:48 heh 21:56:55 so basically, a double pointer? 21:57:01 pointer to pointer to code field!? 21:57:01 I mean, I like him and all, but his opinions have no bearing on what I do. 21:57:03 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 21:57:05 whats teh point of that? 21:57:15 I440r: speaking of whom... 21:57:18 lol 21:57:18 haha 21:57:18 arke: It depends. 21:57:20 I440r: :) 21:57:43 FS/Forth is my Forth. If others find it useful, that's fine. If not, that's not my problem. :) 21:57:50 kc5tja: :) 21:57:59 kc5tja: I'll port RkG to it :) 21:58:08 If/when I get it done. 21:58:09 kc5tja: for now, RkG will be isforth turnkey 21:58:15 At this point, progress is next to zero. 21:58:20 Forth interpeters are like assholes. Everyone has one, no one wants to look at anyone elses... 21:58:41 jc: that is not true at all. 21:58:43 jc: I looked at a *lot* of other interpreters before choosing my implementation. 21:58:47 No, wait. That's supposed to be "opions", isn't it? 21:58:51 jc: IsForth is a very beautiful Forth 21:59:12 er, opinions. I can type. Really. 21:59:19 :) 21:59:38 I haven't used IsForth, but it seems like a pretty decent system. It has an impressive compile speed, and it is currently the only Forth for Linux that can turnkey itself easily. 21:59:40 which reminds me, i need to re-extend isforth to not show the title bar (which allows scrollback!) 21:59:50 kc5tja: it is soooo easy 22:00:09 arke: That's nice, but I just don't need that capability. 22:00:13 ' entry is quit turnkey my-application 22:00:16 done! :) 22:00:19 kc5tja: :) 22:00:21 :( Arthritis acting up again. :( 22:00:26 :( 22:00:36 gforth can't turnkey 22:01:00 I would like FS/Forth to turnkey, but I don't see that happening. 22:01:14 :) 22:01:24 well, if you're awake at 2am, i will too :) 22:01:25 kc5tja: does/will fs/forth link to libraries? 22:01:28 ELF is just too intensive. 22:01:39 (my newest thing: sleep until 2am, then wake up and code/play freeciv 22:02:09 Herkamire: FS/Forth doesn't exist for Linux yet. Yes, it will link to libraries, via libdl.so (e.g., the linkage will be entirely built at run-time by explicitly opening libraries by name, rather than linking against them). 22:02:55 ill be watching you while i sleep .. literally! keep talking 22:02:56 night 22:03:03 kc5tja: cool. I like that. but then why would you need symbol tables and such in your ELF header? 22:03:08 Herkamire: However, FS/Forth, being native code compiling, will only support x86. I have no immediate plans to support PowerPC 22:03:49 FWIW my PPC forth can turnkey easily 22:04:10 not sure of the exact definition of turnkey, but it spits out an ELF that runs by it's self 22:04:13 Herkamire: To create the initial bindings to libdl.so, you need to link against it. Hence, you need a symbol table for those symbols. You also need the symbol table for any exposed functions too (e.g., if one were to use FS/Forth to write a .so file, for example) 22:04:36 Herkamire: Your code maintains a complete list of address relocations as it compiles? 22:04:57 oh, I thought you were dynamically linking to libsdl too. 22:05:07 That's what I'm concerned about: I already have two tables (the Forth and Compiler wordlists), plus I have a whole stack of USER-variables; I don't want to have to extend that. 22:05:12 Herkamire: I am. 22:05:23 libsdl = dlopen( "libsdl.so" ); 22:05:26 if( libsdl != 0 ) 22:05:36 and you need to have a symbol table for that? 22:05:42 func = dlsym( libsdl, "sdl_sync" ); 22:05:46 func(); 22:05:52 No. 22:05:54 (sorry for stupid questions, I've never done dynamic linking) 22:06:11 You need a symbol table to link against libdl, so that I can use dlsym, dlopen, and dlclose. 22:06:27 Linux has no intrinsic API for manipulating, or even using, shared libraries. 22:06:33 Neither do most Unices. 22:07:11 perhaps what I do wouldn't count as turnkey. when you press shift-S it compiles a new kernel (elf header and all) and then saves that along with source code in an ELF 22:07:17 Shared libraries works under Unix only because of a really convoluted process involving dynamic loaders and such. This is why ld.so must be used as the process 'loader' -- it understands how to load a binary that links against a dynamic library. 22:07:30 Herkamire: No, that's turnkeying. 22:07:32 when the ELF starts up (unless you change something) it starts running the source saved in itsself 22:07:42 That is the very definition of turnkey. 22:07:49 But... 22:08:00 I cannot assume my code loads at a fixed address. 22:08:10 So any variable references need relocation. 22:08:15 you want to be able to make libraries? 22:08:24 Or, more bluntly, any use of an absolute address needs relocation. 22:08:41 my code is not relocatable 22:08:43 Herkamire: Not right away. 22:08:56 It'd be a nice feature to have though. 22:09:16 Especially when writing software using unit tests. 22:09:30 if you want to be able to compile a binary then you would have to have a symbol table. but if not, and all your linking is dynamic, I don't see why you would need a symbol table. 22:09:50 OK, I'm really not sure how many times I need to explain this. 22:09:58 Nor am I sure of how to make it any clearer at all. 22:10:08 oooh :) I like that idea. then your unit tester could just load your forth and call a function :) 22:10:14 I need a symbol table because FS/Forth needs to invoke dlopen, dlclose, and dlsym. 22:10:21 These functions are not Linux API calls. 22:10:29 oh. 22:10:30 They exist solely in libdl.so. 22:10:35 E.g., itself, a shared library. 22:10:39 so you are statically linking to libdl.so 22:10:41 Hence, I must link against that shared library. 22:11:04 is statically linking the propper terminology? 22:11:08 No 22:11:36 If you have libfoo.a (e.g., an archive of .o files), that's statically linking, because a physical, self-contained, 100% complete copy of libfoo is embedded smack in your binary's file. 22:11:45 --- join: Serg_Penguin (~z@212.34.52.140) joined #forth 22:11:57 right 22:12:08 If you have libfoo.so (e.g., a shared object file), that's dynamic linking, because you include only references to the library, which is loaded at load-time, and linked just before run-time. 22:12:44 for what you're doing, you simply say "fsforth links to libdl" right? 22:12:58 What I'm trying to do is something equivalent to this: 22:13:06 ld -o fsforth fsforth.o -ldl 22:13:13 right 22:13:24 so then you need the libdl symbols in your ELF's simbol table 22:13:31 Yes 22:14:07 would you consider having just those symbols? (downside being that you could not load your forth _as_ a library? 22:14:55 Well, I need to do a complete feasibility study. But I'd rather not impose artificial limitations if I can help it. 22:15:15 right 22:15:20 --- join: matt_ (~matt@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 22:15:33 I guess what I'm saying is that ELF is not hard to implement. 22:15:40 that really sucks that the dlopen and dlsym are not syscalls 22:15:41 But ELF may be hard to maintain in a live Forth system. 22:15:54 Well, not even hard. 22:15:58 Just cumbersome. 22:16:07 I think it would be cumbersome to compile relocatable code 22:16:13 And I am seriously questioning whether the payoff is worth the implementation complexity. 22:16:19 It's not. 22:16:27 mov eax,address_of_foo 22:16:28 actually, you're right 22:16:38 99% of my code is relocatable 22:16:49 is perfectly relocatable, as long as you flag that use of address_of_foo as needing a fixup in a relocation table. 22:17:02 bye 22:17:09 laters clog 22:17:12 FOASIJDF: 22:17:20 I hate this program sometimes. 22:17:21 later arke 22:17:39 Tab completion should never change to tab enumeration. 22:17:55 it's pretty easy most of the time to be relocatable without the need for fixup on PPC at least. just use relative branches, and use branch tables instead of tables of function addresses. 22:18:24 kc5tja: you mean it should work like it does in vim not bash? 22:18:25 With x86, you only have relative branch addresses. 22:19:01 Herkamire: When I type foo in Bash, it'll complete, but it will NOT auto-enumerate (e.g., each does not cycle through a list of matches prefixed with foo). 22:19:09 Bash exhibits perfectly correct behavior. 22:19:58 what exactly do you mean by enumerate? you mean display all possible completions? or try the first possible enumeration? 22:20:06 Type "arke" in x-chat, then hit tab. 22:20:09 Watch what happens. :) 22:20:19 don't have xchat 22:20:30 irssi completes the first match of multiple matches 22:20:31 It'll respond with clog, because it's the next item in the user list. 22:20:48 and doesn't cycle through them if you hit it again 22:20:52 Herkamire: So does x-chat. But then, after that, it'll enumerate. 22:21:21 enumerate throught things that done't match? 22:22:00 Yep. 22:22:02 irssi completes with the matching nick that most recently said something in the channel. I think that's the most useful 22:22:18 * kc5tja prefers the Bash solution -- hit tab, and it beeps. Hit it again, and it shows a list of choices. Pick one. :) (I admit vim's is nicer, but not essential.) 22:22:23 althought it does give the wrong nick sometimes 22:22:50 I think it depends on context 22:23:01 when I don't know what's there, I very much prefer bash. 22:23:17 but when I'm opening files I open a lot (like programming on my own projects) I prefer vim 22:23:43 I actually wish bash completed the same way as vim (with another key to show you all matches) 22:23:50 I've used vim for years, and never have I ever opened more than one file in vim. Nor have I ever used the :r command. :) 22:24:17 :) actually vim does have another key to show all matches (ctrl-D) 22:24:33 wow 22:24:43 I use multiple files a lot 22:25:00 do you use split? 22:25:05 Split? 22:25:10 :split filename 22:25:13 No 22:25:19 One window, one console, one editor. 22:25:36 interesting. 22:25:47 so you just quit and open another file? 22:26:00 Yep. Or I open another shell window. 22:26:25 My feeble mind isn't sophisticated enough to memorize all the useful commands of vim and it's multi-file support commands too. 22:26:48 it did take a while before I knew enough commands to enjoy multiple files 22:27:17 the one that makes it all worth it is ctrl-shift-6 (ctrl-^) which switches to the last file you were looking at 22:27:19 I need to pick up a good book on vim. 22:27:49 * kc5tja has the O'reilly book Learning VI, which is a *very* good book. 22:27:51 much quicker that :q 22:28:15 But it doesn't go into specifics with respect to vim. 22:29:05 I've hardly used straight vi, so I'm not terribly aware of what features are only in vim 22:29:15 LOTS. :) 22:29:19 :) 22:29:46 Having used raw vi, I'd never choose vi over vim. It's just too useful. 22:30:14 I agree 22:30:42 I'd choose vim simply for the syntax coloring. 22:30:51 Another feature I don't use. :) 22:31:20 --- quit: Sonarman ("leaving") 22:31:45 maybe it's my dyslexia or something, but I find it way easier to see what's going on with color 22:32:30 BTW vim doesn't really edit multiple files at once (unless you split the screen and show them both at once.) 22:32:37 Yes, I know. 22:32:42 it more keeps track of what files you've had open, and allows you to switch 22:32:57 But unless I have a good user interface for supporting multiple files, which neither Emacs nor vim support to my liking, I just won't use it. 22:33:12 the only way I use that history is ctrl-^ to switch to the last file 22:33:18 I find I can keep things in my head better if I can actually see the files that are open, instead of remembering which window has what file tucked away underneath something. 22:33:42 that's the way vim works 22:33:52 in vim the only open files are the one(s) you can see 22:33:55 The only thing I miss doing it this way is cut-n-paste, beyond that which fits on a single window at least. 22:34:19 --- quit: arke (Connection timed out) 22:34:33 I'm not too sure about that. 22:34:35 vim saves it's clipboard across sessions 22:34:48 I distinctly remember having a session that had three files open at once, but only one was on screen at a time. 22:34:58 Herkamire: Across sessions. Not across windows. 22:35:02 when you do :e it closes the file you're looking at (you must first save or discard changes) before it opens the one specified 22:35:52 it then saves the filename of the one you were just editing so you can go back and edit it if you like 22:36:22 kc5tja: right. not accross windows. that's one reason I often do multiple files in one vim session 22:37:03 I don't use it often enough to be a major concern. 22:37:09 But :e seems like it'd be useful to me. 22:37:15 I wasn't aware of its existance. 22:38:11 * kc5tja just learned of the :e! command -- basically "revert to last saved." :) That can be of immense value. 22:38:23 nice :) 22:38:36 makes perfect sense :) 22:38:55 the default file is the one you're looking at. ! generally means without saving 22:39:11 * Serg_Penguin screwed my mind w/ VI 22:39:27 i can never imagine more weird editor ;(( 22:39:45 Serg_Penguin: ever tried ed? 22:40:15 in a fresh install of FReeBSD, i had to edit /etc/rc.d to raise network 22:40:27 it was a big deal of pain ! 22:40:32 ed ? no, never 22:42:34 I like :e! now I don't have to do :q! and open the file again 22:43:37 I still think ctrl-d for listing possible completeions is my best new vim descovery. awesome with the :help command 22:43:50 especially since I can't seem to find the command to go to the next matching help page 22:43:53 Herkamire: Yes. 22:44:00 * kc5tja is experimenting with split windows now. 22:44:13 vim can handle vertical panes as well as horizontal panes. 22:44:26 :vsplit 22:45:09 ^W^W switch panes 22:45:14 hmm, trying to use quartus forth... really need one of those keyboard's for the palm 22:45:29 [number]^W+ make pane bigger 22:45:34 --- nick: matt_ -> fridge 22:46:49 I love'd my targus keyboard 22:47:03 too bad they didn't have dvorak support until after my visor died 22:49:10 at the moment, I write code on the pc, export it to the palm, then "include file"... even typing that takes a bit of effort, I'm not a fan of pen based input methods 22:49:34 * kc5tja must be the only person who really doesn't have that much of a problem with it. :) 22:49:38 fridge: have you seen dasher? 22:49:41 But I agree that a keyboard is nice to have. 22:49:59 Oh crap! I forgot to do laundry tonight! :( :( 22:50:18 Herkamire, I think I have 22:50:29 I thought it was only for PocketPC 22:50:41 I have wet laundry in the washer 22:50:53 kc5tja: than's for reminding me :) 22:50:55 if is a stream of letters zooming in? 22:50:58 brb laundry 22:51:24 * kc5tja is going to put his laundry in to let it run over night. 22:51:28 Then dry it in the morning. 22:51:39 dasher is the zooming letters. it's mainly a linux project I think 22:52:30 I think I heard that palm is not fast enough to run dasher 22:54:29 Certainly the ARM-based units are... 22:59:32 Hmm...Dasher looks very interesting. :) 23:01:55 :) 23:02:53 there is an mpeg of someone using dasher on an ipaq 23:04:59 my uncle (who is a chiropractor and also works with people with severe disabilities) was very interested in the possibility of some people who can't type (or maybe even people who can't move their arms at all) being able to type with dasher 23:05:02 I looked at the eye-movement video. That's pretty neat. 23:05:17 yeah :) I want to try :) 23:05:40 * kc5tja wonders how hard it'd be to write software that works like Dasher. 23:06:01 donno 23:06:10 I think they did a damn good job though 23:06:53 can anyone translate this letter (or jist of it) into a more english rather than the format it is in now? http://darwinports.gene-hacker.net:8080/430 23:10:14 --- quit: Serg_Penguin () 23:11:11 jdrake: yes :) it's quite amusing 23:12:02 i can't quite understand it too much 23:14:16 Dear Editor 23:15:13 I am afraid that the letter in the last issue about Forth Inc's using only three letter name name fields has had the opposite effect from what the writer wanted. His letter (like this one) showed that saving only three letters and count is just about optimal in terms of a trade off between saving memory and keeping legible. We still don't se the need for 31 character names in the general case. 23:15:19 Yours Truly 23:15:21 Chuck Moore 23:15:24 Forth Inc. 23:15:57 i disagree with that big time 23:16:17 full names COST NOTHING if you keep headers seperate and turnkey 23:16:25 I440r: I agree with it, considering the usual case of Forth programming. 23:16:37 I440r: You're changing the argument. 23:16:49 no - its saying 3 letters and a count is enough 23:16:51 i disagree 23:16:55 That's not what it's saying. 23:16:57 how about this idea - back then machines were slower 23:17:00 That's not AT ALL what it's saying. 23:17:16 We still don't se the need for 31 character names in the general case 23:17:38 It's saying that three letters and a count are enough in terms of a trade off between saving memory and keeping legible. That is a signficiant difference. 23:17:46 three letters and count is just about optimal in terms of a trade off between saving memory and keeping legible 23:17:53 3 letters is illegible 23:17:58 so the trade off isnt there at all 23:18:02 ummm 23:18:04 ummm 23:18:09 I440r: don't know about you, but I could read the letter just fine 23:18:14 you do realize that the source still has more than three letters in it, right? 23:18:15 it is legeble 23:18:21 i didnt look at it lol 23:18:28 how about C64 - it only kept the single character i think (basic) 23:18:40 jdrake: But it didn't let you have long variable names at all. 23:18:41 so is the letter where they swap arround all the middle letters of every word 23:18:44 I440r: read: http://darwinports.gene-hacker.net:8080/430 23:18:57 What it's saying si that you can have any word you want, but only the first three letters are significant with respect to scanning the dictionary. 23:19:21 It does ******NOT****** say that you're restricted to just three letters. 23:19:28 having to read that crap in source files would be a nightmare 23:19:37 Oh for fucking god damned christ's sake. 23:19:39 thank you for the translation and invoking conversation :-) 23:19:49 you have to think at each word 23:19:56 I440r: I don't 23:19:56 if the words were all there in full you would not have to 23:20:01 also the letter is contrived 23:20:06 I440r: Please stop. 23:20:15 yes please 23:20:21 You're making accusations that are wholesale wrong and uninformed, You have demonstrated a total ignorance of what Chuck is driving at. 23:20:21 im sure i could come up with a letter just like it that was almost impossible to read 23:20:22 please 23:20:41 * kc5tja sighs 23:20:44 I440r: good for you. that's not the point. 23:20:47 * jdrake notices kc5tja's Godliness at the moment 23:20:51 no. i see exactly what he is driving at and i disagtree 23:20:57 o, you clearly don't. 23:21:05 You insist that three letter words are illegible. 23:21:08 Which may be true. 23:21:17 I440r: you didn't even read the thing before you decided it was wrong. now drop it 23:21:21 But what is being discussed is not source code consisting exclusively of three-letter words!!! 23:21:36 What is being discussed is DICTIONARY SEARCH KEYS consisting of three-letters and a count. 23:22:07 Anyway, I'm going to bed. 23:22:15 i can't take much more of this, and I have to work tomorrow. 23:22:15 goodnight kc5tja :) 23:22:25 don't forget your laundry :) 23:22:26 bah. try using a decompiler or debuggger on those words 23:22:29 nightmare 23:22:39 I440r: You don't need a decompiler or debugger -- you have the block source. 23:22:45 is there any place where I can get a quick overview of forth syntax and common practice? 23:22:53 jdrake: No 23:23:05 There is no such thing as common practice in Forth. 23:23:24 how about the syntax part 23:23:37 thers almost no such thing as syntax too heh 23:23:43 how about this - is there a nice standard that can be read 23:23:49 As far as Forth syntax is concerned, probably the best in-print reference is the "Forth Handbook," by Elizabeth Rather. 23:23:50 no 23:23:57 thers an evil standard that can be read thoi 23:23:59 tho 23:24:04 forth-83? 23:24:14 kc5tja, any online references? 23:24:21 no i prefer that to ans for sure 23:24:32 * kc5tja overwhelmingly prefers ANSI to F83. 23:24:52 the ans std is designed to let people NOT have to know forth 23:24:56 ANSI basically *is* F83, but it's been modernized and rationalized. And is platform independent. 23:25:01 I440r: Another baseless accusation. 23:25:05 no 23:25:09 Prove it to me. 23:25:18 postpone 23:25:25 nuff sed 23:25:28 Wrong. 23:25:32 To use it, you must know Forth. 23:25:38 no 23:25:46 one point for kc5tja 23:25:47 postpone is horrible 23:25:51 In fact, that is THE quintessential word you must know Forth about to use it, lest you crash the environment. 23:25:59 it will do [compile] AND compile both 23:26:12 I440r: PRECISELY WHY YOU MUST KNOW FORTH TO KNOW WHEN TO FUCKING USE IT! 23:26:14 thus releaving you of the responsability of know how to use those words 23:26:25 nope 23:26:35 you need to know forth to know compile and [compile] 23:26:45 * kc5tja sighs 23:26:49 postpone baby's you so you dont need to know if the word your compiling is immediate or not 23:26:50 Whatever. 23:26:59 That is just plain not true. 23:27:45 hmm, kc5tja reminds me sort of like smerdy and I440r reminds me for arke both from #hprog 23:28:00 only kc5tja is consistantly correct and rational :) 23:28:19 And in a pissy mood because of all the horseshit misinformation flinging around here. 23:28:21 no he just argues better 23:28:41 Anyway, 23:28:48 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 23:29:19 the ans standard does NOTHING helpfull, it RESTRRICTS whaqt you can do 23:29:22 forth doesnt 23:29:24 ans is not foreth 23:29:25 forth 23:29:27 period 23:29:29 I440r: it's not just that he argues better. it's that he has experience and logic behind his opinions 23:29:54 Herkamire, ive got over 20 years of coding forth 23:30:07 erm over 15 23:30:07 I440r: where as you're making shit up half the time. 23:30:08 i lied 23:30:09 lol 23:30:13 I440r: you don't get to decide what forth is 23:30:34 forth is what you make it. but ans is just horrible 23:30:56 I440r: you regularly spout out things that are blatently wrong. like "the ans standard does NOTHING helpfull" 23:31:08 im using ans forth at work and i spend 80% of my time fighting with it trying to do shit as simple as fetch from address a and store to addres b 23:31:15 "invalid numerical inlut" 23:31:22 address a is not valid in this blah blah blah 23:31:23 I don't like the ans standard iether, but you can't go around saying it doesn't do anything useful. 23:31:31 it doesnt 23:31:34 not a fucking thing 23:31:49 its a means of hurding you in like sheep. bahhhh! 23:32:03 you can't prove that 23:32:04 its like typing in c. 23:32:09 however, I can disprove it 23:32:20 you cant store that char at that address because that address is reserved for BYTE data 23:32:41 so you have to keep adding bullshit visual clutter red tape to your sources 23:32:51 how about colorForth 23:32:56 just to get it to do simple fetches and stores 23:33:20 ans is useful for sharing code across implementations and platforms. which is useful for learning if nothing else. 23:33:21 i think isforth speaks for itself. or will when its documented 23:33:25 no 23:33:28 BULLSHIT 23:33:31 absolute bullshit 23:33:42 theres no such thing as portable codxe 23:33:57 marcel hendrix has a library of benchmarks 23:33:59 so do forth inc 23:34:04 I440r: what chat client are you using? 23:34:04 you can download both of them 23:34:16 I440r, go stick your head in the cold shower, you are a little hot 23:34:20 every single file in there has "#if defined this system" conditional compiles 23:34:24 you dont have ONE source fits all 23:34:33 you have 389465289374658972435 sources all interleaved into the same files 23:34:35 CTCP VERSION reply from I440r: xchat 2.0.5 Linux 2.4.20-gentoo-r9 [i686/1789MHz] 23:34:36 just like in c 23:34:42 that is what he runs 23:35:05 xchat is portable code. 23:35:09 no 23:35:11 its not 23:35:25 i can guarantee that there is conditional compile code scattered throughout the soruces 23:35:30 how can I compile xchat on any system that is unix? 23:35:34 I440r, making it portable 23:35:39 next your going to tell me that the linux kernel sources are portable 23:35:45 NO thats NOT portable code 23:35:56 thats multiple versions of the same code for different platforms 23:35:57 I440r: the linux kernel has been ported to 100s of platforms 23:36:00 ALL platform specific 23:36:04 you can't go around saying that it's not portable 23:36:10 I440r, that is simply incorrect 23:36:20 no it fucking isnt 23:36:22 I440r: YOU CAN'T MAKE UP YOUR OWN DEFINITIONS FOR WORDS 23:36:38 how the fuck ncan you call soruces with conditional compil directives portable 23:36:42 there is a lot of code reuse between the ports, such as interrupt control or pci drivers, etc 23:36:43 thats NOT one source fits all 23:36:50 tahts one file with lots of specific sources 23:36:53 and some common code 23:36:55 hmm, does anyone have /kick ability? 23:37:14 jdrake, FUCK YOUJ i fucking own this channel 23:37:27 From The Free On-line Dictionary of Computing (27 SEP 03) [foldoc]: 23:37:27 portability 23:37:27 23:37:27 The ease with which a piece of 23:37:45 software (or {file format}) can be "ported", i.e. made to run 23:37:45 on a new {platform} and/or compile with a new {compiler}. 23:38:18 ok. so i write an assembler function for an x86 and then write the same function for the ppc. i put them both in the same source file with conditionls 23:38:27 is the x86 function portable ? 23:38:28 NOI 23:38:29 NO 23:38:48 was it easy to make it run on PPC? 23:38:50 there is NO such thing as portable code. 23:39:20 I440r: ever heard logic vs sex? 23:39:21 when you wirte an x86 emulator for the ppc them my x86 code is portable - maybe 23:39:34 I have an x86 emulator on my pc 23:39:38 my ppc 23:39:58 why is ans forth not 'ansi forth' 23:40:30 herc freebsd has linux emulation. isforth runs under it. but isforth is NOT portable - take my sources and compile them under fbsd and they STILL wont run without linux emulation 23:40:39 portability is a complete and utter MYTH 23:40:49 "nearly portable" i will believe in 23:40:59 I440r: you don't know what portable means 23:41:01 but you have to massage the sources to port them 23:41:17 that doesn't mean they are not portable 23:41:22 : foo 10 0 do i . loop ; <-- thats portable 23:41:41 non trivial code is always NOT portable without some tweaking here and there 23:41:42 I440r: ok, therefor NOT ALL code isn't portable 23:41:57 I440r: you cannot prove that 23:41:58 sure : noop ; 23:42:06 thats fucking portable too but it doesnt do much usefull 23:42:10 its TRIVIAL 23:42:12 so 23:42:18 it still makes you obviously wrong 23:42:30 no. it makes you splitting hairs 23:42:38 ill refine my above statements jsut for you 23:42:46 if all it takes is a trivial and stupid example to prove that you are full of shit..... 23:42:50 any NON trivial application is ALWAYS NON PORTABLE 23:43:00 ok, still wrong 23:43:33 programming is the art of piecing together trivial things into more complex and usefull programs 23:43:41 ok. show me a non trivial application that is portable accross multiple operating systems and processors WITHOUT ANY conditional compilation crap 23:43:58 * I440r waits 23:43:59 I440r, explain how a console python application can run on a darwin system, or a linux system with no modification? 23:44:40 can it ? 23:44:42 always ? 23:44:46 every time ? 23:45:07 actually yes it can 23:45:07 http://www.campchaos.com/cartoons/napsterbad/napsterbad_56k.html 23:45:15 http://www.pygame.org/gamelets/ <-- pick one 23:45:32 is every single possible applicatition ALWAYS 100% portable without any massaging and conditioanls in python ? 23:46:05 i seriously doubt it unless you are guanranteed to have exactly the same bugs in the interpreters on all platforms 23:46:10 not every possible, nearly every program 23:46:28 oooh NEARLY!!! - ok ill concede that SOME languages are more portable than others 23:46:33 but NONE are 100% 23:46:37 forth definatly isnt 23:46:43 but its more portable than c is 23:46:46 if you use the stuff available in the standard library then it always is 23:47:10 I440r: you keep changing the subject 23:47:11 even accross different forth standards its easier to port than it is to port c accross different compilers on the SAME platform 23:47:15 no i dont 23:47:18 we aren't talking about weather languages are portable 23:47:24 they arent 23:47:29 im still on that subject 23:47:37 show me where i changed the subject 23:47:51 you started talking about weather languages were portable just now 23:48:04 YOU keep misdirecting the argument into other arguements not i 23:48:09 before you were saying that code isn't portable 23:48:15 i stand by my original statement 23:48:27 and anything else ive said is to expand on that arguement 23:48:30 NOT to change the subject 23:48:36 which is what you are doing 23:48:37 quote: 02:43 < I440r> any NON trivial application is ALWAYS NON PORTABLE 23:48:48 true 23:49:28 make that 99.9999999999999999999999999999999999999999999999999999999999% if all non trivial applications 23:49:33 02:46 < I440r> oooh NEARLY!!! - ok ill concede that SOME languages are more portable than others 23:49:36 02:47 < I440r> but NONE are 100% 23:49:39 close enough to ALL that i could care less 23:50:01 your the one switching and baiting not me. 23:50:01 also you haven't really addressed the issue that you are making your own definition of the word "portable" 23:50:04 your splitting hairs 23:50:22 err portable is "compiles and runs identically" 23:50:30 where does it say that. 23:50:32 WITHOUT modification 23:50:48 what basis do you have to assert that definition 23:50:49 if you have a different definition - or if someone else has one then its wrong 23:50:57 fuck you 23:51:02 err. the english language ? 23:51:04 speak english like rest of us 23:51:28 remember when I printed out the definition of "portability" in the dictionary of online computing? 23:51:47 i might be back tomorrow when it is more civil, ngith 23:52:00 goodnight jdrake 23:52:14 merci 23:52:45 jdrake: sorry for the arguing. 23:53:16 jdrake: I'm getting pretty sick of I440r's pigheaded stupidity. but perhaps I'm the same for trying to reason with him. 23:53:16 haha, I love it 23:56:49 python code is portable, python itself isnt' 23:57:08 by your definition herk ALL code is portable because for ANY given source file you can write the same thing on a difrent platform 23:57:20 so by "porting" it the original was portable 23:57:37 you did NOT compile the original on the target, you evvectivly rewrote it 23:57:41 thats NOT portable 23:58:24 i can port almost any assembler application to almost any other processor 23:58:32 MOST people would call assembler NON portable 23:58:44 so whose definition of portable is wrong 23:58:54 I440r, can't you understand the argument is finished and pointless (READ: DEAD) 23:59:11 i say YOURS is. but i dont fucking call you a pinhead because i disagreee with you 23:59:46 you continually argue about something that nobody cares about anymore if they did to begin with 23:59:57 --- mode: ChanServ set +o I440r 23:59:59 --- log: ended forth/03.12.07