00:00:00 --- log: started retro/06.06.27 01:21:49 --- join: nighty (i=nighty@sushi.rural-networks.com) joined #retro 04:14:39 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #retro 05:49:55 hiho 05:50:09 is crc here? 05:59:19 --- join: jas2o (n=jas2o@wnpp-p-144-134-163-201.prem.tmns.net.au) joined #retro 06:05:58 --- part: jas2o left #retro 08:13:59 * crc is on lunch break for a few minutes 08:15:49 hi crc 08:16:18 crc, last points to the same value? 08:16:45 last @ = the start of the most recent dictionary entry 08:17:28 last @ @ = start of second most recent, and so forth. 08:18:17 yes 08:18:23 yes, I know. 08:18:24 or last @ :link @ 08:18:45 but shouldn't it change it's value when I define a new word? 08:18:52 use of the : form is recommended in most cases to ensure compatibility when I add or reorder fields 08:18:55 yes 08:19:13 it changes for me 08:19:30 last @ changes but not plain "last", as that is a constant 08:19:41 sry, I'm stupid. 08:19:48 all variables are constants that are pointers to memory cells 08:20:04 sry, my own stupidness. 08:20:05 don't worry, happens all the time with me 08:20:17 lots of things to keep track of 08:20:30 docl: to use t, f, and t/f at the interpreter, use :: ... ; form rather than [[ ... ]] 08:21:25 so [[ .. ]] is like :: .. ; within a define? 08:21:28 yes 08:21:31 cool! 08:21:36 I think I develope a little presentation program in retro, you know something like magicpoint 08:23:11 -1 :: ." hi" ; t <-- works :) 08:23:38 this does use a bit of code space, but it shouldn't hurt too much 08:24:30 you could always set up to -allot it for TOH functions 08:25:16 true enough 08:25:56 here -1 :: ." hi!" ; t here - allot 08:26:04 for what's 't'? something new eh? 08:26:11 t = true? 08:26:16 "evaluate if true" :) 08:26:39 or execute, I think is the term 08:26:48 there is also f for "execute if false" 08:27:06 and t/f for "execute first if true, or the second if false" 08:27:13 These can be xt's as well 08:27:21 nice 08:27:34 so, it executes the tos when the second item is true? 08:27:49 yeah 08:27:52 t and f do 08:27:59 t/f checks the third item 08:28:19 t or f 08:28:24 t/g 08:28:26 t/f 08:29:20 hmm, a new feature eh? 08:29:29 one of them :) 08:29:42 on which else are you working? 08:29:58 variable prefixes 08:30:10 debugger (retrospect) 08:30:17 variable prefixes? 08:30:24 @foo = foo @ 08:30:29 !foo = foo ! 08:30:41 couldn't [[ ]] be made usable within the interpreter? I wonder how that would compare to :: ; 08:30:43 a shorter notation for common operations on variables basically 08:31:10 docl: when I get [[ ]] to work in the interpreter, it could (and probably will) replace the :: ; form 08:31:29 hmm, you could generalise that to produce 'word prefixes' 08:31:45 virl: I added normal conditionals (= < > <>), fixed some bugs, and improved the ffi words a bit 08:31:57 virl: I could do that 08:32:11 this is gonna rock :) 08:32:28 perhaps I will add a hook to allow custom prefixes to words... 08:32:59 ctrl+d will now exit cleanly 08:33:14 and there has been a huge amount of cleanup/restructuring in the file tree 08:34:42 and now I have to leave for work again :( I'll be back around 5.30 or 6pm (it's about 11.30am now where I am)) 08:34:51 ok see ya 08:35:26 only 9:30 where I'm at 08:35:46 and it's getting 6 pm here 08:37:58 docl, do you know perhpas why: :: anonym word stuff; ;loc is blah : hoho blah stuff ; doesn't override the part of the heap where the anonym word was defined? 08:41:43 ok defining words changes the value of last @. (this is on the dictionary, not the heap.) loc: saves a place on the dictionary, ;loc reloads that place. now, an anonymous function doesn't even deal with the dictionary, so ;loc doesn't affect it. it instead leaves it's execution address (xt) on the stack. 08:43:20 '::' so anonymous functions write to the heap? 08:43:29 as long as you change the dictionary after ;loc is used, the word isn't erased from the dictionary. that's what 'is' does for us. 08:43:39 right 08:43:53 the heap is unaffected by the loc: ;loc stuff 08:44:33 all the functions within a loc: ;loc pair are still there after ;loc. they are just anonymous, and can't be accessed without an xt. 08:44:36 the memory layout of retro is then, one dictionary space and then the heap space, right? 08:44:55 right. also there's a stack, pad, tib, etc. 08:44:57 so after a specific count of words the dictionary overwrites the heap 08:45:25 hmm not sure about that. maybe at some high number 08:46:06 rx/config has the memory layout details, I believe 08:46:32 128 kb dict, 256 heap 08:46:42 right 08:48:05 a given dict entry is 17 bytes + the length of the name 08:49:01 so if they averaged 24 bytes, it would take 5,000 words or so to fill the dictionary 08:49:35 that's a lot of 08:50:44 so not a big concern. and you can easily extend things in the rx/config file. 08:52:51 I'm making much errors sometimes. sry, when I ask. 08:53:21 do you know what was toggle? or off on? 08:53:39 can't remember 08:54:05 902/rx/bootstrap:: toggle dup @ not swap ! ; 08:54:23 ah, found, crc is maintaining the rx handbook better than the online help 08:54:30 it switches a true value to false, or vice versa 08:55:18 you on linux? grep is very handy for finding lines of source. 08:55:21 yeah, I know, now. 08:55:34 I use grep daily 08:55:47 it's awesome, isn't it? :) 08:55:58 and I use it also for retros source. 08:56:06 yeahm its awesome 09:06:27 I mean I use it since three years or something. 09:08:46 and how long do you use it docl? 09:34:19 not sure. I know I used it to find the syscall information a couple years ago 09:37:21 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-113-072.pools.arcor-ip.net) joined #retro 09:54:24 --- quit: Snoopy42 (Read error: 110 (Connection timed out)) 09:54:42 --- nick: snoopy_1711 -> Snoopy42 11:11:23 docl, did you ever created your own version of ':' in retro code? so a compile word for something 'special' 11:16:01 maybe, can't remember. I know I could... 11:17:25 : : :: alias .s ; 11:21:27 hmm, I think that could be done with classes 11:21:41 what I'm searching for, well I try it. 11:21:58 huh? you can't put :: inside a compilng definition.. can you? 11:22:07 worked for me 11:22:21 for the purpose I used it for 11:22:32 : : here ] alias .s ; 11:22:52 same diff :) 11:30:59 here's the defactored version: 11:31:00 : : here ] 32 parse entry last @ 4 + ! ; 11:32:23 oops, forgot to defactor here :P 11:32:31 : : h0 @ ] 32 parse entry last @ 4 + ! ; 11:34:32 h0 @ ] ." hi " ; execute 11:35:57 hmm, I'd like to write a word which is a container for drawing words. hmm... 11:36:26 vocabularies might be the thing 11:37:41 hmm. [[ ... ]] are like :: ... ; within a function. so : test [[ ." hi" ]] ; puts an xt on the stack. 11:38:30 any word can do this, have a sub-word defined within it that can be executed later 11:38:56 perhaps this would work for the container. 11:47:30 you mean something like compiling a call to an xt? 11:49:34 maybe 15:10:15 --- join: swsch (n=stefan@pdpc/supporter/sustaining/swsch) joined #retro 15:10:15 --- mode: ChanServ set +o swsch 15:10:39 --- quit: swsch (Client Quit) 15:17:01 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-131-085.pools.arcor-ip.net) joined #retro 15:17:48 --- quit: Snoopy42 (Nick collision from services.) 15:18:35 --- nick: snoopy_1711 -> Snoopy42 15:20:21 home at last 15:46:16 welcome back! 15:46:54 I am about 80% done changing [[ ]] to work at the interpreter 15:47:06 cool 15:48:32 --- quit: Cheery (Read error: 104 (Connection reset by peer)) 16:03:04 hmm, I'd like my own version of : ; which compiles only a loop body. 16:03:50 : can be defined as: 16:04:04 : : wsparse entry ] ; 16:04:28 or as create: ] 16:04:35 true 16:04:51 or even 'create', if you override the default class using 'as' 16:05:01 yeah. 16:05:28 but how is it with ';' 16:05:45 the simplest definition would be: 16:05:49 macro 16:06:06 : ; -1 state ! $c3 1, ; 16:07:49 hmm, ok thats simpler than I thought, I thought that it perhaps do also other stuff than to inline a ret 16:11:08 macros, puh, loops aren't nice. 16:12:29 could it be possible that a beginning of a loop gets opened in ':' and then it gets closed in ';'? 16:12:51 macro means inlining or not? 16:15:08 macro means that the word is called at compile time 16:15:59 docl: I will not finish this tonight 16:16:14 darn 16:16:24 at least, I don't think I will. I just had an idea though. 16:18:30 * crc has to figure out the best way to handle detection of compilation and calling the appropiate code in a clean manner. 16:18:36 and I'm exhausted :( 16:19:53 hmm. can it be a parsed word like " "? 16:20:07 not if we want to handle multiple lines 16:20:18 and I can't detect a two-byte sequence with parse 16:20:31 yeah I notices that problem 16:26:27 done :) 16:26:53 yay! 16:27:38 I may leave :: ; in as that form is a little more efficient 16:28:04 anyway, I'm off to bed. enjoy the new functionality :) 16:28:11 goodnight! 16:29:03 what exactly should do here? the docs say that it points to tos 16:29:51 what points to tos? 16:30:44 [[ ... ]] is similar to :: ... ; 16:30:59 except it works within other functions 16:32:37 'here' 16:32:42 crc: this new feature doesn't support nesting 16:32:54 here points to top of heap, not stack 16:33:16 crc: [[ .s [[ .s [[ .s ]] ]] ]] doesn't work, e.g. 17:18:01 --- quit: nighty (Remote closed the connection) 17:25:29 --- join: jas2o (i=jas2o@144.138.54.71) joined #retro 17:35:20 --- part: jas2o left #retro 17:43:53 crc: on the wiki, it would be convenient if the recent changes page had a link to each page listed. 18:10:36 docl: I will work on this 18:17:38 fixed 18:17:53 it can now be nested to 4 levels, like loc: and ;loc 18:17:59 * crc forgot to check that, sorry 18:18:00 cool :) 18:24:18 nifty, I didn't realise words can be vectored within a loc: using is 18:24:24 yes 18:24:33 this is a good cleanup technique 18:24:47 * crc will be using it more heavily in 9.2 18:25:07 yeah, looks much cleaner. 18:25:44 also provides some checking for typos and such 18:33:49 and now ^ will no longer corrupt the dictionary if a vocabulary is not open 19:17:11 exit 19:17:18 wrong window 20:55:04 --- join: thin (i=thin@69.46.24.28) joined #retro 20:55:04 --- quit: thin_ (Read error: 104 (Connection reset by peer)) 22:00:33 --- join: Cheery (n=Henri@a81-197-32-96.elisa-laajakaista.fi) joined #retro 22:24:24 --- join: airbrush (i=airbrush@216-237-193-59-access.northstate.net) joined #retro 22:29:53 --- part: airbrush left #retro 23:59:59 --- log: ended retro/06.06.27