00:00:00 --- log: started forth/06.12.31 00:00:59 re 00:01:14 ASau: sorry, but that value is definitely not base-64 encoded 00:04:13 --- join: Raystm2- (n=NanRay@adsl-68-95-254-231.dsl.rcsntx.swbell.net) joined #forth 00:08:48 Why do you think so? 00:09:33 JasonWoof: are you doing web programming in forth? 00:10:20 I think this particular instance is php 00:12:53 * absentia has a dirty stack 00:16:08 --- quit: Raystm2 (Read error: 110 (Connection timed out)) 00:49:20 --- join: Cheery (n=Cheery@a81-197-54-146.elisa-laajakaista.fi) joined #forth 01:16:10 slava: not at the moment. 01:16:23 I decided to build up some useful code for php programming 01:16:28 it's coming along pretty quick 01:16:42 shame I can't do anything interesting with the language 01:16:54 I've done some of this stuff in forth and ruby 01:18:59 ruby was by far the easiest 01:19:06 much cleaner looking than php, that's for sure 01:19:14 but the startup times are an absolute killer 01:19:40 I haven't figured out out how to get around that 01:19:53 but, anyway 01:20:12 It feels good to have this growing body of useful php code 01:20:38 I've got a template engine, a database api, lots of little encoding functions 01:20:50 and now session handling code 01:20:55 calendar stuff 01:21:06 --- join: gorgonzola (n=mhx@f233149.upc-f.chello.nl) joined #forth 01:24:34 here's a cool thing about git. when you pull updates from another repository it gives some cute little statistics: 01:24:38 metaform.php | 11 +++++- 01:24:40 metaform/template.html | 6 ++- 01:24:42 metaform/template.php | 83 ++++++++++++++++++++++++++--------------------- 01:24:45 3 files changed, 59 insertions(+), 41 deletions(-) 01:25:07 --- join: Raystm2 (n=NanRay@adsl-68-95-252-202.dsl.rcsntx.swbell.net) joined #forth 01:25:13 giving a rough idea of how much was removed and added in each file 01:27:22 Anybody else beside JasonWoof using a source code control system to write Forth? 01:28:12 --- quit: Raystm2- (Read error: 60 (Operation timed out)) 01:33:57 --- quit: gorgonzola ("a quit that really quits") 01:34:06 --- join: gorgonzola (n=mhx@f233149.upc-f.chello.nl) joined #forth 01:35:42 --- join: Raystm2- (n=NanRay@adsl-68-95-252-202.dsl.rcsntx.swbell.net) joined #forth 01:35:43 --- quit: Raystm2 (Read error: 104 (Connection reset by peer)) 01:37:31 gorgonzola: oh, my scm isn't in forth 01:37:39 mostly C as far as I know 01:37:56 ok, I think my db api is pretty much finished now 01:38:36 today I wrote db_delete(), db_update(), db_replace() and db_auto_id() 01:38:56 (db_auto_id() gets the auto_increment value from the last insert) 01:39:48 db_update was fun 01:40:02 because it has data passed to it and a where clause 01:40:18 both of which can pass a variable number of arguments in my api 01:40:43 and of course it was a bit more work because the SQL syntax is stupid 01:41:01 lord only knows why they can't have the syntax the same as inserts 01:41:34 --- join: Raystm2 (n=NanRay@adsl-68-95-252-202.dsl.rcsntx.swbell.net) joined #forth 01:41:35 --- quit: Raystm2- (Read error: 104 (Connection reset by peer)) 01:41:35 eg UPDATE foo (name,email) values('foo','foo@example.com') 01:45:31 --- quit: gorgonzola ("a quit that really quits") 01:45:39 --- join: gorgonzola (n=mhx@f233149.upc-f.chello.nl) joined #forth 02:01:36 --- quit: gorgonzola ("a quit that really quits") 02:13:42 --- join: Raystm2- (n=NanRay@adsl-68-95-252-202.dsl.rcsntx.swbell.net) joined #forth 02:18:04 ok, enough outa me 02:18:07 --- quit: JasonWoof ("off to bed") 02:30:42 --- quit: Raystm2 (Read error: 110 (Connection timed out)) 02:37:08 --- quit: ASau (Read error: 104 (Connection reset by peer)) 02:44:42 --- join: ASau (n=user@195.98.173.2) joined #forth 02:54:22 --- join: Raystm2 (n=NanRay@adsl-68-95-252-202.dsl.rcsntx.swbell.net) joined #forth 03:08:45 --- quit: Raystm2- (Read error: 110 (Connection timed out)) 03:45:14 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 03:51:59 --- join: gorgonzola (n=mhx@f233149.upc-f.chello.nl) joined #forth 03:53:14 Aha, so nano-IRC works under Linux too... 03:56:37 --- join: BirdReynolds (n=mhx@f233149.upc-f.chello.nl) joined #forth 04:01:25 --- quit: BirdReynolds (Client Quit) 04:05:44 --- join: BirdReynolds (n=mhx@f233149.upc-f.chello.nl) joined #forth 04:08:36 --- quit: gorgonzola ("a quit that really quits") 04:10:39 --- quit: BirdReynolds (Client Quit) 04:11:39 --- join: BirdReynolds (n=mhx@f233149.upc-f.chello.nl) joined #forth 04:25:53 --- quit: BirdReynolds ("a quit that really quits") 04:26:05 --- join: BirdReynolds (n=mhx@f233149.upc-f.chello.nl) joined #forth 04:27:25 --- join: gorgonzala (n=mhx@f233149.upc-f.chello.nl) joined #forth 04:30:36 --- quit: Sukoshi (Read error: 110 (Connection timed out)) 04:42:53 --- quit: BirdReynolds ("a quit that really quits") 04:52:23 --- join: BirdReynolds (n=mhx@f233149.upc-f.chello.nl) joined #forth 05:06:56 --- quit: BirdReynolds ("a quit that really quits") 05:07:07 --- join: BirdReynolds (n=mhx@f233149.upc-f.chello.nl) joined #forth 05:34:26 --- quit: gorgonzala ("a quit that really quits") 05:39:13 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 05:39:13 --- mode: ChanServ set +o tathi 05:41:38 I use a source code control system for pretty much any code that I write. 05:42:56 I'm in flux right now as to *which* one I use... 05:43:55 I tend to randomly pick between SVN, darcs, and git. 05:44:14 bzr is cool too, but as it's written in Python it's too slow for my taste. 05:44:24 and CVS is just annoying :) 05:46:10 so write it in forth, eh? 05:47:51 maybe one day -- none of them are *exactly* what I want. 05:47:57 but it doesn't really matter 05:48:17 and writing a decent scm is a non-trivial undertaking 05:49:14 The main thing I like is that you can just ditch bad parts of your code and start rewriting them, knowing that if you want the old stuff back you can easily get it. 05:50:46 virl: so how's the executable generator for Retroforth coming along? 06:01:14 slowly.. but I think I fixed my dumping code which is the base for this generator 06:03:08 good to hear 06:03:40 oops, gotta run. 06:03:44 --- quit: tathi ("bbl") 06:39:04 --- join: Raystm2- (n=NanRay@adsl-69-149-61-105.dsl.rcsntx.swbell.net) joined #forth 06:41:04 --- quit: Raystm2 (Read error: 104 (Connection reset by peer)) 06:55:16 --- join: Raystm2 (n=NanRay@adsl-69-149-58-144.dsl.rcsntx.swbell.net) joined #forth 07:01:23 --- join: Raystm2_ (n=NanRay@adsl-69-149-58-144.dsl.rcsntx.swbell.net) joined #forth 07:09:22 --- quit: Raystm2- (Read error: 110 (Connection timed out)) 07:09:32 --- join: Raystm2- (n=NanRay@adsl-68-95-251-83.dsl.rcsntx.swbell.net) joined #forth 07:10:37 --- quit: Raystm2_ (Read error: 54 (Connection reset by peer)) 07:12:30 --- quit: Raystm2 (Read error: 104 (Connection reset by peer)) 07:27:22 --- join: tattrdkat (n=virsys@or-71-53-68-17.dhcp.embarqhsd.net) joined #forth 07:27:30 --- quit: tattrdkat (Remote closed the connection) 07:32:02 --- nick: Raystm2- -> Raystm2 07:33:44 Happy New Years, somebody on the planet, we are looking in your directions West Pacific. 07:33:53 --- join: zpg (n=user@85-210-141-253.dsl.pipex.com) joined #forth 07:33:58 howdy 07:34:07 Happy New Years, somebody on the planet, we are looking in your directions West Pacific. 07:34:14 It's somewhere in Irkutsk now. 07:34:18 oops Hi zpg :) 07:34:23 hi ASau :) 07:34:37 Hello, Raystm2 and zpg. 07:35:18 * Raystm2 officially thanks zpg... 07:35:38 Thank you zpg, for saving my ass-inine self yesterday! :) 07:35:59 * zpg chuckles 07:36:04 no problem Raystm2 -- no biggy. 07:36:07 howdy ASau 07:36:26 We have RuFIG members in Novosibirsk, 07:36:32 but they are not here. 07:37:13 ASau: I've been asking this chat for a while, but never seem to get an answer or opinion from anyone... "Are we WorldFIG?" 07:37:40 Think as you like. 07:37:54 We're IRCFIG. 07:38:07 there is that. 07:38:12 That kind. 07:39:13 does fooFig require a charter, is going to be the next thing I figure out. 07:40:27 In concern of our anarchic ideology, it does not. 07:40:49 okay FIG is worldFIG 07:41:52 So then keeping in that line of thinking, we've been ircFIG all along. 07:43:44 We could be added to FIG's FIG links as ircFIG if we wish. We've been stable for many years. With tent to stay fairly well focused. 07:44:00 in+tent 07:44:51 possibly under "Meetings and Events". 07:45:37 No here we should be under "Forth Discussion Groups" 07:47:49 Well, I suppose we fail as we are not officially the official freeNode forth chat. That distinction falls to ##forth. 07:50:27 And what is distinction between #forth and ##forth? 08:03:43 --- quit: nighty (Client Quit) 08:09:41 morn' 08:20:43 hi absentia 08:27:46 how much time left for happy new year? 08:28:17 here it's just under 8 hrs 08:29:43 --- quit: ellisway (Read error: 113 (No route to host)) 08:39:07 --- quit: neceve (Read error: 104 (Connection reset by peer)) 08:41:11 --- join: neceve (n=claudiu@unaffiliated/neceve) joined #forth 08:44:20 --- quit: zpg ("cheerio for now") 08:48:16 Good evening, all! 09:00:27 Sorry, was away from the keyboard. 09:01:25 ASau: not so much a distinction between chats as it is a policy of freenode to make the official chat have a double sharp before then name. 09:17:16 New year in Krasnoyarsk. 09:43:53 Okay, I'm wrong. Clarification. #forth is reserved for an official forth entity. I assume Chuck Moore might be considered ultimate authority, but someone owns the right to exercise there option on the name #forth. ##forth is the topical or reference channel, set up by community that can be other than official forth entities. 09:45:36 So, in effect, someone proving to freenode that they have the right, could usurp #forth at will, where-as ##forth is established properly. 09:47:13 As if Moore is going to come in and commandeer #forth. 09:47:19 I imagine a case could be made for the fact that several forth language implementors happen to belong to this channel, crc, Quartus, slava, jasonWoof, Mark, ASau, more? and they substatiate as a committee to officially represent the language. 09:47:53 Right. :) 09:48:03 ASau isn't an implementor as far as I'm aware, unless there's something I don't know. 09:48:40 Sorry, may have ASau confused with someone in France that implemented a color-like-forth 09:48:55 AIM it is and i'm checking author... 09:52:23 What is the requirement to be implementor in your sense? 09:53:24 AFAIK you have modified a couple of existing Forths. That's fine, but it's not what I'd consider being an implementor. 09:54:37 doh! not AIM but 4IM. 09:55:57 in my sence... you either put on an arctitecture from scratch, or are designing and coding a variant, for what ever reason, I suppose. 09:59:36 argh... elusive stack corruption bug. :-< 10:00:57 Alright, I can write everything from scratch. 10:01:04 You are not allowed to use the elusive stack, as far as I know. Heck I've never even been able to find it! What is the specifics? Can you describe? 10:01:06 But what for? 10:01:12 heh 10:01:53 What is the reason to write one more Forth? 10:02:06 There may be no reason; there may be a hundred. That's not the point. 10:02:39 The point is that you, right now, are not an implementor. There's no requirement for you to become one. 10:02:39 There is no reason. :) Well, maybe somebody designs a new computer... 10:03:29 I, for instance, don't play croquet. If somebody listed me as a croquet player, it'd be in good form to point out that I'm not. 10:03:36 This doesn't mean I should rush out and learn. 10:09:27 Happy New Year! 10:09:45 happy new year! 10:09:51 Still half a day away for most of the Western world. 10:10:43 RuFIG starts: NY in Novosibirsk. 10:16:12 --- quit: neceve (Remote closed the connection) 10:18:52 Quartus: Alright, I take your croquet example. 10:20:32 For instance, I play handball. Played, to be true. 10:21:08 If I don't bother to enlist handball player, why should I 10:21:08 not be one? 10:21:28 I have no idea what you mean. 10:21:57 One day I implemented Linux Forth in m4 and gas. 10:22:20 But I don't like to boast conducting such experiments. 10:25:01 No doubt you're a brilliant king among men, modest and self-effacing. 10:25:56 I just don't like dividing men to these and those. 10:26:23 Implementors or not implementors, in this case. 10:26:38 Yet it goes that way. You're in Russian; I'm in Canada. Ray's in Texas. You speak Russian; I don't. Etc. 10:27:12 If it offends you to have me point out that you're not a Forth implementor, I'm afraid I can't help you. 10:27:44 Not at all. 10:27:48 Had Ray identified me as Python implementor, I would have pointed out that I'm not, and I wouldn't now be complaining that the distinction is invalid. 10:28:42 I'm not Forth implementor like Hendrix, Ertl, Rather or you. 10:28:44 ruki veer! 10:28:56 --- join: ellisway (n=ellis@host-87-74-241-174.bulldogdsl.com) joined #forth 10:29:01 "Vverkh". 10:30:16 Dobryj vecher, ellisway. 10:33:15 --- join: JasonWoof (n=jason@c-71-192-26-248.hsd1.ma.comcast.net) joined #forth 10:33:15 --- mode: ChanServ set +o JasonWoof 10:34:07 hey JasonWoof 10:34:21 Good evening, JasonWoof. 10:35:05 hello :) 10:36:57 :-) 10:38:49 I got a lot of coding done last night 10:38:51 that feels good 10:39:01 me too.. but this stack issue is driving me nuts. 10:39:14 what stack issue? 10:39:31 One of the ones you get when you write a whole bunch of code at once instead of taking it in small steps. 10:39:44 trying to track it down... somehow my stack isn't empty when it should be... and, for some reason, this is causing grief. 10:40:49 ahh :) 10:40:52 not really. the rest of the code is fine... I've got it narrowed down to a small set of routines... 10:41:03 yeah, I always kick myself if I write a bunch of forth code without testing as I go 10:41:09 "grief" is the word 10:41:29 which means going back and doing it again right. 10:41:48 testing each factor. 10:41:50 in PHP I can write a two page file, and get it to work after. 10:41:57 but in forth it's much much better to test as you go 10:42:07 ya, i did that. 10:43:02 absentia, if you did that, you wouldn't be trying to find a stack imbalance now. 10:43:32 you think ? 10:45:49 JasonWoof, some of it is practice, I can write Forth with a lot more fluidity now than I could when I started. TDD still is a good idea, though. PHP makes it harder. 10:46:59 yeah, I've never automated testing in php 10:47:47 what I'm finding is this -- q -- I have lots of code, probably bad code by your expert criteria -- but it works.. then for small things like "play_again?" that had the build in prompt... it's 1 line, < 10 core words... i can factor that... and learn... then I can look at another place -- like the coin flip thing last night -- now Ihave a general "pass?" routine that I pass in a percent -- 1 to 100 -- and it returns t or f based on a coin flip wei 10:48:05 "flip wei" cut off 10:48:17 ghted to that percentage... I'm working within a larger system, but looking at the smaller parts... and in the end, I have something more than an academic exercise and a 4 line program. 10:49:33 What you write has little bearing on *how* you write it. 10:49:41 I've got like 3 ore "features" I have to add.. and then I'm going to go back and look at the code, see what was good, what was bad (lots of it?) and play with fixing some parts. in the meantime, I've become a lot more familiar with forth, in general. I'm at the point where -- good code aside -- I feel that forth is no longer a barrier for coding the mindstorms, etc. 10:50:13 does that mean I'm an expert -- bah... hardly. but at least I have written *some* code. 10:54:58 You can write a lot of code that runs in Forth without ever learning Forth well. Examples of that abound. 10:55:55 how would you determine if yo know forth well? 10:57:05 --- quit: ellisway (Read error: 113 (No route to host)) 10:57:07 It's easier to define in its absence. For instance, Forth code written by someone only versed in, say, C, commonly is written as a straight transliteration of C code, idioms and all. That's bad code. 10:57:22 An excess of stack juggling, long word definitions, poor naming; those are all characteristics of bad Forth. 10:57:36 ok 10:57:49 Variables instead of the stack for parameter passing. Things like that. 11:09:06 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 11:09:06 --- mode: ChanServ set +o tathi 11:09:34 this is the code that is failing with "invalid memory address" --> board WIDTH HEIGHT * chars PIECE_CLEAR_CHAR fill ; ... it's confusing because Wand H are constants, so is P_C_C ... and "board" is only created once. but sometimes this call works, sometimes it fails. 11:10:15 How is board created? 11:13:05 once -- at the start of the run -- create board WIDTH HEIGHT * chars allot 11:13:47 this is why I said that I can't see why what's on the stack would matter here... 11:14:17 FYI chars is not correct prior to fill. It's harmless in Gforth but it's an error nonetheless. 11:15:16 It's entirely possible that code is only revealing the error, not causing it. 11:15:29 You could be in a stack underflow condition. 11:16:43 --- join: nighty (n=nighty@sushi.rural-networks.com) joined #forth 11:17:47 get-order and set-order is _evil_! 11:18:00 They should be banned from standard. 11:18:14 I'll regret this, but why? 11:18:46 well, the strange thing is, as you say, this might be a side effect -- it only seems to give the error when there are items on the stack -- not when the stack is empty. I can't see how the stack is not ever always the same, so I keep tracing is... one time, the stack is "122 1 32" and it works, another time, the stack is "122 1 32" and it fails. :-/ 11:18:50 If search order is stack, it should be stack. 11:19:20 what about chars in nvalid in that line? 11:19:25 er, is invalid? 11:19:54 fill already treats u as a number of chars. Multiplying it by char-width will give the wrong count, on any system where chars is not 1. 11:20:42 ok, removed.. no change 11:21:04 chars does nothing at all normally 11:21:06 Yes, under Gforth you could put CHARS inbetween every single word in your program without change. 11:21:15 ya, noop here. 11:21:25 In a system where the character width is not 1, of course, that is not true. 11:21:44 * JasonWoof happily ignores such systems 11:22:06 absentia: it could be crashing because you've corrupted memory beforehand 11:22:08 That's fine; in that case using chars is entirely superfluous. I find it's still descriptive sometimes though. 11:22:10 it has to be something else... stack is the same as always here, but I know it's gonna crash with invalid memory address. 11:22:30 absentia, you may be trashing 'board' itself with an error elsewhere, as Jason suggests. 11:22:43 I think that's the case... how could I "trash" it? 11:22:55 by writing over it. What data structure is defined just before it? 11:22:58 absentia: weird things happen if you overwrite random parts of memory 11:23:04 ok 11:23:23 This 'pinhole debugging' isn't helpful, we can't see your code. 11:23:26 I think this is possible -- as this conditions occur around a WIDTH * -- boundary check. 11:23:38 q: I know, don't worry about it. thanks! 11:23:43 you probably goofed some pointer arithmetic, or went beyond the bounds of some buffer or something 11:23:55 yup 11:23:57 I'll check that now. 11:24:21 are WIDTH and HEIGHT really 1? 11:24:31 80 24 11:25:06 then how are you getting that 1 on the stack? 11:25:14 --- join: Raystm2- (n=NanRay@adsl-68-95-249-200.dsl.rcsntx.swbell.net) joined #forth 11:25:46 that's the stack BEFORE the call... inside the call, it's: board u bl fill ; 11:25:48 or do you mean you have those three items on the stack before doing: board WIDTH HEIGHT * bl fill 11:25:59 ok 11:26:05 before the call it's: key flag char-from-mem 11:26:07 that shouldn't matter 11:26:50 ya, it all looks correct, the only thing I can think is that I'm whacking at some mem before board -- due to a bad boudary check. I'm going to check the x and y coming into the "carray put" routine. 11:27:06 it shouldn't.. .but it was the only thing that I noticed before -- but it was a side issue... 11:27:08 I think 11:27:34 this is the hard kind of bug to find 11:27:49 need to test each word to make sure it does exactly what you think it does 11:28:26 the thing is, I tested logic for player and it works... no corruiption.. ran under a "random" driver for a long time... the same code with the lep, seems to be going outside the boundary... so just have to check it a little closer. 11:29:58 well, I *know* what causes it -- it's when the lep goes <0 in height, then goes >HEIGHT in height (or in the reverse order) -- doesn't happen on the first occurrence, but will cause the crash (at board clear) -- after the SECOND occurrence.... that's why it's confusing -- the first time, it works... the second time, it doesn't. so, that lets me know maybe it's a one side that's failing, either lower past 0 or greater past HEIGHT ... one of the 11:30:00 m is the bad one. 11:34:06 :-< valules never went <0 or > 24 11:34:48 That doesn't mean the write itself doesn't exceed bounds. Check that you're doing the math properly. 11:36:03 with chars, do you do "chars *" or just "chars" -- even though it's a noop here... if it was a "1" -- say, it would cause an error. 11:36:27 chars * is an error. It's equivalent to '*' alone under Gforth. 11:36:53 chars performs a multiplication. Under Gforth, it's a multiplication by 1. 11:37:01 ok 11:37:04 that's what I thought. 11:38:08 In a well-written program, access to the board array (or any array) would be factored into a single word that did the offset calculation. 11:38:29 : caput ( addr char u u -- ) \ u u = x y 11:38:29 WIDTH * + chars rot + c! ; 11:39:09 that's what I have.... call with board char x y -- and x /y never go out of bounds. 11:39:19 --- quit: Raystm2 (Read error: 110 (Connection timed out)) 11:39:51 If the definition of board is being overwritten, it may be an array defined *before* board that is going out of bounds. That's why I asked what you're defining before it. 11:40:13 ah, ok. I see. 11:40:15 Again, can't see your code. 11:40:17 let me look 11:40:37 you do't have to see my ode -- your explanation makes sense... it's nt an issue with board or the board system -- it might be an issue with something else that comes before it. 11:40:42 where board is stored. 11:41:30 I am shooting into the dark, in fact, because I can't see your code. The problem may be somewhere else entirely. 11:41:31 6 vars... player x y, lep x y and dragon x y, with dragon x y right before board.. and dragon is 100% commented out now (it's only a single word call) ... so that's easy. 11:45:14 --- nick: Raystm2- -> Raystm2 11:45:32 I seem to be haveing fun staying connected today. 11:45:44 yesterday too I think 11:46:05 In more ways then you know. :) 11:48:28 --- join: TheBlueWizard (i=TheBlueW@ts001d0840.wdc-dc.xod.concentric.net) joined #forth 11:49:35 Raystm2, read your c.l.f. note. I'm not sure I agree as regards having your program as a sequence of specially-colored words dotted throughout a series of English sentences, but another thought came to mind -- 11:49:46 aren't definition names constrained by the 5-char-or-so huffman dealie? 11:49:50 So you'd be writing some pretty stilted prose. 11:50:36 not at all, Your entire word goes into the block, maybe not into the dictionary on compileLOAD but it still reads like english if you wish. 11:51:11 Ok. But still with the collision possibilities. 11:51:22 --- join: arke_ (n=chris@pD9E07AEE.dip.t-dialin.net) joined #forth 11:52:29 I've only glazed the coverage on that specific issue of the problem. You can very well have a word name that starts out red and ends white. An abreviation if you will. 11:52:52 yikes. Ok. 11:53:25 has anybody any experiences with forth source code compression? 11:54:15 virl I've only ever seen the lz77 in forth, colorforth at that. 11:54:29 compression routines written in Forth, or compressing Forth source? 11:54:52 well, exactly both. 11:55:33 Baden has a compression program on his Neil Bawd page, it could be applied to Forth source, or any other data. 11:55:33 I betting gforth and win32 come with some compression, somewhere. 11:56:30 Wil Baden Neil Bawd which is the anagram and which is the name? 11:56:36 Baden is the name. 11:56:46 Raystm2: are you *sure* about changinge colors mid-word? 11:56:48 Thank you, never knew taht. 11:57:57 tathi, not mid word really, but actually seperate words with a space inbetween, but that doesn't mean that red couldn't be redefined to allow a white extention of the word at any point in the word. 11:58:26 ah 11:58:45 I got completely lost halfway through that sentence. 11:58:48 or white could be toggled to include the -trailing routine, some how. 11:59:01 You mean colorForth itself could be rebuilt to allow this? 11:59:36 I'm certain it could. But with something akin to ... 11:59:56 : name- to-long ... 11:59:59 works already. 12:00:06 Ok. That's the Jeff Fox argument. Any limitation in colorForth will be fixed in a future revision. 12:00:08 too-long even 12:00:27 well, I just started with a compression algorithmus which only replaces single words by numbers. 12:00:33 well, I take that to mean, anything you think is missing, ad. 12:00:57 If it's a dang good ad, share. 12:01:24 yes, but quit talking about such things as if they already exist, dammit. :) 12:01:39 the version I just exampled exists. 12:01:40 Additions are fine. When you get to where you'd have to crack open the assembly to create a variant of the language itself in order to add the thing, it's both not so easy to share, and not a good idea. 12:02:28 there is that. sounds like a fork. 12:02:29 --- join: crc (n=crc@pdpc/supporter/active/crc) joined #forth 12:02:30 --- mode: ChanServ set +o crc 12:02:34 hi crc. 12:02:37 hey crc 12:03:03 hi Ray, Quartus 12:03:21 hi crc 12:03:36 Quartus: i like jeff fox's argument. 12:03:51 Do you? Some new use of the word 'like' I haven't run into previously? :) 12:04:40 :) 12:05:24 I suppose if a kernel is worth rewriteing all of your custom code for it... 12:05:32 my point. 12:06:37 Real world usage ( such a thing? I dare say not. ) would mean that a kernel upgrade would have to break code, and as colorforthers we know this going in. 12:07:15 colorforth? real world usage? did i miss something? 12:07:23 Of course your notion works in Forth now. ( I will now ) + ( the two numbers, and then ) * ( with the value underneath.) 12:07:28 All part of Chuck's porting rant. 12:07:56 --- quit: arke (Connection timed out) 12:08:22 I particularly 'liked' Fox saying that he'd checked colorForth source, and all the names were short, so the fact that colorForth doesn't work with longer names doesn't matter. 12:08:46 yeah :) 12:09:00 slava, overnight there was a colorforth revolution... /me quits cuz /me is rarely taken as funny and usually assumed to be a smart ass which I am but in a non threating, unassuming, Hugh Grant kinda way. 12:10:19 --- join: Sukoshi (n=user@user-11faaaj.dsl.mindspring.com) joined #forth 12:11:22 Like the Sufi parable: A man is standing in his yard throwing corn. A passer-by asks him why, and he replies, "Because it keeps the tigers away." "But there aren't any tigers here," the passer-by protests. "Well, it works then, doesn't it?" the man says. 12:12:26 I just checked to be sure, and I find Chuck defining CURSOR and KEYBOARD, both examples of words with extentions so Jeff is clearly no correct here. 12:12:48 I thought he said no collisions, not no extensions 12:13:19 Happy New Year! 12:14:49 HNYA. 12:15:32 Yes, there are too collissions, and they can be nasty to diagnos as well. 12:16:10 I ported JasonWoof's binary adder to ChuckBot and Jason-likes-to-use-the-hyphen. 12:16:59 several of the words where conveniently names like... 12:17:34 one-one two-one three-one two-two three-two three-three. and all of the three words colided. 12:19:08 this was fixed by using the string representation of the numbers as the word, but this wouldn't work literatly in every case. 12:20:22 I don't expect any kind of coherent response from Jeff, but I don't see the point of the encoding scheme at all. Moore said it was to save space and speed, but it saves very little of either, at great cost. 12:20:58 And with his predictions of further kludges to extend the scheme, even less. 12:21:00 1-1 2-1 3-1 2-2 3-2 3-3. no collisions. But to have to do something like 1factory-name-difference 2factory-name-changed 3factory-name-alternative where maybe the number has no bearing, that's not good. 12:23:17 I suppose the compression comes from the desire to pack into 28 bits, to include the class tag in the last four. Maybe somesort of translation table is better. 12:24:05 I don't understand the factory bit 12:24:05 And so that's supposed to save space, so every header takes 8 bytes (the packed name+tags, and the xt). 12:24:30 saving that quantity of space seems stupid 12:24:46 And that's supposed to increase dictionary search speed, as name comparisions are single-word comparisons. 12:25:16 handy dandy 12:25:27 JasonWoof: 1factory-name-difference was used to show a generic word that had it's difference in the end of the word but required a difference in the beginning of the word. 12:25:33 I bet his dictionary searches are faster than mine 12:25:35 Saving that quantity of speed is also stupid, plus it's not actually a savings. A simple hashtable with cleartext name storage -- no collisions! -- would do better. 12:25:39 but I don't search the dictionary at all at compile time 12:28:13 it's been a while since I've done statistics on how much space my source takes up 12:28:22 including the dictionary headers and all that 12:28:33 and what that boils down to per word of source code 12:29:48 my name in the dictionary has a 8 byte overhead, plus 0-3 bytes for allignment 12:30:08 4-byte pointer to the string, and 4-bytes to specify the type (string) and length 12:30:38 so the name for a word like @ takes 12 bytes 12:30:59 LUDDITE!!! 12:31:09 but still only 2 bytes in the source code 12:31:21 i think writing useful applications is more imporant than saving a few bytes in the dictionary 12:31:29 * tathi keeps wondering what werty thinks the word 'belabor' means... 12:32:38 a word like core-flags-clear would take 24 bytes in the headers 12:32:45 Who knows WinAPI? 12:32:45 but still only 2 bytes in the source code 12:32:53 What does GetTickCount return? 12:32:59 Seconds? 12:33:04 Milliseconds? 12:33:04 Ticks. 12:33:11 search msdn 12:33:28 I need MSDN then, I don't have one. 12:33:29 so, use it twice, and you've used less space than ascii source 12:33:44 does it matter if its less space than ascii source? 12:33:59 if you gzip your sources it will be smaller still 12:34:14 :) 12:34:27 not really 12:34:32 I did it that way because it made sense to me 12:34:45 i like text sources because i can use conventional version control 12:34:49 and i don't have to write a custom editor 12:34:52 I tried to design my data structures so I had each piece of information only once 12:34:59 slava, you just don't understand the true glory of the Huffman. 12:35:19 slava: yep, that's the advantage of text 12:35:43 I've got most of an editor, and I'll write a source control thing eventually 12:36:03 I think he needs to go all the way, though. Why have a keyboard with letter symbols on it? You want one that lets you enter the huffman directly. 12:36:36 Quartus: SHH! don't give him any ideas ;) 12:37:10 herkforth uses a 16-byte buffer for word names 12:37:29 a few times I wanted a 17-letter word 12:37:49 i don't like hard-coded limitations 12:38:00 yeah, fronds doesn't limit it 12:38:19 'twas all in the name of expediency 12:38:26 no, really. Divide the keyboard into two halfs, let's call them 'ootay' and 'pahtah'. The ootay side had 0 10 1100 1101 1110 and 1111, the patah side has 000 001 010 011 100 101 110 111 12:38:36 fixed size buffers are usually a side effect of not having a gc 12:38:48 In fact, hell, make 01 and 10 common to both the ootay and the pahtah side. 12:39:27 Quartus: where'd you get those names from? they make me grin 12:39:31 You form a huffman symbol by holding down an ootay and then pressing a pahtah. 12:39:53 JasonWoof, I think they're from a particularly bad book I read many years ago. :) 12:40:11 ootay 12:41:04 incidentally, vcore-flags-clear is one word that got trimmed 12:41:13 when cross-compiling to fronds, I prefix all fronds words with "v" 12:41:35 (so they don't conflict with herkforth words) 12:41:46 and the extra character pushed it to 17 characters :) 12:42:40 I really gotta finish up the fronds editor 12:42:45 it's about freaking time! 12:43:23 wordlists, my man, wordlists :) 12:43:34 feh! 12:43:45 pahtah! 12:43:46 I like being able to access both 12:43:49 lol 12:46:17 google pahtah ... Czech (transliterated) pahtah; English translation: heel. :) 12:47:17 perhaps ootay is toe 12:47:35 Tapdance your way to better Forth! 12:56:08 --- join: ellisway (n=ellis@host-87-74-241-174.bulldogdsl.com) joined #forth 12:59:47 --- quit: Raystm2 (Read error: 60 (Operation timed out)) 12:59:51 --- quit: BirdReynolds (Read error: 110 (Connection timed out)) 13:03:19 --- join: Raystm2 (n=NanRay@adsl-69-149-32-121.dsl.rcsntx.swbell.net) joined #forth 13:17:51 --- join: gorgonzola (n=mhx@f233149.upc-f.chello.nl) joined #forth 13:24:59 so -- a "doing it right" question ... if I have a value on the stack... and I want to check this against <0 and >WIDTH ... if it's <0, it becomes WIDTH, if it's >WIDTH it becomes 0, otherwise, it remains unchanged. 13:25:10 Heel heel toe, heel toe toe toe... 13:25:41 WITHIN is where to start 13:27:07 if ( $x < 0 ) $x = $WIDTH; 13:27:07 if ( $x > $WIDTH ) $x = 0; 13:27:35 don't write php code and translate it to perl. 13:27:43 to forth* 13:27:46 :-) 13:27:49 you could transliterate those two conditionals, but I suspect a better solution exists 13:27:56 ya, I'm asking 13:27:59 I can't think of one. 13:28:06 : clamp ( value min max -- newvalue ) >r max r> min ; 13:28:09 and i also can't translate those conditionals 13:28:15 using only the stack 13:28:24 yes, you can. 13:28:36 oh, wait 13:28:37 that's trivial 13:29:02 i think what you really want to do is use mod 13:29:11 how? 13:29:18 x width mod 13:29:36 I thought of that, but he wants values >width to be 0 13:29:43 right 13:30:43 so you need within to tell you which values pass unchanged, and something else to reassign out of bounds values. 13:32:43 absentia: Just define greedy conditional: ( x y ? -- z ) 13:32:50 And you've got it. 13:32:57 Other way: 13:33:41 ( x width ) over < and ( x | 0 ) 13:33:52 I'm mobile, so I'm slowed down, but give me a min and I'll show you a solution. 13:34:09 well, I hve this 13:34:19 player_y @ + 13:34:19 dup HEIGHT > if drop 0 then 13:34:19 dup 0 < if drop HEIGHT then 13:34:21 repeat for x 13:34:23 :-/ 13:34:50 ( x width ) over 0< greedy-if 13:35:04 absentia: would mod work? are you just doing wrapping, or does it really need to go exactly to the other edge? 13:35:20 exactly 13:35:38 my code works -- I just figured someone would say it's not very forthish. 13:35:55 but now I have 2 vals on the stack and I need to put valls at -3 and -4 :-/ 13:36:18 hrm. odd. what are you using it for? some sort of teleporter device? 13:36:27 yes 13:36:32 "edge of screen" 13:37:45 : greedy-if ( 0<> -- for not wff ) tuck and -rot invert and or ; 13:37:51 can you explain why mod wouldn't work? I still don't get it. 13:38:16 Total: 3 lines of code. 13:38:18 mod = off by 1 error 13:38:41 I don't understanrf that asau, sorry. 13:39:03 so use HEIGHT+1 13:39:20 : foo 0 width within 0= if 0< width and. then ; 13:39:21 You define greedy if, that selects one of two values from stack, 13:39:26 basing on flag value. 13:39:31 no . after and 13:39:43 Then you use this greedy if. 13:40:02 Quartus_: good thing drake isn't here 13:40:05 Or you use wff. 13:40:19 wff and bitwise operations. 13:40:21 tathi, I did that quite deliberately :) 13:41:20 that meets what I understood of absentia's requirements 13:41:57 looks good to me 13:42:37 using a ssh session from a blackberry. Bit slow. :) 13:43:37 it could of course be generalized to take width as a parameter. 13:44:18 I get nothing on that stack with that code, q 13:44:38 absentia: Which code? 13:44:44 : foo 13:45:04 -1 foo, 0 foo, 12 foo, 24 foo, 25 foo -- w/ 24 constant width ... 13:46:21 oh, it needs a dup at the beginning, I think. 13:46:57 yeah 13:47:10 it's close 13:47:17 --- part: TheBlueWizard left #forth 13:47:18 and a 1+ after width, to do it exactly the way you want 13:47:29 which I *still* think is screwy :) 13:47:30 yes 13:47:31 :-> 13:49:23 IMO indexes or coordinates or whatever should always go from 0 to limit-1. 13:49:42 they do. that's the error with my board corruption... :-) 13:50:43 --- join: BirdReynolds (n=mhx@f233149.upc-f.chello.nl) joined #forth 13:54:28 oh yeah -- left out the dup. And between is conventionally 1+ within 13:55:22 had the dup in my gforth session, left it out when coming back here to type it in :) no cut/paste 13:59:24 so. : foo dup 0 width between 0= if 0< width and then ; look better? 14:05:09 Quartus, is that bad Forth code? http://home.earthlink.net/~neilbawd/lzss.txt 14:09:33 yes 14:10:06 virl: Definitely. 14:10:14 Mrr. 14:10:27 What's right spelling? 14:11:16 BTW, NY in Kaliningrad. 14:11:38 That's the last town where NY comes to in Russia. 14:11:39 :) 14:11:54 NY? 14:12:00 New Year. 14:12:19 virl: I didn't get far through. you should probably put an "align" in CARRAY 14:14:50 hmm? in what I should put that? 14:15:23 no, CREATE aligns by definition 14:15:29 don't worry about it 14:16:10 it's not a source file from me, sry, but my FORTH isn't sooo bad. 14:23:12 that code, and a couple of others on that page, are actual transliterations from C, function-by-function. 14:24:07 virl: your forth? i wasn't aware you programmed in forth 14:24:49 where can we see your applications? 14:25:15 --- quit: gorgonzola ("a quit that really quits") 14:25:29 --- join: gorgonzola (n=mhx@f233149.upc-f.chello.nl) joined #forth 14:27:10 for example my ambassador of pain clone in retroforth, but this app has a bug which I haven't fixed yet and isn't up to date. 14:27:44 --- quit: gorgonzola (Client Quit) 14:27:52 --- join: gorgonzola (n=mhx@f233149.upc-f.chello.nl) joined #forth 14:28:12 slava, http://retroforth.org/contrib/files/aop-forth.tar.gz was written by virl 14:28:44 and works btw. only under linux because of linux syscalls.. 14:29:32 virl: why do you say that $5403 0 3 54 syscall is more readable than C? 14:31:07 eh, now you misinterpreted what I wrote, I said that the Forth version is more readable than the C version of the game. 14:31:11 --- quit: BirdReynolds ("a quit that really quits") 14:31:22 --- join: BirdReynolds (n=mhx@f233149.upc-f.chello.nl) joined #forth 14:32:16 yet, the forth version has hard-coded syscall numbers 14:33:06 and hard-coded ascii 14:36:13 well, hard coded ascii isn't so bad. I mean it's a standard. 14:36:48 it makes code hard to read 14:36:56 if i want to know what 113 is, i have to open factor, and type 113 write1 14:40:56 --- quit: gorgonzola ("a quit that really quits") 14:40:57 it's a three days hack, so I don't say that it should be perfect. 14:41:05 --- join: gorgonzola (n=mhx@f233149.upc-f.chello.nl) joined #forth 14:41:17 i didn't say that either, i just question your claims that this is more readable than C. 14:41:24 i doubt the C programmer used numerical ascii codes, or syscall codes. 14:43:19 no, he used the curses libs, so no syscalls at all. 14:43:36 --- quit: ayrnieu (Remote closed the connection) 14:44:29 --- quit: gorgonzola (Client Quit) 14:44:33 and I did all without external libs, only syscalls and it fits into 64 lines, which makes me a little bit proud. 14:44:37 --- join: gorgonzola (n=mhx@f233149.upc-f.chello.nl) joined #forth 14:44:44 why does it make you proud to not reuse code? 14:44:50 --- join: ayrnieu (n=julian@pdpc/supporter/sustaining/ayrnieu) joined #forth 14:45:38 jeff fox would say your 64 lines is bloat 14:45:44 lol 14:46:23 you're not using huffman encoding for your in-memory data structures 14:46:38 aha.. 14:47:50 I wrote the thing from scratch because I wanted to show me that I can do that. 14:51:17 --- quit: gorgonzola ("a quit that really quits") 14:51:28 --- join: gorgonzola (n=mhx@f233149.upc-f.chello.nl) joined #forth 14:52:05 --- quit: gorgonzola (Client Quit) 14:52:07 what is btw for jeff fox not bloat? 14:52:12 --- join: gorgonzola (n=mhx@f233149.upc-f.chello.nl) joined #forth 14:53:22 --- quit: BirdReynolds ("a quit that really quits") 14:53:32 --- join: BirdReynolds (n=mhx@f233149.upc-f.chello.nl) joined #forth 14:55:45 virl: colorforth 14:56:11 but only if you run it on a machine with less than 4mb of ram, because extra unused ram and disk space is bloat too 14:56:40 werty's newforth opsys isn't bloat either, because it doesn't exist 14:57:44 it's so slim that you can't see it 15:01:50 happy new year's everybody 15:01:55 i'm going out 15:02:03 --- quit: slava () 15:34:21 --- quit: gorgonzola ("a quit that really quits") 15:34:34 --- join: gorgonzola (n=mhx@f233149.upc-f.chello.nl) joined #forth 15:56:01 --- quit: cmeme (Remote closed the connection) 15:57:49 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 17:04:43 --- quit: gorgonzola ("a quit that really quits") 17:08:28 --- quit: BirdReynolds ("a quit that really quits") 17:52:38 --- quit: crc (Remote closed the connection) 18:24:00 --- quit: virsys (sterling.freenode.net irc.freenode.net) 18:24:01 --- quit: Sukoshi (sterling.freenode.net irc.freenode.net) 18:24:01 --- quit: Cheery (sterling.freenode.net irc.freenode.net) 18:24:01 --- quit: absentia (sterling.freenode.net irc.freenode.net) 18:24:01 --- quit: ccfg (sterling.freenode.net irc.freenode.net) 18:24:02 --- quit: tathi (sterling.freenode.net irc.freenode.net) 18:24:02 --- quit: Zarutian (sterling.freenode.net irc.freenode.net) 18:24:03 --- quit: Quartus (sterling.freenode.net irc.freenode.net) 18:24:03 --- quit: madgarden (sterling.freenode.net irc.freenode.net) 18:24:03 --- quit: timlarson (sterling.freenode.net irc.freenode.net) 18:24:03 --- quit: Baughn (sterling.freenode.net irc.freenode.net) 18:24:03 --- quit: cmeme (sterling.freenode.net irc.freenode.net) 18:24:03 --- quit: ayrnieu (sterling.freenode.net irc.freenode.net) 18:24:03 --- quit: ellisway (sterling.freenode.net irc.freenode.net) 18:24:03 --- quit: nighty (sterling.freenode.net irc.freenode.net) 18:24:03 --- quit: JasonWoof (sterling.freenode.net irc.freenode.net) 18:24:03 --- quit: virl (sterling.freenode.net irc.freenode.net) 18:24:03 --- quit: ASau (sterling.freenode.net irc.freenode.net) 18:24:04 --- quit: skas_wk (sterling.freenode.net irc.freenode.net) 18:24:04 --- quit: Raystm2 (sterling.freenode.net irc.freenode.net) 18:24:04 --- quit: arke_ (sterling.freenode.net irc.freenode.net) 18:24:05 --- quit: Quartus_ (sterling.freenode.net irc.freenode.net) 18:24:05 --- quit: nighty_ (sterling.freenode.net irc.freenode.net) 18:24:06 --- quit: TreyB (sterling.freenode.net irc.freenode.net) 18:29:56 --- join: Quartus (n=trailer@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #forth 18:29:56 --- join: timlarson (n=timlarso@user-12l325b.cable.mindspring.com) joined #forth 18:29:56 --- join: ccfg (n=ccfg@80.222.138.21) joined #forth 18:29:56 --- join: madgarden (n=madgarde@bas2-kitchener06-1096751791.dsl.bell.ca) joined #forth 18:29:56 --- join: Zarutian (n=Zarutian@194-144-84-110.du.xdsl.is) joined #forth 18:29:56 --- join: virsys (n=virsys@or-71-53-68-17.dhcp.embarqhsd.net) joined #forth 18:29:56 --- join: absentia (n=scott@ns6.lobodirect.com) joined #forth 18:29:56 --- join: Cheery (n=Cheery@a81-197-54-146.elisa-laajakaista.fi) joined #forth 18:29:56 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 18:29:56 --- join: Sukoshi (n=user@user-11faaaj.dsl.mindspring.com) joined #forth 18:29:56 --- join: Raystm2 (n=NanRay@adsl-69-149-32-121.dsl.rcsntx.swbell.net) joined #forth 18:29:56 --- join: arke_ (n=chris@pD9E07AEE.dip.t-dialin.net) joined #forth 18:29:56 --- join: Quartus_ (n=Quartus_@209.167.5.1) joined #forth 18:29:56 --- mode: irc.freenode.net set +ooo Quartus tathi Quartus_ 18:30:23 --- join: Baughn (n=svein@195134062077.customer.alfanett.no) joined #forth 18:30:29 --- join: TreyB (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 18:30:34 --- join: JasonWoof (n=jason@unaffiliated/herkamire) joined #forth 18:30:34 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 18:30:34 --- join: ayrnieu (n=julian@pdpc/supporter/sustaining/ayrnieu) joined #forth 18:30:34 --- join: ellisway (n=ellis@host-87-74-241-174.bulldogdsl.com) joined #forth 18:30:34 --- join: nighty (n=nighty@sushi.rural-networks.com) joined #forth 18:30:34 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 18:30:34 --- join: ASau (n=user@195.98.173.2) joined #forth 18:30:34 --- join: skas_wk (n=skas_wk@202.55.146.182) joined #forth 18:30:34 --- mode: irc.freenode.net set +o JasonWoof 18:30:34 --- join: nighty_ (n=nighty@66-163-28-100.ip.tor.radiant.net) joined #forth 18:35:44 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 18:52:06 --- join: slava (n=mp@modemcable059.157-37-24.mc.videotron.ca) joined #forth 18:52:07 --- mode: ChanServ set +o slava 18:52:25 --- join: crc (n=crc@pool-70-110-132-17.phil.east.verizon.net) joined #forth 18:52:39 --- mode: ChanServ set +o crc 18:53:40 hi crc 18:55:46 hi slava 18:57:51 Hey guys 18:57:58 hi 19:01:40 --- quit: tathi ("leaving") 19:14:43 what's up? 19:14:50 coding -- playing. 19:17:09 hmmm. case doesn't consume the tos? 19:23:33 --- nick: arke_ -> arkee 19:23:45 --- nick: arkee -> arke 19:33:25 end-case does 19:44:01 http://rafb.net/p/tRo3TB39.html 19:44:54 what's the point of that 19:46:11 Mnogabukf. 19:46:25 (Toomanychars) 19:46:37 http://www.mariza.org/ 19:46:45 Good evening, all. 19:50:21 Sorry. 19:50:28 Good morning, of course. 20:07:27 --- mode: ChanServ set +o arke 21:02:17 --- quit: slava () 21:07:33 Happy New Year 2007 21:07:37 Quartus: :) 21:16:11 you too :) 21:39:49 --- join: slava (n=mp@modemcable059.157-37-24.mc.videotron.ca) joined #forth 21:39:49 --- mode: ChanServ set +o slava 21:41:10 --- quit: slava (Client Quit) 22:13:34 Happy. 22:14:00 happy newyear everybody 23:59:59 --- log: ended forth/06.12.31