00:00:00 --- log: started retro/06.11.02 01:42:03 --- log: started retro/06.11.02 01:42:03 --- join: clog (n=nef@bespin.org) joined #retro 01:42:03 --- topic: 'RetroForth | Pastebin @ http://retroforth.net/paste | The editing key is 'despair'' 01:42:03 --- topic: set by crc on [Sat Aug 05 13:13:30 2006] 01:42:03 --- names: list (clog virl @crc) 01:42:16 --- quit: virl ("Verlassend") 01:42:21 --- join: Cheery (n=Cheery@a81-197-19-23.elisa-laajakaista.fi) joined #retro 01:43:09 --- join: timlarson (n=timlarso@user-12l325b.cable.mindspring.com) joined #retro 02:10:32 --- join: jas2o (n=jas2o@144.134.151.97) joined #retro 02:36:11 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #retro 02:45:34 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 02:46:13 --- join: Cheery (n=Cheery@a81-197-19-23.elisa-laajakaista.fi) joined #retro 02:46:34 --- quit: jas2o ("Chatzilla 0.9.74 [XULRunner 1.8.0.1/2006012608]") 05:54:35 --- log: started retro/06.11.02 05:54:35 --- join: clog (n=nef@bespin.org) joined #retro 05:54:35 --- topic: 'RetroForth | Pastebin @ http://retroforth.net/paste | The editing key is 'despair'' 05:54:35 --- topic: set by ChanServ on [Thu Nov 02 05:51:04 2006] 05:54:35 --- names: list (clog virl Ray_work @crc Cheery timlarson @ChanServ) 05:54:38 Good morning. 05:54:49 --- join: nighty (n=nighty@66-163-28-100.ip.tor.radiant.net) joined #retro 05:55:06 --- join: neceve (n=claudiu@unaffiliated/neceve) joined #retro 06:46:55 --- join: Snoopy42 (i=snoopy_1@dslb-084-058-119-091.pools.arcor-ip.net) joined #retro 06:53:39 --- join: lukeparrish (n=docl@74-36-211-202.dr01.hmdl.id.frontiernet.net) joined #retro 07:04:43 --- join: forther (n=forther@c-67-180-209-27.hsd1.ca.comcast.net) joined #retro 07:11:03 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-178-099.pools.arcor-ip.net) joined #retro 07:19:30 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 07:19:36 --- nick: snoopy_1711 -> Snoopy42 07:24:54 --- join: _timlarson (n=timlarso@65.116.199.19) joined #retro 08:10:02 --- join: Shain (i=steve@c-67-161-56-76.hsd1.ca.comcast.net) joined #retro 09:31:00 --- part: forther left #retro 10:35:44 --- join: forther (n=forther@h-66-166-144-210.snvacaid.covad.net) joined #retro 10:43:20 --- join: Quartus (n=trailer@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #retro 11:29:58 --- quit: Quartus (kornbluth.freenode.net irc.freenode.net) 11:32:55 --- join: Quartus (n=trailer@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #retro 11:35:29 --- join: erider (n=erider@unaffiliated/erider) joined #retro 12:02:21 --- quit: Shain (Read error: 104 (Connection reset by peer)) 12:45:55 --- join: Shain (i=steve@c-67-161-56-76.hsd1.ca.comcast.net) joined #retro 13:30:04 --- join: Quartus_ (n=Quartus_@209.167.5.2) joined #retro 13:55:47 --- quit: Shain (Read error: 104 (Connection reset by peer)) 13:57:24 --- quit: _timlarson ("Leaving") 13:57:34 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 14:22:47 --- quit: neceve (Read error: 104 (Connection reset by peer)) 14:39:36 --- quit: Quartus_ (Read error: 104 (Connection reset by peer)) 14:49:05 crc: I'm looking at your netclient.f and I'm trying to figure out your vector word. what is the vector word doing in this context 14:55:44 * crc tries to recall the code for netclient.f.... 14:58:52 I create a bunch of vectors, then set them to the actual definitions later 14:59:32 it could be done better though 14:59:43 hmm that is interesting 15:00:10 is that a step that is necessary crc 15:00:20 it was at the time 15:00:33 unless I wanted to expose the internal factors as well 15:01:14 if I was doing it now, I'd use section:/expose/;section rather than all of the loc:/;loc and aliases 15:01:23 create is use to make an array? 15:01:33 it can be 15:01:55 create makes a word pointing to here with a class of .data (in retro/rxforth) 15:01:56 Why would you use section and not loc 15:02:15 --- quit: Ray_work (Read error: 104 (Connection reset by peer)) 15:02:40 section would allow me to hide the internal factors in a cleaner manner 15:04:32 so you used the { } to be local variables 15:04:41 in the freenode 15:06:43 * erider is reading crc tutorial again 15:06:56 { } was a shorter notation for s" " eval 15:07:06 compile a a string and evaluate it 15:07:34 * erider is reading crc tutorial again 15:12:26 --- join: Raystm2 (n=NanRay@adsl-68-95-252-208.dsl.rcsntx.swbell.net) joined #retro 15:12:27 --- mode: ChanServ set +o Raystm2 15:44:09 --- join: Quartus_ (n=Quartus_@209.167.5.2) joined #retro 15:52:20 crc: here's something that lets you add words to the beginning of a loc: http://retroforth.net/paste/?id=243 15:57:59 neat. 15:59:31 Nan's gonna wanna know how Tammy is doing, when she gets home from work. 15:59:45 Me too btw. :) 16:01:23 here's a simpler version of that word: 16:01:23 : pub: ;loc x: vector: lnparse eval x: ; loc: ; 16:02:19 note: you can set a default value for the word as well with that. 16:03:26 I could make it get each word from the line and make it into a seperate vector 16:04:21 lukeparrish: that shouldn't work.... 16:04:27 lukeparrish: is the usage of loc is to have a complete value to use 16:04:45 the ;loc will purge the dictionary entries up to the previous loc: 16:04:57 crc: it won't work anywhere except the beginning of the loc: definition. 16:05:05 Raystm2: she's feeling better; needs less pain medication 16:05:11 lukeparrish: ok 16:05:27 * crc resumes his experiments 16:06:45 erider: loc lets you define a bunch of words then delete their names from the dictionary. this means you can have a final word that is made of several smaller ones. 16:08:04 A really cool thing about loc is if you have several versions of words that all have the same name, each used in a different loc: / ;loc pair. 16:09:05 stupid words like ADJUST or EXTEND ... used once in a loc: / ;loc you can use it again in another one. 16:09:49 can I use syscall like I would in assembly 16:10:18 Also, if you have words that you don't want to be accessible from the interpreter during interactive word. 16:10:24 -d +k 16:11:30 erider. It took me atleast a year to warm up to RetroForth. Mostly because this was at a time when crc was making major changes daily. 16:12:00 And also because it is ever so slightly different then a ANS forth. 16:12:36 BUT in it's favor is that once you get it, it's amazingly agile and you can think in it. 16:14:18 You can add a word as a vector early in the process of codeing, when you think of it. Then as you code, you can use the loc's to make changes to the word as the word develops. Then when you're done with developing the word, you can factor out all of the stuff that no longer applies, or leave it all, it all still works. 16:15:13 It's truely remarkable and very I don't know what. :) 16:16:18 * Raystm2 doesn't know how to spell the French phrase for "I don't know what" well enough to google it to get the real spelling. 16:20:04 je ne sais quoi 16:20:31 It has that certain something. 16:21:10 interesting 16:22:37 It helps to have the author available regularly.:) 16:23:01 lol 16:25:10 erider. Not many popular languages you can say that about. Try writing e-mail to Guido van Rossum or Linus Torvalds. Not that they won't answer, just they must have a mountain of it and send it off to others to answer. 16:26:06 * Raystm2 has a problem answering the 8-10 emails I get every day. 16:26:33 But with the Palm that has changed. I can answer e-mail thru-out the day. Very handy. 16:29:17 lush you can 16:33:15 I don't understand. Lush? 16:34:41 erider: that's a language, right? 16:34:46 yes 16:34:59 lisp universal shell 16:35:38 lukeparrish: what would you say the usage is for loc 16:35:50 loc: 16:35:59 : temp word ; 16:36:10 :: real word using temp ; is name 16:36:13 ;loc 16:36:23 loc: 16:36:27 : temp word ; 16:36:34 :: real word using temp ; 16:36:36 ;loc is name 16:37:01 if you are only exposing one word, I tend to use this form 16:37:45 and you can use alias instead of "is" 16:38:02 yes 16:38:18 --- quit: forther ("Download Gaim: http://gaim.sourceforge.net/") 16:38:29 cool! 16:38:59 sugar 16:49:58 lukeparrish: is vector like define 16:53:04 crc: devector c kicks me out of retro 16:59:08 where is c defined? 17:13:28 crc: I was trying your vector example 17:18:53 crc alias is an alias for is? 17:19:00 or is is and alias for alias? 17:19:12 s/and/an 17:20:08 erider: a definition like... 17:20:15 : new-word vector ; 17:20:42 ok 17:20:42 create the name new-word with a way that you can redefine new-word. 17:21:26 later you can IS it into a new word at the end of a loc: even. 17:22:53 I'm still not understanding the usage complete but I'm working some examples 17:23:06 vector is a cool way of giveing a word the ablility to change it's definition or extend it. When used with the loc:/;loc this eliminates the time it takes to create words with improving definitions. 17:23:24 you can change it with ] 17:24:02 ] is adding the words behind it to the word that is IS'd. 17:24:24 here is foo ] 17:25:00 where is that definition. is there more on that line. and whats on the line below it. 17:25:17 those are all ?'s by the way. DOH! 17:26:19 doesn't ] start the compiler? 17:26:37 are you asking me? 17:26:55 Where as [ starts the interpreter during compilation when loading. 17:27:12 erider: Asking anyone who cares to answer. 17:27:27 oh :) 17:27:28 Oh yes! erider, yes. 17:27:43 where is that definition HERE IS FOO ] 17:28:03 http://retroforth.net/handbook/ 17:28:09 I can't say anything about it with out taking it's context with it. 17:28:09 Better form, in my opinion, is :: ... ; is foo 17:28:20 its here is a ] 23 17:28:37 why 17:28:40 :: 17:28:54 :: is the rf equivalent of :noname 17:29:33 so :: 42 . ; is foo defines a nameless definition that prints 42, and assigns it to foo. It reads more clearly to me than here is foo ] 42 . ; 17:30:16 Ya, I have to agree. 17:30:17 As a bonus, if crc moves rf so that codespace and dataspace are separate, :: ... ; is foo is portable, whereas here is foo ] ... ; isn't. 17:30:19 I've used both. 17:30:37 Nice to know. thanks Quartus. 17:30:57 erider that example, do you see what's happening there. 17:33:55 in the first 3 lines of that example we have a sort of quazi-variable constant with a value that has a vector infront of it. These values are the defaut value and can be returned to after moveing away from them using the vectors. To get aback you devector. 17:34:53 d is a function to print the values. 17:36:40 here is a ] 23 ; At the current location in the dictionary, lets vector a with is and then give a the new value 23 with ] and compile that here. same for b and c. then devector them. 17:37:26 the c portion of the example shows that these values can be computed with additional code. 17:38:20 a could have started life as anything. Then you vector it into something else, and then you return it back to what it was. 17:38:44 I find the devector stuff in rf quite confusing, when it branches out into words like : x vector vector ... ; I'm lost. In normal application code you rarely need deferred words of any sort, though it was handy to be able to revector some internals in the ANS layer. 17:40:07 Any time you need to port, the vector is a help. That definition of vector vector gives me a the opertunity to mention something that I was wondering when crc and lukeparrish were first proposing it. 17:40:26 How does vector aid porting? 17:42:26 * Raystm2 going for source code to support my supasition. 17:48:47 --- join: forther (n=forther@c-67-180-209-27.hsd1.ca.comcast.net) joined #retro 17:51:59 You know what. Maybe I'm wrong about that. It would appear to me that if you needed vectored words to port, you would also need conditional compilation of the code as well for each port. :( 17:53:38 My thought too. 17:54:18 I've read that to be very nearly a no-no. 17:55:44 Cheaper and cleaner to just compile in the port differences. 17:56:14 Right, abstract the non-portable code behind a set of words. 17:58:34 The thing I wanted to say about the vector vector was... OH yeah, you never have to do that for any of the words that you vector because you can vector a vector word to the definition of vector vector if necessary and only when it should become necessary. 17:59:13 you wouldn't because you don't need the second vector until you use the first. 17:59:41 I'm afraid that explanation exceeds my limit of exactly 1 vector per sentence. 18:03:00 Okay. Words that are defined : new-word vector vector what-ever ; <-- that's not necessary to use the second vector cuz you can vector the first vector to a definition with a vector in it and it would be the same thing. Or i'm confused. 18:04:31 unless vector only works when it's in the front of the word and vector vector is a special case with the second vector having it's own devector words and other supporting words. 18:05:52 Okay. I'm done. 18:09:52 --- quit: erider ("I don't sleep because sleep is the cousin of death!") 18:30:53 --- part: forther left #retro 18:38:07 --- join: forther (n=forther@c-67-180-209-27.hsd1.ca.comcast.net) joined #retro 18:53:32 --- join: Shain (i=steve@c-67-161-56-76.hsd1.ca.comcast.net) joined #retro 19:03:04 --- quit: forther ("ChatZilla 0.9.61 [Mozilla rv:1.7.8/20060926]") 20:28:58 --- join: forther (n=forther@c-67-180-209-27.hsd1.ca.comcast.net) joined #retro 20:42:29 --- quit: virl (Remote closed the connection) 20:57:09 --- part: forther left #retro 22:14:54 --- join: forther (n=forther@c-67-180-209-27.hsd1.ca.comcast.net) joined #retro 22:45:24 --- quit: forther ("Download Gaim: http://gaim.sourceforge.net/") 22:49:20 --- join: forther (n=forther@c-67-180-209-27.hsd1.ca.comcast.net) joined #retro 23:59:59 --- log: ended retro/06.11.02