00:00:00 --- log: started retro/11.10.22 08:19:43 --- join: beretta_ (~beretta@c-24-3-44-28.hsd1.oh.comcast.net) joined #retro 08:22:29 anybody 'round? 08:32:42 --- nick: beretta_ -> beretta 08:56:00 --- join: Kumul (~Kumul@adsl-72-50-89-112.prtc.net) joined #retro 10:07:31 beretta: howdy 10:09:31 hello 10:10:00 I have a general question about retro. 10:16:28 what kind of question? 10:17:38 I haven't used retro, but I was reading up, and learned that the interpreter is word buffered (not line buffered) 10:18:04 yeah 10:18:07 and the retro will start interpreting a word as soon as a trail space is entered. 10:18:27 right 10:18:51 that's a neat idea, but how does it work out in practice? 10:19:19 does the same behavior happen in compile mode also? 10:19:31 yes, it happens in compile mode as well 10:19:47 the word is instantly compiled as soon as you hit space 10:20:03 and if you mis-type? 10:20:09 for some parsing words like ." it waits for the delimiter, so you can put spaces between them 10:20:25 in that case it instantly produces an error message as soon as you hit space 10:20:44 but that doesn't affect anything so you can just retype it 10:20:52 it that a general pain-in-the-rear? 10:22:42 eh, you'll have to decide that for yourself. it sort of is but you get used to it.. 10:23:19 that parsing system might help me eliminate a buffer copy in my home-rolled forth. I wan't to get an opinion on it. 10:25:21 I prolly should just install a version of retro myself and see how it works out! 10:25:32 It has pros and cons. Sometimes the immediate feedback as soon as you hit space is nice. Also it eliminates some complexity as you don't have to hit enter. 10:25:37 :) 10:26:01 I see that. enter is just treate like a space then, no? 10:26:55 how are the error messages printed? somewhere it doesn't get in the way of editing? 10:29:11 the error message is very short, just a question mark. 10:29:29 very forthian. 10:31:20 basically if you type a word wrong it prints the text you typed followed by a question mark and a newline 10:32:26 ah... so you're left to retype the word in whole... I see 10:32:27 here's a short sample: 10:32:28 : foo 1 2 3 b 10:32:31 b ? 10:32:31 ; foo .s 10:32:31 <3> 1 2 3 10:32:42 that's all with spaces, no use of the enter key. 10:33:44 it's a little surprising at first seeing the results (when there is a newline involved) without pressing an enter key being pressed 10:34:24 no OK prompt either. 10:38:23 I guess that's similar to what ColorForth does. 10:43:54 whups, forgot to mention I turned off the prompt for that. "[ ] is ok" 10:45:32 which can be reenabled by typing "devector ok" 10:47:50 "[ ]" creates an empty word (aka a quote) and places it on the stack. "is" parses ahead for a word and changes that word to instead do what the word on the stack does. 10:48:29 is affects all bindings to "ok" then? 10:48:43 or just future defs? 10:48:50 all bindings 10:49:01 gotcha... cool. 10:49:04 it actually puts a jump at the beginning of the ok definition :) 10:49:38 huh.... 10:49:48 all retro words have two empty cells (no op) at the beginning of the definition that can be written over to vector them to a different behavior 10:49:59 the quotes thing seems pretty neat, also. 10:50:05 "devector" just changes them back to zero 10:50:34 sounds like Retro is DTC then? 10:50:55 or a combo of DTC / ITC ? 10:51:45 * docl looks up the definition 10:52:01 I guess quotes and revectoring can take the place of "create" and "does>" then. 10:52:34 there's a vm involved, basically the addresses are within the vm. not sure if that is DTC or ITC 10:53:11 yeah I never got the hang of does> 10:53:25 well I once did but now I can't remember 10:53:49 It's a brain-twister making a DTC forth to do "does>". 10:53:50 "create" is used to make a new dictionary entry that points to here 10:56:35 yeah... but it also compile enough code into the created word to push its data address, and execute a later to be determined adress. "does>" fills the adress in, and compiles exit. 10:57:35 It's tough cause you're playing with run-time, compile-time in three diferent words at once. 10:58:08 in retro there is a system of "class" words like .data, which defines the behavior of the word at runtime vs compiletime 10:58:33 .data tells it to put it on the stack if runtime and compile as a literal if it is compiletime 10:59:52 then there's a field that holds either the data (number or pointer) or the address of the word 11:00:44 yeah... I thinks that's pretty true of all forths. (not the one I'm working on btw) 11:00:45 "create foo" fills that field with the heap variable's current value, which is what the "here" word returns 13:01:17 --- quit: docl (Remote host closed the connection) 13:05:49 --- join: docl (~luke@71-36-108-145.ptld.qwest.net) joined #retro 13:05:50 --- quit: docl (Changing host) 13:05:50 --- join: docl (~luke@unaffiliated/docl) joined #retro 13:24:22 --- join: roarde (~roarde@pdpc/supporter/active/roarde) joined #retro 13:29:22 "It's a brain-twister making a DTC forth to do "does>"." -- retro doesn't actually have does> as part of the core language 13:30:46 10.x had an optional definition for it at http://rx-core.org/dev/corpse/article/19 13:31:26 and a current replacement for this (using quotes/combinators) for retro11 is at http://rx-core.org/dev/corpse/article/138 13:41:23 --- quit: beretta (Ping timeout: 252 seconds) 14:34:38 --- quit: roarde (Quit: Leaving) 14:37:27 --- join: roarde (~roarde@pdpc/supporter/active/roarde) joined #retro 15:05:40 --- join: beretta (~beretta@c-24-3-44-28.hsd1.oh.comcast.net) joined #retro 15:32:14 hey crc, is there a built in way to do "[ blah ] is foo" when foo doesn't exist? 15:32:53 I wrote this earlier today 15:32:53 : as create here &.word reclass 0 , 0 , &;; , :is ; 15:34:03 now that I think about it, we did something like this a while back called "stub" 15:38:04 something like 15:38:12 : stub create here &.word reclass 0 , 0 , &;; , ; 16:30:45 maybe more like : stub create &.word reclass ; : defines stub here 0 , 0 , &;; , :is ; 16:31:31 [ 1 2 3 .s ] defines foo 16:47:08 oh, that could be a prefix... say / 16:55:17 : __/ header &.word reclass here 0 , 0 , &;; , :is ; parsing [ 1 2 .s ] /foo 17:02:39 or perhaps we could use ] for that purpose 17:02:58 [ 1 2 3 .s ] ]foo 17:03:43 nah that's ugly. unless of course we merge it with ]... 17:24:25 here we go! 17:24:25 : __] push &] do pop header &.word reclass here 0 , 0 , &;; , :is ; parsing 17:24:26 [ 1 2 3 .s ]foo 17:31:28 not currently 17:32:43 I wonder if it's worth having 17:36:03 : __: ( q"- ) header , ` ; &.word reclass ; parsing 17:36:15 [ 1 2 3 .s ] :foo 17:36:50 this would give a default definition, so devector would reset to the default definition if it's changed via is later 17:37:38 I've thought about adding this to 11.1, but am not sure it's needed 17:40:05 hmm, ` ;; would be better in __: 17:44:52 seems like that definition of __: does not leave space for vectoring 17:45:04 ahh, true 17:45:28 : __: ( q"- ) header 2 allot , ` ;; &.word reclass ; parsing 17:46:27 also it seems to crash. needs something like &;; , 17:46:40 true 17:46:48 * crc shouldn't code when tired :) 17:46:51 :) 17:47:12 &;; do 17:47:15 not , 17:48:22 better would be &; do if you want to use 'see' from autopsy (since ; lays down the double-ret sequence used to mark the end of a function while ;; only lays a single ret instruction) 17:48:34 ahh 18:04:00 https://gist.github.com/1306723 18:17:22 know if there's a fairly common fossil.1 page? 18:18:12 I'm not of any 18:23:03 nice! 18:24:48 allot calls "0 ," now, right? 18:27:52 funny how strange another forth seems... 18:28:10 docl: yes 18:34:22 beretta: yeah especially when it's non-ANS and has grown organically for several years 18:36:38 I wouldn't mind incorporating quotes into my forth.... but "[" and "]" already are used :) 18:37:36 I used [[ and ]] for quotes in earlier versions of retro 18:38:00 yeah I keep expecting [ and ] to turn compiler on and off 18:38:35 or off and on rather 18:39:05 how often do you actually need to use them for that? 18:39:33 not frequently 18:39:38 crc: good point... not much one the core words are defined. 18:40:08 I use them to make tables of xt's though. 18:45:58 I use [[ ]] in place of traditional [ ] twice in the base image (once each in the metacompiler, once each in implementing .s), and three times each in the libraries. 18:46:28 the new way is better, just takes some getting used to 19:00:14 I think I have the forthcommunity forum fixed finally. 19:03:32 return to index after logging in didn't work before - seems you got that fixed (-: 19:06:37 Like to see if this is news to anyone: ga144 with breadboard mount kit is available for $40 USD 19:07:23 (and they still haven't got it booting in array/colorForth :D ) 19:09:09 $40 isn't too bad 19:09:31 this the first you've heard of it, or seen it already, crc? 19:09:40 yes 19:09:50 haven't seen this before 19:10:17 ok, I'll put url and such at forthcommunity hardware 19:14:25 thanks 19:19:49 done. I'm getting slower all the time :( 19:19:58 it's 35, not 40, btw 19:20:44 all the better 19:23:49 of course, that just puts the chip on a human-handleable board 19:24:07 no power supply, decoupling, interface . . . 19:24:21 still beats ordering 10 at a time, tho 19:31:36 I wonder how hard it'd be to interface to my arm microcontroller board 19:35:26 what kind of serial interface on your microcontroller board? 19:38:47 I'll have to look at the docs to see 19:44:51 --- quit: beretta (Ping timeout: 252 seconds) 19:49:24 anything async shouldn't be too hard 21:14:51 what all would be needed to access the chip? can it be plugged into a USB slot fairly easily? 21:17:23 There was info on that on a USB to RS232 setup on one of the linked pages 21:17:27 I see schmartboard sells usb connectors... 21:17:33 can't recall exactly where 21:18:48 ah there's more info on the greenarrays link 21:18:57 http://www.greenarraychips.com/home/documents/budget.html 21:21:27 Later on, I wanta look at what would be required to build a complete ngaro in one of the F18A cores there, then check into doing the same with more cores and linking them. 21:22:44 or, what else is needed besides one core. something fs-ish, a terminal, so on. 21:25:00 will be slow. But I'm starting to think there's what I want now, what I want when I can get it, what I want as I can build it, and (far behind) what I want at the speed of Chuck. 21:27:15 Mr. Moore is certainly entitled to do what HE wants first, but if it was me, I'd be embarrassed to have, say, VC++ ported to GA 144 before colorForth is. 21:59:23 --- quit: roarde (Quit: Leaving) 22:37:26 --- quit: Kumul (Quit: gone) 23:59:59 --- log: ended retro/11.10.22