00:00:00 --- log: started forth/05.09.20 00:51:29 --- join: Ray_work2 (n=vircuser@adsl-65-68-201-174.dsl.rcsntx.swbell.net) joined #forth 00:51:29 --- quit: Ray_work (Read error: 104 (Connection reset by peer)) 00:53:35 --- join: virsys (n=virsys@or-65-40-177-90.dyn.sprint-hsd.net) joined #forth 01:22:54 --- join: pl3x (n=dadler@p5484C8BA.dip.t-dialin.net) joined #forth 01:26:53 --- join: snowrichard (n=chatzill@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 01:26:58 hello 01:31:49 --- quit: snowrichard ("ChatZilla 0.9.61 [Mozilla rv:1.7.2/20040804]") 01:43:00 --- quit: Ray_work2 (Read error: 110 (Connection timed out)) 01:44:03 --- join: Ray_work (n=vircuser@adsl-65-68-201-174.dsl.rcsntx.swbell.net) joined #forth 01:47:46 --- join: Raystm2_ (n=Raystm2@ppp-70-248-35-119.dsl.rcsntx.swbell.net) joined #forth 01:47:47 --- quit: Raystm2 (Read error: 104 (Connection reset by peer)) 02:17:37 --- quit: pl3x ("Leaving") 02:34:52 --- join: Ray_work2 (n=vircuser@adsl-65-68-201-174.dsl.rcsntx.swbell.net) joined #forth 02:42:54 --- quit: Raystm2_ (Read error: 110 (Connection timed out)) 02:48:48 --- quit: Ray_work (Read error: 110 (Connection timed out)) 02:57:55 --- join: Raystm2 (n=Raystm2@ppp-70-248-35-119.dsl.rcsntx.swbell.net) joined #forth 03:07:08 --- join: aum (n=aum@60-234-156-82.bitstream.orcon.net.nz) joined #forth 03:16:28 --- join: Ray_work (n=vircuser@adsl-65-68-201-174.dsl.rcsntx.swbell.net) joined #forth 03:17:18 --- quit: Ray_work2 (Read error: 104 (Connection reset by peer)) 03:27:17 --- join: Amanita_Virosa (n=jenni@CPE0000e812679b-CM000a7362da55.cpe.net.cable.rogers.com) joined #forth 04:31:01 --- quit: aum (Read error: 110 (Connection timed out)) 04:55:48 --- join: aardvarx (n=folajimi@shell4.sea5.speakeasy.net) joined #forth 04:57:10 Morning, all. 05:02:30 Morning. 05:05:27 --- join: aum (n=aum@60-234-156-82.bitstream.orcon.net.nz) joined #forth 05:07:28 --- quit: MBitter (Read error: 110 (Connection timed out)) 05:08:18 --- join: MBitter (n=malbi@p508E2E93.dip0.t-ipconnect.de) joined #forth 05:22:43 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 05:44:18 --- quit: Amanita_Virosa ("Slips out quietly") 05:48:41 --- quit: aum () 06:01:14 --- join: PoppaVic (n=pete@0-2pool236-233.nas22.chicago4.il.us.da.qwest.net) joined #forth 06:02:15 Howdy 06:09:59 --- join: pl3x (n=dadler@p5484C8BA.dip.t-dialin.net) joined #forth 06:11:11 Top o' the morn to ya! 06:11:30 How goes it? 06:11:59 It is just about to stretch out and find out. 06:12:09 How about for you? 06:13:05 --- nick: Raystm2 -> nanstm 06:13:11 Wakin' up, and tinkering some more. 06:13:18 ah there's my wife 06:13:30 @work? 06:13:54 no she just hi-jacked my home nick 06:14:05 from the home terminal 06:14:07 you know... 06:14:42 Your wife is also into IRC? 06:15:26 * aardvarx just noticed how retarded that sounds. 06:15:50 just likes it cuz she knows she has my attention here :) 06:16:15 There are a few guys she talks to regular . 06:16:43 Most of them are #c4th-ot 'ers 06:17:58 hrm? 06:20:41 What's a forth-based cpu anyway? 06:21:58 exactly what it suggests 06:22:31 Like an Intel-based CPU? 06:22:43 "stack-based CPU" might be more accurate 06:22:56 stack caching in hardware, instructions get data from the stack rather than from registers, etc. 06:23:59 tathi, thanks. 06:26:43 Doesn't Patriot make such a beast? At least that's the impression I get in another #chat where they are talking about buying and testing some from Patriot... 06:26:56 yes. 06:27:30 IIRC they're a static design, so they run 0-600 MHz, and cost $17/each in small quantities. 06:27:53 Stop it!!! 06:28:09 Is this thing hardware or software? 06:28:21 hi tathi, aardvarx - sorry, was getting an order updated. 06:28:23 hardware. CPU... 06:28:27 You're driving me nuts! 06:28:41 nut-tier, I suspect ;-) 06:28:43 I thought stack is some abstraction in software! 06:28:55 o_O 06:29:10 heh - I knew the schools couldn't teach anymore ;-) 06:30:11 Patriot Scientific's IGNITE chip caches a bunch of the top stack elements in hardware registers, and has support for spilling out to main memory when necessary. 07:09:12 * PoppaVic scooby-doobies... 07:41:11 --- quit: pl3x (Read error: 110 (Connection timed out)) 08:05:55 --- join: derv0 (n=derv0@proxy1.nscl.msu.edu) joined #forth 08:22:28 * PoppaVic cruises - watching the activity.. 08:25:56 *WHAT* activity? 08:26:06 exactly 08:26:58 Well, yesterday, while you were out, someone had some suggestions for you. 08:27:17 oh? 08:27:28 I think it would be a good idea for you to check the IRC logs for details. 08:27:30 did they hit the wiki or you recall the what/where/how? 08:27:44 Unfortunately, no. 08:27:56 ahh, must not be too important then 08:27:59 'Twas well above my comprehension. 08:28:07 I think you should check. 08:30:08 no idea what or how, let alone the specific when/where 08:30:48 Right after you "pulled the pin..." 08:31:00 The thing is: we have a wiki, I created an account, it has my wmail as well: I dunno that I should race after comments. 08:31:10 wmail/email 08:32:37 --- join: virl (n=hmpf@chello062178085149.1.12.vie.surfer.at) joined #forth 08:47:20 --- quit: aardvarx ("leaving") 08:48:07 --- join: aardvarx (n=folajimi@shell4.sea5.speakeasy.net) joined #forth 08:51:48 The wiki has been up consistently since the problem. 08:52:27 No updates that I see. 08:52:37 Quartus: yeah, I know. 08:53:10 I've held off on my lonesome only that I'm trying to envision where to plug assorted bedates in and how 08:56:29 Quartus: I've not decided on specifics, but it looks like either the ideas are too radical for most, or there is just no interest. The latter weighs heavily because of channel activity. 08:57:36 I do believe jason had a epiphany yesterday, when he saw where I was working/going. Not sure, but he sure got shocked. 08:57:58 I'm not so sure about that. 08:58:05 I could be wrong, of course. 08:58:17 He had some suggestions; 08:58:33 might be hard to swallow, though. 08:58:35 It's not a sure thing, of course - but he suddenly "ohhhed" something fierce, andthe tone of Q&A changed markedly 08:59:08 aardvarx: I think the whole effort is a real change for folks is all 09:01:59 What do I know? I'm just a dweeb! 09:02:01 :P 09:03:01 Not really. Maybe non "fixated" 09:03:39 You start out lost, fixate and focus, then yer eyes cross and you look for "solutions" and "alternatives" 09:03:58 * aardvarx hopes so 09:04:19 in C, this is usually some "golden code" or a lib 09:04:47 in forthish, it can mean almost universally some new and obtuse source 09:05:19 it's views, more even than experience. 09:22:06 I'm considering some of the discussions on comp.lang.forth. The idea of having separate control stacks for forward and backward branches is interesting. 09:23:06 yeah. I've seen it before, elsewhere. I'm not sure it is justified. 09:23:32 It simplifies implementation and allows for interleaving structures. 09:23:49 I'm not sure what, if anything, is lost in so doing. 09:24:25 Quartus: near as I can tell, mechanically the code should be dead-simple and you should limit the gymnastics/stacks. It seems to be the human/source interfaces that require better voodoo. 09:25:22 and, (once again), we'd all benefit from an even lower 'engine' or VM or pseudo-cpu/asm 09:25:36 In this case even one control stack is conceptual; two would be no different, and it actually reduces gymastics while allowing for more sophisticated control structures. 09:26:15 Not sure how what yer describing would work out/appear. 09:26:44 Forward branches keep origs on one stack (conceptual, again); backward branches keep dests on another. 09:27:04 hmm 09:27:08 Er, I think I did the usual job of swapping dest for orig there. 09:27:31 so you'd store [ begin/ret and ends/exits] 09:27:38 not sure you gain anything 09:27:45 Orig and dest in most Forth systems are just addresses. 09:27:51 sure 09:27:56 They're resolved by THEN, or UNTIL. 09:28:06 Or AGAIN or REPEAT, etc. 09:28:08 begin/restart and end/loop 09:28:28 once again, we are talking about interpreting/compiling 09:28:34 No, I'm not talking about that. 09:28:59 each of those words imply that, I'm getting confuzzled 09:29:22 Do you know how BEGIN/AGAIN and IF/THEN are presently implemented in a typical Forth? 09:29:42 Badly. I can look them up. 09:30:03 Ok. Well, without that foundation, discussing how two control flow stacks would change things isn't going to be useful. 09:30:44 it usually seems to be a newer variant of "" or "resolve>" 09:30:46 I have to run, but in a nutshell it would allow you to overlap control structures (among other things). I'm not sure if it's useful, but it'd permit IF BEGIN THEN AGAIN constructs, for instance. 09:30:59 Quartus, TTFN. 09:31:04 laters, Q 09:31:08 Ciao. 09:31:29 * aardvarx can't believe Quartus and PoppaVic actually know what they are talking about. 09:31:54 I swear to christ, the "discussions" of "control-structures" is one of the worst and obtuse possible. 09:32:24 As is just about everything else you've said in the last two weeks!!! 09:32:26 aardvarx: recall I have an f83-std on paper. and, been around since FIG-forth 09:32:26 :P 09:33:01 aardvarx: it's often an issue - to me - of "Get under fuckin' Forth and OVER C" 09:33:22 iow: we need an engine we can port anywhere 09:33:46 Of course, there was that brief moment where you and amca explained used some C code to explain an abstraction... 09:34:47 sure, I think in C and stretch to my Forth-experience/memories. The latter is not going to play well in the *nix/C, linker-loader universe. And that ain't all bad. 09:35:48 Mind you, we were NOT teaching you an "abstraction". We were teaching how you COULDABSTRACT. 09:36:12 The less the left hand knows, the easier to manage the right-hand 09:36:54 lol 09:37:00 we were actually teaching you about API's - abstraction is a possibility, but the API is a fact. 09:37:47 I think the problem is that headers/source are really a PITA with CPP as-is, and few other languages even bother. 09:38:21 what is API abstraction for you? 09:38:25 Hence, my desire for a portable engine/layer upon which we can all build. 09:38:30 how does a api look like for you? 09:38:55 sry, but I'm getting a little bit angry, because such discussion seems to lead nowhere. 09:41:54 aardvarx: it isn't easy, stepping into 2 types of programming and trying to build one into an interface supporting the other form. 09:42:51 It's even worse when the linkers/loaders will block idjits from cranking out their cute little hacks - and block intentional non-hacks just as well. 09:44:29 PoppaVic, when you say "...2 types of programming..." 09:44:38 Are you referring to C & Forth? 09:44:47 To me, this merely means that "assembler" is an interpreted voc we'd need, and COULD compile. To others it means "we are broken". I like the protection, but dislike the attitude. 09:44:51 yeah 09:45:39 On the whole, C resists "self-modifying programs". THis is a plus in most cases 09:45:56 "Self-modifying" 09:46:19 Forth thrives on it, but then too: longtime forthers respect the infamous "crash and burn" 09:46:20 That's just as creepy as Forth "Self-compilation"... 09:46:32 not really. THey do not equate 09:47:15 YOu can define forth in terms of a running 'itself'. - and then generate a new forth. This is "metacompiling" 09:48:35 Mind you: the copy being generated is never promised to execute new mc WHILE "metacompiling" - you define a new tool with all of the support in the extensible old-tool. 09:49:20 aardvarx: think of it like this: Given asm, can your new asm-code change the running assembler? 09:49:57 or, "As I interpret the new asm-source, can I change the assembler running?" 09:50:18 you can't 09:50:54 you can alter macros, and generate new code that MAY run - later. But, the assembler is assembling a new "image" (collective term) 09:52:10 A Metacompiler is simply a tool speaking the basic-language that can generate some new program in those terms. 09:53:39 This is akin to HTML and other shit just being based on XML. The XML compiler is not going to let you interrupt it's "compiling" to rewrite itself, because it's 'basic-language' is neither dynamically-modifiable nor asm-based. 09:54:08 Think in terms of "derivatives" 09:54:20 C is a sloppy asm-derivative 09:55:16 gcc's whacko 'attributes' allows GCC to compile a NEW gcc (metacompile) itself. 09:55:54 aardvarx: am I helping at all, or are you hopelessly lost at this point? 09:56:51 It helps. 09:56:55 asm== "generate new mc from a given asm-lang Compiler" 09:57:20 C=="generates asm to be further beaten" 09:57:38 It's not like you you have code exhibiting Multiple-Personal-Disorders, right? 09:57:44 forth=="generates pcode to interpret ABOVE the asm" 09:57:50 right 09:58:23 metacompiler=="compile a new version of FOO in terms FOO can already understand" 09:59:50 Mind you now, on some platforms - like dos - and with some forths (like fpc), we did not have a true, protected-OS - so you could assemble new mc and run it like a moron. 10:01:07 "Protected OS" 10:03:51 and again, "metacompiler" is a Forth term -- most everybody else calls that process "bootstrapping" 10:04:03 Ah. 10:04:40 However *Protected* implies no meddling with the assembler in use, right? 10:06:57 --- join: PoppaVic_ (n=pete@0-1pool72-66.nas24.chicago4.il.us.da.qwest.net) joined #forth 10:07:09 --- quit: PoppaVic (Nick collision from services.) 10:07:13 --- nick: PoppaVic_ -> PoppaVic 10:07:23 FUCKIN' ISP 10:07:37 OK, lemme' paste a few lines (apologies) 10:07:46 forth=="generates pcode to interpret ABOVE the asm" 10:07:46 right 10:07:46 metacompiler=="compile a new version of FOO in terms FOO can 10:07:46 already understand" 10:07:46 Mind you now, on some platforms - like dos - and with some forths 10:07:47 (like fpc), we did not have a true, protected-OS - so you could assemble new 10:07:49 mc and run it like a moron. 10:07:51 hell, this is why doze is so liable to worms and virii 10:07:53 you have to WORK to smash executing programs with new programs 10:07:55 overwriting them. 10:07:57 And, remember that - under C (and libs) You've assemblers, 10:07:59 compilers, linkers and loaders. 10:08:01 Some folks get upset with "limitations", and they REALLY scream 10:08:03 when something like forth feels free to holler "out of memory" or "you can't 10:08:05 write that address, dumbass" 10:08:07 Done judiciously, limitations and image-generation is just a 10:08:11 step. 10:08:13 And, even with the best intentions and testing/validation, any 10:08:15 sensible programmer WANTS the system to scream at some haqueer that believes 10:08:17 he can hack down below the interface and subvert the system. 10:08:19 * PoppaVic cringes and awaits a bitchslap 10:08:21 I wish to fuck MacOSX would alert me and other programs when it lost the connection 10:09:28 "...smash executing programs with new programs..." 10:09:41 Is that what SSP is about in Linux? 10:09:59 aardvarx: on systems like doze/dos - you can address running spaces and recode the binary/mc 10:10:06 ssp? 10:10:20 Stack-Smashing Protector. 10:10:25 ahh 10:10:27 similar 10:10:52 more like r/w owner/root protections on memspace 10:12:44 By "protecting" and "segmenting" RAM (segments/sections), you can easily manage twits. 10:12:45 --- join: pl3x (n=dadler@p5484EDC1.dip.t-dialin.net) joined #forth 10:13:10 ..also makes shared-objects a lot easier to merge 10:14:43 Hmm. 10:14:50 aardvarx: imagine some snot of a haqueer that is embedding MC in a string, and wants to wipe the drive, infect you with a virus, or ascertain info that only the owner or root should ever see 10:15:09 ..he's got to work like a whore under *nix 10:15:19 ..it's trivial under dos/doze 10:16:31 I see. 10:16:37 well, maybe (nowadays) "trivial" is inapropos to doze - I still never, EVER plan to use or suffer doze 10:17:26 Don't we all ;) 10:20:38 Anyway, so.. We are limited to: 1) an engine; 2) Executable pcode that MAY include new, dynamic libs/objects; 3) regenerating new code to compile for an entirely new program. 10:20:52 These don't strike me as huge "issues" 10:21:44 The kicker is, as I've been working on, the actual "engine". 10:22:36 We want to minimize the amount of need for regeneration and linkage to actual objects/(libs+wrappers) 10:22:57 What is pcode again? 10:23:03 And, image-regeneration should be straightforward 10:23:31 pcode is just a collective-term for the intermediate-code/bytecode-interpretations 10:23:44 PoppaVic, why do you ignore me? 10:25:09 virl: simple, I got tired of every attempt at a conversation being a brawl, when you decided there were hidden meanings and slights in every sentence. 10:25:55 My BP is a lot lower, now 10:26:07 lol 10:26:37 And, if I want a "brawl" and stupidity, I've got 2 younger brothers with skulls like neutronium 10:27:37 I'm too old to want to stir-up or suffer a bitchfest, although I do love "bitchbaiting" liberals. 10:28:23 Dad bought #2 sons wive a copy of a Limbaugh book, just for the thrills - it was worth the $25 10:28:48 ahh,those were the days ;-) 10:29:34 I always waited for her to prove "spontaneous combustion" in front of us. 10:30:55 I always figured she was too inane to mount her broomstick. 10:31:36 anyway... aardvarx - did I help you at all? 10:32:52 I think you are designing something without doing anything, but ok, when you want to live in your dreamland, then live there and be happy 10:33:18 this is why I ignore you, virl - stay well. 10:34:17 aardvarx: I gotta' head upstairs and start dinner asap. 10:38:09 PoppaVic, I think I at least caught your drift about protection. 10:38:42 ok. It's nothing like an "easy" subject, because you rely on the OS, linkers and loaders. 10:38:43 Engine -> pcode -> new code, in that order. 10:38:57 sorta 10:39:25 new code - real code - can always be linked into or dlopened. 10:40:08 changing the engine has to either use the above, or facilities built INTO the engine (like : and does>) 10:41:20 Thanks for the help earlier in #c too ;) 10:41:29 aardvarx: it's really a wombly issue, and the most wobbling comes from shitty interfaces. 10:41:37 NP, glad to hel where I can. 10:41:41 help 10:42:20 What time zone are you in, by the way? 10:43:29 it's nearly 1330, NY time. But, I promised Ma' I'd start dinner for her soon. 10:43:40 k. 10:43:43 TTFN 10:44:02 indeed - stay well, check the wiki - add to it as required. 10:44:09 I'll be back in the AM 10:44:12 --- part: PoppaVic left #forth 11:02:54 --- quit: pl3x ("This computer has gone to sleep") 11:38:53 --- join: JasonWoof (n=jason@pdpc/supporter/student/Herkamire) joined #forth 11:38:53 --- mode: ChanServ set +o JasonWoof 11:39:22 JasonWoof, w00t! 11:40:14 hi aardvarx 11:41:38 hi JasonWoof, what's shaking? =) 11:41:51 just got back from sign language lunch 11:43:52 hmm xell, somehow I want to discuss it. 11:46:09 is it really so a pain for some people? 11:49:33 JasonWoof, do I have your permission to put your suggestions from yesterday on the wiki? 11:55:09 what suggestions? 11:55:11 sure 11:56:01 it's on the web anyway 11:56:06 1) write a book 11:56:06 2) write a design document (specific one) 11:56:07 3) start implementing now... figure out what you can make in a month that will do something. and how to grow incrementally from that 11:56:17 I do need context, though. 11:56:26 oh, my suggestions for getting someone down to earth 11:56:41 I don't understand. 11:57:48 those were my ideas for different things that I maybe should reccomend to PoppaVic in order for him to start doing something that made sense to me 11:58:03 somehow it reminds me on my way of doing xell 11:58:20 Too bad you just missed him. 11:59:06 I was half venting 11:59:19 Perhaps so. 11:59:31 It struck me as constructive criticism, is all. 11:59:36 just because I don't understand his approach doesn't mean it's not working 12:00:11 Well, that's a problem, isn't it? 12:00:21 what? 12:00:25 that I don't understand it? 12:00:47 If I can't communicate an idea I am trying to implement in a manner that others can understand... 12:00:59 that is a failure (on my part.) 12:01:07 yeah 12:01:13 or people are stupid ;) 12:01:15 hehe 12:01:27 I'm serious. 12:01:38 assuming people are intelligent and interested, I'd agree 12:01:44 which does seem to be the case here 12:02:19 * aardvarx thinks -- with all due respect -- DUH!!! 12:02:59 yeah, it's pretty depressing that he can't communicate his ideas right, also it's not good that he only want's his way of doing things and no one else, I think that's pretty ignorant. 13:11:06 --- quit: virl (Read error: 110 (Connection timed out)) 13:11:42 --- quit: aardvarx ("leaving") 13:24:53 http://groups.google.com/group/comp.lang.forth/msg/e52db400241ba823 13:27:10 (Separate control-flow stack for backward branches in Gforth, for experimentation) 13:58:57 --- join: virl (n=hmpf@chello062178085149.1.12.vie.surfer.at) joined #forth 13:59:01 hi again 13:59:34 what could be a good area for a bytecode vm? 14:05:42 area? 14:10:40 What do you mean by "area"? 14:19:30 Quartus a question about your page at the link you posted... 14:20:12 In the example I don't see the definition of unloop. Is it there or is it part of the normal vocab? 14:22:36 you can substitute it with domain 14:24:20 I'm asking this because I'd like to understand the disgust about xell, why does it exists? 14:24:51 there is disgust already, heck it hasn't even been out a month yet. 14:25:08 I still don't know what it does. 14:25:24 I can't be disgusted with stuff I don't yet understand. 14:26:31 Since Quartus doesn't seem to be available, I'll look for unloop in my gforth when I get home, and answer my own question. 14:27:22 looks like an oversight to me... 14:27:33 but he uses it in his example, so maybe not. 14:27:52 so that means it's a normal word then? 14:28:06 normal as in the regular vocab. 14:28:37 no, I think it's a control flow word. 14:28:55 oh right. I must remember to get that right. 14:28:56 I think it should be there. 14:29:07 * Ray_work will check when I get home. 14:29:30 I never knew such a thing was possible. 14:30:11 huh. seems to work as-is. 14:30:39 whatever, anyone who is interested into xell can look on my site or can look into the #xell channel 14:30:40 I would have thought that unloop would need to know about this stack. 14:31:04 oh the example, you tried it ? :) 14:31:25 maybe its a part of the whole now. 14:31:45 oh, I get it. 14:32:06 you do? 14:32:35 you're right, UNLOOP isn't an immediate (macro), it's a normal word. 14:32:55 thanks for confirmation. 14:33:01 The standard says that DO ... LOOP must keep its count and such on the return stack. 14:33:24 UNLOOP doesn't branch out of the loop, it just drops the stuff from the rstack so that you can return from the word. 14:33:41 it's an exit then. 14:34:16 it's do and loop that are re-defined here. 14:34:22 no, it's not an exit. 14:34:26 okay 14:35:33 : foo 5 0 do i . loop ." normal exit" ; 14:35:40 outputs "0 1 2 3 4 normal exit" 14:35:48 okay so when i = 3 then unloop drops 14:35:50 ya okay 14:36:03 yup. 14:37:39 drops what, do's address? 14:40:04 do stores 5 0 (or something similar) on the rstack. 14:40:50 loop increments the count, compares it to the limit (5), and if it's still less, it loops back. 14:40:58 oh yeah yeah 14:41:13 0 is loops starting count number and 5 is the limit right. 14:41:20 something like that -- the implementation is probably slightly different to allow for +LOOP. 14:41:30 sure. 14:41:33 makes sence 14:41:53 there is no do in colorforth yet :) 14:41:54 yup. I had to look it up to figure it out. I never use the standard loops. 14:42:05 :) 14:42:08 but colorforth has for/next ? 14:42:13 yes 14:42:15 and 14:42:30 recursion with 14:42:33 name ; 14:42:37 right. 14:43:07 I prefer for/next to do/loop. 14:43:18 so far I have to say I do as well. 14:43:27 It's theoretically equivalent, except that you have to fudge things if you want to count up instead of down. 14:43:32 I often need "depth" to do do properly. 14:43:43 Hi. Here I am. 14:43:49 And for/next doesn't allow you to count by different values like do/+loop does. 14:43:57 not that big a problem tho cuz i can understand it. 14:44:22 Quartus: I think we got it figured out. :) 14:44:29 nice code, BTW. 14:44:31 Hi Quartus. I think we worked... what he said :) 14:44:34 Ah ok. :) Thanks. I just threw it together. 14:44:35 ya very nice. 14:44:37 UNLOOP didn't need modifying. 14:45:08 Nothing did except the dest generators & consumers, and I threw in a simplified WHILE. 14:45:09 ya, I was thinking it was a control-flow word that branched out of the loop. 14:45:41 I didn't test LEAVE, maybe it needs modifying too. 14:46:04 No; it works. 14:46:40 With that in place you can do some really funky things. 14:46:54 : foo begin ." Hello " ; 14:47:05 : gah again ; 14:47:18 Not that I recommend this. :) 14:47:21 huh. OK, I would have thought LEAVE would be broken. 14:47:38 * tathi goes to look at the implementation of LEAVE... 14:47:58 No, it uses a forward branch, so it's untouched by this code. 14:48:52 * Ray_work had to take a call. 14:49:10 I like the simplified while and use something similar in chuckbot for colorforth. 14:49:11 ok, right, LOOP and +LOOP resolve all occurrences of LEAVE. Got it. 14:49:55 I think this is very neat. It breaks CS-PICK and CS-ROLL, but otherwise retains all default semantics (so far as I can see, anyway). 14:50:17 On the other hand, I can't see why you'd ever need CS-PICK and CS-ROLL after this. 14:50:46 * Ray_work didn't even know they existed and can't tell ya why :) 14:50:50 That isn't complete code, of course; it needs range-checking, and so on. 14:51:05 excellent first draft then. 14:51:36 Well, Ray_work-- WHILE is IF SWAP on a system where a control-stack item is one cell. If it's not one cell, you need to replace SWAP with 1 CS-ROLL, which is then portable. 14:51:53 So CS-ROLL and CS-PICK are there to let you roll-your-own control structures portably. 14:52:22 Which you only need to do (this is my current thinking) when the forward and reverse references get in each other's way, because they're on the same stack. 14:53:38 I see. 14:53:41 thanks for that. 14:53:57 In colorforth a while statement looks like... 14:54:03 Let me clarify -- : WHILE POSTPONE IF SWAP ; IMMEDIATE 14:54:25 The new WHILE in my example code doesn't need the SWAP, because the dest for BEGIN is on the other stack. 14:54:54 : name do-this-test 0 or drop if name ; then ; 14:55:14 ACK on the other stack sweet :) 14:55:59 Ray, as usual when I see ColorForth, I have no idea what's going on. Why would you OR the result of do-this-test with 0, and then DROP it before the IF test? 14:58:00 because or is defined as xor ( Cuz Chuck says that's what you really want -- hehe ) and or only affects the flags that if tests for. If consumes nothing so the value has to be dropped somewhere if not needed. name followed by return ( ; ) is a recursion. 14:58:50 Ok. Obfuscated Forth at its best. :) 14:58:56 naw 14:59:00 simpler. 14:59:12 If I can do it... 14:59:28 Reductio ad absurdum. 14:59:33 :0 14:59:35 hehe 14:59:52 you would have to forget a lot to get it, i'm curtain. 15:00:20 Hello curtain, I'm carpet. 15:00:40 yikes :) 15:00:57 * Ray_work rushing paper to go home :) 15:01:22 Ray, I can follow it after you describe it, but unfortunately Chuck's gone and re-purposed a bunch of Forth words that have 30 years of prior history, so confusion is absolutely inevitable. 15:02:30 agreed 15:02:51 What the hell could he have been thinking... :) 15:03:39 Chuck makes tools for Chuck, and more power to him. 15:04:30 His quest for minimalism has taken him completely out of the portability arena, though, and in consequence I only occasionally look in to see what he's up to. 15:04:41 hi all 15:04:54 Hi crc. 15:06:40 back in 2 minutes 15:06:59 --- quit: Quartus (Remote closed the connection) 15:14:23 --- join: madgarden (n=madgarde@Kitchener-HSE-ppp3577624.sympatico.ca) joined #forth 15:17:23 --- join: Quartus (n=trailer@ansuz.pair.com) joined #forth 15:17:27 Hey. What did I miss? 15:18:36 Whoa, slow down! :) 15:18:52 nothing :) 15:20:05 I just realized I have a copy of Popular Electronics January 1975 edition, heralding the Altair 8800. 15:20:28 That's probably worth a few bucks; I'll have to check. 15:35:16 --- part: Quartus left #forth 15:35:18 --- join: Quartus (n=trailer@ansuz.pair.com) joined #forth 15:37:45 --- quit: virl (Remote closed the connection) 15:45:47 Eight lines pasting: 15:45:49 : bar 15:45:49 begin 15:45:49 key 15:45:49 cond dup [char] a = while ." you typed an a" cr 15:45:49 else dup [char] b = while ." you typed a b" cr 15:45:50 else drop ." unacceptable key" cr again 15:45:53 thens 15:45:54 drop ." acceptable: a or b" cr ; 15:46:18 That uses Baden's cond/thens, and will only work with the interleaved control flow extension to Gforth I posted earlier. 15:46:55 I'm on the fence about this -- it may add flexibility at the cost of comprehension. 15:51:00 Lots of flexibility, though. Is there a simple way to code such a loop with multiple early-exits in Standard Forth? 15:53:48 I think the above code is made more understandable by replacing WHILE with IF. 15:57:02 This is simpler (again, needs the interleaved control structures), but doesn't leave the key on the stack at the end of the loop: 15:57:03 : bar 15:57:03 begin 15:57:03 key case 15:57:03 [char] a of ." You typed an a" cr endof 15:57:04 [char] b of ." You typed a b" cr endof 15:57:06 drop ." unacceptable key" cr again 15:57:07 endcase 15:57:09 ." acceptable: a or b" cr ; 15:59:22 --- nick: nanstm -> Raystm2 16:00:23 Some of this may cause Dijkstra to spin in his grave. 16:05:22 :) 16:05:41 :) 16:05:49 * crc sees nothing wrong with experimenting with control structures 16:06:53 Nor do I, but it does fly in the face of the Principles Of Structured Programming. 16:09:48 Others might suggest that I put my nested conditionals in a separate word, and use EXIT when I find a match, but that means passing a flag, I think. 16:16:25 11 lines coming (sorry for the big paste, but the channel is awfully quiet) 16:16:42 This is 'see bar' (above) 16:16:44 : bar 16:16:44 BEGIN key 97 over = 16:16:44 WHILE drop .\" You typed an a" cr 16:16:44 ELSE 98 over = 16:16:44 WHILE drop .\" You typed a b" cr 16:16:45 ELSE drop .\" unacceptable key" cr 16:16:47 AGAIN 16:16:49 drop 16:16:51 THEN 16:16:52 THEN 16:16:53 --- quit: derv0 (Read error: 110 (Connection timed out)) 16:16:54 .\" acceptable: a or b" cr ; ok 16:17:15 Kind of surreal to see the AGAIN tucked away inside an ELSE clause. :) 16:18:02 --- join: derv0 (n=derv0@proxy1.nscl.msu.edu) joined #forth 16:18:55 what is .\" ? 16:19:06 That's how Gforth 0.6.2 decompiles ." 16:19:11 ok 16:20:01 I'm guessing it's a typo in the SEE code. 16:21:28 --- join: docl (n=docl@67-137-166-34.bras01.mcl.id.frontiernet.net) joined #forth 16:39:28 Or maybe not. I think .\" in Gforth allows for escaped characters. 16:40:15 Seems it does. 16:40:39 .\" hello\"there\"" -> hello"there" ok 17:13:34 --- quit: tathi ("leaving") 17:57:05 --- join: YoyoFreeBSD_ (n=yoyofree@219.144.190.64) joined #forth 18:03:12 --- join: LOOP-HOG (n=chatzill@sub22-119.member.dsl-only.net) joined #forth 18:03:15 hi 18:03:18 Hey. 18:03:34 how are you? 18:03:46 Doing well, thanks. You? 18:03:57 Lousey :^) 18:04:06 I just got ripped out of $950 18:04:19 and I wish that I could get back at them, but can't 18:06:06 ? LOOP-HOG ? what happend? 18:06:56 I was doing some website work for these people, and converted a bunch of pdf files to html because some of their customers were having a hard time with the pdf format 18:07:05 and created a link index 18:07:20 they were telling me how great it was and how it was helping them 18:07:33 and nobody was complaining 18:07:39 but they didn't pay you? 18:07:48 no they didn't pay me 18:07:58 Contract? 18:08:07 no 18:08:12 oh. 18:08:15 sorry. 18:08:22 hmm. 18:08:28 Small Claims? 18:08:43 out of state? 18:09:08 They are on one side of the continent, I am on another 18:09:11 So they may have to travel, if the work was done in your state. 18:09:35 Where was the work performed? 18:09:46 Oregon 18:09:47 In your Business? 18:09:50 yes 18:11:00 Get a lawyers opinion, and consider sueing in small claims. The lawyer shouldn't charge you to tell you if you do or do not have a case. 18:11:14 I might do that 18:11:54 If you win, your fees maybe covered by the other side. you might not lose a dime. BUT if you lose, you may have cost yourself more. 18:12:21 Best to seek legal rep. Try a Legal school for getting your toes wet. 18:12:48 That shouldn't cost you anything, and you'll learn a lot about your possible case. 18:14:04 In this day and time, $1000 bucks is a lot. Don't discount what you have done. You're worth every penny and you prob'ly were the low bidder. 18:15:55 In any case, you may be able to get back at them, by causing them to spend money to represent themselves in your state. 18:16:13 You could even use that as leverage to get at some of your money. 18:16:59 Don't be angry with your self. 18:17:11 I'm more mad at them 18:17:24 --- join: sproingie (i=foobar@64-121-2-59.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 18:17:27 The only thing you did wrong is you didn't get a cheap contract and made them sign it. 18:17:42 Is there any document from them instructing you what they need done. 18:17:47 say a purchase order even. 18:17:52 no 18:18:10 All phone or e-mail convos? 18:18:23 There might be some emails 18:18:29 I would need to check 18:18:36 Any record at all is important at some level. 18:18:59 Do you have a local copy of the work? 18:19:05 yes 18:19:09 :) 18:19:40 is there any way any one on earth could possibly have a copy of that work other than you and the client? 18:19:51 no 18:19:55 :) 18:20:31 did you deal with the head of the client , or subordinants? 18:20:46 subordinants 18:20:51 :) 18:21:03 did you get any payment at all for any portion of the work? 18:21:10 $400 18:21:14 :) ;) 18:21:16 :) 18:21:46 You need to find the subordinants boss and explain the situation calmly and business like. 18:22:25 When was the ballance due? 18:22:47 When the work was completed afaik 18:23:23 I sent an invoice around this time last month 18:23:26 and the task is complete? 18:23:57 did you miss any portion of the work, or any deadline? 18:24:29 complete 18:24:41 not as far as I can tell 18:25:24 How do you know they are going to refuse to pay you? did they tell you this? or is the time you've waited just getting long? 18:25:51 Have you contacted thier accounts payable? 18:26:01 too long of time. When I goto log in via FTP they have already changed the PW, without telling me 18:26:21 have you contacted them about this? 18:26:26 no 18:26:40 well, then, maybe they still intend to pay you. 18:27:25 They were tellling me how great it was, and that they were happy with it, and then they start saying that it looks terriable, and such a condensending tone of voice too. 18:27:51 nothing specific? 18:28:00 no 18:28:12 he said that he could not see where the value was 18:28:26 hmm 18:28:30 liar 18:28:32 contact accounts payable. 18:28:58 accounts payable is the owners wife, who is available for about :30 each day 18:28:59 tell them your terms were "on delivery" 18:29:20 she was snubbing me for weeks 18:29:27 that you have every intention of collection the account. that you never gave them terms. 18:29:32 you delivered. the fact that they now don't like what they signed off on is irrelevant 18:29:32 fax her. 18:29:39 paper is better. 18:29:48 right 18:30:12 it's pretty simple. you do due diligence for a few weeks and just call 'em every week. if they don't pay or they tell you to get lost, you hire a collection agency 18:30:13 fax her from letter head of your local lawyer. :) 18:30:19 this is what collection agencies do 18:30:31 you'll have to pay the agency, but they're better than nothing and cheaper than a lawyer 18:30:41 You can do your own collections if you have the time and knowhow. 18:30:59 I do it often for my employer. 18:31:22 yes, but collection agencies have bigger legal guns. that's why you just do some due diligence for a while 18:31:37 they'll get the message that you'll turn 'em over to collections 18:31:40 there is that. 18:32:33 Next time :) you tell your client that you are ready to deliver, hand over the check or ..... 18:33:00 not that they're good as a reference, but if someone does call them, they also can't claim you sued them 18:33:01 and break delivery up into smaller portions. 18:33:32 they wouldn't do that anyway. no one will ever claim they are involved in a suit 18:34:02 especially the guilty 18:34:17 i guess if they're the kind of scum i've seen when it comes to shafting consultants, they could claim you raped their dog 18:34:41 wouldn't suprise me 18:34:51 hehe sure, but you wouldn't use that referance anyway so... 18:34:51 out and out mendacity is certainly not above some of these folks 18:36:02 true true 18:36:14 but you don't lose untill you quit on this kind of thing. 18:37:12 Sue them for copywrite infringment? who has the copyright? 18:37:24 it's not a copyright issue, it's a simple contract dispute 18:37:44 untill its published. 18:38:05 then its plagerism if LOOP-HOG still is the owner. 18:38:17 after all, he has the main copy. 18:38:34 you could enjoin them from using the code but you'd probably need a lawyer to go after 'em for that 18:38:49 no, I converted from pdf to html. They had the original form 18:38:58 I see. 18:43:46 and don't forget. You have at your fingertips, a network of people who know how to `get them back' if you `catch my drift'. 18:44:05 your not the first to be screwed this way, and unfortunately you wont be the last. 18:45:02 how do I register with niven? 18:47:37 hmm niven? 18:48:33 niven.freenode.net never mind I did it 18:56:16 oh okay register your name with a server? 18:56:33 that is what I did 18:56:36 you always use the same server. 18:56:50 that was supposed to be a ? 18:56:53 > /msg nickserv register *************** 18:56:57 ya 18:57:00 yes 18:57:09 okay your registering with freenode. 18:57:40 i'm pretty sure my server changes with every reload of the irc client 18:58:45 --- quit: Quartus (Remote closed the connection) 19:03:58 crc: if I had to deliver a website to a client, could you envision a shell to deliver this work that could delete the site if I wasn't payed? 19:04:21 a self distruct per se? 19:24:24 --- join: Quartus (n=trailer@ansuz.pair.com) joined #forth 19:37:36 i don't recommend backdoors 19:37:53 you can get sued ... or jailed 19:37:55 I have figured it out ;) 19:38:52 actually, the inventor of the simple IEbrowser-turns-e-book did. 19:39:32 the work delivers in that package. you can't copy from it. it's disabled. 19:40:05 it can have a timed `openness' like shareware. 19:40:33 and a registration key can actually be linked to an installation routine. 19:41:54 LOOP-HOG that's you delivery methode from now on. Does it make sense to you? 19:42:30 yes 19:43:29 no harmfull code needed. 19:43:34 nothing new here. 19:44:01 just an icon that now opens a private browser that says " pay up chump" 19:44:50 it can even open `x` times if you don't wanna time it. 20:02:57 --- join: snoopy_16 (i=snoopy_1@dsl-084-058-129-084.arcor-ip.net) joined #forth 20:03:53 --- quit: Snoopy42 (Nick collision from services.) 20:04:27 --- nick: snoopy_16 -> Snoopy42 20:34:25 --- quit: LOOP-HOG ("ChatZilla 0.9.61 [Mozilla rv:1.7.1/20040707]") 21:55:11 --- join: Amanita_Virosa (n=jenni@CPE0000e812679b-CM000a7362da55.cpe.net.cable.rogers.com) joined #forth 22:09:00 --- quit: sproingie (Remote closed the connection) 22:43:00 --- quit: derv0 (Read error: 110 (Connection timed out)) 22:44:17 --- join: derv0 (n=derv0@proxy1.nscl.msu.edu) joined #forth 22:45:11 --- join: amca (n=plump@as-bri-3-226.ozonline.com.au) joined #forth 22:54:18 --- quit: JasonWoof ("off to bed") 23:10:53 --- join: pl3x (n=dadler@p5484EDC1.dip.t-dialin.net) joined #forth 23:13:18 --- quit: pl3x (Client Quit) 23:58:10 --- quit: amca (Read error: 113 (No route to host)) 23:59:59 --- log: ended forth/05.09.20