00:00:00 --- log: started forth/05.09.13 01:44:36 --- join: amca (n=plump@as-bri-3-27.ozonline.com.au) joined #forth 02:50:06 --- quit: amca ("d34d") 03:59:25 --- join: docl_ (n=docl@170-215-65-25.bras01.mcl.id.frontiernet.net) joined #forth 04:00:47 --- quit: docl (Read error: 113 (No route to host)) 05:13:34 --- quit: Pepe_Le_Off (Read error: 110 (Connection timed out)) 05:17:56 --- join: Pepe_Le_Off (n=User@201008242045.user.veloxzone.com.br) joined #forth 05:18:19 --- join: aardvarx (n=folajimi@shell3.sea5.speakeasy.net) joined #forth 05:38:26 --- nick: Raystm2 -> nanstm 06:11:11 --- join: PoppaVic (n=pete@0-1pool67-51.nas22.chicago4.il.us.da.qwest.net) joined #forth 06:11:57 Mornin' 06:14:27 Morning 06:14:42 Morning as in morning the dead. 06:15:05 * aardvarx does queries for zombies... 06:15:21 yeah, well - it may pick up 06:16:11 * Ray_work eats a cheese/berry danish, knowing that it will pick up. :) 06:16:52 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 06:17:52 Morning. 06:18:04 How are you today? 06:18:09 Find thanks, you? 06:18:13 s/d/e 06:18:23 workin' on that first mug of coffee ;-) 06:18:40 still brewing mine 06:19:25 I'm in that mode: "Please god - get both my eyes workin' at once" ;-) 06:20:19 Where did we leave off yesterday, Q? if we want to resume the discussion? 06:20:59 oh.. preprocessor.. immediate.. OK. 06:21:08 A few things about that. 06:21:15 ok. 06:21:29 First, PoppaVic, you need to understand two things: 06:21:43 * PoppaVic listens 06:21:57 1. I (and I think Quartus) are *willing* to help. 06:22:08 Assuredly aware of this 06:22:20 (well, I can only speak for myself, but I think Quartus is available) 06:22:31 even discussion is usually a "help" 06:23:01 Lotsa' "painting into te corner" occurs on something this large 06:23:09 te/the 06:23:20 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 06:23:28 2. We are unclear about your ideas; Quartus believes you might have some great ideas, but they need to be 'fleshed out' 06:23:29 mornin', tathi ;-) 06:23:48 aardvarx: I dunno' "great", but I again agree. 06:24:31 ..and every time I think of writing some sort of overview, I get drawn back to glaring at the headers and vm-stuff. 06:25:14 Because of this, I have to presume that some of the ideas are still churning around and unresolved or I lack the terms I'd prefer to use. 06:25:18 (Indulge me. I think you might have some "great" ideas.) As a result of the second point, I (and perhaps Quartus) are willing to be patient to figure out what you are trying to do, but you have to meet us halfway. 06:25:33 Scratch that last part. 06:25:38 Hey, I'm tryin' 06:26:23 Fair enough. Nevertheless, you *MUST* meet us halfway. That means no outbursts, no name-calling, none of that. 06:26:26 I think one of the most irksome things of late is I keep reaching for a pen and paper to sketch lil' pictures, and have no way to do as well in a doc-type 06:26:29 Hi all 06:26:53 aardvarx: I'm generally too old for "all of that" ;-) 06:26:59 hi tathi 06:27:24 Well, you were brandishing a "chair" yesterday over the issue of stacks... 06:27:35 oh, hell man - tis a joke.. 06:27:42 I know, I know. 06:28:05 You were perceptive enough to know when you need a break. 06:28:11 Ever since I saw "Shrek", I keep a chair handy ;-) 06:28:13 I'll give you credit for that. 06:29:02 PoppaVic: aardvarx & Quartus are trying to tell you that you don't speak clearly enough to communicate your ideas, so they are unsure if your ideas are SHIT or GOOD 06:29:02 Well, yesterday we got to a point where we had several questions working and I was, frankly, getting quite lost. 06:29:30 thinfu: yes, I got that - tech-writing is not that difficult. ;-) 06:29:35 Well, we'll work on that. 06:29:47 I'm decent at Technical Writing. 06:30:04 communicating ideas clearly is actually pretty difficult.. especially when they're complex 06:30:10 I enjoyed TW, but getting the courses was a waste of time. 06:30:26 thinfu, truer words have never been spoken :) 06:30:47 yes, so you try to stick to - essentially - HS english. 06:31:06 thinfu: plus, some ideas damn nearly need a sketch. 06:31:28 well use ms paint or something ;P 06:31:35 hehe "ewww" 06:32:00 dia 06:32:49 I've never really seen a decently simple cad-like sketcher. I always wondered why that was so... Because once, for DOS, I had the neatest little program called "ModelCAD" 06:33:10 Bottom line, it seems Quartus is a very fine resource on the subject matter; perhaps more knowledgeable about the subject matter than both of us combined (well, mostly you.) 06:33:12 ANyway, that leads us out of the field. 06:33:43 I've no doubt that several folks herein are far more current on general engines and such. 06:34:09 As long as you are open to *constructive* criticism, I think your idea will get a fair shake. 06:34:16 --- quit: snowrichard ("Leaving") 06:34:33 I'm new here (and to Forth,) so I could be wrong... 06:34:40 It has so far. I dunno' if it will GO anywhere, but hell... It's worth the attempt. 06:34:54 Hey. I was away from the screen. I don't claim any particular expertise; I've just been trying (largely unsuccessfully) to understand what PoppaVic is a) unhappy with and b) proposes as a solution. 06:35:28 Quartus, I hope I did not attribute anything to you that was inaccurate. 06:35:52 well, hmm... That's pretty much what the whole headers-thing is about. Not sure where it leads, but it does suggest a few things. 06:35:53 Only your estimation of my expertise. 06:36:29 I guess that's all from me. 06:36:45 * aardvarx steps out of the way for Quartus & PoppaVic ... 06:36:52 'In a universe far, far away...' 06:36:54 and, as we discussed a few weeks ago... There is some sorta' perverse use of 'immediate' and vocs in colorforth.. This sorta' piqued my imagination. 06:37:48 is there. ah yes cyan words and the 2-piece dictionary. 06:38:07 Colorforth is, to my eyes, minimalism taken to an absurd extreme. 06:38:13 yes 06:38:34 How about RetroForth... any thoughts? 06:38:48 Pretty much, it seems like 'immediate' words have 2 serious implications: they can extend the interpreter, or extend the compiler. Granted the former isnot TRULY a "preprocessor", but boy.. It has many (better) similarities. 06:38:58 I haven't used it, aardvarx; I've added it to my list of things to have a look at. 06:39:11 Okay. 06:39:25 retroforth is the coolest 06:39:29 I never built or ran reforth. I downloaded it, but I've got an awful lot of open tarballs to glare at already. 06:39:45 iirc, reforth is x86, too 06:40:06 And, from what I've seen, not standard in any way, correct? 06:40:16 not sure. 06:40:33 but "standard" and "forth" never really grabbed my interest. 06:40:42 Retroforth strives to provide words that are as close to ans as possible. 06:41:13 but it is not an ans project per se. 06:41:48 WIthout standardization you can't share source, PoppaVic, and that's a significant loss. 06:42:05 I agree, but I've never much appreciated the ANS stuff. 06:42:21 Perhaps you can outline your reasons? 06:43:32 well, I have the std around... Bought it years ago. I never liked their stack-notations, organization for words, and mixing of ideas. I always got the feeling they had an idea, and then committee's beat it to an ignominious death. 06:44:03 --- quit: OrngeTid1 (Read error: 110 (Connection timed out)) 06:44:13 One of the things I've been staring at in the headers for the last few days is the Dictionary idea. 06:44:54 I'm pretty sure that it's really not key to the vm. It seems most likely to be built ABOVE the vm and distinct from it. 06:45:59 About the only thing "common" would be in the 'words' you'd need to work with the dict - or, as gforth adds "wordlists" 06:46:03 I followed the Standard from the first BASIS documents all the way through. They not only had an idea, they adhered to it closely and did a remarkable job. 06:47:18 Maybe I should review it again.. I did review my F-pc tech-docs, (Ting is a decent writer). 06:48:40 However, I still believe ANS is overkill. Not sure why that thought keeps surfacing, but it appears a memory from the time I bought the std and compared it to old docs/books and F.Dimensions issues. 06:49:42 At least two goals they achieved: 1) To eliminate dependency on an implementation method, while enabling any implementation method; b) to codify common practice while not stepping on names that were in conflicting use. 06:49:59 Part of the reason I live in C is because it's as close as I usually care to approach "assembler". And, I want the vm written in C to maximize platform-reach. 06:50:45 Yeah, I remember they really did bust a gut on keeping data in anonymous, non-binary target-form. 06:50:57 Perhaps the Standard seems to be overkill because it's written so carefully. Ting's F-PC manual leaves a lot of the description of a word to the source of the actual implementation. 06:51:42 could be. referencing f-pc while tinkering with gforth and checking other forths and against C does tend to leave you a bit winded ;-) 06:52:15 yeah, I like that the standard specifies things carefully. 06:52:23 So many "standards" leave so much stuff out. 06:52:47 Yeah. Or they make an assumption that ends up ruining yer life 06:52:58 Do these standards exist just to ensure portability? 06:53:14 A minimal Standard system needs CORE, which is 133 words. About 70 of those I'd want to have in the kernel; the rest could easily be source. So it has the potential to be a very small Forth. 06:53:28 ANS, near as I can recall was so damn machine-neutral it hurt. 06:53:37 Quartus, did you just say 'kernel'? 06:53:40 right. 06:53:53 aardvarx, yes. And to free the implementor to use any methods that work. The Standard has given rise to some very fast, modern Forth systems. 06:53:55 they consider the core/kernal/image 06:53:59 aardvarx, yes. 06:54:20 Not as in OS/kernel then, right? 06:54:26 No, as in the Forth kernel. 06:54:37 Okay. 06:54:37 parallel to systems, they call it the 'kernel' as in "must have to work" 06:54:48 Now I understand. 06:54:53 ok 06:54:56 The kernel is the part of the Forth system that's there when you fire it up. 06:54:56 "Bare necessities" 06:55:17 yeah, even gforth has some crazy 'kernel' - that can load images 06:55:19 Yes, those words that are implemented as primitives. 06:55:38 EMIT, SPACE, etc. 06:55:44 umm 06:55:46 Neither of those, actually. 06:55:53 Okay. 06:55:56 yeah, those are almost options 06:56:00 EMIT can easily be implemented in terms of TYPE; SPACE in terms of EMIT. 06:56:21 But TYPE, yes. DUP. DROP. etc. 06:56:30 and all can be a bios-call, or a C-call, or - well, yeah: "optional" 06:56:36 Understood. 06:56:40 yahh 06:56:45 Even the stack primitives can be implemented in terms of ! and @, though I consider that too minimalistic to be practical. 06:56:54 the gymnastics and store/fetch stuff is pretty much core 06:57:09 as would be branching and such 06:57:16 Clear. Forgive the interruption. Carry on. 06:57:42 oh, my no - not an interruption. It's waking memories, and never hurts. 06:58:01 So a kernel of 70-odd words, with another 60 or so in source. 06:58:18 yeah, minimalist. 06:58:42 Not enough to bring bare metal to life, I presume. 06:58:48 I'll dig out that ANS doc today. I guess a re-review is in order 06:58:49 Why not? 06:59:03 aardvarx, why not? 06:59:16 aardvarx: it depends on what you mean by that 06:59:35 I figured that the BIOS call would need more than that. 06:59:47 I'm not sure I follow. 06:59:59 I'm sorry. Let me try again. 07:00:12 calling on a BIOS or C or whatever would be an implementation-option. 07:00:36 brb - nature screams 07:00:41 What would be the proper name for the first stage of the FreeBSD boot process? 07:01:02 I'm not sure it has a proper name. 07:01:27 I understand that it is pure Forth. Is that right? 07:01:37 I haven't seen the sources. 07:01:55 To launch a Forth you need perhaps 500 bytes of code to establish the VM. 07:02:53 You can achieve that in 100 words or less? 07:03:04 by words, you mean ... ? 07:03:34 You mentioned earlier that the kernel has 70+ words... 07:03:59 and another 60+ in source. 07:04:20 (Not to interrupt this, but to finish my above train of thought about the Standard: it has 371 definitions, half a dozen of which are redefinitions of another word, another half a dozen that are marked obsolescent. Floating-point, which is optional, is 72 words of the remainder; BLOCKS are 14. So it's not a large system even fully-loaded.) 07:05:16 Yes. To set up the stacks, stack pointers, and other minor VM initialization takes about 500 bytes of code; the kernel might be 4K. I don't know enough about the FreeBSD boot process to comment on whether it's a real Forth. 07:05:53 That's a shame. I was going to visit the FIG site to verify. 07:06:05 What's a shame? 07:06:26 I can't verify if the boot process is Forth. 07:06:57 I guess it would help if was using the correct term! :) 07:07:00 I just dug it up. It looks to be Forth, all right. 07:07:10 I just noticed I was searching for Forge. 07:08:46 ok, back 07:09:28 Looks like it's OpenBoot. 07:09:41 Here we go: 07:09:41 hmm.. I found my old f-83 std, maybe I downloaded ans at one pt. 07:09:45 http://en.wikipedia.org/wiki/Forth_programming_language#Overview 07:09:50 http://quartus.net/dpans 07:09:58 ahhhh thanks 07:10:04 It's in PDF form at http://quartus.net/files/PalmOS/Forth/Docs 07:10:11 thanks 07:11:04 aardvarx, OpenBoot is an F83 implementation. 07:11:42 * aardvarx remembers a co-worker who used to make fun of Sun's boot loader. 07:12:02 Every response came back with "Ok." 07:12:24 I'd be trying to forget that co-worker. 07:12:45 ahh, I remember this doc better now.. I wrote code to rape it for use w/i 'commonForth' 07:13:38 PoppaVic, I think you meant "wrap" :) 07:14:07 nah, I raped the html to strip out the text-name, symbol-name, and stack-comments. 07:14:35 aardvarx, if it matters the terminology they use, I've found it. The first 256 bytes they call the 'biosboot'; its function is to load the 'boot' program, which is OpenBoot. 07:15:59 I'm guessing this is the "kernel" you speak of? 07:16:40 Looks like OpenBoot is the boot program, and it's and F83-model Forth with extensions. 07:17:07 s/and/an 07:17:55 think of it as a "turnkey" 07:18:31 they needed a tool, walloped one out in forth, and plugged it into place. 07:18:44 Ah. 07:19:06 Well, it has a nicer history than that. It's Mitch Bradley's baby, he brought it to life. It's a fancy system. 07:19:07 it only saved - in the 'turnkey' - that which was required to do the job. 07:19:34 In fact OpenBoot isn't a turnkey. It's a full, interactive Forth. 07:19:36 Quartus: sure, several ways to approach it. But the image/job is a decent way to view it. 07:19:45 I'm guessing this has nothing to do with the "kernel" as I understand it; I am more comfortable with the term CORE. 07:20:11 At least for the context in which Quartus was talking earlier. 07:20:27 aardvarx, CORE is a word set in the Standard, defining 133 words. Not all of those have to be implemented in machine language; some may be provided as source. Those that are provided in machine language are generally referred to as the 'kernel'. 07:20:28 well, anything that interprets has some sort of core/kernel - as long as you recall the lovely terms bandied about ;-) 07:21:05 What is the rate at which terms are made obsolete? 07:21:34 Just curious, is all. 07:21:44 What's the obsolete term you're referring to? 07:21:58 I prefer to think of it as a complete-vm: it should have all the code and structs needed to do the job.. any job. It may require an input-interpreter or not. 07:22:31 Quartus, I don't have any in mind; it's just that you mentioned that there are a dozen or so terms in the STANDARD that are obsolete... 07:23:08 Oh. Forth words. Not quickly. There's a few in the Standard that, in '94, were provided as concessions to existing implementations. All their functionality is provided via other Standard words. 07:23:08 I think a lot of terms just get renamed or twisted 07:23:28 oh... legacy-words 07:23:40 Okay. So, it's not "here today, gone tomorrow" :) 07:24:10 CONVERT, QUERY, EXPECT, #TIB, TIB. FORGET is antiquated, though not marked obsolescent as such I don't think. QUIT has no practical purpose. 07:24:35 stdref.pdf is cute 07:24:38 SPAN. I think that's the lot. 07:24:42 PoppaVic, thanks. That's new. 07:24:51 I don't think QUIT works anymore; at least not in gforth... 07:24:56 It should. 07:25:00 it better 07:25:16 it's generally the outer-loop 07:25:19 For some reason ABORT doesn't clear the stack in gforth. 07:25:41 I think they document that possibility 07:25:44 I take that back; QUIT still exists. 07:26:18 dang, I'll have to plug in and crank my printer for that little crib-sheet ;-) 07:26:52 I certainly don't like the i/o stuff jammed into CORE, though. 07:27:09 Quartus, you've got your own website! 07:27:17 How hardcore is that! :) 07:27:17 And my own Forth. 07:27:25 Ha! 07:27:28 Solid! 07:27:29 and, I freely admit, I never liked the # #> stuff at all 07:28:16 Really? I like them a lot. But you could put them in source and forget 'em. 07:28:24 ABORT clearly says "Empty the data stack". 07:28:31 And QUIT calls ABORT. 07:28:39 hmm, no note on page? What version is that? 07:28:51 That explains the stack underflow I got! :P 07:29:06 http://quartus.net/dpans/dpans6.htm#6.1.0670 07:29:27 My gforth is 0.6.2. 07:29:36 no, I meant the abort - ahhhh... mine is 0.5.0 07:30:23 hmm in 0.5.0 abort works properly 07:30:26 Here's what I'm seeing. 07:30:28 3 5 7 abort 07:30:31 that clears the stack. 07:30:32 3 5 7 07:30:32 quit 07:30:35 That doesn't clear the stack. 07:30:41 Subsequent ABORTs don't either. 07:31:00 A moot point; QUIT is not useful. 07:31:05 ahhh 07:31:26 It looks like a bug, but I can't fault them for not testing QUIT. 07:31:34 I can ;-) 07:31:42 It's minor. 07:31:49 At any rate, it's going out the door, right? 07:31:51 they reset rp, but forgot sp 07:32:04 aardvarx, it's not marked obsolescent, so no. But I've yet to see code using it. 07:32:28 ABORT resets sp in gforth, but QUIT must do something incorrect to the exception stack frame. 07:32:45 yeah, so I would suspect 07:33:01 aardvarx, you mission is to get a Palm OS device so you can buy Quartus Forth. :) I need the sales. 07:33:45 Ha! 07:33:54 I re-implemented [if] [else] and [then] last night for Quartus Forth. 07:34:18 The new [if] disables the interpreter's FIND so it can't see anything but [if] [else] and [then]. 07:34:40 these are for compiling or conditional-compile? 07:34:41 Everything else is a noop. 07:34:55 Those are for conditional-compilation, the TOOLS EXT Standard words. 07:35:00 right 07:39:18 PoppaVic, according to your earlier statements, the complete vm should have the tools to do "any job"; isn't that asking a tad too much? 07:39:47 Has to be Turing-complete, anyway, or you're painted into a corner. 07:40:22 not really. I mean branching and stepping and fetch/store, etc. Plus whatever code jor "job" needs 07:41:02 near as I can tell, a whole lot of code is really just for stepping thru 'compiled' code and gymnastics and mem-access 07:42:13 This is one of reasons the opsets.h file has been pestering me. 07:42:32 Quartus, from what I can tell, 'turing-completeness' is no small feat. 07:43:43 I'm using it in the 'small-t' sense. A kernel without @, for instance, wouldn't work. 07:43:55 Gotcha. 07:44:21 hmm 07:44:41 well, the internal code may not care, but compiled-code sure would. 07:45:01 A machine, or virtual machine, that can't read its own memory is going to be a pretty dull toy. 07:45:08 heh. 07:46:33 lol 07:47:17 bbs - gotta' take back some cans. 07:47:18 --- quit: PoppaVic ("Pulls the pin...") 07:47:40 I forgot to ask about the wiki! 07:47:51 Which one? 07:48:03 The one you suggest for his ideas. 07:48:17 I don't know if he has a code repository set-up. 07:48:17 Oh. Yes. There are a number of available ones. 07:49:34 I know he has posted some code at ratb or rafb, or something. 07:50:15 It's good that he's willing to revisit the Standard. Talking about portability and not being extremely familiar with the single greatest effort the Forth community has ever made in that direction is an error. 07:52:03 Mitch Bradley, the Open Firmware guy, was on the Standard committee. 07:52:44 I'm glad to hear that too. 07:52:51 Too bad everybody is dropping Open Firmware now :( 07:52:57 ? 07:53:00 Well, the personal computer market anyway. 07:53:10 What is Open Firmware? 07:53:17 That doesn't invalidate it; it had a long run and is still useful. 07:54:18 Open Firmware is a standard for boot firmware (kind of like a BIOS), only including a full Forth interpreter and whatnot. 07:54:48 Quartus: yeah, but I was hoping that *more* people would adopt it, instead of Apple deciding to stop using it. 07:55:09 Oh well... 07:55:43 Apple appears to be trying out various new, um, strategies. 07:55:49 lol 07:56:08 You mean the x86 thing? 07:56:33 That, for sure. The whole 'iPod for every sentient being' thing. 07:56:37 Or that they're making all their money off the iPod and selling music now? 07:56:41 Ah. 07:57:10 I guess there is still PegasosPPC (for now.) 07:57:20 Right, I think the upper eschelons are drunk on iPod money and have left the computing division unsupervised. 07:58:05 lol 07:58:23 Remember HP? They used to be a computer company too. 07:58:23 I think their drug was printers. 07:58:32 I guess they did not learn from Carly's HP blunder. 07:59:31 I'd say no, but the damage happened well before Carly. 07:59:40 Really? 07:59:57 Heh. 07:59:59 She's just the scapegoat? 08:00:16 She was more of a symptom than a cause. 08:00:24 No, not at all. 08:00:52 Does this mean OpenBIOS will go the way of the Dodo? 08:01:13 I think most of the Dodos were eaten. 08:03:41 So, probably not quite like that. :) 08:05:00 --- nick: docl_ -> docl 08:26:01 --- join: PoppaVic (n=pete@0-1pool74-206.nas24.chicago4.il.us.da.qwest.net) joined #forth 08:26:17 Man, it's gettin' _warm_ 08:29:12 Quartus: how does your system define does> ? I'm prolly looking in the wrong docs for a good review of it. 08:30:27 phone, one sec 08:33:39 --- join: derv0 (n=derv0@proxy1.nscl.msu.edu) joined #forth 08:35:13 Ahh...now I remember my problem with the ANS spec. All the double-cell stuff in CORE (# */ */MOD >NUMBER etc.). 08:35:40 hmm.. the gforth info sez create and does> go together or not at all. hmm 08:35:42 PPC doesn't have a 64/32-bit divide instruction in hardware, so it's quite slow to do that. 08:35:56 tathi: yes, that was another issue ;-) 08:36:48 I'm not "unhappy" at the way I'm doing the opsets.h "breakout". But, it can become byzantine and tiring 08:37:18 PoppaVic: yeah, the ANS spec says it's an ambiguous condition if you apply DOES> to a word that wasn't made with CREATE. 08:37:45 rightright.. I was WONDERING why their silly info-file was demonstrating weirdness 08:38:08 puts me in mind of and... "ambiguous condition" = "implementation defined" IIRC. 08:38:28 Hey. 08:38:30 You can separate create and does>, even in Gforth, can't you? 08:38:50 Just tested it. 08:39:04 DOES> only works on CREATEd words, of course. 08:39:07 apparently, their docs imply you can mess with them, but something about >BODY and such is affected 08:39:34 Quartus: yeah, that's the way the docs are working... ANS-type behavior 08:39:46 What would you like to know about Quartus Forth's DOES> ? 08:40:08 ok, THAT will take some study. Oh.. Just how you work with does> - you too mandate create? 08:40:10 tathi, that stuff can be moved out into source also. 08:40:35 DOES> only works on words created with CREATE. 08:40:48 ok. otherwise screams? 08:40:59 Right. >BODY only works on CREATEd words too. 08:41:06 Quartus: yeah, I'm just saying, the standard mandates that */ and so on use double-cell intermediate results, which is slooow on PPC. 08:41:44 tathi, yes. To make a system standard you have to provide a */ that does that. Your system can provide optimized versions with other semantics, though. 08:42:04 oh my.. THAT was why some of my old and imported code was makin' me cry - the create/does> 08:43:40 * aardvarx was having too much fun with 3ddesktop to notice that the conversation had picked up again... ;) 08:43:49 heh 08:44:07 By the way, I meant to ask you earlier... 08:44:12 hmm? 08:44:25 PoppaVic, Quartus had suggested the idea of setting up a wiki. 08:44:31 What do you think? 08:44:37 wiki for what? 08:44:58 Well, we did for ##C - and it got decent activity for awhile, (even though purists bitched). 08:45:03 More accurately, that PoppaVic should start a page on a wiki to outline his thoughts. 08:45:27 ah. 08:45:29 although, ours was more of a RTFM-assembly than debates/interests. 08:45:48 PoppaVic, that's not a valid excuse; as someone once said: 08:45:59 There one [prick] in every crowd... 08:46:38 more than one, and rtfm is as valid today as it was a decade ago. Actually, moreso - just that some folks are too lame to even TRY to read even a manpage 08:46:55 At least for the benefit of those who are *genuinely* interested, would you please consider it? 08:47:02 sure. 08:47:23 iirc, Q has a wiki system. 08:47:44 Yes. http://quartus.net/wiki 08:48:15 I inherited it; it's a twiki. 08:48:16 Quartus, do you mind if PoppaVic sets up a wiki with your system? 08:48:23 yeah, I was going to say, there are a few Forth wikis out there 08:48:26 It's open to all. 08:48:35 Very well. 08:48:41 PoppaVic, what do you say? 08:48:43 I'm not sure of the details of how or when, but - oh.. OK, then I'll try to get a few notes together to open the ball there 08:48:53 good. 08:49:36 Quartus: is it kosher to paste the headers into the entr(ies), or is there an upload area like rafb that is better suited & persistant? 08:50:29 PoppaVic, are you sure that rafb is *persistent* ? 08:50:52 it is, but it gets packaged up and moved and swept periodically. 08:51:09 Would that not be a problem? 08:51:22 it is, which iswhy I was asking 08:51:44 ..and I hate forcing a paste on folks when a link is cleaner 08:52:08 It's just that you might end up chasing URLs... 08:52:28 right. Precisely 08:53:52 Two questions: 1) What does this "pasting" entail? 08:54:05 PoppaVic, I don't have a paste area. The Wiki's fine to paste things into. 08:54:11 and 2) How much time would chasing URLs require? 08:54:19 Or link to another paste site if it suits you. 08:54:35 Q: hmm.. It looks like I need to create an "account"? Or did I lose something? 08:54:42 Quartus, you mean like pastebin? 08:54:47 Yes, you do, PoppaVic. Keeps out the spam. 08:55:22 Quartus: I don't suppose you know the logic behind the numbering scheme in the glossary of the ANS spec? 08:55:31 aardvarx, I don't know that one, but if it's a paste site, then yes. 08:56:01 Yes, they numbered each definition under consideration, and then the numbers stayed. Many words didn't make it. 08:56:31 Core is 6, because it's section 6 in the document. So it's section.subsection.item. CORE EXT is 6.2.x. 08:56:32 Ah. Thanks. 08:56:49 Yeah, I meant the item numbering. 08:58:32 You all mentioned tathi several times yesterday -- what has tathi done? 08:58:49 if only he were here to ask! 08:58:53 Well, not y'all; Quartus and PoppaVic . 08:59:18 I don't remember; you said he helped you with something... 08:59:32 I didn't mention him. 08:59:37 O_o 08:59:38 hang on, doing three things at once 08:59:42 Okay. 09:00:17 this stuff under what section of the wiki? 09:00:59 I'dhate to alienate die-hard forthers 09:01:15 Make a new section if it pleases you. You won't alienate anybody unless you stick it under Quartus Forth. 09:01:30 aardvarx: JasonWoof and I designed a small VM that he is going to run herkforth on top of. 09:01:34 http://quartus.net/cgi-bin/twiki/view/Main/GeneralForthTopics maybe. 09:01:56 ok, I thought that might work 09:02:21 You all are serious about BYOF, aren't you? 09:02:31 I coded it up in C, and showed my code to PoppaVic, upon which he started writing the code that he's working on now, I think. 09:02:32 byof? 09:02:43 Build Your Own Forth 09:03:01 tathi: yeah, it caused me to sideline a few other subprojects, when I saw your code 09:03:09 retroforth, herkforth, colorforth, gforth... 09:03:16 aardvarx: the thing to remember is... 09:03:16 QuartusForth... 09:04:08 aardvarx, I don't implement Forth again and again; I built it to use on the Palm. I'm a pragmatist as regards these things. 09:04:18 I'm not OVERLY worried about "yet another forth" - or ANS. Other than as guides. What I _am_ interested in is an api/lib and system to add forthish-concepts and interface with at least C. 09:05:20 because.. I believe folks like tathi get sorta' interested and we may end up with other useful tools. Such as extractors/linkers/loaders, etc. 09:05:21 * tathi has to admit he's guilty of implementing Forth again and again... 09:05:49 oh, hell.. Yeah, I used to beat FIG forth all the time for fun & education. 09:06:24 I've played with implementing a few other languages too, but mostly forth-likes. 09:06:28 Nothing wrong with that as such, it's a goal by itself. My goal is writing apps; compilers are sometimes also necessary. 09:06:30 I like tinkering around with compilers and whatnot. 09:07:36 So, no "re-inventing of the wheel" is going on here? 09:08:08 :) 09:08:13 don't plan to re-release ANS/gforth or whatever, no. 09:08:33 Speaking for myself, I try to re-use other people's wheels where possible. Hence my interest in standardization. 09:09:52 Both of the assemblers in Quartus Forth originally came from elsewhere, for instance. Wil Baden's OPG is part of the library. And so on. 09:11:41 PoppaVic, please be sure to add 08:53 comments to the wiki. That was *very* helpful to know. 09:11:58 wha-huh? 09:11:58 *your* 08:53 comments... 09:13:06 I take it that an api/lib interface written in C DNE? 09:13:26 good grief and Bog, no. 09:13:35 I'm still doodling with the API and opcodes 09:15:17 Very good. 09:15:33 I just wanted to make sure that no duplication of effort is going on. 09:16:05 --- join: virl (n=hmpf@chello062178085149.1.12.vie.surfer.at) joined #forth 09:16:24 right. I try to get prototypes and structs and such all done before writing code 09:17:26 Very well. 09:17:37 creating the topic-entry 09:19:24 AIIGH 09:19:27 STOP! 09:19:33 what? 09:19:44 EVERYTHING CRASHED! 09:19:44 Just kidding. :) 09:19:47 hehehe 09:19:49 lol 09:19:55 * PoppaVic sighs 09:19:58 Quartus, you are wrong for that! 09:20:09 boy, am I glad I already took a shit - yah bastich! ;-/ 09:20:42 Please excuse me, I have to get ready for a meeting. 09:20:49 hehehe 09:20:50 np 09:21:13 Hopefully, I will see you tomorrow. 09:21:21 I hope so ;-) 09:21:21 Same time, same channel. 09:21:37 --- quit: aardvarx ("Good day!") 09:22:05 you got it 09:22:58 --- quit: I440r (Read error: 104 (Connection reset by peer)) 09:23:06 --- join: I440r (i=I440r@rrcs-24-242-160-169.sw.biz.rr.com) joined #forth 09:23:49 --- quit: I440r (Client Quit) 09:53:41 hmm.. 09:54:15 Quartus: how well will pasting in ascii-text (C headers) work? 09:54:26 Should be ok, enclose them in the right tags. 09:54:59 what tag would you suggest? I'm thinking of a bullet-list so they don't slam the reader directly in the face. 09:55:45 and tags for C headers. 09:55:55 Exxcellent 10:05:51 http://quartus.net/cgi-bin/twiki/view/Main/ForthishCvm 10:05:57 Looks good. 10:06:21 excellent. My apologies for being so lost and aswirl lately. 10:08:36 Well, that drops an anchor of sorts. 10:08:57 right. Out of my head and unto a medium-of-exchange 10:19:49 OK, even bookmarked it. I dunno that it's going to make a world of diff, but it can't hurt. 10:26:18 True true. 10:27:20 Actually, now that there IS a link to code-pastes.. it might work out well for updating periodically. (particularly if I can recall how the hell to use diff) 10:28:03 I'm also torn on the user-variable opcodes. 10:28:36 I guess they need to be core, but the name always disturbed me. 10:37:10 What, "user"? 10:38:56 damn.. back 10:39:03 "user variables" 10:39:56 near as I ever figured out, they are basically a dynamically-extensible method of adding regs/counters to engines/tasks. 10:40:25 or rather: regs, const, var and structs/arrays 10:44:00 tathi: you still alive? 10:45:49 I'm here. 10:46:39 curiousity: I'm trying to ascertain if the 32-bit assumption MUST hold true. 10:47:13 seems like we are still thinking "internal-guts" versus "file contains". 10:47:13 you mean "assume a cell is at least 32 bits" ? 10:47:17 yah 10:48:14 I don't think the GNU toolchain runs on any 16-bit or 8-bit machines, if that's relevant... 10:48:21 btw, I'd love to see any ideas about dictionary-heads and image-files ala' the structs.h I posted. 10:48:56 tathi: I dunno.. I like gcc and live with it, but seems like cross-compiling would not be any insane-effort. 10:49:24 well, whatever you want to do. 10:49:45 I was thinking of our very brief discussion last week when I wrote the image-header struct. 10:50:14 And, (of course), recalling that you'd tinkered a direct asm->obj format. 10:51:29 I think the dictionary-header format is fairly flexible. 10:51:41 yah. 10:51:52 Seems like you can have a pretty wide range of different implementations, but still provide the same semantics. 10:52:05 I was sort of planning to enforce a wchar-internal system. 10:53:24 well, if we ever get this thing to run a few cycles, I'd like to get you involved in the image and image->object issues, (if yer still interested). 10:54:55 maybe 10:55:39 I had the distinct impression you had a shitload more "clews" than I did, and that the interest was there. But, that is (as said) for laters. 10:59:11 Huh. I have to say, I think the ANS Search-Order wordset is a bit strange. 10:59:32 yeah, it was. I found use for it a year or so ago, however. 10:59:36 and the extension set more so. 10:59:51 oh - you mean the also/order stuff, nm - well, it works well 11:00:18 Well, I don't see any word to set the top of the search-order stack. 11:00:24 So also seems very pointless. 11:01:55 ahh, loaded dpans 11:01:58 Only use I can see for it is doing "also forth", so why not just roll it into the word FORTH ? 11:02:18 the "extensions" are what I am most familiar with 11:02:34 only forth also personal definitions 11:02:45 yes, it needs service 11:03:01 Right, but you would have to have a word "personal" which would alter the top element of the search-order. 11:03:10 And the standard gives no way to do that. 11:03:15 hmm 11:03:18 only get-order and set-order. 11:03:29 also dups the top voc and pushes it 11:03:48 right, so then you have two copies of the top voc. 11:03:57 yeah, as I said... I like vocs/order/also/only/previous/definitions 11:04:11 the only word in the draft standard that modifies it is FORTH. 11:04:36 right "also" (dup) "personal" (a different voc) "definitions" (set for collection) 11:04:38 : personal get-order personal-wid swap 1+ set-order ; 11:04:41 seems a bit verbose. 11:05:04 I agree it needs a thumping and agressive change. 11:05:27 no, it looks ok, it just seems like they left out a word in the standard. 11:06:00 well, I doubt they dropped a word - more likely the debaters couldn't agree and deemed it "a local issue" 11:06:24 "only forth" Never did seem satisfying 11:06:27 i.e. my def for personal above wouldn't need the word also. 11:06:49 yeah, but according to the draft standard, "only forth" is wrong. 11:06:53 as I said, I like what I used - but I also knew is was clumsy 11:06:54 you need to do "only also forth" 11:07:03 ahh 11:07:27 and it doesn't provide any way to create new words for your own wordlists that work like "forth". 11:07:37 is 'only' somehow connected with some sorta' whacked 'turnkey' messup? 11:08:00 yeah, I used 'wordlists' in a really odd way a few years ago. 11:08:16 it worked well with gforth, but it was a PITA to puzzle out 11:09:45 I suppose you might start a turnkeyed app with 'only'. 11:10:14 I don't think the standard really gets into that sort of thing though. 11:10:20 well, suggestions are requested - RFC, dude ;-) 11:10:45 as I said: ANS never struck me as perfect or an 'end-all' 11:10:59 I don't think it was supposed to be. 11:11:00 tathi, adding a wordlist to the top of the search order -- "get-order my-wordlist swap 1+ set-order" -- bit cumbersome. 11:11:16 Quartus: I know, but the draft standard doesn't seem to give you any other way. 11:11:22 Which I find a bit puzzling. 11:11:43 The canonical way is to use VOCABULARY to make your wordlists, but that's not a Standard word because it had conflicted definitions in different systems. 11:12:10 Ahhh. That explains it. 11:12:15 There's an implementation of it in the appendix, though, which does the trick. The new named wordlist works as you'd expect. 11:12:20 I should have just asked you in the first place :) 11:12:24 :) 11:12:48 "wordlist"??? 11:12:57 oh, like gforth? 11:13:28 Like the Standard. 11:13:46 I can already see that Q is gonna' make me often bash my head offin' the cinderblock-wall - he's so damned "current" 11:13:52 tathi, VOCABULARY as defined in the appendix makes named wordlists that replace the first wordlist in the search-order. So... 11:13:57 vocabulary moo 11:13:58 also moo 11:14:05 well, sure 11:14:06 ... would add moo to the search order. 11:14:07 yeah, I found it. 11:14:25 'wordlists' merely underlay the vocs 11:14:43 Wordlists are the entirety of the structure, a 'vocabulary' is just a helper word. 11:15:20 I used them awhile ago to add a new type of word that itself added it's own special 'vocs' 11:15:24 'wordlist' generates new wordlists, but they're just single-cell values. 11:15:55 the damned code is sitting on my old, non-usb, isolated debian machine, darn-it 11:16:13 In Quartus Forth I use wordlists to keep track of previous-included files and module names. 11:16:20 yes 11:16:34 I was suing it for structs and flags and such 11:16:38 using 11:16:57 And of course module/public:/private:/end-module/expose-module use wordlists. 11:16:57 ..sorta' preprocessing and #warnings and such 11:17:06 bingo 11:17:35 That module/end-module facility is proving very popular. 11:18:17 I may need to run a loooong phone-cord to the other room, set up the new isp info and login - just to tarball and upload the stupid source 11:18:47 ..I *DO* recall I had to write a file of 'helpers' to make it decent to use 11:19:31 btw, speaking of 'was included' and such... 11:20:40 I'm sort of on a cusp. I'm thinking the user-variables stuff needs to be a core-opcode; but I'm also thinking that wordlists, vocs, order, etc are all extensions above and beyond. 11:21:56 Those are fundamental dictionary operations. If your new Forth supports a dictionary they need to be internal. 11:22:10 indeed, I am also thinking that the GLUE structs really should be LL-members and be maintained as a Uvar 11:22:42 Quartus: well, that's part of the prob... I don't believe the dictionary is integral to anything other than extension. 11:23:33 Without a dictionary, I'd be hard pressed to call it Forth. Just a stack-based language. 11:23:41 granted, you can't take human/file-input and interpret w/o the dictionary. 11:24:34 Quartus: what about a generated-turnkey? It _was_ forth, but now is just a tool. 11:25:06 afaik, nothing mandates the turnkey allow input/lookup 11:25:14 To me, Forth is at least a dual-stack based language with a dictionary, multi-precision integer arithmetic, I/O, and memory access. 11:25:27 An app is not Forth. An app is an app. 11:25:35 forth itself may be. But, duck down at least one level. 11:25:55 oh, and an incremental interactive compiler. 11:25:56 well, I do keep saying VM and also mentioning 'forthish' 11:26:06 sure - that's a decent view 11:26:47 Ok. If the dictionary is outside of your scope, then certainly dictionary operators are outside of your scope. 11:26:56 we want to deny neither full interaction nor "exported images" (or cross-compiling) 11:27:23 Quartus: ok, from that view: I'm trying to then envision how it layers in. 11:28:11 It tends to "feel" like a lot of colon-def/uvar and some image-support. 11:28:25 The trouble I have is that the opcodes you're building are too fat to be opcodes in a vm, in my view -- so it looks like a Forth. But you don't want to include fundamental Forth elements, because you think they're too fat. 11:28:43 hmm... Not exactly 11:29:32 it's not so much "fat" as.. "What do we need for core-C and where can we breakout elements that can become optional and extensions". 11:29:49 That would depend on what you're building -- a VM, or a Forth? 11:29:56 for example, the mention of CELL/single versus DCELL/double awhile ago 11:30:09 can the forth not be built over the vm? 11:30:27 Of course. But what I've seen of what you've produced doesn't look like a vm to me; very fat opcodes. 11:30:38 indeed: isn't asm or C itself a variant of 'vm'? 11:31:19 asm is a mnemonic version of machine language, which doesn't run on a VM, as a rule -- it runs on the real M. 11:31:42 yes, if by "fat" you are suggesting we can use fewer c-func indices and use more colon-code, I agree. But, I'm covering my bets until I see where it leads - it's all cogitative at this point. 11:32:08 * PoppaVic grins 11:32:30 Q: technically correct, mechanically? No idea 11:32:50 As an aside, original PalmOS devices were Motorola 68000-core. The newer ones are ARM, and the OS is ARM, but apps run in an emulator which is effectively a 68000 VM. 11:33:02 ahh 11:33:09 yeah, I can envision that 11:33:50 So am I cross-compiling when I generate a 68K app under Quartus Forth on a Palm OS 5 device? :) How about when I generate ARM code with the assembler? 11:34:33 I have no idea, but then: I rarely delve so deep I can point and say "this is a cpu-opcode, really!" 11:35:16 for all I know, it's just more opcodes over a microkernel or some other whacky thingie 11:36:06 so, yeah. Some of my tentative "opcodes" could be "fat" - unless we can envision further, clear "breakout", it seems moot. 11:36:46 Well, though it may be clear in your mind what you're building, I'm not sure if it's a really heavy VM, or a Forth with important parts missing. 11:36:50 further.. I'd rather write another whole tool to truly "compile" or "assemble" into something "native" than get overly worried. 11:37:06 Quartus: and I agree with you 11:37:14 I see problems with both. 11:37:16 ..I am not remotely sure where the idea is leading 11:37:23 --- quit: ccfg ("...") 11:37:31 I dunno' "problems" 11:37:44 I can envision the assorted whimpers, of course 11:38:03 I can't see the use of a heavy VM, and the deficiencies of a deliberately-crippled Forth are apparent to me. 11:38:48 well, please go ahead and comment wherein it matters in the wiki or in an email. So far, we've discussed a dozen points-of-interest. 11:39:34 Ok. 11:39:45 I'm guessing that the simple fact that the opcodes are segregated sorta' broadly is causing a itch/rash. Me too. I just arranged them as seemed sensible for review 11:40:57 I've forgotten which opcode it was that first alerted me to the fact that what you're building isn't a VM in the sense I'd normally expect. 11:41:01 Hell, if it all causes a new paradigm or use of forth: great. Me? I'd be happy to see a usefully semi-integrated and portable engine. 11:41:17 oh, drat - yeah - that can drive you nuts 11:41:53 prolly (altTable) 11:41:59 At that point you mentioned that it wasn't a VM, per se, but something closer to a Forth. Now you're saying it'll lack key distinctive elements of Forth, so that puts it in the 'random stack-language' category, and I'm not sure what you're aiming for. 11:42:31 I'm not saying it WILL lack them, I'm just saying it needs better breakout/layering. 11:43:09 I looked it up. Memory allocation 'opcodes'. 11:43:36 Memory allocation is a high-level function, and not something I'd expect in a VM. 11:44:50 tathi suggested at the time it might better be called a bytecode engine, which, again to me, is just an implementation technique, and tells me nothing about your intent. 11:44:53 umm.. you mean the allot subcodes? 11:45:11 I think so. 11:45:30 sure, I'll buy "bytecode engine" - no reason it can't be the base for a forth 11:46:23 ok.. I did those opcodes for the same reason I placed their get/put therein... I decided they needed to be in the same areas just to be sure I organized whome-did-what-to-whome. 11:46:33 There's no reason *a* bytecode engine can't be the base for a Forth, no. That's not what I'm suggesting. 11:46:57 god knows, there are times I never use more than ints/unsigned num 11:48:02 I would expect one of your goals is portability. Having something as potentially system-specific as memory allocation at that low a level seems to run opposite to portability. You're demanding a specific underlying memory model. 11:48:35 ahhh, but at no point in those opcodes did I mention more than one absolute-address 11:48:42 ..and I'm leery of that one 11:49:11 using an indice to space based at some given point would be suitable. 11:49:50 the allocation would be nothing more than moving an index 11:50:24 'here' would just reference the index-value 11:51:05 although, I DO get a little irked and puzzled about trying to break the dictionary out of the colon-code space. THAT is gonna' haunt nad bug me for weeks 11:51:10 Ok. That's the sort of rationale that would be useful in the source. 11:51:34 yeah, sorry - lots in my head, and less really written. My Bad (mea culpa) 11:52:39 I'll not touch the wiki again today, but instead allow for folks to comment and suggest (etc). Feel free to mention that as a neuronal "stirring stick" ;-) 11:53:35 Ok. 11:54:12 I'm STILL peeved at C(altTable) and the uservar stuff.. I prolly need to sleep on it. 11:54:53 I'm pretty sure there SHOULD be a way to keep all 'absolute-references' the hell out of the "bytecode" we generate and run/save. 11:55:35 I figure the slow-down shouldn't be too bad, and that extraction to more and more native-forms would be near-trivialized. 11:56:44 and, as my basic-goal is the vm for a shell and other such tools, I can't see much to make me feel "bored" at millisec waits 11:58:12 anyway, lemme' call it a day and change my focus for awhile... See if I can be productive with anything at all, and I'll talk with you tomorrow. 11:58:15 Ok. 11:58:33 Stay well, Q, tathi and such - have a great day. 11:58:36 --- quit: PoppaVic ("Pulls the pin...") 12:37:45 --- join: JasonWoof (n=jason@pdpc/supporter/student/Herkamire) joined #forth 12:37:45 --- mode: ChanServ set +o JasonWoof 14:32:09 --- join: aum (n=aum@60-234-156-82.bitstream.orcon.net.nz) joined #forth 14:40:06 --- quit: aum () 14:57:28 --- join: crc (i=crc@pool-70-20-245-183.phil.east.verizon.net) joined #forth 15:10:03 --- join: Topaz (n=top@spc1-horn1-6-0-cust128.cosh.broadband.ntl.com) joined #forth 15:31:58 --- quit: Topaz (Read error: 104 (Connection reset by peer)) 15:34:59 --- quit: derv0 ("Client exiting") 17:25:25 --- quit: tathi ("leaving") 18:15:05 --- quit: virl (Read error: 104 (Connection reset by peer)) 18:45:57 --- nick: Pepe_Le_Off -> Pepe_Le_Pew 19:08:24 --- join: YoyoFreeBSD_ (n=yoyofree@219.145.22.248) joined #forth 19:08:37 --- join: OrngeTid1 (i=orange@orangetide.com) joined #forth 19:27:03 --- quit: YoyoFreeBSD_ (Read error: 104 (Connection reset by peer)) 19:41:07 --- quit: JasonWoof ("going out") 19:57:58 --- join: snoopy_16 (i=snoopy_1@dsl-084-058-139-155.arcor-ip.net) joined #forth 20:12:20 --- quit: thinfu (Remote closed the connection) 20:12:20 --- join: thinfu (i=thin@bespin.org) joined #forth 20:12:20 --- mode: ChanServ set +o thinfu 20:16:34 --- nick: nanstm -> Raystm2 20:16:38 --- quit: Snoopy42 (Read error: 110 (Connection timed out)) 20:16:49 --- nick: snoopy_16 -> Snoopy42 20:18:53 --- part: OrngeTid1 left #forth 21:30:33 --- join: OrngeTid1 (i=orange@orangetide.com) joined #forth 22:52:57 --- join: Amanita_Virosa (n=jenni@CPE0000e812679b-CM000a7362da55.cpe.net.cable.rogers.com) joined #forth 22:59:02 --- join: virsys (n=virsys@or-65-40-177-162.dyn.sprint-hsd.net) joined #forth 23:59:59 --- log: ended forth/05.09.13