00:00:00 --- log: started forth/16.08.03 00:26:01 --- join: probonono (~User@ppp103-111.static.internode.on.net) joined #forth 00:26:01 --- quit: probonono (Changing host) 00:26:01 --- join: probonono (~User@unaffiliated/probonono) joined #forth 00:26:27 --- join: leaverite (~Thunderbi@121.54.58.133) joined #forth 00:28:13 --- quit: wa5qjh (Ping timeout: 258 seconds) 00:28:13 --- nick: leaverite -> wa5qjh 00:52:17 --- quit: proteusguy (Ping timeout: 276 seconds) 01:13:56 --- quit: nal1 (Quit: WeeChat 1.4) 01:47:40 --- join: joneshf-laptop (~joneshf@c-73-220-86-28.hsd1.ca.comcast.net) joined #forth 02:11:48 --- quit: ehaliewi` (Ping timeout: 252 seconds) 02:33:20 --- quit: ASau (Ping timeout: 240 seconds) 02:40:35 --- quit: ggherdov` (Ping timeout: 260 seconds) 02:44:34 --- join: ggherdov` (sid11402@gateway/web/irccloud.com/x-hjbedujsmfskhedf) joined #forth 03:06:49 --- quit: jeremyheiler (Ping timeout: 240 seconds) 03:07:08 --- join: jeremyheiler (sid81469@gateway/web/irccloud.com/x-txhuxrmzxferqnoy) joined #forth 03:20:00 --- quit: joneshf-laptop (Ping timeout: 264 seconds) 03:21:33 --- join: joneshf-laptop (~joneshf@c-73-220-86-28.hsd1.ca.comcast.net) joined #forth 03:23:07 --- quit: wa5qjh (Remote host closed the connection) 03:49:23 --- quit: joneshf-laptop (Quit: Leaving) 04:37:48 --- quit: nighty (Quit: Disappears in a puff of smoke) 04:44:13 --- join: wa5qjh (~Thunderbi@121.54.58.133) joined #forth 05:18:38 --- quit: DGASAU (Ping timeout: 258 seconds) 05:21:07 --- join: DGASAU (~user@lmpc.drb.insel.de) joined #forth 05:35:25 --- join: nighty (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 05:36:05 --- quit: DGASAU (Ping timeout: 260 seconds) 05:39:58 --- join: DGASAU (~user@lmpc.drb.insel.de) joined #forth 05:51:08 --- join: proteusguy (~proteusgu@183.89.91.231) joined #forth 05:51:08 --- mode: ChanServ set +v proteusguy 06:24:28 --- join: byteflame (~byteflame@70-89-65-45-little-rock-ar.hfc.comcastbusiness.net) joined #forth 07:25:25 --- quit: nighty (Quit: Disappears in a puff of smoke) 08:07:49 --- quit: DGASAU (Ping timeout: 250 seconds) 08:09:38 --- join: DGASAU (~user@lmpc.drb.insel.de) joined #forth 08:42:44 --- join: nighty (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 10:38:58 --- join: nisstyre (~yourstrul@li611-52.members.linode.com) joined #forth 10:39:10 --- quit: nisstyre (Changing host) 10:39:10 --- join: nisstyre (~yourstrul@oftn/oswg-member/Nisstyre) joined #forth 10:41:39 --- join: Lenore (b84a0f22@gateway/web/freenode/ip.184.74.15.34) joined #forth 10:42:26 --- join: bedah (~bedah@dyndsl-037-138-050-144.ewe-ip-backbone.de) joined #forth 10:42:37 --- part: Lenore left #forth 11:13:47 --- join: neceve (~neceve@unaffiliated/neceve) joined #forth 11:14:00 --- quit: neceve (Client Quit) 11:24:25 --- join: MickyW (~MickyW@p4FE8D12B.dip0.t-ipconnect.de) joined #forth 12:27:15 --- join: PoppaVic (~PoppaVic@unaffiliated/poppavic) joined #forth 12:27:32 wow.. 55 whole bodies. 12:30:08 Does anyone happen to recall an FD issue, or have a link to.. I remember a word that would delve down into your turnkey-app and point out only/exactly the words and primitives necessary - nothing extraneous. 12:34:17 Sounds like a kind of FORTH-Decompiler. I don't remember any particular issue. But I may give you a link will all issues and an index for download. Would you want that? 12:34:32 will -> with 12:34:50 MickyW: nah, I downloaded all the pdf's.. Still trying to remember WHEN I saw the damned thing. 12:35:06 It could be as old as my F-PC and F83 experiences. 12:35:46 Basically, it's an overgrown version of "see", so I am sure I could replicate it with a week of cursing and head-scratching 12:35:47 Probably :-) Sorry. I could only help you to find synonymes but I dont remember an particular issue. 12:36:04 MickyW: hey, it's more than anyone else has offered. ;-) 12:37:26 Hm. Lets see. Disforth, FORTH disassembler, cross referencer. Does that make sense to you? 12:37:34 I'm thinking about a tethered/umbilical forth, (for my AVR's at the moment), and it was something I remember from some early imp that would let you chop out all the rest of the dictionary from a turnkey application (which was then written as a .com, iirc) 12:37:41 yeah 12:38:02 Hm. 12:38:29 I can recall doing some whacky stuff years back. But, this would be the whackiest ;-) 12:39:45 OK. Its not really easy, but I remember having done this some 20 years ago as an exercise. 12:40:00 yeah, 20 years ago is about right 12:40:15 maybe even 30 12:40:22 Maybe. :-) 12:40:36 well, I'm old ;-> 12:40:57 I'll have a look at the index. Be patient. Im old too. 12:42:52 Basically, it would entail a recursion thru the app: nesting down to the code-defs for everything and marking/remembering words at every step thru APP.. You need all those words (and interpreters, of course) to run the app. No more or less. Hopefully, that would mean the related words would build with them. 12:43:35 I bet it was something I did with F83, since that remembered the file&screen for every word. 12:44:44 MickyW: I suspect it's just easier to cross-compile the source. 12:45:00 Probably it is. 12:45:35 Well, that's sorta' where the tether works best.. I really, really don't want a "full blown" forth on those poor lil controllers. 12:45:41 But give me a couple of minutes. I just started searching. Shouldn't be in vain. 12:45:49 carry on 12:52:18 Hit! 12:53:14 Volume 5, Issue 6, Page 16. Titled: "Recursive Decompiler". 12:53:20 HAH! 12:53:23 THanks 12:53:37 Think you must add a check for low-lewel words, but it should do. 12:53:59 Was a pleasure. Hope it helps. 12:54:02 I got that one in paper, I think 12:59:38 PoppaVic: Here is the link to the online issue: http://forth.org/fd/FD-V05N6.pdf 13:00:03 MickyW: thank you 13:01:15 Welcome. 13:10:03 I really hate that FIG is defunct and only Forth,Inc. is still around. 13:11:45 woot, managed to implement LOCALS{ } on my forth 13:11:45 nice 13:11:45 although, the pundits decry their use 13:11:45 which is "my forth"? 13:11:45 PoppaVic: Somehow sad, indeed. 13:11:45 a forth system I'm building for the DCPU of notch fame 13:11:45 another game, Tech Compliant, picked up the DCPU spec and is using it 13:15:25 Implemented a machine and a FORTH in minecraft! Hi hi hi. No. I didn't. Just a joke. 13:15:41 But I'm about to implement a "full blown" on AVR. 13:15:41 In memoriam fig. 13:16:45 Yet fumbling with interrupts. Damn problem with stack save and restore right now. Grmbl. 13:20:08 MickyW: well, I managed to build two of the AVR forths.. All on-target, of course - and both were GPL. 13:20:08 stack save&restore? 13:20:09 In case of interrupt. Mine may use words as interrupt service words. So I must save registers and I just saw, that there is a problem. 13:20:09 oh 13:20:33 well, yeah: interrupts have to preserve runtime-state - just push the regs to Rstack work, pop and reti 13:20:37 And I must consider large AVRs as it may run on up to ATMega2650 with 256kB FLASH. Using 3 Byte FORTH-Words. 13:20:44 yeah 13:21:07 MickyW: the 3byte stuff is almost easier to consider 32bit on the stacks. 13:21:26 (keeping the CELL sizes) 13:22:01 I dont understand. You mean, 32Bits words would be easier? 13:22:11 Instead of 24 Bit words? 13:22:17 MickyW: well, 2 pair of 16-bit values, yeah 13:22:36 unless yer down in the machinecode - in that case, go mad. 13:23:39 Ah. I think, not really. 3 Byte words are somehow straight forward as f.e. calls pushing 3 Bytes. And 4 Byte words would waste about 10 Bits or so. 13:23:45 I've been avoiding my Mega... It's so much more useful for reprogramming things.. (which is why I been avoiding screwing my uno bootloader, as well) 13:23:52 Yes. I'm writing it in machine code. 13:24:22 MickyW: yeah, in MC 3 bytes is faster; in higher-level, just dealing with CELLS on the stack makes sense 13:25:37 Yes. But I wasn't really exact. My current problem is, that I messed up something when saving registers on stack before entering the interrupt service word and restoring them afterwards. 13:25:48 ouchies 13:26:22 From what I have seen, the AVR interrupt-handling is weird as hell. 13:26:31 You say it. It looks so eays. How may one mess it up? Wondering :-) 13:26:33 (I mean via forth) 13:29:18 Yes, MC wise - it's not-an-issue: enter ISR; push registers we will use; operate; restore them in reverse-order; reti 13:29:18 ..although I was amused that at least one ISR requires you do a specific op to clear the flag before reti 13:29:28 Yes. And as you might guess, it is a bit more complicated on a emulated machine. You need registers to save all the registers, but you must save them before. So I pushed some of them the parameter stack. And I must have done something weird there. 13:29:41 oy.. emulated? ugh 13:29:57 Seeing FORTH as a machine emulated on an AVR. So to say... 13:30:05 ahh 13:30:21 Matter of viewpoint. 13:30:34 MickyW: well, since there are so many "forths" to call "machines" and emulate.. 13:30:59 which style are you 'emulating'? 13:31:04 ITC 13:31:22 ah, ok.. Old-school, tried&true, FIG and amforth 13:31:43 But I should have selected a DTC, as I saw later. Maybe I will change it, then. 13:32:02 Yeah, I have been waffling myself. 13:32:21 Waffling? Sorry, I'm no native english speaker. 13:32:56 with sub-threaded, yer wasting word-per-call; with DTC, you save a word-per-call, (at the cost of clock-cycles); with ITC you also spend clock-cycles. 13:33:09 True. 13:33:40 MickyW: "waffling: to vacillate between multiple-choices" 13:33:49 But AVR is also hard, because you have only R31 and R30 for doing indirect jumps. Keep moving Z around and around. 13:34:07 Ah. Thank you. Yes. Vacillate! 13:34:13 yeah, and Z is necessary for SPM, etc 13:35:38 Yeah. Sometimes anoying. 13:35:38 I been very tempted to use Z and to DTC thru lists of addresses, just because it makes sense. 13:35:38 Ack. NEXT will be easier I think. 13:35:52 I understand the call-threaded as well, and hey! It makes great sense everywhere with any space.. AVR is so goddamned tight, I just don't like the idea of doubling the size of colon-words 13:37:52 Thats the very reason for 3-Byte words. Only one third more. 13:37:52 well, MickyW - avrforth is subroutine threaded; amforth is itc. You could always build them and examine the listings. 13:37:52 Fumbling with RAMPZ. And ELPM only works with Y and Z. 13:38:00 MickyW: well, 3-byte words really screw yer mem use.. Remember, AVR and such always wants to deal with WORDS - gcc with bytes - and you quickly want to scream 13:38:10 I allready had a look at them. Wanted to be the first with a 3-Byte and interrupts. 13:39:23 But I am a one man show. 13:40:37 MickyW: why not variable-sized addresses? 13:40:37 Urgs. 13:40:37 heh 13:40:38 Hoped to sell it as works on all AVRs not on a subset. And all modells support same word set. 13:40:38 --- quit: bedah (Quit: Ex-Chat) 13:40:38 And - as I said - when I started there where no 3-Byte or interrupts. 13:40:38 In the meantime there are two which cover that - and open source. 13:40:39 which? 13:40:48 I been collecting implementations for ever a year 13:40:51 over 13:41:02 MickyW: well, Forth *is* an emulated machine, really 13:41:27 gordonjcp: more like "each forth is an emulator", I think 13:41:33 There is one called avrforth if I remember correct and the other was one you named above. 13:41:36 PoppaVic: kind of 13:41:58 gordonjcp: well, there are what..? Four models? 5? On umpty machines. 13:43:07 MickyW: amforth-6.1/ 13:43:07 asforth-master/ 13:43:07 avrforth-2010.06.13/ 13:43:07 eforth328-master/ 13:43:07 flashforth/ 13:43:08 myforth-arduino-master/ 13:43:10 SX-Forth/ 13:43:22 PoppaVic: I think we're using different words for the same thing 13:44:05 gordonjcp: It's confusing, because we have different "models" and then the forth community has freely coined words as badly as Arduino for decades 13:44:42 Basically, every implementation is an emulator, and it's "model" is one of several types. 13:45:15 hell, I run into issues with another guy when we speak of DTC vs ITC vs "call-threaded" 13:46:11 gordonjcp: oh, and then we have the Standard issues. 13:46:18 Rodriguez called it "Threading technique" and I find it sufficiently precise. 13:46:56 MickyW: yes, I read his stuff regularly.. And, yes: the issue is there are other authors and terms and it gets muddy.. Fast. 13:47:01 --- quit: impomatic_ (Quit: http://retroprogramming.com) 13:50:34 Sorry. A friend of mine on another channel. Have a nice "whatever the sun says there". 13:50:58 MickyW: heh 14:07:32 --- quit: nighty (Remote host closed the connection) 14:39:45 --- quit: byteflame (Ping timeout: 244 seconds) 15:17:28 --- quit: wa5qjh (Read error: Connection reset by peer) 15:29:35 MickyW: are you planning to run your ITC coe from spi-ram or something? 15:29:41 "code" 15:31:24 PoppaVic: It is located in the internal FLASH-Memory. 15:31:40 ah. 15:31:58 ok, so.. "I wish it was ram, we can point at flash interpreters" 15:33:05 Sorry. Didn't got it. "Flash-Interpreter"? 15:34:01 MickyW: reusing the interpreters, in flash, to run RAM or eeprom words 15:34:56 Ah. 15:35:02 I find that sort of an intriguing idea, though 15:36:01 I bet it would work better with an external SPI ram.. NV or not.. 15:36:30 PoppaVic: Somehow. It's only, that the internal RAM is rather small. So you would need external one (which is no problem on certain AVRs) 15:36:58 But the programs would be not permanent, which I see as drawback. 15:37:58 One could mix both, but this is rather complicated and would need much code. I thought about it but hesitated and finally refused. 15:38:37 MickyW: well, umm.. no.. They would be stored images in spi-ram or an SD-card. Brought in to run, and replaced at need. 15:38:59 You'd end up with pulses of high and low speed 15:39:08 ..but only for colon-defs 15:39:11 The only thing I did, was implementing recursion which needs to refer to incomplete words. They are temporarily located in RAM until they are flashed. 15:39:25 interesting 15:40:14 I've not felt that RAM words were worth the work.. I keep thinking of building/flashing whatever to test, but you end up with a static program and a little "dynamic" mem 15:41:48 in fact, I was noticing it was "cheaper" to use struct locals in C than to fuck with "dynamic" 15:42:35 Thats the point I think. That could be an advantage or a disadvantage under some circumstances. 15:42:55 Even in forth... I rewrote some words the other day in gforth: dropped a var for more stack gymnastics. 15:43:00 But I must say, that this way, to execute code from SD-Card or similar is appealing. 15:43:20 MickyW: yes, so is pcode. (aka 'bytecode') 15:43:45 ..and I continue to glare at that as well 15:43:58 I thought of having FORTH-definitions on SD-Card, not a precompiled intermediate form. 15:44:11 But the latter would be faster. 15:44:23 I must say. 15:44:51 MickyW: the mass-store of lists is not much of a chore, imho.. But, paging blocks from the mass-store to flash and out would be 15:45:04 OK. Thats just a matter of decision. I prefer "pure" FORTH. Dont like that Java-Mess. :-) 15:45:26 dude, please: I never touh jaba - unless something I use is calling on it 15:46:03 And, I am not sure what "pure forth" is, anymore... That def has got to be more sloppy than "pure c" 15:46:44 Ok. Paging to FLASH would be wasteful. Then rather paging to and execution from internal RAM. 15:47:59 I suspect "pure forth" is in terms of only standard forth words - a secondary, (and unlikely w/o the burden fo horrible 'standards'dary 15:48:02 "pure" FORTH in contrast to a Byte-Code which I unterstand as a compiled form like Java with its ... how is that machine modell called? Dalvik? 15:48:07 ahhh 15:48:43 bytecode can be anything.. In my headspace it would be an index into a table of functions or a C "switch/case" 15:49:22 "pure" FORTH as a sequence of word addresse in contrast to Byte-Code-Commands which are interpreted, causing calculations or transport (resembling machine code). 15:49:31 no 15:50:04 all this "purity" will screw you 15:50:25 PoppaVic: What you said remembers me (besided Java) to BASIC-Interpreters. OK. Its just a formal distinction. I will not insist on "pure", but on the difference. 15:50:48 I've been thru FIG, F79, F83, F-PC, PFE, PFORTH, and other nonsense.. So, you need to plant your feet 15:51:23 remember: an "interpreter" is just lookup-and-run. Forths go the next step (AT THE LEAST) 15:52:11 the BYTECODE is usually just a value that pretends to be an address, and you see it and leap to a related routine. 15:53:25 Nonsense? See, I am interested in discussing that, but it is late (here). About one in the night and I am very sleepy. I will be back almost for sure tomorrow at about 6 or 7 pm GMT. 15:53:25 so, you can likely encode a "core of forth" in any language, like we would make syscalls/bdos/bios, and anything BEYOND those would be real routines - usually secondaries 15:53:40 MickyW: ok, it's 4pm here 15:54:13 See? :-) You are in advance of me. :-) Much more awake than me. 15:54:30 MickyW: maybe, but I wake late and drink early ;-) 15:54:43 OK. Have a nice afternoon. Would be nice if we could continue tomorrow. 15:54:49 in any case. I am *ALWAYS* on freenode 15:55:03 np. sleep well, pm me if I forget. 15:55:05 Ah. Fine. Bye. 15:55:13 I will. 15:55:16 Bye. 15:56:01 --- quit: MickyW (Quit: Verlassend/leaving) 16:26:01 --- join: ASau (~user@netbsd/developers/asau) joined #forth 17:37:44 --- join: byteflame (~byteflame@50.25.160.41) joined #forth 17:54:52 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 18:21:03 --- join: neceve (~neceve@unaffiliated/neceve) joined #forth 18:55:19 --- quit: karswell (Read error: Connection reset by peer) 18:59:08 --- join: karswell (~user@179.63.114.87.dyn.plus.net) joined #forth 18:59:08 --- quit: karswell (Remote host closed the connection) 19:00:26 --- join: karswell (~user@179.63.114.87.dyn.plus.net) joined #forth 19:12:39 --- join: nal (~nal@adsl-64-237-236-186.prtc.net) joined #forth 19:49:46 --- join: mnemnion (~mnemnion@2601:643:8103:f9d0:f539:74ba:ec3:ffdc) joined #forth 19:55:56 --- quit: mnemnion (Ping timeout: 250 seconds) 19:58:55 --- join: nighty (~nighty@202.224.50.1) joined #forth 20:20:38 --- quit: karswell (Read error: Connection reset by peer) 20:22:13 --- join: karswell (~user@179.63.114.87.dyn.plus.net) joined #forth 20:53:10 --- join: mnemnion (~mnemnion@c-98-207-249-139.hsd1.ca.comcast.net) joined #forth 20:57:16 --- quit: mnemnion (Ping timeout: 240 seconds) 20:59:15 --- quit: Zarutian (Quit: Zarutian) 21:36:33 --- quit: neceve (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 21:50:42 --- quit: proteusguy (Ping timeout: 276 seconds) 22:00:03 --- quit: byteflame (Ping timeout: 240 seconds) 22:20:17 --- join: Keshl (~Purple@24.115.181.94.res-cmts.gld.ptd.net) joined #forth 22:22:00 --- part: orzo left #forth 22:54:28 --- join: mnemnion (~mnemnion@2601:643:8103:f9d0:f539:74ba:ec3:ffdc) joined #forth 22:58:39 --- join: proteusguy (~proteusgu@180.183.113.163) joined #forth 22:58:39 --- mode: ChanServ set +v proteusguy 22:59:09 --- quit: mnemnion (Ping timeout: 250 seconds) 23:00:20 --- quit: impomatic (Read error: Connection reset by peer) 23:53:28 Is there a standard way to traverse the dictionary? For example, if I know that started at HERE and ended at THERE, could I portably get the xts of all words defined from HERE to THERE? 23:55:04 --- join: mnemnion (~mnemnion@2601:643:8103:f9d0:f539:74ba:ec3:ffdc) joined #forth 23:55:40 hmm 23:56:00 other bthan using 'words'? 23:56:19 isn't the output of WORDS implementation-dependent? 23:56:30 indeed 23:57:06 but it and the wordlist support are all that 'know' the structure 23:59:47 --- quit: mnemnion (Ping timeout: 250 seconds) 23:59:59 --- log: ended forth/16.08.03