00:00:00 --- log: started retro/06.08.26 00:02:32 Ok, I've retracted KEY, so I also had to retract ACCEPT and the 'ok' prompt. :/ 00:03:29 Corrected version at http://quartus.net/retro/retro-ans.fs 00:16:40 I can't figure it out. If I revector key to discard either 13 or 10, the stack depth is somehow screwed with inside the interpreter. 00:23:51 Ok, I've fixed it. I don't know why it happened, but I've moved the stack-underflow checking somewhere else. 00:24:16 http://quartus.net/retro/retro-ans.fs 00:25:45 --- join: Cheery (n=Cheery@a81-197-19-23.elisa-laajakaista.fi) joined #retro 00:43:29 --- join: neceve (n=claudiu@unaffiliated/neceve) joined #retro 05:23:51 --- join: nighty (n=nighty@CPE00119576a9c5-CM0012c90d36fc.cpe.net.cable.rogers.com) joined #retro 05:25:45 --- quit: nighty (Client Quit) 08:33:54 --- part: crc left #retro 08:37:25 --- join: crc (n=crc@pool-70-110-129-33.phil.east.verizon.net) joined #retro 10:02:06 --- join: neceve_ (n=claudiu@unaffiliated/neceve) joined #retro 10:14:16 --- quit: neceve (Read error: 113 (No route to host)) 10:18:15 --- quit: timlarson (Read error: 104 (Connection reset by peer)) 10:32:55 --- join: timlarson (n=timlarso@user-12l320v.cable.mindspring.com) joined #retro 10:35:35 --- join: Quartus__ (n=Quartus_@209.167.5.1) joined #retro 11:02:16 --- nick: nanstm -> Raystm2 11:28:45 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-160-216.pools.arcor-ip.net) joined #retro 11:37:07 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 11:37:21 --- nick: snoopy_1711 -> Snoopy42 11:45:56 --- quit: Quartus__ ("used jmIrc") 12:02:39 --- quit: neceve_ (Remote closed the connection) 13:00:40 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 13:35:13 Chess is driving me nuts. 13:35:28 chessnuts. 13:37:33 yup. I broke it. The solution is not obvious. It's in the mechanics. I'll have to figure out how to break this down for testing. 13:37:45 Inline testing is your friend. 13:38:39 Indeed. Time to insert some virtual breakpoints. 13:49:04 --- join: nighty (n=nighty@CPE00119576a9c5-CM0012c90d36fc.cpe.net.cable.rogers.com) joined #retro 15:45:04 With a small additional file of optimized stack words, the retroforth ANS layer now runs the fib benchmark about 20% faster than gforth-fast does. 15:48:26 Which is more in-line with what I'd expect of a native-code Forth, speedwise, at least one that doesn't do aggressive optimization. 15:49:17 The last 2x is always the hardest to get. 16:06:09 In this case it's the last 1.5x. A hand-coded asm version of the bench runs 1.5x faster than the faster.fs+ANS layer. The faster.fs speedups make a huge difference, without them the bench runs 2.6 times slower 16:56:00 --- mode: ChanServ set +o crc 16:58:51 good evening 17:05:41 Hi crc. 17:07:03 Ran a few numbers: http://retroforth.net/paste/?id=160 17:08:32 is faster.fs availible anywhere? 17:09:04 Yes, you're welcome to it -- you'll want to translate it into your own format, as right now it uses an ANS Forth assembler, unless you also want that. 17:09:56 If you do, let me email it to you, as I haven't cleaned it up enough to want to publish it. 17:12:00 yes, please send it 17:12:04 Ok. 17:12:38 --- join: ycombinator (n=wunderwa@bespin.org) joined #retro 17:13:02 Is there an email address you prefer? 17:13:28 crc@retroforth.org 17:14:26 --- part: ycombinator left #retro 17:15:12 Sent. 17:20:27 thanks 17:20:35 this should be useful :) 17:20:50 Sure. The assembler is ported from Gforth, just a small wrapper to add code/end-code really. 17:21:35 Nothing in faster.fs is set in stone except the new word definitions -- I was fooling around with si-- to see just how much I hated the notation. 17:23:08 I've ported the disassembler too, been using it to poke around inside rf. 17:23:51 The disassembler runs aground at the original-style embedded-value literals quite often. 17:26:32 still, 17:26:33 see . 17:26:35 ( $428BDD ) call s>d \ $E8 $E8 $F4 $FF $FF 17:26:35 ( $428BE2 ) call d. \ $E8 $E1 $FF $FF $FF 17:26:35 ( $428BE7 ) ret near \ $C3 17:26:38 Pretty neat. 17:29:43 --- join: snowrichard (n=richard@12.18.108.220) joined #retro 17:29:45 hi 17:29:59 hi snowrichard 17:30:07 hello 17:30:20 what is the latest retro version? and how is it going? 17:30:31 latest version is 9.2.9 17:30:43 you have a native one ? or the linux? 17:30:59 9.2 does not have a native build; 9.3 will though 17:31:10 I'll grab linux I guess 17:32:05 development is going well; I am making some headway on cleanups to the core code, and expect to have a better overall language in 9.3 17:32:46 got it I'll take a look soon 17:32:55 * crc is trying to keep up with the ANS code Quartus is writing for Retro 17:33:09 maybe I should grab source too 17:33:19 source is always helpful :) 17:34:03 ok I have a look at both 17:34:18 It's slowing down now crc, without >IN and SOURCE my hands are tied. :) 17:34:34 I'm not familiar with the darcs tool 17:35:01 darcs is a version control app; it's easier to use than subversion or cvs 17:35:07 really? 17:35:08 ok 17:37:16 --- quit: snowrichard ("Leaving") 17:38:42 Quartus: I am working on that :) 17:38:52 Good news. :) 17:39:06 That's take off the upper-limits on include file size, too. 17:39:24 And if a save-input/restore-input appears on the horizon, I can sew up the holes in eval too. 17:41:28 crc, one thing keeps happening -- sometimes, retroforth replaces the first character of the input line with an r. So I'll type see foo and it'll say ree <- undefined word 17:41:43 This happens without the ANS layer, and randomly. It's always an r, always the first char. 17:42:01 I have had that happen on windows, but never on the linux/bsd systems I use 17:42:09 I'm still not sure why it happens 17:42:12 It's weird. Or 'reird' if you prefer. 18:16:46 I'm trying rlwrap under windows, see if the problem is still there. 18:18:53 hee hee hee, I fed it the ANS Forth wordlist and it does command-completion. 18:32:31 I set it up to start up rf with my command-line parameters, send words to a file, and then start it up again with that file as the completion list. :D 18:35:27 --- join: jas2o_ (n=jas2o@wnpp-p-144-134-167-219.prem.tmns.net.au) joined #retro 18:36:04 --- nick: jas2o_ -> jas2o 18:42:25 --- quit: nighty (Read error: 110 (Connection timed out)) 18:48:49 reird bug. 18:48:56 heh 18:49:00 happend because of comments 18:49:11 or I should say, stack diagrams. 18:49:15 as far as I can tell. 18:49:26 Your own personal bug? 18:49:37 the chess. 18:50:29 for some still unknown reason, it seems that the stack diagram in one of the mov words was adding values to the stack. 18:50:38 18 twice to be more precise. 18:51:03 I got the but while documenting each word. 18:51:24 ah, the danger of using weird-base numbers. How did ) slip through? It isn't a defined word, is it? 18:51:39 hmm. 18:51:52 don't know that yet. will find out though. 18:52:03 colorforth? retroforth? ans layer? 18:52:12 retroforth, 18:52:22 not ans layer, yet. 18:52:25 soon. 18:52:38 oh, ok. Words not found sail on by in retroforth without the layer. Sometimes there's a message about it. 18:52:55 I see. 18:52:57 The ANS layer stops: ) <- Exception: undefined word 18:53:29 good enough reason to start coding to the spec for me. 18:53:51 I would go just a little insane working in a system that didn't stop when I'd misspelled something. :) 18:54:04 I guess I thought I was working out some mechanics using retro direct. But ANS is where this is going so... 18:54:11 I had trouble enough getting to the point in the ANS layer where it would report errors like that. 18:54:14 --- part: jas2o left #retro 18:54:53 You did? /me still has much to study. I still havn't read it all. 18:55:09 I see stuff and I wanna try it and I get distracted. :) 18:55:36 Sure, if I made an error in the file it would generate a whole raft of 'word not found' messages all at once, from wherever the typo was on down, and then crash. Frustrating. 18:55:43 I try to spend atleast 15 minutes with it every day. Till it is memorized. 18:56:07 But once I revectored the lookup and installed exception handling, it stopped as it should on my typos. :) 18:56:35 those are handy indeed. 18:57:12 I get the impression that crc is working on a new core to make ans completely possible. 18:57:12 I think so, but maybe I'm hopelessly oldschool :) 18:57:16 :) 18:57:31 He has said he's looking at the remaining bits, which is exciting. 18:57:53 You don't know how impressed I am with the way you both are working this out. It's exciting to watch. 18:58:07 It's been fun. 18:58:13 for me as well. 18:58:47 I think there is a goal out there, and you both see it. aiming for it. 19:01:04 I'm glad to have another command-line accessible standard forth, as I can test my code in multiple compatible environments. And being faster than gforth-fast doesn't hurt either. :) 19:01:20 I have to figure out how to get to a working "at-xy" in this windows version. 19:01:32 of retroforth? hmm, not sure you'll have a lot of luck with that. 19:01:35 Yes. That is cool. 19:01:55 can't you just dump the board as simple ASCII? 19:02:10 the board is only part of the display. Yes I do that. 19:02:27 crc can confirm, but I don't see any easy way to do at-xy. 19:02:58 Though gforth does it somehow. 19:03:22 I suppose I will have an array the length of each display possible position and do it that way. 19:03:31 sorta like the board. 19:03:41 Yes, you could, and repaint the whole screen, but it means having special output words. 19:03:48 but I can then have lists of last moves and other boards. 19:03:53 ya;. 19:04:12 well, I don't see it as much different then the way the board is printing now. 19:04:35 I just have to treat every line the width of the display with cr's I suppose. 19:04:56 unless it will wrap, hmmm 19:05:00 rf doesn't have a 'page' command at this point. 19:05:08 clear. 19:05:21 or I should say, "clear" is the page command. 19:05:37 * Raystm2 looks up clear. 19:05:56 it prob'ly calls cls in windows. 19:06:06 It doesn't. It prints a huge number of blank spaces. 19:06:08 maybe not, maybe just cr's 25 lines or so. 19:06:13 ah. 19:06:32 is that whay page is supposed to do? 19:06:43 which sort-of achieves the same thing, kinda. Page is supposed to clear the screen and leave you at the top. 19:06:44 wha/y/t 19:06:51 ya. 19:07:41 I have a at-xy that works for crc in *nix's but for me in windows it only works on the same line as the current cursor, won't change lines. 19:09:59 Just looking to see what can be done. 19:10:10 ooh cool. 19:58:44 --- join: jas2o (n=jas2o@wnpp-p-144-134-167-219.prem.tmns.net.au) joined #retro 20:09:17 --- quit: jas2o ("Chatzilla 0.9.74 [XULRunner 1.8.0.1/2006012608]") 20:19:20 Raystm2: http://retroforth.net/paste/?id=162 20:19:46 this was working when my windows installation died 20:27:47 crc, I've been messing with that definition & one I wrote before it, and it occasionlly a) does nothing, b) scrolls to some weird-ass place in the scrollback buffer. 20:28:29 odd 20:28:31 Does the function-calling thing flush ax to memory before making the call? 20:31:01 when the call is made, eax contains the address to call; this is replaced by the return value 20:31:32 Ok. 20:31:44 --- part: crc left #retro 20:31:49 --- join: crc (n=crc@pdpc/supporter/active/crc) joined #retro 20:31:49 --- mode: ChanServ set +o crc 20:48:45 Yes, after trying it a few times, it now no longer moves the cursor at all. Perhaps after a reboot. 20:49:36 maybe it's this rlwrap that's messing with it. 20:50:35 Looks like it! 20:52:21 Ok, this saves a bit of code, as it uses the already-imported words: 20:52:31 : at-xy 16 lshift or kernel32 stdout swap SetConsoleCursorPosition ^ drop ; 20:52:47 That's a Standard Forth name. 22:52:54 A few more Standard words for Windows -- these might be useful to you, Ray: http://quartus.net/retro/facility.fs 22:53:19 I wrote a full-fledged PAGE word, and added get-xy to at-xy. 23:35:14 Excellent Quartus. I'm sitting here thinking about the ANS re-write. 23:35:50 --- join: Cheery (n=Cheery@a81-197-19-23.elisa-laajakaista.fi) joined #retro 23:35:57 Well, you can clear the screen and set & retrieve the cursor position now. If you like I can add a word to return size of the currently-visible part of the screen buffer. 23:36:17 That sounds important. :) 23:36:23 Please? 23:36:28 Sure, hang on. 23:36:51 I suppose you base the entire visible display on such a value. 23:45:02 Well, in a console window there's the bit you're looking at, and the bits offscreen. 23:51:21 That should do it. Reload this and you'll see 'window-size'. http://quartus.net/retro/facility.fs 23:54:39 Interesting. If the cursor position is 'down the buffer' such that the scroller is down a bit, window-size reports the number of rows at the cursor. If you 0 0 at-xy before window-size, it gives the actual size of the window. 23:56:39 Myself, I'd be inclined to code to the visible area, to a minimum of 80x25. 23:57:27 You can get a console window with 40 chars across, but I don't know why anyone would want one. :) 23:59:58 If you have a hard dependency on a non-scrolling console of a certain size, you can request one ahead of time with a mode con: command, or I'm sure there's an api call to make it happen. 23:59:59 --- log: ended retro/06.08.26