00:00:00 --- log: started forth/05.11.27 00:00:17 He once said, looking at a board, he can predict if something is wrong or not about the board. 00:01:00 Wow 00:01:28 it was an interesting story. how to set curves, round corners on the circuit print, etc. 00:02:10 Our lab mostly did analog stuff, they were experimenting with radiation-hard designs 00:02:23 I'm not too well-versed in it as I'm a programmer and not an engineer = ) 00:02:57 as things are becomming smaller and smaller, 00:03:27 there are quantum physical issues. 00:03:38 I heard from the engineer. 00:03:55 hardware logic is a difficult thing, I think. 00:04:38 Yes, very 00:05:19 he often says "Digital computing is an electric phoenoenon". 00:05:54 "Software engineers tend to forget it, and make problems", he adds. 00:06:49 Yeah 00:08:28 He likes to demonstrate how many tubes are used to make a color TV set, by using his fingers. 00:09:01 "... so about 23 or 24, in total", counting the number by fingers. 00:09:25 hehe 00:10:13 he wants to say that digital circuits are also working as analog phenomena and in an analog electric environment". 00:11:05 Actually, they talk about that all the time in the lab I worked in 00:11:23 He always put emphasis on the necessity of digital circuit designers' studying analog electronics. 00:11:28 Since radiation effects are really in the analog domain, though the chip may have digital logic 00:11:41 Yep, the leader of the group said the same thing 00:12:14 but he always lament, 00:13:14 "in these days, the principle is forgotten by engineers of younger generations". 00:13:38 yeah, I think that's probably true 00:13:54 what is conceptually possible is not always possible in reality. 00:14:01 good analog engineers can make a lot of money these days, since there are fewer around 00:14:07 nyingen: yesterday you asked if anyone has done anything with colorforth. I have. 00:14:29 Raystm2: I'm glad to hear that, 'cause I could really use some help = ) 00:14:57 I'll do my best. What are you working on? 00:15:16 Well, I just started the day before yesterday, so mostly I'm just figuring out how to use the system 00:15:31 * akebono is away: 多忙です 00:15:35 I defined a test word, but couldn't get it to actually run 00:15:43 I see. 00:15:48 If I typed 'test' at the prompt, I just got 'test?' 00:15:50 BUT 00:16:05 :) 00:16:05 I was combing the mailing list today, and perhaps I need to load the block number first? 00:16:09 is that the problem? 00:16:44 You defined "test" on a block? tried to execute it? and it did not run, yes? 00:16:49 right 00:16:57 yes you must load the block 00:17:02 ok 00:17:09 can I use any empty block, or just 72+ 00:17:24 any even shadow. 00:17:28 gotcha 00:17:34 suppose there's an error in my code? 00:17:45 maybe so. 00:17:58 ah, what I mean is, how does colorforth tell me if the problem is me? 00:18:17 You are always the problem, with colorforth. 00:18:29 hehe 00:18:37 colorforth is so very simple. 00:18:54 Yeah, that's why I'm interested in it actually = ) 00:19:02 Me too. :) 00:19:31 I was looking at code to print strings and such, and it seemed like it used mostly hex representations of the chars 00:19:38 is that true? 00:19:40 I'm not working on my website http://www.colorforth.info cuz i'm lazy :( 00:19:54 heh, just read all that yesterday 00:20:20 really wanted to be able to click 'faq' 00:20:32 Ya, coming soon. 00:20:39 Neat. 00:20:42 I am working on it. 00:21:02 It's taking me to a new level of research that I wasn't prepared for when I started the site. 00:21:09 I'll believe it 00:21:19 I bought a bunch of books, and have been reading them. 00:21:35 I guess you saw the ChuckBot stuff at the site? 00:21:39 I know x86 assembly pretty well, but nonetheless, actually reading COLOR.ASM just doesn't strike me as fun 00:21:44 yeah, a little 00:22:13 hehe about the fun. 00:22:33 For me, it gets fun when taken in context with learning the parts of the system. 00:22:47 I like to go to Karig, to read the source. 00:22:50 which books are you looking at? 00:22:57 Oh um... 00:23:10 I bought 00:23:25 Dr Dobb's Toolbook of Forth 00:23:43 Forth Fundamentals vol 2 the glossary. 00:23:58 Threaded Interpretive Languages 00:24:05 Starting Forth 00:24:12 I've got that one 00:24:13 Object oriented forth 00:24:19 That one too, neat book! 00:24:20 Forth Applications. 00:24:31 Yes, I have to agree. 00:25:01 I checked out pretty much every Forth book from the local university library 00:25:11 too bad for anyone else who wants to learn forth, because I have em all = ) 00:25:12 I also got 3 volumes of the The Art of Computer Programing by Knuth. 00:25:24 AHhaha 00:25:41 I couldn't find a single forth book at my library. 00:25:47 that sucks 00:25:59 Some of the ones I found were for Commodore 64 and such 00:26:03 a bit out of date. 00:26:13 Ya old stuff. 00:26:39 Anyway, any advice on doing strings in colorforth? 00:26:53 I haven't tried yet, just want to know how to go about it 00:27:08 Strings have been done in many ways in colorforth. 00:27:50 As an example, there is that old "Hello, World!" page in the forth wiki under colorforth. 00:27:54 have you seen it? 00:28:02 I think so, let me find it again 00:28:03 there are also other way. 00:28:37 like the way that Howard Oakford does his strings for his editor and also for his html work. 00:29:25 ok, so we mostly use huffman numbers? 00:29:45 didn't see oakford's stuff btw, where is it? 00:29:56 I expect that it's easier to do that in programs that are not too string intensive. 00:30:19 You may have a few lables, or small messages, and thats an easy way to do it. 00:30:24 ok 00:30:46 okay Oakfords stuff, give a sec... 00:33:11 http://www.inventio.co.uk/cfdos.htm 00:33:30 are you windows or *nix? 00:34:47 *nix. 00:35:11 but I have a dos machine or two around 00:35:27 this will not work for you, sorry, but the code maybe available to you to see. 00:35:37 ok cool about the machines around. 00:36:10 Thanks for the link 00:36:23 this is good stuff. 00:36:24 my pleasure. 00:36:37 He has some code for the PC speaker, something I wanted to try 00:36:54 ya, sounds neat and you can play with it. 00:37:13 brb 00:40:11 back 00:40:54 I wil definitely be trying that out, looks very useful 00:41:14 I hope you can work more on your colorforth.info site soon, as I think we need a good central place for colorforth information 00:41:31 Yes, I agree. 00:41:36 I searched a lot last night and still didin't find Howerd's stuff 00:41:38 with both statements 00:41:44 I see. 00:42:03 Did you find Tim Nietz's archive? 00:42:10 hm, I don't think so 00:42:26 finding. 00:42:31 Thanks. 00:42:50 actually, I only ever enter Tim's name in a google search :) 00:43:13 http://www.dnd.utwente.nl/~tim/colorforth/ 00:44:51 cool 00:45:08 my google skillz must be getting rusty. 00:45:40 It is hard to gauge though, because coloforth is pretty obscure I think 00:46:05 Yes. 00:46:24 It's hard to find active people. 00:46:36 The mailinglist is slow. 00:46:41 It goes in spurts. 00:46:43 Yeah, seems that way 00:47:02 Many of the main players, come and go. 00:47:48 But what I think has things slow now, is that CM has been talking about a new and improved colorforth. 00:48:03 I beleive this has caused a "wait state" in the community. 00:48:17 hmm 00:48:39 I was hoping to hear more from SVFIG by now. 00:48:59 yeah 00:49:03 I must remember to look at the comp.lang.forth 00:49:11 Do they talk about colorforth on there? 00:49:26 some. 00:49:32 interesting 00:49:36 I may check that out as well. 00:49:42 I certainly annouce what ever i'm involved in there. 00:50:00 Cool 00:50:34 Thanks for the tips, I really appreciate it 00:50:56 Tim Neitz has said that his next project will be to boot from the HDD. 00:51:01 Not a problem. 00:51:18 Look forward to discussing the finer points of colorforth with you in future. 00:51:43 Excellent. 00:51:47 Though I have a ways to go = ) 00:51:58 How did you find it, to begin with ? 00:52:06 Let me see... 00:52:18 I think I was looking at Forth on the C2 wiki 00:52:24 then found CM's site 00:52:30 Were you testing languages? 00:52:34 sort of 00:52:48 Have you done any lisp or scheme? 00:52:55 I had huge leeway in what lang to use for my next project, so I looked at all kinds of strange languages just to see what there was out there 00:53:00 A little 00:53:07 Lisp has huge problems talking to the OS, IMO 00:53:18 so I couldn't use it for my project 00:53:22 I see. 00:53:29 I like the language though 00:53:34 ya. 00:53:56 have you tried other forths besides colorforth? 00:54:01 Anyway I found out about Forth, and also when I first saw Forth code, I understood it because I've used RPL on the hp-48 calculator before 00:54:06 I played with gforth a little 00:54:10 just some tutorials actually. 00:54:20 cool. 00:54:26 I want to install qforth on my Apple II, but I don't have the right cable yet = ) 00:54:36 did you read "Starting Forth" ? 00:54:37 hehe 00:54:55 I read some of it, but it was a little slow for me I guess 00:55:04 You have an Apple][, I'm jealous. 00:55:05 I like to dive right in, so a couple other books I found were a little more interesting 00:55:13 Yeah, got it for $30 at a yard sale = ) 00:55:20 hahaha 00:55:25 that's great. 00:55:49 I also have an Atari ST = ) 00:55:59 I had on in my hands for a few weeks and never came up with the dough to buy it, so the guy took it back :( 00:56:00 one gets the feeling I like retro computer stuff... 00:56:16 Have you seen RetroForth yet? 00:56:21 Ah well...people get rid of those all the time, sometimes not knowing how much they're worth 00:56:24 No, what is it? 00:56:47 By crc; ( see his name at the top of the name list) 00:57:12 (holy shit, someone implemented tftpd in colorforth??) 00:57:19 yes. 00:57:28 that's excellent. 00:57:46 It is cool. 00:57:51 I have yet to use it... 00:58:27 oh hey, I nearly forgot... 00:58:39 We have a couple chats of our own. 00:59:13 They are, #c4th which is publically logged, I'll get you the link in a minute. 00:59:19 and #c4th-ot 00:59:28 Neat 00:59:34 the off-topic channel where eveything goes. 00:59:41 gotcha. 00:59:56 we tend to be pretty on topic at #c4th 01:00:05 the log is here... 01:00:48 http://jasonwoof.org/colorforth_channel_logs 01:01:01 there are many days with out content. 01:01:24 I imagine so, the colorforth community is still pretty small I think 01:01:32 you have to serf thru them to get to content, until i do some linking to my site with relevent linking. 01:01:44 brb 01:02:05 --- join: snoopy_1611 (i=snoopy_1@dslb-084-058-164-126.pools.arcor-ip.net) joined #forth 01:09:48 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 01:10:05 --- nick: snoopy_1611 -> Snoopy42 01:13:45 --- quit: akebono ("Leaving") 01:14:23 back 01:17:15 I just started looking into Forth, read some tutorials and went through parts of a few online books. From what I've read, it seems that Forth is a "high level language" used for "low level tasks" mainly. Is that a correct assumption? For example, I see no real application programming in Forth. 01:19:01 It is that, indeed, and it is the application as well. 01:19:33 Forth is the interpreter/compiler/os/language/application, is how i understand it. 01:19:50 colorforth would add editor to that. 01:21:04 Well, I suppose a system that had Forth as an OS would more than likely be an embedded or specialized device of some sort. 01:22:30 Kindof reminds me of a closed-world prolog + assembler 01:23:50 ya. but forth can be the operating system in a very normal use. Business software, Design software, The only limit i know of is lack of good hardware documentation. 01:27:21 Do you know any examples of where it is used in such a context? Searching for examples using the word "forth" is kind of shabby. 01:29:31 http://home.iae.nl/users/mhx/sf0/sf0.html 01:29:50 3/4's down the page, A list of forth uses. 01:32:12 thanks 01:32:20 np 01:33:13 I assume it is companies, much like those listed, that make excellent candidates for applying for forth work. 01:34:53 Yeah, it seems like it has a very good niche. 01:35:40 I'm just doing language survey's, taking a look at unique features of languages. 01:36:01 Forth is definately unique among languages. 01:36:25 Currently, I have two or three favorite versions, always available. 01:36:37 Colorforth holds the most interest for me. 01:36:55 I've only downloaded gforth so far as it was easily installable on my OS. 01:37:32 Yes, that's a good one. it's easy to use and quickly available. Lots of documentation with it. 01:39:47 I found that the documentation on gforth page kind of walked off the deep end quickly. I found the language by reading "Thinking Forth", which I think is a pretty good book. I figured I'd better learn the language to really appreciate it all. So far "A Beginner's Guide to Forth" has been the mostly helpful for me. 01:40:33 Are you a professional Forth programmer? 01:40:43 No, Hobbyiest. 01:40:54 Not even a programmer by profession. 01:41:10 I sell Caster Wheels and Carts and Dollies and the like :) 01:41:22 real low tech job :) 01:41:51 Wow, now there's definately "two of you". 01:42:19 I don't understand? 01:42:39 Heh, just the big difference between day job and night fun :) 01:42:46 Oh yeah. 01:43:09 I own a small software development company, but lately I've been wishing I was back in school working on a PHD. 01:43:21 :) 01:43:22 cool. 01:43:30 I'd love to be educated. 01:43:36 I'm just working on a thesis...for fun I guess. Who knows, I might even submit it to some people. 01:44:11 I didn't go to a very good college for computer science, but I got my rice paper. Just learning new stuff is pretty much my hobby. 01:44:45 Yeah, learning new stuff is a fun hobby, indeed. 01:44:57 Whats the research about? 01:45:45 Well, my thesis I'm working on is really about "applied computer science". Basically applying the knowledge and theories of formal computer science and mathematics with application-level programming. 01:46:17 Err, I mean to be simplier...Taking things like languages from LISP and Haskell and applying them to your typical Java,C++ programmer 01:47:07 --- join: richard_ (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 01:47:09 You know, concepts and axioms and figuring out a way to let programmers easily use the concepts and get the payoff..but not be so academic that it takes a 130 IQ just to understand how to write the code. 01:47:23 hehe 01:47:25 ya 01:47:38 --- quit: snowrichard (Nick collision from services.) 01:47:44 --- nick: richard_ -> snowrichard 01:47:45 well, that's over my head, but i bet it's a facinating read. 01:47:50 --- join: richard_ (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 01:48:19 specifically right now I'm working on applying functors and referential transparency to traditional object-oriented programming. 01:48:39 but I'm a huge fan of bottom-up programming so that's why I'm looking at Forth. 01:49:09 Have you written any forth yet? 01:49:40 Well, I've went through some tutorials and playing with it. 01:49:53 I'm having problems with strings. Doesn't seem to be much support for them. 01:49:56 --- quit: richard_ (Client Quit) 01:50:20 I don't really understand why I can't just put a string on the stack. Maybe you can, but I haven't found out anything yet that tells me how to do it. 01:50:48 In gforth? 01:50:55 Yeah 01:51:05 okay give a sec please :) 01:51:13 I found things like [char] and char and emit, but that's about it. 01:51:48 have you found type yet? 01:52:13 I saw it..but didn't spend any time on it. 01:52:16 let me see 01:52:57 : this ( -- ) s" that " type ; 01:53:00 this that ok 01:53:29 ." this " this ok / as well 01:53:59 mm, my gforth is saying type is undefined word 01:54:16 how are you executing gforth on the commandline? 01:54:58 $ gforth 01:55:24 will this work for you? $ gforth-fast 01:55:54 yep 01:56:10 does type work in gforth-fast? 01:56:30 sure does. 01:56:32 Hmm, why is that? 01:56:39 I don't remember what the difference between gforth and gforth-fast is, but there is one :) 01:56:40 gforth-fast have "extensions"? 01:56:48 Yes, must be so. 01:58:12 Oh, it's my fault. I didn't put a space before the semicolon 01:58:25 cool 01:58:29 good eye. 01:58:49 It looks like "type" prints out the name of the word 01:59:07 that it is compiled in 01:59:32 type prints whatever is between the s" and the delimiter " . 01:59:56 --- quit: snowrichard ("Leaving") 02:01:06 So it's like ." ? 02:01:23 Yes. similar. 02:02:07 Gforth tries to be ANS compatable, so the ANS is something to have handy to look up how to use the basic words provided. 02:03:22 file:///c:/Program%20Files/gforth/doc/gforth/Displaying-characters-and-strings.html#Displaying%20characters%20and%20strings 02:03:31 from gforth manual 02:03:38 yikes thats a local link :) 02:04:12 should be in your folder in gforth after where it says gforth above. 02:04:30 Hmm, just found this thing: http://www.tinyboot.com/ANS/quick.htm 02:05:04 good find, thanks :) 02:05:17 Hmm, looks like I'd have to download gforth from their website to get that doc, doesn't seem to be on my computer. 02:06:00 oh sorry. 02:06:19 Good old terseness 02:06:31 lol 02:06:37 got to be online... 02:06:59 Parse ccc delimited by " (double-quote). Append the run-time semantics given below to the current definition. 02:07:00 Return c-addr and u describing a string consisting of the characters ccc. A program shall not alter the returned string. 02:07:04 Makes perfect sense... 02:08:47 I think this is the online version of that file you put up: http://www.complang.tuwien.ac.at/forth/gforth/Docs-html/Displaying-characters-and-strings.html 02:08:48 --- join: virl (n=hmpf@chello062178085149.1.12.vie.surfer.at) joined #forth 02:08:51 http://www.delorie.com/gnu/docs/gforth/ there is this. 02:09:06 yes thats it; 02:11:11 So I'm thinking that if I want to do work with strings, I use the stack to store the string character-by-character which really stores the ASCII values on the stack? 02:11:31 I have used that approach. 02:12:09 You can also use the pad. 02:12:36 pad? 02:13:34 I don't have a lot of experiance with pad yet. 02:14:00 Err, what is it? 02:14:23 its a memory location, a range from an adress, dedicated for working on strings and parsing text, or so i believe. 02:15:22 Ah, makes sense. 02:15:30 Like an array/ 02:15:32 ? 02:15:38 yes 02:16:40 http://www.complang.tuwien.ac.at/forth/gforth/Docs-html/Input.html#Input 02:17:18 pad is most of the way down the page. 02:25:32 Hmm 02:26:50 I'm just trying to uppercase an "n" here with that n stored on the stack without knowing the ASCII value. I got s" n" that puts the memory address and length in the stack. Now if I could just swap the memory address with the value that is stored in it then toupper and emit would work. 02:27:38 sounds right to me. 02:28:45 I suppose I could use a LOOP to iterate the length on the stack to uppercase an entire string. I haven't done stuff this low level in a long, long time. 02:34:29 Sure you have. You do in every language. In this case, you are the compiler of the application. You will write just the code that converts your compiler into a specific problem solving application. 02:37:04 Remembers this being funner in CLISP :) 02:37:18 :) 02:38:04 Well, forth does make an excellent HP calculator. 02:39:22 I agree. 02:39:36 I'm reading the gforth manua. 02:39:39 Just like "dc" 02:39:41 +l 02:40:32 as in "ac vs dc" ? 02:41:01 There's a program on unix called "dc" that is a RPN calculator 02:41:18 okay, didn't know that one :) 02:41:30 $ dc 02:41:30 10 02:41:30 3 02:41:30 4 02:41:30 * 02:41:31 - 02:41:33 p 02:41:35 -2 02:41:37 bah 02:41:39 sorry 02:41:41 hehe 02:42:51 I've played around alot with colorforth. I actually find forth harder to use. 02:43:18 http://www.hmug.org/man/1/dc.php It's like forth syntax but it's not extensible or anything. It's just a calculator 02:44:09 Hmm, do you have to run colorforth on it's own dedicated device or is there any easy way to run it in a virtual machine? 02:45:36 I do think it's interesting in forth how you can use "see" on the built-in operators and it shows the assembler 02:45:56 like "see +" 02:47:18 yeah, see was appreciated the first time i used it as well. 02:47:30 colorforth exsists in several versions. 02:47:49 there is a *nix version called xcolorforth. 02:48:07 there is at least one windows version. 02:48:22 I have some heartburn and I've heard that vinegar is supposed to help it. I just took a teaspoon of vinegar....I don't know if it's helping or not. I feel kind of funny. 02:48:23 there are several that are native standalone operating systems. 02:48:44 yikes! hope your okay? 02:49:16 For a second I thought that it did fix the heartburn...now I just kind have this rumble-action going on. Heh, I think I'll be alright...I think I should eat something. 02:49:34 hehe 02:49:54 I'm checking out this xcolorforth 02:50:43 Now that's a small amount of code. 02:50:58 oh yeah? 02:52:58 Yeah, 160K com file 02:53:24 yeah thats about right. 02:53:35 does it start on your system? 02:54:25 macr0: heartburn? Mix 1/2 tsp baking soda into water and drink that 02:54:29 Yeah, it started. I had no idea how to use it. It wouldn't close properly. I had to SIG9 it to make it stop. 02:54:34 --- quit: swa_ters_ (Connection timed out) 02:54:41 Ohh no, more home remedies. 02:54:46 macr0: nah, this is science 02:54:50 you need base, not acid 02:55:16 react away some of that excess hydrochloric acid with bicarbonate ion = ) 02:55:20 I need a lab mouse to feed some hot sauce to and do imperical studies first. 02:55:29 hehe 02:55:43 actually though, this 'recipe' is usually printed on the baking soda box 02:56:06 and just my luck, I have no baking soda 02:56:13 too bad. 02:56:15 macr0: when it started, did you see 3 colored boxes and the word colorforth in green and red? 02:56:40 macr0: btw, if the problem is eating too much hot sauce, have some ice cream or something and you'll be much happier. ; ) 02:57:11 Raystm2: Sure did, and when I hit a key some yellow text in the bottom right flops around. 02:57:21 :) 02:57:25 yes indeed. 02:57:27 nyingen: I think it was from eating some leftover pecan pie from turkey day 02:57:52 macr0: that'll do it too. better look more for the baking soda ;p 02:57:54 that yellow text is the diplayed representation of your currently available keyboard. 02:58:13 displayed even. 02:58:33 nyingen: Oh yeah, and before the pecan pie I had schezuan chicken. A great combo 02:58:43 to view the colorforth portion of the environment you need to turn on the editor. 02:59:11 How do I turn on the editor? I hot some keys and some letters come up at the bottom. 02:59:26 s/hot/hit 02:59:30 after booting, hit 'e' on your keyboard where it is displayed on the screen. 02:59:58 Better quesiton, how do I turn this thing off properly? lol. 03:00:03 this will most likely be the literal 'd' key on your keyboard if memory serves 03:00:08 hehe 03:00:12 um 03:00:13 haha, I forgot about the dvorak keyboard 03:00:28 I've been using dvorak for years, so I didn't even realize it at first = ) 03:00:32 you can try bye 03:00:38 mark may have coded that in. 03:00:47 oh great, so I guess I'm going to have to go find me a character map. 03:01:25 a character map is provided. its an application on board called ICONS 03:02:41 but basically your keyboard display is your mapping. 03:03:13 there is three buttons for each finger of both hands and 3 for the right thumb 03:03:27 the right thumb acts like a shift. 03:03:55 Erm, maybe I should go find some documentation to read. 03:03:57 the thumb uses the 'n' key, the space-bar,, and the right-alt. 03:05:22 macr0: good luck, I'm learning too actually 03:05:25 colorforth.com is recomended. also http://www.karig.net/os/cf/index.html is good 03:05:30 Hmm, this kind of sounds like a video game, not a programming language. 03:05:40 use W,A,S,D to move around... 03:05:44 yes indeed. 03:06:22 So Raystm2, what kind of programs have you written with colorforth? 03:06:53 once you learn it, you've learned how rediculously simple things could be. 03:07:43 Recently I coded "ChuckBot the Cursor" see http://www.colorforth.info link on the right 03:09:13 heh, Guido...python is actually my favorite language. 03:09:29 was mine as well, till i found colorforth. 03:12:29 hello 03:12:45 Hi 03:12:49 hey 03:12:55 Raystm2: but some things can be done in python better than in forth 03:13:06 sockets, network programming for example 03:14:31 why is it simpler in python? cus they are already set up for the programmer in a library, i assume. But then you can have that kind of a data base in forth for that I suppose. 03:14:38 I don't know much about forth, but so far it kind of seems like an apples and oranges type thing. 03:14:58 turing completeness aside 03:15:29 I don't see many forth people trying to compete with the c world. 03:15:48 Forth just does things differently. 03:16:23 It does everything and is writen in itself, and just does things differently then any other language. 03:16:45 Raystm2: it does why should they compete, gforth is written in C parts of it 03:16:49 Coming full circle, I find PyPy to be very interesting. 03:17:09 PyPy whats that? 03:17:24 I've seen PyPy... 03:18:21 An implementation of python in python. It lets you easily make your own python minilanguages inside of python itself. Oddly enough, they're also working on a good bit of optimiziation. Using PyPy to turn python into other languages and such. 03:19:26 Making the python language a package in python. 03:20:03 sounds like a neat project. 03:21:16 Yeah, there is a script with it that you can run that runs PyPy on itself and converts itself into machine code. I never let it finish, I think it would've taken 2 or 3 hours on my machine. 03:21:34 whoa 03:22:09 I remember it taking 4 hours to download my first 1.5.2 03:22:42 Python was loads of fun. 03:22:54 I did every tutorial I could find. 03:22:56 Heh, I remember it taking 4 days to compile my first gentoo system. 03:23:12 I've kept up with every version. 03:23:13 hehe 03:24:02 then I realized I didn't have anything to code. Also, there is much about Python I don't understand, even after 10 year of use. 03:24:28 yeah, I like python because it's a very good middle of the road language. It's got everything I could want from a language except for macro's. 03:25:03 I think Python is the only language I completely understand, as far as how the entire thing works. 03:25:23 that's impressive. 03:25:27 Wish i did. 03:25:48 Either of you tried ruby at all? 03:26:23 I migrated to lisp and scheme for a while, but forth knocked my block off, and I stopped looking. Only ever read the rube manual. 03:26:45 s/rube/ruby 03:27:13 Ruby's actually fairly minimalist, compared to the "other two" languages (perl, python) 03:27:25 I've "observed" it, haven't really done much with it myself though. 03:27:28 I have little experience with Python but have done perl for about 10 years 03:27:40 I've only ever heard good things about ruby. 03:28:11 It has its flaws, but I was delighted to discover how useful the source code of the interpreter is in finding answers to obscure questions 03:28:16 It's in "honeymoon" phase still I believe. But you know, I don't think half of the people that know about ruby would have heard of it if it wasn't for rails. 03:28:21 Maybe so 03:28:32 its other huge problem is lack of good docs 03:28:47 and the 2 books people are always recommending actually really suck compared to the best perl and python books 03:29:05 --- join: akebono (i=fujiwara@218.231.198.94.eo.eaccess.ne.jp) joined #forth 03:29:05 Quote: Let us live for the beauty of our own reality. -- Charles Lamb 03:30:19 I think the main gizmo ruby has that I a lot people like are blocks. 03:30:31 yes, I agree 03:31:40 It's really just syntatic sugar though IMHO, though it is nice to have. 03:34:24 I think I'll have to hang it up on colorforth. I just don't have that much time to invest ATM :) 03:35:03 macr0: at least go out with a bang by executing some random code and crashing the machine 03:35:23 I never even figured out how to run any code or turn the thing off, LOL. 03:35:26 oh wait, were you using Xforth? 03:35:32 then don't do that. = ) 03:35:38 heh, yeah. 03:35:52 --- join: PoppaVic (n=pete@0-1pool46-101.nas30.chicago4.il.us.da.qwest.net) joined #forth 03:36:03 I crashed my colorforth earlier this evening, but it was ok, since I hadn't actually done anything 03:36:18 I think a computer language that asks me to rewire keyboard is asking a bit much :) 03:36:42 Are you programming it on a dedicated device? 03:36:45 Howdy 03:36:49 hey there 03:37:07 macr0: yeah, I had an old pentium box sitting around to use with colorforth 03:38:02 I've got a little embedded network device that I bought about a year ago and never got any time to play with it. I think that would be a great platform something like forth. 03:38:40 There's a good forth for the PalmOS too, IIRC 03:42:13 Heh, I finally figured out how to upper a letter. s" n" drop @ toupper emit N 03:42:43 * akebono yesterday, I learned "allocate". Tonight, I'll start thinking about Huffman encoder in Forth.... 03:42:58 * akebono hehehe 03:44:40 char A emit 03:45:22 btw, for a string: don't drop - you can do voodoo 03:45:55 Mmm, well I was looking at making it more general, using the dropped number to loop and uppercase them all. 03:46:07 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 03:46:08 but yeah, char a toupper emit is a lot nicer :) 03:46:45 --- quit: snowrichard (Client Quit) 03:48:07 when I read about counted strings, I remember the str255 type on the Macintosh. 03:48:15 --- join: PoppaVic_ (n=pete@0-3pool157-65.nas22.chicago4.il.us.da.qwest.net) joined #forth 03:48:42 --- quit: PoppaVic (Nick collision from services.) 03:48:45 --- nick: PoppaVic_ -> PoppaVic 03:49:48 : foo 0 do count toupper emit loop ; ok 03:49:48 s" test" foo TEST ok 03:51:34 Hmm, that's no fun. Let me see here. Ok, so that prints it out as it loops. I was thinking of putting it back on the stack, erm...that's a little more complicated isn't it? 03:51:50 how so? 03:52:00 Well, I don't know. I don't know how to write the code, heh. 03:52:04 yet. 03:52:18 you want ( c -- C ) ? 03:52:49 or you are mulching the original string? 03:53:05 mulching 03:53:22 ahh ( str ct -- str ct ) 03:54:48 Hmm, I knew I saw a table somewhere that said exactly what that means. 03:55:07 wait a sec ;-) 04:03:33 hrmm, why not just use toupper and map? 04:05:12 too many gymnastics too early ;-/ 04:06:16 Yeah, that would make sense. I don't know how to use map in forth yet. I've only been coding in this language for about 4 hours now, heh. If I were in another kinda language, I might make it look like "".join(map(lambda x: x.upper(), "asdf")) or something. 04:06:30 ewwwwwww 04:06:50 it'd look like " ' toupper str ct map " 04:06:57 or the short version, "asdf".upper() heh 04:07:09 probably you'd need something like cmap though, since map works on cells, not bytes 04:07:40 Hmm, I don't see anything about a map on my ANS quick reference. 04:08:50 : map for over over @ swap execute over ! 4 + next drop drop ; there's a quick definition for a map function (works for words that process a single stack element) 04:09:29 not portable though, designed it for retroforth. it should read something like "1 cells +" instead of "4 +" 04:10:33 so i suppose cmap would be : cmap for over over c@ swap execute over c! 1 + next drop drop ; 04:11:15 map is useful, keeps you from having to write a lot of extra array-handling code 04:12:23 Is the concept of that map similar to the map function in functional languages? 04:12:34 hrmm, yes 04:13:07 hah! got it. 04:13:10 : stoupper ( str u -- str u ) compiled 04:13:10 2dup 2>r ( -- s u ) compiled 04:13:10 0 DO ( -- s ) compiled 04:13:10 dup count toupper ( s -- s s' c ) compiled 04:13:10 rot c! ( s s' c -- s' ) compiled 04:13:11 LOOP compiled 04:13:13 drop 2r> ; ok 04:14:14 not bad, for "oh-dark-hundred" 04:15:04 my first example had about 3 more screw-arounds, but left stack-droppings. This is simpler and works ;-) 04:16:36 Hmm, looks like it works. let me look at this and figure out exactly what is goes on. s" whatever" stoupper type WHATEVER ok 04:16:47 yep 04:16:57 * akebono I tried it. It works. 04:17:27 1) store a COPY of the ptr/ct pair for later; 04:17:36 2) run thru the string... 04:18:23 3) copy the 'from', fetch char while incrementing, uppercase it; 04:19:07 4) rot that 'from' into place, store the upperchar (this leaves the next pos on the stack); 04:19:19 Is this a "good thing" to do in forth or is there another way that is considered "better" ? 04:19:20 5) loop..... 04:19:35 is what "good"? 04:19:37 Ok, so you use the return stack as temporary memory right and then clean it up at the end? 04:20:06 no, I just shoved a pair of values to R and pull them off toward the end. 04:20:34 Well, would something like this be better done using variables instead of the stack? 04:20:43 because of the way do-loop works, you couldn't get/put during the loop 04:20:43 no 04:20:53 I wouldn't 04:21:03 macr0: generally speaking, using variables is somewhat of a nono 04:21:08 ..for the simple reason that the stack is basically for local vars 04:21:09 s/is/are/ 04:22:06 , so are there any valid uses of variables? Or are they just a crutch that you only lean sometimes when you have to? Maybe storing "constant" date in variables? 04:22:24 hrmm, there are a lot of good uses 04:22:28 The only prob I can see with that code is the potential for mulching non-strings or reaching into a r/o space 04:22:40 sure, plenty of vars around. 04:23:11 and, yeah - constants as well 04:23:47 brb - nature screams 04:23:57 for example, the word 'use' uses a variable to store a file handle. if it didn't, you'd have to constantly juggle the file handle around on the stack as you were working on the file. using a variable alleviates the pain of having to do all that stack juggling 04:24:32 so, you can 'use' and then the rest of your file handling words just read that variable, which makes sense because commonly you're only processing a single file at a time 04:25:28 If you didn't have the variable you'd have to pop it off the stack, do some work and then put it back on the stack all the time right? 04:26:35 macr0: not quite. you'd have to bury it deeper in the stack and then likely have to do a bunch of stack manipulation to get it back to the top of the stack 04:27:05 ahh ok, makes sense. Yeah, that would be a pain. 04:27:53 indeed it would, so, using a variable allows you to write less code (and probably faster code since you're not juggling the stack constantly) to accomplish the same task 04:28:01 which is in essence what forth is all about 04:28:28 Now I just have to find some documentation about the difference between cells and bytes. 04:29:06 oy, that's much better 04:29:21 feel lighter? 04:29:28 several pounds, yes 04:29:40 hrmm, bytes are always 8 bits (well, generally they're accepted as such), whereas cells are the basic unit in forth, which could be any number of bits based on implementation 04:30:03 commonly you'll see 32-bit cells on modernish forth implementations 04:30:25 ALas, the thing about var is: you ain't reentrant 04:31:20 Hmm, so are cells commonly a machine word? 04:31:34 so, yes.. You could have used a var, instead of the >r juggling - but you'd STILL have needed to juggle the prior-content. 04:31:56 yeah, as a rule: a cell is the normal reg-width 04:32:09 * akebono I'm wondering the use of "count" is tricky, semantically. 04:32:33 yep, use of count was very, very ancient. 04:33:16 how they'd alter count and such for wchar_t/unicode-fu is beyond me. 04:33:51 every string words will need rewriting for the purpose. 04:34:14 so, after they are rewritten, it may not be difficult. ;-) 04:34:48 but the usage of count is interesting. 04:34:52 yep 04:35:03 ..amazing the shit that clutters yer memory 04:37:41 it's overloaded. 04:37:59 painful 04:38:24 I think, iirc, that trick dated back to FIG-forth 04:39:03 it's used just to fetch the first byte of a string and increment the top address. 04:41:56 it's an interesting example of misinterpretation of a data type. 04:42:14 actually, no misinterp there 04:42:38 for the purpose, no, I see. 04:43:08 it would definitely be BAD in places where a char was not 8-bit/byte, or when fed whacked parameters 04:43:31 tis why I was concerned with the original issue 04:43:57 limitation of counted strings is that it can't be beyond the limit of 255. 04:44:04 being unable to type-check inputs sorta' bugs me 04:44:27 hmm? sure - that was char-based 04:44:58 tis why all my code plans to use an int and zstring 04:45:14 or rather... "size_t" 04:45:50 related to the length limitation, why is a PAD has only 84 chars-length? 04:46:06 traditional, I suspect 04:46:07 s/is/does/ s/has/have/ 04:46:26 I never, ever liked the way forth works "strings" 04:46:38 it's like the limit of punch card. 04:46:55 I would suspect some forthish uses a much larger buf 04:47:40 also, iirc, PAD was intended for internal-use. 04:48:14 and ACCEPT also has the 255-char limit. 04:48:34 yep 04:48:38 not suprising 04:49:20 it seems as in Pascal, the Str255 type is used to avoid the repetition of finding terminating zero in C's library functions such as strcpy(). 04:49:50 I never understood folks insistance that they'd not play-well-together. 04:50:23 yesterday, I tried allocate, but I found 04:50:53 that a simple toy string input word needs ACCEPT and it has the 255 limit. ;-) 04:51:51 I think C's strings work fine, if one checks its limit. 04:52:33 PoppaVic: Do you have a link that explains the notation you use in your comments at the end of each line? 04:53:16 the ( comment ? ) 04:53:37 * akebono I recommend "Forth Programmer's Handbook" from Forth Inc. 04:53:50 like ( s -- s s' c ) 04:53:59 the 'compiled' and 'ok' were all artifacts of pasting into gforth 04:54:21 macr0: it was just a simple-minded reminder of ( before -- after ) 04:55:30 macr0: the ANS std even pretends to semi-standardize those symbols. 04:56:17 http://www.forth.com/forth/forth-books.html 04:57:02 the book covers most ANS terminologies incl. comment styles. 04:57:28 04:57:44 Hmm, open the door get on the floor, everybody walk the dinosaur. 05:00:30 I found the ANS document about comments. 05:00:31 http://www.taygeta.com/forth/dpans2.htm#2.2 05:00:38 yah 05:01:20 --- join: Topaz (n=top@cerberus.saywell.net) joined #forth 05:02:10 The table 3.1 in the page has every data type symbols to be used in comments. 05:02:20 s/symbols/symbol 05:03:24 THe problem is.. They are mixing ABI info with var/value info with this schlock. 05:04:42 --- join: akebono2 (i=fujiwara@218.231.198.94.eo.eaccess.ne.jp) joined #forth 05:04:46 Quote: A book worth reading is worth buying. -- John Ruskin 05:04:54 stop that shit 05:08:24 that stoupper was destructive., btw. 05:08:30 yep 05:09:01 that was what he wanted 05:09:06 ..I think 05:09:26 Yeah, it was. 05:10:12 I did not really recommend it, but then - I never liked forthish string-snarfles anyway 05:10:29 like mapcon. 05:10:50 why are you talking about maripane? 05:10:51 Well, I'm not really using it in a program. I'm just trying to learn how to do it. 05:11:06 sure - in that case, it was a "good" example 05:12:42 supporting strings in a language level will require garbage collection. 05:13:15 The more I stare at this datafile, the more I keep thinking of a "forthish preprocessor" 05:13:26 bah 05:13:31 that's untrue 05:13:44 gc is a niceity 05:18:27 yes, it's rarely needed. and it's possible to write it by yourself, if a simple thing is enough. 05:19:18 Generally, I've only tried GC when I've got too much code passing around too many ptrs or vars and you suddenly start noticing a leak. 05:20:10 Now, I will admit that I've toyed with the idea of GC for a variant. 05:20:15 A = "I am a man." ; A = "You are a man." 05:20:34 no 05:21:00 this requires something like a reference count. 05:21:17 I meant as I was considering all mem as relative to users, absolute internal, and a whole load of other issues. 05:21:46 --- quit: akebono (Read error: 110 (Connection timed out)) 05:21:57 the above shows the basic issue: the '=' operator is making at least one too-many assumptions. 05:24:11 and there are cases where B = A appeared somewhere. 05:24:22 yep 05:24:37 losing track of ptrs that no longer are reachable. 05:24:54 Most lang like that scare me. 05:25:13 perl and such, iirc, expect that sorta' idiocy. 05:25:22 a simple method is to use a reference count embedded in the structure. 05:25:28 yes, I know 05:25:44 Of course, then one must teach all the code to respect them 05:26:18 Similar to the issue of locking/sharing/critical/exclusion 05:26:46 I believe forth's approach is to let users rewrite codes for their purposes. 05:27:03 yep - and "That way lies Madness" 05:27:23 so, while I respect such - I don't advocate it 05:28:26 It's similar to my respect for valgrind, but my irritation with twits that rely on THAT to catch them being stupid. 05:29:03 but Forth itself seems to advocate it, because it makes itself very simple, enough to allow that usage of count. 05:29:41 yes, because forth is really not all that "high-level" - it's actually on a par with C 05:29:54 actually - it's a notch below 05:30:11 maybe one notch over asm 05:32:35 yes, it's very different from languages such as Python, Ruby, SmallTalk, etc. 05:33:02 they are very "higher-level". 05:33:08 well, worse... Most imps can't decide if they are built UPON things, or replace them. 05:35:09 Myself, I'm beginning to think in terms of a database. 05:35:23 ala Prolog? 05:35:42 with a db, you can replace or fail, or create or lookup 05:36:00 ..That prettymuch seems to suggest everything from words to mem-alloc 05:36:34 I dunno' "prolog", never used it - think I can recall seeing it once, very, very long ago 05:37:00 But, my preference is still a forthism that can reach/use/leverage C 05:39:51 or some other people may write their own language in Forth, as Forth already has useful things such as symbol tables. 05:40:13 yeah, but not for FFI.. 05:40:37 I think something like FICL is a good tradeoff 05:41:17 iirc, Gforth is only capable in the latest version that I can't get to compile properly. 05:42:10 Still, the prime issue is this mindset w/Forth that suggests: "Code need not be portable - rewrite for every platform" 05:43:03 some forthers are skeptical about the concept of "portability". 05:43:12 yep 05:43:25 Most also think "interpreter" 05:45:46 but it's less interpretive than other languages, so the portability becomes an issue. 05:45:55 not true 05:46:08 it's moreso, and THUS the portability 05:46:36 ..for example: show me 3 opensource forth-compilers. 05:47:10 ..instead of leveraging something like gcc or asm, they do the same in-place, interpretation over and over 05:47:25 ..and usually, are written IN some assembler 05:47:53 yes. 05:48:17 so, they neglect the leverage, the libs, the tools REpeatedly. 05:48:32 Drives me up the wall 05:49:48 except very few experts, it will become difficult. 05:49:58 what will? 05:50:10 neglecting libs. 05:50:40 because CPUs are becoming more complicated. 05:50:47 ahh.. No. THe prob is Forth is so grassroots, and unsupported, and willing to perform: they can't agree 05:51:21 I would recommend looking at Ficl 4+ 05:51:53 ..it's not bycoded, but it is C, and lets you get up and down between "a forth" and C 05:52:25 it's interesting. 05:52:42 yeah.. I hateThisLongShit - but otherwise... Interesting 05:53:16 tathi/jasons Fovium is also "interesting" - but I don't want asm, I want to leverage C 05:53:17 it's like SmallTalk. 05:53:33 long names 05:53:46 yeah, I hate 'em - they were worse in doze 05:54:37 It usually suggests improper decomposition and a need for vtables, to me. 05:55:15 after I learn Forth some more, making some small programs like Huffman encoding, I'll write a language for my own. :-) 05:55:29 Huffing or LZ 05:55:47 oh, more complicated. ;-) 05:55:48 ..yeah, compression of the dict is OK - if you need the extra work 05:56:38 I'm going to need to consider ndbm.h more heavily. 05:56:45 and bignum, which enables practical rational numbers... 05:56:59 not even remotely interested at this time 05:57:07 haha. 05:57:23 I'd use c doubles 05:57:26 but it's because forth is interesting, and only for my curiosity. 05:58:32 though I suspect my effort will result in a poorer version of "bc" on Unix. 05:58:46 ;-) 05:58:50 There is something out of whack with Forth voc/parsing stuff.. BUt, I'm still working on what and how to fix it. 05:59:19 --- nick: saon -> kunphuzil 05:59:31 I've seen too many people pretending a long or double is "too small" 05:59:59 --- nick: kunphuzil -> saon 06:00:14 only in critical areas, it's true. 06:00:24 bah 06:00:41 but in many cases, float in C suffices. 06:00:48 This is another case of "why the hell can't I leverage a lib?" 06:01:09 no, I never use 'float' 06:01:15 C programmers tend to easily write "double x;". 06:01:28 ..using a double or an unsigned, or an int, that works. 06:01:51 'float' is a semi-double, messy/broken mess 06:01:57 "stopgap" 06:02:40 very high-precision fixed-point number calculation is extremely difficult 06:02:53 but I don't need to touch it at all. 06:03:20 it's beyond my knowledge and skill. 06:04:11 Sure, but using a lib would ease it - like a voc 06:04:20 rasterization of outlines onto extremely fine bitmaps, for example. 06:05:19 Basically, we should be leveraging a C lib with a forthish name/voc interface into the interp/sys. 06:05:54 lord knows, there are libs for more shit than I will EVER suffer 06:06:18 modules and uses, etc. in Pascal, Modula or perl. 06:06:26 sure 06:07:10 the diff is, (since we already know forthers are obtuse ;-), make the interfacing happy with C or asm. 06:07:11 USE MD5 06:07:19 for example 06:07:20 ..instead of special libs 06:07:25 Yep, same idea 06:07:41 USE TCP 06:07:53 now, envision the reverse: presume a complete app you want generated as a lib or binary. 06:08:29 ..it will need to be compiled and linked and whatnot 06:08:55 Also, both directions with a "plugin" 06:09:28 which is in Forth? 06:10:34 console dev of an app, it works: now generate a binary or lib/plugin once and for all - it's portable and loads FAST, and may be a turnkey. 06:11:22 hmm, for "portable", say "will run here, no prob" 06:11:27 as a scripting tool for the app? 06:11:45 could be - also could be sealed-off - not my current issue 06:12:17 ah, the app. will provide API and its interface to forth. 06:12:58 take MD5, for example: how could you tell the forthish to transfigure the mess into a c/asm/forthish "module" (lib/plugin)? 06:13:32 You see... there are several viewpoints and reasons for programming. 06:14:12 Just saving "decomposed work" should generate a sourcefile for this platform. 06:14:47 (all the compiled work, turned into a one-pass sourcefile) 06:14:59 a kernel of the app. and apis in a library written in C may remain. 06:15:08 yep 06:15:34 or, each lib would have the C - and a hook for vocs/words 06:16:08 It's akin to compiling a "debugging library" 06:17:34 there can be many different approaches. 06:18:42 yep, but it needs to be systemized 06:19:38 ..at least, for an opensource-solution of this magnitude. 06:20:31 so, you think ficl is good in the direction. 06:20:39 sorta' 06:20:51 It's incomplete and the author can't get back to it 06:21:14 from C, yeah - not a bad solution. 06:21:41 Certainly, whatever I cobble will be from within C. 06:22:24 I should point out: even tathi was sorta' impressed with Ficl 06:24:24 Okay, I will look at ficl. 06:24:44 step by step, i'll study forth. 06:24:54 I do think that, between his bytecoded Fovium-idea and ficl, there should be a solution 06:26:25 I think today's fruit was "count" for me. 06:26:29 heh 06:26:54 in Tokyo, it's 23:26, I'll take a bath. 06:26:56 ;-) 06:27:13 sleep well, change yer autogreet. 06:28:00 but when I enter a Japanese channel, a different set of quotes in UTF-8 is chosen automatically. 06:28:12 good luck. 06:28:15 I don't care - it makes me want to ignore 06:28:19 stay well 06:28:35 --- part: akebono2 left #forth 06:33:22 PoppaVic: I'll scold him in Japanese next time! 06:34:24 s'ok ;-) 06:35:02 btw, forth leads to insomnia 06:35:05 I have hairy issues with unicode-fu.. *sigh* I keep seeking a sensible resolution. 06:35:17 Unicode-fu? 06:35:24 yeah, lord.. I spent years staying up tinkering forth 06:35:57 I for one really enjoy the mental gymnastics of stack manipulation = ) 06:35:59 nyingen: yeah, utf-8, wchar_t - when an where to use any and where to avoid it - and how, etc. 06:36:05 ah, yes 06:36:14 nyingen: you might want to join FIG 06:36:18 so you mean unicode manipulation in any prog. language then? 06:36:37 ...in the days of old, a shitload of fights started over gymnastics 06:36:42 hehe 06:37:03 yeah.. Or if the lang is for prompts, and not lang - etc 06:37:29 I agree, trying to do unicode in a non-"unicodified" language is annoying 06:37:47 triply annoying when you combine it with font rendering and input munging 06:38:15 I'm pretty sure a cross between ascii and html-type %20 fu is what you want in filepathspecs, and maybe JUST ASCII in vocs 06:38:21 right. 06:39:10 ..I keep thinking all the assorted glyph-voodoo is apropos to prompts/output-to-console. 06:39:30 Hmm 06:39:32 but, I also know this whole mess is just badly tought-out 06:39:37 thought 06:39:54 Well, I always saw it more as a very unfortunate intersection of historical kludges 06:40:19 yeah, but it's beyond ebcdic and ascii 06:41:09 My 1st approx is: folks want to all talk about the same var/names - but the strings for prompts and such are iffy 06:41:53 as I understand most glyphs, they could all suffer ascii and structs and vtables, etc 06:42:03 (think vocs/defs) 06:42:07 Yeah 06:42:32 the kicker seems to be: screen-presentation and keyboard-presentation 06:43:02 yeah, keyboard is an issue for certain 06:43:08 .. and I have NO idea how keyboards would filter in ascii (utf-8) and such 06:44:11 Seems pretty obvious (to me) that keyboard or display are NOT dictionaries/vars, etc.. But.. damn: I've never seen a sensible solution. 06:44:29 ..seems like it'd be a module/filter - html manages it. 06:44:47 I should say: "even uri manage it" 06:44:52 Yeah 06:45:01 Now you have me thinking about it vis-a-vis colorforth 06:45:07 gah 06:45:22 I better not go there though, until I'm at least somewhat of a forth programmer = ) 06:45:30 pretend yer colorblind: cf loses its attraction. 06:45:45 Ah, I'm more into the minimalism of it 06:46:01 no.. the minimalism is more pyscho 06:46:16 It's like 1985 with MS-DOS, only much, much better 06:46:18 ..Keep in mind color or even vision-impaired users 06:46:26 Are you colorblind? 06:46:35 no, just very nearsighted 06:46:39 Ah 06:46:47 In CM's version anyway, the font is HUGE 06:46:49 otoh, I can't read braille, either 06:46:52 hehe 06:47:12 yet, AMSLAN and braille are pretty well "standardized" 06:47:50 so, yeah... I keep wondering WHY we can't make all this shit work 06:48:11 Well, what would "work" encompass exactly, in this situation? 06:48:59 regardless whom/where you are - the symbology should be the same.. Now, I already know thinks like "dialogs" have to be flexible. 06:49:28 maybe the kick is: the lang is ascii or utf-8 - that means all the source. 06:49:56 I suppose in a TIL like forth it's more of an issue 06:50:16 I can't recall seeing much xlation of other lang into ascii/utf-8.. I have to presume the embedments would be akin to uri 06:50:33 yeah, it would be 06:50:44 with the hex escapes you mean? 06:50:49 yeah 06:51:02 ironic though because it puts unicode back into ascii 06:51:19 No one really seems to want to use more than one byte for a symbol 06:51:43 given a choice between suffering "/dev/foo bar snafu" and "/dev/foo%20bar%20snafu" - the choice is obvious 06:51:52 Yup, no kidding 06:51:55 nyingen: I tend to agree 06:52:25 IMO the whole programming world is in spasmodic growth pains right now 06:52:31 otoh, I could survive if a char was suddenly 16 or 32 bits 06:52:51 We have all kinds of 'high-level' languages, but people still use C++, Basic is even still used, a char is still 8 bits, etc 06:52:51 ..but THEY have to code it LOW 06:53:09 yeah, and saying "byte" gets you hollered at 06:53:12 hehe 06:53:35 ..I always felt that the "octet" dits were part of the problem 06:54:18 Is there any computer that avoids them? 06:54:27 maybe I should write my crap with "octit" and "hexit" *sigh* What would be 32 or 64 bit tits? 06:54:43 heh 06:54:57 there are a couple mainframes - antiquated - that use 9-bit char and such 06:55:24 Hmm 06:55:58 it's moot to me... Even the ##C folks will admit that a 4-bit processor will fetch (twice) to get "a char" 06:58:44 anyway who uses today a 4-bit processor 06:59:17 I get the distinct impression that either: 1) glyphs are for console-output; 2) glyphs are needed 100% - from bottom up to the top. 06:59:39 ..and only Bog knows how I'd key a glyph 06:59:45 I would agree with #2 06:59:59 and you would I guess need some sophisticated keyboard drivers. 07:00:30 Although, there are certainly better methods for inputting Chinese, Arabic, etc, they just haven't been discovered yet 07:00:34 ok, now - envision: qwerty/ascii keyboard: how would I enter glyphs to match forth vocs/words? 07:00:52 by 'glyph' you mean non-ascii symbols? 07:00:57 yep 07:01:11 You would need a keyboard driver, or something totally different 07:01:37 yeah, bad idea: there is only one keyboard in the world that uses lcd for keycaps 07:01:46 There are ways of inputting Chinese characters, for instance, but you'd have to reimplement all that on a much lower level somehow 07:01:55 ..I think we need to use the URI solution 07:02:13 The idea of a Chinese Forth is strangely compelling, however = ) 07:03:18 it has bugged me for years that we even NEED to fight this 07:04:38 I begin to believe it's more of this "One World" thang. 07:05:37 hmm 07:08:46 --- join: ThinkingInBinary (n=tom@pool-68-163-229-26.bos.east.verizon.net) joined #forth 07:08:53 Quartus: just added SEE 07:09:07 Quartus: w00t, it crashes on native code 07:09:42 Quartus: hey, it works! 07:11:48 Quartus: hehe, FACTORIAL exploded because 1- actually did 1+ 07:12:43 hoooray! 07:12:59 Heh. Good news. 07:14:42 Quartus: hmm, my number formatting appears to like to leave 0's on the stack 07:14:48 Quartus: or, rather, my . code is buggy 07:15:16 Quartus: forgot to drop the number off at the end 07:16:14 Quartus: I found a cute hack. SEE would previously stop at the first EXIT in a word, which is wrong, so I have ; write EXIT NOP at the end. Unless you specifically put EXIT NOP in a word (a useless idea), it will always show the whole word. 07:17:13 Quartus: okay, FACTORIAL (the RECURSE example in ANS) seems to work. 07:17:20 decomposition ala' see-like words is a great thing. 07:17:39 PoppaVic: I gotta say, it makes debugging a gazillion times easier. 07:17:50 PoppaVic: I'm going to gradually improve SEE until it's basically a disassembler. 07:18:11 yep 07:18:32 Nothing wrong with such a plan 07:18:50 PoppaVic: (right now it writes ugly things like __LIT 2 instead of just 2) 07:19:01 That's NOT BAD 07:19:11 PoppaVic: well right now it is a primitive "VM machine code" disassembler, I want a version that outputs Forth. 07:19:18 it clarifies for debugging 07:19:19 PoppaVic: it's okay, but it's harder to read. 07:19:32 PoppaVic: yeah, maybe two versions, one for Forth, one for "ASM" 07:19:39 think of a filter, for recomposition to source ;-) 07:20:06 PoppaVic: huh? 07:20:16 leave it as-is 07:20:22 PoppaVic: ok 07:20:24 ..it's 90% for debugging 07:20:40 ..now, envision feeding THAT thru a filter - to regenerate source 07:20:42 PoppaVic: yeah, most of what I use it for is to make sure control-flow words generate appropriate "ASM" 07:20:45 PoppaVic: oh ok 07:21:05 PoppaVic: so you're saying convert numbers to ASM, and then ASM to Forth (by processing things like JUMPs and LITs) 07:21:21 Doesn't matter of the filter is integral (parallel SEE) or external 07:21:55 look for reuse everywhere... routines, programs, etc. 07:22:57 Another approach that doesn't waste codespace is to store the length of the compiled word in the header. 07:23:05 sure 07:23:18 Quartus: that's true, but it's one cell in either place. 07:23:38 ..you might even use a VFA - and reference the file/line (or input) that created the word 07:24:14 this does NOT imply that your "SEE" is a BAD IDEA 07:24:25 PoppaVic: VFA? 07:24:33 View Field Address 07:24:38 see F84 07:24:42 83 07:24:56 Quartus: Does . consider its parameter signed or not? 07:25:06 Yes it does. Standard says so. 07:25:07 as a rule, an int 07:25:38 'int' isn't a Standard Forth term. . displays the topmost cell on the data stack as a signed integer. 07:25:45 Quartus: ok 07:25:52 I know it isn't 07:26:14 PoppaVic: (I will actually be using a short.) 07:26:23 I can't see that it helps to describe Forth using terms from other languages. 07:26:24 short, ushort ;-> 07:26:42 Quartus: so, in terms of <# ... #>, : . <# DUP SIGN S>D #S #> TYPE ; ? 07:26:43 half-cell 07:26:51 PoppaVic: no, my cells are shorts 07:26:56 ahhh 07:26:56 PoppaVic: a half-cell for me is a byte 07:27:07 ThinkingInBinary, we did this one yesterday. Write D.R, then write D. then write . 07:27:10 PoppaVic: I figured 32-bit cells would be a bit big for an embedded device. 07:27:17 Quartus: oh yeah, I need those. 07:27:24 depends on the processor, of course 07:28:02 PoppaVic: the processor is a JVM ;-) 07:28:06 I think I gave you all the code for those. 07:30:36 Quartus: yeah... 07:31:19 Quartus: : .R >R DUP S>D <# #S 2DROP SIGN #> R> OVER - SPACES TYPE ; ? 07:31:55 Quartus: (assuming SPACES ignores n < 0) 07:32:32 n should be u 07:32:38 .R? 07:32:50 That's not the code I gave you, do you have a log? 07:33:08 You can't 2drop the value before SIGN, for instance. 07:33:33 #> expects it. 07:33:57 Quartus: no, i don't think I have a log 07:33:57 --- quit: PoppaVic ("Pulls the pin...") 07:34:05 You need to log these conversations! 07:34:06 Quartus: wait, #> expects the value? 07:34:14 I hate to repeat myself needlessly :) 07:34:20 Quartus: sorry :-\ 07:34:30 Quartus: i never got around to configuring irssi 07:34:40 what does #> use the value for? 07:35:09 Quartus: so #S doesn't remove the value, but SIGN does remove *a* value? 07:35:14 : d.r >r tuck dabs <# #s rot sign #> r> over - spaces type ; 07:35:30 #> chucks the double-cell value in the dustbin, so you don't have to. 07:35:34 Quartus: oh ok 07:35:34 --- join: PoppaVic (n=pete@0-3pool157-97.nas22.chicago4.il.us.da.qwest.net) joined #forth 07:35:37 Quartus: i get it 07:35:48 D.R is the heart of the output routines. 07:35:52 Hit the wrong key - D'oh! 07:35:54 Quartus: DABS is take absolute value of a double-cell signed number? 07:35:58 PoppaVic: hehe 07:36:02 : d. 0 d.r space ; 07:36:03 Yes. 07:36:07 Then 07:36:12 : . s>d d. ; 07:36:30 Q: are you one of the <# guru I told him to talk with? I note some folks here really love it. 07:36:49 I have no idea if you referred him to me. The picnum stuff in Forth is quite elegant and nifty. 07:37:00 yeah, you must be. 07:37:13 Quartus: i love how it's backwards. it's just the coolest little quirk. 07:37:15 It's _interesting_, but I never liked it 07:37:21 Quartus: and it makes it easier to implement. 07:37:22 Once you understand it properly, it's quite powerful. 07:37:30 yes, I agree 07:37:43 ThinkingInBinary, in fact even in C, printf generates numbers in reverse, you're just not party to the process. 07:37:51 Not sure I like HOW it is implemented, though 07:38:22 But, that's prolly my years elsewhere 07:38:53 Maybe it just needs a voc & semantic 07:39:26 PoppaVic: ??? 07:40:00 ThinkingInBinary: I'm pretty sure - after all these years - most probs are due to not breaking shit out into vocs 07:40:10 PoppaVic: what's a voc? 07:40:32 vocabulary 07:40:43 voc(wordlist(code)) 07:41:05 actually, order(voc(wordlist(code))) 07:41:14 PoppaVic: what is a voc that a wordlist isn't? 07:41:44 a wordlist is akin to an array or list of words, period. 07:42:15 a voc sets current (for lookup) and this can be any of the 'order' 07:42:34 PoppaVic: so a voc is like the word that adds a wordlist to the search order? 07:42:37 In fact a wordlist is an entire discrete Forth dictionary. The search-order determines which wordlists are searched, and in what order. 07:42:47 right, and not even a dict 07:42:54 it's not smart enough 07:43:01 ? 07:43:21 A Standard Forth wordlist is, in fact, an entire discrete Forth dictionary. 07:43:33 think of a stack-of-voc... each sets current, and knows how to seek a word 07:43:55 That's nice, and the term "dictionary" is still obtuse 07:44:03 It's clearly defined. 07:44:22 PoppaVic: how is dictionary obtuse? You look up a word in the dictionary, it tells you the definition and the semantics (immediate, etc...). 07:44:26 yeah, that's why it mixes code and text and headers and vars, etc. 07:44:33 Eh? 07:44:40 PoppaVic: no, only code. 07:44:43 it's an issue, not a prob 07:44:56 PoppaVic: vars are implemented as code that outputs a number 07:44:58 ThinkingInBinary: no, it's not 07:44:59 Dictionary. Ordered list of headers. Each header has a name, an xt, and one or more flags. That's it. 07:45:20 s'ok, Q: take him. 07:45:30 It's you I'm talking to, PoppaVic. 07:45:42 Yeah, I saw that: take him 07:46:15 Thanks for the stage direction. 07:46:19 np 07:46:41 He'll start asking "deeper" soon enough 07:47:06 Hopefully he won't ask you, as you're in the dark about what a Forth dictionary is! 07:47:21 ahh, yeah: I'm lost in the dark 07:47:37 Well, that's good. Acknowledging the problem is the first step. 07:47:46 here 07:48:26 --- part: ThinkingInBinary left #forth 07:50:14 * PoppaVic watches - with "baited" breath 08:07:26 --- join: FiLa (n=FiLa@12-208-98-237.client.insightBB.com) joined #forth 08:28:57 * PoppaVic the silence is entertaining 08:30:59 --- join: aLiF (i=LNIX@12-208-98-237.client.insightBB.com) joined #forth 08:44:59 --- quit: FiLa (Read error: 110 (Connection timed out)) 08:50:31 * PoppaVic chortles 08:59:57 --- quit: PoppaVic ("Pulls the pin...") 09:29:17 --- join: _james (i=jcp@adara.cs.pdx.edu) joined #forth 09:30:43 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 09:59:33 --- quit: tathi ("leaving") 10:04:16 --- quit: Topaz (Remote closed the connection) 10:45:45 --- join: swa_ters_ (n=swalters@6532183hfc82.tampabay.res.rr.com) joined #forth 12:16:57 --- quit: swa_ters_ (Read error: 104 (Connection reset by peer)) 12:36:44 --- join: swa_ters_ (n=swalters@6532183hfc82.tampabay.res.rr.com) joined #forth 12:54:19 --- quit: nyingen ("leaving") 13:05:58 --- join: amca (i=Rain@rdlax9-162.dialup.optusnet.com.au) joined #forth 13:06:04 --- part: amca left #forth 13:09:14 --- join: sproingie (n=chuck@64-121-2-59.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 13:12:12 --- quit: sproingie (Client Quit) 13:13:20 --- join: amca (i=Rain@rdlax9-162.dialup.optusnet.com.au) joined #forth 13:13:25 Gday all! 13:29:26 Hey amca. 13:30:23 How are you today? 13:30:32 Fine, thanks -you? 13:30:52 Im good :) 13:30:58 Very good. :) 13:31:06 Good! 13:31:08 Im very happy about how my life ius going. :D 13:31:18 What have you been doing recently? 13:32:13 Working too much, otherwise no complaints. 13:32:20 Ah 13:32:47 What has work involved? Has it been too much cause of necessity, or cause of lack of self discipline? 13:33:01 Plenty of self-discipline, or I wouldn't do the work :) 13:35:54 hehe 13:36:13 Fair enough 13:36:31 What work have you had to do? 13:37:56 brb 13:40:51 Working with Quartus Forth customers on the software business side, doing some contract work. Always something going on. :) 13:41:05 back 13:41:33 Oh, I know there is always *something* going on. The interesting art is "what". ;) 13:42:00 s/art/part/ 13:43:34 As the ancient curse goes, "May you live in interesting times!" 13:44:37 hehe 13:44:49 Yeah. I love that one. Chinese, isnt it? 13:46:28 What sort of work have you dont on the s/ware business side? 13:50:05 --- join: saon|fbsd (i=1000@unaffiliated/saon) joined #forth 13:50:14 --- part: saon|fbsd left #forth 13:53:12 Quartus: Busy? 14:03:47 Eh, sorry. Got called away. 14:04:11 It's mostly software. 14:04:15 np 14:04:22 As in coding s/ware? 14:04:30 Right. Supporting it, etc. 14:07:53 Ah. 14:08:05 Technical support? 14:08:15 Only on my own software, thankfully. :) 14:08:30 I'm self-employed currently, no 9-5 job as such. 14:09:14 Yep. 14:09:43 I thought if it wasn't technical support for your products, you could be training. 14:09:54 As in training ppl to use your products. 14:11:05 What sort of problems have the customers been having? 14:14:37 Sorry, I need to wake up my gf. I will have to continue chatting later with you. 14:15:08 --- quit: amca ("g0n3") 14:25:39 --- join: TheBlueWizard (i=TheBlueW@ts001d0826.wdc-dc.xod.concentric.net) joined #forth 14:42:10 --- join: Topaz (n=top@cerberus.saywell.net) joined #forth 15:31:53 --- quit: Topaz (Remote closed the connection) 15:45:21 --- part: TheBlueWizard left #forth 15:54:57 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 16:04:30 --- quit: snowrichard ("Leaving") 16:25:10 --- quit: aLiF (Remote closed the connection) 16:54:34 --- join: ThinkingInBinary (n=tom@2001:5c0:8bc9:1:20e:35ff:fe48:b958) joined #forth 16:54:39 --- part: ThinkingInBinary left #forth 16:57:46 --- join: reuben (i=ben@leb-cr1-220-16.peak.org) joined #forth 17:26:57 --- quit: saon ("starting up ircII") 18:13:31 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 18:23:17 --- quit: snowrichard ("Leaving") 18:31:50 --- join: saon (i=1000@unaffiliated/saon) joined #forth 18:31:56 ; 18:33:26 Error: Interpreting a compile-only word 18:52:27 --- join: homeness (n=Miranda@savant.kz) joined #forth 18:54:15 test 18:57:38 --- quit: reuben ("peace") 19:46:48 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 19:54:54 --- quit: snowrichard ("Leaving") 20:22:53 --- join: Amanita_Virosa (n=jenni@adsl-69-154-189-66.dsl.hstntx.swbell.net) joined #forth 20:28:46 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 20:29:45 Hey all. 20:34:38 --- quit: Amanita_Virosa ("Stuff to do.") 20:38:28 Hello Neal! 20:38:41 Hi. 20:39:47 What's new on Earth? :) 20:40:18 Not too much, how about you? 20:42:17 Our office was infected with heap of Sobers :) And now I'm busy with talking with other people from ordb.org etc :) 20:43:55 Virus? 20:45:58 Yeap, stupid e-mail attachment for stupid users :) 20:46:24 Ugh. 20:54:36 a new server here :) 20:55:26 test.richardsnow.net 20:57:35 debian 22:19:30 --- quit: virl (Remote closed the connection) 22:46:56 --- quit: swa_ters_ (Read error: 104 (Connection reset by peer)) 23:02:25 --- part: macr0 left #forth 23:24:09 --- quit: snowrichard ("Leaving") 23:51:39 --- join: swi_ (n=swi@tor/session/x-739d581d19d90141) joined #forth 23:59:59 --- log: ended forth/05.11.27