00:00:00 --- log: started retro/06.06.26 01:27:40 --- join: nighty_ (i=nighty@sushi.rural-networks.com) joined #retro 06:53:23 --- quit: virl (Read error: 110 (Connection timed out)) 07:41:32 --- join: Cheery (i=Henri@a81-197-32-96.elisa-laajakaista.fi) joined #retro 08:31:30 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #retro 09:15:35 http://paste.lisp.org/display/21769 09:18:25 I used recursion because repeat was having some issues. 09:36:23 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-106-004.pools.arcor-ip.net) joined #retro 09:53:30 --- quit: Snoopy42 (Read error: 110 (Connection timed out)) 09:53:38 --- nick: snoopy_1711 -> Snoopy42 10:18:23 --- join: Deadly-Angel (i=Sekushi@ACB07448.ipt.aol.com) joined #retro 10:18:42 --- part: Deadly-Angel left #retro 10:19:07 --- join: Deadly-Angel (i=Sekushi@ACB07448.ipt.aol.com) joined #retro 10:19:13 --- part: Deadly-Angel left #retro 10:20:03 --- join: Deadly-Angel (i=Sekushi@ACB07448.ipt.aol.com) joined #retro 10:20:16 --- part: Deadly-Angel left #retro 10:46:40 hmm 10:46:59 hi thin :) 10:47:32 I'm working on a more friendly version of qed 10:49:54 whats qed? 10:50:07 quick editor 14:38:14 good evening 14:38:21 hiya crc 14:39:29 docl: what problems were you having with repeat? 14:40:13 executing it within a case statement was causing a segfault, iirc 14:41:10 executing 'again', that is. also within if's. 14:41:22 hmm. any examples showing this? 14:41:37 I'll have to regenerate, just a minute 14:43:04 basic problem is when there's multiple places you want to execute again at 14:43:35 http://paste.lisp.org/display/21769#1 14:44:58 : foo ... repeat ... if .... again then .... ; 14:45:07 this will always crash, since the pairs aren't balanced 14:45:13 repeat/again is a pair 14:45:16 if/then is another 14:45:43 ok. it's because of the nature of the macros, I see. 14:45:55 yes 14:46:02 : foo ... repeat ... if .... [ swap ] again then .... ; 14:46:06 this may work ok 14:47:16 the *if forms and loops leave an address to resolve on the stack. The corresponding part removes this and patches something left at that address 14:48:44 again is a jump to the address on the top of the RS at compile time, right? 14:49:24 what's [ swap ] do? 14:49:37 [ turns off the compilert 14:49:46 swap exchanges the values on the stack 14:49:50 ] turns the compiler on 14:50:23 ahh, ok. so you can do interpreter-mode stuff during a compilation. 14:50:28 yes 14:50:41 I use this sometimes, with literal to save calculation time 14:50:53 : foo [ a calculation ] literal .... ; 14:50:59 would [ dup ] make multiple again's possible? 14:51:02 useful if the result won't change 14:51:11 docl: with swap as needed, yes 14:51:17 I think. 14:51:53 * crc is pretty sure that it would work 14:52:03 err, [ r> dup >r >r ] 14:52:15 it will 14:52:27 docl: you can't use >r or r> at the interpreter 14:52:33 oops 14:52:53 ok it's on top of the regular stack at compile time, anyway. 14:53:11 just on the rs during execution 14:53:32 yup 14:54:03 actually, repeat/again doesn't touch the return stack 14:54:59 got it working :) 14:55:07 * docl greps the code 14:55:57 : repeat here ; 14:55:57 : again compile x: ;; ; 14:56:11 yup 14:56:20 oh yeah, I see. 14:57:00 so it's a jump to the spot which is on the stack at the compile-time, i.e. nearer the beginning of the function. 14:57:34 yes 14:58:49 repeat is [ here ] and again is [ compile x: ;; ] 14:58:54 yes 14:59:26 so theoretically, every macro could be a set of more primitive commands within [ and ] 14:59:33 yes 14:59:42 that is basically right 15:00:59 ] r [ doesn't work though 15:01:09 ? 15:01:38 from the interpreter, is there a way to run macros ? 15:01:54 some can be run, some will segfault 15:01:59 ' name execute 15:02:05 ' r execute 15:02:41 doesn't return a value 15:02:44 specifically macros compile code intended to be used later. 15:04:22 forth : r@ r> r swap >r ; 15:04:32 r@ would work at the interpreter 15:05:46 :: r ; is r@ 15:06:16 :: r ; execute 15:06:53 you will want to have the r> and >r in there to get the value below the return address of the called word 15:07:09 but not ' r is r@ or ' r execute 15:07:17 ahh, ok. 15:10:02 --- quit: Cheery ("Leaving") 15:35:42 --- quit: nighty_ (Remote closed the connection) 16:04:58 hey crc 16:06:24 anyone here 16:06:32 * docl is 16:06:37 * Raystm2 is * 16:06:47 either of you use a laptop? 16:07:18 just nanstm, she's got a nice display, and i can reach all of her buttons. 16:07:38 She wasn't cheap. 16:08:27 my mom's laptop screen is rather dim and i'm wondering how to fix that 16:09:07 os? 16:09:44 windows 16:10:24 huh, googling about the inspiron 6000, it seems like its dim when its running on batteries 16:11:36 I believe that windows comes with default themes that help to make laptop displays brighter and more readable. 16:11:55 should be in the control pannel. 16:12:40 But there are obviously no external monitor buttons to adjust the brightness or contrast. 16:14:37 thin: look in the bios settings if it's a dell. My old Dell laptop had bios overrides on brightness for ac/battery 16:15:23 also in the control pannel there will be a display icon, then there will be tabs for adjusting all sorts of things. 16:18:24 * Raystm2 may not be driving thru Philly after all. 16:18:52 I may fly to Hartford and rent a car from there to Webster MA. 16:21:16 * Raystm2 wonders if [Shain] is in brackets, does this mean he is not interpreting the chat and just compiling the log? 16:21:25 : test [ here .s ] vector [ here .s ] vector [ swap 1+ .s ! ] ; 16:21:48 compiles, but segfaults when run 16:24:43 seems like it ought to work... the vector consists of a 1 byte jump plus one cell of memory for the pointer. does the jump byte need changed? 16:25:15 Try the test with out the vectors 16:26:26 works as long as there's nothing between the here's 16:40:10 : test [ here .s ] vector ." part 1 " [ here .s ] vector ." part 2" [ here swap 1+ .s ! ] ; 16:40:25 shows part 1 before the segfault 17:45:48 docl: I am not sure what you are trying to do 17:50:52 --- join: thin_ (i=thin@69.46.24.28) joined #retro 17:52:22 --- quit: thin (Read error: 104 (Connection reset by peer)) 18:03:52 I'm trying to jump over sections of a word without using if 18:07:06 changing the vector after the first "here" to "here" at the end of the word should make it skip over the intervening area. 18:07:26 no 18:07:29 jumps are relative 18:07:33 not absolute 18:08:23 so the vector's 4 bytes are not meant to be a full pointer? 18:10:36 no 18:10:48 x86 jumps are almost always relative 18:11:25 so you have to calculate the distance in bytes to the actual code you want to run. It's one annoying aspect of x86 18:11:45 ok, I got it working :) 18:11:48 : test [ here .s ] vector ." part 1 " [ here .s ] vector ." part 2" [ swap tuck - swap 1+ ! .s ] ; 18:13:06 a minor bugfix to 9.2-beta was just uploaded 18:16:30 docl: as you discover things, if it's not too much hassle, please post them to the wiki somewhere 18:16:41 ok 18:17:11 9.2's documentation is going to essentially be a snapshot of the wiki, so the more content the better :) 18:17:43 I see :) 18:25:44 I am still considering how to deal with [[ ]] at the interpreter level; this may need to wait until 9.3 if I can't work out the details soon 18:26:40 rfc: should I add = <> > < words? these could be useful with the [[ ]] [[ ]] t/f or [[ ]] t or [[ ]] f forms 18:28:20 yes, I think they would be handy. 18:32:01 added 18:32:08 to rx core 18:34:43 ok I documented my recent discovery in Jumps 18:34:51 cool 18:34:53 * crc looks 18:36:01 put a link to it under unsorted 18:36:24 ok 18:36:32 * crc will be sorting that section out this weekend 18:36:53 I have so much left to do.... :( 18:38:19 --- join: jas2o (i=jas2o@wnpp-p-144-134-167-94.prem.tmns.net.au) joined #retro 18:49:24 --- part: jas2o left #retro 18:53:46 That's smart crc. 19:02:01 * crc is going to bed; I shall return tomorrow 19:22:22 --- quit: virl ("Verlassend") 20:57:24 --- quit: swalters ("User disconnected") 21:07:28 --- join: swalters (n=swalters@dt080n87.tampabay.res.rr.com) joined #retro 22:03:55 --- join: Cheery (n=Henri@a81-197-32-96.elisa-laajakaista.fi) joined #retro 22:23:29 --- quit: swalters (Read error: 110 (Connection timed out)) 23:59:59 --- log: ended retro/06.06.26