00:00:00 --- log: started forth/06.10.29 00:06:23 --- quit: nighty_ (Read error: 110 (Connection timed out)) 00:11:58 --- nick: arke_ -> arke 00:33:12 --- part: azekeprofit left #forth 00:37:44 --- join: Quartus (n=trailer@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #forth 00:37:45 --- mode: ChanServ set +o Quartus 00:47:46 --- part: fission left #forth 01:44:12 --- join: Cheery (n=Cheery@a81-197-19-23.elisa-laajakaista.fi) joined #forth 01:09:12 --- join: azekeprofit (i=azekePro@82.200.250.144) joined #forth 02:35:41 --- join: vatic (n=chatzill@pool-162-84-156-148.ny5030.east.verizon.net) joined #forth 03:24:37 --- join: crest_ (n=crest@p5489795E.dip.t-dialin.net) joined #forth 03:24:39 --- quit: Crest (Connection timed out) 03:26:10 --- part: azekeprofit left #forth 03:27:20 --- join: azekeprofit (n=azekePro@82.200.250.144) joined #forth 04:19:33 --- part: EdLin left #forth 04:42:51 --- quit: virl (Remote closed the connection) 04:49:04 --- join: erider (n=erider@unaffiliated/erider) joined #forth 04:49:51 I think you're overlooking a couple factors in your 'where next' discussion. Consider the following: People write new (or re-implement existing) languages because the current platform doesn't meet their needs. It's also done because writing a Forth interpreter is easier than writing a C, Perl, Fortran, etc, compiler. It can be written for a much wider variety of platforms than other languages. Forth will run on a 8K PIC, but you'r 04:49:51 e not going to get Perl to run on that, EVER. 04:50:14 gm all 04:50:19 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 04:51:11 Books discuss the compiler, because part of what makes Forth interesting and unique is how it does work. Also, Forth is more sensitive to understanding the internals than C or Perl. Consider your simple example of using 'then' with 'while'. You can't do that in any other common language. 04:52:25 For some people, implementing an assembler, a linker, or a compiler is more interesting than the actual language itself. 04:55:18 (these are just some random thoughts that may be in no particular order). 04:56:41 You can also make a similar argument writing your own OS. It's been done. Nearly every processor in the world has some minimum multi-tasking OS available. Some are pre-emptive, some are round-robin. Why should any write another? Learn the OS that exists. 04:57:19 Well, maybe cost is a factor. Or documentation. Or maybe it's the satisfaction of having designed, implemented and debugged it yourself. 04:58:01 Same for writing a language. And that goes back to Forth being particularly accessible for implementations, can be achieved in a reasonable time, and produce a useful (if even only for yourself) too. 04:59:34 jcw: Do you use forth for SysAdmin task on you computer? 05:03:53 No 05:04:40 --- nick: crest_ -> Crest 05:05:06 Remember, now is a good time to change your smoke detector batteries. 05:06:24 jcw: then is it suitable for daily uses 05:07:12 Why wouldn't it be? 05:07:43 I don't know you tell me 05:08:44 You don't use it for SysAdmin stuff right? So what do you use it for on a daily bases? 05:09:02 I don't use it on a daily basis. 05:09:49 roger 05:10:00 And I don't use any language for SysAdmin stuff. The systems I use all tend to have utilities already written. Some of them I know what language they written in, others I don't, and don't care. They just work. 05:10:29 roger 05:46:05 --- join: zpg (n=user@user-514d7663.l2.c2.dsl.pol.co.uk) joined #forth 05:46:43 * zpg lurches in 05:50:05 --- quit: Quartus_ (Read error: 104 (Connection reset by peer)) 05:59:44 --- join: nighty_ (n=nighty@sushi.rural-networks.com) joined #forth 06:00:45 hi nighty 06:25:56 --- join: EdLin (n=vim@as5300-3.216-194-7-157.nyc.ny.metconnect.net) joined #forth 06:59:52 --- part: Joely left #forth 07:06:44 --- quit: snowrichard ("Leaving") 07:08:45 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-136-022.pools.arcor-ip.net) joined #forth 07:10:16 --- join: Robert (n=robert@unaffiliated/robert) joined #forth 07:11:53 --- quit: vatic (Read error: 110 (Connection timed out)) 07:17:43 --- quit: erider (Read error: 110 (Connection timed out)) 07:18:21 --- join: erider (n=erider@unaffiliated/erider) joined #forth 07:21:13 hi erider 07:22:59 hi zpG 07:26:43 --- quit: Snoopy42 (Read error: 110 (Connection timed out)) 07:26:48 --- nick: snoopy_1711 -> Snoopy42 07:58:38 --- join: snowrichard (n=richard@12.18.108.162) joined #forth 08:00:17 --- quit: iano () 08:22:19 --- quit: Zarutian (Read error: 104 (Connection reset by peer)) 08:39:00 --- join: Zarutian (n=Zarutian@194-144-84-110.du.xdsl.is) joined #forth 08:57:14 --- quit: virl (Remote closed the connection) 09:21:24 --- quit: erider (Read error: 104 (Connection reset by peer)) 09:27:43 --- join: erider (n=erider@unaffiliated/erider) joined #forth 09:46:49 jcw, implementing Forth for a platform that doesn't have one wasn't what I was referring to. 10:04:47 hi Q 10:04:52 hey 10:08:51 jcw, and something like interchangeable control structures can be readily understood without rattling on about threading methods in chapter 1. 10:10:52 I'm not saying it can't be done that way, I'm saying that's probably why they did. 10:12:06 The ones I've seen don't talk about threading methods in the context of explaining anything other than threading -- control structures are not more easily explained in that context. 10:13:36 --- join: ygrek (i=user@gateway/tor/x-dcff440576c8ae15) joined #forth 10:14:36 Forth's control structures can be implemented over any implementation method; rattling on to a newcomer about address-lists and inner and outer interpreters is not helpful. 10:19:23 If you say so. It interested me. 10:20:06 It does not teach the language, and worse, it is commonly presented as hard fact, as the only method of implementation. 10:20:24 It's not useless information, but it's very badly placed in the early chapters of an introductory text. 10:28:48 --- join: Quartus_ (n=Quartus_@209.167.5.2) joined #forth 10:28:48 --- mode: ChanServ set +o Quartus_ 10:38:43 howdy 10:39:03 hi 10:40:50 hi erider 10:51:24 --- quit: erider (Read error: 104 (Connection reset by peer)) 11:01:23 --- join: erider (n=erider@unaffiliated/erider) joined #forth 11:13:09 zpg: if I was to make a swap in forth I can for instances ( a b xor b a xor a b xor ) right? 11:15:00 a temporary third variable helps also 11:15:27 or a instructionset containing a exchange instruction 11:15:38 ( m68k, ia32 ) 11:16:02 Some people would even tell you to avoid swap altogether. 11:17:05 in most cases swap can be avoided but why should you make it yourself harder if it's not nesseary 11:17:46 just to see if the logic is the same 11:18:29 this is a reason which makes it nessary to go this a bit harder way 11:18:35 in C you can do (a ^= b; b^= a; a^=b; ) to swap 11:19:08 That gets..hm..a bit hard to do without having a swap instruction already. ;) 11:20:09 #define SWAP(a,b) {a ^= b; b^= a; a^=b; } :) 11:20:32 I meant in Forth. 11:20:56 Robert: what stack ops would you say that are meanly used? 11:21:24 mainly* used the most 11:21:44 dup/drop/over/swap, I'd say. 11:21:45 rot, dup etc 11:22:00 hmm over 11:22:03 I rarely use stack words which handle more than the top two items. 11:22:03 tuck, -rot 11:22:16 1 2 over = 1 2 1 11:22:16 pick 11:22:17 Oh, >r and r> are quite useful. 11:22:32 and r@ 11:22:53 I haven't learnt those yet 11:23:16 >r = push r> = pop 11:23:40 You can implement swap using other stack instructions, if you have to... : swap over >r >r drop r> r> ; 11:23:43 what is r@? is that fetch 11:23:45 Might be some shorter way too. 11:24:08 Hm, I think pop / r> / r@ has a lot of names. 11:24:17 : SWAP 2>R R> R> ; 11:24:31 r@ reads the top entry from the return stack and pushs it on the parameter stack 11:24:31 I've never used or implemented 2>R 11:24:48 2>r ist quite usefull 11:25:11 bc it could be implemented very efficent on most cpus 11:25:29 compared to swap >r >r 11:25:56 hmm I haven't learnt those yet 11:31:39 You can check "Forth-Wizard" by Peter Sovetov to study stack manipulations. 11:31:55 http://forpost.sourceforge.net/forthwiz.html 11:33:13 You set stack in the beginning and in the end. "Forth-Wizard" tries to compute shortest stack manipulation scenario to reach it. 11:33:52 First field is the max length of stack operations. 11:34:42 Now, it gives for ( n1 n2 -- n2 n1 ) 11:34:45 over rot drop 11:36:15 I assume you told it not to use swap? 11:36:31 Of course. 11:36:37 You never know :) 11:37:32 By the way i implemented this on Forth, but made a mistake in algorithm. 11:38:30 Now, i am trying to do this in a second way. 11:46:30 --- log: started forth/06.10.29 11:46:30 --- join: clog_ (n=nef@bespin.org) joined #forth 11:46:30 --- topic: 'Welcome to #forth. We discuss the Forth programming language and a variety of technical subjects. Introduction: http://tinyurl.com/kvawv | Starting Forth: http://tinyurl.com/rm7pq | Thinking Forth: http://tinyurl.com/nsy4j | Gforth compiler: http://tinyurl.com/s8uho | ANS/ISO Forth Standard doc: http://tinyurl.com/nx7dx | http://quartus.net/search | Paste: http://forth.pastebin.ca' 11:46:30 --- topic: set by Quartus on [Tue Oct 24 17:49:49 2006] 11:46:30 --- names: list (clog_ erider @Quartus_ ygrek Zarutian snowrichard Robert Snoopy42 EdLin nighty_ zpg azekeprofit Crest Cheery @Quartus arke clog Raystm2 @JasonWoof cmeme I440r_ madwork neceve_ virsys timlarson TreyB jcw @crc larsb ohub nighty ccfg madgarden lukeparrish juri_ warpzero) 11:53:45 --- log: started forth/06.10.29 11:53:45 --- join: clog_ (n=nef@bespin.org) joined #forth 11:53:45 --- topic: 'Welcome to #forth. We discuss the Forth programming language and a variety of technical subjects. Introduction: http://tinyurl.com/kvawv | Starting Forth: http://tinyurl.com/rm7pq | Thinking Forth: http://tinyurl.com/nsy4j | Gforth compiler: http://tinyurl.com/s8uho | ANS/ISO Forth Standard doc: http://tinyurl.com/nx7dx | http://quartus.net/search | Paste: http://forth.pastebin.ca' 11:53:45 --- topic: set by Quartus on [Tue Oct 24 17:49:49 2006] 11:53:45 --- names: list (clog_ erider @Quartus_ ygrek Zarutian snowrichard Robert Snoopy42 EdLin nighty_ zpg azekeprofit Crest Cheery @Quartus arke clog Raystm2 @JasonWoof cmeme I440r_ madwork neceve_ virsys timlarson TreyB jcw @crc larsb ohub nighty ccfg madgarden warpzero juri_ lukeparrish) 11:53:56 re: 2>r -- i've found it useful for strings -> return stack 11:53:57 Hi 11:54:27 hey Robert 11:56:21 how do you read this? >R SWAP R> well I know that is take the last two values on the stack on swaps them but what the order of operation? 11:56:56 --- quit: clog (Read error: 110 (Connection timed out)) 11:56:57 --- nick: clog_ -> clog 11:56:58 What do you mean? 11:59:03 order of operation 11:59:33 left to right as always 11:59:46 ei + takes the first two items off the stack and adds them and puts the result back on the stack 12:00:44 : silly ' ' execute execute ; 12:01:33 2 3 4 silly + * . 12:02:42 so >r pushes first item on the return stack and them swaps the last two items on the stack and then r> puts the item the it stored back on the top of the stack? 12:03:25 oh i think you just found a bug in gforth 12:03:31 s/the/that 12:03:38 no works 12:03:42 i had a typo 12:04:25 wait 12:04:32 --- part: ygrek left #forth 12:04:49 I got it :) 12:05:30 seams to be realy a bug in gforth 12:05:53 1 2 3 silly + + 12:05:54 *the terminal*:16: Address alignment exception 12:05:54 1 2 3 silly + + 12:05:54 ^ 12:05:54 Backtrace: 12:05:54 $10265D8 execute 12:05:57 >r removes the first item then swap swaps the last to items on the stack the >r puts the item from the return stack back on tos 12:06:39 and the old yerk 3.6.9 just crashs 12:38:07 hi 12:38:20 theres a introduction to CMs 2005 fireside chat 12:38:22 on the website 12:38:28 but where can i get the whole thing? 12:39:59 that's not a bug in gforth. 12:42:06 arke, I think there was some Moore video on youtube. 12:42:39 --- quit: snowrichard ("Leaving") 12:43:41 Long time no see, arke 12:43:45 didnt get search results on the youtube 12:43:49 hi Robtrobz0r :) 12:47:14 I guess I'll just send an email to the fox 12:47:21 --- mode: ChanServ set +o arke 12:47:24 bleh 12:47:29 hate it when i forget to identify 12:49:08 most clients can do this job for you automaticaly 12:49:42 check google video too. 12:49:56 I'Ve got X-Chat - its doing it automagically when I first start the client, but not when I reconnect as arke_ and change my nick to arke later 12:50:03 Quartus, I did, thats where I saw the intro video 12:58:32 * arke just sent an email to the fox asking - I'll keep you informed 13:00:08 --- join: I440r (n=mark4@65.244.197.34) joined #forth 13:00:15 --- quit: EdLin (Read error: 104 (Connection reset by peer)) 13:01:14 --- join: forther (n=forther@c-67-180-209-27.hsd1.ca.comcast.net) joined #forth 13:01:51 --- part: jcw left #forth 13:02:56 --- quit: I440r (Client Quit) 13:04:55 --- join: I440r (n=mark4@65.244.197.34) joined #forth 13:06:39 --- join: jcwren (n=jcw@adsl-065-006-151-062.sip.asm.bellsouth.net) joined #forth 13:08:22 arke: google video. 13:08:40 lots of moore stuff, as well as some Fox. 13:08:42 zpg, yes, it has the previous ones, but not the complete chuck moore 2005 one :) 13:08:54 ah ok -- my apologies. 13:09:04 let me know if you find it, i'd be interested to see that. 13:09:15 time for the cafe though, i'll check back later. 13:09:45 --- quit: Quartus_ (Read error: 104 (Connection reset by peer)) 13:10:00 --- join: Quartus_ (n=Quartus_@209.167.5.2) joined #forth 13:10:01 --- mode: ChanServ set +o Quartus_ 13:11:39 --- mode: ChanServ set +o I440r 13:17:14 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 13:34:06 --- quit: Quartus_ (Read error: 104 (Connection reset by peer)) 13:34:40 --- join: Quartus_ (n=Quartus_@209.167.5.1) joined #forth 13:34:40 --- mode: ChanServ set +o Quartus_ 14:18:25 --- quit: erider (orwell.freenode.net irc.freenode.net) 14:18:25 --- quit: azekeprofit (orwell.freenode.net irc.freenode.net) 14:18:25 --- quit: arke (orwell.freenode.net irc.freenode.net) 14:18:26 --- quit: JasonWoof (orwell.freenode.net irc.freenode.net) 14:18:26 --- quit: TreyB (orwell.freenode.net irc.freenode.net) 14:18:29 --- quit: lukeparrish (orwell.freenode.net irc.freenode.net) 14:18:29 --- quit: juri_ (orwell.freenode.net irc.freenode.net) 14:18:50 --- join: arke (n=Chris@pD9E0646A.dip.t-dialin.net) joined #forth 14:18:50 --- join: erider (n=erider@unaffiliated/erider) joined #forth 14:18:50 --- join: JasonWoof (n=jason@unaffiliated/herkamire) joined #forth 14:18:50 --- join: TreyB (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 14:18:50 --- join: juri_ (i=[m2B9D8H@volumehost.com) joined #forth 14:18:50 --- join: lukeparrish (n=docl@74-36-211-202.dr01.hmdl.id.frontiernet.net) joined #forth 14:18:50 --- mode: irc.freenode.net set +oo arke JasonWoof 14:40:24 --- quit: Quartus_ (Read error: 104 (Connection reset by peer)) 14:47:32 Quartus, you around? 14:49:56 --- quit: Quartus (Read error: 104 (Connection reset by peer)) 14:54:03 --- join: Quartus (n=trailer@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #forth 14:54:04 --- mode: ChanServ set +o Quartus 15:08:50 --- quit: Crest (Read error: 110 (Connection timed out)) 15:09:12 --- quit: forther ("Download Gaim: http://gaim.sourceforge.net/") 16:19:18 --- join: snowrichard (n=richard@12.18.108.162) joined #forth 16:28:55 --- join: saon (i=1000@unaffiliated/saon) joined #forth 16:30:51 hi saon 16:30:58 hey snowrichard 16:36:09 --- join: vatic (n=chatzill@pool-162-84-156-148.ny5030.east.verizon.net) joined #forth 16:45:46 hi vatic 16:48:26 hey 16:49:02 need fresh coffee brb 16:49:43 hi snowrichard 16:50:03 hello 17:05:23 --- quit: TreyB (Read error: 113 (No route to host)) 17:14:13 --- quit: snowrichard ("Leaving") 17:27:24 --- join: TreyB (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 17:35:15 --- join: forther (n=forther@c-67-180-209-27.hsd1.ca.comcast.net) joined #forth 17:37:11 --- quit: forther ("Download Gaim: http://gaim.sourceforge.net/") 17:46:26 --- quit: erider ("I don't sleep because sleep is the cousin of death!") 18:43:30 --- quit: nighty_ (Remote closed the connection) 19:07:50 * jcwren wonders what planet erider is from 19:08:04 Did I miss something? 19:09:03 I get the impression he's never written a program in his life. 19:09:18 Ah. Well, he could still be from Earth in that case. Plenty of those about. 19:10:06 In QF, how do you manage correctly tracking if/else/thens? Do you actually push two values on the stack during compilation, where one is a sigil of some kind? 19:10:40 Having gotten rid of CFAs in mine, I find that 0 : foo if then then ; causes a segfault. I know exactly why, and have a plan to fix it. 19:11:04 It's entirely possible to do compiler security with just the one cell -- the dest or orig, as the case may be. 19:11:24 I show the method for this in the retro ans layer. 19:12:01 I don't have the link to that handy. Could you remind me, please? 19:12:20 http://quartus.net/retro/rfans.zip 19:15:30 --- quit: vatic (Read error: 110 (Connection timed out)) 19:17:14 It may not be crystalline without some rf-familiarity, but feel free to ask questions. 19:17:24 I get the idea of what cs-range is trying to do, but not the details. 19:17:32 cs-range? rather. 19:17:56 It confirms that an address is higher than the start of the word, and less than HERE+1. 19:18:08 --- join: vatic (n=chatzill@pool-162-84-156-148.ny5030.east.verizon.net) joined #forth 19:18:10 In other words, that a cell is an address within the part of the word already compiled. 19:18:20 OK. 19:19:33 The rest of it is built on that. I negate the colon-sys that : produces in order that it not be mistaken for a dest or orig. 19:21:19 Yea, the rest of it makes sense. 19:21:35 It's really simple, and works quite well. 19:23:35 It allows any valid construct, and throws a control-structure mismatch on invalid ones. 19:25:01 I'll probably do it a little differently, since my words are build differently. Instead of storing a 0 as the placeholder when compiling the word, I'll put an the complement of the address there. When the closing word compiles, assuming there's enough arguments on the stack, it'll range check the value, then verify the location it's patching. 19:25:34 If your words produce a dest/orig as the Standard definitions require, my method would work fine. 19:28:08 Possibly. I'll probably look at it tomorrow. However, I'm off to bed. Good night. 19:28:47 You could certainly add an extra double-check, as you describe, to ensure you're backpatching a valid address -- but if the target address is in range, and contains a zero, it's awfully likely to be legitimate. If it isn't, there's very likely an imbalance that will be detected at ; time. 19:28:54 Ok, see you later. 19:32:39 Is .s supposed to cr? 19:32:57 Raystm2, the behaviour of .S is implementation-defined. 19:33:06 Could do. 19:33:16 I prefer it to. 19:34:59 'The format of the display is implementation-dependent.' Could be left-right, right-left, top-bottom, cr, no cr, graphical, animated, what-have-you. :) 19:35:43 I see. ok thanks. 19:36:31 Gforth's doesnt' do a CR, which I find irritating, so I redefine it as : .s .s cr ; 19:40:57 How do I go back? 19:41:23 Turn so you're headed directly away from the direction you're going now. 19:42:12 Hard to type that way. Fortunately i'm a touch-tyapowest. 19:42:30 Gforth doesn't permanently modify its image, just exit and go back in. 19:42:56 How do I go back in Quartus Forth? 19:43:10 What do you mean, back? 19:43:25 Back to .s's original def? 19:43:41 Choose Cold from the menu. It'll restart Quartus Forth. 19:43:46 Resetting the dictionary. 19:45:40 I'm sorry, I shall form the entire question proper: How do I get .s without cr? 19:47:03 An alternate .S would do the trick. Here's one: : (.s) depth if >r recurse r> dup . then ; : .s ." <" depth (u.) ." > " (.s) ; 19:47:48 sorry, replace (u.) with . 19:47:58 : (.s) depth if >r recurse r> dup . then ; : .s ." <" depth . ." > " (.s) ; 19:52:26 Without a cr, if a number is displayed immediately following the .s, it's impossible to tell if that's what happened, or if the value is on the stack -- well, not impossible, but you'd have to notice the depth and count! Hence my preference. 19:54:04 I prefer your preference as well, in most cases. 19:55:06 Compounding that in some instances is Gforth's default behaviour of only displaying the top nine values. Not that I exceed that as a rule. :) 20:03:51 --- quit: vatic ("*poof*") 20:06:21 The new .s doesn't appear to work. The output has <> empty and the number items on the stack is on the stack. 20:06:56 Seems to work here; in fact I've just pasted it into Gforth and tried it. 20:07:10 Check the transcription. 20:08:47 I've just tried it in Quartus Forth too. 20:08:58 I expect you're missing a . after depth 20:09:38 After it, 3 5 .s -> <2 > 3 5 ok.. 20:10:28 Ya, I missed the dot behind the depth in the .s def. 20:10:39 but it still cr's. :( 20:11:09 No, it doesn't. The interpreter loop does a CR after 'ok', but if you include .S in your code, it will not CR. 20:13:08 As I just found out from trial and error. Now lets quash ok. :) 20:13:16 quash? 20:13:38 Squelch? 20:13:41 Why? 20:14:04 I don't want ok to cr. 20:14:16 It's hard-coded. Why do you want to change it? 20:14:58 Because I want the interpreter return to be on one line only. 20:15:11 I don't want it to move the display at all. 20:15:35 I shall replace the cursor to the beginning of the line at each 20:16:03 Are you using the Forth console as the user interface to your app, or are you trying to restructure the console so that it no longer scrolls? 20:16:25 Okay, I'll pick that. :) 20:16:51 I'm asking because I'm trying to understand what it is you want to achieve, so as best to advise you as to how to accomplish it in Quartus Forth. 20:17:34 I'm sorry, I thought you would get that I want to achieve both of those objectives. 20:18:01 I'd like to keep the prompt on top of the display with out it carriage returning into what i've drawn so far. 20:18:16 For interactive development. 20:18:33 In a stand-alone Quartus Forth app, there is no console and no dictionary. Keeping an eye on the far goal of producing a stand-alone app, I recommend you devise a different interface for your app than relying on the dictionary and console. 20:19:11 This is only during interactive development of the graphics. 20:19:50 There is a way of sub-defining a window and keeping your console activities sort of inside of it, but it can get in the way of drawing text. 20:20:32 You might want to define a short word, say 'x', that repositions the cursor, and specify that at the end of your input lines. 20:20:41 Aside: What is wrong with your ap starting Quartus forth and using the interpreter? 20:21:28 If you expect all of your users to also have Quartus Forth, I suppose you could. As delighted as I'd be to have you sell a copy of my product with each copy of your app, I doubt that's likely. :) 20:21:45 What users? 20:21:53 Me. 20:22:28 If you're satisfied with recompiling the app each time you wish to use it, by all means -- but in that case I'd recommend a short loop that positions the cursor and does an ACCEPT and EVALUATE. 20:23:05 That way you can easily control where the input line is, and where the output will start. 20:23:11 Besides, if I sold a copy of your Quartus Forth in an ap that I develope, I'd either ask to licence it from you, or find some way to include it in the price. 20:23:42 Raystm2, quite. But I was making a ridiculous example. The right thing to do would be to define an interface that didn't rely on the dictionary or console. 20:25:10 So that was the reason for my questions. If this is for a target app, the right thing to do is to define an application-specific interface. If it's for your own work, a loop with cursor positioning, ACCEPT and EVALUATE is the right thing to do. 20:27:38 Thanks, cool. This is getting fun. I've got several of the hacks you recomend installed. 20:27:55 I got the mail thingy to work. 20:27:59 Keen. 20:28:40 --- join: Teratogen (i=leontopo@slashsnot.org) joined #forth 20:54:19 hi all 20:58:55 hey 21:04:54 i just posed this question to Quartus: does anyone find that, due to lack of explicit connection between arguments and words that consume them, reading the body of a definition is sometimes confusing as we have to work through and associate what's being consumed by what? 21:09:06 Funny how it never presents as a problem when it's code you are writing, but ya, can be confusing. I suspect it becomes necessary to track these things on paper as you go over the code. 21:10:20 * zpg nods 21:10:43 Raystm2: any thoughts on palm+chess? tried out openchess? 21:10:47 A grep "^\ *:" source.fs is handy. 21:16:33 --- join: arke_ (n=Chris@pD9E06168.dip.t-dialin.net) joined #forth 21:22:07 --- join: slava (n=slava@CPE0080ad77a020-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 21:22:07 --- mode: ChanServ set +o slava 21:22:10 Doty is an idiot 21:22:31 This is not news to me. 21:26:34 I stopped responding to his blither some time ago. 21:33:50 --- quit: arke (Read error: 110 (Connection timed out)) 21:35:31 more python fetishising? 21:35:41 No, far more directly offensive trolling. 21:35:51 for real? 21:36:06 no, just extrapolating his programming experience to the Absolute Truth 21:36:17 'Reflection is useless. Show me it's not.' In response to the quite lucid examples, 'Your examples are foolish and trivial. Keep trying.' Etc. 21:36:32 which thread? 21:36:43 'Reflection' 21:40:06 aha 21:40:32 It's typical Doty, ask for illustration and dismiss it with a hand-wave as 'clever' or 'worshipping the gods of unnecessary complexity/bloat/Doty-flavour-of-the-week'. 21:42:02 Slava's reply just now is directly on the money. "You're sucking people into an unwinnable argument by moving the 21:42:03 goalposts every time. 21:42:04 " 21:42:30 Unfortunately, slava, you're trying to talk reason to a slab of stone.] 21:46:17 heh 21:46:36 I predict another inane and offensive reply. 21:48:54 night all. 21:48:59 --- quit: zpg ("ERC Version 5.1.3 (IRC client for Emacs)") 22:06:31 --- quit: virsys (Read error: 104 (Connection reset by peer)) 22:10:20 --- join: Raystm2- (n=NanRay@adsl-68-95-249-89.dsl.rcsntx.swbell.net) joined #forth 22:12:29 --- join: forther (n=forther@c-67-180-209-27.hsd1.ca.comcast.net) joined #forth 22:12:39 --- part: forther left #forth 22:14:58 --- join: virsys (n=virsys@or-71-53-68-118.dhcp.embarqhsd.net) joined #forth 22:24:34 --- quit: Raystm2 (Read error: 110 (Connection timed out)) 22:35:33 --- nick: arke_ -> arke 22:46:08 --- join: Cheery (n=Cheery@a81-197-19-23.elisa-laajakaista.fi) joined #forth 23:47:26 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 23:59:59 --- log: ended forth/06.10.29