00:00:00 --- log: started forth/05.08.28 00:26:24 --- join: virsys (n=virsys@or-65-40-182-104.dyn.sprint-hsd.net) joined #forth 00:28:08 --- quit: virsys (Client Quit) 00:29:39 --- join: virsys (n=virsys@or-65-40-182-104.dyn.sprint-hsd.net) joined #forth 01:22:55 virl, while i have many guns. none are built and none are under my pillow, wanna test that by breaking in someday :) 01:22:55 --- quit: LOOP-HOG (Read error: 104 (Connection reset by peer)) 01:30:24 --- quit: amca ("d34d") 02:18:12 --- quit: ianp (Read error: 110 (Connection timed out)) 02:19:44 --- join: binaryguy (n=binarygu@host86-131-187-90.range86-131.btcentralplus.com) joined #forth 02:23:42 --- quit: YoyoFreeBSD_ (Read error: 110 (Connection timed out)) 02:30:58 --- join: ianp (n=ian@inpuj.com) joined #forth 02:41:14 --- quit: binaryguy ("Leaving") 02:53:53 Raystm2, no I don't want to test that. 03:37:05 hehe, I got all my guns as gifts, i've never bought a single one, and I always disassemble them and spread the parts around or otherwise disable them. :) I hate them. 03:37:33 kids and guns, cars, alcohol, drugs dont mix 04:18:28 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 04:21:17 --- join: crc (i=crc@pool-70-110-194-247.phil.east.verizon.net) joined #forth 04:25:11 --- mode: ChanServ set +o crc 04:41:55 guns as gifts? how crazy is the USA? 06:06:49 --- join: JasonWoof (n=jason@pdpc/supporter/student/Herkamire) joined #forth 06:06:49 --- mode: ChanServ set +o JasonWoof 06:08:41 --- join: snowrichard (n=richard@adsl-69-155-177-155.dsl.lgvwtx.swbell.net) joined #forth 06:12:36 --- quit: snowrichard (Remote closed the connection) 06:17:31 --- quit: warpzero ("Lost terminal") 06:17:48 --- join: warpzero (n=warpzero@wza.us) joined #forth 06:20:46 --- quit: warpzero (Client Quit) 06:21:23 --- join: warpzero (n=warpzero@wza.us) joined #forth 06:48:16 --- join: PoppaVic (n=pete@0-1pool66-178.nas22.chicago4.il.us.da.qwest.net) joined #forth 06:48:36 Mornin' 06:49:57 Hi 06:50:40 How's by you? 06:51:09 I'm pretty good. 06:51:36 got yer email - reviewing now 06:52:22 yah, I got a C version mostly written. 06:53:23 Personally, I love bitfields ;-) 06:53:54 :) 06:56:11 So far, I either agree with the info, or it's a step beyond me on the first reading... 06:57:52 ok,yer using 6-bit opcodes... Are the other 2 bits "reserved" for something? 06:58:14 no, we squeeze in an extra opcode if it fits in 2 bits 06:58:33 umm... That seems weird 06:58:36 otherwise...opcode 0 means "fetch next instruction word" 06:58:52 I'd use zero as NOP 06:58:54 --- quit: ayrnieu (Read error: 110 (Connection timed out)) 06:58:56 yeah, well, it's how chuck does it, and it simplifies the "emulator" a bit 06:59:50 hmm, is there a reason for NOT using a byte/char of 0...255? Are you folding in regs,r/w? 07:00:13 sorry? 07:01:20 well, you note a uint32 (I agree, it could be more flexible - maybe) & a byte/char opcode - but only 6 bits. 07:01:54 or.. are you suggesting 6 bits OF opcode and 26 bits of "other info"? 07:02:32 Oh. Knew I should have put in a diagram. 07:02:48 oh, wait. hmm. 07:03:02 we're packing 5+ 6-bit opcodes into the 32-bit word. 07:03:34 (5, plus a 6th if it's DUP, CALL, or LIT) 07:04:24 And yeah, for portability it would make much more sense to just use a byte for each opcode. 07:04:54 Am I making sense here? 07:05:32 just a sec - had to visit the other side of the basement ;-) 07:05:38 ok 07:06:12 OK, so the current mess is the prototype and you are reassessing 07:07:02 well, I think we'll use it as-is for herkforth 07:07:06 as we'd discussed herein a month or so ago, yeah - I'd use the byte and as an index into the opcode-array 07:08:23 What happens if you have more than one LIT in a single 32-bit word? 07:08:23 I'd even consider if it was possible/sensible to codify a few bits as marking "subgroup of type"- which COULD matter. 07:08:51 Quartus: basically we have the current word in a variable, and IP points to the next word. 07:08:52 you mean folded? 07:09:01 right, I would as well 07:09:08 LIT just fetches from IP and pushes that value, then increments IP. 07:09:18 tathi: ah. 07:09:47 Quartus: you can put 6 lit opcodes in one instruction word if you like 07:09:55 lit values follow in succeeding words 07:10:01 So you've got a maximum of 64 opcodes? 07:10:09 Yeah, and I am 100% sure nowadays that the vm and support should be the synthetic-cpu 07:10:23 Quartus: at the mo he does 07:10:53 If I'm speaking out of ignorance, let me know -- but if you used a byte per opcode, you'd have four times the instruction space. If you didn't use it, user-defined words could. 07:11:08 yeppers 07:11:23 true 07:11:39 but it's more fun this way :P 07:11:50 I always liked the 8-bit and array-idea, it's akin to func-vec/deferred-words. 07:12:14 weird how everybody pushes for 8-bit opcodes 07:12:24 64 is more than enough opcodes 07:12:24 Strikes me that it'd be faster, too. 07:12:28 particularly if there is a closed-call to use for set/reset of those vectors 07:12:43 Quartus: I don't think it is, actually. 07:12:47 JasonWoof, 8-bit opcodes are more human-readable, too. 07:12:47 JasonWoof: I heard that about 64K and 640K ;-) 07:12:53 we could easily lose 1/4 of the opcodes we have now 07:12:58 Quartus: this is the same number of instructions (on PPC at least) 07:13:33 and...presumably with the opcodes being 25% smaller, you don't have to fetch from memory as often 07:13:39 (though that may never be an issue) 07:13:49 there are serious advantages to a smaller system: 07:13:52 well, 6 is an odd number - 8 is easy. Unless, (of course), there can be a good reason to use those 2-bits as someother marker(s) 07:13:53 1) easier to implement 07:14:03 2) easier to write an optomized compiler (jit sort of thing) for 07:14:16 3) simple simple simple 07:14:54 for instance - and this is off the wall - you might use bit #6 to mark 'registerID' 07:15:05 registerID meaning...? 07:15:08 JasonWoof: simple is nice. 07:15:34 I'm very curious as to what ratio I'll get with herkforth between memory used for opcodes, and memory used for lits 07:15:40 tathi oh, I was thinking of opcode-byte and the #6 bit meaning "the opcode is a register ID" 07:16:10 what's a register id? 07:16:24 tathi: this would then allow for a 100% synthetic-assembler, overlaid on a host-reality. 07:17:06 JasonWoof: oh, like BP and eas and whatever on 86's and the weird ppc regs 07:17:21 PoppaVic: huh? 07:17:29 PoppaVic: I don't know x86 asm 07:17:40 JasonWoof: it's an odd idea I've been baking in the hindbrain 07:18:18 hmm.. I'd have to see the opcode-list you guys use now. 07:19:04 http://josh.qualdan.com:3/svn/fovium/opcodes 07:19:06 not sure I follow, but... 07:19:18 JasonWoof: lemme' try it this way... ppc uses similar id-letters, and different numbers to "name regs", right? 07:19:34 I'd rather write a compiler back-end, rather than somehow integrate processor registers into the VM 07:19:38 PoppaVic: um... r1 r2 r3 r4 r5 07:19:44 right 07:19:53 especially since this is a stack-based VM; we don't HAVE registers, mostly. 07:20:09 with gas you actually have to pass -mregnames so you can do this, otherwise only 1 2 3 4 5 is allowed 07:20:21 tathi: yeah, I'm sorta' "downshifting" to place the vm sorta' NEAR the silicon and interceeding with the stack-based forthish 07:20:36 PoppaVic: that's not helpful 07:20:49 PoppaVic: that makes it way harder to write a good optomizing vm implementation 07:20:57 not really 07:21:07 if you hive the guest system access to your registers, than you can't use them in your native JIT stuff 07:21:10 PoppaVic: have you read Peter Knaggs' PHd thesis? It's pretty simple to translate from stack code to register-based. 07:21:16 jas: tathi already has mentioned his C porting is working 07:21:18 I don't see any point to letting the user hard-code them. 07:21:29 tathi: no, sorry never heard of it 07:21:29 (them = processor registers) 07:21:59 ahh, ok - so you have some docs around to consider the conversion? 07:22:07 besides, there's no god way (afaik) to get at a register who's number is only known at runtime 07:22:35 JasonWoof: heh - THERE you are thinking of local/host and configuration ;-) 07:22:57 NSTHSOENTU 07:23:06 eruh? 07:23:06 http://dec.bournemouth.ac.uk/staff/pknaggs/thesis/index.html 07:23:10 it's a freaking VM for god's sake 07:23:13 chapter 5 is the interesting one from my point of view 07:23:42 yeah, I'd like to point out that this isn't intended to be some silver bullet of portability. 07:23:45 the whole point is to isolate 07:24:01 to make a box that works exactly the same way from the inside 07:24:11 no matter what you're running it on 07:24:18 JasonWoof: I'm not arguing that, of course. What I'm doing is throwing spin at it and considering if the ideas would help in synthesizing a cpu and assembler as well, ok? I'm not trying to ruin yer Wa, dude 07:24:19 tathi, why make a vm if you don't intend to be portable? 07:24:39 my Wa? 07:24:59 yer "center of calm", peace, mood, mojo 07:25:13 Quartus: we do intend to have the vm implemented on many platforms 07:25:21 Quartus: that's the main reason for the C version 07:25:46 tathi wrote the ppc asm version first because it's just cool 07:25:56 Quartus: the main point is to make it easier to run herkforth on 32-bit x86 machines than having to build and configure qemu 07:25:57 and that's what we'll use personally 07:26:16 and so it'll run on windoze 07:26:56 Well, yes, I'd have thought portability would be the key reason. I was responding to tathi's comment about it not intended to be 'some silver bullet of portability'. 07:27:20 Quartus: I just meant I don't have the scope of PoppaVic's project in mind here. 07:27:28 Ah ok. 07:27:42 I'm completely ignoring everything but 32-bit machines, for instance. 07:27:53 tathi: yeah, my ideas mostly keep churning madly around vm's and C-cores. 07:29:35 PoppaVic: I'm coming to think that, long term, it makes more sense to have some kind of generic compiler infrastructure (than a VM). 07:29:44 yeppers 07:29:54 if you want to consider a specific target 07:29:58 though... you need some kind of intermediate representation, so maybe compiled code for a fairly portable VM would work well there. 07:30:14 right, I agree 07:30:44 On the whole, I really think C's inline-asm was a doorway to doom. 07:31:03 ..at least, the way it ended up implemented. 07:31:28 It lets in all the non-portability demons 07:31:56 well, I think it was intended to help out OS implementors -- let them do everything straight through the C compiler. 07:31:58 soccer :) bbl 07:32:23 although... it's hard to read, so even for that purpose... 07:32:27 right, tathi - it certainly was, but damn.. It sure left us in the lerch 07:32:30 lurch 07:33:24 Nobody with a goal of portability uses inline assembler. 07:33:24 I don't really see it as a problem -- not that many people use it, in my experience. 07:33:38 tathi: to behonest, there is no compile-time support for ID for proper use of the asm. 07:34:01 anyway, forget that.. I think I see where you guys are headed 07:34:12 true 07:34:52 My feeling would be that you'd merely need a decent vm-header and perhaps an asm-source module to link in. 07:35:05 something like that 07:35:46 I'm still totally confused about if/how one would add an asm-voc to the language, but I suppose it could be perverted. 07:36:18 I don't really plan to. 07:36:35 I don't blame you 07:37:04 Well, I've been doing a lot of thinking about a forth-to-native compiler, written in forth. 07:37:22 otoh, if I have a vm-cpu layer under the forth-vm layer, then yeah - it's a non-issue 07:37:37 And... I think most of the machine-dependent stuff can be kept to a small layer, and not affect other stuff much. 07:37:38 tathi: yes, I've thought and wished for those for decades 07:38:02 I have a fair amount of it written out in forth pseudo-code. 07:38:14 even better if it generates source for C or asm or something. 07:38:17 Once I get this VM thing up and debugged, I'm going back to working on that. 07:38:37 Yeah, I think the actual output layer can be almost totally isolated. 07:38:45 I agree 07:38:52 Don't know if I want to think about generating C 07:39:08 But generating asm source instead of machine code would be trivial, and I definitely plan to do that. 07:39:15 well, what is generated is pretty well open. 07:39:18 yeah 07:40:09 hell, with a proper system, you could prolly generate lisp or perl or sh. 07:42:25 I really look forward to further code-perusal and discussion, I think some of these ideas are pretty damned tasty. 08:01:13 tathi: what was the 'latch' for again? 08:01:56 the instruction? fetches the next instruction word. 08:02:25 latch is a fetch?? 08:03:04 yeah, I'm calling it 'next' now. 08:03:09 guess I didn't change it everywhere 08:03:14 ahhhhhh 08:03:29 ok, THAT changes matters ;-) 08:03:44 hrm, 'next' isn't great either though. should be 'next-word' or something. 08:03:58 step 08:04:34 basically, the vm is a stepper-interpreter ;-) 08:05:01 that's the thing, it's NOT step. It doesn't process the next opcode, it fetches ("latches") the next word of opcodes. 08:05:04 PoppaVic: yup. 08:05:44 no, I understand - it does "take a step", but sure - the interpreting would follow ;-) 08:05:49 yeah. 08:06:10 I did this in my commonforth efforts. 08:39:57 Just for fun.. I may twiddle that opcode-list. Do you have explanations for what each mean? Some are familiar, others are very weird-looking 08:47:33 hmm, hang on, I'll add them to the list. 08:53:28 ok, updated 08:53:43 url again, please? 08:54:04 http://josh.qualdan.com:3/svn/fovium/opcodes 08:54:15 let me know if something needs more work 08:54:24 loading 08:54:47 ahh, b is branch - what is 'h'? 08:55:25 it's a prefix for 'half-word' (16-bit), probably 08:55:43 oh, I see - it's columnar-shorthand 08:56:21 call isexternal? Or starts a new colon-word? 08:57:08 call is like branch, but saves IP to the return stack so you can return ';' 08:57:26 ok, so internal and used to nest/branch 08:57:30 err... (with ';') 08:57:31 yeah 08:58:13 ok, I'll cogitate and diddle this a 'bit' ;-) 08:58:23 have fun 08:58:37 could be interesting 09:01:56 Other than zero, is there some reason for the order that is intristic? 09:03:25 well, I chose 0-3 as what I thought were most common (they fit into 2 bits) 09:03:30 other than that, none whatsoever 09:03:38 No noop. 09:03:44 ok, why does the 2-bits matter? 09:04:14 Quartus: I don't understand the need for a noop in software... 09:04:16 yeah, NOP - an issue,if minor right now 09:04:31 PoppaVic: those ones will fit in the high (6th) slot. 09:04:35 only useful for padding and a guarenteed place-holder 09:05:00 tathi, for patching code primarily. 09:05:08 tathi: ok, but.. I'm still confused about why the bit-field "end" matters? 09:05:44 tathi: are you "sometimes" checking bits instead of the overall index? 09:05:58 PoppaVic: it doesn't, really, but it's only 2 bits (high bits will be filled with zeros). So it can only fit the first 4 opcodes. 09:06:05 seemed like it made sense to try and pick the most common ones 09:06:07 hmm 09:06:14 humph 09:06:41 I think it's overkill back-bending to consider under 8-bit. 09:07:02 Quartus: Ah. I think I only ever patch branch addresses, not opcodes. 09:07:09 I'd sorta'-kinda' understand some 4-bit fixation for pics and such 09:07:42 yeah, I can see that. 09:07:43 but.. It seems like an iffy proposition, I'll take it into consideration, though 09:08:07 2 four-bit 'fields' may be doable 09:08:16 But... it's enough space for me. I went ahead and filled it up, but there's plenty of stuff you could lose. 09:08:27 sure, lemme contemplate it. 09:08:52 I presume that, almost universally, you just use it as an indice into the vtable, right? 09:08:58 the flag stack could go, as could the conditional return words. You don't need most of the rstack words...etc. 09:09:03 yeah. 09:10:23 well, the fl-stack is an interesting idea.. I don't mind considering this as a sythetic-cpu. 09:10:55 it'd be internal, humans would have no direct access anyway, that I can imagine 09:14:17 --- join: ayrnieu (n=julian@ip68-13-110-105.om.om.cox.net) joined #forth 09:20:46 soccer was fun. didn't fall once 09:20:51 heh 09:21:17 JasonWoof: tathi went ahead and posted a commented opcodes, anythingyou care to rename/change? 09:22:17 tathi: btw, is there a similar list/struct for "regs/ptrs" for the vm? 09:23:18 fwiw in my notes I called the latch/next opcode nexti 09:23:32 cool 09:23:48 JasonWoof: registers used? can you specify them? 09:25:50 JasonWoof: mind you, I mean for the VM/forth 09:25:59 the next thing works as a noop and placeholder 09:26:32 well, based on the name - I'd expect nexti to increment IP only. 09:27:40 I'd presume, but that's dangerous. Seems likely you have rp,sp,dp,ip - but what else/others? 09:28:16 are we going to have to write a 5 page paper on the concept of splitting 32 bits into 5 6-bit fields, and a 2-bit field at the end? 09:28:27 no. 09:28:36 you got it now? 09:28:43 I'm going to twiddle/juggle some of these is all. 09:29:17 JasonWoof: no, man - I was told the spare 2 were pretty much non sequitur. Did I miss something significant? 09:29:24 the vm implementation grabs the low 6 bits for the opcode, then shifts the word down, then branches into the branch-table for the implementations of the core words (using the opcode as the index) 09:29:58 after the 5th shift, the 2 high bits from the instruction word are the low bits 09:30:14 ok, why all this twiddling? 09:30:23 the vm implementation reads them in, and has _no idea_ that there's only two bits from the original word 09:30:34 the value is 0, 1, 2 or 3 09:30:53 0 is the next-instruction-word fetcher 09:30:59 umm, ok. ANd? 09:31:21 this (using the high bits) adds no complexity to the vm implementation whatsoever 09:32:12 ok. I can hear what you say and even envision all this shifting foo-foo. Just trying to ascertain why. 09:32:39 YZou already have a vtable. So, what does the shifting accomplish? 09:32:50 speed 09:32:52 simplicity 09:32:56 umm.. 09:33:09 as opposed to fetch/mask/index?? 09:33:23 yes 09:33:32 that sounds fairly insane. 09:33:47 http://josh.qualdan.com:3/svn/fovium/fovium.c - there's a list near the top of what you might call "registers" 09:33:56 ok, thanks tathi 09:34:00 bah, it's just shift/mask/index instead of fetch/mask/index 09:34:22 it's about the same either way. 09:34:23 umm... you still need a fetch to mask, afaik 09:34:33 grrr 09:34:38 NO YOU DON't 09:34:42 oh. I'm assuming you already have it in a register 09:34:45 stop hollering man 09:34:53 one of the opcodes loads the instruction word 09:34:57 next-iword 09:34:57 tathi: yeah, I was trying to ascertain where 09:35:05 we've been talking about that for a freaking hour 09:35:23 oh. fetches opcode, ok. Fine. Great - so wht are you now shifting? 09:35:23 opcode 0 09:35:47 "word of opcodes" confuzzled me a mo 09:35:57 32-bit word 09:36:06 containing 6 opcodes 09:36:15 ahhhhhh 09:36:15 packed 5 bits each, except the highest which is only 2 09:36:16 ok 09:36:24 I see, shifts now make "sense" 09:36:38 sorry, I was thinking padding and bytes. 09:36:51 yer thinking padded-"opcodes" 09:37:00 we're not padding anything 09:37:07 heh 09:37:30 sure you are, 2 bits you 'X' and loading 6-per 09:37:54 if you loaded six, then either unused are trash, or you voodoo the packing 09:37:54 the main loop in the vm implementation is 4 ppc instructions, including 2 to branch 09:38:07 (ppc you can't just branch to an address in any register, you have to move it to a special register first) 09:38:18 yeah, I figured it was odd 09:38:34 I have no idea what you're talking about 09:38:42 I don't know about x86... it MIGHT be one extra instruction to do it this way, but I doubt it. 09:38:44 that's ok, I think I now do 09:38:58 but trust me, there's no padding, unless you have to allign to a word boundary so it can be the target of a branch/call 09:39:16 JasonWoof: yer making basic, cpu-based assumptions before you ever get to the vm. I was unaware of this, and it explains some of it 09:39:44 PoppaVic: could you please be specific? 09:39:47 no, he's not. on any RISC cpu it should be the same speed to do it this way as with bytes 09:39:57 In C it looks about the same, may even be shorter this way. 09:40:05 as I said, I think it's the same on x86 as well. 09:40:16 about the branching and fetching and such. tathi sure, I can see where it all leads now 09:40:26 there may be some processors where this way is slower, but in general, its's pretty much the same speed. 09:40:36 anyway, I'm out for lunch 09:40:38 it should be, eventually 09:40:42 lates, tathi 09:41:39 I think 2 ppc instructions to get the next opcode and calculate the address within the branch table that you need to branch to is not possible to beat 09:42:52 you _might_ be able to get it down to 2 instructions with 8-bit opcodes 09:43:20 but unless I'm missing something, that makes the vm implementation more complex 09:43:48 considerably in fact 09:43:54 ok, maybe not that much 09:44:13 on ppc anyway 09:44:13 hehe 09:44:40 ain't it fun? viewpoint and backoff/rotate-review can do a number on yah 09:44:41 to fetch a 8-bit opcode, and update the instruction pointer in one instruction on ppc you have to do a pre-increment fetch 09:44:46 (as there is no post-increment) 09:45:09 which means that you always need to keep the instruction pointer one byte before the next available instruction 09:45:41 Seems likely to me that his last url's "machine" and the (basic) vtable-entries iscurrently the key - the shifting/packing is a local-issue 09:45:57 yeah, I did similar for commonforth 09:46:47 ok, now can you follow the logic to where this makes it rather tricky at best to get the litterals out of the instruction stream? 09:46:54 the actual code-mechanisms underlying the "VM fetch/do" is always the kicker 09:47:22 yes, it's not "neat" delineation, so it sure would slow it down for "exceptions" 09:47:26 here's a diagram of a few instruction words. one byte per character: AAAABBBBCCCCDDDD 09:47:38 yeppers 09:48:02 so the interpreter is now loading the seccond A byte, it's a lit. as it fetchish it updates the instuction pointer to point to the seccond A. 09:48:13 better is to see: XX1111,XX1111,XX1111,XX1111 09:48:22 (or reverse) 09:48:27 so now we have to calculate the address of the litter value (BBBB) 09:48:35 so we mask of the low bits of the IP and add 4 09:48:40 fetch the whole word BBBB 09:48:49 yeah, I would suspect that itself is slower than using a byte. I really would. 09:49:07 now... how we can't update the IP to skip BBBB because we haven't finished the last two A opcodes 09:49:23 I have to diddle-poke this for a day or so, but yeah. 09:49:40 another option is to screw allignment 09:49:46 ahh... wait 09:49:50 and put it as: AABBBBAACCCCDDDD 09:49:58 but you can't fetch words out of allignment on ppc 09:50:04 so now the routine would be: 09:50:05 I think I see a concept-flaw I endran once.. 09:50:18 fetch seccond A opcode, which updates the IP to point to the seccond A 09:50:34 yeah, that 'fetching' is clever, but complicates shit 09:50:44 now to fetch the literal you have to do 4 incrementing byte-fetches and shift and or them together 09:50:45 I believe I added a vm-reg 09:51:17 http://www.hypercon.net/~pfv/commonForth.tar.gz 09:51:25 neither of these options are appealing to me _at all_ 09:52:10 or we can do it the way we are, where the main interpret is two instructions and a branch 09:52:18 dude, it's nice yer so cozy with the ppc and forth, but in many ways backing off a ways and examining structures/code/concepts is useful. 09:52:28 1) mask into vtable pointer 2) shift remaining bits down 09:52:33 lemme' cogitate a sec. 09:52:45 yeah 09:52:47 all fetches from the code are full 32-bit word incrementing fetches 09:53:32 ok, who is fetching? the vm or the underlying code? 09:53:44 vm implementation 09:53:51 there should be no reason to obsess over the ppc itself. 09:54:00 although the above would presumably be true of the guest system too 09:54:11 sure, host versus target 09:54:15 PoppaVic: you're being really insulting 09:54:21 * PoppaVic sighs 09:54:33 you just told me I'm obsessing 09:54:53 You're really getting to me 09:55:04 you've been arguing against the way we're doing this without understanding it 09:55:05 I don't mean to be insulting... I'm trying to slow you down a trifle and comprehend several views and a whole new imp atop a cpu that makes my head spin, ok? 09:56:00 by all means take your time 09:56:04 now, doggone it - fine, if I am bugging you that much, then fine. I'll drop it and not bother you It's not going to make me cry. 09:56:04 read what I wrote 8 times if you like 09:56:11 if you have questions fire away 09:56:36 I ain't even had time to REVIEW this stuff, so my questions are certainly broken right now. 09:56:37 it's just pointless for you to sit there and tell us that we should do 8-bit instructions 09:56:42 we considered it believe me. 09:56:53 it's more complex _and_ slower 09:56:56 I have never,EVER TOLD you to use 8-bit. 09:57:04 I think in bytes, however 09:57:13 bytes are 8-bit 09:57:21 that's what a byte is 09:57:22 most places ;-> 09:57:23 8 bits 09:57:28 no, everywhere 09:57:32 everywhere 09:57:49 oh, I'm sorry 09:57:55 sorry, the C folks would disagree I don't, but they might. Meanwhile, I never insisted you use 8 09:58:17 I thought it specifically meant 8 bits 09:58:33 just calm.. maintain-yer-maintains.. I'm still trying to read tathi's email and posts 09:58:33 well, maybe you were just completely ignoring the context of this conversation 09:58:51 we have said many times that we are only interested, talking about, and implementing for 32-bit machines 09:59:03 in which context a byte is most definitely 8 bits 09:59:25 yeah, yeah, yeah - heard that.. Then 4-bits where mentioned, and 6 and long fetches and - well, just relax. 09:59:48 far as I know, I can't even try to build and run the stuff. 09:59:58 ..but, I'm just reviewing 10:04:38 hmm 10:12:32 --- quit: virsys (Read error: 110 (Connection timed out)) 10:17:45 --- quit: PoppaVic ("recycles the ISP") 10:19:10 --- join: PoppaVic (n=pete@0-1pool46-166.nas30.chicago4.il.us.da.qwest.net) joined #forth 10:19:37 OK. Sorry. Did an isp-recycle 10:20:48 JasonWoof: out of curiousity, how well does the flag-stack work out? 32-bits seems pretty short. 10:23:16 any data on it? 10:24:37 man.. 10:25:45 in our implementation the flag stack is 32 deep 10:25:51 right 10:26:11 I'm guessing that's far more that we'll ever use 10:26:17 it's a 32-bit word, but I presume ANY flag - just wondering if there are depth issues? 10:26:47 each flag is just true/false 10:27:10 are you then presuming as a fact that flags are on/off switchs? Ahh. So, they sorta' parallel using values as flags? 10:27:27 flag stack just stores true/false 10:27:31 you can't put a value on it 10:28:14 I know, I meant "as is typical". Who emplaces the value? Since any value can act as a flag. 10:28:48 emplaces? 10:28:54 I'm not sure exactly what you're asking 10:29:03 ahh, nm - I see his C. 10:29:15 would you like me to describe how the flag stack will be used from a the guest side? 10:29:18 OK, they seem to be set by tests integral to the vtable 10:29:41 the flag stack is pushed by comparison operators 10:29:45 like < > = etc 10:29:48 got it 10:29:52 and one that compairs with zero: ? 10:30:15 and it's popped with conditional branches/returns 10:30:16 not like " 123 if ..." - if might push it, but I doubt it 10:30:45 interesting idea 10:31:06 oh, and iirc there's a couple primitives to combine flags 10:31:14 logical AND and logical OR sort of thing 10:31:16 what happens when some moron causes it to circle? 10:31:26 IF is not an instruction 10:31:34 (in this vm anyway) 10:31:58 yeah, I'm still grasping the pseudo "asm", and it's taking awhile. 10:32:05 IF would have to compile something like "? drop ?b [addr]" 10:32:15 ahhhh 10:32:42 which is the same sort of thing I do on ppc 10:32:46 so, the "flag-stack" is more akin to "internal-use" 10:32:49 compire, drop, conditional-branch 10:33:04 what? 10:33:16 I read things you write like that and just have no idea what you're saying 10:34:24 are you asking if the flag stack is mostly used (within the guest system) as a sort of low-level implementation rather than being used directly by programmers? 10:34:27 JasonWoof: I'm used to it, I'm too fuckin' old. What I'm saying is: the fstack is not user-call/code directly push/pop accessbile and is more likely used within the vm itself. 10:34:47 or, have I misread it? 10:35:10 still don't follow 10:35:14 hmm.. 10:35:23 did I guess your meaning correctly in my last stab? 10:35:37 who pushes/pops to fstack (I think yer assumption was right) 10:36:22 these opcodes push/pop the rstack: ?b 0b ?; 0; t; f; ? 0= = < & | ^ ~ 10:36:28 ok 10:36:30 I think 10:36:40 tathi made them up, so I'm guessing on some 10:36:55 so, damnfools cannot fill it, it's internalized. 10:36:59 oh, I think 0; doesn't use the flag stack 10:37:01 but whatever 10:37:07 ye gods. The stack frame overhead for C on PPC is ridiculous. 10:37:14 I know 10:37:23 all but ?b and 0b are likely to be used regularly and directly by programmers 10:37:26 tathi: I gave up trying to learn the frame and abi 10:37:35 oh, sure, you can fill it if you nest conditions too deeply. 10:37:42 ahhh 10:37:43 but I'm guessing that's pretty unlikely 10:37:53 tathi: ok, THAT was what I was checking. 10:37:55 ?b and 0b are likely to be used to implement higher-level controll constructs like IF/THEN FOR/NEXT etc 10:38:16 and even if you overwrite some entries, you have a 50/50 chance of still having the right flag anyway :P 10:38:29 I'd make a recommendation there, but I'll wait a day or two: I'm apparently really pissing JasonWoof off ;-) 10:38:30 tathi: lol 10:39:09 on the whole, I think it looks attractive (in C) 10:39:48 tathi: there's another advantage to the C version :) 10:39:55 tathi: some people can read that better than english 10:39:59 about the only cpu-assumptions I see are size and endian 10:40:01 >:-) 10:40:11 going back to an earlier point, it occurs to me that (because of alignment concerns) even with 8-bit opcodes, you'd want to load 4 at a time and shift down 10:40:13 PoppaVic: yep 10:40:16 rather than loading bytes individually 10:40:25 tathi: exactly 10:40:33 or 8 at a time on a 64-bit machine...hmm... 10:40:37 tathi: perhaps, but with bytes, the LIT issues disappear 10:40:41 and if you're doing that anyway, the size of bytes is irrelivant 10:40:43 * tathi wonders if it would be possible to write it totally portably in C. 10:40:52 yeppers, quite possible 10:40:57 see my url post. 10:41:00 PoppaVic: what LIT issues? 10:41:01 http://www.hypercon.net/~pfv/commonForth.tar.gz 10:41:11 PoppaVic: no, you have it backwards. there _are no_ LIT issues. switching to bytes makes them _appear_ 10:41:24 tathi: oh, jas was mentioning the size/fetch of a partially-embedded lit 10:41:34 PoppaVic: no I wasn't 10:41:47 I was never talking about lits smaller that 32-bits 10:42:05 yeah, you did - but it may be DUE to my questions on 6 vs 8-bit that it made you insane ;-) 10:42:19 we spoke of where they began 10:42:26 I went through the mental excersize outloud of considering doing 8-bit opcodes that were fetched one at a time. and _in that method_ literals are a bitch 10:42:51 I'd not fully agree, but I can see the stance at this point 10:43:17 yeah, then you have to worry about alignment, assuming you're on a CPU that enforces it 10:43:24 seems like most processors object to odd address-base fetches/steps 10:43:31 x86 doesn't, AFAIK 10:43:42 but I gather it's substantially slower... 10:44:40 tathi: that's my impression too 10:44:53 with x86 you don't have to allign, but should if you care about speed 10:45:51 right, it's a speed/size tradeoff - and you need silicon info to make the call, usually 10:47:02 no, it's nothing to do with size 10:47:08 anyway, I see a lot of reasons for the your current sitrep (jas), and I'm just cogitating non-cpu specific issues 10:47:19 well, it might occationally take some 10:47:21 code-size. 10:47:29 or timewise 10:47:40 the only place we pad is where we need to be able to branch to 10:47:54 there are ALWAYS issues, I just try not to dip low enough to care 10:48:05 what's "sitrep"? 10:48:11 situation-report 10:48:32 --- join: virsys (n=virsys@or-65-40-182-104.dyn.sprint-hsd.net) joined #forth 10:48:36 until this am, I had not followed ANY of it. 10:48:39 I hope you're not assuming that we've only considered it's implementation on ppc 10:49:05 no, I already know it's an x86+ppc base (at this time) 10:49:09 the main point of this is so I can have my forth system run the same without porting on ppc and x86 10:49:15 right 10:49:18 ok good 10:49:38 I can't say I disagree, but the various platforms can make me ill 10:50:32 as tathi prolly noticed, I get a bit peeved about platforms/ABI and there are few ways to endrun the silly bastards 10:51:18 but, yeah - the systemic way youare doing things can make shit more "portable" 10:52:53 tathi: I did wonder, looking at the latest C url... I think yer missing a 'register' - has to do with IP, but maybe just because the C and opcode notes don't reflect properly. 10:53:30 prolly just a misnomer on my side. 10:53:41 that's what I've got in the asm version, so probably. 10:53:47 ok 10:53:51 what do you think I'm missing? 10:54:30 I think I had - literally - in my commonForth source an IP and WP 10:54:58 ip was always pointing at-next and wp was always the current/running whatever 10:55:06 anyway, that is prolly me. 10:55:52 the instr/data "folding" going on as shown would bollix that view anyway 10:56:02 here, IL holds the current "instruction group" that we're working on, and IP always points at the next one. 10:56:41 methinks I'd use a struct-of-union and a few ctr/indices 10:56:57 for...? 10:57:01 oh, IP/IL ? 10:57:11 clarity all over, yeah - just me. 10:57:52 I tend to irk C-purists when I use unions.. and tagged-structs REALLY confuzzle folks 10:58:24 err...what? there are all kinds of useful things that you can only do with unions 10:58:39 I know, which is where they and I part 10:58:39 (well, or pointer casting, but I'd think that would irk the C-guys even more...) 10:58:47 all the time ;-) 10:59:00 I mean, look at any event-handling framework in C. 10:59:13 hell, I've even been told that bitfields are "not portable" - which isinsane 11:00:07 it seems to all center on "I was writing this shit when y'all sucked tit" versus "The standard SAYS..." 11:00:26 yeah, seems like there are a lot of people out there who think the standard is god. 11:00:34 yeppers 11:00:38 It's refreshing talking to some of the people who wrote the things. 11:00:46 nice guidelines, but even the expectations need salt 11:01:33 Because they'll tell you that, "sure, the standard says the compiler must issue a warning. But that doesn't mean it's actually a problem on any existing implementation..." 11:01:55 anyway, I think youse folks have an interesting engine. It may be I can twiddle the opcodes order/meaning, but I doubt I can change much else. 11:02:27 right, I dunno HOW often I've mentioned "listen to warnings, but don't wet yerself!" 11:02:45 "A compiler is a good tool, but a bad master" :) 11:02:53 yeppers 11:02:58 Can't disagree 11:03:24 Corollary: "The CPU is NOT GOD" 11:03:34 .... because god is the cpu? ;) 11:03:44 cpu's and platforms are playing-fields 11:04:40 lscd: any vm-writer could write a 'compiler' and 'interpreter' to fake a universe. Emulators are a given anymore. 11:05:54 I can't even weigh them ala' "oD&D" good/evil, lawful/chaotic... Too many variables. 11:06:10 grr...my C version is crashing 11:06:16 * tathi was hoping it would just work :) 11:06:39 the only universal is "The more vm-code and emulation", the slower. Of course, it also allows for more power 11:06:54 tathi: which you using? 11:07:48 ? 11:08:11 I "finished" writing my C version of the VM 11:08:19 tried it on a test image, and it crashed on the first opcode 11:08:19 sticking to ANSI can help... Limiting POSIX can extend it. After and between that, life goes to shit 11:08:25 oh, ouch 11:08:53 hey, I wrote this thing in a couple of hours, in between chatting here; gotta expect it to have bugs 11:08:55 hmm.. vm running externalized images?? 11:09:11 yeah. 11:09:18 or, is this more of the forth-to-? 11:09:34 I could probably figure out how to build an image in, but haven't bothered yet. 11:09:44 just don't ;-) 11:10:13 oddly, yer paralleling gforth ;-) 11:10:17 Oh geez. I started the stack pointers at the wrong end of their blocks, so that would be it hitting the guard page. 11:10:21 duh. 11:10:25 d'oh! 11:10:34 yeah, hopefully I can wind up with something more readable than gforth 11:10:44 god knows, that'd be nice 11:11:38 I can't fault gforth for works/is-portable, but the metacompiler-system/C is just the most noxious bastard. 11:12:05 oi. And now I'm writing lisp syntax in the middle of my C code. 11:12:10 think it's time for a break. :) 11:12:24 I would definitely suggest a vm-struct, btw - lonely-globals are a whore 11:12:40 yeah, and then you can run more than one copy easily. 11:12:46 I'll get to that eventually. 11:12:56 well, it means passing an arg, but yeah 11:13:05 ..simplifies threads or procs 11:13:07 Still just a proof-of-concept implementation at this point. 11:13:16 right, understood 11:19:43 interrressstink. 11:22:09 Ok, enough for now... bb tomorrow. I need to cogitate this schreck ;-) 11:22:12 --- quit: PoppaVic ("Pulls the pin...") 11:22:43 grr. I wanted to tell him to grab the new C version, because it works now. 11:23:00 Well, it works as well as the asm one does, anyway. 11:23:07 Haven't tested either fully yet. 11:31:33 o/~ welcome to my spaceship / you're beautiful forever o/~ 12:02:52 --- quit: saon ("Lost terminal") 12:03:20 --- join: saon (i=1000@c-66-177-224-235.hsd1.fl.comcast.net) joined #forth 13:44:59 I've added a new international version of Quartus Forth, btw -- this one is Dutch. 13:48:21 That makes for a total of nine: English, French, German, Dutch, Spanish, Norwegian, Swedish, Portuguese, and Malay. 14:11:27 Malay? Excellent. 14:11:48 I've had no feedback on the Malay version yet. 14:19:45 Wow. Very nice. 14:20:42 I'd like to add Russian, but I need to investigate further to see what's required to accomodate codepage 1251 on the Palm. 14:27:44 --- join: TheBlueWizard (i=TheBlueW@ts001d0909.wdc-dc.xod.concentric.net) joined #forth 15:02:23 --- join: amca (n=plump@as-bri-4-1-30.ozonline.com.au) joined #forth 15:02:47 Morning 15:03:01 hia amca 15:03:11 How goes you 15:03:14 ? 15:04:05 doing fine...and you? 15:04:21 Good this morning :) 15:04:41 I dont think Ive chatted to you before in here have I? 15:05:59 no 15:06:33 Yay! My memory oisnt as bad as I feared :) 15:06:34 You in America? 15:08:35 yep 15:09:05 Do you mind if I ask how you got into Forth? 15:11:36 oh, I first learned about Forth when I saw the package for C-64 titled "Forth", and a blurb on its back describing it as very flexible yadda yadda....intrigued, I bought it and got hooked on it....that was a long time ago :) 15:12:07 C-64 as in C=64? 15:12:16 As in the 80s Commodore? 15:14:29 yes 15:14:40 hehe 15:14:48 So you are an ancient Wizard eh? 15:16:24 I suppose so :) 15:16:28 hehe 15:16:34 Do you mind me asking how ancient? 15:17:27 Im a very curious person BTW, (I call myself an Info Whore) so feel free just to let me know if I ask a question that is too personal or whatever 15:18:18 Hi TBW 15:18:24 no, I would not say how ancient...but I am not that old 15:18:42 heh.; ok 15:19:06 So what langs have you learnt previous to and after you were exposed to Forth? 15:19:51 hiya tathi 15:22:34 oh quite a bunch....BASIC (several), Fortran, several assembly languages, Pascal, Python, a bit of Prolog, a bit of Logo, a bit of Perl, C, a bit of C++, a bit of Modula-2, a bit of Oberon, some Ada, a bit of Lisp, some Postscript, and certainly some more! 15:23:31 hehe 15:23:48 Did you know them all before you got into Forth? 15:24:54 no....I know some languages before Forth, and I know more languages after 15:25:02 Ah 15:25:29 Cause if you did know them all before, it would have made you even more ancient than I had guessed ;) 15:25:49 * TheBlueWizard points out that Python, for one, was developed in early 90s, which would not be possible under the "learn all languages before going into Forth" scenario 15:26:11 Maybe you used your ancient powers to see into the future :P 15:26:22 Had you mainly done BASIC and assembly before Forth, or had you also been playing C or such? 15:27:14 certainly BASIC and assembly before Forth, and learned C after got exposed to Forth 15:28:01 * amca nods 15:28:18 6502 assembly I take it? 15:28:58 6502, Z80, 680x0 and S/370 15:29:24 Ooo. Havent heard of S/370 15:29:59 Which one did you like the most? 15:30:25 S/370 is IBM S/370 mainframe 15:30:48 Was that a sequel to the s/360 15:30:49 ? 15:30:53 which assembly language did I like the most? ummm 15:32:11 hard to say...I like 680x0...I also like Alpha and PowerPC (though I never have written anything using the latter two) 15:33:02 IBM made a series of mainframes, beginning with S/360...the latest was S/390, which I believe was rechristened to zSeries or something like that 15:33:16 When I first wanted to learn asm, I had a look at x86 (since I use those processors), but even to my naive asm eyes, it looked like an ugly intruction set. I like orthoganality 15:33:28 * TheBlueWizard does not follow the happenings with IBM much (except for Power stuff) 15:33:42 I know a little about the s/360. Read about it in my computer history reading 15:34:41 S/3x0 assembly language is, um, "interesting"....sometimes a pain :) 15:34:47 hehe 15:34:58 Being old CISC, I can imagine 15:35:12 Ill have to have a look at it :) 15:35:46 I like the z80 processor asm. Havent seen too much 680x0 asm. Do you know how it compares to x86? 15:37:19 No, I think of 68K as an early RISC-like processor. 15:37:41 They're nice chips. 15:37:50 features of 680x0: it has 8 32-bit data registers and 8 32-bit address registers, and they are all for generic use, with A7 being specialized as a hardware stack pointer. So no need to worry about segmenting crap, nor about "pointer building" crap like you have to do with 6502 15:38:05 * ayrnieu liked Saturn assembly. 15:38:17 Saturn? never heard of it 15:38:27 HP48G and on use it, or simulate it. 15:38:36 * TheBlueWizard doesn't like x86 assembly, though he knows it too 15:38:56 also, ew, you learned Pascal, Modula, *and* Oberon. That must Wirth has got to be fatal -- and yet here you are. *peer* 15:39:01 * amca doesnt blame you 15:39:09 lol 15:39:48 *peer*? 15:40:24 implementing Forth in x86 proved to be hairy :P 15:40:24 I suspect you of undeadliness. 15:40:52 ayrnieu: are you saying I'm beyond, ahem, ancient? 15:41:32 No. I suggest that learning three spawn-of-Wirth killed you, and that you now roam the earth in search of brains. 15:41:50 oh....*dry chuckling* 15:41:57 Do you have to do "pointer building crap" with z80? I have read a lot about z80 but havent done any coding in it as yet 15:42:04 * TheBlueWizard steals ayrnieu's brain, just for fun of it 15:42:18 * amca lmao @ ayrnieu 15:42:40 pointer manipulation isn't as bad in Z80, though there are a few gotchas with it 15:43:10 Are the gotchas few enough to list here? 15:43:51 don't remember what these days...haven't messed with Z80 in a long, long time 15:44:00 hehe 15:44:01 ok 15:44:09 only remember that there are a few gotchas 15:44:23 I just bought an Amstrad CPC the other year, which is what got me interested in z80 15:44:39 ah 15:44:53 6502 doesnt have index registers does it? 15:45:42 there are two index registers: X and Y 15:45:49 ah ok 15:46:50 * TheBlueWizard snacks on ayrnieu's brain 15:47:02 TheBlueWizard: Anything tasty in there? 15:47:26 mmhmm....various interesting flavors there :) 15:47:48 hehe 15:48:15 --- quit: virsys (Connection timed out) 15:48:20 From what you described, the 680x0's sound a lot more elegant than x86. 15:48:23 * amca looks for specs 15:48:58 So what do you like coding in Forth? 15:49:59 oh yeah 680x0 is certainly better in general. though I do have a few gripes, like 68020 and onward adds double indirection, which is stupid in my opinion, and that certain instructions, like EOR, are not as complete as I'd like 15:50:13 yup, though I don't write much Forth 15:50:22 What do you tend to write in? 15:50:29 what does EOR do? 15:51:05 exclusive-or instruction 15:51:22 o.O Why not spelt XOR? 15:51:33 these days I usually write stuff in Python (cuz I tend to muck with text data in general) 15:51:50 ask Motorola, not me :) 15:52:20 * TheBlueWizard notes that 680x0 is now owned by Freespace, IIRC 15:52:20 hehe 15:52:37 "However, the 68000 was designed with 32-bit registers and address spaces, on the assumption that hardware prices would fall." 15:52:53 good thinking. Certainly more fwd thinking than intel 15:53:49 oh yeah Motorola did a good job of designing the CPU for the future growth. Too bad IBM picked Intel for the CPU, and the rest is history :/ 15:54:11 actually, everything you said preceeding 'the rest' is also history. 15:54:26 LOL true 15:54:32 hello :) 15:54:37 hiya Raystm2 15:54:39 Hello! :) 15:55:13 * Raystm2 hungry brb 15:55:52 how is eor not as complete as it could be? 15:56:15 lemme grab my crusty 680x0 databook 16:00:16 Reading wikipedia, the m68k looks beautiful 16:01:14 m68k's were used in (S)NES machines wherent they? 16:01:23 s/wh/w 16:02:43 ok, comparing AND and OR instructions with EOR instructions, you can see that AND and OR accepts saddr,Dn, but EOR doesn't. (saddr is any source address involving memory access) 16:03:17 Ah. 16:03:20 dunno about (S)NES (though I thought the original NES used 6502...hmm) 16:03:25 Not completely orthogonal 16:03:36 I think you are right. Im getting mixed up I think 16:04:40 680x0 is not purely orthogonal....but it is fairly close 16:04:56 * amca nods 16:05:10 More so than x86 Id say 16:06:23 x86 (especislly 386 and later) is also consistent for most part....but it is a pain, as there aren't as many registers needed to do serious work 16:06:55 and there are a lot of annoying little gotcha here and there 16:07:05 Consistant to a degree, but ..."yuck" basically 16:07:14 yup 16:08:17 From what I have seen of PowerPC, it seems okay. Quite a lot of instructions though 16:09:42 Is it the PowerPC that has the THUMB instructions? 16:09:53 PowerPC is very good, though it does take some more effort to code it up properly 16:10:09 THUMB? never heard of it 16:10:24 Ah, no that is ARM processors 16:12:38 well, gotta go...bye all 16:12:51 bye TheBlueWizard :) 16:12:58 Cya! Good chatting 16:13:02 great talking to ya again :) 16:13:12 bye Raystm2 and amca 16:13:31 amca do you never sleep :) 16:13:34 * TheBlueWizard finishes munching ayrnieu's brain ;) 16:13:49 hehe i read that in the log :) 16:14:04 TheBlueWizard cant be much older than me if at all. 16:14:04 --- part: TheBlueWizard left #forth 16:14:53 It is 9:18 am here :P 16:14:58 I woke at 6am 16:15:23 ah okay 16:15:35 its 6:18pm here 16:15:48 and I woke up about an hour ago. 16:16:21 O_O 16:16:26 Nap or sleep? 16:16:32 sleep of the dead 16:16:48 hehe 16:16:55 but it's all because wify gets home early in the morning from work. 16:17:06 then -- well you know-- for a couple hours 16:17:13 then the sleep of the dead 16:17:13 hehe 16:17:20 I was wondering if that was the case ;) 16:17:46 something about girls sex drive when they reach a certain age.... 16:17:56 hehe 16:18:05 makes ya wish you were still 17 16:18:09 I hear it is when they hit 30 that it tstarts taking off 16:18:28 So all 30 yo women should look for 18 yo husbands ;) 16:18:41 ya 16:19:13 which leaves the 18 year old girls for us old bastards 16:19:23 Im 7 years older than my GF, so god help my heart when she is 30 :) 16:19:29 lmao 16:19:41 I gotta remember that 16:20:06 closer to 40 really, or menopause. 16:20:19 which I think is the wrong term 16:20:31 men on pause is not saying it all. 16:21:19 lol 16:21:23 EAGLES in concert on my tv from Austrailia 16:21:29 O_O 16:21:40 repeat i believe 16:22:19 They are too mainstream for my musical tastes 16:22:40 sure, I grew up with them when they were still cool. 16:22:59 But they were still mainstream in those days werent they? 16:23:04 took my daughter to GREENDAY last weekend. 16:23:20 Even if I was around back then I would have been more into the alternative music. 16:23:34 Although I think I would have still dug Led Zep and Beatles 16:23:37 they were, sure but mainstream wasn't the BAD THING it is today. 16:23:48 Not so commercial? 16:23:56 see, they were the alternative back then 16:24:09 lmao 16:24:25 EAGLES or Led Zep? 16:24:33 both really. 16:24:38 Ah 16:24:52 it was all easy listening back then, soft rock. 16:25:03 Bread, America 16:25:05 * amca vomits 16:25:11 hehehe 16:25:37 clean that up okay. I don't want to hear your fingers splashing on the keyboard. 16:25:58 It is okay. There are other fluids on the keyboard protecting it from the vomit 16:26:08 hehehe 16:27:06 I spent a lot of time learning BEATLES music as a kid. 16:27:07 Been doing any coding recently? 16:27:34 just before Nan came home, I made some changes to the ChuckBot. 16:27:39 Dad was into Beatles. Although he was more into the early poppy stuff, whereas I prefer the later, more alternative stuff 16:27:56 My fave Beatles song is "I am the Walrus" 16:28:02 Gotta go bring in groceries brb 16:28:06 hehe 16:28:07 ya 16:28:13 k 16:39:29 bye all 16:39:40 --- quit: amca ("d34d") 17:01:59 --- join: snoopy_16 (i=snoopy_1@dsl-084-058-129-157.arcor-ip.net) joined #forth 17:08:16 --- quit: Snoopy42 (Nick collision from services.) 17:08:22 --- nick: snoopy_16 -> Snoopy42 17:23:10 --- join: virsys (n=virsys@or-65-40-182-104.dyn.sprint-hsd.net) joined #forth 18:27:03 --- join: ayrnieu_ (n=julian@ip68-13-110-105.om.om.cox.net) joined #forth 18:27:24 --- quit: ayrnieu (Nick collision from services.) 18:27:34 --- nick: ayrnieu_ -> ayrnieu 18:36:37 --- quit: tathi ("leaving") 19:10:33 --- quit: Raystm2 ("User pushed the X - because it's Xtra, baby") 19:24:15 --- join: sproingie (i=foobar@64-121-15-14.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 19:47:07 --- join: snowrichard (n=forth@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 19:47:20 hey jason, crc, everyone 20:12:28 --- join: Raystm2 (n=Raystm2@adsl-68-95-254-73.dsl.rcsntx.swbell.net) joined #forth 20:15:00 hi Raystm2 20:15:29 you in San Antonio? 20:17:20 --- quit: snowrichard ("Leaving") 20:37:21 C is funky 20:38:05 (i = 0)+1 20:38:16 is a nice big fat 4 if i is type int* 20:38:17 --- join: YoyoFreeBSD_ (n=yoyofree@222.90.168.128) joined #forth 20:38:47 interesting 20:44:33 yikes snow didn't stay long :( 20:45:14 JasonWoof, I'd expect that. 20:45:45 hi Quartus 20:45:54 yeah, I understand how that way makes sense 20:46:11 it's just that when I add one to something, I expect it to be one more than before 20:46:28 but I'm just looking at things from a lower level perspective than C does 20:46:35 not supprisingly... I prefer forth 20:47:37 JasonWoof there is now a big fat plug for you and herkforth in the Binarry Adder. 20:48:56 * Raystm2 considers testing Glypher this week with ChuckBot. 20:52:46 Raystm2: thanks :) 20:53:57 no thank you, you inspired the Decimal Adder as well. 20:54:15 Got to figure out Multiplication next :)_ 20:54:51 tho i believe I've got that figured out. 21:15:54 how dos it show the numbers? 21:16:07 (dec add) 21:16:22 s/dos/deos/ 21:16:57 numbers 21:17:08 or beepers if you wish 21:17:15 but numbers is prefered, 21:17:27 You can do the Binary Adder the same way. 21:17:51 there is a word `.b/n' which switches between the two. 21:23:39 Any Russian-speakers in the crowd tonight? 21:25:20 --- quit: Jim7J1AJH ("leaving") 21:28:40 Quartus, Hi, I was wondering, You said something about needing the sales when another here mentioned the Palm. Could you please explain that to me? Do you have work thats earning you a living? 21:29:18 Presently I'm running Quartus Handheld Software as a full-time gig, doing some independent consulting to fill the gaps. 21:30:18 Thanks, That sounds very cool to me, How long have you been in business? 21:30:57 Quartus Handheld Software came to be in 1999, a formalization of the business I'd been running without a name since 1997, when PilotFORTH was first born. 21:32:21 Oh man I don't even know about PilotForth. I'm now at your site, "catching up". 21:32:39 You won't find PilotFORTH except by some digging in the WayBack machine. 21:33:12 I see, Thank you, Actually I'm looking at you palmOS page 21:33:19 the apps really 21:33:41 Everything except three are now freeware. 21:34:44 * Raystm2 nods* 21:38:55 Quartus with the SCX calculator, Is the margin a constant.? is it something I can change per item across a calculation? 21:39:46 You can change it on a per-calculation basis. 21:39:57 ack 21:40:11 It's a solver -- enter any two of cost, sell, or margin, and it solves for the third. 21:40:23 i see. 21:48:01 The SCX calculator -- or more precisely, the bignums library it uses -- is one of the components of the regression test I run whenever I modify the compiler. 21:54:20 i see. 21:59:55 --- join: Jim7J1AJH (n=jim@221x115x224x2.ap221.ftth.ucom.ne.jp) joined #forth 22:02:13 --- quit: JasonWoof ("bedtime for bonzo") 22:19:10 --- quit: virl (Remote closed the connection) 22:32:20 : top ( n -- ) [char] + emit 0 ?do ." -+" loop cr ; : line ( n -- ) [char] | emit 0 ?do ." |" loop cr ; : grid ( x y -- ) 0 ?do dup top dup line loop top ; 23:20:07 --- quit: sproingie (Remote closed the connection) 23:27:18 --- quit: cmeme (Connection timed out) 23:27:45 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 23:45:10 --- quit: cmeme (Connection timed out) 23:46:11 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 23:47:25 --- quit: cmeme (Read error: 104 (Connection reset by peer)) 23:48:07 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 23:49:21 --- quit: cmeme (Read error: 104 (Connection reset by peer)) 23:50:04 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 23:51:17 --- quit: cmeme (Read error: 104 (Connection reset by peer)) 23:52:00 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 23:53:13 --- quit: cmeme (Client Quit) 23:53:56 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 23:55:10 --- quit: cmeme (Client Quit) 23:55:52 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 23:57:07 --- quit: cmeme (Client Quit) 23:57:49 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 23:59:03 --- quit: cmeme (Client Quit) 23:59:46 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 23:59:59 --- log: ended forth/05.08.28