00:00:00 --- log: started forth/04.05.01 00:08:11 --- quit: Sonarman ("leaving") 01:40:31 --- join: Serg (~knoppix@193.201.231.126) joined #forth 01:40:56 hi ! 01:44:18 moi 01:45:23 * Serg is again from home over gprs 01:45:52 today is a country holiday %)) 4 days of rest 01:46:44 how are you in Finland ? wather etc.. 01:47:15 * Serg dislikes holidays for political hooligans and closed shops etc 02:01:11 hmm 02:01:14 holiday yes 02:01:19 polictial hooligans? 02:02:29 the marginals who make work for police 02:03:10 skinheads, reds etc... 02:03:46 hmm 02:04:46 "Back in USSR !", "Beat all blacks to death !" 02:05:12 blacks here are Caucasians, not Africans %) 02:08:07 yesterday i seen ambulance(s), firefighters and even bomb-masters near metro station while going home from work 02:09:05 oh ok 02:09:14 * girl was about to get mad 02:09:31 get mad of what ? 02:09:57 (04:04:50) Serg: "Back in USSR !", "Beat all blacks to death !" <---------- that 02:10:27 not i say this, but "political hooligans"... 02:10:42 who make folks afraid of going out at holidays 02:12:49 what is correct word for men who discharge bombs ? 02:13:19 bombers? 02:13:27 terrorists? 02:14:16 no, ones who do the reverse, prevent installed bombs from working 02:18:28 at New Year, all city center was split into clusters by police blockages w/ mobile metal-finding gates 02:18:50 is such extreme common for other world ? 02:21:13 The photographs have provoked outrage particularly in the Middle East, forcing the US military yesterday to issue an unusual public apology. 02:21:17 http://www.guardian.co.uk/Iraq/Story/0,2763,1207458,00.html "British troops in torture scandal" 02:21:18 --- part: phubuh left #forth 02:22:36 sorry, can't follow the link - i'm on GPRS, extremely xpensive traffic 02:24:10 "Staff Sgt Frederick has claimed that the human rights abuses at the prison were systematic. He said he asked his superior officers for guidance several times and was ordered to do what he was told. " 02:25:03 --- part: girl left #forth 02:25:09 war turns human into beast 02:26:00 this is not because US or Iraq people are bad, but because war and violence are bad and making folks mad 02:26:26 this is worst solution for any problem 02:32:01 --- quit: Serg ("Leaving") 03:10:26 --- nick: rob_ert -> Robert 03:12:03 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 04:03:28 --- join: crc (~Charles_C@0-1pool176-10.nas6.philadelphia1.pa.us.da.qwest.net) joined #forth 04:04:06 Hi crc 04:04:19 Hi Robert 04:05:27 Anything new on the channel? 04:07:29 --- quit: scope_ (Client Quit) 04:08:42 Not much 04:19:19 --- join: phubuh (~user@c-52b670d5.028-10-67766c2.nc.bredbandsbolaget.se) joined #forth 07:20:34 I think I dreamed a bit about Forth this morning. 07:20:35 --- quit: crc (Read error: 104 (Connection reset by peer)) 07:22:39 :D 07:31:10 It was weird. I was trying to combine Forth and Visual Basic, or something. Well, it seemed like a cool idea at the time. 07:33:00 Wow. You have serious problems. ;) 07:33:44 ;) 07:33:45 indeed 07:33:56 perverted but fascinating 07:34:07 both have a bit simlar way to make the words important 07:38:43 Heh. 07:39:05 Well I think I was trying to make BASIC runtime interactive. 07:39:20 FORTHIC! 07:39:25 omg 07:39:32 * Robert runs around in circles 07:39:46 I'll make the most useless Forth project EVER. 07:39:51 Yes! 07:40:03 I like it already! 07:41:25 Great. 07:44:58 I really really want to use Forth at work as a runtime debug shell for embedded apps, though. 07:50:08 :) 07:50:11 Seems to be the perfect choice, especially if you want to execute OS shell commands from within the debug shell. 07:50:17 ie. 07:50:24 ls -a -l -F 07:50:49 : ls 13 word $ls ; 07:51:01 I was thinking about some very low-power computer with a little radio transmitter.. It measures something (or calculates something), and then telegraphs the results to me. 07:51:05 So all the useful shell commands could be mapped this way. 07:51:09 That would be SO useless and fun. 07:51:16 Heh, yes... 07:51:35 and it could have its programs written in FORTHIC! 07:51:42 And if I could establish two-way communication... tasy. 07:51:53 PING - PONG - PING - PONG.. Hihihi 07:52:02 * Robert dances around 07:52:30 :D 07:52:46 It would make a great companion during the long, dark nights. 07:53:15 Yes 07:53:30 Just knowing that it's out there...alive... 07:55:36 Pinging for you, and only you... 07:56:19 Yes. Love. 07:59:27 --- mode: ChanServ set +o thin 08:02:44 Robert: I want to see you dance around. please grab a digicam and show us what it looks like when you dance around. 08:05:08 Do the Dance of Forth. 08:10:13 Hmm.. Request denied. 08:11:06 Then you don't get any props. 08:11:52 Do the WORD Waltz! Do the SWAP Samba! Do the C@ Cha-cha! 08:12:18 madgarden: haha :D 08:13:31 Robert: Don't tell me madgarden doesn't inspire you. Go grab the digicam and show us your dance style. Don't worry about looking silly. People won't respect you any less. 08:15:22 Thanks. 08:16:21 Thanks for what? 08:19:07 Did I free you from the worry of social chatisement? 08:37:05 --- join: SDO (~SDO@co-trinidad1a-156.clspco.adelphia.net) joined #forth 08:39:07 The TUCK Tango! 08:39:47 (or the TIB Tango if you prefer) 09:19:52 thats nice, but can he JUMP on command? 09:20:49 He can if I can think of a dance that starts with "A". 09:22:41 american two-step 09:23:04 * qFox has done ballroomdancing for 6 years :p 09:23:07 :O 09:23:32 although i learned the twostep in america, since its not really a ballroom dance, but hey 09:23:45 or not to european standards anyhow.. 09:24:13 "American" really isn't a dance, though. 09:24:24 it sure as hell isnt european 09:24:25 :p 09:24:28 At least, not one that I can use with AHEAD. 09:24:29 Heh. 09:25:18 none of the standards i know start with A 09:25:33 chacha jive rumba samba pasodoble, for latin 09:26:21 foxtrot/quickstep (same) slowfoxtrot english-waltz uh... viena-waltz? the country is different in english. 09:26:30 and tango (suxxxxx) 09:26:39 TIB tango! 09:27:20 i hate the tango 09:28:30 --- quit: SDO ("Vision[0.9.6-0203]: i've been blurred!") 10:03:03 --- join: SDO (~SDO@co-trinidad1a-156.clspco.adelphia.net) joined #forth 10:24:14 --- join: theFox (poohka@user-v8lds3n.dialup.mindspring.com) joined #forth 10:28:22 Well, the tango hates you too! 10:37:29 --- part: theFox left #forth 10:46:12 :-/ 10:50:21 probably 10:51:08 question: in lowlevel forth, i'm messing around with interpretation and compilation mode. 10:51:23 right now i bumped into a bug i didnt quite foresee 10:51:53 my number? automaticly puts a number, processed by NUMBER? in the dictionary, if in compilation mode 10:52:23 however, this should not happen when the word thats executing, is an immidiate 10:52:44 should i put up a flag that indicates either the current executing word is immidiate or not? 10:53:38 thats the sollution i'm thinking of right now :) 10:58:36 or 10:59:38 slug the compilation check from NUMBER? and put it after the call to NUMBER? 11:00:02 i guess that would be better 11:03:15 but it still leaves me with the same problem :\ 11:07:19 i'm hesatous (uhm, in doubt) to add a variable and check for this.... because of the overhead it would create, and i cant think of any other use for this... 11:07:39 on the other side, this overhead would only be added for processing input 11:10:38 oh what am i saying, this would completely fix the problem 11:11:01 since the cause is moved to a different word, and number? will behave correct in either mode 11:11:05 whiiii 11:11:06 :p 11:18:37 --- join: proteusguy (~proteusgu@69.79.24.31) joined #forth 11:23:55 --- join: wossname (wossname@HSE-MTL-ppp60724.qc.sympatico.ca) joined #forth 11:36:25 --- quit: SDO (Read error: 104 (Connection reset by peer)) 11:37:41 so, i think i have a successfull basic forth in mirc now 11:37:42 :D 11:38:04 unless you want to use div. 11:38:07 hehe 11:39:11 but : CODE and ; are hardcoded words in the dictionary, * is too because i already had to define it anyhow. the rest you need to define from scratch :) 11:40:23 so you can define words with a colon, in forth style 11:40:26 *happy* 11:40:33 but i'm sure there are still some loose bugs around 11:42:24 Coolio 11:51:33 hm, there we go :( : @ code sta ld code; ; here @ results in an error 12:01:48 probably bug with HERE . works fine with BASE :) 12:27:52 oh, no its not, there's a glitch with my input. its not terminating the inputbuffer correctly when entering a new string 12:27:53 heh 12:36:11 All your BASE are belong to HERE 12:36:36 --- quit: phubuh (Remote closed the connection) 12:41:16 --- quit: lalalim (calvino.freenode.net irc.freenode.net) 12:41:16 --- quit: madwork (calvino.freenode.net irc.freenode.net) 12:41:42 --- join: lalalim (~lalalim@pD95EAED1.dip.t-dialin.net) joined #forth 12:41:42 --- join: madwork (~madgarden@derby.metrics.com) joined #forth 12:51:01 --- quit: proteusguy (Read error: 104 (Connection reset by peer)) 13:17:21 --- join: proteusguy (~proteusgu@69.79.24.31) joined #forth 13:26:10 lalalala 13:26:12 i'm an asshole 13:26:15 lalallalal la 13:26:19 lalalalalal la 13:26:23 ok 13:26:24 won't you sing the forth song with me 13:26:28 la lal alalalalal la 13:27:05 mur: what brings you to #forth 13:27:26 dunno anymore 13:27:38 eternal universal love, i think 13:27:46 love of what? 13:27:57 m... yah, that's it 13:28:19 hmm 13:28:55 do you have any forth interests or is this just another chan to waste your time on? 13:29:00 just walked 9 km 13:29:15 dunno 13:29:22 i haven't had time for coding for a long time 13:29:44 --- nick: thin -> futhin 13:30:27 it's maybe some kind of irony 13:30:35 that i dont really have time for any channels i'm on 13:30:39 the subject of theirs 13:31:10 well then maybe stop ircing 13:32:08 yah 13:32:12 going to 13:32:19 no irc or computers for a week 13:32:26 for real. 13:32:36 going to archipelago monday 13:35:28 futhin, you're an asshole. 13:38:27 (apparently) 13:38:41 And... where are all the girls? 13:40:56 i was with em 13:48:35 So, they've been scared off then. 13:48:51 Good going, mur. 13:49:26 thanks 13:49:35 i didn't want to shock you 13:53:27 --- join: Sonarman (~matt@adsl-64-169-95-116.dsl.snfc21.pacbell.net) joined #forth 14:06:05 --- join: Sonarman_ (~matt@adsl-66-124-254-26.dsl.snfc21.pacbell.net) joined #forth 14:06:32 --- quit: Sonarman (Nick collision from services.) 14:06:34 --- join: TheBlueWizard (TheBlueWiz@207.111.96.11) joined #forth 14:06:35 --- mode: ChanServ set +o TheBlueWizard 14:06:43 --- nick: Sonarman_ -> Sonarman 14:06:45 hiya all 14:06:55 hi TheBlueWizard 14:07:18 TheBlueWizard hi. 14:07:29 --- join: lalalim_ (~lalalim@pD95EA5E5.dip.t-dialin.net) joined #forth 14:08:22 hiya Sonarman 14:08:26 hiya madgarden 14:09:13 ABORT hiya -- stack empty source: hiya madgarden 14:10:10 Full systems shut down in 3... 2... 14:10:24 TheBlueWizard: hurry up and scream, "Override!" 14:10:25 * TheBlueWizard put a finger on the red button 14:10:41 :) 14:10:42 shut down shut down 14:12:00 ERROR: "Red Button" has been used past its trial period and will no longer work. Please register. 14:12:45 Dzzzzzzzhhhhhhhwwwwwww. 14:12:49 heha 14:13:15 So, maybe I should actually work on this little air-hockey game I've started. 14:13:50 * TheBlueWizard ate the red button cuz (a) it's declared useless, and (b) it looks like a big tasty hot cinnamon pill 14:14:05 * Sonarman tries cajoling xmms into playing a CD 14:14:50 grarkkh 14:17:16 That's going to hurt coming out. 14:17:53 madgarden: me? 14:18:15 not with ExLaxoSmooth Plus! 14:18:41 TheBlueWizard, unless your bowels exit out of somebody else's body... yes. 14:19:02 lol....no need for that....my mom said I have a cast iron stomach cuz I like eating fiery foods 14:19:52 ha ha...I suppose I could concoct a spell to have my waste come out of someone's else's... :) 14:20:39 * TheBlueWizard thinks it would be a riot to use that spell in a RPG game...especially against a foe 14:25:38 * madgarden casts Level 4 Bowel Redirect on TheBlueWizard for 36 damage. 14:26:15 --- quit: lalalim (Read error: 110 (Connection timed out)) 14:26:46 that'll be a DC 22 Fortitude save, Wiz... press the d20 button on the palmpilot 14:29:56 You could also drink a potion of High Fibre to reduce the "impact". 14:31:40 better empty the Throne of Porcelain of water in order to prevent "excessive splassage" 14:31:46 splashage 14:33:14 * TheBlueWizard directs his diarrhea at madgarden :) 14:33:32 päivää 14:35:03 moimoi mur! mitä kuuluu? olen "doing OK" 14:35:46 doing doing boing boing 14:36:07 kuuluu ihan hyvää 14:36:59 hehe....hyvä :) 14:37:02 lets be more ontopic huh? yes, lets! 14:39:04 menene ahvenanmaalle maanantaina 14:39:34 * madgarden dons his Gauntlets of Plumbing. 14:46:25 --- join: crc (~Charles_C@0-1pool176-17.nas6.philadelphia1.pa.us.da.qwest.net) joined #forth 14:53:46 everyone please speak only in english on this channel 14:54:43 why? 14:54:50 forth is not restricted to english 14:55:23 ok fine 14:55:32 not an important rule then 14:55:55 futhin: English is definitely the main language here, yes...but I think other languages are ok here, especially if some stranger straggles into here who doesn't speak English well at all... 14:56:07 here's a more important rule: try to stay on topic, and if you don't have any strong interest in forth don't hang out on here for the chatting 14:56:44 i'd rather thave less chatting and more quality talk 14:56:48 and remember, less is more 14:57:02 that's forth's motto 14:57:30 yeah...except when flamewars are called for ;) 15:04:39 I have a strong interest in Forth, and so I hang out in here for the chatting, which currently happens to be about remote bowel attacks for some reason. 15:05:13 LMAO....you started it ;) 15:05:39 I did not! 15:05:40 You' 15:05:42 er 15:05:51 hehe 15:05:59 the one trying to digest foreign objects. :p 15:08:32 well, you started with imploring me to scream "Override!"...and I thought up of a non sequitur :) 15:09:15 That was certainly Sonarman, not I. :P 15:09:42 hmm....you're right 15:10:39 So, put that in your bowel and... redirect... it! 15:11:11 * TheBlueWizard obliges...and redirects as directed 15:11:13 :) 15:13:31 redirect threading 15:15:38 LOL...now that's a thought! how would that be done? :) 15:20:34 i imagine it would involve many... indirections 15:20:48 (i am known far and wide for my deep thinking) 15:24:18 or redirection involves choosing a set of interpreters...kind of dynamic interpreting, or contectual interpreting...hmm? 15:27:52 Different parser/interpreter depending on the vocabulary 15:28:40 maybe that....wonders what sort of advantage will that be 15:29:44 Well, it would allow for more flexible and dynamic language syntax. 15:30:20 One thing I was thinking about earlier was being able to define prefix and postfix delimiters in Forth. 15:30:49 Stuff like ( and ) or { and } or , etc. 15:31:47 sounds like this redirecting thing may be part of a regexs-in-the-dictionary supporting forth. if a word matches a certain regex, it is redirected to the defined interpreter for that regex, which returns control to the normal interpreter when it is done 15:31:50 It would allow you to make a more crammable syntax. 15:35:19 you mean "more compact" syntax? 15:35:33 for example, there could be a word in the dictionary called e.g., "${#}*" (where # means 0 through F) such that when a word in the input stream is found that matches that regex, the interpreter for hex numbers would be called 15:36:48 and then once that interpreter has parsed the number and compiled the literal (or has put it onto the stack if in interpretation-mode), the input stream would be "redirected" to the normal interpreter :) 15:37:43 interesting :) 15:37:57 ${ would be one word, and } another. 15:38:32 { would be a postfix delimiter, and } would be both prefix and postfix. 15:38:57 Oh... what's that * there for... 15:39:06 --- nick: TheBlueWizard -> TheBlueWizard-af 15:39:26 --- nick: TheBlueWizard-af -> TheBlueWiz-afk 15:40:25 actually, Brad Rodriguez did some work on a regex-supporting Forth (i haven't read what he wrote about it yet, though) http://zetetics.com/bj/papers/index.html 15:42:45 the * was just there to represent the byte in the dictionary that means, "the regex in the curly braces (not that curly braces would actually be stored in the dict, because that would interfere with people using them in their own words' names; some other representation would be used) repeated an unlimited number of times" 15:46:12 --- quit: crc (Read error: 54 (Connection reset by peer)) 16:06:44 --- nick: TheBlueWiz-afk -> TheBlueWizard 16:28:22 --- join: Sonarman_ (~matt@adsl-64-160-164-141.dsl.snfc21.pacbell.net) joined #forth 16:28:51 --- quit: Sonarman (Nick collision from services.) 16:28:56 --- nick: Sonarman_ -> Sonarman 16:51:01 gotta go...bye all 16:51:08 --- part: TheBlueWizard left #forth 18:06:37 --- quit: ianp` (Remote closed the connection) 18:35:30 --- join: blockhead (default@dialin-553-tnt.nyc.bestweb.net) joined #forth 18:43:18 --- join: kc5tja (~kc5tja@66-91-242-80.san.rr.com) joined #forth 18:43:26 --- mode: ChanServ set +o kc5tja 18:44:58 yo kc5tja 19:03:50 Howdy 19:03:59 * kc5tja is currently in the process of adding a new weblog entry. 19:04:07 It's not done/posted yet, I'll let you know when it's done. 19:04:12 Nothing Forth or Kestrel related. 19:19:00 --- quit: wossname (Read error: 54 (Connection reset by peer)) 19:27:56 i'm kinda done with my basic emulator and bootcode. 19:28:08 ok except i still very still need to add DIV :\ 19:28:17 qFox: congrats :) 19:28:32 the bootcode works, i have a working interpreter, and can code in Forth synax 19:28:33 syntax 19:29:03 : CODE and ; are coded in machine language, CODE enables a mini-assembler with all the 28 cpu instructions, working properly 19:29:24 the instructions are in a seperate hardcoded dictionary 19:29:55 the downside for now is that every instruction is assigned to a single instruction-token (so only one instruction, where you can normally fit in 4) 19:30:23 was the easiest way to do it for now, no big deal though, only a speed issue (and its not like i was going at lightning speed anyhow ;) 19:30:45 i've added support to save and load the memmory 19:31:20 i only want to change the input method slightly, to add a queue input buffer. i never realized it, but thats what i'm missing :) 19:32:03 like, you can type, when you press enter the text is put in that queue buffer. when the look calls QUEUE and sees data, it will copy the queue to the input buffer, and clear the queue buffer. 19:32:29 right now, when you press enter its put directly in the inputbuffer, which could cause problems if you are parsing the input buffer halfway 19:32:30 :p 19:33:20 oh and i kinda want to add a second buffer, to make it all case-insensitive. simply a second copy of the inputbuffer (or otherway around) with all the characters to uppercase 19:33:48 that way you can preserve the case, and still have a case-insenstive system 19:34:09 --- join: crc (~Charles_C@0-1pool176-21.nas6.philadelphia1.pa.us.da.qwest.net) joined #forth 19:34:14 i will bore you with more later, sleep now. 19:34:17 wait 19:34:23 hm? 19:34:46 why don't you just code FIND to upcase the word before searching for its dictionary entry, instead of having two buffers? 19:34:51 qFox: Sorry, still writing my blog entry. 19:35:14 hmmmm 19:35:46 words like ." will still work fine that way, since they don't call FIND on their data 19:36:35 Sonarman> i think two buffers will be faster. the input offset (where you are with reading from the input buffer) will be the same for either buffer. so if you at some point in your code need the unconverted version, you can take the normal offset, and read from the unconverted buffer 19:37:19 hm, well perhaps not faster, when i think about it 19:37:32 why would you want the unconverted version? and with two buffers, you'd still have the copy overhead and the overhead of upcasing the whole thing 19:38:11 yes, true 19:39:25 upcasing is a bitch anyhow. takes < and > to check out if its a lowercase char, for every char. with my speed, that takes ages :\ 19:39:58 i think i'll code it, and have a variable to say either to be case-insensitive or not, at least while writing the code 19:40:23 and i'll give some thought about how to exactly implement it. thanks for the advice Sonarman 19:40:44 qFox: uppercase via table: 256 entrees indexed by input char. excahnges space for speed 19:41:04 what do you mean? 19:41:10 look up char in table? 19:41:43 use the input table as an index into the table 19:42:04 hang on, that came out wrong 19:42:09 sorry, i dont know what you mean 19:42:13 k 19:42:18 use the input character as an index into the table 19:42:20 OK, finished writing, and the article is posted. 19:42:31 --- part: qFox left #forth 19:42:31 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 19:42:41 I did that for a rot13 function. nice and fast :) 19:42:51 qFox: so, with blockhead's method, (pardon the C syntax): table['a'] = 'A' 19:43:07 Sonarman: exactly. thank you for clarification 19:43:30 and for non-alphabetic characters, the corresponding table entry would just be the same 19:43:38 yes i understand that 19:43:49 but at some point, looking up a character in a table, is slower then running < and > over it and uppercasing it... 19:43:55 no. 19:44:03 : >upc uptable + c@ ; 19:44:11 the "lookup" would be one addition and then a fetch 19:44:20 can't get much faster than that 19:44:41 i dont know what >upc or uptable does 19:44:50 qFox: use your imagination. 19:44:54 oh 19:44:55 --- quit: proteusguy ("Leaving") 19:45:14 qFox: If we had to define every word in every example, we'd have a working Forth environment running that was truely portable. :-) 19:45:17 And we can't have that. 19:46:16 I can't explain it any better wihtout writing code. :/ 19:46:17 hmmm its coming to me 19:46:29 nono hold on, getting vague images in my mind :p 19:47:36 so if the uptable starts at 54, you'd add the ascii value of the char to this table, fetch it, and store the value fetched back instead 19:48:29 it would be easeir to have the table start at 0. one less if 19:48:42 well i meant the memmory adr 19:48:51 the thing cant start at 0 really :) 19:48:56 but i get the point, thanks 19:49:01 :D 19:49:52 ok 19:49:59 i'm afraid i'm gonna shatter my whole freaking code now 19:50:04 but i'm curious 19:50:13 * blockhead hides 19:50:13 the way i've implemented the dictionary 19:50:20 is with a single chained list 19:50:42 that _is_ my table to lookup words and get their xt 19:51:02 should i do it differently? or i mean, is there a faster method? 19:52:08 maybe use a hash table 19:52:15 so every entry would look like this: 1; previous.dictionary.entry.adr 2; xt.of.this.word 3; immidiate.flag 4; char char char untill 0 19:52:27 where 4; is the name of the word 19:52:55 Sonarman> not familiar with them, aside from using them in mirc (but thats just using the frontend) 19:53:09 but is what i'm using good enough? 19:53:13 i think that's how most dictionaries are implemented, but some use hash tables to optimize word lookup (not that i really know how) 19:53:20 ok great 19:53:22 *oof* 19:53:23 :p 19:53:59 i guess maybe you could add a HashNext field to each dictionary entry 19:54:14 with what purpose? 19:54:15 and set up a hash table of N bytes 19:54:53 i thought of making a alphabetical dictionary, to save considirable lookup time 19:54:53 and for a word (string of characters) to be looked up in the dictionary, perform a hashing algorithm on it that results in a number 0 to N-1 19:55:13 Sonarman> ok thats way beyond my scope of knowledge :\ 19:56:03 but i might implement the alphabetical dictionary when i have the time. i think it would sort of work like a binary tree 19:56:05 add that number (in cells) to the beginning of the hash table, and fetch. then you'll have the address of the first dictentry to have that hash 19:56:16 (no not binary tree.) 19:57:05 then compare that entry's string to the word you're looking up, and if they match then w00t, if not then go to the dictionary entry pointed to by HashNext, and compare again 19:58:33 i wished i could see my code at normal speed :\ 19:58:36 with the right hashing algorithm (the right algorithm that produces a number between 0 and N-1 from as tring), you'll have to do considerably less string comparisons 19:58:47 at ;east , that;s my aunderstanudng 19:58:57 at least, that's my understanding 19:58:58 * blockhead looks at his code in bullet time :D 19:59:01 :p 19:59:29 my max is 140hz, and normal running speed is 75hz 19:59:54 i forgot the speed of the real p24, but i remember its mhz for starters... :p 20:00:05 well then, with the right FIND, you could shave MINUTES off of looking up dictionary entries :P 20:00:13 hehe 20:00:23 well 20:00:43 my (') (thats FIND) does it decently 20:00:57 depends on how far down the dictionary the word is really :p 20:01:03 its a bitch on numbers though :\ 20:01:33 it searches the whole dictionary before trying to convert it into a number? :) 20:01:37 yes 20:01:45 isn't that normal/standard? 20:01:48 thats how it should be... 20:02:03 Yep. 20:02:06 :) 20:02:13 It's often quite handy to be able to do this: 20:02:23 : 3.14 3.14159e ; 20:02:23 :) 20:02:31 to optimize the speed, you can define certain oft-used numbers as words whose name is the number 20:02:38 0, 1, etc. 20:02:45 or be like chuck moore and do : 3600 baud ! ; and confuse everyone :) 20:02:47 blockhead: That doesn't always work. 20:03:00 blockhead: In fact, on a modern CPU, it's a huge liability. 20:03:05 (that includes stack CPUs) 20:03:07 oh 20:03:15 * blockhead didn't know 20:03:17 kc5tja: why? 20:03:18 it is? 20:03:27 i can only imagine borking up with BASE 20:03:29 Because of the subroutine overhead involved. 20:03:39 oh 20:03:44 Let's look at the simplest case: a literal number on a stack CPU. 20:03:53 kc5tja: so you'de exchange compile time convience for CPU speed 20:04:03 well, if your compiler suppports specifying words as to be compiled inline, it's not a problem 20:04:05 One clock cycle for the subroutine call, one cycle to fetch the instruction word, one cycle to fetch the literal, one cycle to return == 4 cycles total. 20:04:12 * blockhead thinks he understands 20:04:19 Conversely, for a simple constant, it is, well, one cycle: to load the constant. 20:04:40 blockhead: There's really no compile-time convenience involved. 20:04:49 It's the same amount of overhead no matter what you do. 20:04:53 (in the compiler) 20:05:04 well yes, BUT, this would PROBABLY still save time over having to search the entire dictionary before starting the conversion, which also takes time itself. 20:05:20 qFox: But not at run-time. 20:05:23 what I mean is something like (forth 79 syntax): 0 CONSTANT 0 20:05:28 qFox: At run-time, your constants are already compiled. 20:05:37 blockhead: I know. 20:05:43 kc5tja: ok 20:05:54 yes, so? 20:05:56 blockhead: That usage came about because of the inherent limitations of the 8-bit CPUs Forth-79 was designed to run on. 20:06:03 --- quit: crc (Read error: 54 (Connection reset by peer)) 20:06:11 It *just so happened* to work out that way, entirely by accident. 20:07:05 qFox: Well, you use what you want. But for me, especially on a microprocessor that runs at 75Hz, I'd rather sacrifice fast compile-times for slow run-times. 20:07:25 if, at runtime, i enter 5, it will still search the entire dictionary for 5 wont it? and then try to convert 5 to a number if not found. so why would a word for 5 not be faster? or is that too much to explain... 20:07:33 No. 20:07:36 It'll do that at compile time. 20:07:46 *OR*, it'll do that when running code off the console. 20:07:53 then i've implemented it wrong 20:07:57 hmm 20:08:10 But once it's running pre-compiled software, such as the code compiled by :, then it'll be much, much faster. 20:08:17 oh 20:08:24 The speed of Forth has *never* been from its interpreted code. 20:08:29 riiiight, i see now 20:08:30 It's always come from its colon definitions. 20:09:08 That being said, despite the speed hit, having interpreted code is still sometimes very desirable. 20:09:31 it be sleepy time for me now. 20:09:32 nite 20:09:38 Goodnight. 20:09:39 'nn qFox 20:09:53 --- quit: qFox ("this is mirc's last attempt of communication...") 20:10:27 kc5tja: I figured out part of my forth's problem. So i've begun work on it again. :) 20:10:57 blockhead: Yes, expect that to occur often. 20:11:07 It's part of learning how to program, versus learning how to program in a particular language. 20:11:24 That's why I encourage folks to write their own Forths, evne if it's just a throw-away. 20:11:46 hmm 20:12:50 that's a thinker 20:13:12 What is? 20:13:28 what you said. I'm still thinking on it :D 20:13:33 hehe 20:13:57 well, it's the same thing as those who can read/write/speak English, but can't communicate. 20:14:07 Then there are those who can communicate perfectly, despite horribly broken English. 20:14:27 oh yeah! You got that right! 20:14:28 Likewise, I've seen (too many) people who are exquisite with the C programming language, but can't code their way out of a paper bag. 20:14:49 And those who are *awesome* programmers, but can never remember even the simplest details of the simplest of languages. 20:15:00 * blockhead chuckles. C is what I've used the most. :o Oops 20:15:35 I do not subscribe to the notion that a language, in and of itself, is considered "harmful." 20:16:02 What is harmful is when a programmer puts all their programming faith into that one language, closes up his mind like a battened down castle under siege, and refuses to learn anything else. 20:16:23 well, that's not me. I used C more than any other language, but HATED it the whole time 20:16:31 * blockhead still hates it 20:16:31 It's at that stage that one becomes a programming language technician, instead of a programmer. 20:16:45 * kc5tja shrugs -- I don't mind it. 20:16:52 I do overwhelmingly prefer Forth or Lisp to C though. 20:18:03 But I do acknowledge that all languages have limitations. 20:18:05 oh no. I think you just coined the next decade's overused tech buzzphrase: "programming language technician". Noooooo 20:19:12 hehe 20:19:38 kc5tja: don't mind my sillyness. you are giving good advice! 20:21:54 Heh, I probably should have posted this as a mini-essay on the weblog. 20:22:04 http://www.falvotech.com/weblog 20:22:20 grap it from the log of this channel 20:22:26 grab, not grap 20:24:22 intersting site. "neo-cubist extensions"? Hmmmm 20:33:46 what is that? (google found nothing) 20:35:44 Read the weblog entry, and you'll find out. 20:35:50 :) 20:36:14 * blockhead did. looks for a scooll bar or something 20:36:36 Actually, that's a good point: neo-cubist extensions was my first rant, not the asshole rant. 20:37:17 * blockhead scrathce shead. I see only four paragraphs. I'm guess ing that MSIE meansi microsoft internet explorer? 20:37:25 Yes. 20:37:39 Did you actually read the paragraphs though? 20:37:54 Well, I suppose the joke is lost if you don't know what neo-cubist is. 20:38:47 dude: you had me thinking there wa sa new sort of graphical extension or something that would render all pages as cubist :( 20:39:01 I just figured out that you refer to a BUG 20:39:03 doh! 20:40:10 :) 20:41:11 http://www.amaoka.com/neo/ 20:43:06 now *that's* what I originally imagined! 20:43:24 :) 20:43:49 crap. looks like I need to run a browswer with java 20:43:53 oid 20:45:01 The joke, per se, was in reference to Calvin & Hobbes Neocubist comic. 20:45:10 http://cocicy.envy.nu/other/ -- you can read the 7 cells in the comic online. 20:46:10 dang. that stuff looks neat! 20:46:18 * blockhead wonders if he could do it in povray 20:47:12 Hehe 20:47:18 Anyway, I'm out for now. Getting some foodage. 20:47:21 Back in a bit. 20:47:47 'nn kc5tja 20:47:53 --- join: crc (~Charles_C@0-1pool176-21.nas6.philadelphia1.pa.us.da.qwest.net) joined #forth 21:17:20 Back 21:20:14 wb 21:21:54 thx 21:22:21 that neo cubist stuff is neat. My badnwidth is too slow to download the movie but from the stills I'm trying to figure out the alg 21:25:46 I never did understand it, or why it existed. 21:26:00 Until I found that site, but seriously, I just plain can't make heads or tails out of the images. 21:27:16 they are distorted somehow. Either by the luminence value of the neghboring images or by an arbitrary function 21:27:30 (I guess) 21:28:33 * blockhead can probbaly just UV map each image onto a mesh and then algorithmically "crumple" the mesh 21:28:45 that might work ... yesss 21:28:49 UV? 21:29:28 UV refers to the relative coordinates (instead of XY, UV) 21:29:35 ahh 21:29:49 you were thinking ultraviolet? 21:30:03 yes 21:30:14 :D understandable 21:45:35 I just fixed another problem in my forth: I removed the problem word. Tomorrow I'll write it from scratch :) 21:45:52 'nn all 21:45:56 --- quit: blockhead ("Client Exiting") 22:36:03 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 23:17:31 good night 23:17:37 --- quit: Sonarman ("leaving") 23:59:59 --- log: ended forth/04.05.01