00:00:00 --- log: started forth/06.02.24 00:09:48 is it me or does loop-hog go off on a tangent in the channel and have a conversation with nobody? lol 00:33:33 --- join: skylan_ (n=sjh@dialup-216-211-5-79.tbaytel.net) joined #forth 00:34:11 --- quit: skylan (Remote closed the connection) 00:42:41 --- quit: moreCowbell ("Computer goes to sleep!") 01:46:26 --- quit: I440r (Read error: 110 (Connection timed out)) 03:59:54 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 04:59:52 --- join: rehges (n=segher@blueice1n1.de.ibm.com) joined #forth 05:27:41 --- join: PoppaVic (n=pete@0-1pool46-226.nas30.chicago4.il.us.da.qwest.net) joined #forth 07:07:26 --- join: Cheery (i=Henri@a81-197-45-47.elisa-laajakaista.fi) joined #forth 07:42:45 --- join: sproingie (n=chatzill@64-121-2-59.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 08:01:51 --- quit: PoppaVic ("Pulls the pin...") 08:03:36 --- join: PoppaVic (n=pete@0-1pool74-248.nas24.chicago4.il.us.da.qwest.net) joined #forth 08:16:17 tathi: btw, I think I resolved the 'see' coring out with a bus-error. 08:16:57 it's a stupid, low-level test, but it seems to work 08:20:05 oh? 08:22:10 yeah, I was doing shit like "see oop" - and it'd die ugly. I just added a casting/compare before. It apparerently needs a sighandler, because his code is screwed. 08:22:52 I was running into word-ptrs that were around 0x46 08:25:41 --- join: ravenEx (i=ravenEx@VPN-224-82.aichyna.com) joined #forth 08:31:55 --- quit: PoppaVic ("make a beer-run and call it a knight") 08:47:57 'word-ptrs that were around 0x46'? 08:48:47 --- quit: sproingie (Remote closed the connection) 08:48:51 I dunno 08:49:20 he's right that it crashes if you do "see oop", but I didn't follow anything beyond that 08:49:31 In ##c today he actually corrected someone who said "your" to "you're". I was expecting "yer", it was a big disappointment. :) 08:49:51 lol 08:50:22 coz, you know, you've got yer commies with their autoshit coming at you from all directions. 09:03:30 Apropos of nothing, Julian Noble's double-double float stuff looks neat. 09:05:22 Where's that? 09:11:36 comp.lang.forth, let me find the link 09:11:56 http://galileo.phys.virginia.edu/~jvn/ 09:14:56 ah, it was farther back on comp.lang.forth than I looked. gotcha. 09:15:35 Interesting 09:19:37 --- join: I440r (n=foo@ns.laserscope.com) joined #forth 09:20:06 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 09:21:59 I440r: have you ever used your ihex reader? 09:28:57 --- join: PoppaVic (n=pete@0-1pool74-44.nas24.chicago4.il.us.da.qwest.net) joined #forth 09:30:04 tathi: you alive? 09:32:07 --- quit: rehges () 09:58:09 PoppaVic: ping 09:59:56 sorry, patched ficl4 - as I said (well, not a patch), but I was thinking about their whole "instruction" foo. 10:01:28 Don't most of these - like ficl - use a miserable switch() for the "instructions" or a vtable? 10:03:42 dunno. I thought FICL was just indirect threaded 10:04:30 tathi: hmm... well, they use SOMETHING that has a huge number of cases under a switch... like a cheapskates vtable. 10:04:33 tathi whats ihex reader ? 10:04:40 ohhh 10:04:41 yes 10:05:07 it is part of the 8051 disassembler heh - its NOT a very robust way of loading intel hex files but it works :) 10:05:15 could probably be improved on 10:05:39 I always agree when ix86 is the endall 10:05:41 I440r: it doesn't look like it should work at all 10:05:46 it does 10:05:51 what looks wrong about it ? 10:06:14 : >digit upc $30 - dup 16 > 7 and - ; 10:06:30 heh 10:06:34 thats fine 10:06:58 yeah, it'll just give you the wrong values. 10:07:16 the $30 minus converts $30 to $39 into 0 - 9. if the result is larger than 16 after that conversion we subtract a further 7 10:07:48 dup 16 > returns a true or a false 7 and makes taht t/f into 7/0 respectivly 10:07:53 which we then subtract 10:07:54 oh, right, you'll never have values in the middle 10:07:59 the code is fine 10:08:03 yup 10:08:07 because it doesn't use those chars, ok. 10:08:11 :) 10:08:30 also : get-buffer 3 8192 allocate !> codebuff ; 10:08:37 hiho.. 10:08:54 erm 10:09:13 is that 3 8193 or 38912 ? 10:09:32 3 8192 10:09:34 i dont believe allocate chanved from two params to one. it was always just one 10:09:43 AND it returns a flag 10:09:55 so it would always store t/f to codebuff 10:09:56 oh. it didnt used to lol 10:10:20 put a drop in there or test the flag heh 10:10:37 im not sure what that 3 is for - it might be a typo that got introduced 10:10:46 yeah, that's not the problem, that's just as far as I got in reading the code before I got distracted. 10:10:49 but teh code was working because i used by 8051 disassembler heh 10:11:03 I tried it on a file and it didn't stop 10:11:10 you forgot to take yor riddlin didnt you hehe 10:11:16 you keep getting sidetracked :P 10:13:04 * PoppaVic sighs 10:13:53 I see...FICL does have a switch, in ficlVmInnerLoop 10:14:16 yeah, several 10:14:21 I don't know the source at all well 10:14:40 It's not insurmountable - by it makes life.... Interesting 10:14:51 by/but 10:22:31 tathi: you can see #Metabuilder and our download-url for the latest ficl4 that has your patches and my (immense) changes., btw 10:22:52 or, I can email you an attachment 10:23:47 ..Basically, all we now lack is "VOCS", I guess... I am NOT happy about the way they bend ideas/rules/std over the sofa. 10:24:04 is the guy doing ficl folding your patches in ? 10:24:08 I440r: ah, bother. It's just endianness issues. 10:24:11 Mostly, I think they just provide some interesting ideas 10:24:23 lol 10:24:35 tathi hah i didnt think of that :) 10:24:43 tathi: well, of course: you need NBO before the sprintf/sscanf 10:25:24 reading one char at a time is silly anyway, should just use fmmap or whatever that word is called. 10:25:26 generating the hex is nice. If it's multibyte, you need ordering. 10:25:36 mmap? 10:25:40 tathi u shud know that svn is down and will be for a while. im no longer at that address so the IP is no longer mine 10:26:08 heh 10:26:13 I can't fully agree... Just because the mmap advocates seem to use it loose and lamely 10:26:20 I just assume svn is going to be down :) 10:26:21 i moved into a new apartment but then had to drive from san antonio tx to san jose ca for a 4 month contract. i have svn here with me so when i get internet it shud be back up on another temporary IP :) 10:26:47 tathi: np, I "speak C" ;-) 10:27:07 I440r: my copy is now a darcs repo as well as an svn working copy :) 10:27:30 heh 10:27:32 whats darcs ? 10:27:42 rcs system 10:27:46 ugh 10:27:50 blech 10:27:54 what he said 10:27:57 lol 10:28:06 cvs, rcs, it's all a mulch 10:28:07 hmm... s stands for system doesn't it :) 10:28:12 they use PVCS here where im working - gona try get them to convert to svn :) 10:28:32 I rather like darcs 10:28:40 well, it never seems to mean "source" 10:28:54 I find svn to be well worth it, even on projects where I'm the only one committing 10:28:56 ghc runs almost everywhere these days 10:29:21 "ghc"? 10:29:28 dillo google.com 10:29:36 oops 10:29:55 Glasgow Haskell Compiler 10:30:05 darcs is written in haskell. 10:30:07 ahh - die well ;-) 10:30:08 I've got rxvt and irssi on adjacent fkeys 10:30:27 anyway, ok - time to go make dinner. Stay well, folks 10:30:31 --- quit: PoppaVic ("Pulls the pin...") 10:33:09 I440r: anyway, if you'd host a semi-reliably available svn server, I wouldn't have to use anything else ;) 10:34:27 its not my fault~ 10:34:38 lol 10:34:50 svn was reliable (ish) for a whole year! 10:34:50 lol 10:35:08 btw could you create reposatories on svn before ? 10:35:38 you could perfectly well use dyndns or something instead of just the IP address. 10:36:02 no, I don't think so. 10:36:03 yea i know - but thats a pain in the ass lol 10:36:23 yea - i was planning on adding the ability to do that but svn was a machine INSIDE my local network 10:36:30 i was forwarding to it from my firewall 10:37:05 whatever. I'm just using darcs. :P 10:37:37 I tried bzr too. It's more svn-like, but it's written in Python, so it's slow as mud. 10:38:56 lol 10:44:09 "the first mark of a primitive society is that it thinks itself advanced" 10:48:43 we are advanced. we are advancing to the rear 12:41:04 --- quit: tathi ("rebooting") 12:50:06 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 13:19:55 --- quit: tathi ("leaving") 13:35:33 --- quit: uiuiuiu (Remote closed the connection) 13:35:38 --- join: uiuiuiu (i=ian@dslb-084-057-242-195.pools.arcor-ip.net) joined #forth 13:40:40 --- quit: Cheery ("Leaving") 14:17:47 --- quit: ravenEx (Read error: 131 (Connection reset by peer)) 14:42:14 --- join: thinkinginbinary (n=tom@phoenix.thomastuttle.mooo.com) joined #forth 14:42:27 Quartus: Hey 14:43:03 Hey. 14:43:24 Quartus: Where've you been? I haven't seen you around lately. 14:43:41 I think I was offline for a night or so. 14:43:54 Ah. 14:44:22 Maybe two. 14:47:39 I might *finally* get to buy some electronic stuff this weekend. 14:48:36 Soon the room will be filled with solder fumes! 14:48:40 lol 14:48:48 I'll open a window. 14:49:07 I can't wait, this is going to be really cool. 14:50:36 My only recent soldering experience was repairing a pewter figure. 14:51:17 I want one of these: 14:51:31 http://www.thinkgeek.com/gadgets/tools/69d3/ 14:51:32 Here's one: 14:51:33 ah 14:51:56 Oh yes. They sell those nearby; I've wondered if they work well. 14:52:28 Never tried one. 14:52:35 Thinkgeek refuses to stock them, but says they do :-b 14:52:50 Apparently you get 700+ joints on 4 AAA batteries. 14:53:35 I used to wire-wrap prototypes. 14:53:48 I'm going to pick up a breadboard. /me is lazy. 14:55:21 Have you seen Intel's latest Pentium Extreme Edition? It's dual core, with two 3.46 cores *each* with 2 MB L2 cache. (65 nm process) It's more than $1000, unfortunately. (/me isn't getting one anytime soon :-() 14:55:32 I haven't. 14:55:38 They look cool. 14:55:51 http://www.newegg.com/Product/Product.asp?Item=N82E16819116246 14:55:53 Sounds like rather the opposite, big heat generator. :) 14:56:01 Oh yeah, 1066MHz FSB. 14:56:02 Oh they are. 14:56:55 Although apparently the 65nm process makes them cooler. (Intel probably uses up all the headroom it gains by increasing core count and core and bus speeds.) 14:58:55 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 15:23:02 --- quit: thinkinginbinary ("leaving") 15:29:09 --- join: danniken (i=CapStone@ppp-70-252-87-94.dsl.ltrkar.swbell.net) joined #forth 16:00:47 --- join: amca (n=plump@as-bri-3-82.ozonline.com.au) joined #forth 16:51:25 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-137-087.pools.arcor-ip.net) joined #forth 16:59:51 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 17:00:16 --- nick: snoopy_1711 -> Snoopy42 17:07:32 --- quit: I440r () 17:41:12 --- part: danniken left #forth 17:48:56 --- join: thinkinginbinary (n=tom@pool-68-163-202-241.bos.east.verizon.net) joined #forth 17:49:14 Quartus: Hey, I got a simulator for the PIC I'm going to be using (well, a similar one). What are some good words to start with? 17:50:53 --- quit: amca ("d34d") 17:51:02 --- join: amca (n=plump@as-bri-3-82.ozonline.com.au) joined #forth 17:54:21 Hey. Words? 17:55:07 Well, think back to the Java Forth I helped you build, start with the dictionary, move to the interpreter, etc. 17:55:12 Quartus: OK. 17:55:40 Quartus: Well in this Forth the memory and stack management is going to be more difficult, so should I do that first? 17:55:44 Build the VM and associated primitives, build the dictionary and associated primitives, build the interpreter and associated primitives, then start adding new words as required. 17:55:52 The VM has to be built first, so yes. 17:56:08 That'll determine the memory model, the register allocations, the stacks. 17:56:18 Quartus: There is no VM this time (unless you mean threading). 17:56:29 Quartus: Or you just mean like stacks 'n' stuff? 17:56:38 There's always a VM. Stacks, dictionary, etc. 17:57:45 Quartus: Oh. Yeah. I guess I just considered that the environment. 17:58:14 Six of one, half-dozen of the other. It's the VM, even if the execution model is native code. 17:58:18 Yeah. 17:58:24 Which yours isn't, as I recall. 17:58:59 Well, it's indirect-threaded, so yeah, I guess the thread-following-thingy is a VM. 17:59:11 Part of it. The execution engine. 17:59:31 The 'inner interpreter', in antique lingo. 17:59:38 This is gonna *rock*. 18:00:18 --- quit: saon (Read error: 104 (Connection reset by peer)) 18:00:24 Well, unlike many, you actually write and finish at least some of what you start, so there's a better chance of actual rocking. :) 18:00:37 Hahaha. My brother thinks I don't. 18:12:01 So, NEXT is the traditional name for the thread interpreter? 18:12:39 I don't know that the thread interpreter has or needs a name, per se. 18:12:56 Quartus: Well, I gotta jump to it sometime. So it needs a name. 18:13:16 Internally, sure. 18:13:34 Externally, it's EXECUTE. 18:15:46 --- join: saon (i=1000@unaffiliated/saon) joined #forth 18:16:42 What happens when native code needs to call threaded code? 18:23:01 Pass the xt to EXECUTE. 18:24:06 And then when that returns? It will return to the previous threaded word, not the native code. There are two separate return stacks. Badness? 18:25:38 That's not quite how it works -- you'd do well to have a look at a reference implementation. Perhaps eForth. 18:26:03 Didn't you already work this out with your Java Forth? Calling native routines from the VM, and vice versa? 18:26:13 Yes, with a Java-only hack. 18:26:18 It used exceptions to return from native code. 18:26:49 Perhaps I'll just have to pay attention to how I call things in native code. 18:27:53 Always wise. :) 18:30:23 You could also code your system such that it's unnecessary to call threaded code from native code. 18:30:29 Yeah, that would be good. 18:31:26 --- quit: tathi ("foo!") 18:32:08 Or modify the inner loop to exit when a specific sentinel value shows on the VM return stack. 18:32:29 Or have a separate version of the inner loop just for that purpose. 18:33:12 Okay... As the interpreter is running, when it finds a threaded instruction, what does it do? Push the current IP+2 on the RS, put the new address into IP, and loop back? 18:33:43 The inner interpreter, you mean? The execution engine? It has to execute that instruction. 18:34:43 If it represents a call to another threaded word, it has to store an address on the VM return stack and nest into the thread. 18:38:41 One way to manage calling threaded code from native code is to set up what we used to call a 'trampoline' -- a modifiable thread with two instructions in it, the first being the thread you want to call, the second being a native routine that performs the neat trick of returning to your native code routine. 18:40:19 You modify the first instruction in the thread and call your inner interpreter with the address of the trampoline. 18:41:41 Still there? 18:45:22 --- quit: amca ("d34d") 18:49:28 Yeah. 18:50:21 Trampoline idea make sense to you? 18:50:26 Yeah. 18:50:39 Although the whole thing is still fuzzy in my mind. 18:50:45 Best to try it out. 18:52:59 Is "EXIT" the instruction that returns to the previous thread? 18:53:12 Yes. 18:53:28 Same as in your Java version. 18:59:35 Oh yeah, I remember... I used -1 as the sentinel in the Java version. 19:00:59 Stepping out for a few. 19:01:14 ok 19:32:00 Back. 19:32:23 --- join: arke (i=f2@bespin.org) joined #forth 20:03:08 Hey! 20:03:11 It pushed a number on the stack! 20:03:51 I wrote code that punches the thread for (literal) 257 EXIT into RAM, and then starts that thread. 20:04:00 (257 == 0x0102, so I can see if the byte order's right.) 20:11:26 And it carries right. 20:11:30 Alright, I gotta go to bed. 20:12:22 --- quit: thinkinginbinary ("leaving") 20:33:41 --- join: LOOP-HOG (n=chatzill@sub22-119.member.dsl-only.net) joined #forth 20:52:54 --- quit: LOOP-HOG ("ChatZilla 0.9.61 [Mozilla rv:1.7.5/20041217]") 21:18:24 --- nick: nanstm -> Raystm2 22:03:18 --- quit: EnragedTux ("Leaving") 22:58:48 --- join: rsyncx (n=bob@CPE000c41aac435-CM00111ae4f4cc.cpe.net.cable.rogers.com) joined #forth 23:26:21 --- join: Entopical (i=entop@d161-184-112-112.abhsia.telus.net) joined #forth 23:59:59 --- log: ended forth/06.02.24