00:00:00 --- log: started forth/06.08.23 00:06:54 --- quit: JasonWoof ("off to bed") 00:31:23 --- quit: LOOP-HOG ("Leaving") 01:03:04 --- join: nighty (n=nighty@tin51-1-82-226-147-104.fbx.proxad.net) joined #forth 01:11:29 --- quit: Raystm2 (Read error: 104 (Connection reset by peer)) 01:14:49 --- join: Raystm2 (n=NanRay@adsl-68-95-251-93.dsl.rcsntx.swbell.net) joined #forth 01:25:20 morning ray 01:47:00 --- join: Cheery (n=Cheery@a81-197-19-23.elisa-laajakaista.fi) joined #forth 02:31:58 --- join: nighty_ (n=nighty@tin51-1-82-226-147-104.fbx.proxad.net) joined #forth 02:47:06 --- quit: nighty (Read error: 110 (Connection timed out)) 03:35:48 --- nick: astecp_ -> astecp 03:53:10 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 03:54:30 --- join: segher_ (n=segher@dslb-084-056-169-025.pools.arcor-ip.net) joined #forth 04:04:50 --- quit: segher (Read error: 110 (Connection timed out)) 04:21:42 --- join: PoppaVic (n=pete@0-1pool67-198.nas22.chicago4.il.us.da.qwest.net) joined #forth 05:19:34 --- quit: Quiznos ("I gotta love you, i do NOT have to like you -- BAHAHAHAHAHAHA") 05:42:44 --- join: nighty- (n=nighty@tin51-1-82-226-147-104.fbx.proxad.net) joined #forth 05:50:31 --- quit: nighty_ (Read error: 60 (Operation timed out)) 06:10:58 --- quit: PoppaVic ("Pulls the pin...") 06:22:09 --- join: PoppaVic (n=pete@0-3pool196-195.nas30.chicago4.il.us.da.qwest.net) joined #forth 06:25:33 --- join: Ray_work (n=Raystm2@199.227.227.26) joined #forth 07:03:21 --- nick: Raystm2 -> nanstm 07:15:16 --- quit: nanstm ("Should have paid the bill.") 07:16:32 --- join: Raystm2 (n=NanRay@adsl-68-95-251-93.dsl.rcsntx.swbell.net) joined #forth 07:17:31 --- nick: Raystm2 -> nanstm 08:32:56 --- join: Raystm2 (n=NanRay@adsl-68-93-122-48.dsl.rcsntx.swbell.net) joined #forth 08:36:09 --- quit: nanstm (Read error: 60 (Operation timed out)) 08:40:22 --- join: vatic (n=chatzill@pool-162-84-156-148.ny5030.east.verizon.net) joined #forth 08:40:41 --- nick: Raystm2 -> nanstm 08:47:49 --- quit: PoppaVic ("Pulls the pin...") 09:04:42 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 09:27:30 hg 09:27:39 which is almost hi in another keyboard layout 09:30:59 fission: which layout? 09:31:15 dvorak 09:31:43 I use it at home, and qwerty at work 09:32:05 so it sometimes takes me a few minutes to make the switch 09:32:11 Ick. 09:32:44 I guess it helps keep your brain plastic. 09:35:51 fission: serious cognitive dissonance, but I hunt and peck anyway. 09:36:05 heh well I enjoy the fact that I can touch-type on different layouts 09:36:41 fission: put colorforth stickers on my keyboard and now I don't type so fast. But I'm building up speed again. ;-) 09:38:27 --- join: JasonWoof (n=jason@unaffiliated/herkamire) joined #forth 09:38:27 --- mode: ChanServ set +o JasonWoof 09:40:00 vatic: ahahaha 09:40:10 yeah you need one of those keyboards without keycap labels 09:40:42 dvorak isn't really faster, though 09:41:12 dvorak is definitely faster than qwerty 09:41:44 typically 20% 09:42:08 of course it varies per individual 09:42:23 it's more like 50% for me 09:42:37 my dvorak is slow. but thats cause i dont dvorak often. 09:42:46 I went from about 45wpm with qwerty to 60 09:42:56 to 70wpm with dvorak 09:43:03 I always do 09:43:06 that helps 09:46:13 --- join: EsotericMoniker (n=Esoteric@209.8.233.232) joined #forth 09:56:07 --- join: swsch (n=stefan@pdpc/supporter/sustaining/swsch) joined #forth 09:56:22 hey swsch! :) 09:56:30 hi there Ray_work 09:56:54 I'm turning to the Dark Side ... 09:57:10 programming in Java and actually appreciating some parts of it 09:57:27 heh 09:57:32 like 2 out of 75 things are good 09:57:34 ehehe 09:58:00 ... still waiting for my father to appear somewhere ... 09:59:44 uh oh ... there goes the phone again ... dang those support days 10:20:09 --- quit: vatic (Remote closed the connection) 10:26:20 --- quit: nighty- (Read error: 110 (Connection timed out)) 10:39:16 --- quit: Quartus (Read error: 104 (Connection reset by peer)) 10:51:00 --- join: Sonarman (n=cleetus@adsl-71-141-116-224.dsl.snfc21.pacbell.net) joined #forth 10:51:19 --- join: Quartus (n=trailer@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #forth 10:51:20 --- mode: ChanServ set +o Quartus 11:27:43 --- join: Snoopy42 (i=snoopy_1@dslb-084-058-115-238.pools.arcor-ip.net) joined #forth 11:34:33 --- quit: madwork ("?OUT OF DATA ERROR") 11:35:16 --- join: madwork (n=foo@derby.metrics.com) joined #forth 11:36:58 Latest RetroForth ANS layer: http://retroforth.net/paste/?id=153 11:38:32 Optional case-insensitivity, and a few other enhancements. 11:44:50 cool 11:45:18 Thanks. It's to where it can accept many large ANS sources unmodified. 11:47:41 very cool 11:47:55 I keep forgetting that you can just write a compatibility layer 11:48:39 For some systems it may be substantially more difficult to do this. RetroForth isn't all that different from a normal Forth. 11:49:03 right 11:49:15 how'd you do the case-insensitivity thing? 11:50:08 I talk about it in the comments there. Ideally I'd hook into the string-compare, but there's no hook, so I lower-case all new word names and then have a fallback search for lowercased ones. 11:53:48 It eases the loading of other people's sources. I have yet to find any Standard Forth stuff kicking around that depends on a case-sensitive Forth. 11:54:14 Found about eight that define a word as, say, : setXY ; and then call it later as setxy. 11:55:03 No sources yet where somebody was crazy enough to make two words that differed in function but had names that only differed in case. 11:58:14 Nothing as whacked as the C++ style Item item = new Item(); 11:59:37 Somebody suggested that case-sensitivity was important because there might be two variables named CarPass and CarpAss in the same program. I like that one. :) 12:00:40 hehe 12:01:19 one tiny point against camelCase 12:01:34 One huge point in favour of intelligent naming. 12:01:58 Because really, are you counting carp asses, or what? 12:02:02 but that would be a very funny bug 12:02:41 Is it a boolean -- yes there's an ass on this carp, or no there isn't? 12:03:16 Or is it whether or not a given carp's ass has a car pass? 12:04:36 if (CarPass == CarpAss) throw(fish|yourMom) 12:05:57 heh 12:06:50 Come down to Shop'N'Save! Show your CarPass and get a free CarpAss! Balloons for the kiddies. 12:12:47 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 12:19:06 if(cantRap) { sing("Oh, come all ye critters"); canTrap = true; } 12:20:31 Never gets old. : 12:20:32 :) 12:32:41 --- join: swsch_ (n=stefan@pdpc/supporter/sustaining/swsch) joined #forth 12:49:00 --- quit: swsch (Read error: 110 (Connection timed out)) 12:59:05 --- join: nighty (n=nighty@tin51-1-82-226-147-104.fbx.proxad.net) joined #forth 13:06:07 --- join: neceve (n=claudiu@unaffiliated/neceve) joined #forth 13:07:20 lol ya'll 13:07:28 Hi ray 13:09:44 'lo 13:10:14 hehe I got one noWhere/nowHere :) 13:12:20 --- part: oxygene left #forth 13:18:51 t 13:19:04 heh 13:19:21 noTracking notRacking 13:30:57 --- join: rabbitwhite (n=roger@136.160.196.114) joined #forth 13:32:16 --- join: GoGoDncr (n=GoGoDncr@74.132.197.239) joined #forth 14:05:55 --- quit: astecp (sterling.freenode.net irc.freenode.net) 14:06:05 --- join: astecp (n=aspect@death.dissension.net) joined #forth 14:11:20 http://c2.com/cgi/wiki?BadVariableNames 14:30:53 k4jcw: fun :) 14:30:56 I like this part: 14:30:59 in the early years mind you, it 14:31:00 shames me to say, I would name my counters things like Dracula, Chocula, MonteChristo 14:31:20 They are all 14:31:21 counts after all. 14:34:51 I've seen some old 8080/z80 assembly where state names were used for labels. JMP Texas, CALL Nevada, etc. 14:35:04 Also some odd names thrown in here and there, like 'lollipop' 14:38:11 so I hear that 82C is too hot for my CPU temperature 14:38:32 idealy, you're right, thats too hot. 14:39:21 unfortunately, the world is not ideal. i have a dual-opteron rig that runs one CPU at 60, the other at 80. the difference is one of the processors is placed after everything else airflow-wise. 14:39:26 bad case design. 14:39:29 --- join: Quartus__ (n=Quartus_@209.167.5.1) joined #forth 15:03:22 some days I feel like just throwing my computer right off the balcony 15:05:33 oh.. you are some of those 'I kill my computer with a big gun' guys 15:05:43 some = one 15:06:29 hehe 15:06:38 fission, hey. 15:06:49 hi Quartus 15:08:50 --- part: crc left #forth 15:10:10 --- join: crc (n=crc@pool-70-110-129-33.phil.east.verizon.net) joined #forth 15:10:53 --- mode: ChanServ set +o crc 15:11:32 --- quit: GoGoDncr (Remote closed the connection) 15:16:13 --- quit: Ray_work ("User pushed the X - because it's Xtra, baby") 15:16:31 --- quit: rabbitwhite () 15:26:21 --- quit: virl (Read error: 104 (Connection reset by peer)) 15:28:06 * fission picks at his rolls 15:29:47 I implemented both for the retro ANS layer with my usual reluctance. Nasty words. 15:30:08 : roll ?dup if swap >r 1 - recurse r> swap then ; 15:31:11 --- join: slava (n=slava@CPE0080ad77a020-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 15:31:11 --- mode: ChanServ set +o slava 15:31:26 Likewise, : pick ?dup if swap >r 1 - recurse r> swap exit then dup ; 15:31:45 or : pick ?dup if swap >r 1 - recurse r> swap else dup then ; 15:33:02 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 15:33:15 hi virl 15:33:49 Quartus: wouldn't a better way be : pick cells sp@ + @ ; ? 15:34:05 slava, yes, if the stack is addressable. 15:34:12 assuming stack grows down 15:34:33 have you ever used a forth where it is not? 15:34:51 I've used Forths that didn't have sp@. 15:35:10 And others like retro where the TOS is cached, so would have to be flushed first. 15:35:19 ok 15:35:45 does ans code run as fast as retro code with your bridge? 15:35:50 or is there some overhead? 15:36:22 No overhead. It runs faster in some cases, as the ANS layer has an optimized implementation of literals, constants, and variables. 15:36:33 hmm 15:37:11 I have a couple of additional optimized words I'm testing; with those the ANS fib bench runs considerably faster than the one coded directly for retro. 15:37:11 will you make a floating point wordset? 15:38:01 If I find one already written for the x87 fpu, I might. No interest in drawing one up from scratch. 15:38:17 There's a floating-point ANS emulation lib that already runs neatly on top of the ANS layer. 15:38:26 Eckert's, from tinyboot.com. 15:38:36 ok 15:38:59 --- quit: neceve (Remote closed the connection) 15:39:11 --- quit: Quartus__ ("used jmIrc") 15:39:30 Quartus: roll is especially annoying heh 15:39:42 It only lacks integration with the interpreter's number-recognizer, so it needs F# in front of floats. 15:39:49 Quartus: it's interesting how you realize how much things cost once you try to implement them heh 15:40:08 factor doesn't have anything like pick and roll at all, or even ?dup 15:40:10 fission, pick and roll, however efficiently-implemented, are still evil programming practice to use. 15:40:22 Quartus: yes 15:46:51 --- join: Quiznos (i=1000@unaffiliated/quiznos) joined #forth 15:46:57 re 16:06:43 --- join: JasonWoo1 (n=jason@c-71-192-33-206.hsd1.ma.comcast.net) joined #forth 16:21:11 --- join: Amanita_Virosa (n=jenni@adsl-70-241-18-203.dsl.hstntx.swbell.net) joined #forth 16:22:10 --- quit: swsch_ ("Leaving") 16:46:41 Additional low-hanging fruit, and a correct list of providing/missing words: http://retroforth.net/paste/?id=155 16:47:47 Just out of curiosity, what's your fascination with retroforth? 16:48:01 I haven't got a fascination with retroforth. 16:48:23 Seems like you've been doing a whole bunch to/with it, lately. 16:49:14 In terms of making it a Standard system, which is the only form in which it's useful to me as a tool. I had and have a mild interest in seeing the novelties that are incorporated in retro, but that's not my reason for fixing up the ANS layer. 16:51:36 I do have an interest in finding the simplest ways to implement Standard Forth, and also in writing readable code. Be interested to know where you think that layer could use additional documentation/comments. 16:52:50 ANS doesn't mean much to me. I know what it is, but for my level of Forth programming (to date), it doesn't do anything good (or bad) for me. At least, not yet. 16:53:11 k4jcw what level of coding is that? 16:53:17 Simple programs. 16:53:25 k 16:53:27 It means being able to share code with other implementations, which is of considerable value . 16:53:33 Quartus: then asside from the novelties you'd use gforth? 16:54:13 I'm not being flippant here, but I don't have any code worth sharing. If I wrote useful stuff, it would be more of a consideration. 16:54:15 TreyB, I use gforth anyway. Having two completely different implementations at hand to confirm function, particularly when one is case-sensitive, is nice. 16:54:23 k4jcw, not just sharing your own, but using others. 16:56:01 One thing I noticed about a lot of the examples I've seen you write, Quartus, is the lack of documentation. I periodically read the stuff paste files you've been putting up, and I have a hard time following it. Perhaps it's not your norm, but I rarely see an explanation of how it works. Maybe more experienced Forth programmers than I can glance at it and know what's going on, but I'm certainly not one of them. 16:56:14 k4jcw, any examples? Or are you talking about the ANS layer? 16:56:31 ANS layer. I don't know that I've seen any of your other code. 16:56:44 Quartus: Thanks. It just piqued my curiosity. 16:56:47 i've read the quartus forth docs, even though i've never run it :) well written imo 16:57:11 Thanks slava. :) k4jcw, the ANS layer isn't meant as a teaching document; I even leave out stack diagrams for words that are defined in the Standard. 16:57:29 Can you point me at a sample of your more typical work? 16:57:48 It expects familiarity with both RetroForth and Standard Forth. 16:58:26 If you want to see if I can explain myself, I'd suggest what slava kindly commented on -- the manual for Quartus Forth. On the Palm, generally there's not a lot of inlined commentary, though I don't write comment-free code as a rule. 16:59:34 Does the manual represent a typical Forth program you write? Or does it mostly explain what each word does? 16:59:55 The manual isn't a Forth program. 17:00:01 rather, does the manual contain an example of a typical Forth program you've written? 17:00:22 These and many other questions are quickly answered by having a look at the thing, k4jcw. :) 17:00:24 Right. There's a difference between documentation that defines each word and it's behavior, vs a program. 17:00:52 factor has online hypertext help instead of comments 17:01:21 There's also a tremendous difference between writing a program that's expected to be readable by someone who has a modest level of expertise in the language, and program that's meant to teach the language to a rank beginner. 17:01:30 I wonder if that will work properly now, since the drivers for my video card under X have been repaired. 17:03:14 Right. And my question was, do you have a typical example of your commenting? ANS is not typical, and you make a distinction between a teaching level document and some for more experienced people. 17:04:36 I have written any number of teaching snippets in my forum over the years, but I'd have to go hunting to find one. I haven't done any large-scale programming where I also pedantically explained each step as though to a novice. Teaching needs to be an external (and, hopefully, preliminary and ongoing) step. 17:05:04 --- quit: nighty (Read error: 54 (Connection reset by peer)) 17:07:21 Apparently I am not communicating clearly. I will shelve this for now. 17:07:56 I shared a routine with a new Forth programmer recently; externally documented. To follow it he verticalized the whole thing, and put stack diagrams next to each line. That's something beginners often do and need, before they learn to recognize the idioms and phrases in the language. 17:11:16 Here's a paste of something I wrote recently -- didn't write it for publication, just for my own purposes. http://retroforth.net/paste/?id=156 17:13:20 That's a rule-of-thumb minimum -- stack diagram for each word, description of its purpose just under that. 17:13:48 If there was anything especially peculiar in a word that needed commenting, I'd first try to re-write it so there wasn't, and then failing that I'd comment it. 17:16:23 But if you don't know, for instance, what the standard words tuck swap >r r> and ud/mod do, you'll stand no chance of understanding the internals of mu/mod. 17:16:37 sorry. um/mod. 17:21:56 I'd hope someone fairly conversant with Forth would be able to follow the ANS layer with the retro documentation open in another window; likewise, someone conversant with retro, with a copy of the Standard at hand. I build increasingly with Standard code as the file progresses, 17:22:36 but I never avoid using retro optimizations where they occurred to me. Even at that, a non-retro Forth person might find it easier going to start with the definitions at the bottom, as there's less retro in 'em. 17:24:39 There's also a bit of hair right at the top of the file, as I wanted to write a large comment section without having to \ each line, so I built [if] [else] and [then], which revector system facilities and are a bit tricky to follow. If you skip that and start reading just under the block comment, it should be easier going. 17:28:05 k4jcw, did you find time to try to re-factor that word you pasted a few days ago? 17:34:35 Quartus seems to be the big contributer 17:44:23 It's enjoyable work, with specific goals, and concrete results and benefits. Good practice, too. 17:45:17 which good forth programs are ans forth things, btw? 17:45:33 All the ones you undoubtedly hate, virl. 17:45:37 I don't know any of them. I know only good other forth implementation programs 17:45:41 all the commercial forths are ans, so a lot of custom/embedded stuff 17:45:50 Quartus, you can't imagine what I hate. 17:45:57 Sure I can. You hate everything. 17:46:02 virl: what good forth programs are there? 17:47:09 I've written a few I'd dare to call 'good', given that they work, generate no new bug reports, and continue to sell. :) 17:48:09 with good I mean more killer-apps 17:48:40 virl: what do you consider an example of a good "killer-app" forth program 17:49:30 for example games 17:49:36 a concrete one 17:52:23 He must be thinking. 17:52:47 Stroq 17:52:56 url? 17:53:03 for example, I couldn't remember it's name 17:53:11 so I needed to lookup again 17:54:03 http://www.strotmann.de/twiki/bin/view/APG/ForthStroqSource 17:54:57 yeah. 17:55:10 you should port it to a modern forth 17:55:21 man, I such an idiot, that seems to be written in ans forth 17:56:19 well, then this is not so disgusting than other ans source 17:57:52 or what type of forth is it? well, it has some ans things in it. 18:00:59 I hate that, what for a stupid mistake. 18:01:28 you should stop hating everything and do something productive 18:02:20 I do something productive, I'm not the hater who you imagine. 18:02:21 Slava, the hate is his excuse so he doesn't have to do anything productive. 18:05:52 you are making it youself too simple 18:06:07 Don't you just hate that? 18:06:19 Feel your hate... Come to the dark side. 18:06:47 (We program C in the dark side. And some Perl.) 18:06:57 (But no Python. Even the dark side won't touch that caca) 18:07:28 k4jcw, ? 18:07:38 Quartus, no, I haven't. I got sidetracked from working on that with something else I had to write to support a demo. 18:07:40 Interesting. X-Forth is an Atari 8-bit Forth from 2003, that's on its way to becoming a Standard Forth. http://www.strotmann.de/twiki/bin/view/APG/ProjXForth 18:07:47 Next week I should be able to get back into that. 18:09:34 Ah ok. 18:10:15 Hopefully, I'll remember what it is I was setting out to do... 18:10:23 shiny object syndrome. 18:10:31 That paste is still around I'm sure. 18:10:39 I saved the URL. 18:10:55 :( It's gone 18:11:05 Really? Ok, I can re-paste. 18:11:12 That'd be cool. 18:11:28 hmm, not sure if I can. Don't know if I kept it. 18:11:58 I think I basically remember how you factored it. 18:12:28 Four pieces, I think -- making the header, coping the message, generating the checksum, ...? 18:12:54 Making the header, coping the command, generating the checksum, writing out the packet to the buffer. 18:13:07 *copying 18:13:23 Yah. 18:13:25 That's what I remember. 18:13:53 That's a good start. There may be some further useful subfactors in those, maybe not. 18:18:46 http://www.strotmann.de/twiki/bin/view/APG/LangBf Heh 18:19:21 I've seen bf before, but never heard it described as "with only eight commando's" 18:20:01 Eight is luxury, anyway -- the one-instruction computer is much more efficient. 18:20:36 Don't recollect that. 18:21:19 Let me see if I can scare it up. 18:22:01 http://en.wikipedia.org/wiki/OISC 18:24:47 ugh 18:25:22 --- quit: JasonWoo1 (sterling.freenode.net irc.freenode.net) 18:25:22 --- quit: Quiznos (sterling.freenode.net irc.freenode.net) 18:25:22 --- quit: astecp (sterling.freenode.net irc.freenode.net) 18:25:43 I wonder how much code it would take to get KDE to compile under the OISC. 18:25:43 --- join: JasonWoo1 (n=jason@c-71-192-33-206.hsd1.ma.comcast.net) joined #forth 18:25:43 --- join: Quiznos (i=1000@unaffiliated/quiznos) joined #forth 18:25:43 --- join: astecp (n=aspect@death.dissension.net) joined #forth 18:26:10 I think Moore is working his way down to the OISC; the only remaining decision will be whether to make the instruction red, green, or white. :) 18:26:23 lol 18:28:35 I think I mentioned when I was at Hayes I was pushing pretty hard to use which processor of his that had 5 bit instructions, and fetched 4 at a time (20 bit wide memory). I forgot the numbers, but it seems like it was 7 or 8 times faster, MIP wise, than the 44Mhz 8031 we were using. 18:28:48 heh 18:28:53 sounds like a chip i designed 18:28:56 32-bits wide 18:29:01 fetched 8 instructions at a time 18:29:04 4 bits per instruction 18:29:24 what were the instructions? 18:29:35 8bit instructions would be also nice 18:29:37 hrm... lets see if i can find the list 18:29:37 I actually wrote a AT command parser in FPC to prove it could be done. 18:29:57 AT? (acronym expansion requested ;c) 18:30:07 attention 18:30:09 i don't recall if this is the most recent version, but here we go... 18:30:10 Hayes industry standard command set? 18:30:36 Push1, PushCF, PushIP, PushSP, PushMP, Push[MP], PopIP, PopSP, PopMP, Pop[MP], Add, Nand, Xor, Shr, Xchg, Dup 18:30:45 http://www.brouhaha.com/~eric/retrocomputing/motorola/mc14500b/ Real 4 instruction computer with single bit "accumulator" 18:30:46 I think AT was short for ATention. 18:30:47 those were the instructions afair. 18:30:50 er, ATtention. 18:30:53 Yes. 18:30:59 cool 18:31:34 it was a stack machine... oddly enough it was a 32-bit machine 18:31:42 i was trying to get a 32-bit chip into as few transistors as possible 18:31:58 it was pretty small, but pretty slow 18:32:48 don't recall the gate count offhand, but it was implementable by hand with TTL :P 18:36:20 (would you believe that someone just implied to me that there was no use for an arch-independant assembler? bah. someone's never designed a cpu before :P) 18:36:59 heh 18:37:07 or they don't realise that CPUs run microcode these days 18:41:16 heh 18:41:25 it's just... i wrote an arch-independant assembler 18:41:49 it just takes a code gen table to make it assemble relocatable code for any architecture 18:41:58 So it will assemble instructions for ANY architecture? 18:42:02 i'd like a way to specify the instruction set declaratively, and get a disassembler for free and emulator with little work 18:42:03 yes 18:42:27 slava - working on the disassembler design to match it... 18:42:52 k4jcw - that's the whole idea, yes... assemblers that work for a few "normal" architectures don't help when the architecture is still in flux 18:42:53 or is new 18:43:17 i thought it was a cool idea, anyhow :P 18:43:20 it is 18:43:21 I've seen assemblers that can handle multiple archs with tables. But they've been somewhat limited. They can handle things like the 1802, 8051, 6800, 6809, but the break when you get into 386 protected mode. 18:43:31 it uses a big DFA to match a list of forth-like script commands to a list of instruction descriptions 18:43:50 Plus the abstract assembly language has to make certain assumptions about the VM, as it were. 18:44:51 took me a while to make the DFA compiler fast... 18:44:54 Amanita_Virosa, sounds like a tokenizing Forth with a translator back-end that turns tokens into machine language. 18:44:57 Usually where they start breaking down is optimizing jumps and such. Processors that support near (+-128), long (+-32768), and far (+-2^31) jumps/calls. 18:45:05 and the DFA is the only thing that makes it's parser fast enough to use 18:45:27 Quartus - nope... it *runs* the forth code, which instructs the code generator 18:45:41 k4jcw - ya... alas, mine *does* have a problem there 18:45:42 How many processor families do you have support for? 18:45:43 Amanita_Virosa, same animal from a different angle. 18:45:54 mine requires explicitly specifying the jump type 18:46:00 because families can be so different 18:46:13 so far, i've mostly been working on the x86 generator table 18:46:19 not quite done 18:46:34 How does it differ from typical JIT? 18:46:59 completely different animal. it reads in an assembly source file, matches the instructions, calls a block of forth code for each instruction to generate code 18:47:03 then it writes the binary 18:47:11 Will it be able to handle page boundary detection? The 8051's ajmps cannot cross 2K page boundaries. 18:47:30 hrm... that's a good question, actually. 18:47:43 The 1802 has a similar issue. 18:47:44 the 8-instruction granularity of uuc was one of my design tests 18:48:04 see, you can only land on every 8 instructions with uuc, you can't jump in the middle of a block 18:48:17 i figured that'd be a good test. it can do that much, just fine 18:48:17 uuc is your processor? 18:48:20 yes 18:48:51 so far, my assembler is more "usable prototype" than production software 18:48:58 but so far, the idea seems sound 18:49:01 and the design seems to work 18:49:02 mostly 18:49:10 Not to be needlessly argumentative :) But it sounds a lot like the same work a JIT does, but done at a different time. 18:49:35 true... and actually, i'm developing it in parallel with my jit project 18:49:55 i'm not sure how much will actually overlap between them tho 18:50:33 it's meant to assemble native instruction mnemonics for any architecture tho, not assemble a generic bytecode 18:50:40 (although i don't see any reason why it couldn't do that either...) 18:50:41 hrm. 18:50:47 well, that's something to think about, for sure :P 18:51:18 Same thing, really -- just different bytecode. 18:51:23 although my jit design takes a page from FORTH... it can store bytecode or native code, and lets both work with one another 18:51:24 ya 18:51:45 Back when I used to write thousands of lines of x86 code, I used an assembler called OptAsm. It was years ahead of MASM for the longest time. I kept harassing them to support other archs, particular the 8051. The never did. Thing was blindingly fast. And it support C-like structs for data, supported tables, local labels, lots of nice features. 18:51:55 i basically set it up so that, when calling a bytecode page, you actually call the interpreter and pass it the address of the bytecode 18:52:01 while allowing it to later be compiled to machine code 18:52:15 k4jcw - cool 19:05:17 slava: I like it. IN: syntax : parsing word t "parsing" set-word-prop ; parsing 19:30:25 --- join: vatic (n=chatzill@ool-45740b1c.dyn.optonline.net) joined #forth 20:24:29 --- quit: Amanita_Virosa ("Wewps!") 20:33:09 --- quit: vatic ("Chatzilla 0.9.74 [Firefox 1.5.0.6/2006072814]") 21:25:46 hmmm 21:55:53 Update (bug fix) http://retroforth.net/paste/?id=157 22:07:50 -- 22:07:50 Neal Bridges 22:07:50 Quartus Handheld Software 22:07:50 http://www.quartus.net Home of Quartus Forth for the Palm OS! 22:07:52 sheesh 22:08:02 you paste and paste and sometimes it just doesn't work out 22:08:21 Stable link for the RetroForth ANS layer: http://quartus.net/retro/retro-ans.fs 22:08:30 I'll maintain it there. 22:09:28 Quartus: your code example of the math words that deal with various int sizes made me curious 22:09:32 Quartus: what did you use it for? 22:09:50 Testing ud10/. 22:10:04 And it grew a bit out of that. 22:10:18 JasonWoo1: how's fovium coming along? 22:11:06 slava: I've put hardly any time into it lately 22:11:21 slava: so basically it's not coming at all 22:11:28 Got a 486 disassembler running cleanly under retro now. 22:11:37 slava: Although I did write about half a page on paper last week 22:12:57 --- quit: JasonWoo1 (Remote closed the connection) 22:13:09 --- join: JasonWoo1 (n=jason@c-71-192-33-206.hsd1.ma.comcast.net) joined #forth 22:13:22 --- quit: JasonWoof (Remote closed the connection) 22:13:44 --- nick: JasonWoo1 -> JasonWoof 22:13:51 --- mode: ChanServ set +o JasonWoof 22:50:19 --- quit: EsotericMoniker (Read error: 104 (Connection reset by peer)) 22:50:25 --- join: EsotericMoniker (n=Esoteric@209.8.233.202) joined #forth 22:53:45 --- join: segher (n=segher@dslb-084-056-145-224.pools.arcor-ip.net) joined #forth 22:54:27 --- quit: segher_ (Read error: 60 (Operation timed out)) 23:37:33 --- quit: warpzero (Excess Flood) 23:37:38 --- join: warpzero (n=warpzero@wza.us) joined #forth 23:59:59 --- log: ended forth/06.08.23