00:00:00 --- log: started forth/05.09.29 03:07:29 --- quit: Quartus (Remote closed the connection) 03:50:17 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 03:50:32 Hi, tathi. 03:51:32 Hi Robert 03:51:35 How's it going? 03:52:14 Doing some prolog homework and waiting for school to start. Not all that bad. 03:52:20 It's a pretty interesting language. 04:35:49 Oops. Started reading a blog and got lost in the network. :P 04:36:29 * tathi doesn't know anything about prolog. 04:58:34 --- join: PoppaVic (n=pete@0-1pool47-5.nas30.chicago4.il.us.da.qwest.net) joined #forth 04:58:50 Mornin' 05:05:10 --- join: virl (n=hmpf@chello062178085149.1.12.vie.surfer.at) joined #forth 06:00:45 --- join: madwork (n=foo@derby.metrics.com) joined #forth 06:06:49 --- nick: Ray_work2 -> Ray_work 06:07:40 hi ray 06:18:53 Good morning. 06:19:13 Still tickling code.. How you doin'? 06:19:15 * Ray_work actually working, right out of the gate this morn, feeling good. 06:19:32 Yeah, getting paid is nice ;-/ 06:19:51 Ya my "ChuckBot the Glyph" is coming along nicely" 06:20:31 Trying to clean up the headers some more (from the bottom), before taking a deep breath and thinking of "top-down". 06:20:58 Oh yes, I wish I hadn't missed so much of yesterdays convo, but I did read that near the end. 06:21:13 * Ray_work will check out logs over the weekend. 06:21:21 I can't even recall it, I had too many irons in the fire 06:21:26 :) 07:26:20 --- join: sproingie (i=foobar@64-121-2-59.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 07:28:14 Hi sproingie ;-) 07:34:58 * sproingie waves 07:46:03 --- join: JasonWoof (n=jason@pdpc/supporter/student/Herkamire) joined #forth 07:46:03 --- mode: ChanServ set +o JasonWoof 07:46:20 --- join: PoppaVic_ (n=pete@0-1pool67-207.nas22.chicago4.il.us.da.qwest.net) joined #forth 07:47:20 --- quit: PoppaVic (Nick collision from services.) 07:47:22 --- nick: PoppaVic_ -> PoppaVic 08:28:21 --- quit: sproingie (Remote closed the connection) 08:34:11 man...I'm having more trouble writing this macro preprocessor... 08:35:38 heh 08:35:50 damn, I got stuck for a few when I WANTED to chuckle 08:37:05 What are you "preprocessing"? 08:38:32 assembly language source. 08:38:53 I ran up against a bug in the GNU macro facility that I couldn't track down. :( 08:38:53 I've nearly concluded that unicode foo-foo is not worth the efforts *sigh* Either you need a utf-8 module or libiconv around. 08:39:15 ouchie - writing a whole preprocessor for THAT? 08:39:42 Bah, it's not that complex. Just taking me a while to figure out the dataflow. 08:39:49 hehe 08:40:12 Actually it's pretty much trivial in Perl. :) 08:40:14 I've never seen a GOOD document on "preprocessors should spew..." 08:40:41 oh, damn - you cheat like crazy! Perl to feed asm? 08:41:07 Hey, it's text manipulation. That's where Perl really shines. 08:41:13 true 08:41:13 I'm doing a C version now. 08:41:23 or awk or sed or something 08:41:41 C is _still_ a lovely tool. 08:41:44 Actually, I tried just using m4 first, but that's just too ugly. 08:41:59 eww, yeah - I wish m4 on those I dislike 08:42:22 Well, I hadn't ever tried it before -- figured it was a good excuse to find out if it was actually any good. 08:43:16 I get told - by folks even longer at programming than myself - that m4 is wonderful. I keep thinking they have done "too much LDS in the 60's" 08:43:20 Very odd mix of restrictions and features. 08:45:38 Actually, the only reason I gave up on it was that I couldn't figure any way to get it to ignore stuff inside strings. 08:46:15 yep 08:46:19 substrings 08:47:32 It's just so weird -- it's like they went to write a TOTALLY generalized macro processor, but then they added some syntax that you can't get around. 08:47:53 Oh well. 08:48:05 At least now I know that I really don't like it. :) 08:48:14 tathi: did I tell you I have a nice interpret loop going under fovium? 08:48:26 JasonWoof: You might have. 08:48:29 Cool though. 08:48:42 can't do much with it, because of the limited word set, but it's a nice milestone :) 08:48:52 yeah. 08:49:08 I don't have runtime versions of the fovium opcodes... 08:50:57 ah 08:51:10 so no + dup @ etc 08:51:40 ahh 08:51:58 Been there, screamed and cried about that 08:52:14 PoppaVic: whaat? 08:52:57 I've gotten inner-interps to run the same way - then had to get it to communicate with outer-interp. It's "fun" 08:54:13 or, I should say: the outer-interpreter needs to tell the inner "wtf". 08:54:24 there is no inner/outer 08:54:31 hehe 08:54:34 it's just that + is not defined 08:54:57 THere is always inner and outer, or you've written no more than 1 interpreter/parser. 08:54:59 nor is dup or drop 08:55:27 JasonWoof: I'm not flaming, mind you - just using terms I learned long, long ago 08:55:40 yeah, well, you're not making a lick of sense 08:55:48 no use using terms if nobody knows what you mean by them 08:56:00 maybe. My bad. Carry on 08:56:06 it's very simple 08:56:11 it reads in characters until it comes to a 10 08:56:22 then it looks that up in the dictionary, if found it executes it 08:56:36 otherwise it tries to interpret it as a number. if successful it puts it on the stack 08:56:57 That's basically the "outer interpreter" aka "text interpreter" 08:57:12 input, lookup, run 08:57:17 yeah 08:57:22 and what's the inner? the VM implementation? 08:57:35 JasonWoof: wait, you're just saying you have barely any words in the new dictionary. 08:57:38 right? 08:57:41 right 08:57:52 well, there's probably 50 08:57:54 yeppers, inner is stepper 08:58:21 once again, PoppaVic has totally missed the point 08:58:33 * PoppaVic sighs 08:58:36 things like + and DUP are immediates in my cross-compiler 08:59:02 OK, that's nice 08:59:02 heh 08:59:03 so I've compiled dup into a bunch of things, but it's not in the mist dictionary 09:00:11 tathi: I had fun writing . again :) 09:00:28 I really like writing forths. It's been a while :) 09:01:27 Yah, I'm looking forward to going back to mine as soon as I stop wasting time on IRC and finish this preprocessor :) 09:01:38 : --. $30 + d0; emit --. ; 09:01:38 : -. 10 /mod d0; -. ; 09:01:38 : . -48 swap -. --. sp ; 09:02:16 oh, and d0; is like herkforth's 0; (exits and drops if TOS is zero) 09:02:31 right 09:02:34 tathi: the preprocessor is almost a necessity, isn't it? 09:03:05 hmmm... might be clearer if I used 48 instead of $30 09:03:24 I doubt it. 09:03:52 PoppaVic: actually the assembler will produce correct output with -Z, but it will bug me until I fix it :) 09:04:27 hmm, never used -Z - but I certainly understand how a new preprocessor can help tons. 09:04:33 JasonWoof: I like $30, but either one requires you to know your ASCII codes 09:04:48 well, it's just that I'm putting -48 on the stack 09:04:54 so when you add 48, you get zero 09:05:05 thus marking the end of the digits on the stack 09:05:14 oh, right 09:05:19 what's the magic-number? 09:05:21 as a rule, I use hex for ascii codes 09:05:29 '0' 09:05:34 then say so 09:05:44 (thought so, but asked anyway) 09:05:56 but in this case I it to be easier to see the -48/48 thing 09:06:01 bad 09:06:10 but, hey Whatever 09:06:19 I don't think herkforth has character literals 09:06:26 nope 09:06:29 "ascii 0" works for me. 09:06:48 I'm thinking about making them, but I can't think of a good key for it 09:06:54 (but doesn't work in herkforth) 09:06:56 I'm already using ' " and ` 09:07:06 which is a colorforth with tokenized source, not actual text. 09:08:55 oh, what am I thinking 09:09:08 I can't use editor keys, like '"` 09:09:19 but I can use a character I use in word names, like # 09:09:23 #a #0 09:09:46 doesn't stop me from writing words like #entries 09:10:15 would be quite easy to add. just have to extend the number parser 09:13:27 PoppaVic: oh, -Z just means to produce output in spite of errors. And this bug just causes the assembler to have an error - it still produces correct output, so... 09:13:30 I advocated this years ago: xXX[XX], bBBBB[BBBB], oO[OO], etc 09:13:41 ahhhh 09:13:59 tathi: trying to pervert the assembler? 09:15:18 I just want my forth to assemble correctly. 09:15:41 yeah, but assemblers - like mc - are platform specific. 09:15:58 I know 09:16:19 I'm working on making a forth that will cross-compile, so I'll get away from this specific assembler eventually. 09:16:28 well, that's the point. The given tool can be a bitch, or just not speak "what you want". 09:16:54 tathi: I agree with the principles 200% percent 09:17:45 bbl, lunch 09:17:50 done 09:17:59 I still think we'd benefit from a minimal TIL semantic that was suitable and portable for "assembly". 09:18:02 herkforth now has char literals like so: #0 #a etc 09:18:38 those are ascii, btw 09:19:16 ..and I have to admit being militant about wanting ascii 09:19:24 in under 10 minutes :) 09:23:20 PoppaVic: "TIL semantic for assembly" meaning a vocab for generating MC or something? (lunch not quite done yet :) 09:24:29 Sorta', yeah.. Wherein we write for a generic assembler in TIL - and the til generates a local-platform of asm. 09:24:44 This is back to C-- and such 09:25:27 Hmm. 09:26:01 I'm still not convinced that there is a useful intermediate level between C-- and local asm. 09:26:02 Basically, the TIL would be a transformer/filter. 09:26:22 sure there is: there are almost too many commonalities to suffer 09:27:08 The kicker would be: the TIL would NOT be JIT/interpretive-compiling 09:27:13 Yes, but if you're abstracting out all the differences, I think you're pretty close to C-- anyway (sans infix syntax, of course). 09:27:20 right 09:27:38 or D 09:27:45 the diff is, we stick to a basic i/o form. 09:28:25 standardize the "universal assembler" semantics and be done with it. We don't CARE how they filter it locally. 09:28:54 I just think that that is exactly what C-- does. 09:29:08 maybe it does, neve gotten it built and running. 09:29:19 Again, with infix syntax, but switching to an asm-like "instruction" syntax seems like a step backwards to me... 09:29:24 yet, why suffer - at this level - a C-variant? 09:29:34 Me neither, just read the docs. 09:30:01 C-- looked cute, and then I noted I was offered a binary-install. 09:30:28 I can't comment on it other than to say: "forth can do it better" 09:30:55 --- quit: crc (Read error: 101 (Network is unreachable)) 09:31:36 OK, but you're not talking about Forth, you're talking about a "universal assembly language". 09:31:51 Which is precisely the stated goal of the C-- project. 09:32:35 I'm not saying you shouldn't do it with a TIL, I'm just saying it *might* make sense to use the already existing syntax, rather than inventing your own. 09:33:17 And again, I haven't looked at C-- that closely; just read some of their docs. 09:33:24 I'd agree, if I had C-- running and experience using it. 09:33:43 But I gather it doesn't have all that much in common with C other than syntax. 09:33:52 OK. I'll just shut up then. :) 09:33:52 Although, I have to wonder why using C-- is preferable to a Forth-- 09:34:04 hehe 09:34:37 never shutup. I don't mind asking/discussing - someone always knows more. I don't, in this case 09:35:12 you don't need an universal assembler, when you can relie on specific services like guis and build handles in a platform specific assembler where the file gets assembled to native code. 09:35:24 I'm totally, 100% sure that a TIL would use a more simple-minded and easier semantic, in any event 09:35:28 My guess about a C-like rather than a Forth-like is that you're already using variables already (which can just map to registers) 09:35:37 You don't have to infer it from the stack (which admittedly isn't hard) 09:35:55 maybe. GNU is starting to talk front/back-ends 09:36:06 I think it's too little, too late. 09:36:08 in GCC, you mean? or...? 09:36:21 yeah, the newer GCC do, iae 09:36:45 AFAICT it's still badly documented, but getting better. 09:36:53 They tend to forget, (of course), that gcc is not quite Universal 09:37:04 I have actually heard of a few people using it, but gcc is too big for my tastes. 09:37:14 tathi: indeed - all those points hilight my issues. 09:37:14 I've been digging up some info on gcc frontends. 09:37:26 Robert: any luck? 09:38:03 Some, yes. I found some interesting documents and examples (and was sent some by email). 09:38:22 why assembler? I try only to throw something new in the discussion. 09:38:29 tathi: bear in mind: even their platform/cpu interfaces are a jumble of disassociated gibberish 09:38:30 It looked do-able to me, just a bit tricky. 09:38:31 But like tathi says, it's huge, and I wouldn't use it unless you need/want to be compatible with dozens of platforms. 09:38:41 oops, lunch for real now. 09:38:59 Robert: yeah, *almost* a no-win situation. 09:39:05 ok, tathi 09:39:37 It has a good optimiser and outputs code for almost any platform you can think of. So there ARE a few advantages. 09:39:55 oh, hell... optimizing is i/decisions/o 09:40:13 Yes, and I still hug tight to gcc and C 09:40:44 ..But, so far anything I've seen has whacked idosyncracies and pain/blood involved. 09:41:53 Robert: on the whole, C and C-- basically typify "portable assembler": and I've never even SEEN efforts to redirect||steer this from the forthish universe. 09:42:27 It's not all *BAD*, but it really remains irksome. 09:43:17 We already _know_ that a really elaborate TIL can emulate C 09:43:20 I admit I've been lazy, but I was thinking of writing up some tool to efficiently compile a subset of Forth to machine code, and try it out as a variant of portable assembly. 09:43:31 but, that C can't well emulate a TIL 09:44:06 yeah, there are a lot of ideas that have way-sided for TILS and forth over the years 09:46:37 ok, nobody is interested in my view of it, fine. 10:10:02 damned vacu-suck machine *sigh* 10:10:24 ANyway, Forth is more like "asm" than C is. 10:12:13 actually... forth is more like super-cpp AND c OVER asm. 10:13:48 wow. The C-- mailing list is totally taken over with spam. 10:14:08 I'm not surpised, I saw very little interest/activity 10:15:19 I think it's another of those "gee whiz!" things that dies an ignominious death 10:15:38 I just meant that they need a different listserv program, so they wouldn't get spammers registering so much. 10:15:55 I didn't even notice any activity. 10:17:07 yeah, looks like about 10 messages this month. 10:17:42 Frankly, I believe forth-ish TILS have it all beat - if you can get past folks over the idea of generating a file for further interp/compilation 10:18:59 Writing one single, unified "lexer" and "parser" is just a dead, DEAD end. 10:19:57 otoh, writing an extensible interpreter, and vectored interp - and pcode/bytecode "compiling" - yeah, this will be around for a long, long time. 10:37:42 Well, I don't think C-- is dead. Looks like it's just kind of a low-key project. 10:38:00 tathi: we used to call that "grass-roots" ;-) 10:39:22 and if nothing else, forth had better lead the universe in "grass roots" ;-) 10:39:28 heh. But looks like it is mostly folks involved in academia. 10:39:54 So that may kind of put you off it. ;-) 10:39:58 ok, then it is uninteresting to me: acadamia has a special axe to grind. 10:42:14 I can't say I understand that attitude, but whatever works for you. 10:42:45 academics are like folks in a pressure-cooker. 10:42:59 how so? 10:43:03 ..Plusm they have axes the rest of us could care less about. 10:43:23 "publish or perish" is a std. dictum of academics 10:43:56 The rest of is just want to get something done - and lack insurance or tenure 10:44:00 Oh. Yeah, there are those folks. But not everybody is like that. 10:44:03 of is 10:44:11 US, damnit 10:44:53 I've also seen a lot of people who do good stuff at universities, because it frees them up a little bit from the constraints of having to get something practical done NOW. 10:45:08 Hell yeah, I agree - some "academics" are going to fizzle and croak... ANd be "right". 10:45:41 And...for instance, it sounds like a bunch of the C-- folks are students working on some aspect as a special project. 10:45:43 anyway, this has no bearing on us - beyond the concept of "C-- is academic". 10:46:15 I fail to understand why the task is beyond forthish volken. 10:46:55 I don't think it is. I just think that most of the folks who have bothered to do serious stuff have gone commercial. 10:47:03 If it really means "forth is not up to it, but C is" - then we have a whole universe of issues. 10:47:27 tathi: I agree on that, and disagree much as I did 20 years ago 10:48:26 I keep meaning to put together a nice free source compiler, but keep getting distracted. 10:48:28 I keep pondering "wtf?" with the whole forth/til thing. 10:48:48 s/source/forth/ 10:48:48 tathi: I look forward to supporting you as best I can. 10:49:31 I still have no real issue with foo->bar->snarf interpreting/"compiling" 10:49:43 I keep spending time being fascinated by the ideas in Smalltalk, Haskell, etc. :) 10:50:12 Which is why I like "intermediate code" we can compile/run - and damn the "slow" 10:50:57 as a rule, we see in ##C tons of idjits "prematurely optimizing" daily. 10:51:31 Yeah...that's the one thing I don't like about coming from an asm background -- premature optimization is a tough habit to kick. 10:51:34 I think forthers suffer the same 10:52:19 just write the FOO; translate it, (which may optimize some) to run or further xlate (with further optimizing), etc. 10:53:03 A given would be "portable assembler can be optimized". 10:53:27 the corollaries are: every level can optimize 10:54:12 I'm guilty of premature optomization too 10:54:23 the question becomes: who is really an interpreter/JITC - and how much should they understand/xlate? 10:54:44 eg most of the primitives... I made them all immediates in the cross compiler so they just compile inline 10:54:49 but now they're not in the dictionary 10:55:07 JasonWoof: the only "guilt" is: does it block your thinking/discussion? 10:55:13 it would be a piece of cake to make them immediate later in mist when I have the editor going 10:55:29 in the mean time the slowdown of having all that stuff be calls would probably not be noticeable 10:55:36 sure, as in (basic concept) "What is an 'immediate'?" 10:56:26 I'm pretty sure that 'immediates' are nothing more than a word in the "operator vocabulary". 10:57:03 But, this is open to debate - and there are few folks we can debate WITH. 10:57:32 (no, I have no thesis to write) 10:58:30 so, just for the days record: I do not try to flame you, JasonWoof - I merely want some ideas tossed around. 10:59:23 I think we - in C - expect too little from interpretation; and (in forth) too much from "compile and run". 11:00:19 it may well be that every 'word' has a "Compile" and "Running" behavior - I am not sure. 11:01:12 Or maybe we need to consider: "Interpret" versus "Compiling" versus "Executing". 11:01:13 most don't need it, if the default compile behavior is to compile a call to the runtime behavior. 11:02:14 tathi: sure, but the concepts are mostly in-the-air because of the bailout of folks from grass-root - and committees - to "product-for-sale". 11:02:51 I don't think I see the concepts as being in-the-air. 11:02:56 Afaik, even the FIG newsletter is nearly beyond most folks for readability/costs. 11:03:26 Sure they are. Most forthers EXPECT immediate;y extension and execution 11:03:47 oh, you're including non-forthers. ok. 11:03:55 there is something between interpret/emulate and native 11:04:16 right. YOu can't help it: there is no forthish OS/kernel 11:04:23 but... I still don't think there is much ambiguity to terms like "interpret", "compile", and "execute 11:04:46 the ambig. is mental and "what is laid down/run" 11:05:03 who cares? 11:05:17 tathi: I think yer FOVIUM has the handle, but we need to twist it. 11:06:04 we care only in terms of "make it portable, smash the fuckers" 11:06:25 ..and, I've always been in favor of smashing folks fixations 11:07:27 I just think you're making a big deal about things that aren't important. 11:07:47 So "interpret" is ambiguous? Fine, pick a definition, use it for your system, and document it. 11:07:57 If someone else wants different semantics, they can implement it on top. 11:08:07 (Or convince someone else to do it for them) 11:08:59 Sure, Turing completeness is too weak a criteria for a usable programming language, but for an extendable system, I don't think it really matters all _that_ much what the core assumptions are. 11:09:15 Maybe. I think all the variants and divergence is a bigger issue, and Turing isn't my issue. 11:09:34 Anyway.. I'm gonna' call it a Knight 11:09:38 --- quit: PoppaVic ("Pulls the pin...") 11:32:54 --- join: OrngeTide (i=orange@rm-f.net) joined #forth 11:34:07 Hi. 11:37:02 * JasonWoof removes his blinders 11:37:05 hi robert :) 11:37:09 Heh, hi. 11:50:32 --- join: Quartus (n=trailer@ansuz.pair.com) joined #forth 11:50:41 Hey all 11:51:51 --- quit: madwork ("?OUT OF DATA ERROR") 11:52:56 Hi Quartus 11:53:01 --- join: madwork (n=foo@derby.metrics.com) joined #forth 11:53:01 Hey. What's up? 11:54:07 Not much. 12:08:49 hi Quartus 12:09:45 I'm working on a new logo 12:10:19 LOGO? :) 12:11:06 yeah 12:11:13 got a website and business cards, and I'm working on a flyer 12:11:16 gotta have a logo 12:11:53 been using "herkamire" but it's hard to remember for many people 12:13:48 Yes, and it conjures up strange images. 12:18:42 http://jason.herkamire.com:2201/jasonwoof.png 12:19:40 Neat. 12:20:53 JasonWoof, reminds me of this: http://www.1067theend.com/system/sitecache/c4ca4238a0b923820dcc509a6f75849b/images/TrainwreckieWinners/Hooters_logo.jpg 12:21:38 oh dear 12:22:13 The two O's as eyes are going to remind a lot of people of that, in North America anyway. 12:22:42 rrr 12:22:49 so hard to resist though 12:23:35 Unless your marketing campaign uses large-breasted women in tight silk shorts -- well, that might work. :) 12:50:51 hmm reads like hooters 12:53:24 Quartus: this any better? http://jason.herkamire.com:2201/jasonwoof2.png 12:53:50 Jason, a bit. 12:54:04 Still kind of in the same ballpark, though. 12:54:11 bugger 12:54:14 Enough to be sued? ;) 12:54:15 You'll never escape the Hooters comparison if you keep the pupils in the Os. 12:54:59 Sued? I'm not talking about infringement, just association. 12:55:22 I'm not being very serious, although people probably have been sued for less. 12:55:49 I doubt Hooters would sue because someone else notice that two round objects with spots in them vaguely resembled, um, eyes. :) 12:56:38 thanks for testing guys 12:57:05 The second one is a definite improvement. 12:57:06 anybody know how to raise by powers in gnuplot by chance? 12:57:50 Not me, JasonWoof. 13:07:14 here's another go at it: http://jason.herkamire.com:2201/jasonwoof3.png 13:07:42 That looks a bit like a beak, and you're back in owl territory. 13:08:26 yeah 13:08:49 maybe I can make the nose look like the wet dog/cat/bear sort of nose 13:09:20 Is it 'cute' you're going for? 13:10:26 I want it to be just a tiny bit silly 13:10:39 but I guess my lettering will have to be enough 13:10:52 As it stands it looks like it might be the logo of a toy company. 13:11:14 "JasonWoof Pre-School Toys and Chewable Books" or something. :) 13:12:02 yeah, it's too much 13:12:07 Yes, the font by itself has some small amount of silliness to it. 13:12:34 Maybe leave it as just the font, and add seasonlly-relevant whimsical things to it the way Google does. 13:14:50 hehe 13:14:58 I'm more into friendly than silly 13:15:05 just so long as it's not cold corperate 13:16:05 I went with a Roman font on marble, because of the Latin origin of Quartus. 13:17:31 Cold, by definition, I guess. :) 13:17:40 But full of Roman goodness. 13:18:38 :) 13:19:15 I'm into black and white for businesscards 13:19:29 I like the smoothe curves 13:19:39 and corners 13:20:47 For business cards I've used the cursive Quartus logo, the one I use in Quartus Forth. But these days business cards aren't in too common use, at least not here. 13:28:25 I give mine out a fair amount 13:28:50 well, probably 2-3 times per week 13:29:03 usually just to give someone my phone number 13:29:47 so, how near is forth as an active programming language which isn't rotating around oldness and so deathness? 13:31:22 and anybody who wants to discuss about xell can join #xell 13:32:04 What's xell? 13:33:11 I troll 13:33:33 ...OK 13:40:35 hae? what? 13:40:54 'I troll'? what do you mean? 13:43:23 Robert, xell is a platform for portable embedable programs(in short) 13:48:10 virl: I mean asking a question that contains the presumption that our opinions are wrong 13:48:44 virl: you just majorly insulted forth, in #forth 13:50:04 ah, really? only because I say that I think/see that forth isn't the language which is populate today? and where could be more? 13:50:59 no, not only because you think that, but because you ask a question which presumes it. even though you must realize that we dissagree 13:51:17 I cannot answer your question, because I disagree with it's pressuppositions 13:53:35 virl: if you think forth is an inactive language rotating around oldness and deathness then go knock yourself out with java or something 13:54:15 sry, JasonWoof, but people who say that can't learn and are only stupid of some kind. 13:54:59 virl: what are you talking about? 13:55:20 so, you think that ANS Forth is the best thing which could happen to forth since 30 years? then I would call you stupid, I'm so sorry for that. 13:55:33 --- kick: virl was kicked by JasonWoof (JasonWoof) 13:56:05 --- join: virl (n=hmpf@chello062178085149.1.12.vie.surfer.at) joined #forth 13:56:43 so, you think that ANS Forth is the best thing which could happen to forth since 30 years. 13:56:55 --- kick: virl was kicked by JasonWoof (JasonWoof) 13:57:09 --- join: virl (n=hmpf@chello062178085149.1.12.vie.surfer.at) joined #forth 13:57:27 stop telling me what I think 13:57:32 not friendly to somebody who loves forth. 13:57:49 look, you can think whatever you want. stop saying that I think stuff 13:58:23 if you are interested in my opinion, ask me about it 13:59:20 I never said that you think stuff. I only said a assumption which followed by one reaction so -> it was answered. 13:59:40 ok, what's your opinion? 14:00:23 virl: no, you didn't. You made an assumption based on absolutely nothing. You're the only one who said ANYTHING about ANS Forth. 14:01:12 "so, you think that ANS Forth is the best thing which could happen to forth since 30 years." 14:01:12 I don't want to discuss that. 14:01:59 take a good look at that sentence. 14:02:04 you typed it to me 4 minutes ago 14:02:13 just before I kicked you the seccond time 14:02:57 virl: what's my opinion on what? 14:03:09 virl: I've got a lot of opinions 14:03:32 I've even got enough about forth that I'm not just going to sit here and try to rattle them all off 14:03:35 as a reaction of a stupid answer, completly logically and for me it wasn't trolling. 14:04:12 virl: still... no idea what you're talking about. I don't recall giving any answers 14:04:35 oh, I did answer your question about trolling 14:06:53 I only asked a completly neutral question about forth, ok it was a little bit critical but that is good, because a community needs to selreflect the things which they want, only to turn perhaps forth into a little bit another direction where it could be more accessible. 14:07:27 JasonWoof, my initial batch of business cards were for a PalmSource conference. They had me listed as "Emperor". :) 14:07:42 Quartus: emperor? 14:07:49 Well, in keeping with the Roman theme. 14:07:50 and I assumed nothing if everybody is an idiot or something like that. 14:08:03 With a marble pillar. 14:08:16 Piller? I must need coffee. I can't remember which it is. 14:08:17 oh.. how I hate that. 14:08:21 virl: you're queston contained the following presuppositions (all of which I dissagree with) 14:08:26 1) forth is inactive 14:08:42 2) forth is rotating around oldness 14:08:51 Ah good, it's 'pillar'. At least my initial instict was right. :) 14:08:58 ok, just those two 14:09:34 both are true. 14:09:43 both are your opinions 14:10:29 now, you might guess that in a room of forth enthousiasts, you might find some people who hold differing opinions 14:10:38 and so they aren't bad. even if you like to attack them. 14:11:31 I don't like to attack them 14:13:16 I have what (in my experience) is one of the most advanced development environments 14:13:25 built on forth concepts 14:13:41 But Jason, think of all the time you're wasting on the oldness and the deadness! :) 14:13:56 Quartus: damn! I forgot ;) 14:14:09 aha.. and some attack it, hell idiots. 14:14:21 You should be out frolicking in the liveness and the newness, tra la la! 14:14:39 virl: Quartus is selling almost enough coppies of his forth to live on. This leads me to believe that there is an active, if not growing group of forthers out there 14:15:21 JasonWoof, no point bringing me into it. I tried to tell him that a few days ago, and he got abusive. 14:15:32 Quartus: good idea :) I think I'll rewrite my forth for a forth virtual machine. I'll use the new ideas I've had while implementing herkforth 14:15:57 so, how much copies? how much in numbers? 14:15:57 and make some changes that were hard to implement in it's current state 14:15:58 Well, sure, JasonWoof -- drag yourself up out of this dusty old Forth mausoleum, get out into the SUNSHINE! :) 14:16:46 Quartus: totally dude! I'm there. (have it running already... just a simple interpret loop that lets you push numbers and execute words) 14:17:16 * JasonWoof appologizes for dragging quartus into this 14:17:17 For what it's worth, virl, and mark you -- I'm not going to be baited back into your argument -- there are several thousand Quartus Forth users, and it has been available since late 1998. 14:17:31 he was doing such a good job ignoring virl. much better than I 14:18:14 why ignoring me? I'm totally harmless and also an enthusiast, so what? 14:18:26 virl, you are rude, contentious, and angry. 14:18:33 well said 14:18:53 my stratagy is to make a development environment that works so well, and people will want to use it 14:18:58 much like quartus forth 14:19:07 JasonWoof, good luck with it! 14:19:31 of the choices for onboard development on palm (which I admittedly don't know that much about) it appears quartus forth is by far the best 14:19:56 people use it because it's there and it works great 14:20:04 hey, what do you want? I'm not good at english. 14:20:09 "oh, I can program for palm on my palm? cool. how do I do it?" 14:20:16 14:20:41 I hope it is, JasonWoof. The two competing languages, such as they are, are Pascal and C. The Pascal implementation makes it difficult to create stand-alone apps (from what I can see). The OnBoard C can create stand-alone apps, but unfortunately it's C, and C is a really bad fit for the Palm screen. 14:21:43 Those two are native-code compilers. There's a handful of others that run as interpreters, more or less. 14:22:15 rude adjective: 14:22:15 1: socially incorrect in behavior 14:22:15 2: (of persons) lacking in refinement or grace 14:22:15 3: lacking civility or good manners 14:22:15 5: belonging to an early stage of technical development; characterized by simplicity and (often) crudeness 14:22:26 6: leaving out 4. 14:22:28 :) 14:22:53 4 was for talking about oil and such 14:23:00 How rude. 14:23:12 4: (used especially of commodities) in the natural unprocessed 14:23:12 condition; "natural yogurt"; "natural produce"; "raw 14:23:12 wool"; "raw sugar"; "bales of rude cotton" [syn: {natural}, 14:23:12 {raw(a)}, {rude(a)}] 14:23:34 I don't think I've ever heard 'rude' in the context of (4). 14:23:35 Heh. 14:23:47 yah, that's kind of archaic. 14:24:00 nowadays we say crude or raw 14:24:03 Raw. Unrefined. 14:24:17 righto :) 14:24:43 yeah, I imagine it's quite difficult and annoying to do C on a tiny screen 14:25:06 JasonWoof, I find it annoying on a large screen, but yes, it's worse on a small one. :) 14:25:28 but I would hope that most, if not all definitions you'd make in quartus forth would fit easily on the screen 14:25:36 Quartus: here here! 14:25:44 Yes, generally. I've had some run over one screen, but it's rare. 14:26:02 yeah, every once in a while there's a def that needs to be big 14:26:17 mostly tables for me 14:26:26 I write (as I think most modern Forth programmers do) in a vertical style; I never used blocks, and so don't try to cram the world into each line. 14:26:38 yeah 14:26:40 me too 14:26:47 except I'm currently using sort of blocks 14:26:59 they're bigger, and I can't put multiple things on one line 14:27:03 but I'm getting rid of them 14:27:06 I am a strong proponent of readable source. 14:27:20 yeah 14:27:37 puh, calling me rude is brave. 14:27:52 I'd be interested on your quick opinion of http://quartus.net/products/duco/index.shtml -- it's a complete Quartus Forth app, but I'm not sure it's all that readable. 14:27:59 Puh \Puh\, interj. 14:27:59 The same as {Pugh}. 14:28:03 dict is fun! 14:28:07 heh 14:28:17 Pugh \Pugh\, interj. 14:28:17 Pshaw! pish! -- a word used in contempt or disdain. 14:28:32 * Robert has a bunch of dict servers running. 14:28:40 Quartus: reading... 14:30:48 hell, I'd like only to discuss things about forth and another approaches to look over to another approaches and such people blockade such creative phases, how I hate that. 14:34:06 what's the stack comment for a word created with ARRAY? 14:34:13 ( val index -- ) ? 14:34:53 oops... ( index -- addr ) 14:35:00 Yes, index--addr. Cells. 14:35:11 does> swap cells + 14:36:06 there are more readable sources arround. and it reminds me somehow, that OOP isn't really something which should be implemented into forth. 14:36:31 Well, considering the oldness and the deadness, why bother, eh? :) 14:36:58 why do you do this? 14:37:28 You make a good point. I'll go back to ignoring you. 14:38:22 no, why please? 14:38:52 JasonWoof, it's rather an old effort on my part (fits in well with the whole oldness and deadness theme!) -- I'm questioning whether it's too clanky to post as example source for newcomers. I think it may be. 14:38:54 Quartus: clever :) I like the lowercase stuff in the table. 14:39:27 JasonWoof, that was the quickest and most cost-efficient way I could think to store both values in the same sparse table, since I'm wasting so much space in it anyway. 14:39:42 heh 14:39:46 I have a right to exist 14:39:50 In fact the 0-9 values are in that table too. 14:40:05 virl: sure do! and if you're nice, people will talk to you. 14:40:25 yeah, that's the part I just read. finally realized why you need the 10x stuff 14:40:28 All of 24 values in a 127-cell table, it's shameful. :) 14:40:31 I'm nice, hell I allways were. 14:40:50 The 10x stuff is for adding an additional digit. 14:40:51 I saw code for a roman numeral calculator somewhere. it was interesting too, and worked differently 14:41:14 I worked out this method back when I was learning APL, as it's pretty much the only way to do it there, and it's clever and quick. 14:41:38 The Roman number parser will make the best sense possible of any malformed Roman numbers. 14:41:56 It will quite happily turn IIIIII into 6. 14:42:50 The output routine will always produce properly-formed numbers, of course. 14:43:22 Are numbers like "ICM" allowed? 14:43:36 roman> is too much juggling for my little brain 14:44:19 JasonWoof, I agree; I'll have to re-factor that. 14:44:42 The hairy bit in the middle works out whether the previous symbol is 1/10th or 1/5th of the current symbol, and if so uses it as a decrement. 14:44:49 why another bad day in my life. yesterday and then today 14:44:52 Robert, they're allowed -- but what value would you expect that to be? 14:45:55 My parser returns 901. 14:46:35 Yes, 901 was what I was expecting. 14:46:41 do you handle IIV ? 14:46:58 Yes -- again, what would you think that would be? 14:47:05 virl: Interesting, a lot of people have asked that. 14:48:01 3 14:48:20 No, predecrement is limited to the character before. IIV parses as 1+4. 14:48:24 bad attitudes make bad days 14:48:32 ok 14:48:37 that makes things simpler 14:48:55 It's the way the Romans did it. It's not a place-value system, more of a positional one. 14:49:08 good 14:49:31 The Romans commonly got it wrong, but I've never seen iiv. IIII, many times. VV, even. 14:50:10 Wasn't IIII once official? Or did I get that wrong? 14:50:15 --- join: crc (i=crc@pool-70-110-221-244.phil.east.verizon.net) joined #forth 14:50:18 Hi, crc . 14:50:19 start with 0 on stack... inner loop: char symbol>value 2dup < if swap - else + then 14:50:35 Quartus: good 14:50:37 Insofar as there was never a hard-and-fast rule about it, Robert, yes. There was no office for it to be official, if you see what I mean. 14:50:59 JasonWoof, yes, more or less -- but the only valid pre-decrement is either 1/10th, or 1/5th of the current value. 14:51:16 True, but I guess I meant that it was widely used. 14:51:20 oh wait... mine is total crap 14:51:37 Robert, yes, that's the most commonly-seen variant. 14:51:52 mine says "if the total so far is less than the new digit" 14:51:53 hi Robert 14:52:13 IV is 4. IX is 9. VL is 45. XL is 40. 14:52:31 LD is 450. 14:52:40 yeah, you're not supposed to do IC 14:52:53 XD isn't valid, it should be DX, and it's 510. 14:53:18 If you want 490, it's CDXC. 14:54:20 yeah 14:54:21 Long-division and multiplication was so hard using that system that a slave could earn his freedom after only a few years if he could do it. 14:54:23 Heh. XD looks more spanish than roman. 14:54:32 lol 14:56:54 Imagine not knowing the Arabic system, and having to figure out the relationship between values when VL divided by IX is V. 14:57:09 *shrug* 14:57:23 Makes you wonder how they ever managed to rule the world. 14:57:29 You'd have to rote-memorize all the relationships; it wouldn't translate. 14:57:43 Robert -- Roman numbers were just find for counting things; mostly that's all they did. :) 14:57:49 er, s/find/fine 14:59:33 man... tricky tricky 15:00:09 I guess that's why they give these numbers to slaves and CS students. 15:00:20 To bang their heads against. 15:00:22 There's a difference? :) 15:00:44 I'm starting to think there isn't. After all this homework. 15:06:30 --- mode: ChanServ set +o crc 15:06:37 --- quit: virsys (Read error: 104 (Connection reset by peer)) 15:06:52 Imagine not having zero, either. Simple arithmetic would be an art form. 15:07:18 Yeah... 15:09:17 : radd ( total prev|0 new -- total prev|0 ) 15:09:17 over if 2dup < if swap - + 0 exit then then 15:09:17 r> + r> ; 15:09:17 : roman> 15:09:17 0 0 2swap ( n prev addr u ) 15:09:20 bounds ?do ( n prev ) 15:09:22 i c@ symbol>value ( n prev d ) 15:09:25 radd 15:09:27 loop drop ; 15:09:44 That looks like it doesn't have the 1/10th or 1/5th constraint. 15:10:04 no, it just says if the new digit is bigger 15:10:15 That would break reading ICM, for instance. 15:10:28 what's it supposed to do with that? 15:10:36 ICM would be parsed as 901 by a Roman. 15:10:46 And he'd cuff you upside the head and make you do it over as CMI. 15:10:53 I thought that was illegal 15:11:05 It is, but I want the routine to make the best possible sense of illegal input. 15:11:34 oh, well mine would give you 1099 15:12:04 It would. The hair in my definition comes from the machinations to be sure it's either 1/10th or 1/5th. 15:12:10 Needs better factoring though. 15:12:25 oh 15:13:01 would mine give the same results with ICM if you took out the "+ 0"? 15:13:03 IC isn't a valid string, because the system wasn't a simple 'lesser-symbol before greater-symbol is subtracted'. CM, IX, IV, LD, VL, XL -- these are all idiomatic sequences in a positional system. 15:13:22 Well, in a sort-of positional system. 15:14:22 too complex for a beginner 15:14:29 maybe better example to just print them 15:14:40 * JasonWoof hopes that is simpler... 15:15:14 Yes, maybe. Or at least to break it out better. Though the Roman library can be considered a black-box; my first thought was that the case statements in Duco.txt were confusing. 15:15:50 oh, sorry, I got sidetracked by the roman stuff 15:16:02 It's the more interesting part for sure :) 15:16:24 heh 15:17:43 well, I'm out of time 15:17:45 it's been fun chatting 15:20:27 Talk to you later. 15:38:58 hi crc, whats shaking? 15:39:22 not too much 15:39:53 updating the RetroForth/L4 demo disk a bit 15:40:44 crc, how are your opinions about ANS forth systems? 15:41:10 I'm not a big fan of ANS, but I do see it as useful 15:42:16 * crc notes that he and sproingie wrote a compatibility library for Retro that covers most of the CORE and a subset of other wordsets 15:42:56 personally I think it leds somehow to systems which aren't really comfortable to program. 15:45:34 when I compare retro and ANS I would say that the Implementors of ans forth smoke to much weed. 15:46:24 I'm really interested how you want to port your fine retroforth system to other platforms. 15:47:16 --- quit: tathi ("foo!") 16:12:03 crc, where do you run into problems covering the rest of CORE? Or did you choose not to do some of it? 16:15:39 I just haven't had the patience to fully implement it 16:15:47 what's the problems when a sequence of code depends on each other? 16:16:08 Oh ok. Thought maybe there was a fundamental difference in the design. Like how -- might have been Pygmy? : was a compiler loop itself. 16:16:22 Other than a few minor issues like pictured output (mine doesn't use double cells yet), there's just a few words left: 16:16:24 environment? 16:16:25 fm/mod 16:16:25 m* 16:16:25 j 16:16:25 sm/rem 16:16:26 u< 16:16:28 um* 16:16:30 um/mod 16:16:32 unloop 16:16:35 I can code around the differences easily enough 16:16:43 That's minor. 16:17:14 Nobody uses environment?, and a legal implementation just returns false. 16:17:14 A few things like >in also work differently, but will be fixed whenever I get around to it 16:17:33 ANS support isn't my main priority :) 16:17:34 cool 16:17:36 Rather, just returning false is a legal implementation. 16:17:46 The rest of them are a small matter of programming. :) 16:17:51 yeah 16:17:55 Right, re your priorities. 16:24:54 ans doesn't produce readable code, somehow most of it looks like a postfix C. Or what are your reasons that you don't like ANS crc? 16:45:59 crc, just trying retro for the first time. 16:46:20 Wanted to look at the ANS impl. Quick pointers on how to fire that up? I'm fumbling around a bit. 16:50:15 sproingie has the latest code; it's not in the repo yet 16:50:28 ./bin/rf 16:50:31 load lib/ans \ 16:50:31 Ah ok. crc -- just fooling around. The glossary lists 'until', but the interpreter doesn't accept it. 16:50:41 crc, I got that far, but it falls over at until. 16:50:48 ahh 16:50:57 So I thought maybe I was doing something wrong. 16:51:00 * crc needs to get the latest code checked into the repo soon 16:51:23 I'd like to try to finish your ANS layer. 16:51:35 sproingie's box isn't up right now :( 16:51:41 No rush. 16:51:44 ok 16:51:53 I'll try to get it up this week 16:52:15 Ok. If I can get the latest & greatest rf, and hopefully the most recent ANS work, I'd be happy to try to finish it up. 16:52:49 cool 16:53:23 Not trying to usurp any efforts, but at least my impl. might be useful to compare against. 16:53:30 yeah 16:53:57 I'm not sure if I got everything right (been comparing mostly with gforth as I go along) 16:54:19 I can confirm. 16:55:19 ' r alias i 16:55:23 doesn't seem to make a working 'i'. 16:55:31 ' doesn't recognize the macros 16:55:35 Ah. 16:55:40 How do I rename r? 16:55:57 " r" mfind alias i 16:56:02 in the macro dictionary 16:56:42 That also fails. 16:56:55 strange... 16:56:57 My test: : foo 5 for r . next ; 16:57:02 " r" mfind alias i 16:57:04 My test: : foo 5 for i . next ; 16:57:09 prints 0 0 0 0 0 16:58:28 odd, it's working for me :| 16:58:30 " r" mfind alias i 16:58:30 : immediate last dup @ dup @ last ! macro last @ over last ! swap ! forth drop ; 16:58:30 " r" mfind alias i 16:58:30 immediate 16:58:30 : foo 5 for i . next ; 16:58:31 foo 16:58:33 5 4 3 2 1 16:58:53 Likely because I didn't do that funky IMMEDIATE definition, eh? :) 16:58:58 no 16:59:04 I did that the second time aroung 16:59:07 *around 16:59:24 macro 16:59:31 " r" mfind alias i 16:59:32 forth 16:59:36 : foo 5 for i . next ; 16:59:48 Without the alias, the version of rf (windows) that I just downloaded moments ago fails. 16:59:49 I believe that my "for" is non-standard 16:59:53 sorry. Without the 'immediate'. 17:00:07 You can't have a non-standard FOR -- it's not in the Standard. 17:00:12 ahh, cool 17:00:21 Yours seems to fit the common-usage. 17:00:29 But as I say -- if I add in your IMMEDIATE, it works. If I don't, it doesn't. 17:00:50 The rf.exe binary has an 8/27/2005 date. 17:00:53 you did switch to the macro dictionary before defining the alias? 17:00:55 hmm 17:01:05 I did not switch to the macro dictionary, no. 17:01:06 try the nightly build (http://retro.tunes.org/nightly) 17:01:27 that might explain things... 17:01:43 Ok. So the sequence for aliasing a macro is macro " word" alias name 17:01:47 yes 17:01:49 Or 17:01:55 " word" alias name immediate 17:01:56 then "forth" to switch back to the forth dictionary 17:01:58 yup 17:02:00 with your immediate above. 17:02:10 Ok. Any way to automatically determine if a word is a macro or not? 17:03:46 not built in 17:04:00 you can do something like: 17:04:01 : type: wsparse mfind ?if ." macro!" cr ;; then find ?if ." forth" cr ;; then word? ; 17:04:30 Ok. Thanks. 17:06:40 some words have both macro and forth forms; the compiler will search the macro dictionary first 17:06:55 Right. I see that in the glossary. 17:07:43 :) 17:07:56 the word list in the glossary isn't quite in sync with 8.2 17:08:07 * crc needs to correct that in the near future 17:08:10 I'm not sure what version I have. 17:08:18 Try '?' 17:08:23 8.1 17:08:28 ok 17:08:47 * crc is pretty much done 8.2, but is still working on the library and documentation for it 17:08:55 version type coughs up "RetroForth" and a string of non-ascii chars 17:09:17 Source only from blocks? 17:09:21 no 17:09:24 load filename \ 17:09:25 load filename \f 17:09:31 \f to evaluate a file 17:09:52 Good. Command-line loading? 17:09:53 version is a constant 17:09:55 not yet 17:10:15 That will make testing annoying, but ok. 17:10:20 that might make it into 8.2 though 17:11:32 type filename.ext | rf 17:11:50 Completely borks under Windows. 17:11:55 hmm 17:12:02 Same as rf what version of windows? 17:12:11 Win2k. 17:12:55 hmm 17:12:58 it works in XP 17:13:05 Definitely not under 2K. 17:13:11 Not 8.1, anyway. 17:15:14 'type filename con: | rf' also works in XP, and lets me type into rf after the file is evaluated. Gives an error when rf exits though 17:15:31 * crc will look into the Win32 API a bit more to see why pipes aren't working right in 2k 17:16:12 That works here. 17:16:27 But on exit: The process tried to write to a nonexistent pipe. 17:16:56 yeah 17:17:01 I'll look into that 17:17:39 Plus when using the | as above, all carriage returns are doubled in rf. 17:23:38 Presently nearly 9000 lines of code in Quartus Forth, including comments. Comments run at 1:2.4 comment:code. 17:23:55 cool 17:24:06 * crc has less comments than that in his source 17:24:23 In fact I have more than that -- that's only counting lines that are only comments. Let me see... 17:24:56 the assembly part has numerous comments, but the forth part doesn't 17:25:29 rf/linux is all of 1261 lines currently 17:25:30 --- quit: virl (Read error: 104 (Connection reset by peer)) 17:26:47 It's closer to 1:1.2. 17:27:09 cool 17:27:44 rf/windows is about 2200 lines of code (mostly for the macros needed to build the import tables and such easily) 17:35:18 * Quartus nods 17:35:38 Quartus Forth has a similar number of lines of code in the basic system, before floats, turnkey generation, etc. are added in. 17:35:46 cool 17:46:07 * crc goes to bed now 17:46:09 goodnight 17:46:13 Take care. 17:49:54 --- join: sproingie (i=foobar@64-121-2-59.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 17:50:09 Hi sproingie. Sorry, wasn't here when you asked that q. last night. 17:50:49 np. found a pretty good paper on it 17:50:59 Any outstanding questions? 17:52:19 i didn't know catch/throw was done on openboot first 17:52:40 Mitch Bradley was on the ANS committee. 17:53:32 haven't tried the implementation ... not sure i can do sp! and rp! in retro 17:53:42 I've just been looking at retro. 17:53:44 Talking to crc about it. 17:54:31 though i've been rumbling about wanting to save all the stacks with one operator anyway 17:54:42 since that's more or less a continuation 17:54:58 How do you implement the data stack that it doesn't have an SP? 17:55:16 it does have one. i just don't know that you can go moving it around 17:55:26 Circular stack? 17:55:54 nothing that complex 17:56:06 Cached TOS? 17:56:10 hardwired offset pointint to stack bottom more likely 17:56:21 and return stack is the hardware stack 17:56:39 Same in Quartus Forth. Why would that make sp unable to be saved/reset? 17:56:45 not impossible, but might take some asm to implement 17:56:52 the data stack would be pretty easy 17:56:57 the return stack might take some asm 17:57:00 There's no return-stack pointer? 17:57:13 should be ESP 17:57:18 Then you're set. 17:57:54 probably. just a matter of actually implementing it. i can't for the life of me write asm in hex like crc does 17:58:05 so i'd probably have to do it with fasm 17:58:13 Neither can I. I'd expect you'd want to add it into the core. 17:58:18 So, fasm. 18:00:49 havent looked at the code in months, so i can't remember exactly 18:03:09 ah right, ESI is the data stack, and TOS is in EAX 18:03:36 That means when your read SP, you have to first flush EAX to memory, and load it back up when you set SP. 18:03:49 easy enough 18:03:54 it's the return stack i can never remember 18:04:38 unfortunately, the obvious words to find this out all use that bloody hardwired hex asm 18:04:42 I was immediately struck by the complexity of the macro-wordlist setup. 18:04:45 : >r $ad50 2, ; 18:04:53 : r> c: dup $58 1, ; 18:04:58 sproingie -- yeah, I have no love for hex-coded machine instructions. 18:07:40 hardware stack is managed largely by instructions, like RET ... i don't exactly know how to get at it 18:07:51 i'm rather a novice at asm 18:07:53 Can be done, i assure you. 18:14:20 There. 1300 LOC in Quartus Forth, with only the CORE system. Comments ratio 1:2 (comments:code). 18:15:30 With all the extras it's ~ 6500 LOC, comments ratio 1:1.2. Both LOC numbers are code-only, without comments. 18:15:50 I'm not sure what use that metric is, but there it is anyway. :) 18:17:18 I offerred to crc to try and round out your ANS compat. layer. Not to take away from anything that's being done, of course. 18:18:19 oh i'm not doing much with ANS anyway, just collecting implementations 18:19:09 might be useful once there's enough to really port some stuff, but it's not there yet 18:19:32 I wouldn't mind trying my hand at the missing spots, it would give me a reason to get to know retro. 18:19:51 hm, r>'s mysterious opcode is POP, so again with the hardware stack ops 18:20:10 can't figure out what it's doing with dup tho 18:20:10 There's a stack pointer, though. 18:20:18 is that ESP? 18:20:23 I believe so. 18:25:06 * sproingie looks at the intel manuals. indeed esp 18:25:30 not sure how i know when i've hit the bottom of the stack tho 18:25:47 You don't know, usually, with the return stack, and it's not important. 18:26:14 i do if i'm copying the stack, don't I? 18:26:18 You're not! 18:26:23 Not for CATCH/THROW. 18:26:52 i guess i don't need to copy the stack unless i want downward continuations 18:27:07 upward like catch/throw i just need the stack pointer, right? 18:27:12 Believe me, CATCH/THROW don't either a) need or b) want you to copy the stack. That'd be horribly cumbersome. 18:27:12 Yes. 18:27:20 Just the pointers, the current context. 18:27:28 Not the entire context, just the pointers to it. 18:27:56 eventually i want downward continuations. i guess i can just squirrel away the initial value of ESP at start time 18:28:12 Right, save it in r0, for instance. Like s0. 18:28:17 I deciphered DUP in retro: 18:28:17 ( $EAD2E0 ) mov dword ptr FC [esi] , eax \ $89 $46 $FC 18:28:17 ( $EAD2E3 ) lea esi , dword ptr FC [esi] \ $8D $76 $FC 18:28:29 the FC there is actually -4. 18:29:07 eax (retro's cached TOS) is flushed to the stack, and the data stack pointer is decremented. 18:31:38 there is no s0 :p 18:31:40 gotta fix that 18:31:59 There is, in the .asm source. 18:32:05 It's not a word, though. 18:32:16 odd that he never exposed it 18:32:51 Thus far rf can't read a file passed as an argument on the command line, either -- I'm guessing it's still early days? 18:33:34 it will do stdin though 18:33:42 so you can pipe into rf 18:33:44 Not under Win2k. 18:35:38 crc gave me an alternate syntax using con:, but it coughs up an error on exit and does something horrible to the pipes in the cmd session -- I had to close it and open another one. 18:38:09 --- join: amca (n=plump@as-bri-3-62.ozonline.com.au) joined #forth 18:38:29 Hi amca. 18:39:43 Gday Quartus ! 18:39:47 How are you? 18:39:51 And hi, amca. 18:39:58 Fine, thanks. You? 18:40:37 Hi Rob. I wish you would staop following me around. I can undertand you wanting to be my adoring servant, but really, you'll make other ppl nervous. :P 18:40:42 Good and getting better :) 18:41:29 I like stalking people. 18:41:40 Do you think two channels is bad? 18:41:43 Quartus: What have you been up to? 18:41:53 lol 18:41:55 Some people have had to deal with me in five or six different ones. 18:42:12 amca, I can't remember if you saw the Quartus Forth vs. C comparison. 18:42:14 Im in #gooeylinux and ##c if you wanna show me more devoltion :P 18:42:46 You told me about it, but you were still trying to decide what you were gonna do for it 18:42:52 I tend to avoid the C channel, unless I have very specific questions. 18:43:18 "What is a pointer?" 18:43:19 :) 18:43:28 http://quartus.net/forth, it's linked from there. 18:43:34 cool. 18:43:38 * amca look-sees 18:43:40 Heh 18:45:56 Quartus: When I looked at the site last time, it looked a lot clearer, less cluttered and more professional. 18:46:10 And it still is of course. I think it is a good improvement 18:46:24 Ah, I was about to ask if it still was :) Yes, I wire-brushed it a bit. Thanks. 18:47:12 Might do with a little more whitespace to relax the eyes, but otherwise looks good 18:47:47 Whitespace on what page(s)? 18:47:50 I tend to have more minimal-elegance preferences than buzy "blink blink, look at me" preferences 18:48:03 http://quartus.net/products/forth/ 18:48:18 So Im not saying my opinion is objective on the looks matter 18:48:30 I prefer the minimal myself. 18:48:40 I like to keep as much info as possible 'above the fold', as it were. 18:48:55 * amca nods 18:48:56 yeah 18:49:30 Perhaps the animation is new to you too. I can't remember, sorry :) 18:49:44 Animation? Didnt notice one 18:49:48 the animation isn't animating for me anymore 18:49:55 it's stuck on the last "that's it" frame 18:50:04 sproingie, maybe you have your gif animations set to not repeat? 18:50:15 nope, i dont 18:50:20 ohhh 18:50:25 i just installed privoxy 18:50:36 stupid thing probably alters gifs 18:50:46 ah. Amca, maybe you've disabled gif animations? The one I'm talking about is in the "A quick demonstration" over to the right. 18:51:13 yep, it was privoxy 18:51:17 Ah. I thought you meant the pic on the link. Ill watch the anim 18:51:22 With the comparison, you might want to mention that you would have to edit and compile the C code on a desktop, whereas you can edit and write your forth code on the actual Palm? 18:51:36 Good thought. 18:52:39 i think it's already clear to anyone who actually writes anything for the palm 18:52:46 "A fully functional Palm development that actually fits in your Palm." 18:52:50 yeah 18:52:51 since the animation shows it being developed on a palm 18:53:02 But you may like to remind them ;) 18:54:10 it's the first feature bullet point 18:54:21 >>> Write source code in the Memo Pad (or optionally in Doc-format files), and compile your code instantly into fast, genuine native-code Palm applications (PRCs) right on-board your Palm OS handheld device. 18:54:27 I threw a sentence in the side-by-site. You never know what page a new customer will land on first. 18:54:34 er s/site/side 18:55:41 sproingie: no on the comparison page 18:55:46 no = not 18:55:58 true 18:57:42 Animation working, amca? 18:57:49 yep 18:58:05 It was loading when I first saw the pic, so I didnt realise it was an anim 18:58:12 Careful, it's hypnotic. :) 18:58:27 must ..... buy ..... quartus ..... forth 18:58:42 You can see the subliminals! oh no! 18:59:03 must ..... kill ...... bjarne ..... stroustrup 18:59:24 One problem I have with the anim - when I try to click on the gif to do my own Forth coding, it doesnt work... :P 18:59:33 heh 19:00:20 amca, the other new thing is this: http://quartus.net/products/duco/index.shtml 19:00:38 It's the complete sources to a sample app, I'm not really happy with the way Duco.txt is factored, though. It's old and could do with a re-write. 19:00:39 * amca looks 19:01:40 roman numbers, cool 19:01:48 What does duco do? 19:01:48 have you seen perligata? it's a hoot 19:01:56 No, what is it? 19:02:13 found it 19:02:14 http://www.csse.monash.edu.au/~damian/papers/HTML/Perligata.html 19:03:11 Quartus: Can I ask why there isnt a brief comment at the start of the Duco code saying what it does? 19:03:38 I'm still building the page. 19:04:40 I'll toss up a sentence and a screenshot, hang on 19:04:45 I would have thought it would be one of the first things in the code ;) 19:04:58 Should be! 19:05:37 Not that I do that all the time... >.> 19:07:54 I added a comment, working on the screenshot now 19:09:00 * amca nods 19:10:15 ok, reload. 19:10:45 k 19:11:07 Cool :) 19:11:11 Pretty too :D 19:11:33 Just going to replace that screenshot, one sec 19:11:42 k 19:13:36 done 19:13:42 :O 19:13:49 It has a cheat deature! 19:13:56 (feature) 19:14:22 It sort of does. :) 19:14:30 Absolutely *love* the concept/app. 19:14:48 I had one user write to me desperately wanting to be able to put decimal numbers in there so they could be converted. I encouraged him to make the change himself. 19:14:57 Did he? 19:15:14 So long ago. I think so. 19:15:28 hehe 19:18:43 JasonWoof found the stack juggling I was previously doing in roman> too complex, so I've factored it out. 19:19:20 cool 19:31:04 eureka!. 19:31:24 Raystm2: Eureka? 19:31:42 Hello, Ray, BTW :) 19:31:51 "Watson! Come here, at once! I spilled some acid on my pants and invented the cell phone plan". 19:32:12 hi amca :) 19:32:32 I've got timed delayed execution now in my Glypher robot ap :) 19:32:33 lol 19:33:42 And Quartus will be happy to learn it's a proper one, with out a "burn-out-the-chip-in-loop-acrobatics" kinda thing. 19:34:14 I am. 19:35:17 Raystm2: As in a busy/idle loop thing? 19:35:26 Busy wait/idle loop 19:35:44 crc gave me a way to use the Sleep kernel function, and then I figured that I wasn't refreshing the display . 19:35:57 Yes Quartus, no busy/idle. 19:36:38 as it turns out, the environs author was tinkering with multi-tasking , and I used a word that he left in. 19:36:43 I was refresh :) 19:36:51 took me days. :) 19:36:55 I'm a fool :) 19:37:01 but I did it :) 19:37:07 lol 19:37:24 I was refresh = It was refresh? 19:37:34 it yes yikes 19:37:45 It was refreshing 19:37:56 well, it is now. 19:38:21 Oh :) 19:38:48 This weekend i'll do the applications and the demos and and and . and then it'll be allllllllll done. 19:39:09 Very good. 19:39:18 Quartus: I just added '\ A character look-up table data structure.' to the forth code Ive been working on >.> 19:39:38 Oh yes? 19:40:17 hehe 19:41:09 roman.txt there uses a simple one. 19:41:10 Im dividing the app into two files - one a generic char lookup table, and the other, the IBM>Win lookup table that uses the generic one 19:43:17 amca: whatcha makin? 19:43:18 Sounds like a good plan. 19:43:43 \ Creates a character lookup table for converting the 19:43:44 \ IBM866 MSDOS Russian codepage to the WIN1251 Windows 19:43:44 \ Russian codepage. 19:44:03 JasonWoof: Does that explain it enough or does it need more info? 19:44:28 translating text encodings for russian text? 19:44:44 Da. 19:44:55 * amca nods 19:46:37 fancy 19:47:21 The generic table was easier to do than I thought :) 19:47:53 I think it's a good project to work out some basics, for sure. 19:48:16 * amca nods 19:48:30 And Ive been learning a lot about the mindset for Forth coding too 19:49:12 JasonWoof: http://rafb.net/paste/results/J8QI1Q40.html 19:50:19 cool 19:50:26 the mindset is where most of the gold is 19:50:36 the language just lets you use it :) 19:52:03 * amca nods 19:52:41 Someone (Djikstra?) said a coding lang should affect/does affect the way you think about/approach coding. 19:52:54 * amca shows everyone how to mangle a quote 19:56:27 yeah 19:56:46 you can force your coding style on a language that doesn't do it well... 19:56:54 but generally the language effects your style a lot 19:57:11 hehe 19:57:26 Yeah. Ive seen C++ code by Basic coders. All gotos :) 19:57:58 heh 19:58:23 one of the main advantages of learning a new language, is getting far enough into it that you learn now methods 19:58:31 And Fortran code is all variable assignments. 19:58:32 new ways of thinking about, designing, and implementing stuff 19:58:44 JasonWoof, I refactored that roman> code. 19:59:12 Quartus: As in in Fortran, everything is an expression/no statements? 20:00:29 Quartus: glad to hear it :) 20:00:57 amca, Fortran has statements, but the code is variable-heavy. 20:01:35 Quartus: As opposed to how in other langs? 20:01:43 C is pretty var heavy too isnt it? 20:06:02 amca, it certainly can be. 20:06:14 Sorry, was in another window. 20:06:57 :) 20:07:12 All infix langs have to be I think 20:09:01 You could do a great deal of work in C without much reliance on variables, if you chose to. But it's not common. 20:09:46 Quartus: If you treat it as a functional lang? 20:10:20 Right. Of course function parameters are a kind of variable too. 20:11:51 In Fortran, can you have an expression as a function parameter? They are not re-entrant arent they in fortran? 20:12:07 When I think of heavy variable use in Fortran and C, though, I'm thinking of globals (or what C calls globals -- variables with file scope, I guess it is.) 20:12:39 amca, what little Fortran I've done is not recent. :) 20:15:41 Ah, I see 20:16:39 I can read it without too much trouble, but I don't know its limitations and eccentricities too well anymore. 20:17:09 yep :) Dont remember all the dark corners of Fortran. ;) 20:55:09 --- join: snoopy_16 (i=snoopy_1@dsl-084-058-141-126.arcor-ip.net) joined #forth 21:02:13 --- quit: sproingie (Remote closed the connection) 21:12:04 Quartus: What are you working on currently? 21:15:53 --- quit: Snoopy42 (Read error: 110 (Connection timed out)) 21:16:05 --- nick: snoopy_16 -> Snoopy42 21:20:26 Well I must be off 21:20:30 Catch ye all later 21:20:34 --- quit: amca ("d34d") 22:19:31 --- quit: JasonWoof ("off to bed") 23:59:59 --- log: ended forth/05.09.29