00:00:00 --- log: started retro/06.07.29 00:21:13 --- join: Cheery (n=Cheery@a81-197-20-242.elisa-laajakaista.fi) joined #retro 00:23:28 How do I install that help file in linux? 00:24:04 cp /rf/help/ /???? 01:47:27 I think those shallow stacks would be really useful. 01:48:03 I mean, I've always smashed up if I've not done something data-driven rather from code-driven. 01:48:25 and if you have lots of stuff in your stack, you are usually doing code-driven code. 01:48:48 because in another case you let your data drive your machine. 01:50:55 and oh boy, the data can drive the machine better than you. 03:40:29 code-driven, datas-driven? what do you mean exactly? 03:42:18 I mean that instead I've encoded the functionality in code, I've distributed it into stuff which detects data. 04:00:30 --- quit: virl (Read error: 104 (Connection reset by peer)) 04:06:18 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #retro 04:40:27 --- join: neceve (n=claudiu@unaffiliated/neceve) joined #retro 06:05:51 virl 06:05:59 bother to see where am I now going to? 06:06:00 http://retroforth.net/paste/?id=86 06:06:27 I'm about to write the rest logic, then make the [eax] etc. smarter. 06:06:44 all code you see in that page is composition from code made yesterday and today. 06:07:20 I also put the 32 maximum width, it's enough, I think. 06:08:37 I'm going to do it smarter in a way that, for example, if you get eax -register, it automatically determines you are going to use 32 bit addressing. 06:08:58 then if you try write something like: eax bx it gets angry. 06:11:41 because you wanted something it cannot give. 06:32:16 lookin' good 06:55:54 some experimental code I've been working on: http://retroforth.net/paste/?id=87 06:59:25 10 following: .s ( executes .s immediately after the first word of each following line for 10 lines ) 06:59:45 maybe too complicated 08:08:53 good morning 08:10:06 Cheery: the easy way is to put a copy of help.data in a known location (e.g., your home directory) and load it when retro starts (retro -f ~/help.data) 08:24:54 =f is the same as 'off' 08:25:01 =t is the same as 'on' 08:30:20 crc: yeh, I think I should yet once rethink this damn thing. 08:30:52 btw. How could I get stuff from registers to TOS? 08:31:43 The current design almost was good already, it requires only tuning. 08:33:01 * crc will do some code for that in a few minutes 08:47:02 crc: were you going to include is: or some variant? 08:47:44 makes grepping the source easier, since you can use ": name" 08:47:48 http://retroforth.net/paste/?id=88 08:48:12 nice! 08:48:14 docl: I can 08:48:37 docl: I just pushed a patch to the repo shortening the lines in rx/bootstrap to 32 chars max 08:51:09 cool, looks nice 08:52:35 crc... is eax the TOS? 08:53:06 Cheery: yes 08:53:19 esi is the data stack pointer; [esi] is the NOS 08:53:20 docl: http://retroforth.net/paste/?id=89 08:54:15 crc, what was the prefix for octal and binary? 08:54:44 & for octal, % for binary 08:55:06 ok, I'll use them to prevent confusion with myself. 08:55:21 # for decimal, ' for ascii, and $ for hex 08:55:27 that covers the most common bases :) 09:14:21 I think I'm really missing a unificator. 09:15:49 ? 09:17:08 it is a cool component which allows you to use pattern matcher on lists and other such structures. 09:17:39 oh well, maybe I'm doing without. 09:17:57 I just must find out how could I possibly make them order neatly. 09:23:48 Or then I could use lookup tables. 09:24:16 they are quite simple to create, and may be even an good idea. 09:40:02 * crc pushed a few more patches, and 9.2.4 is done 10:03:16 Cheery, how far are you know with your assembler? 10:06:49 virl: I've encountered problems with R/M and SIB byte. 10:06:58 It's hard to make a working combination. 10:30:31 that's a challenge.. 11:23:13 virl: this is actually really annoying, a moment I feel I got it, then it suddenly disintegrates... again. 11:25:21 crc: let me correct, literal, is actually just writing a duplication command and five byte long instruction containing the address given to literal, . 11:25:30 crc: erp. 11:25:41 I meant, please correct If I am wrong. 11:27:11 essentially correct as to the end effect, though the technical details are different 11:27:18 a literal looks like: 11:27:26 call dolit 11:27:29 dd value 11:27:38 where dolit is a function something like: 11:28:02 : dolit r> dup cell+ >r @ ; 11:29:26 though dolit is actually defined in the assembly part of rx, and is not a named word 11:29:42 I'm just wondering how could I possibly do a haskell-style function I could continue. 11:30:20 * crc has no experience with haskell 11:30:27 just that mechanism how could I change the address to call. 11:30:40 I mean, I first have function, like: 11:31:10 : foobar baaz ebbxblaa 0 0; execute ; 11:31:31 I'd like later to make sth like this: 11:32:23 : baaz same-trash-etc... 0 0; execute; 11:32:23 and alter function foobar so that end result would be somewhat like this: 11:32:48 : foobar baaz ebbxblaa [ ' baaz literal, ] 0; execute ; 11:32:51 you get the idea? 11:33:10 (btw, that 0; is a brilliant control flow tool. ;)) 11:33:34 JasonWoof (#forth, developer of HerkForth introduced me to 0;) 11:34:26 are baaz and ebbxblaa are normal forth words, not macros? 11:34:30 how could I possibly 'tag' the address, store it somewhere and later change it? 11:34:33 yes, normal words. 11:34:51 but I wouldn't mind if it'd work with macros as well. 11:35:08 or wait. 11:35:11 would it be this simple? 11:35:15 macros are trickier since they often inline machine code... changes the counts 11:36:02 : foobar baaz ebbx [ 0 literal, here cell- variable: foobar-next ] 0; execute ; 11:36:18 lets try that. 11:36:29 isn't it looking cool? :P 11:36:34 at least. 11:36:47 won't quite work... I don't think 11:38:02 arg! it says illegal instruction. :s 11:38:08 ok. 11:38:11 next try. 11:38:19 : foobar baaz ebbx [ 0 literal, here cell- constant foobar-next ] 0; execute ; 11:39:54 hehe. but that works. :) 11:40:22 ok, lets see if I could make it cleaner. 11:40:29 lets try macros. 11:41:14 macro : reloc ( 'name' -- ) 0 literal, here cell- constant ; 11:41:29 : foobar baaz ebbx reloc foobar-next 0; execute ; 11:41:44 oh, not forgetting to change back... 11:42:03 or were there a function for changing the class of the last defined function? 11:42:08 reclass: 11:42:22 or reclass... 11:42:29 * crc doesn't use them that much 11:42:46 reclass 11:42:50 * crc tries: 11:42:51 loc: 11:42:51 : dolit r> dup cell+ >r @ ; 11:42:51 self: var c: dolit 11:42:51 create , ; 11:42:51 ~var 11:42:53 ;loc is var 11:44:02 http://retroforth.net/paste/?id=91 11:44:19 is a better approach I think 11:48:47 hmm? 11:48:53 let me show what I did. ;) 11:49:09 http://retroforth.net/paste/?id=92 11:49:56 ahh, clever 11:49:59 * crc likes it :) 11:50:00 this channel is so much fun to watch :) 11:50:09 that is a good word 11:51:11 it creates relocatable pointers. 11:51:44 sick, but I can suddenly invent much more use for that thing... 11:51:50 nice 11:52:12 it also works as a kind of special variables inside word. 11:52:23 you can set from outside. 11:52:57 sounds like an oop-ish construct 11:53:14 Cheery: you can use macro: rather than changing the active class to macro, then back to forth 11:53:41 If you think a function as object you can think it as an oop-ish construct. :) 11:53:52 how does guux-> get defined? 11:54:02 it is defined with constant. 11:54:10 ahh, I see 11:54:21 * docl forgot that was a parse-word 11:54:35 crc: do I must put it in front or back? 11:55:20 just take out the space in macro : 11:55:39 macro: ; 11:55:45 replacing : in this case 11:56:22 is it new word? I can't find it and ? says 9.1 11:56:33 get 9.2 11:56:40 9.2.4 is the current version 11:56:49 it's very new :) 11:57:02 what's new this time? 11:57:09 except the fabulous macro: 11:57:24 prefix: class: and similar 11:57:28 lots of cleanups, anonymous, nestable definitions, normal conditionals, prefixes 11:57:33 among other things 11:57:39 * crc lost count a while back 11:58:20 do you keep a changelog? 11:58:32 only of the checkins 11:58:42 http://retroforth.net/changes.php 11:59:30 * crc will have to go through it and make a list of new stuff 12:03:31 thank you, this will help me a lot. 12:03:35 and many others. 12:05:04 btw. if you added new words, I should patch my vim plugin. 12:05:13 *syntax script. 12:05:15 I did 12:05:27 * crc is trying to put together a more detailed changelog 12:05:37 kewl, I think I'll download it then. 12:08:07 uh, where do I find the upgrader script? 12:08:13 *upgraded. 12:08:19 http://retroforth.org/getretro 12:08:34 that is the download/installer script for BSD and Linux 12:09:03 found already that, but I mean the upgraded vim syntax script. 12:10:12 http://retroforth.org/contrib 12:22:08 http://retroforth.org/changes.txt 12:22:13 should cover most of the new stuff 12:22:18 ok. 12:22:41 btw, do you know how could I change \r\n to \n from text files? 12:22:43 in unix 12:24:15 sed :) 12:24:32 cat filename | sed 's/.$//' 12:24:39 should work 12:24:51 thanks, but where does it stuff the result? 12:25:01 stdout 12:25:06 redirect to a new file 12:25:30 * crc has experienced data loss redirecting to the same file that is being dumped by 'cat' 12:26:21 I'm happy I had quick backups of that file. :) 12:26:47 backups are good 12:27:26 ok, now it works, but macro: doesn't highlight. 12:27:33 oh well, nvm. 12:27:49 yeh, especially when it is so easy. 12:28:07 cp xx xx.bak 12:28:42 darcs revert 12:28:44 :) 12:28:55 :D 12:29:04 I think I should learn use darcs. 12:29:19 I don't use most of the features it provides 12:29:37 but it's trivial to create a repo, record, send, and apply patches 12:29:56 The project will be big what I'm starting, so it'd be nice to see what it looked like three years ago. 12:30:23 yeah 12:30:37 I love darcs 12:30:53 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-186-078.pools.arcor-ip.net) joined #retro 12:31:03 I've heard it is the most trivial to use from repo software available. 12:31:05 * crc should figure out how to use a cron job to automatically record changes in his project directories... 12:31:13 that's true in my experience 12:31:26 cd project 12:31:30 darcs initialize 12:31:33 darcs add -r * 12:31:44 darcs record --look-for-adds 12:32:06 darcs send 12:32:10 darcs apply 12:32:20 that's my working command set 12:33:07 thanks from quick lesson! :) 12:33:25 np 12:35:09 oh, forgot, does that include work now in 9.2? 12:35:33 yes 12:35:46 at least, it was when I last tried it... 12:35:57 ok. 12:36:10 it works 12:36:51 then I think I replace my run.sh with retroforth script which includes the stuff. 12:37:09 then add it, rarely needing to look in. ;) 12:38:39 beautiful job. 12:39:01 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 12:39:11 --- nick: snoopy_1711 -> Snoopy42 12:43:07 crc: forths normally doesn't have error handling I know, but I accidently may invent one when doing this assembler then. 12:43:27 beyond the syntax handling? 12:43:35 yep. 12:43:38 ok 12:43:48 I did some code for handling signals under linux 12:44:14 actually to make sure user doesn't give foobar stuff for assembler, if it is necessary to do such. 12:45:53 btw. good job! 12:46:11 if I didn't mention. 12:46:14 thanks 12:47:38 especially like the prefixes. 12:47:47 more logical than postfixes in memory accessing. 12:48:16 I think so too 12:58:00 is c: similar to my reloc function in way it peeks a word from forfard and makes a compile for it? 12:58:49 so. c: blah would compile a call to 'blah' 13:01:53 no 13:01:57 c: blah 13:02:00 is the same as: 13:02:05 ['] blah compile 13:02:32 x: blah 13:02:36 compiles a call to blah 13:04:09 ok, so I must use x: 13:08:59 except... c: was the correct. :P 13:20:20 * crc is going out for a bit; will return in an hour or two 13:21:00 --- join: Raystm2- (n=NanRay@adsl-69-149-36-229.dsl.rcsntx.swbell.net) joined #retro 13:23:58 * Cheery is going to sleep. soon... 13:26:18 --- quit: Raystm2 (Read error: 60 (Operation timed out)) 14:25:38 --- quit: neceve (Read error: 113 (No route to host)) 14:33:33 --- quit: Cheery (Read error: 110 (Connection timed out)) 14:36:40 back 14:52:03 --- join: Raystm2 (n=NanRay@adsl-69-149-36-229.dsl.rcsntx.swbell.net) joined #retro 14:52:26 --- quit: Raystm2- (Read error: 104 (Connection reset by peer)) 16:38:26 --- join: jas2o (n=jas2o@WNPP-p-203-54-32-197.prem.tmns.net.au) joined #retro 18:19:02 http://retroforth.net/paste/?id=93 18:19:11 now with interactive help system. 18:20:45 very nice :) 18:23:43 A little something everyday goes a long way. 18:24:44 I should remember to format the backslashes before accepting the paste. 18:24:59 * Raystm2 does this 18:28:57 http://retroforth.net/paste/?id=94 got rid of unnecessary backslashes and doubled the pertinant one in the modules\help.data 19:05:10 --- join: nighty_ (n=nighty@CPE00119576a9c5-CM0012c90d36fc.cpe.net.cable.rogers.com) joined #retro 22:21:00 --- quit: jas2o ("Chatzilla 0.9.74 [XULRunner 1.8.0.1/2006012608]") 23:30:08 --- join: Cheery (n=Cheery@a81-197-20-242.elisa-laajakaista.fi) joined #retro 23:59:59 --- log: ended retro/06.07.29