00:00:00 --- log: started retro/10.02.03 00:26:03 --- join: swede (~53fb7a06@gateway/web/freenode/x-qzuouwoygfskinbb) joined #retro 00:26:23 hello 00:27:56 anybody here? 00:28:05 barely 00:28:29 aha, sixforty. how are you? 00:28:44 ok, yourself? 00:29:13 i'm fine thx. wondering about documetation for retro 00:29:41 it seems a bit sparse 00:30:11 it is, but do you have RetroLanguage.html? 00:30:28 no i don't. where can i find it? 00:31:18 ok, i'll google for it then. thx. 00:31:18 if you're running a unix with docutils, you can easily build it 00:31:52 there's a direct link to the repo, but I don't know it 00:32:02 running ubuntu, but i'm totally new to it. 00:32:24 i don't know if i have docutils or not.. sorry! 00:32:30 I think you have docutils; lemme see what a good test is 00:32:40 okay 00:32:44 grab a terminal 00:32:59 done 00:33:14 issue: which rst2html.py 00:33:16 what next? 00:34:06 nothing happened. 00:34:23 which blark 00:34:38 exactly 00:35:00 that means i don't have docutils? 00:35:01 just gives you the prompt back? 00:35:05 yes 00:35:09 which bash 00:35:55 uhh it says /bin/bash 00:36:10 k, so you don't have docutils, apparently 00:36:18 k 00:37:09 taking a quick look at the repo 00:37:58 ohh, i found it: http://www.google.com/url?sa=D&q=http://retroforth.org/RetroLanguage.html 00:38:32 crap! i mean: http://retroforth.org/RetroLanguage.html 00:38:41 of course 00:38:47 there's a newer version 00:39:06 oh? 00:40:19 maybe the old version will be useful for a newbie at retro? 00:42:08 if you're going to do much with retro, you should have docutils. it's small 00:42:28 do you know the format for sudo apt get install? 00:42:38 sorry to bother you with another newbie question: where to get docutils? 00:42:42 (I've forgotten it.) 00:43:18 hang on, I'll refresh my memory. Keep that terminal open. 00:43:18 oh, wait, ubuntu has some sort of online program repository which is usually quite convenient... 00:43:35 i'm hanging on. 00:45:20 which apt-get 00:45:38 let me see 00:46:53 /usr/bin/apt-get 00:47:30 man apt-get -- it's something like 'sudo apt-get --install docutils' 00:48:08 ah, the elusive sudo... i always forget about that. i'm really a beginner 00:48:14 do you have the source package for retro 1.4? 00:48:28 (or 1.3.x) 00:48:42 no, didn't want to download it until i saw some documentation 00:49:04 once we have docutils, the docs are in the package 00:49:17 aha 00:49:32 and there is instructions in there, too? 00:49:34 actually, they're readable as-is with a text editor 00:49:48 there's nothing at all like a tutorial 00:50:03 which gcc 00:50:19 i'll try getting those docutils now.. you said it's a small package 00:50:54 /usr/bin/gcc 00:51:19 cool. didn't want to assume. 00:52:05 found the apt-get howto 00:52:22 tried doing the apt-get stuff, but it didn't understand the flag --install 00:52:42 sudo apt-get install docutils 00:52:53 (no --) 00:52:57 ah, thx. i'll try that now 00:53:43 https://help.ubuntu.com/community/AptGet/Howto 00:54:30 apt-get couldn't find the package docutils. 00:54:48 k, i'll follow the link 00:55:03 it just tells you how to use apt-get 00:56:29 click system > administration > Synaptic Package Manager 00:56:55 select search, type in docutil (leave off the "s", just in case) 00:57:08 yes. thanks, sixforty, you've been a real help. i'll study the manual for apt-get, then i'll figure out how to install docutils, then i'll download the package for retro, then i'll most likely come back here with more questions. 00:57:20 --- quit: sixforty (Quit: Leaving.) 00:57:28 i already did that search. it came up blank for some reason. 00:57:59 --- join: sixforty (~sixforty@pdpc/supporter/active/sixforty) joined #retro 00:58:07 what happened? 00:58:20 i already did that search. it came up blank for some reason. 00:58:33 yes. thanks, sixforty, you've been a real help. i'll study the manual for apt-get, then i'll figure out how to install docutils, then i'll download the package for retro, then i'll most likely come back here with more questions. 00:58:44 is that a good plan? 00:59:34 I'd go ahead and grab the sources. Look in image/doc for RetroLanguage.rst. It's readable with a text editor. 01:00:35 all right. i'll do that as well. but docutils seem to be something everyone should have, so i'll not give up on that either.. 01:00:57 got to go. 01:01:03 thanks for your help 01:01:09 np, later 01:01:22 --- quit: swede (Quit: Page closed) 01:01:56 --- join: Mat2 (~5b42fda5@gateway/web/freenode/x-zhgautwllwywfrjk) joined #retro 01:02:08 hello 01:02:22 hi, mat 01:02:56 Hi ! 01:03:18 what's going on ? 01:04:04 dunno. came in too late to find out. 01:05:12 hmm, I have a time problem because for me it's at current 10 o clock 01:06:41 0400, alarm goes off at 0930 01:08:11 we need some universal time, I think ;) 01:09:10 no matter what the hours are called we're still sleeping here, and getting the 6th cup of coffee there. 01:10:25 6 cups of coffee ? That can't be good 01:11:11 6 by 1000, 8-12 for the whole day. I'ts easier to count the pots. 01:11:40 now if I can just figure out why I'm not sleeping 01:11:57 lol 01:12:24 drink milk, this compensates the coffeein a bit 01:12:47 temporarily very lactose intolerant 01:13:49 oh that's bad, I react allergical on coffee since some time (too much consumed in the past) 01:14:19 what's the effect of the allergy? what symptoms? may shed some light here. 01:15:08 one moment please I must translate 01:15:28 allergic to coffee: what happens? 01:15:34 what language? 01:16:27 german to english (I don't know much health related vcabulary) 01:17:36 drei Jahren Deutsch im Gymnasium. Alles vergassen. 01:17:56 (and I doubt that's correct or even understandable) 01:17:59 Cycle collapse and redded Skin 01:18:12 yes, it's readable 01:19:36 two languages: bilingual three languages: trilingual one language: american 01:20:15 and I'm typical 01:21:24 what vm do you usually use for retro? 01:22:03 my console version 01:22:19 but i'm currently work on a new vm 01:22:50 is your console version basically ngaro, or something else? 01:23:03 http://rapiddatabase.assembla.com/wiki/show/avm 01:23:23 I'm slowly porting retro to it 01:23:58 I like word-size agnostic. 01:24:44 it makes live easier. One can compile the vm for 16, 32 or 64 bit word size without changing the sources 01:25:04 what about 18-bit or so? 01:25:12 the only problem left is the word-size wrapoff 01:25:36 that woulb be very inefficient for modern cpu's because of alignment problems 01:25:56 would 01:26:40 looking for a way to port retro to g18's 01:27:50 the word size isn't the problem I think 01:29:11 *Mat2 wonders why a word size of 18 bit was choosen (I suspect because of the opcode format ?!??)* 01:30:27 are you meaning this cpu ? 01:30:39 http://www.colorforth.com/inst.htm 01:30:46 right. 01:31:28 right, but an array of 8 or more of those. 01:32:11 and you will use retro for every core ? 01:32:41 I'm still trying to decide between retro, colorforth, and roll-my-own. 01:33:24 probably best documentation wins (which leaves out colorforth) 01:34:18 and this is how I choose to learn forth. 01:35:07 really, learn to program. Only x86 assembler, and that was years ago. 01:36:26 hmm, i'm just realize, the immediate parameter for call opcodes (g18) depends on the actual executed slot 01:36:36 that makes subroutine threading a bit tricky 01:36:42 make that 80x86; I've never done protected mode. 01:37:32 I have coded a tiny exokernal for i386 some years ago 01:38:12 protected mode is braindead but comfortable once a flat adress space is choosen 01:38:18 there's a different threading mechanism in the newer versions, but it still uses the same opcodes. 01:39:02 what form of threading ? 01:39:25 I don't know enough to answer that. 01:39:33 *Mat2 thinks token threading would be a good chaice or plain native code compilation* 01:39:36 choice 01:43:13 a cpu I will port retro one day is this: 01:43:16 http://www.parallax.com/Default.aspx?tabid=407 01:48:06 I'd heard of it, but didn't realize these were the basic stamp people. 01:50:23 oh, don't know that 01:51:02 but I find this a very small multicore system which is cheap 01:52:27 looked at hydra? 01:53:29 ok, found it under there products 01:57:42 do you know of an emulator for propeller? 01:57:47 there exist a forth (FP Forth) for it 02:00:06 I'd really like to keep on, but must sleep now. Thanks for the education. 02:01:03 ciao 02:01:17 good morning, good night 02:01:22 --- quit: sixforty (Quit: Leaving.) 02:01:28 --- quit: Mat2 (Quit: Page closed) 08:54:36 another quiet day... 11:19:14 testing a new ssh client... 11:20:08 --- quit: crcx (Quit: leaving) 11:39:36 --- join: crcz (~crc@bespin.org) joined #retro 11:40:05 back 11:40:37 this is a nicer ssh client. supports direct input :) 11:52:12 i'm back to ircII, irsii didn't scale well 11:52:36 1 13:38:50 --- join: Mat2 (~4d177c91@gateway/web/freenode/x-fmavnffsgguqzqpw) joined #retro 13:39:02 hi everyone 13:56:58 --- join: User130827561-3 (~1808e8d4@gateway/web/freenode/x-zpnflcwxykigsbjn) joined #retro 13:58:40 hi 13:58:50 hi mat 13:59:05 what's goin on ? 13:59:26 shutting down things @ work 14:00:35 waiting here for the nex snowfall (~ 1meter last night) 14:00:39 next 14:01:34 Hi Mat2 Hi crcz Just Ray. Testing out the RetroForth site freenode entryway. Works nice. ;) 14:01:51 hi Ray 14:02:25 Infact crcz... site, SeaHorse, very nice looking. 14:03:17 hi ray 14:03:26 Going home? 14:03:32 use /nick raystm2 to get a better name 14:04:23 I know. Not staying. Just wanted to say hi... pop in. Lots of work to do. re-writing everything to work in newest cfSims. 14:05:06 a colorForth Sims clone ? 14:05:17 Newest movies will be of me porting from previous versions to this. Each program has (hopefully) interesting qualities that can be explored. 14:06:08 Mat2 the newest colorForths from GreenArrays is a controlled release of their simulator software. Not truely a cf release, so I call them the cfsims. 14:06:26 ah ok 14:06:30 No kernel. So it's more about the software. 14:06:55 hmm ,sounds it would be interesting to take a look at it 14:07:16 For enthusiests, it's very nice. 14:07:28 they, that is. there are 2. 14:07:41 one id for the 144 chip array, and the other is for the 4 14:07:52 id=is 14:08:21 GreenArrays site is best for dling. 14:08:49 lol I wonder if I should call the porting project GreenErase. :) 14:09:15 I had take a look at there side but it renders badly for some reason 14:09:26 lol 14:09:27 The image. 14:10:11 i'm just wondering how there want to gain reputation which such a web representation 14:10:16 The site main page is an image of a chip and a menu that looks like a line of cf code with each word a choice. The PNG prob'ly having problems. It's the whole page. 14:10:40 Good point. They might not even be aware of people having a render problem. 14:11:00 there need a web designer 14:11:14 If you can describe the problem to me, I know some people there... 14:12:00 :) That's Greg Bailey, I believe, doing that in addition to his work. 14:12:10 the image isn't display centered and fixed so it scrolls with the web page 14:12:59 sorry wrong word (not a native english speaker) 14:13:30 it doesn't rendered with the browser size correctly 14:13:54 I see. which browser please? 14:13:54 the same with there link list 14:13:59 firefox 14:14:22 3.5.4 14:14:24 firefox. thank you. I shall see if I can also replicate the problem. 14:17:03 I have made a screenshoot 14:17:28 and try to host it, one moment 14:17:50 ok, left work. now at bank 14:18:26 http://img535.imageshack.us/img535/8058/greenarrays.png 14:18:37 hehe. nice. on phone then or have you hi-jacked another public computer, temporarily and with-out malice, for the FBI that is paying attention to everything I say. lol :) 14:18:58 i'll be doing more documentaion work tonight. the new wiki will be nicely populated soon 14:19:16 Mat2 zoom down with cntrl+- 14:19:20 ray, i'm on the phone 14:19:48 jes I know but there browsers which doesn't have this feature 14:19:52 yes 14:20:05 ray, ssh client to a screen session on the tunes servers, where i have an ircII session running 14:20:16 sweet. very nice. 14:20:24 and the window size is 1024x 14:20:45 I wish I had the phone you have. You and wife did get the new BBs? 14:21:19 yes 14:21:38 likey 14:21:47 along with a clear wimax modem, so i'm very well connected now 14:21:53 in every way, this behaviour isn't very professional 14:22:01 (web design) 14:22:10 * User130827561-3 nodes 14:22:16 doh! nods 14:22:56 crcz, I'd like to get an attachable projector for screenAnySizeAnyWhere. 14:23:40 ray, i plan to get a couple of tablets (apple ipad) later this year. 14:23:51 They look good. 14:25:16 * User130827561-3 has spent way too much time in flightGear sim, can land numerous planes, and is learning navigation by electronic aid. 14:28:02 I got it looking pretty good now, for my machine. Could use an vidCard, currently using onBoardChip Intel graphics... it's okay... could be much better. Large screen for background, soon 2nd screen for cockpit controls, using nascar racing wheel, peddels as yoke elevator not rudder( need to config that) two wireless keyboards and a wireless mouse and sometimes trackball, and full 'radio' live comms. 14:28:29 @crc: the ipad is a too closed system to gain my interrest (the ARM cpu inside is interessting though) 14:29:23 lol when the end times come, your gonna need to code retroForth on what ever machine you get your hands on and running. hehe 14:29:35 mat, i just want a tablet-like device with vnc and ssh. all real work gets done off my servers/desktop anyway 14:29:43 good to know a lot of machines. 14:30:06 Oh right, I suppose you just need portable, reasonable interface. 14:30:16 @Ray, then i'm building my own one 14:30:22 and THATs getting better all the time. 14:31:05 Mat2 that's great. excellent project. 14:31:44 bbiab; groceries shopping 14:32:12 ciao, (what is groceries ?) 14:32:18 food. 14:32:23 ah ok 14:32:30 from Grocery Store. 14:33:14 Eastern US usage, primarilly, as I recall, being from the east and now having lived everywhere. 14:33:20 yup everywhere. lol 14:33:59 They also say "package" store, where rest of US says liquor store. 14:35:54 i've found american dialects very interesting. Some years ago I've heard a speech from someone which I doesn't understand at all (my colleques from england neither) 14:35:56 --- join: erider (~chatzilla@pool-173-69-160-231.bltmmd.fios.verizon.net) joined #retro 14:36:02 --- quit: erider (Changing host) 14:36:03 --- join: erider (~chatzilla@unaffiliated/erider) joined #retro 14:36:08 hi erider 14:36:10 hi 14:36:19 --- nick: User130827561-3 -> Raystm2 14:36:24 hi Mat2 whats new 14:36:27 hi e! 14:36:27 hi Raystm2 14:36:54 whats new Raystm2 14:37:23 ColorForth in new release of two of their chip sim systems. 14:37:26 working on AVM and spend some time on benchmarks (subroutine threading beats current gforth, i'm very happy with this) 14:37:58 subroutine threading on top of the vm 14:38:00 * Raystm2 porting personal cf code to it, will make movies of the process and add to movies already posted at http://youTube.com/Raystm2 <-- shameless plug. 14:38:48 and I have begun with porting retro 14:39:28 what about yourself E, what have you been up to? 14:40:45 call threaded code 14:41:47 Mat2, very nice background on your desktop. Do you know where that is? 14:42:21 Mat2: so with the call threaded code is the return address push on the stack like in normal systems 14:42:21 now, but it can be the swiss alps 14:42:45 as I guessed. Very nice! 14:43:42 @Ray: Do you know Rainbow forth ? I found it a very ease to use colorForth dialect 14:45:43 crc is it a side-effect of retro interpreter to push you to the next line after you finish type a word and hit the spacebar? 14:46:13 crc is just buying some food 14:46:15 I found rainbow forth but it is so ( was so when I tryed last, should try again) SLOW that i gave up in disgust and when back to my "faster then anything else on earth" colorForth. :) 14:46:55 that's the overhead from the c calling convention 14:47:13 I think that the newline after ok is "usually found" in forths. I could be wrong. 14:48:03 @erider: that's because retroforth executes overy word which is delimited by a space 14:48:18 and found of course 14:48:47 Oh, right, Mat2, that's right. Spacebar executes ACCEPT like word in Forths. 14:49:34 editor must have to change the action of spacebar to accomdate adding words with out executing them. 14:50:42 That's a bit different to forth's which traditionally parse a input line 14:50:58 Go from ACCEPT to POST or what ever word that means add to text block. 14:51:30 OH! rigth. those forths use ENTER not SPACEBAR as ACCEPT. sorry, I use a lot of forths that use spacebar. 14:52:03 gforth parses an entire line for example (as all FIG and F83 forths I know) 14:52:14 You are right! :) 14:52:20 I am wrong. :) 14:52:28 lol 14:53:11 erider: if you press space in retro the interpreter just emit space and wait for the next word you enter 14:54:46 Ray: theres no wrong way in that I think, some forths are just more complicated as needed (and I see no reason other than a traditional one to parse line by line and not word by word as forth have no defined syntax) 14:56:46 looking at youTube Insight, stats... over 1000 views of the 13 movies, but questions arise about where these movies are being seen. Most every western European country and Russia, report a viewer. But nearly every ExRussian EasternBlock country, what? no internet there? No money for online, maybe? 14:58:43 the number of people which understand english in most eastern european states isn't very high 14:59:27 (same in former eastern germany as russian was the only teached second-language) 14:59:45 some people very obviously liked the song i wrote for the TestMovie and that gets watched a lot. You can tell because they come back for it and sometimes search the others looking for more music. 14:59:55 ENGLISH!!! sure! 15:01:00 I have more music, too. Each project may "get a song" to go with. 15:01:36 Mat2: but it puts me on the next line 15:01:51 spacebar does erider? 15:02:00 yes 15:02:07 with the editor on? 15:02:32 oh that's right, there are words for inserting into crc's editor., 15:02:42 there are commands. 15:03:05 erider@ that's a newing from crc for better parsing files with cr lf as end-of-line marker 15:03:18 you can turn it off 15:03:28 how 15:03:47 first, are you working with the retro editor ? 15:03:59 Tell her you can code a virtual version of here with bigger boobs, that should turn her off. :) 15:04:09 her-e. 15:04:10 don't know 15:05:02 Oh, you might be in the command line mode. 15:05:03 I just typed ./retro and that is it 15:05:15 ok, I will take a quick look at the documentation 15:05:15 yes, you havn't started an editor yet. 15:05:36 unless you have one 'autostart' in a config file started with ./retro 15:06:28 whitespace off 15:06:36 erider, i often use another editor, nano say, or in windows PFE32.1.01. 15:07:30 thanks Mat2 15:07:39 Raystm2: I like the interaction 15:08:10 after whitespace off only space is accepted as delimiter 15:08:21 I am a newb :) 15:09:15 that's a bit problematic because files with cr (or cr lf) chars as end-of-line marker can't be parsed with retro 15:09:26 erider, I understand your point. just adding that nano and PFE are both able to drive the interp, no lossage as you might imagine. same outcome, except that in your case, you can use the language you are writting to extend the device you are writting it in. :) 15:09:30 try some demo code in a file: 15:09:41 whitespace off 15:09:46 ." hallo Welt" cr 15:09:48 bye 15:10:01 and type ./retro < demo.retro 15:10:23 that wouldn't be worked as you expected 15:10:45 but this file content would do: 15:11:00 whitespace off ." hallo Welt" cr bye 15:11:53 I like to type more than one word on a line 15:12:13 if you enter a colon defination this isn't the problem 15:12:51 try this 100 200 + . 15:13:29 erider, when you start retro, you start the interpreter. Unless you are making a new definition, you are either calling a word defined, using a number, or are in error. 15:15:01 no worries guys it not that big of a deal 15:15:22 to put more then one word on one line in the interpreter command line mode you have to be defining something. such as 15:15:49 : this ." would type this the next time you type this" ; 15:15:53 this 15:16:05 would type this the next time you type this 15:16:20 no worries 15:16:24 :) 15:16:28 it ok 15:16:30 you didn't understand that. :) 15:16:34 its* 15:16:34 that's okay. :) 15:16:41 crc can often explain better. 15:16:49 he's got a way about him. 15:16:54 people understand him. 15:18:17 @eride: have you started retro at current ? 15:19:46 I suppose I will try one last time... 15:19:51 erider... 15:20:05 when you started retro with ./retro yo8u didn't start an editor 15:20:11 you started an interpreter. 15:20:15 the interpreter 15:20:23 expects a word it already knows 15:20:46 if you type something and it knows it, it will execute it immediately. 15:20:56 if it's a number then the number goes on the stack. 15:21:12 if it's a word, then the word is looked up in the interpreter dictionary. 15:21:19 if it is found there, it is executed. 15:21:26 if it is not found there, it is an error. 15:21:44 SO, you have not done anything wrong, yet. 15:22:19 if you want to type a string of words with spaces then you enclose them with a special word and a symbol that word uses. such as 15:22:22 ." and " 15:22:39 ." will look for the quote and stop compiling text when it is found. 15:22:44 SO 15:23:01 to type a string and have it repeat to you on the command line type. 15:23:10 ." this" 15:23:13 and 15:23:14 this 15:23:17 will happen 15:23:20 type 15:23:24 ." this and that' 15:23:26 and 15:23:27 this and that 15:23:30 will happen. 15:23:55 to make a word that allways types "this and that' 15:24:08 : tat ." this and that" ; 15:24:10 tat 15:24:13 this and that 15:24:16 tat 15:24:20 this and that 15:25:41 ." is called dotQuote usually and is code for setting up typing code. 15:26:21 code or text that is. 15:26:33 : is called colon. 15:27:03 it too uses an ending word in this case the word is called semi-colon ; and ends a dictionary definition. 15:27:28 : colon is for creating new definitons in the dictionary. 15:27:52 the words you want to type to the screen have to be introduced into the dictionary in some way. 15:28:06 either they have to be part of a hard coded definition... 15:28:22 or they have to use some defined word to find the string in memory and repeat the string. 15:29:00 the string CAN come from the keyboard input buffer normally called PAD and that can be used to repeat stuff being typed to the screen. 15:29:08 that's a bit more complicated. 15:29:46 and a good excersize for beginners, so you will do this eventually. 15:37:11 hold on 15:39:20 notice the space between dotQuote and this. 15:39:24 that is necessary. 15:39:59 all executable words ( and the symbol-word ." or dotQuote is one ) need a space 15:40:23 after so that the dictionary knows you mean a word with only those characters. 15:41:13 the ." will need a space but it is looking for the quote to stop so there doesn't need to be a space between that and qoute ( that" ) unless you want a space there as well. 15:42:59 often, we go ahead and keep the space because most systems define a word called -trailing pronounced dashTrailing or minusTrailingSpace with removes the trailing space when you need to add a period, for instance. 15:43:32 ray: TIB, not PAD 15:43:33 often the character period for printing can include a -trailing. 15:43:45 TIB for Text Input BUFFER. 15:44:16 right. some systems define PAD as liken to a NOTEPAD or spare heap buffer. 15:44:28 most systems and all ANSI systmes that is. 15:44:29 :) 15:44:32 retro has no PAD 15:44:50 wb 15:44:54 : pad here 1024 + ; 15:44:57 Raystm2: thanks but I have be debugging forth in a debugger and I think I have a good understand how a forth system works for the most part 15:44:58 yeah, web :) 15:45:18 have been* 15:45:18 still out, but now on the coummute home 15:45:20 erider, meant no offence. :) 15:45:49 I will often write something for the benefit of lurkers with even less experience. 15:45:55 erider: just keep in mind that not all forths work alike 15:46:43 I know that is why I was asking a specify question about the side-effect of retro 15:46:46 tho it appear to be directed to you, the level I write is and will always be attempeted as if my child was suddenly interested in what I do. :) 15:47:07 what side effect? 15:47:14 Raystm2: no worries just don't want you to waste your time :) 15:47:43 ray's not wasting time, he's adding to the log :) 15:48:00 crcz the return after every word type in retro 15:48:35 Writing explanations of systems that nearly no-one understands will never be considered a waste. But I do thank you for considering me. I hate to waste time. But I do it all of the time. :) 15:48:35 retro is like colorforth as both parses tokens and execute them immediately (colorforth special 'color' bits of a character -> huffman encoding, retro, space delimited strings) 15:49:52 a traditional forth seperate input though carriage return and parse the string for numbers, words etc. after line input 15:49:56 I like to hit the return to go to the next line. That was my only issue but other than that all is well :) 15:51:45 Indeed. More traditional forths always interpret and therefore take and execute only one word at a time on the command line. Anything else is some form of editing support. 15:53:32 for is a good DSL 15:53:44 erider: I think that needs a modified parser because cr, lf are mapped to space at default 15:54:01 DSL? l is loop? 15:54:40 decrementing standard loop? 15:54:49 Digital Security Layer ? 15:55:06 Decrementing shifted loop... 15:56:15 Double Spaced Line, in ancient typerwriter days. 15:56:27 sorry guys for leaving you hanging 15:56:29 Domain-specific language 15:56:43 Distributed Subscriber Line, these days... 15:56:46 OH! :) 15:56:58 Forth! ok :) 15:57:08 right. and can be used for Creating DSL's as well. 15:57:21 example? 15:57:21 PDSL's 15:58:13 Well. for instance, I wrote LISP in colorForth, also, I wrote chess so that the executable code is all in the language of international Chess Algebra. 15:58:36 those are ProblemDomainSpecific Languages. 15:59:11 crcz what utilities have you done in forth? I think I am going to try my hand in some utility stuff to get a good feel for the language. something like wc 15:59:25 http://colorforthray.info/new_site/colisphorth.html 15:59:30 there's the LISPer 16:00:15 * erider prefers scheme 16:00:46 :) 16:00:46 erider, an aside... crc once taught me how to use a word he calls later defined as 16:00:55 : later pop pop swap push push : 16:01:00 oops 16:01:08 : later pop pop swap push push ; 16:01:11 Okay... 16:01:15 That word! 16:01:33 that word is used three times each command. 16:01:54 twice in one command called FROM and once in a command called TO. 16:02:30 with these two words and the words that move the peices around the board a command language that resembles Chess algebra develops... 16:02:37 *Mat2 remarks how well readable colorforth code is* 16:02:53 Raystm2: I have realized that you can use almost the same sequence of words in a definition. It seems to me it is what is pass to the word on the stack that makes things go 16:03:04 E2E4 from E- 2- to E- 4- ; 16:04:09 this sequence and be used for something else but it depends on what you pass to it on the stack :) pop pop swap push push ; 16:04:12 indeed, one uses the stack to pass parameters around much like a c language or other languages use some form of parenthetical passing mechanism. 16:04:33 look again.... 16:05:03 what is passed to the stack is the return addresses from the return stack and those are swapped on the stack and passed back. 16:05:17 but it looks like has jacked the balance of the return stack 16:05:36 no, 2 pops and two pushs 16:05:43 all balanced 16:05:44 those are used to create continuational type words that go back and forth from word to word BEFORE returning. 16:05:56 you pop with nothing on there 16:06:11 must assume 2 items on the return stack 16:06:31 yeah I guess 16:06:35 Must be something there. Infact, what is there is the address of the return of the word that is currently calling, AND the word that called it. 16:07:01 it could have been done with r@ 16:07:11 no. 16:07:24 r@ is a copy and not destructive. 16:07:33 yeah I know 16:07:34 would not pop, you see. 16:07:47 cant reach second address one below this. 16:07:54 have to pop. 16:07:57 it copies the top of the return stack 16:07:57 DOH 16:08:21 some forths r@ IS POP. 16:08:25 it pops but it doesn't remove the item on the stack 16:08:28 My bad. 16:08:32 r 16:08:43 I can remember what to use to get it NOS 16:08:49 can't 16:09:07 dup or another r@ would do. 16:09:25 Raystm2: so what does that word do anyway 16:09:32 the later 16:09:46 it swaps the return addresses of the currently calling word with the word that called it. 16:10:38 which is a return to the word that called it.... presumably to execute more common code to all such words, with the idea that you will return to the previous word either for ultimate return or execution of even more code then return. 16:10:47 what is the effect or use 16:10:51 home now 16:11:10 do you have any example where you would need to use that word 16:11:15 erider: for NOS, use "over" 16:11:29 later is used to defer the execution of part of a word until the caller exits 16:11:32 I triply used the word to create a problemDomain-Specific-Language that is the actual text one would use to document a game of chess, that being also the executable code. 16:11:34 in functional programming, this would be an example for continuation passing style 16:11:38 crc what utilities have you done in forth? I think I am going to try my hand in some utility stuff to get a good feel for the language. something like wc 16:12:02 crc I meant for RNOS 16:12:08 erider: no word for that 16:12:45 erider: I've done 'cat', 'echo', and 'wc' with toka 16:12:49 I thought I have seen something ...... 16:13:27 nevermind 16:13:33 and 'rm' (also toka) 16:13:37 maybe not 16:14:19 crc but you used some syscalls or clean just built-in words 16:14:44 in toka, 'cat' could be done with the builtin words 16:15:04 as could 'echo' 16:15:15 wc, I think I had to import some C functions 16:15:56 erider: : later pop pop swap push push ; : test1 ." test1" ; : test2 test1 later ." test2" ; test2 -> prints only test1 16:16:02 and 'rm' needed a function from libc 16:16:28 hmm I need to look in K&R but in forth there is putchar == emit and getchar == key 16:18:45 erider if you go to the bottom of this page and then navigate up to block 252 you can see the earliest version of this code, ( changed now but not currently easily avialable) 16:18:48 http://colorforthray.info/old_site/cbsep12.html 16:18:57 @erider: you can use it for embedding code which shall not be executed 16:19:50 for example 16:22:38 I don't know what we are talking about 16:23:47 --- quit: SimonRC (Ping timeout: 246 seconds) 16:24:15 you ask about examples for later 16:24:19 asked 16:25:04 ah 16:25:09 sorry 16:25:40 embedding code or data into colon definations is one usage 16:26:35 that cbsep12.html should provide good examples of later and also crc's TWIST as well as all kinds of code for accessing ports, keyboards, displays, multi-tasking, all kinds of stuff and all in glorious Forth as the operating system. That code all runs natively with-out or with a host os. 16:26:59 TWIST was one of the evil words 16:27:13 that is colorforth? 16:27:14 hehe :) 16:27:22 why ? 16:27:40 erider, that is a very very rare colorForth called Appelman smallFonts. 16:27:57 I wote a series of words that did strange things with the return stack as part of some experiments a few years back 16:28:03 NASM compiled, the differences also include smallFonts believe it or not. :) 16:28:09 they allowed for bizarre execution paths 16:28:31 --- join: SimonRC (~sc@fof.durge.org) joined #retro 16:28:37 twist takes the last thing and sticks it in the middle of your reversed list. :) 16:29:13 hmm, bizarre as postpone in ANS 16:29:30 123--231 I believe. 16:29:34 Raystm2: I had more bizarre ones than that. I experiemented with changing the order 5-8 levels deep; that was messy 16:29:34 neat 16:30:29 crc I have defined a word currently called 24531 :) 16:30:39 it takes 12345... you know... 16:31:06 hehe why not change the return stack in random order ? 16:31:08 Raystm2: this is no : in colorforth 16:31:22 red is : 16:31:22 erider: the color red replaces : in colorforth 16:31:38 erider: colorforth replaces some words with color changes 16:31:58 a green word is either previously a red word in the system, or came with the system in assembler kernel. 16:33:42 a yellow word is a call to a word that was either red or provided in assembler. 16:33:56 green and yellow numbers have meaning as well. 16:34:41 interesting 16:34:42 darker green and yellow, I say FOREST and GOLD are hexidecimal, otherwise they are normally decimal yellow and green. 16:35:27 the interpreter for a colorforth system is plain simple (only parse some color token) 16:35:29 numbers that can be stored in 27 bits and a 5 bit tag that includes the display information to display the binary number in hex or in dec in the editor, a programmers convenience only. 16:35:48 16 token currrently. 16:35:48 erider: regarding the return after each word is parsed, this is due to the design of the retro interpreter 16:36:17 erider: it reads one token at a time, not line-by-line 16:36:35 the return could be removed by altering 'ok' word 16:36:47 @Ray: the encoding don't allow asiatic character encodings, how are these handled in colorforth ? 16:36:53 here ] ; is ok 16:37:16 would disable the ok prompt, which is what injects the carriage return/linefeed after each token is processed 16:37:19 Mat2 the colorForth editor is not to be considered a text editor per -se. 16:37:56 it is more of a thing used to manipulate symbols for working at the systems level. 16:38:20 those symbols COULD be asiatic, just have to be hacked in with the provided ICONS editor. 16:38:49 about 49 or 50 symbols are used to provide the TOKENIZER. 16:39:38 The systems editor tokenizer CAN be used to provide a text editor interface and I've done this and will show it soon. 16:40:44 ok, thanks 16:40:57 the GLYPHER colorForth/RetroForth hybred project proved that ANY ICON can provide the systems tokens. 16:41:28 these can be bitmapps of picto-gram ideo-grams. Even pix of whole words or combinations of same. 16:41:50 infact, very portable to Asia. 16:42:05 the kind of forth they should be using. 16:42:09 *Mat2 thinks that can be a good alternative to these damn unicode standard* 16:42:29 that is an interesting thought, indeed. 16:43:54 don't forget reva Raystm2 :) 16:44:13 when you consider what kind of binary options a 32 or 64 bit word provides to a matrix of stored picto-Ideo-grams in memory, you can store a tremendous amount of meaning in a very one-system-defined-large-word space. 16:45:15 Gosh, erider, I sure wish I spent more time with that. It too is an interesting project. I've just never really 'gone there' yet. :( 16:46:16 Raystm2: its not bad it is helping me with assembly 16:48:34 You know what I'm using to help with my assembly for 3d simulators I want to write in colorForth? DOOM engines, also FLightGear flight simulator, which I am addicted to. 16:49:48 *Mat2 has once programmed image processing software in Reva for Mars-Express mission (before i withdraw this job because of burn out )* 16:49:58 I want to write my own greenArray chip ... in colorForth, .. have it drive a simulated servo on an airplane, you know, be the autopilot. My own description of my own chip running my own forth on my on sim driving a realistic flightsim airplane. :) 16:50:12 You did! Sweet! 16:50:19 No one has ever paid me for code. :) 16:50:27 that's prob'ly a GOOD THINGtm. :) 16:50:50 cool 16:50:56 at last I worked some 20 hours a day 16:51:09 crc you went to mars :) 16:52:02 Gosh crc, I wonder where you code is right right now. 16:52:17 places we may never know. 16:53:39 image processing -> post processing (the orbit data was harware JPEG encoded and that's bad for calculate DTM's 16:54:33 DTM -> Digital Terrain Model 16:54:39 hey shouldn't the final word definition but like reading English 16:54:52 sometimes 16:55:00 forth isn't english 16:56:56 lol 16:57:16 slogan 16:58:16 and English isn't Forth. Takes too many words to describe Forth in English. Forth is shorter and more consise. 16:59:53 if I say dup in Forth you know I mean push a duplicate of TOS to NOS 17:00:33 tick is a interesting thing 17:00:39 If I say it in English, You know know if I mean Forth dup, also in some regions means Butt as in Behind-you, also means someone that was fooled... 17:01:54 retroForth tick or some other tick? tic? as in ' or tick as in clock? 17:02:16 hmm, : thanks money dup for PickUpSomeThingToBuy price - next 0 =if ." my spouse pays" RunAway then ; 17:02:19 lol 17:02:30 hehe ;) 17:03:03 move RunAway past THEN and always RUNAWAY :0 17:03:41 the word's defination allows negative income *hehe* 17:04:08 forth tick ' 17:04:14 but does FOR accept inverted integers or just positive ones? 17:04:45 positive 17:04:59 positive I guess but money is duped and decrementet at price so TOS can be negative at some point 17:05:05 decremented 17:05:22 so you have to have money first, and this is always true. FOR crashes on minus money 'mounts 17:05:50 bbiab, dinner 17:05:54 ciao 17:06:11 ooh! thanks that's a good idea. Think I'll be diabetic and eat on shedual for once. 17:06:40 it's here after midnight (again) time for sleep, ciao 17:07:28 Good night Mat2 thanks for talking. :0 17:07:56 ditto 17:08:25 see you all 17:08:46 --- quit: Mat2 (Quit: Page closed) 17:12:25 so I can define comma like this : , here ! cell allot ; 17:28:31 --- join: docl (~luke@97-120-80-164.ptld.qwest.net) joined #retro 17:32:47 --- quit: virl (Remote host closed the connection) 17:52:17 erider: yes 17:52:41 crc what are you up to 17:57:32 erider: documentation 17:57:55 hi docl 17:58:18 sounds fun 17:58:25 not really 17:58:35 writing documentation is boring 18:01:05 howdy 18:02:36 are you writing the documentation in the wiki? 18:02:40 yes 18:03:47 * docl wrote some comments on create/does> in the forum 18:04:04 I saw that 18:04:14 I don't think I covered everything about it 18:04:28 I'm still a bit fuzzy on the returns and when everything happens 18:08:23 it's tricky :) 18:09:33 btw I added a markup for words. it uses a dark red and monospace font. 18:15:17 `it looks good 18:15:33 * crc may adopt something similar in the wiki 18:18:21 done 18:19:38 all of the docs are being moved into the wiki 18:20:15 nice! 18:40:50 the addition of colors makes this much more readable :) 18:44:37 :) 18:51:33 when .does is called, what inputs is it expecting? 18:54:48 address of xt of create'd word, and address of code following does> IIRC 18:55:06 ok 18:55:21 so "word" and "class" so to speak 18:55:41 DOES> will leave the body address of the word being defined on the stack 18:56:27 --- quit: Raystm2 (Ping timeout: 248 seconds) 18:56:59 docl: yes 18:59:35 when is .does encountered at runtime? 19:00:30 does> is a macro, so it lays down the call to .does, etc 19:01:00 .does is called by the created word 19:01:17 : foo create , does> @ ; 19:01:20 foo bar 19:01:21 bar 19:01:29 bar calls it? 19:01:30 bar will call .does before it gets to @ 19:01:59 .does then either continues letting it exit, or compiles the approriate code into another definition, if encountered during compilation 19:03:07 does> has a run-time behavior 19:03:20 : zee bar ; <-- would be a case where the compilation code is evaluated? 19:03:26 docl: yes 19:03:39 ok! 19:04:04 erider: in retro, does> is a compiler macro. it has no real runtime action in and of itself, but lays down code to call .does, push values to the stack, etc 19:04:41 so in that case we want bar's class compiled in as a jump right after the xt is compiled in as a literal... oooh 19:04:59 or a call I should say 19:07:21 yup 19:08:01 essentially the trick is that when you are running bar from the interpreter it can look the class up in the dictionary. when it is compiled in, the .does reference is needed so that the right class gets looked up. otherwise it would be just the xt of bar without a class. 19:08:55 this way the class is executed without needing to refer to the dictionary header 19:12:12 yup 19:13:53 so when I type zee from the interpreter, it places bar's xt on the stack, then runs its pseudo-class which uses that. at this point, does it call .does again? 19:14:19 no 19:14:47 ok 19:14:48 'see zee' 19:16:20 hmm, actually it does 19:16:33 I had changed that at one point... 19:16:36 is .does part of the definition of the pseudo-class? 19:16:53 yes 19:18:07 but at runtime, .does is simply a drop. it drops the pseudo-class xt, which is compiled in there as a literal. 19:18:44 yes 19:21:52 ok, I'm starting to follow the logic of this better. 19:22:37 --- join: sixforty (~sixforty@pdpc/supporter/active/sixforty) joined #retro 19:24:39 I wonder if it would be more efficient to skip over the literal and .does when the compiler is not running? 19:25:34 probably 19:33:05 --- quit: erider (Ping timeout: 245 seconds) 19:36:18 the rdrop controls where it exits to when .does is finished compiling, right? 19:39:35 this would be easier if see could show me the class as well as the word contents 19:40:20 'see bar' returns little useful information 19:42:44 : cee d' d->class @ :see ; 19:42:56 : cee ( "- ) d' d->class @ :see ; 19:48:14 : cee ( "- ) d' dup d->class @ ." Class:" :see ." Word:" d->xt @ :see ; 19:49:55 : cee ' 0; which @ dup d->class @ ...... ; 19:50:11 ' 0; drop which @ 19:50:27 to ensure that it can't be called on invalid word names 19:50:46 oh, makes sense 19:56:52 :see is nice to have 19:57:23 yup. I factored it out after seeing js4's work on extending 'see' with more details 19:57:43 is there a mechanism to simply find the dictionary header from an xt? 19:57:54 i.e. look up a class, for example 19:58:39 not yet 20:00:26 my 'after' code may be similar enough to hack. I will try that. 20:01:35 : xt->d ( a-d ) last repeat @ 2dup d->xt @ =if nip ;then 0; again ; 20:01:39 or similar 20:03:34 that works 20:06:38 better: 20:06:41 {{ 20:06:41 : skim ( a-a ) last repeat @ 2dup d->xt @ =if nip ;then 0; again ; 20:06:42 ---reveal--- 20:06:42 : xt->d ( a-d || a-f ) dup skim 2dup =if drop drop 0 ;then nip ; 20:06:43 }} 20:06:53 returns 0 if not found, or the header if found 20:08:06 is there an xt->name function in your decompiler? 20:08:08 replace the drop drop 0 with - 20:08:13 docl: yes 20:08:37 docl: this is more general purpose though, so I'm going to add it to the repo and change the decompiler to use it 20:08:43 :) 20:13:51 how about name->d? I suppose that would be similar to d' but without the parsing. 20:14:03 find 20:14:39 $-af 20:14:42 oh, ok 20:14:53 now I remember 20:14:55 gives the header address (or a junk address) and a true/false flag 20:15:06 ok, xt->d now in the repo 20:20:09 it hasn't updated yet. assembla repo, right? 20:20:13 yes 20:20:39 there it is 20:55:01 http://retroforth.org/pages/?DictionaryHeaders 21:00:27 nice 21:01:14 fixed a typo (missing {) 21:01:43 thanks 22:34:54 why does find not just return 0 if the value does not exist, otherwise a string pointer? 22:41:50 --- quit: sixforty (Ping timeout: 245 seconds) 23:11:32 --- join: sixforty (~sixforty@pdpc/supporter/active/sixforty) joined #retro 23:18:11 hi sixforty 23:20:54 hi, docl 23:34:20 --- quit: sixforty (Ping timeout: 245 seconds) 23:58:57 --- join: sixforty (~sixforty@pdpc/supporter/active/sixforty) joined #retro 23:59:59 --- log: ended retro/10.02.03