00:00:00 --- log: started forth/06.03.31 00:00:13 JasonWoof: sent you an email through your site 00:02:11 --- quit: snowrichard (Client Quit) 00:06:15 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 00:10:37 hello 00:31:42 --- quit: snowrichard ("Leaving") 00:36:20 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 00:36:38 --- quit: snowrichard (Read error: 104 (Connection reset by peer)) 00:36:42 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 00:36:47 --- quit: snowrichard (Read error: 104 (Connection reset by peer)) 00:48:27 --- quit: arke (Remote closed the connection) 00:54:13 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 01:04:43 --- quit: snowrichard ("Leaving") 01:51:58 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 01:53:56 hi 01:55:55 --- quit: snowrichard (Client Quit) 04:47:49 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 04:57:25 --- join: rehges (n=segher@blueice2n1.de.ibm.com) joined #forth 05:32:02 --- join: Cheery (n=Henri@a81-197-45-47.elisa-laajakaista.fi) joined #forth 05:38:05 --- join: PoppaVic (n=pete@0-1pool47-154.nas30.chicago4.il.us.da.qwest.net) joined #forth 06:26:58 hmm 06:53:06 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 06:56:45 tathi: what sort of changes to fovium were you contemplating? 07:03:34 JasonWoof: I think he was trying to clarify better bytecoding and funcs. 07:08:47 prolly adding "dictionary" concepts, too 07:18:15 --- join: arke (i=c_walton@lnx101.hrz.tu-darmstadt.de) joined #forth 07:40:14 JasonWoof: oh, I was just messing around 07:41:15 I was going to document it, and then I just got experimenting instead 07:42:10 experimenting is fun 07:43:02 although...if we changed to something other than absolute addressing for branches, then opcode 0 could just be 'branch'. 07:43:47 PoppaVic: the bytecoding part of fovium is just fine :) 07:43:56 Yes, I saw that 07:44:14 I was just wondering if you'd lookup/dictionary and window 07:44:41 if I understand what you mean by "window", then absolutely not. 07:45:30 but I'd almost certainly add the dictionary stuff as opcodes for a scripting-language thingy. 07:45:46 I think you have to 07:46:13 It's like writing both a forthish "assembler" and the code that does the "asm-code" 07:47:28 you don't have to 07:47:37 not if you're just writing a VM 07:47:58 you just need a way to load the code to get you started with 07:49:07 I know, understood. 07:49:18 oh, ok then 07:49:38 The VM is like writing directly in the MC. THe dictionary-side sorta' adds "ASM" 07:50:27 btw... I've been trying to better and better codify ideas, and just learned (verified) something I suspected... 07:51:10 it looks like all the new 64-bit folks use 64-bit ptrs, but 32-bit integers. 07:52:53 I've been trying to work up sensible sizes and func/macro/accounting where it matters. 07:55:35 huh 07:55:45 I thought win64 was the only platform that used LP64 07:56:11 oh, lord no - I apparentl;y stirred up a nest of hornets in ##C 07:56:41 very odd. 07:56:57 I get told int64 is a waste, so they use int32, and ptr64 - but asking about PADDING really pissed off some folks. 07:57:23 wait, but are they saying that the C compiler's 'int' is 32 bits? 07:57:28 basically, no one is supposed to care 07:57:29 or that they explicitly use a 32-bit type? 07:57:55 tathi: on the 64-bit systems, apparently an int is 32, a size_t is 64 and a void* is 64 07:58:25 which makes me believe we've got one helluva mess about ranges and sizes. 07:59:09 PoppaVic: not on all 64bit systems 07:59:24 stdint.h should have been introduced YEARS ago, and folks need to realize that the int/uint/short/long is just a macro 07:59:47 oxygene: well, shit - now what? I just had three or four guys try to rape me for even asking! 08:00:34 PoppaVic: use u?int{8,16,32,64}_t, forget about the native types (int etc) 08:00:44 that's very odd -- all the sites/mail-lists that I've seen claim that all C compilers except win64's use the LLP64 model (64-bit ints). 08:01:03 btw, tathi - I'd love if we could debate typedef vs macro in terms of immediate, compile, etc 08:01:29 oxygene: yes, I understand that - then I asked about PADDING and got hollered at. 08:02:11 well, if you care about padding, by definition you're doing something platform specific. 08:02:11 tathi: apparently, most guys see "long long" as 64-bit, and some even see long as 64, and plain int is 32 08:02:33 tathi: hey, I was just curious. FFI with structs will do that. 08:02:38 I guess things have changed then. I don't keep up with gcc at all :) 08:03:31 all I can say about it is: you guys are nuts - you don't even know yer fucking ranges, let alone padding, offsets, etc 08:03:32 lately they seem to keep releasing newer, bigger, buggier versions, with more error messages 08:03:44 Yeah, I've seen that 08:03:53 ..gforth's latest had a similar issue 08:13:31 tathi: the latest gforth despises doubles, let alone floats 08:37:07 --- quit: PoppaVic ("bbl") 08:44:47 --- nick: Raystm2 -> nanstm 08:59:02 tathi: I think it'd be cool to change the branch addressing thing 08:59:50 I like the idea of using xor 09:00:44 yeah. I also realized that the small slot is at the end, which is kind of annoying. 09:01:01 but I don't see a good way (in software) to put it at the beginning 09:01:44 why is that annoying? 09:01:59 because it does no good that the branch instruction fits? 09:02:06 yeah 09:02:24 oh, and we should probably change the opcode of the call instruction for the same reason :) 09:03:11 oh, weird, I forgot it was 2 09:03:39 I must have been thinking the small slot was first. 09:03:59 because I remember thinking that call would be really common, and putting it there on purpose :) 09:04:15 no, we picked the opcodes before we realized that we needed to be word-aligned for returns 09:04:55 yeah, ok, but I still put it there thinking it would be good for it to fit in the small slot 09:05:09 well, I think it's cool that (if we switch to xor) the last two bits will sometimes be enough for the branch address 09:05:15 if foo then 09:05:16 swapping it with return probably makes the most sense 09:05:20 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 09:05:21 :) 09:05:46 hi tathi 09:05:54 hi 09:06:24 return sounds good 09:06:48 Hi Jason 09:06:56 hi snowrichard :) 09:07:30 --- join: PoppaVic (n=pete@0-2pool236-233.nas22.chicago4.il.us.da.qwest.net) joined #forth 09:07:31 I got fovium to compile with Suse10, but I don't have an image to try it with 09:08:09 linux? 09:08:14 yes 09:08:18 snowrichard: I e-mailed you about this 09:08:21 fovium is pretty plain 09:08:33 oh ok I just got up haven't checked yet 09:08:39 actually, it's even lower than "plain" 09:08:56 that was the general idea :) 09:09:02 right 09:09:09 the bug was fixed in svn, but I didn't make another tarball until today 09:09:15 tathi: except, you sorta' mixed "levels" a few cunthairs 09:09:25 PoppaVic: how's that? 09:09:33 well, system() 09:09:54 oh. yeah, that was kind of necessary. 09:09:56 there is internal, there is core, and there is file-system. 09:10:04 PoppaVic: how do you expect to interract with the OS? 09:10:11 ppc has a system call instruction 09:10:12 this is sorta' the organized-insanity of posix 09:10:20 JasonWoof: that's nice 09:10:34 meanwhile, the OS is not the kernel, or the filesystem. 09:11:02 JasonWoof: from forthers, I'd expect better organization/layering, is all. 09:11:09 * JasonWoof doesn't understand anything PoppaVic says 09:11:23 JasonWoof: dat's nice - wuv you 09:11:23 PoppaVic: what's the alternative? 09:11:28 layering 09:11:33 levels 09:11:36 that's not an answer. be specific. 09:11:48 what's wuv? 09:11:54 fovium is SUPPOSED to be - essentially a superCPU. 09:11:58 ..and emulator. 09:11:59 er...no. 09:12:13 no 09:12:25 fovium is supposed to be a consistent runtime environment 09:12:56 for the primary purpose of allowing Jason's colored forth system to run most anywhere 09:13:12 emulating a CPU without any access to the outside world is totally useless 09:13:18 I need to interract with the user 09:13:31 specifically I want keyboard input and graphical output 09:13:46 I got news for you: that's how chips work 09:14:19 you're how chips work 09:14:29 so, if adding a layer literally means more-supports, it's not a "bad thing" - particularly for thinking levels/devices 09:14:43 71! wow, it's nice out 09:14:48 I'm outa here 09:14:53 Yeah, it's NICE out there 09:15:09 PoppaVic: what the crap are you talking about? 09:15:15 say something specific 09:15:26 nm.. I'll go back to my corner 09:15:36 "layer" is a very vague and general term that could mean just about anything in this context 09:15:45 yep 09:16:02 so why do you say it as though it convyed some meaning? 09:16:13 or are you just flapping your mouth? 09:16:17 "context" 09:16:21 well I've got to go to my Mom's and pick up my allowance and rent check, so catch you later 09:16:27 yep, just flapping. 09:16:43 --- quit: snowrichard ("Leaving") 09:17:21 PoppaVic: if it makes you feel better, think of system() as in() and out() rolled into one, with some fancy peripherals on the other end ;) 09:18:40 ahhh 09:18:49 that might help, when I view it 09:20:21 it isn't really, but it's easier to handle from both ends (the VM and the bytecode that runs on it) than regular i/o or mmapped i/o. 09:20:54 for our purposes, it seems like the most sensible design decision, even if it does look a bit out of place on such a bare-bones VM. 09:22:04 right... I can sorta' see it, tathi 10:15:01 hmm, system() should not be a bytecode 10:15:11 use an FFI to call whatever POSIX stuff you need 10:20:04 yeppers. 10:45:29 slava: interesting == "what FFI at level-zero" versus "level-N" 10:45:40 ..and, "define a level" 10:47:18 This, (to me), always suggested a Z80-like "windowing" of what folks called "opcodes" 10:47:48 ..and, remember: the Z80 was predicated on "the 8080" 10:55:03 --- join: pizza_ (i=pizza@poipu/supporter/pizza-milkshake) joined #forth 10:55:05 factor has a bunch of primitives for writing data to the code heap, and for changing a word's xt to a code heap location 10:55:19 then the ffi can be built 'from scratch' by the compiler 10:57:45 yes, as long as it is a codified-methodology 10:58:10 did you get into stack/entry typing yet? 11:08:11 --- quit: PoppaVic ("Pulls the pin...") 11:09:17 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 11:09:43 hi 11:23:49 --- quit: tathi ("leaving") 11:44:50 JasonWoof thanks for the email. I got the new tarball 11:49:10 --- join: Ray_work (n=Raystm2@adsl-68-90-195-65.dsl.rcsntx.swbell.net) joined #forth 11:49:16 --- join: Ray-work (i=Raystm2@adsl-68-90-195-65.dsl.rcsntx.swbell.net) joined #forth 11:49:19 Hi ray 11:49:52 is it Ray_work or Ray-work :) 11:49:56 Hi snowrichard! 11:50:05 Taking a little lunch break here 11:50:14 it's both. 11:50:27 what are you doing today? 11:50:39 downloaded the new fovium to look at 11:50:56 and its payday fo rme 11:50:58 for me 11:51:06 Oh cool, JasonWoof's vertual machine forth. 11:51:19 ya payday here as well. 11:51:37 I could use some more money. :) 11:51:51 I inherited some back taxes. 11:52:03 I can't complain -- the va gives me 2480 a month, non-taxable 11:52:22 cool. but did you have to get hurt to get that? 11:52:27 well yes 11:52:36 Purple Heart? 11:52:48 no, it wasn't war time or in a combat zone 11:52:54 ah 11:53:15 just after the Iranian Hostage crisis 11:53:26 do you mind me asking what the disablility is? Obviously you have your brain power. 11:53:41 it was a head injury, they say I'm schizophrenic 11:53:52 oh heck that was what early 80's? 11:54:04 yeah 81 11:54:25 6 months in Navy hospital 11:54:26 I graduated in 81 and was 17 in boot camp. Thought I was gonna join you there. 11:54:44 I was in USN as well. 11:54:45 What was your rating? 11:54:50 DP2 11:55:08 what's that? Data Processor? 11:55:12 yeah 11:55:15 cool. 11:55:17 trained monkey 11:55:20 hehe 11:55:33 How does a DP2 get a head injury, Hard Code? 11:55:39 computer operator. 11:55:59 the ship was doing propulsion test, flank reverse and hard right rudder 11:56:05 hit a locker with my head 11:56:15 whoa no kidding. 11:56:23 sorry man. 11:57:14 I was an Underway Replenishment Specialist, I held 4 ratings. 11:57:19 it was very repetitive work. Making flight recorder tapes, loading them back into the system, making backups. 11:57:32 I see. 11:57:38 Carrier then? 11:57:46 yeah CVN-69 11:58:06 I got some good photos of sunrise during UnRep one day 11:58:08 69 which is that? 11:58:12 Eisenhower 11:58:19 the IKE okay :) 11:58:31 cool about the photos. 11:58:45 I was on AE24 PYRO. 11:58:53 west coast. 11:59:08 I have no idea which ones serviced us. 11:59:31 I know, they steel into the night. :) 11:59:33 the ship was nuke, but they had to load JP-5 periodically , and the groceries of course 11:59:41 right. 12:00:00 that nuke stuff used to be 'real' fun. 12:00:23 men would freak out when they knew it was on board. 12:00:33 Never really bothered me tho. 12:00:48 worked one time in the storeroom during a replenishment. dropped a jar of mayonaise. :) 12:01:05 yikes now that is a real bio hazzard. 12:01:15 :) 12:01:33 prob'ly where you schiz came from :) 12:02:31 remember them pushing a pallet of soft drinks over the side because it had roaches in it 12:02:54 oh man have i got a story for ya... 12:03:26 The Enterprise was gonna pull into San Fran for fleet week during low tide. 12:03:49 in the Bearing straights we took everything they could send us, to lighten the load. 12:05:58 --- quit: Ray_work (Read error: 110 (Connection timed out)) 12:06:54 and? 12:17:09 --- quit: Ray-work (Read error: 104 (Connection reset by peer)) 12:26:42 Classified, apparently. 12:34:54 slava: I have no interest in a ffi 12:35:10 for fovium 12:35:27 wait, where's PoppaVic to talk about layers and context? 12:35:56 I just want a dirt simple runtime environment that is exactly the same on all platforms 12:36:03 And vocs and semantic?\ 12:38:37 I especially liked 12:38:43 "context" 12:39:03 Clean. Simple. Leaves nothing behind but the great scent of Brut. 13:07:02 --- quit: Cheery ("Leaving") 13:30:21 --- quit: rehges () 14:11:33 hi 14:22:20 --- quit: snowrichard ("Leaving") 14:37:56 JasonWoof: what if somebody wants to write one as an optional library? 14:38:00 JasonWoof: how would it 'plug in' to the vm? 14:42:00 --- mode: ChanServ set +o crc 15:06:41 drat. there's a bug in fovium in the other-endian detect code 15:07:31 slava: though a system call 15:09:16 will you be able to implement fovium in itself? 15:45:34 --- join: Amanita_Virosa (n=jenni@adsl-69-154-178-250.dsl.hstntx.swbell.net) joined #forth 15:45:50 hi 15:45:59 good evening 15:46:18 heya 15:46:22 the weirdest forth i've ever written... 15:46:35 is a three-stack forth that stores blended datatypes on the two datastacks, and is used to drive a general-purpose assembler. 15:47:00 Blended like a fine scotch? 15:47:09 mmmm 15:47:49 hehe i don't know about that, blended more like... "numbers and symbolic labels" 15:48:49 Not nearly as good as the scotch, I fear. :) 15:49:32 probably not 15:50:05 What's weird about it, aside from the extra stack? 15:54:04 well, the fact that the stack can contain symbolic labels is kinda weird 15:54:12 and the fact that it's a purely interpreted language 15:54:21 or the fact that it's actually just the backend of an assembler... that's pretty weird too 16:03:28 Were I to tackle an extra stack, I think I'd approach it by adding the stack to an existing Forth. Were there advantages to building a new Forth for the purpose? 16:04:12 it went quite the opposite way around 16:04:37 the forth was built, but it needed a third stack, because the return stack stores string pointers, which are incompatible with the blended types on the data stack 16:06:17 Hmm. 16:07:57 and the strange requirements on the language limited what existing forths (ie, none) could be used for it) 16:08:26 Must be strange. 16:09:22 hi all 16:09:38 well to give you an idea, it's called from an instruction match module... so it calls a forth function for each line of assembler 16:09:41 it's a strange setup 16:09:42 but it works well 16:11:10 that is quite strange ;) 16:11:20 The Forth assemblers I've done work the same way, with the exception that the dictionary more-or-less *is* the instruction match module, each mnemonic determines the instruction context and proceeds accordingly. 16:11:34 sure, i know how forth assemblers work 16:11:36 and i've written one 16:11:39 but this isn't a forth assembler 16:11:46 Sounds similar in nature, though. 16:11:47 it takes regular format assembly 16:11:58 and it's designed to allow the internal instruction table to be reprogrammed 16:12:07 yes, it's not too different 16:12:22 tho it also generates full relocatable code, multisection object files, the works 16:12:35 Multipass, I assume. 16:13:28 not exactly 16:13:32 the assembler is one-pass 16:13:49 tho the resulting object file might require interlinking 16:14:26 Forward branches to as-yet-unresolved labels? 16:15:30 that just generates unresolved reloc entries 16:15:40 you can link those in one of your linking passes 16:16:09 Perhaps no requirement to optimize forward short branches for the target architecture, then. 16:16:41 that can be done explicitly by the programmer if desired 16:16:43 but generally no 16:16:59 Not a tragedy. :) 16:17:07 its meant to be generic and flexible moreso than optimal 16:17:29 Ok. 16:37:58 slava: sure, you could implement fovium in fovium 16:42:19 should be pretty easy 16:42:23 there's onl 64 instructions 17:02:10 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 17:14:14 --- quit: Amanita_Virosa ("Wewps") 17:21:30 hi 17:22:44 --- quit: snowrichard ("Leaving") 17:29:06 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 17:30:58 --- quit: uiuiuiu (Remote closed the connection) 17:31:02 --- join: uiuiuiu (i=ian@dslb-084-056-241-002.pools.arcor-ip.net) joined #forth 17:35:26 hi 17:39:32 --- part: snowrichard left #forth 17:51:02 : fv-gen-table 0 64 for dup op, ,; 1+ next drop ; 17:51:36 what is ,; 17:51:42 postpone ; 17:52:10 ok 17:52:35 that wouldn't work for all opcodes 18:01:47 --- join: LOOP-HOG (n=chatzill@sub22-119.member.dsl-only.net) joined #forth 18:01:52 hi LOOP-HOG 18:02:07 hi 18:02:16 what's going on? 18:02:58 I'm working on documentation 18:03:13 on what? 18:08:06 the handbook for RetroForth 9.1 18:10:18 OH 18:10:20 neat 18:22:50 --- nick: nanstm -> Raystm2 19:42:00 --- join: segher_ (n=segher@dslb-084-056-142-124.pools.arcor-ip.net) joined #forth 19:48:15 --- join: scope__ (n=junk@njd.paradise.net.nz) joined #forth 19:48:18 --- nick: scope__ -> scope 19:54:13 --- quit: segher (Read error: 110 (Connection timed out)) 20:55:30 --- quit: LOOP-HOG ("ChatZilla 0.9.61 [Mozilla rv:1.7.5/20041217]") 22:33:26 --- quit: segher_ (niven.freenode.net irc.freenode.net) 22:33:30 --- quit: uiuiuiu (niven.freenode.net irc.freenode.net) 22:33:31 --- quit: virl (niven.freenode.net irc.freenode.net) 22:33:33 --- quit: crc (niven.freenode.net irc.freenode.net) 22:33:33 --- quit: Jim7J1AJH (niven.freenode.net irc.freenode.net) 22:33:33 --- quit: saon (niven.freenode.net irc.freenode.net) 22:33:33 --- quit: madwork (niven.freenode.net irc.freenode.net) 22:34:16 --- join: crc (i=crc@pdpc/supporter/active/crc) joined #forth 22:34:16 --- join: segher_ (n=segher@dslb-084-056-142-124.pools.arcor-ip.net) joined #forth 22:34:16 --- join: uiuiuiu (i=ian@dslb-084-056-241-002.pools.arcor-ip.net) joined #forth 22:34:16 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 22:34:16 --- join: Jim7J1AJH (n=jim@221x115x224x2.ap221.ftth.ucom.ne.jp) joined #forth 22:34:16 --- join: saon (i=1000@unaffiliated/saon) joined #forth 22:34:16 --- join: madwork (n=foo@derby.metrics.com) joined #forth 22:34:27 --- mode: irc.freenode.net set +o crc 23:02:30 --- join: Robert (n=robert@unaffiliated/robert) joined #forth 23:04:37 Was reading in comp.lang.forth about someone wanting to use Forth instead of XML, and someone else pointing out the security implications... I'm not interested in the "XML" part, just wondering what kind of solutions you know of for a secure Forth (as in one having to execute untrusted code) system. 23:06:48 Robert: create a sandboxed inner interpreter that disallows access to some dictionaries. then move all critical words to such a protected dict 23:09:46 I would/will use a system which doesn't support such dictionaries. 23:32:31 How about if there is a need (for example, for a script) to do general-purpose computations? Then it would most likely need access to @, ! or equivalent words. Have you played with bounds checking, or special words to access variables with? 23:39:15 hmm? well, I don't have played with it. I only guess at the moment. 23:45:11 but what is the problem with bound checking? or for @, !? ok, when you have the raw access with it to memory then it's a pita.. 23:46:07 I suppose other ways to handle variables and arrays could be better. 23:46:19 @ and ! are too low-level 23:46:41 well, no they aren't too low level.. 23:46:51 For this application they are. 23:46:58 well, no... 23:47:09 it depends on their implementation... 23:49:38 for example, they could also check each time when they are used if it's allowed to access a memory cell. 23:50:28 and then they don't do this operation 23:51:12 or what should be better suited? a word named secure-! or what? which does the same what I said? 23:51:24 well, that's crazy or stupid. 23:51:37 a word nth ( i array -- elt ) which bounds-checks an array index and returns the element 23:52:33 disgusting... 23:53:12 why? 23:55:02 iirc, it was asked what would be 'secure' and not data integrity, I think they both don't have anything todo with each other. 23:55:29 well, you probably don't like that. 23:59:31 can xell run programs yet? 23:59:59 --- log: ended forth/06.03.31