00:00:00 --- log: started forth/06.12.27 01:22:32 --- quit: slava () 01:25:19 --- quit: JasonWoof ("off to bed") 03:39:52 --- join: arke_ (n=chris@pD9E05DF8.dip.t-dialin.net) joined #forth 03:40:03 --- quit: arke (Read error: 104 (Connection reset by peer)) 05:11:34 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 05:11:35 --- mode: ChanServ set +o tathi 05:31:16 re John Drake's ColorForth hello world: my question is, where the heck did he get stype? It's not in any of the colorforths that I've seen... 05:32:50 and IMO it's pretty misleading to claim a two-line hello world, when it requires a non-trivial word that isn't commonly available. 05:49:02 --- quit: Shine (Read error: 104 (Connection reset by peer)) 05:52:33 --- join: Shine_ (n=Frank_Bu@xdsl-84-44-156-231.netcologne.de) joined #forth 05:52:50 --- nick: Shine_ -> Shine 06:00:05 --- join: timlarson_ (n=timlarso@65.116.199.19) joined #forth 06:05:02 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 06:06:13 he probably forgot that he'd defined it himself. 06:36:51 what's the kernl.fi file of gforth? is that the minimal version of gforth image? 06:39:33 --- nick: arke_ -> arke 06:39:42 --- mode: ChanServ set +o arke 07:58:28 --- join: I440r (n=mark4@70.102.202.162) joined #forth 07:58:35 msg nickserv identify wesdxc 07:58:39 argh that was bad 07:58:46 --- mode: ChanServ set +o I440r 07:59:29 * tathi goes to hijack I440r's nickname :) 08:00:27 changed :) brb, my drives are going funny :( 08:00:55 --- quit: I440r (Client Quit) 08:02:11 --- join: I440r (n=mark4@70.102.202.162) joined #forth 08:02:11 --- mode: ChanServ set +o I440r 08:22:28 --- quit: I440r ("bbl") 08:41:06 --- quit: timlarson_ (Read error: 104 (Connection reset by peer)) 08:41:34 --- join: timlarson_ (n=timlarso@65.116.199.19) joined #forth 08:48:58 tathi, that's what I thought, too. 08:50:02 yeah. he came into #c4th a little while ago and I asked him about it; he didn't seem to think it mattered. 08:50:25 and...he hasn't actually finished writing stype yet :) 08:50:30 He may as well just said that "Hello World" in c4th is 'hello' 08:50:48 ok, I'm going to call bullshit on it then. 08:51:20 he made a blog post with the real state of things 08:51:23 http://primarycolorforth.blogspot.com/2006/12/typing-colorforth.html 09:00:21 Thanks. 09:07:03 the gforth kernel image. for what? 09:09:41 dunno. 09:09:56 just for building gforth, I think 09:10:18 it creates a bigger file gforth.fi which it uses in ordinary usage 09:19:46 hmm, is there a dlopen word in gforth? it links against libdl, so it should. let's see.. 09:20:22 yeah, you don't want to use it directly though 09:21:12 well, why? 09:21:25 require lib.fs 09:21:25 library libX libX11.so 09:21:25 libX XOpenDisplay ptr (ptr) XOpenDisplay 09:21:48 do it like that 09:21:56 well, that doesn't works. 09:22:10 really? 09:22:30 yep, says stack underflow 09:22:37 where? 09:22:53 oh, it has a couple of different interfaces still, I think. 09:23:11 what platform? 09:23:23 linux, it hasn't ffcall 09:23:50 oh. 09:23:56 that would do it 09:24:27 yeah, install ffcall or libffi :) 09:24:34 unless you really want to write your own stuff 09:25:02 I think I write my own stuff, such shit annoys me. 09:25:56 lol 09:25:57 whatever 09:26:01 heh 09:26:44 such shit annoys you, so you'll just duplicate it yourself? 09:27:11 Hey, give him some credit, he produces shit all the time. :) 09:27:16 anyway, gforth has open-lib and lib-sym which are wrappers around the libdl functions 09:27:57 there's no documentation 09:28:12 the file 'prim' at the top level of the gforth source does have stack comments 09:28:16 good luck with that 09:28:21 1) I dislike it that I need to install ffcall and then do a recompile 2) the calling function syntax is ugly 09:28:45 how would you make it any less ugly? 09:29:18 you have to have the library filename to open it 09:29:27 you have to have the function name to find the symbol 09:29:47 on some platforms you need not only the number of arguments, but also the types (at least int/float) 09:30:16 the only thing I see that you could possibly eliminate is the option for the forth word to have a different name than the library symbol 09:30:26 You haven't seen ugly until you've tried to deal with mangled C++ symbols. 09:32:51 --- join: mbishop (n=martin@unaffiliated/mbishop) joined #forth 09:40:14 tathi, making the name always the same would be unfortunate if you're dealing with a library in which two names differ only in case. You'd have to set up a case-sensitive wordlist under Gforth. Can be done, but needless. 09:49:58 ya. I wasn't suggestng that it was a good idea 09:50:14 I know it. :) 09:51:49 though I admit I hadn't thought of the case thing :) 10:18:30 It's one downside to not requiring an alias. Another might be name lengths, in some cases. 10:40:28 Some library names can be pretty freaking lengthy. :) 10:41:17 some argument lists can too. :) 10:41:24 true. 10:41:39 There's a Palm OS call with 13 arguments. 10:45:32 I replied to Drake, but as he's getting increasingly upset I expect I'll stop shortly. 10:45:58 heh 10:46:43 I mean, I get how people bond with their favourite language. I get how they want to show its strengths and defend it against naysayers. But you have to stick to the truth, or it just digs the hole deeper. 10:50:41 and werty jumped in on things too, I see :) 10:50:48 he did? 10:51:20 earlier, you mean? 10:52:15 oh, never mind. that was apparently a reply to something earlier in the thread 10:52:39 I've never been directly wertied, I don't think, though it could be hard to tell without checking message header reference numbers. 10:53:31 I think I'm on-point saying that if you're going to show code and claim it's as simple as that, you might as well just say that it's 'hello' (with some suitable extensions). 10:54:08 I totally agree 10:54:24 His code as shown on his blog looks like it would work, but it has the unfortunate property of requiring the number of words to be displayed to be hard-coded into the word that displays them, instead of residing with the string itself. 10:54:33 yeah. 10:54:37 I believe also that it would not allow multiple spaces between words in a string. 10:55:10 ya. that's colorforth in general 10:55:20 And that you'd be limited to the 48 characters in the huffman-encoded insanity that is colorForth packed strings. 10:55:21 if you want to re-use the existing editor for editing strings, you're stuck with that 10:55:24 yes 10:56:44 I suggested he at least make it loop over all white text 10:56:57 That would help. I suspect it would add complexity. 10:57:23 definitely 10:57:31 He may never get to it if he blows a frontal lobe because of my replies, though. 10:57:38 hehe 10:58:36 I considered saying that if OpenGL were required to display 'Hello World' in C, then he might have a leg to stand on as regards his rebuttal, but I figured that might cause him to become violent. 11:00:46 most colorforth folks I've talked to seem to be very poor at constructing logical arguments 11:01:10 I don't know, but it does seem that some people want to wear the cruel shoes. 11:02:10 seems sad to me...they seem not to realize how much better things could be. 11:02:41 when I make suggestions for improvements that aren't too difficult, they tend to be fairly excited about it 11:02:54 but they never seem to come up with those ideas themselves 11:02:59 Curious. 11:04:27 http://www.getasite.com/gj/cruelshoes.htm 11:05:52 :) 11:06:04 That's one of Steve Martin's short pieces. Odd guy himself. :) 11:06:57 --- join: zpg (n=user@81-179-133-251.dsl.pipex.com) joined #forth 11:07:18 that's for sure :) 11:07:51 Chaps. 11:07:55 Yo. 11:07:55 hey zpg 11:08:18 tathi, Quartus 11:08:29 We are some time absent of Quiznos, I notice. 11:09:09 I see he's holding court with one other fellow in #Believers. 11:09:19 Pardon? 11:09:38 Quiznos, used to be here on an entirely too regular basis. 11:09:45 Ah, okay. 11:09:59 Yes, it's the name of a sandwich store. No, he has nothing at all to do with said sandwich store. 11:10:42 Used to push Christianity in here. I hadn't noticed him missing, really, kind of the way you don't notice quite when a headache goes away. 11:10:42 Incidentally, I was pondering blocks again yesterday -- is there anything going for them when running, say, gforth under a modern OS? I mean, I have no real desire to do so, but the notion intruiged me. 11:11:42 zpg, I don't think blocks are anything more than a curiosity nowadays. I suppose they may still have a use in non-hosted Forths. 11:12:27 Blocks are a very crude filesystem. 11:12:52 Blocks off-load bookkeeping from the machine to the human because the target doesn't have the resources to deal with it. That doesn't fit very many environments these days. 11:13:17 * zpg nods 11:13:35 The target would have to be very, very small not to manage something like, say, a FAT16 filesystem. 11:13:54 For targets that small you'd be using an umbilical system at least, nowadays. 11:14:04 Sure. 11:19:54 tathi, he's gone mad. 11:21:35 zpg, re c.l.f, discussion I am undertaking with John Drake re colorForth. 11:22:00 * zpg nods 11:22:13 I think he just officially went spare. 11:25:06 * tathi looks 11:25:29 the "well formed flag" message. 11:27:26 wow 11:29:08 I like : digit ( u -- char ) [char] 0 + dup [char] 9 > 7 and + ; 11:29:19 because it starts by doing the thing you expect -- producing a digit. 11:29:32 Then it goes on to adjust it if necessary. The second part could be an if/then of course. 11:29:37 yeah 11:30:14 The colorForth : digit -10 + -if 58 + ; then 65 + ; 11:30:20 just makes me cry a little. 11:30:51 but it's smaller 11:31:29 that's hard to follow 11:32:51 let's see...it's... adding 48 if it's less than 10, or 55 otherwise? 11:33:15 Oh, it's size you want to minimize? Here: 11:33:15 ANS : digit 48 + dup 57 > 7 and + ; 11:33:15 colorForth : digit -10 + -if 58 + ; then 65 + ; 11:33:21 The ANS version is shorter. 11:36:35 Underscoring this sillyness is that colorForth doesn't even work in ASCII. 11:38:13 yeah, it took me a while to make sense of it because I wasn't expecting it to be ASCII 11:41:03 The above Standard Forth version is shorter than the cf version, but it's awful; '[char] 0' is many times better than '48'. 11:41:46 And compiles to the same code to boot. 11:41:53 Yes. 11:42:24 There's a point beyond which brevity of code is not a worthwhile goal. 11:48:04 --- join: arke_ (n=chris@pD9E054C8.dip.t-dialin.net) joined #forth 12:01:16 --- quit: nighty (Client Quit) 12:06:59 --- quit: arke (Read error: 110 (Connection timed out)) 12:08:38 --- join: nighty (n=nighty@66-163-28-100.ip.tor.radiant.net) joined #forth 12:18:58 --- join: JasonWoof (n=jason@c-71-192-26-248.hsd1.ma.comcast.net) joined #forth 12:18:59 --- mode: ChanServ set +o JasonWoof 12:22:54 he's still at it, tathi. 12:23:09 I saw 12:23:23 --- join: Sukoshi (n=user@user-11faadf.dsl.mindspring.com) joined #forth 12:23:24 I corrected him again, but this is getting ridiculous. 12:24:54 well, you could just stop bothering 12:25:00 I expect that's coming up. 12:25:29 he doesn't seem to be listening, and I think it's fairly clear that he doesn't know what he's talking about, so I doubt he'll mislead others too much 12:25:37 I'm not responding to defend my honour, but to hopefully prevent any new readers from thinking he's speaking the truth. 12:26:00 Well, yes, you're likely right about that. What I've written should suffice. 12:26:09 except maybe Doty and Passaniti and so on :) 12:26:31 heh. Passaniti is a very sharp guy, except sometimes he sticks the sharp parts into other people. Doty, well, sharp isn't the word I'd use. 12:27:08 Hmmm. Does Forth have an IRC library? 12:27:30 oh. maybe Passaniti was just being sarcastic 12:27:31 Hi Sukoshi 12:27:36 Hiya zpg. 12:27:50 'Cuz I wanna write something up that way if there is no IRC library. 12:27:52 tathi, which msg? 12:28:26 Sukoshi, networking libraries are platform-dependent. Are you thinking of a particular Forth and OS? 12:28:30 Quartus: oh, never mind. I'm getting them mixed up a bit. 12:28:35 ok :) 12:28:48 * tathi doesn't like the google groups layout much :( 12:29:06 Quartus: Well, I wanted to make it platform-independant to some degree. 12:29:16 I don't know of anything that's at all complete for IRC, though a couple of people have messed around with it. 12:29:18 Seperate the platform independant and dependant code out. 12:29:27 Sukoshi, the actual manipulation of messages to and from IRC could be done portably. 12:29:39 Quartus: Yeah. That's what I was thinking. 12:29:40 That might be useful. 12:30:04 tathi, there's the latest Drake. He says because cf comes with an editor, you can just type "Hello World" into the editor, and you're done. 12:31:36 and apparently he's so disconnected from reality that he thinks you have to read slava's mind to make the obvious interpretation of his question 12:32:39 yes. I replied to one point only, and since he's throwing in the towel, perhaps we're done. :) 12:34:11 Sukoshi: talking about portability, gforth comes with a unix socket interface (using the foreign library interface). you'd have to drop a different one in for win32, for example. 12:34:35 Could the cygwin one be used under win32? 12:34:49 I've heard that Win32 has sockets APIs no? 12:35:10 The socket.fs code in gForth is pretty.... lackluster.... 12:36:50 hmm. does look unfinished. 12:36:55 Quartus: Yeah, I was pondering that too. You'd have the same interface. Might have to adjust the library call of course. 12:36:55 I'd expect read and write to be in there 12:37:17 Hell, that is pretty sparse. 12:37:27 Quartus: heh, "You're a hoot Neal" 12:37:45 Yes. I replied. I'm getting tired, though. 12:38:15 Sukoshi: You could opt for your own socket library, and then require cygwin on windows. That'd cover Mac, Linux, BSD and Windows. Not basd.f 12:38:18 *bad 12:38:35 By "your own" I mean your own interface via ffcall 12:38:48 True. 12:38:49 Quartus: Not surprised. 12:38:56 Sukoshi: It's less of a hassle than you might think, too. 12:39:04 I hope, heh. 12:39:07 I'd have to think of something that avoids struct hell though. 12:39:23 Well, defining a few structs is de rigeur when dealing with ffi. 12:40:42 I can't understand why Ertl and co. dislike the interface. I personally find it clean and very usable. 12:40:54 zpg, perhaps it lacks some generalization. 12:41:19 In what sense? 12:41:23 I couldn't find anything recent that talked about them disliking it. 12:41:31 --- join: slava (n=slava@CPE0080ad77a020-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 12:41:31 --- mode: ChanServ set +o slava 12:41:40 I am not clear on how it handles floating-point arguments when there's a separate float stack. 12:41:42 Quartus: hello world! 12:41:42 personally, I suspect it was the pre-ffcall/fflib interface that they were complaining about 12:41:44 tathi: me neither. Quartus came across a post I believe. 12:41:56 or should that be stype keyboard text hello s world ; ! 12:41:58 or whatever :) 12:41:59 slava, I think you mean hello world 12:42:01 No ! in cf 12:42:01 Quartus: I've been calling functions that are float based. 12:42:24 zpg, I'm thinking mixed float + non-float. Haven't tried that. 12:42:43 i.e. int sf int (sf) blah ? 12:43:00 slava, drake is now on to haranguing me over masking a value with a flag, getting quite irate. 12:43:03 zpg, right. 12:43:06 works cleanly. 12:43:27 Well, good. I can't think what else might be needed. The ability to pass structs as arguments, maybe? 12:43:52 Yeah, perhaps. "ptr" is pretty good stuff. 12:44:11 I know C allows the passing of actual structs, though how often this happens I don't know. 12:44:16 The only laborious bit is scanning header files for the relevant constants and defining them myself, usually with the same name. 12:44:21 Quartus: ah ok, never done that myself. 12:44:47 zpg, yes, I import structures as required. Automation would be nice. 12:45:49 Agreed. Which doesn't necessitate scrapping what's there in my mind. 12:46:13 zpg, I'm not promoting scrapping it -- I use it too. Be nice if it were firmed up and documented. 12:46:21 Quartus: again, with you there. 12:46:23 I'm just speculating about why it isn't. 12:46:57 But, then, I use dangerous programming techniques that are apparently decried by all computer programming professors, so what do I know. :) 12:47:12 I'm wondering what the licensing implications for gforth are. I was surprised to learn that GNU Emacs, for example, necessitates the GPL'ing of any elisp code you write for library reasons. Is there a similar deal in using gforth-only words, or are we more relaxed about this sort of thing in the Forth community? 12:47:28 Quartus: Of course, of course. You're under surveillance now. 12:47:40 Yes. Keep those sharp pointy logical operands away from me. 12:47:54 zpg, there's no such requirement with gforth, to my knowledge. 12:48:04 Neat. 12:48:20 Similar to GCC I guess. 12:48:26 I would think so. 12:48:45 If you want to write code that will be part of Gforth, of course it would fall under Gforth's license. 12:48:54 hmm...maybe 12:48:57 If you intend for it to be public. 12:49:01 --- quit: JasonWoof ("adding new hardware") 12:49:07 there's a bit about image files in the gforth manual 12:49:10 wasn't too clear to me 12:49:11 i.e. if you will be redistributiong gforth. 12:49:11 Yeah, this stuff is surprisingly confusing. 12:49:39 Can be. As far as I'm aware you could write a commercial app in Gforth, and merrily sell it. 12:50:19 http://www.ugcs.caltech.edu/manuals/lang/gforth-0.6.2/gforth_248.html 12:50:27 Licensing for image seems pretty clear --> if you create an image and distribute, you're including gforth code and hence distributing a derivative work. 12:51:16 That's for a gforthmi image. The last paragraph is the 'mere aggregation' part. 12:51:52 Indeed. 12:52:27 tathi, http://primarycolorforth.blogspot.com/2006/12/typing-colorforthver-20.html 12:53:01 he credits you. 12:53:30 yeah, I've been talking to him on and off all day 12:53:55 That entry suggests the use of 'words' without showing its definitino. 12:54:17 * zpg sighs 12:54:20 It also claims that the Standard identifies the technique I used as dangerous. Sigh indeed. 12:54:34 i think writing code relying on non-existent words is more dangerous 12:54:47 heh 12:54:56 or at least, futile. 12:55:00 slava, have you seen the source to my PacMan game? It's amazing, just like the real one. Here: pacman 12:55:08 hahahahah 12:55:11 * zpg chuckles 12:55:24 Completely portable, too. 12:55:34 "man, that's like totally a rip off of my tetris source: tetris ok" 12:56:15 heh 12:57:20 I didn't bother arguing with him; just made some suggestions about improving his code. 12:57:24 Slava, your name came up, Drake says I must be able to read your mind. Of course I can, but I didn't want to tell him. 12:57:39 I find that once these people manage to learn enough about programming they abandon colorforth for a more sensible langauge 12:58:07 Like machine code entered in base 3. 12:58:48 Drake's new to programming? 12:59:06 zpg, I don't know. New to forming logical arguments, anyway. 12:59:57 Is : digit ( u -- char ) [char] 0 + dup [char] 9 > 7 and + ; really that hard to follow? 13:02:20 if you don't know the binary expansion of 7, it is. 13:02:24 the logical and is the only part that needs thought 13:02:39 --- nick: arke_ -> arke 13:02:46 --- mode: ChanServ set +o arke 13:03:20 slava, you don't need to know. The [char] 9 > produces an all-1 or all-0 flag; any value ANDed with that produces either the value, or 0. 13:03:35 ok 13:03:41 so why are we adding 7 to [char] 9? 13:03:43 The alternate is : digit ( u -- char ) [char] 0 + dup [char] 9 > if 7 + then ; 13:03:46 is that [char] A? 13:03:55 It boosts > 9 to A... 13:04:32 Rather's original is : digit ( u -- char ) dup 9 > if 7 + then [char] 0 + ; 13:04:48 I prefer the other order, making the digit first and adjusting it second if needed. 13:07:09 The really verbose version would be : digit ( u -- char ) [char] 0 + dup [char] 9 > if [ char A char 9 - 1- ] literal + then ; which would be more portable if you had to worry about A and 9 moving around on you unexpectedly. 13:07:43 Fortunately the Standard dictates the character set. 13:07:55 re: this cf stuff, it still amazes me that people invest this much time in a machine-specific "hello world". 13:08:04 *so much 13:08:10 Quartus: huffman-encoded non-ASCII w/o !, right? 13:08:16 heh 13:08:33 what values are being encoded then? 13:08:46 zpg, yes, it amazes me too. I've now been branded a bad programmer and a colorForth hater for calling Drake out on making a false claim; it's clearly very important to him. 13:08:57 zpg, what do you mean? 13:09:41 well, for something to be huffman-encoded (like "A") the original data must have a value of its own. so if not ascii, what's Moore encoding to generate his strings? 13:10:42 ah. I'll leave it to tathi to convey the inner workings of the system. 13:11:03 heh, it's a bit of a throwaway question, no worries if it's as lengthy as writing "hello world" to explain ;) 13:11:13 Quartus: a good programmer can see the beauty of colorforth, so you must be a bad programmer 13:11:24 slava, I must be, what with my dangerous techniques and all. 13:11:33 Still, it gets the chicks. 13:11:44 * zpg chuckles 13:12:10 zpg, the editor packs words huffman-wise to fit them into smaller space, ostensibly to speed lookup. 13:12:26 and dictionary lookup compares the first cell of the word nam eonly 13:12:30 sure. but what values do these characters have in the editor? 13:12:35 Why, I don't know, as compilation speed is the last thing that needs improving in Forth. 13:12:35 so you're never quite sure how many significant characters there are, unless you know the huffman encoding used 13:12:39 I read first three letters somewhere... seemed kind of strange 13:12:40 are they ascii pre-packing? 13:12:57 absentia: how's the forth coming along? 13:13:03 No, they're not. 13:13:23 quaint. 13:13:25 absentia, this is colorForth we're talking about. The length+first_three thing is olde, olde, ye really olde Forth from the 70s. 13:13:25 slow... 13:13:32 :-) 13:13:35 --- join: JasonWoof (n=jason@c-71-192-26-248.hsd1.ma.comcast.net) joined #forth 13:13:35 --- mode: ChanServ set +o JasonWoof 13:13:42 absentia: tried anything out yet? 13:13:44 I looked at colorforth again -- it seems like a niche product. 13:13:55 ok, ide help now... 13:14:00 hey Jason 13:14:05 zpg: not yet. did I mention that i'm a new first time parent :-> 13:14:05 if I put both drives on "cable select" which one will be themaster? 13:14:13 ie which will be hda and which hdb? 13:14:18 hi zpg :) 13:14:31 absentia: ah ok :) 13:14:33 I want my bootloader settings to still work 13:14:39 JasonWoof, I *think* the one closest to the controller will self-select as master, but I can't recall for sure. 13:14:44 I'm doing a quick read of x86 assembly ... and then I want to write a sample program in forth. 13:14:54 Quartus: thanks 13:14:59 well, i'll re-iterate Quartus' advice to me (which I feel has been very sound). look at ANS. 13:14:59 I'd love to get feedback from you guys (and gals?) ... when I get that done. 13:15:16 absentia, looking forward to that. Get on with it, man. :) 13:15:17 what I am really looking for is something that lists all the words n standard ANS forth -- and what they do. 13:15:28 Ok, so you want the Standard in that case. 13:15:32 It's in the /topic. 13:15:36 absentia: http://www.taygeta.com/forth/dpansf.htm 13:15:47 for instance, I type "words" in gforth, and it scrolls my screen -- but where do I find an explanation of all those words. 13:15:49 ah 13:16:28 A combination of the standard, some tutorials and using ANS Forth for yourself. I rolled my own string comparison words before discovering COMPARE for example. 13:16:30 yup, that's what I need. 13:16:30 thanks 13:16:59 No bad thing that; looked more closely at string manipulation, then discovered a word in the standard. 13:17:02 Some of the words that come up in WORDS in Gforth are just implementation factors. 13:17:03 Quartus_: googled it, looks like you're right 13:17:06 --- join: ttuttle (n=tom@gentoo/contributor/ttuttle) joined #forth 13:17:11 Quartus: If Dell sent you a warranty replacement with a note that you had to return the original or pay for it, and then a few days later they sent you an invoice for the part you didn't return, would you trust a rep who said that you didn't have to pay for it? 13:17:17 JasonWoof, hey, cool. 13:17:43 ttuttle, I would, but I'd make a note of it in my journal regardless, along with his name. 13:18:04 zpg: http://www.colorforth.com/chars.html if you really care 13:18:07 Quartus: /me already mailed the check ;-) 13:18:16 Quartus: It's only $11.50. 13:18:29 that's like ten trillion of those little web-site question-asking dealies, man! 13:18:43 tathi: thanks. 13:19:35 so the huffman is kind of the typical 'etaoin shrdlu', if you kind of squint, followed by a dump of all the other characters in the longer sequences. 13:19:45 colorforth does too have ! and it does have a ascii translator block. 13:19:59 ah yes, there's the ! 13:20:21 Raystm2! 13:20:53 Raystm2, we're on about colorforth because Drake decided to go at my ankles like a pitbull when I called him out on posting incomplete cf code to c.l.f. 13:21:04 bashing on everything which isn't ANS, that's not gentlemans like. 13:21:12 People came from all around to watch the car-crash. 13:21:29 and c.l.f. were on about colorforth because of gavino :) 13:21:33 virl: that wasn't the issue. read the thread. 13:21:50 oh yes, that's true. an amusing origin for 60+ posts. 13:21:52 I'd call out Elizabeth Rather if she posted incorrect code. It has nothing to do with the dialect. 13:22:07 Quartus: met her? 13:22:15 just catching up here. 13:22:18 I haven't met her in person. 13:22:29 I was suprised as well that John posted incomplete code. 13:22:48 I've been sending him e-mail about it over the last two days. 13:22:50 He's keeping on with it; even his last blog in which he amends the situation leaves out definitions. 13:23:02 Yes, thanks for the link. 13:23:04 He circled around and went for a personal attack on me. 13:24:03 As near as I can tell, it takes 7 or 8 lines to make a reasonable, readable 'Hello World' app in colorForth, albeit restricted to the 48-character set and with the limitation of only one space between words. 13:24:04 Quartus: /me notices that someone special hasn't been here in a while. 13:24:08 And that's fine. 13:24:10 I've not read much of the 70 posts in c.l.f. but I intend to, and I intend to make sure that Your point of view, of being carefull with newbies, of not overstating the cf cababilities is maintained. 13:24:18 ttuttle, which special-needs person are you referring to? 13:24:33 Quartus: PoppaVic ;-) 13:24:45 ttuttle, yes, that was a deliberate act. 13:24:51 Quartus: ;-) 13:24:56 * tathi was wondering about that... 13:25:11 So 7 or 8 lines, and you're good to go. The 2-line version, only Ray has ever met and exceeded. :) 13:25:32 --- join: jackokring (n=jackokri@static-195-248-105-144.adsl.hotchilli.net) joined #forth 13:26:17 With out really tryin it I can think of a way to get more spaces between words, and I can also see a way to convert to ascii on the fly as a message is transfered to the send buffer. 13:26:18 quite nice here without PoppaVic 13:26:36 I could say a few things about needing 8 lines for 'Hello World', but that's neither here nor there. I called him out because he posted a two-line version that just don't work. 13:26:57 Yes, that was a group decision. People were being driven out. 13:27:03 Yes, that's absolutely right, I saw that immediately and was concerned. 13:27:52 what was a group decision? did you banned PoppaVic? 13:27:55 Yes. 13:27:57 It's a tad unfortunate but colorforth tends to bring out the psychotic side of us forth programmers, me included. ;) 13:28:14 Raystm2, I mentioned your one-liner, and then had to defend your programming skills. He's a little defensive about his colorForth. 13:28:37 I still can't wait to read all of your retorts. 13:28:51 * Raystm2 home from work with dental problems. 13:29:05 Raystm2 must be the only colorforth programmer who doesn't have a psycotic hatred of ans 13:29:06 great medications, /me is feeling no pain. 13:29:07 Sorry to hear, Raystm2. 13:30:14 Ty, I slept in till way past medication time. I'm feeling nothing so not so bad. 13:30:39 No calls from work so I assume they are afraid to tell me what's going on. :) 13:30:58 heh 13:31:22 * Raystm2 gets into the posts. 13:32:37 werty! werty is here in the convo! my first werty! is it the meds, i might cry. 13:33:45 heh 13:34:23 your first werty? 13:34:30 he has never before read a werty. 13:34:38 Only the werty-excerpts we provide. 13:34:48 oh.. 13:34:50 Now he too will have to THINK!!! 13:35:30 When werty says You are all FOOLS !!! Ray will be included in that group. 13:35:42 --- quit: timlarson_ ("Leaving") 13:35:43 public houses beckon. cheers for now guys. 13:35:46 ciao 13:35:51 zpg: bye 13:36:00 night 13:36:01 --- quit: zpg ("ERC Version 5.1.3 (IRC client for Emacs)") 13:36:02 Quartus: /me is bothering a supervisor now. 13:36:11 Fun. 13:36:16 Quartus: Yeah. 13:36:20 aren't you indirectly a fool when you think that he is funny? 13:36:31 Quartus: It'll be sad when I'm grown up and won't have the time to waste doing things like this. 13:36:38 Well, I think it's been clearly established that we are a FOOLS !!! 13:36:52 ttuttle, some people keep at it. And there's often a renaissance after retirement. 13:36:56 Quartus: ;-) 13:37:25 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 13:39:47 Quartus: It turns out they have an unwritten policy that, for replacement parts under $25, they don't chase you for it. 13:39:54 Quartus: But they send the invoices anyway. 13:40:09 FOOLS !!! oh, wait. 13:40:09 Quartus: And apparently the replacement for my $160 battery is only worth $10.95. 13:40:26 does that involve return the old battery? 13:40:35 Quartus: No. They don't make you return it *or* pay for it. 13:40:41 Quartus: I guess it's just too much effort. 13:40:51 well, makes sense. After all it was flawed. Sounds like they're charging for shipping & handling. 13:41:09 * ttuttle wants to put a brick in the return envelope and mail it, just to waste their return label :-) 13:41:35 I don't know, you're not being put to much difficulty in the grand scheme of things. 13:41:47 Quartus: No, I'm not. 13:41:54 Quartus: But they shouldn't mail nonpayable invoices. It's confusing. 13:42:03 It's not like anyone who determines policy will ever see the brick. Some poor bugger will have to open it and throw it away, is all. 13:42:12 how do you get the name of the last defined word in gforth? 13:42:17 Quartus: That's true. 13:43:15 Quartus: /me is getting a $11.50 credit now. 13:43:40 Quartus: I bought one computer, and there are half a dozen orders on the account just from it. 13:44:05 I told you to invest in plastics. 13:44:12 Quartus: lol 13:44:16 Quartus: Plastics and shipping companies. 13:45:00 virl, lastcfa @ >name name>string type 13:45:40 an ugly piece of code 13:46:15 Here : lastname lastcfa @ >name name>string ; 13:46:30 And you're welcome, by the way, really, anytime. 13:47:34 Quartus: lol 13:47:47 hehe 13:47:49 Here's a free bonus, since you were so gracious -- the retroforth version: last @ :name unpack type 13:48:18 I know the retroforth version, that's why I said it's ugly. 13:48:24 : lastname latest name>string ; 13:48:26 might also work 13:48:41 Yes, in fact it does. 13:48:47 So who's your daddy? 13:50:01 Quartus: man, you're belligerent today 13:50:05 just picking fights with everybody :P 13:50:13 Oh yeah? Come here and say that. :) 13:51:04 Kinda get tired of the virl-go-round. Ask a question about Gforth or Standard Forth, and no matter what the answer, say it's ugly or stupid. 13:51:26 Quartus: lol 13:51:28 Notice after your prettier version, no response. 13:51:45 ditto after my breakdown of the fflib stuff earlier 13:52:04 Wouldn't want him to waste any time on courtesy or intelligent discourse! 13:54:21 My mistake. I figured, yet again, that he actually wanted the answer, and went nooding around to find it. 13:55:06 --- quit: JasonWoof ("switching to desktop") 13:55:55 what should that mean? 13:56:22 It's in simple English. Re-read it. 13:57:55 I red it four times and it doesn't make any sense. what do you mean with nooding around? that I did nothing or what the fuck? 13:58:15 Screw it. Virl, you're a troll. I'm going to go shout at a wall for a bit. 13:59:04 --- join: JasonWoof (n=jason@c-71-192-26-248.hsd1.ma.comcast.net) joined #forth 13:59:04 --- mode: ChanServ set +o JasonWoof 14:00:39 I'm not a troll. 14:06:00 --- part: ttuttle left #forth 14:11:54 in factor, the name of the last defined word as a string: word word-name print 14:12:01 or just the last ldefined word itself: word 14:12:13 pacman 14:23:35 word word-name print resembles latest name>string type 14:26:02 pacman ? where? 14:26:10 that would be the second game I would implement. 14:26:18 quartus wrote a pacman in forth 14:26:29 graphical or char baed? 14:26:32 mine would be char based. 14:26:38 3d. 14:26:42 yes, I shared the source on the channel. It's completely portable and just like the real thing. Here it is: pacman 14:26:52 the details will be filled in a future weblog entry 14:27:05 I don't like pac world (3d pacman) 14:27:08 well, sure, there are a few implementation details, but you're just nit-picking. 14:27:24 although I like jr pacman ... a opposed to pacman jr 14:27:29 * absentia nods. 14:27:32 specs, ya know. 14:27:41 I'm afraid of your all-encompassing pac-man knowledge. 14:27:44 if "pacman" isn't sufficient -- you must suck as a coder, eh? 14:27:50 * Raystm2 wrote pacman in python, along with asteriods and of course chess. 14:28:03 well, it's an extensible language, absentia! Of course I shouldn't have to spell it all out. 14:28:12 Quartus: does your pacman use dangerous techniques? 14:28:14 hmmm. I can't get to my home machine offhand... haven't needed to for a while. but one of the things I have done all m life is game design. 14:28:23 slava, only in the ghostie code. 14:28:39 I scanned, along with the kbyter, my second pacman implementation. my first was based on the kbyter knowledge 3 years earlier... 14:31:24 got a sec for a probablysilly/baseic question that's forth/assembly-ish ? 14:31:31 maybe 14:31:36 heheh. 14:31:53 Type fast. 14:32:57 yikes men, I'm concerned for this werty. 14:33:06 werty is clearly on the wrong medications. 14:33:19 I can see how with an OS, you can make calls to routines via assembly and/or forth,etc...for things like reading a keypress... reading a file -- displaying a character to a display screen, etc... but if you boot low level -- say forth or a some magic assembler (that had some of this magically already operating) -- how do yo udo such things with bare bones hardware? 14:33:28 He doesn't live near me does he? I mean, you don't get any on ya, do ya? 14:33:40 is it the type of thing where you have to have a device driver loaded -- or write your own? 14:33:52 absentia, you talk to the hardware directly, or interface with ROM-based routines to so do. 14:34:07 quar: no hurry -- wife is going to miami tonight -- I get all night to code -- as long as the kid is asleep 14:34:11 Raystm2, I think he's in Thailand. 14:34:22 oh thank goodness for that. 14:34:37 rom based... such as that come with the hardware itself? so, if the hardware isn't documented, you're sol. is this different from a bios? 14:34:42 werty is omnipresent 14:34:52 No different from a ROM-based bios, in principle. 14:35:00 ok. 14:35:04 hehe 14:35:18 But failing the presence of any on-board routines, you're left with talking to the hardware yourself. 14:36:04 last time I did assembly was 65c02 on atari -- I tended to load basic strings with short routines -- mostly for horizontal blanks and vertical blanks... timing was critical... but what annoyed me for larger programs was that the code didn't seem to be relocateable, so I constantly had to renumber jmps with absolute values. 14:36:05 absentia: native forths ( forths that boot up as there own operating systems) have to provide thier own drivers to hardware. 14:36:34 You could do position-independent code on a 6502. 14:36:46 cool. 14:36:48 Not as trivially as on some processors. 14:37:18 Sounds like you were working with a brain-dead assembler, which was the norm back in those days. 14:37:47 ray: yes, that is my point. so, I remember on the atari, calling rom routines (or more likely, just accessing a memory location) ... to get say.. a keypress.... but for the display, you had to set up display lists for the chip (antic -- gtia?) ... so, when a floppy was attached [this was pre hard drive days] -- you had to load a driver. it's amazing it worked. 14:38:31 neat. 14:38:36 Generally if you're talking about a non-hosted Forth, you're not dealing with a lot of peripherals. Think toaster. 14:38:41 yes, I know you could do relative jumps, but I think you wre limited to 1 byte... so you could only go forward 128 or backward 128 ... some routines were larger, so you'd get anchored to a location. of course, an assembler would renumber these for you -- but I did it all manually :-< 14:38:54 right 14:39:41 I like forth for low level, but I'm wondering why not just go lower -- straight to the asm. i've mostly skipped x86 asm because I ... interestingly enough, went straight from atari to sparc... and had sparcs up until last year. 14:39:47 Taking colorForth as an example of a non-hosted Forth, it interfaces with specific video hardware, and talks to the keyboard device -- but of course PC keyboards have their own processor. So it's only semi-direct interfacing in that regard. 14:39:47 I also skipped sparc assembly. 14:40:14 Forth is not a low-level language. 14:40:16 right, but colorforth looks like assembly (to me) ... just with different tokens. 14:41:24 colorForth is not assembly. It's a minimalist Forth-like syste 14:41:26 m. 14:41:48 well, with the interpreter, you have one layer of separation -- I'm wondering if it's worth it to go below that layer. people write c for a reason, and although I've seen people inline asm in C, it doesn't seem that common -- which means that there much be a reason why people are preferring C over asm -- which to me, seems to be that you learn the 1 lang, c, and don't have to learn all the asms for each (new) chip that comes along... and let who 14:42:04 ever wants the chip to succeed deal with writing the first sufficient libs to bootstrap a c compiler. 14:42:10 The same is true of Forth. 14:42:16 ya 14:42:27 but forth seems to get there quickly. 14:42:32 I'm not sure what you mean. 14:42:49 Do you mean it's simpler to implement Forth than C? Yes. 14:42:57 yes 14:43:11 That doesn't speak to its 'level' as a language, however. 14:44:31 I'm wondering why someone hasn't come up with something that is like forth, but is really just drop-in-place assembly? in reading about the assembly, you push your params onthe stack, then call a routine, then pop your params off the stack, process, set returns in registers, and then ret (which pops ret off the stack). seems very close to forth. 14:44:55 I'm probably a heretic for saying it, but to me, forth seems very low level.... (to me) 14:45:17 You'd have to explain what you mean by 'low level'. 14:45:20 I like this... but it also means that you are tied to either available libs or are required to build them. 14:45:24 asm = low level 14:45:45 A decent macro-assembler shares some features with Forth, but is bound to a specific chip. 14:46:08 right 14:46:19 because that has been abstracted away for you... with forth. 14:46:31 forth is lower level than, say, common lisp or java. 14:47:00 Assembler is also, traditionally, not interactive, not reflective, provides limited features for abstract data types, and you are reliant on external facilities for I/O or other interfacing. 14:47:07 Forth is a language with thousand faces, as it's said in thinking forth, that it's uses ranges from lowlevel to highlevel. 14:48:09 ya 14:48:11 We find many high friends in low places, and many low friends in high places. :) 14:48:20 high level languages did not really exist when thinking forth was written 14:48:21 this isn't a crack aginst forth... I like forth for what it gives. 14:48:32 but I'd like to jettison the interpreter 14:48:33 I'm sure Forth, CL or Java can be used to flip the keyboard status lights on or off. Any of the three can also be used to write a chess program, solve equations, or analyze word frequency in Shakespeare. 14:49:23 absentia, you don't know Forth. You haven't learned any, and you haven't used it. So you know not of what you speak. 14:49:45 You need to actually understand a thing before you start chucking bits of it in the dustbin. 14:49:47 absentia: what are your goals? 14:50:03 I did that with a shell script on the sun3s 14:50:16 and somebody also has implemented regex, which is said to be faster than the perl regex. 14:50:30 I am interested in writing an AI. I have the general model, but now I'm wondering which language to learn to do it in. 14:50:46 Forth's interactivity is a considerable strength. 14:50:54 basically, I just need to be able to do non-blocking reads on input streams. I'd like to do "sockets" as the primary I/O interface. 14:51:07 so, I need to find boot forth and add tcpip + sockets... 14:51:09 should it have a GC? 14:51:13 no 14:51:34 that's my concern with lisp vs C++ .. lisp has gc. 14:51:51 absentia: this is typical of a programmers progression thru forth. The idea of forth is so very compelling, why with it's simple symbol substitutions for descriptions of problem domains, and the tools it includes thru many years of successful usage, a new person will try to re-invent every last bit of forth untill that person finds that most has already been done. 14:52:34 The compromises have been bashed about for many years and forth is mature as is. 14:52:38 I am not interested in re-implementing forth... or scheme or lisp or c/c++ 14:52:52 Raystm2, new Drake. He's really not the one to be carrying the cf flag. 14:54:10 Raystm2, did you look at those links I sent you yesterday re herbs and dental health? 14:54:37 --- quit: jackokring (Read error: 110 (Connection timed out)) 14:55:00 I pulled them up but didn't read them. Sorry Quartus, I have intentions of doing so. :) 14:55:04 so, anyway, if I learn C and the c calls... for linux, etc.. and compile against them, they rely on the linux kernel being present, etc. forth seems tonot require that, as some of the booting ones seemto have enough to get the interpreter going -- but then I'm sol for tcpip/sockets, gui libs, etc. 14:55:19 absentia, I recommend you try to use the tool before deciding it needs to be re-shaped before you start. If there's an edge of it you don't need, don't use that edge. 14:56:08 absentia, what does that mean? So your goal is to write an AI that doesn't depend on an underlying OS in any way? 14:56:28 well, replace ai w/ application... but, ya. 14:56:31 why? 14:57:09 pure 14:57:12 purity 14:57:17 I've successfully created an AI in hardware. Fully functioning, he's 17 and I think at his girlfriends house. :) 14:57:21 Well, congratulations; you've found a new barrier to ever getting started. 14:57:32 mine is 3 months old... tomorrow. 14:57:38 I got a lot of help from his mother. 14:57:50 congrats! absentia :) 14:57:59 boy or girl? 14:58:09 q: not really.... the choice is asm + tied to a chip/arch, lisp or forth... so far. 14:58:12 boy 14:58:36 Write your app. Once you have it working, you can decide where you want to port it, and if you're sufficiently masochistic as to want it to run GUI and with tcp/ip, yet don't want to use well-tested, working implementations, you can start writing those for your target hardware too. 14:58:48 http://www.spy.org/daniel/first_headshot.jpg 14:59:18 that is one of the paths I have considered. 14:59:43 People, when they are just booting up, facinate me no end. 14:59:52 * Raystm2 likes babies. 15:00:07 well, that's more bootstrapping, no? 15:00:14 lots of hair :) 15:00:33 Picking an arbitrary and difficult target for your app before ever beginning work is just a way of procrastinating so that you don't need to start. You can claim the perfect tool doesn't exist. 15:00:43 looks like he's getting his meals and is content as can be. :) he's great! :) 15:01:01 * absentia has rebooted a few times... and knows the path of a type of crash, as well as the *slow* bootup -- like "ah shit, my eyes are working, I can see, but I can't talk... or hear... hard to think think think think think think" ... etc. also intereting from an AI point of view. 15:01:15 q: not part of my goal. 15:01:24 Then get to work. 15:01:36 its hard to take people seriously when they talk about "AI". 15:01:46 Even harder when they only talk about it. 15:01:48 especially if they dismiss operating systems, GC, etc. 15:01:59 that was a while back. he was born 9lb 9oz, 20" ... is now 3 monhts, ... was 14lbs last month. he just started to really babble.. two or three days ago -- now he babbles almost non-stop for huors. 15:02:15 slave: I know, I am almost sorry I mentioned it. 15:02:24 of course, you will see AI and forth mentioned together a lot. 15:02:40 no, you won't. 15:02:42 I haven't. 15:02:43 maybe on #tunes. 15:03:26 look, each goal/app has different reqs. I'm not interesting in making a babble bot for irc, an expert system, a search engine. I have very specific goals, with fairly simple requirements. I'm just looking before leaping. 15:03:37 Write the app. 15:03:40 Do it. 15:03:41 Go on. 15:03:44 heheh 15:03:47 now you're taunting me. 15:03:54 I've only ever seen that weirdo's mindForth, with respect to ai, and I believe he's done that in many languages and is consistantly on the virge of getting it to work. 15:03:58 Christ on a whole-wheat cracker. No, I'm not taunting you. I'm PUSHING. 15:04:17 chrispy christ! 15:04:18 :-> 15:04:19 Raystm2, that whacko is on a verge, but it isn't of getting it to work. 15:04:37 ok, gonna go home in 2... back in 15. maybe I'll start the kbyter forth tonight. place yer bets! 15:04:45 and there's the wife calling now 15:05:11 :) 15:06:01 she's gonna feed the baby now.. which means he could be asleep within 90 minutes... rest of the night is forth. 15:06:28 brb 15:26:58 wants absentia doing a strong AI system? 15:27:19 without GC, even 15:27:51 without even a programming language 15:28:03 or an OS 15:28:20 True purity would dictate doing it without a computer; even purer, not doing it at all. 15:28:29 Which is where he's headed. 15:28:40 we're some mean... 15:28:41 well, an for an AI a GC would be my choice 15:29:01 slava, he's been here for weeks threatening to actually start a Forth session. 15:29:47 but I can understand his view, or I think I could. 15:30:00 The view in which you never actually write any code? 15:31:15 I write code, but not in Forth, because it's not the envireonment to write code which I would like to be. 15:32:07 You're in #xell (by yourself), #retro, and #forth. Always. What language is it you prefer? 15:32:46 not prefer, what I use most of the time is C/C++. 15:35:11 I like C and forth the same way, but C is easier to use. 15:35:27 for what? 15:37:16 graphics, sound, unix system exploration, quick and dirty, etc. pick one. 15:38:58 re 15:39:34 Hello. 15:39:45 and with C using libs works without problems and doesn't needs extra libraries like ffcall. 15:39:58 lol 15:40:28 gforth+ffcall is still FAR smaller and faster to install than gcc :) 15:40:58 gcc uses a raft of tools to actually link to libraries. 15:41:12 though obviously it's a bit more work to use since you can't use straight C header files. 15:41:48 Cool Neal, you used the four Yorkshiremen Quote in a post. :) I love that sketch. 15:42:01 I have never had the large-scale need, but certainly C header files could be parsed and turned into Forth readily enough. 15:42:06 Raystm2, got it from you :) 15:46:58 and in forth I wrote a game and bindings to X, both retroforth, which seems to be the only useable forth for me. 15:47:05 absentia :) Nan doting on baby pic, "CUTE!" :) 15:48:01 virl: what kind of game? have source to that which I can see? 15:49:22 ya? 15:49:32 wanna see his first haloween? let me dig. 15:49:51 it's a simple clone of the game ambassador of pain, not perfect and has an annoying bug which I haven't fixed yet: http://www.retroforth.org/contrib/ 15:50:47 hm.. gonna have to go read that about forth + x.. when the baby lets me 15:50:49 he's crying now 15:51:22 virl: oh, not a game in X then. 15:52:34 yes, not in X. but I could when I would extend the xbindings I wrote for retro. 15:52:40 factor has an xlib binding 15:52:43 almost complete 15:52:51 pacman! 15:53:05 but raw xlib is crap 15:53:15 pacman! 15:53:25 :-< 15:53:30 its ok if you use something else to render graphics, such as cairo or opengl 15:55:22 pacman is the ai model and it will make blacks and womans un necessary and convert rest to luddites... 15:56:05 THINK!!! 15:56:13 http://www.spy.org/daniel/!_ALLNAILS_!.html 15:56:34 ok, gotta go.. he's being cranky. 15:56:47 hahaha 15:57:05 wife left for work, i'll have to leave this up for her to see when she gets home. 16:01:02 way to steal my thunder slava 16:01:04 :) 16:01:44 ok, one more pic.. missed one. 16:01:49 he's always doing gang signs. 16:03:02 the picture of him wrapped up (the second one int he allnails) .. was the day he was born. 16:57:15 --- quit: JasonWoof ("switching to desktop") 16:59:48 Good looking kid. :) 17:00:13 Quartus: got my back bro, thanks. :) 17:00:21 heh 17:00:56 I stand by the fact the my solution is more colorforthy because it's edit time and not compile or run time. 17:01:41 save for for loop so I lie it's compile time but I could have emited each character individually to exercise the point. 17:01:55 I'm sure Drake would find reason to disagree no matter what. 17:02:47 His point is that he doesn't know that I've got most of the icons numbers memorized, much like a forther knows the blocks of his disk. 17:03:03 wait that's not his _point_ doh!~ 17:03:11 did I mix thoughts there? 17:03:15 No worse than he has. 17:04:07 AND i got a bucket of chicken, which somehow seems more important just now... :) 17:04:30 Bawk. 17:05:00 hahahaha lol 17:05:28 buck-buck-buck Bawk-et of chicken. 17:07:49 --- join: JasonWoof (n=jason@c-71-192-26-248.hsd1.ma.comcast.net) joined #forth 17:07:49 --- mode: ChanServ set +o JasonWoof 17:07:55 "Take two Bon-bons and call me in the morning" seems to have worked to keep my blood sugar in a decent range. I love modern chocolate medicine. 17:08:02 Sweet. :) 17:14:23 Drake would now have it that AND is an 'arithmetic operator'. 17:14:57 It is my opinion that an operator is arithmetic if it interprets its arguments numerically and performs an operation on them. 17:15:07 And that bitwise operations are not arithmetic. 17:15:33 (With perhaps the exception of arithmetic shift, which retains sign and is thus labelled.) 17:48:15 --- quit: Al2O3 ("Leaving") 17:52:10 Personally I wouldn't have thought it mattered that much and I would have used what ever worked with out knowing there was a problem with the method. 17:53:04 Drake is just bent out of shape that I called him on his colorForth code, so he's hell bent to find fault with something of mine. 18:08:36 ya. 18:17:20 --- quit: tathi ("leaving") 18:19:14 --- quit: JasonWoof ("oops, put my kernel in the wrong place. rebooting to actually use it") 18:23:10 --- join: JasonWoof (n=jason@c-71-192-26-248.hsd1.ma.comcast.net) joined #forth 18:23:10 --- mode: ChanServ set +o JasonWoof 18:37:37 --- quit: Shine (Nick collision from services.) 18:37:42 --- join: Shine_ (n=Frank_Bu@xdsl-81-173-233-213.netcologne.de) joined #forth 18:37:58 --- nick: Shine_ -> Shine 18:38:11 --- join: I440r (n=foo@ip70-162-111-107.ph.ph.cox.net) joined #forth 19:54:06 Ray, what happens when you have a huffman-encoded name conflict in cf? 19:58:00 yeah! the kid's asleep 19:58:15 * absentia attempts to eat dinner. 20:01:45 who is MI5? 20:02:13 MI5 is the UK Security Service. 20:05:37 I know that 20:05:45 ... 20:05:49 * absentia is spy.org -- one of my hostname is mi5.spy.org 20:05:54 I thought it was someone posting to clf 20:06:00 I see your post on the huffman encoding. 20:06:16 I don't see the advantage of that as a hash. 20:07:12 The way colorForth uses it is in a dictionary, so the search is one 32-bit comparison per word. The conflicts may be rare in practice, but they'd be a bear to find when they happened. 20:07:28 yup 20:07:37 you said that it truncated at 28bits... 20:07:50 2^28 = quite large dictionary. 20:08:11 The array is a sequential list, doesn't have all possible words in it. 20:09:26 not that it's any of my business -- but I'd say that's more of the issue.. the list structure. 20:09:41 I see that forth also matches last defs first. 20:09:47 so I can see why a list. 20:09:48 The dictionary is searched last-to-first, sequentially. 20:09:53 yup 20:10:02 In more typical Forths, a hashtable is used for optimization. 20:10:21 Names are stored in full, with at least a 31-character max. length. 20:10:31 atari basic was interpreted... one of the ways to speede up your programs -- quite noticably.. was to put often called loops toward the start of the program. 20:10:37 silly... but it really did work. 20:10:52 those little basics were pretty bad. 20:13:02 looking at the language shootout 20:13:11 Chuck promoted, in the early days, a length+3 storage format -- length of the word + the first three characters. That was also prone to conflicts. It reduced storage requirements, though. 20:13:22 freebasic is insanely fast in the comparisons.. then I looked at the sample code -- it freakin' looks like C .. no wonder. 20:13:47 what do you mean length + 3 ? 20:14:06 I mean one byte with the length of the word, the next three bytes being the first three characters of the name. 20:14:21 So WORDS would be stored in the dictionary as 4,W,O,R 20:14:30 oops 20:14:32 5,W,O,R 20:14:34 :) 20:15:29 So you could go zooming backward through the dictionary matching first on length, then on the first character, etc. If the processor had a two-byte or 4-byte comparison operation, you could take direct advantage of that. 20:16:26 right -- strings are length+ascii 20:16:27 nowI get it. 20:16:34 "pascal" strings. 20:16:48 Right, but not stored in their entirety. Just the first three chars. 20:17:21 What you lost in potential conflicts you presumably gained in storage space, with a speedup on name-matching. 20:17:25 right -- I mean normal strings. 20:17:50 Far better, if you have a couple of K to spare, is a hashtable. 20:18:17 yup 20:19:36 At any rate Standard Forth does not permit the length+3 storage method. The most recent use of a name has to be findable. 20:19:55 ok 20:20:02 HATS and HATE can't be mutually unfindable. 20:39:34 Not that I hate hats. :) 20:39:44 pok 20:40:09 At most it's a strong dislike, and then only for certain kinds of hat. 20:40:10 :) 20:40:23 I don't like hats 20:42:31 Then you can rest assured you can express HATE for HATS in any Standard Forth. :) 20:42:32 are you busy? 20:42:45 Often. You? 20:42:50 now 20:42:59 I have a little time. What's up? 20:43:41 Heh. A CSI episode is on, they're talking to a guy named Charles Moore. 20:44:34 my wife use to be in a lot of those shows 20:44:41 but not since we moved from nyc 20:45:02 Interesting. 20:45:04 just interested in learning more about keeping code in the cache for a cpu. 20:45:32 That's CPU-specific, generally runs along the lines of keeping the relevant code small and self-contained. 20:45:33 do you have any experience with that? 20:45:38 ya 20:46:01 just wondering how much something like windows or linux hampers that 20:46:40 I'll do some googling in a few. 20:47:27 I don't know about the very newest multi-core CPUs, but I would suppose preemptive multitasking causes cachc flushing. It's a speed-only optimization, so you might be better served by buying a faster CPU. 20:48:04 I ran into the name conflict while porting JasonWoof's binary adder to ChuckBot. 20:48:16 Does it tell you, or just silently do weird things? 20:49:50 you have to be sure that the difference between words is in the first packed portion of the word otherwise find will only find the first occurance and the effect is indeterminate. Not safe. 20:50:01 As I thought. 20:50:25 Much like the old length+3. 20:50:25 q: hmm. that doesn't seem to make much sense. 20:50:33 What doesn't? 20:50:52 pre-emptive causing cache flushing, etc. 20:50:57 Now tho there is a FIND feature that should help both diagnose that problem but first a programmer should prob'ly see if such a word exists anywhere in the system before choosing a name. 20:51:10 sorry... wife called.. just got back. 20:51:39 anyway, I'll google it later... see if there is any info. 20:51:40 absentia, it may not be complete cache invalidation at each task switch, but the cache isn't part of the state retained on a task switch (I can't imagine how it could be, unless it's SMP and there's a separate cache for each). 20:51:55 --- part: mbishop left #forth 20:52:15 well, don't xeons have like 2MB cache? 20:52:18 Raystm2, awkward. Fox replied and said a future revision will no longer truncate names; I take that to mean they'll go to more than one cell. I'm a bit lost as to how that will retain the speed/space advantages of the current scheme. I asked. 20:52:28 seems silly to flush that at each task switch. 20:52:43 code will not break, by the way. code using a name previous to its own definition will use the older definition. code after a rename will use the rename. 20:52:49 absentia, yes, as I say, it may not be complete cache invalidation. 20:53:12 Raystm2, I get that, but subsequent references to the collided name will give the new word, not the old, right? 20:53:24 but any previous code that's modified and then reloaded may have a problem finding it's words. 20:53:29 Right. 20:53:36 ya. 20:54:01 As in a length+3 system with woof and wood. : woof ." woof" ; : wood ." wood" ; woof -> wood 20:54:04 Best to be single direction minded when it comes to rebooting the dictionary or restarting applications. 20:58:02 ayrnieu, this is only a Pentium 5 of some ilk, but it has 46 named processes and I'm not sure how many unnamed, averaging 8 megs each (code + data). I could imagine that parts of even a 2MB cache would fluctuate under a similar or greater load. 20:58:09 oops. absentia, I mean. 20:59:58 right 21:01:20 But that would vary by CPU and configuration. "Premature optimization is the root of all evil", as Hoare said. Write the app first, optimize only as required. 21:02:52 I does depend on the CPU. x86 CPUs with phyically tagged caches don't require a cache flush on context switch, where as ARM CPUs (up to v9, at least) mostly do require the cache flush. 21:03:41 And cache invalidation is probably LRU or something akin to it. 21:04:04 Speaking generally. 21:04:22 The ARM cores tag the cache with virtual addresses, so processes with overlapping virtual addresses require flushing. 21:04:39 ah 21:05:14 absentia, I have a feeling when I quote Hoare, and such, it goes completely past you. :) 21:06:04 Quartus: by "cache invalidation" do you mean TLB replacement strategy, or something else? 21:06:34 TreyB, answering a non-specific question about cache invalidation, I mean anything that causes part of the cache to become not part of the cache anymore. 21:07:57 q: I thought it was kernigan (sp?0 that said that. 21:08:08 absentia, no. Hoare. Knuth popularized it. 21:08:14 Raystm2, do you remember what words conflicted? 21:08:25 anyway, I think you're trying to argue points with me -- but I'm only trying to pick up pieces of info here and there, to find out what's important and what's not. 21:08:29 I have Hoare's original essay. 21:08:44 I've done my share of coding boring apps in borings ways on boring systems in boring languages. 21:08:51 absentia, I'm not trying to argue with you, just trying to get you to write the app, rather than worry about end-game optimization strategies first. 21:09:01 I don't need or want the standard old fashioned way of the same as everything else. 21:09:27 I'm not trying to re-invent the wheel -- I'm just trying to do something that is not trivial and boring -- as most coding has become for me. 21:09:35 Forth is likely substantially different from anything you did in college. You should learn it. 21:10:12 it's not end-game optimizations.... it's trying to think about different thigns at once. 21:10:36 If it's thinking about optimizations first, wisdom says you're holding the wrong end of the stick. 21:12:42 so, you have bubble sort.... why think about any other way of sorting. 21:12:50 insertion sort? heap sort? quick sort? 21:13:13 if you ask a room of 20 4th graders how to sort items -- you'll probably get at least 1 of the "optimized" sorts. 21:13:51 Choosing an appropriate algorithm is an optimization, yes, both in terms of memory and speed. Choosing an appropriate algorithm is one of the earlier optimizations, but it also need not be done first. 21:14:47 perhaps, ifyou know about your data -- are you receiving it as a stream? is it going to come in all at once? is it already sorted? all these make differences in how you think about an algorithm. 21:15:52 Yes, in the design phase. Worrying about CPU caches -- not so much. 21:16:44 wel,l my question is -- really, if you boot up a forth -- and there is no real os -- or the os that is what you just booted is like 64K or whatver.. and the chip has 2MB cache -- does this mean that the code stays resident in the cache all the time, etc. 21:16:50 seems like a simple question. 21:17:08 That's going to depend on the CPU and the Forth. 21:17:41 lots of people don't know answers to things -- and instead of answering the question (perhaps by stating that they do not know the answer) -- they try to talk people out of wanting to know the answer -- or to ask another question. 21:18:11 In this case the answer is 'it depends'. And I'm trying to talk you out of premature optimization in general, not trying to evade the question. 21:18:22 it's like asking people why you can't send mail to a host by CNAME ... 99.9% of the peopleout there will say you can't do it -- but like 99.9% of them can't tell you why. 21:18:56 they'll insist up and down... harumph and all kinds of stuff, but they fact is -- they don't know and won't just say that they don't know. to me, it's like a religion. I don't like religions. 21:19:21 I am not looking at this as optimization. 21:19:36 Caching is nothing but a speed optimization. 21:20:33 hey -- here's a question for you -- don't try to over analyze it -- you'll probably hurt your brain. 21:20:48 how do computers "store" (ie: record, hold in memory) .. values? 21:21:01 Whoops! I already overanalyzed it. 21:21:02 not the makeup of the chip -- but how are values represented... 21:21:18 quick -- what's your answer? 21:21:55 ... 21:21:58 --- quit: Shine ("Chatzilla 0.9.77 [Firefox 2.0.0.1/2006120418]") 21:22:14 ... 21:22:29 ? 21:23:08 no use, pal. Hurt my brain. Out of commission for tonight. 21:23:30 "binary" 21:23:37 bits... little ons and offs. 21:23:55 anyway, I had an engineer prof at a ajor university.. teaching me about cmoputers (well, the rest of the class too) 21:24:05 who insisted that computers stored information in *HEX* 21:24:08 he was dead serious. 21:24:25 his proof? just run the disassembler and look at the values! they're in hex. 21:24:57 no amount of logic or anything would convince him that computers did not, in fact, store things internally... as hex. 21:25:05 If you're talking about a computer with a word size in multiples of 4 bits, he's as right as people who say it's octal or binary. 21:25:17 not really 21:25:27 Really. 21:25:30 hex is a display representation of the valu 21:25:38 So is binary. 21:25:38 so it octal.... 21:25:51 in a sense, so is the binary -- but it's a 1 to 1 with the physical. 21:26:45 Base 4 us 1:1 for every group of 2 bits. Octal is 1:1 for every group of 3 bits. Hex is 1:1 for every group of 4 bits. 21:27:00 argh. 21:27:05 you just want to argue. 21:27:12 is there more than 1 thing in the world? 21:27:16 am I speaking spanish here? 21:27:28 what the F are these in forth? 21:28:03 His error is not in claiming it's hex, but in claiming it's the only valid representation -- same error you're making with binary. 21:28:21 . d. hmm. can't find'm.. the words for byte, 16bit, 32bit 21:28:35 if everything is the f'n same, why are there different words? it's because the things are not the same. 21:28:57 he said that memory is STORED IN HEX 21:28:59 it's base 16 21:29:02 I said it's base 2 21:29:22 he said no, it's base 16... each single spot in memory has 16 values (of electricty? who knows) 21:29:35 you're converting a base 2 into base2, oct or hex 21:29:40 he was saying that it was hex. 21:29:41 bas 16 21:29:49 in the physical machine. 21:30:59 If your smallest interface to memory is a byte, then it's valid to say it's stored in base-256. How the memory chip goes about storing each byte is moot, as it's the machine's interface to the memory that determines the available abstraction for the programmer. 21:31:30 it's not value-- if the bus is 8 bits. 21:31:38 valid. 21:32:02 ok, let me ask you then... 21:32:20 is the computer that you are on... primarily -- digital or analog? 21:33:21 That depends on what level you examine it on. I suppose it's accurate to say it's primarily digital, from this side of the keyboard. 21:34:33 I remember Abrash's Zen of Assembly Language, a very interesting text. In it he shows how, contrary to intuition, it's not possible to state with complete accuracy how long any given sequence of instructions will take to complete. 21:34:35 ok, in digital -- the bottom-most level of that would seem to be binary ... on ... off ... 21:34:45 Digital does not mandate binary. 21:34:56 why don't we have "trinary" :-) with off/other/on ? 21:35:08 no, doesn't mandate binary. 21:35:29 A trinary computer is certainly possible. 21:35:39 but typically a signal with digital is based on distinct strata of quantification. 21:35:50 right -- but why don't we have them? wouldn't 3 be better than 2? 21:36:05 I fail to see why it would be any better. 21:36:14 ok, well, that is valid. 21:36:28 Perhaps some storage technologies would be better used with additional states. 21:36:53 anyway, it comes down to -- if someone *thought* that it would be better, it would certainly be possible to simulate it using what is there now -- with the binary digital. 21:37:52 And a binary system can be simulated with a system based on any other radix, most efficiently with those that are powers of 2 -- base 4, base 8, base 16, etc. 21:38:52 sure, for something like... a value in a neural net -- you could have the state be more than on or off, it could be .. if based on a byte -- 0 through 255 different states... but that's represented by 8 bits... not a single location with 255 values. if there any real advantage to the single location with 255 values? don't know... maybe. but it can be simulated now -- for developing -- but maybe part of the "better" has to do with the physica 21:39:09 chopped off at 'physica' 21:39:27 a binary system can be simulated with any system that has at least 2 different distinct states. 21:39:34 physical. 21:40:47 I want to get close to the metal because I don't want to make a simulation of a simulation. 21:41:27 If the smallest unit of storage you can access at one time is 8 bits, then you can interpret and represent that in a variety of ways -- as a character in a given symbol set, as a number, signed or unsigned according to one of several methods, in a given base; as a digitization of an analog value that is made available via that memory address; etc. 21:41:28 I've done a *lot* of high level stuff.... to me, it's all the same. there's just nothing different -- nothing exciting. 21:41:32 there are no challenges. 21:42:04 I think you're thinking (too) mechanically. 21:42:26 I disagree; I am speaking in abstract terms. You are the one equating the abstraction with the underlying machine. 21:42:50 for instance, why is forth so worried about word alignment? 21:42:59 (well, why is any language so worried about it?) 21:43:16 you are thinking only in terms of one abstration. 21:43:18 as I said to you some weeks ago, Forth represents a substantially different way of approaching problems, especially for someone deeply rooted in Algol derivative languages. It's a challenge. 21:43:54 I have no idea what word alignment has to do with what we're talking about, but some CPUs require word alignment. 21:44:17 I don't see it as a challenge at all... you learn the different tokens/symbols -- find any idioms.. use it until you become proficient -- and then it's another tool like any other language. 21:44:36 Show me that. Become proficient in it. 21:44:49 here's a strange question for you 21:45:06 what would you think of a computer language -- that was non-deterministic? 21:45:14 (not an app, but a language) 21:45:31 I'd think the chassis wasn't properly grounded. 21:45:40 ha! 21:45:54 anyway.. are you familiar with flash-gate computers? 21:46:08 I don't think so. Maybe a slashdot article? 21:47:00 or, rather, what would you do with a parallel clockless optical system with, compared to today, seeming unlimited storage. 21:47:01 The use of random or pseudo-random data in certain kinds of goal-seeking and modelling algorithms isn't new, if that's what you mean by non-deterministic. 21:47:22 no... not quite. 21:48:21 If you mean that any given use of + could result in adding two values, bursting into flame, or sending a singing telegram to my Aunt Lois, then I'd have pretty limited use for that kind of non-determinism. 21:48:38 ya, that's what I mean. 21:49:19 If both sides of the communication -- the programmer, and the language implementation -- don't agree on what the language means, then you can't reliably communicate. 21:49:36 (I would tend to disagree with you there, but that's ok) 21:49:42 Perhaps you can explain. 21:49:44 mind if I ask you a personal question? 21:49:58 Go ahead. 21:50:08 are you religious -- if so, mind sharing which? 21:50:30 I prefer to keep discussion of religion well separate of discussions of programming. 21:51:08 if you insist. 21:51:39 anyway, I don't mean to bore you or insult you. I tend to come across as a major a55, I know. 21:51:56 some ideas in AI really interest me -- probably a lot moreso than they do other people. 21:51:58 The very point of programming languages is to allow humans to convey clearly, not only to the machine, but to other humans, a desired sequence of operations. 21:52:26 but it always comes down to the same -- put up or shut up... people can only talk so much. so, I'm taking some baby steps (no, really, literally too) ... 21:53:01 but I do have a goal. it may be a collossal waste of time, but then it's only a waste of my time... so that's ok. 'sides, it gives me something to think about. 21:53:13 q: I agree to a point. 21:53:23 I also think it's why our programming has been in a rut for 40+ years. 21:53:28 Deciding Forth is not a challenge in advance is one way to not have to bother undertaking to learn it. 21:54:29 it normally takes me about 2 weeks to pick up a language from scratch and start producing programs in it... I feel comfortable in a language within that time.. but when doe one really master a language -- and is that really necessary? 21:55:10 You've been here for longer than that. When ya gonna start? 21:55:54 for forth, I am looking at it for what it offers -- and so far, it offers being close to the hardware.. low level... small image... widely available. I don't know if I could make a living coding it .. or make a living easily.. but maybe that won't be an issue next year -- and then forth would be a great use of time. 21:56:23 So, another year of you hanging around and giving us status updates on Opera crashes before you start? :) 21:57:08 hope not... they should fix that bug in opera long ebfore thenm. 21:57:15 Telling us it's trivial, and that you should have it licked in 14 days or so? 21:57:35 argh. 21:57:38 that's not what I'm saying. 21:57:54 I must be speaking spanish or something. 21:58:31 You have said just that -- that all languages are the same, save for differences in syntax, and that it takes you two weeks to go from zero to comfortable. I don't doubt that, with Algol-derived languages. What languages have you learned? 21:58:39 I'm only saying -- I don't see anything compelling in forth, lisp... or any other language... I'm looking around to see what people do with the language... just trying to gte a feel. 22:00:23 What languages have you learned so far? 22:01:31 learned and used heavily are differnt things... i've coded in trs80 basic, atari basic, apple basic, 65c02 assembly, 85xx assembly, pascal, c, c++, shells sh/csh/tcsh/psh/ash/lsh/bash/etc, perl, python, ada, lisp, scheme, dcl, vb(?).. .looking into forth and x86 assembly now. 22:01:59 which ones do I feel comfortable with? it depends on what I'm doing at the time. oh... forgot java. etc. there are just so many languages. 22:02:12 I did 4 years of java -- and I forgot to mention it. 22:02:47 I haven't done cobol/prolog/fortran 22:03:19 ah, forgot php... I've been stuck in php for the last year+ for this latest job. 22:03:23 All of those except Python and Lisp (and the two relatively similar assemblers) are Algol-derived, with Lisp being the real outlier. DCL is Digital's scripting language, if I recall. 22:03:48 Yes, I remember which words conflicted. Any word where the difference in the spelling occurs in an extention. fFind and mFind only look for differences in the first token of a bytecoded word with extention. It could be made to test for extention and compare that as well, I suppose. 22:04:07 q: basically, yes. 22:04:13 Where the words differ past character 4 or 5, eh Ray? 22:04:51 absentia, depending on how much you actually did with Lisp, and how Lispy it was, you may never have had any real experience in a non-Algol-derived language. 22:05:29 (lumping Scheme in with Lisp, for the purposes of this discussion) 22:05:48 but I am looking for things like .. with lisp, it's basically (fn args) ... with args being a possibly recursive structure based on that same.. with forth, it's almost reversed -- lots of postfix... (some words are not, but most are). 22:06:40 but I look at forth code, and I can see the lisp for it. I look at lisp and I can see the forth for it. 22:07:04 so the languge is just for the human .. for me. so, I'm trying to find what language that I, the human, like/prefer. 22:07:20 You cannot evaluate Forth without writing Forth. 22:08:03 it's not which is better, or learning a bunch of different ones... it's which do I enjoy. perl is nice -- it's my choice for just about anything.... I even thought about trying the AI in it -- but since I was comfortable with perl, I wanted to learn another language and use the AI as a reason to poke at it. 22:08:19 You cannot learn Forth without writing Forth. 22:08:21 well, you can ... but you might be able to get a good feel for it. 22:08:33 Quartus: yes, but you can avoid learning by not writing forth. 22:08:53 You can circle around it from now until St. Swithin's day, you won't learn it. You won't get a good feel for it. You need to use it. 22:08:58 slava, that's true. 22:09:20 I don't know if you're afraid to start, or what. 22:09:34 nope. 22:09:44 So? 22:10:25 hardly that. it's more like a bungee -- you caught me in the middle of a review ... like the tour de france -- 17 legs? you caught me on the 9th leg and are asking me why I haven't finished the race yet. 22:10:38 the race to the starting line? 22:10:43 i'm stuck with why learn forth, if it's so low level that I might as well just learn assembly 22:10:50 I'm wondering why you haven't moved for the two weeks since the starting gun was fired. 22:11:10 and if forth has the interpreter loop -- why not just learn assembly and do my own interpreter loop -- which would be 40% of the ai that I want to write. 22:11:29 If you think assembly is the same as Forth, you have proof positive that circling around it does not give you 'a good feel', as it's complete codswaddle. 22:11:36 why do you need a computer at all, for this project? 22:11:53 dude, I have read 3 to 6 papers/books on forth.. finished SICP lectures, sicp book, read 2 books on scheme. 22:12:01 YOU HAVEN'T WRITTEN LINE ONE OF FORTH. 22:12:09 I've moved a lot, just not where you're looking. 22:12:15 did you write scheme while reading the sicp book? 22:12:18 I have written many many many lines of forth. 22:12:31 Bollocks. You wouldn't be proclaiming it as on par with assembly if you had. 22:12:43 in fact, one of my initial surprises with forth was that fact that the things that I wrote seemed to work the first time. 22:12:48 that's a good sign. 22:13:14 slava: no... scheme seems like a toy... 22:13:27 although, it was interesting to see that there are scheme examples at nehe! 22:13:31 that shocked me. 22:13:35 (no forth though.) 22:13:42 IIRC, the SICP book encourages the programmer to start writing code snippets in a REPL from the first chapter 22:13:57 why were you shocked to see scheme examples at nehe? 22:14:01 All this Forth that nobody can see. Reminds me of a fellow at college -- his girlfriend lived in the states. Really. 22:14:09 scheme implementations are some of the most sophisticated language implementations that exist 22:14:17 Quartus: LOL 22:14:22 I asked the scheme guys about gui libs and extensions and interfacing... and it seemed foreign. 22:14:38 what about assembly? 22:14:51 how will you do GUIs in assembly? you've given up on scheme, forth... I guess assembly has some great GUI frameworks 22:15:11 So you didn't actually write any Scheme, but you count it among the languages you learned? 22:15:21 no 22:15:25 I have not given up on forth. 22:15:33 So get the fuck started, already. 22:15:57 Shit or get off of the pot. 22:15:58 a contributor is porting the nehe opengl examples to factor. 22:16:15 what's factor? 22:16:15 its trivial, just take the C code, and put the opengl call at the end of each line, not the start. remove parentheses :) 22:17:15 hahahaha 22:17:22 oh my 22:18:52 Factor is slava's language implementation. You can not learn it too, over at http://factorcode.org/. 22:19:06 I like in reva there's "help x" ... built in -- that really helps newbies. 22:20:24 actually, that looks very very very nice. 22:20:33 * absentia puts it on the list to (not)learn. 22:20:48 There you go, slava. He'll loiter in #factor instead. 22:21:42 (Don't tell him it only runs hosted.) 22:22:31 what is the purpose of writing factor? 22:22:43 It kept him from actually learning Forth. 22:23:13 no, seriously. 22:23:26 you may not like what I said, but I was being honest. 22:23:36 What you are being is non-participatory. 22:25:11 Quartus: ya, My name Raymond fits in one token but I think you could prove that some words only fit 4 letters in the begining token. 22:26:58 Actually your name needs 5 extra bits beyond the 28, but they're all 0. 22:27:57 buzz requires 28 bits. 22:29:20 you're right, it did keep me from learning forth. 22:29:28 Slacker. :) 22:29:38 however, i discovered forth after starting work on factor 22:29:53 i was aware forth existed, but never looked into it until after i discovered joy 22:30:07 Well, the beauty of absentia's approach is that he can not-write his application in every language at once. 22:30:21 i just wanted to make a useful implementation of joy. 22:30:56 after looking at forth, i made the most superficial change to factor, word definitions : now looked like this ; 22:31:12 at first you'd write "sq" [ dup * ] define for : sq dup * ; 22:31:22 bit like postscript. 22:31:25 yup. 22:31:39 joy had a hardcoded syntax, so did factor at first. 22:31:45 basically you had words, strings, numbers, and [ lists ] 22:31:58 extensible syntax is da bomb. 22:32:13 java factor had a hand-coded parser. 22:32:21 native factor had a forth-like parser, with immediate words 22:32:53 well, Forth has a hard-coded syntax, as far as it goes. 22:33:06 what i mean is, in java factor and joy, you cannot define immediate words. 22:33:21 That sounds limiting. 22:33:29 it means you cannot extend the syntax. 22:33:37 ``n/win grow 4 22:33:40 joy has a very minimal syntax, just strings, numbers, words, and lists. 22:34:31 I have looked at joy on one occasion. I guess that means I've "learned" it. :) 22:35:21 slava -- factor is/was based on a metacircular evaluator -- what wsa that written in? 22:36:01 You've never seen colorforth, and yet you seem to know more about it then joy. LUDDITE FOOLS!! YOU WILL ALL WISH YOU WERE ME when the obsolete takes over!! 22:36:15 Raystm2, I've seen colorForth. 22:36:24 I know I know. :) 22:36:31 Actually booted it. Typed in a couple of Hello World examples. 22:36:33 sorry, was supposed to be funny. 22:36:36 :) 22:36:40 colorforth confuses me 22:36:51 I booted it, held down the a key.. it crashed. 22:36:52 It's supposed to absentia, it's a plot. 22:37:04 that's what it's supposed to do. 22:37:11 :-) 22:37:18 I'll add it tomy list. 22:37:31 The list of languages he will neither learn nor use. 22:37:37 I started my irc client and held down the a key and all I got was aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 22:38:52 I got the image with the red green and (blue?) letters.... but I didn't see a description of what it meant. 22:39:44 ah, but light green or dark green? 22:39:52 --- join: nighty_ (n=nighty@sushi.rural-networks.com) joined #forth 22:40:25 Quartus: i have a very long list of languages i will never learn and use. 22:40:29 the image was most likey the 'LOGO' application, which is the first application run by colorForth when it boots. This means your display seems to be working. 22:40:34 Quartus: i just added apple // basic to the list. 22:40:41 Damn you! 22:40:58 INIT HELLO 22:41:00 apple2 hadnice integer basic 22:41:00 i'm a LUDDITE! 22:41:01 with all caps 22:41:08 slave: did you see my Q above? 22:41:16 slave, eh? 22:41:22 ut oh. 22:41:40 He was asking about your metaspectacular escalator. 22:41:42 if you get xmess and some apple roms ... you can have fun with the apple][ basic again. 22:41:55 slava 22:41:58 absentia: factor comes with a metacircular evaluator, which is used for single-stepping. however when you actually run code, its run either in an interpreter written in C, or it is natively compiled by the compiler written in factor. 22:42:16 ok. thank oyu. 22:42:28 so i guess its unsuitable for implementing an AI. 22:42:35 hehe 22:42:42 you are a funny man, slava. :) 22:42:44 :-) 22:42:48 oh my goodness I got the silly giggles lol. 22:43:45 Hey, Drake is now growling at Elizabeth Rather. 22:43:47 Great medication followed by neat conversation, somebody please tell me I didn't hallucinate metaphysical emasculator. 22:44:00 escalator. Though I like 'emasculator' better. 22:44:21 Metaspectacular was what I said, but hell, he's probably got a metaphysical emasculator in there too. 22:44:39 Quartus: colorforth means a lot to him. 22:44:44 its a father figure. 22:44:49 slava, I think it's his wire mother.' 22:44:54 I like metaspectacular so if you get peanut butter in my chocolate, you can use it in the act. 22:45:53 Keen. 22:46:23 does colorforth support ajax? 22:46:30 It's stronger than dirt. 22:46:39 asynchronous javascript and xml. 22:46:58 colorForth barely supports the weight of the pixels on the screen, slava. 22:47:12 what about web 2.0? 22:47:17 He was a metaspectacular emasculator from transexual transylvania... 22:47:18 0.2, maybe. 22:48:27 negate that and remember no floats! 22:48:43 writing that down ... no floats ... 22:48:53 does quartusforth emulate floating point? 22:48:54 I deny 0.2 and all of its works. 22:49:11 its web -2. 22:49:33 slava, there's no FPU on any of the Palm devices; all floating point is emulated, primarily through an external library called MathLib. Quartus Forth predates that, so while it supports MathLib it also has its own set of single-precision float routines. 22:49:42 well -1 but the twos compliment is implied. 22:49:42 ok 22:49:49 i knew there's no fpu on the palm, by the way. 22:49:56 i was wondering of quartus forth does floating point at all. 22:50:01 Yes, absolutely. 22:51:18 If you use the internal Quartus Forth floats, you can write an app that does floating-point calculations that'll run all the way back to the very first Pilot device -- MathLib doesn't work before OS3, as I recall. 22:52:36 i forgot, is quartus written in 68k or arm assembly? 22:53:08 John is starting to implode. 22:53:30 68K. There's no proper road to an all-ARM app under the Palm OS; you can write ARM subroutines, but that's it. Quartus Forth has ARM tools in it to facilitate that. 22:53:38 ouch. 22:53:40 Apps on the Palm ARM devices run under 68K emulation. 22:53:44 It's pretty good. 22:53:48 that sounds luddite-ish, forcing developers to run 68k code under emulation. 22:53:55 Oh yes, werty would be very upset. 22:54:01 does palm have a roadmap for migrating all code to arm? 22:54:40 I'm not sure how they could. The OS is in ARM on ARM devices, but there are perfectly viable apps going back to 1996. It's in their best interest to provide devices that can run them. 22:55:01 You can think of the 68K emulation as a VM. 22:55:50 Raystm2, it does look like John's got issues that have nothing to do with programming. 22:55:57 Is colorForth radioactive or something? :) 22:56:09 Quartus: why have a vm when you can run native code? :) 22:56:33 slava, you can't run 68K native on an ARM. Plus the way Palm sets up the ARM, it's in opposite endian (why, I'm not entirely sure, as I understand you can go either way). 22:56:45 can you run linux on a palm? 22:57:29 Depends on what you mean by 'palm'. There were some older efforts to run an embedded linux on the 68K Palm devices. The company that now owns the IP, ACCESS, is targeting a Palm ARM device that is Linux through and through. 22:57:45 --- quit: nighty_ ("Disappears in a puff of smoke") 22:57:55 Quartus: while you can, in theory, make the ARM run in big-endian mode no one does it. 22:57:58 Palm itself now owns rights to use the Palm OS in perpetuity. 22:58:15 TreyB, I see. It might have helped them here. I don't know the rationale. 22:58:25 * TreyB used to work for PalmSource (now ACCESS). 22:58:39 I remember. 22:58:58 In an ARM subroutine, the first thing you have to do is re-endify the arguments. That's a fair few machine instructions. 23:01:41 I think it comes down to the supporting hardware, but I couldn't say for sure. I have seen no big-endian hardware from Palm, Moto, LG, TI, Koycera, etc. Everyone uses little-endian ARM, that I know of. 23:02:08 I'm sure they had good reason. Anyway even in emulation, apps run quite nicely. 23:02:41 Yeah, mostly because apps spend most of their time in the UI, coded natively in ARM. 23:02:54 Right. 23:03:00 You might have to be a little touched to want to put the time and effort into getting it going and learning it. Most reasonable people quit while they are ahead. The rest of us try to defend the wasted time with how wonderful it is to code in, and how you can do anything with it you can do with any other forth, if you wanna put the massive time and effort it will take to get it to mesh with the real world, all the while thinking in 23:03:14 all while thinking in... 23:03:37 got cut off there 23:05:12 Drake's on to me again, I see. There's actually nothing in this last message that crosses the 'worth replying to' threshold. 23:05:24 ... the background that you and your colorforth buddies will re-invent everything easier even if it's just that group of people using it. 23:05:56 So have others been driven batshit insane by colorForth, or do they come in that way? :) 23:06:29 In my case I started insane and am finding clarity. I suppose it's a two way street. 23:06:50 Here we go, ladies and germs, his final version (sans colour): 23:06:50 s 0 hello , i speak forth 23:06:51 type fffffff0 and unpack if emit type ; then drop drop ; 23:06:51 print dup @ f and -9 + drop if drop then ; dup @ type space 1 + print ; 23:06:51 greet show text s 1 + print ; 23:07:01 This is 'Hello World' in the *simple* form. 23:07:22 Yes, you heard it right, *simple*. 23:08:02 Let me be the first to say "fffffff0". 23:08:11 where is the 'hello world'? 23:08:22 oh, its "hello , i speak forth" 23:08:29 i thought that was code. honestly 23:08:37 hehehe 23:08:52 yes, this routine will print single-space delimited sequences of about 5 characters each. More than that, bizarre results. 23:09:11 Lower-case only, from the set of 48 allowable characters. 23:09:18 slava; me too 23:09:24 Right, it doesn't handle the extentions or the caps. 23:09:37 I've given John the code to fix the entire problem. 23:09:49 I'm sorry -- I still don't get it .. what's the purpose of colorforth? to make befunge look appealing? 23:10:22 It's descended of INTERCAL via Fizbin. 23:10:29 absentia: colorforth is OKADII's scriping engine. Any other usage is co-incidental. 23:11:00 ah, ok. i read the heritage. 23:11:28 my version prints all of the extentions, caps, and in any color the word happens to be in when it's in source. 23:11:35 How much longer is it? 23:13:18 It's very long. 3 blocks but includes a cursor, block navigation, a keyboard interface, block number display, cursor position display, the stack and an eight course meal featuring North atlantic scrod and a nice parfet for afters. 23:13:35 Seriously. :) 23:13:42 really? 23:13:43 getting link. 23:15:03 pacman 23:15:58 http://www.dnd.utwente.nl/~tim/colorforth/Raystm2/mv050314.html block 70, 72, and 74, please ignore block 71 as the scrod seems to be off tonight and we are subtituting with haddock. 23:16:53 Dude. Litebrite attack. 23:17:15 Something is indeed scrod. 23:17:34 So I was actually asking about your enhanced Hello World dealie. 23:17:54 Not so much the edig dig 1b1a1918 , 1f1e1d1c , 13052120 , e04100a , stuff. 23:18:41 Although ltcs pos @ cur @ negate + drop -if pos @ lpos ! ntocs pos +! ltcs drop then cur @ lpos @ negate + ; looks like... well, no it doesn't. 23:18:43 This will print what ever it finds in a block, what ever color it happens letter or digit. 23:19:19 Ray, I hope it does at least that much, if not far, far more. 23:19:20 that's hello world? 23:19:29 That's Goodbye Cruel World, I think. 23:19:34 lol 23:19:43 pf? 23:19:49 cm. 23:20:19 Feel the rhythm of h pad nul nul accept nul nul nul nul *b ml mu md mr -b nul nul +b nul nul nul nul nul nul nul nul nul nul nul nul 2500 , 2d000000 , 110160c , 2b000023 , 0 , 0 , 0 , +w cur @ 1 + 255 min cur ! ; 23:20:22 it's a block viewer and well on it's way to be the editor in bytecode. When I get closed to finishing it, I will have to rename things to make it readable and add text to make it literate. 23:20:46 nul nul nul nul 23:20:52 wokka wokka nul nul 23:21:04 spam spam spam spam.... 23:21:07 chugga nul wubba nul makka lakka hi 23:21:17 uh 23:21:29 Pal, that is some unreadable code. And I spent a year elbow-deep in APL. 23:22:03 ml mu md mr. -b nul nul +b. 23:22:28 For the love of god. ml mu md mr? 23:22:53 What's that, somebody ordering the lunch special with a gag in his mouth? 23:23:00 cursor controls move-left move-up move-down move-right. 23:23:38 *b -b and +b navigate the blocks. 23:23:39 my god! actual names! But you can't USE them, because they'd CLASH due to the BRILLIANT DICTIONARY STRUCTURE. 23:23:46 :) 23:23:48 see 23:23:52 compromise. 23:24:02 No, that is not compromise. That's failure. 23:24:11 There's a distinct difference. 23:24:17 Your welcome, Desert? 23:24:44 Lawrence of Arabia didn't see this much Desert. 23:24:52 what do you think of this? www.spy.org/tmp/spc 23:24:58 Okay, I'll be right back with the check. 23:25:15 I think its a link. 23:25:31 absentia, that looks like bad perl that has been run through a shroud program. 23:25:41 that's my origianl... perl. 23:25:43 no conversion 23:25:58 Then you are very, very wrong to say you have no challenges to overcome, programming-wise. 23:26:13 rofl 23:26:20 Mine is tons times easier to read then that mess. 23:26:24 don't reword me. 23:26:29 I don't mean that humorously. 23:26:36 It hert my eyes so bad I had to take ibuprophane. 23:26:42 hurt even. 23:26:46 ibu-profane. 23:27:05 That too. 23:27:37 Not to mention hydrocodone. 23:27:55 here's a routine from my standard sh program[s]: http://rafb.net/p/U3cT1F48.html 23:28:05 ibuprofen. hmm 23:28:22 absentia, first thing I'd suggest is to stop trying to be cute while programming. 23:28:52 Second, buy, borrow or steal "Code Complete" and read all the stuff on naming. Hell, read the whole thing. 23:28:57 I love the obfuscated code contest. 23:29:29 it's not cute -- they both follow very basic structures... in perl, I start my vars at $x... and in the little sh example, it starts with __ ... since bash stole _ 23:29:52 Variables named _ and __ and ___ and ___ are sickeningly cute, and intensely bad style. 23:30:00 naw... 23:30:03 Yes. 23:30:30 that bash code is unreadable. 23:30:42 Did you look at the perl? 23:33:33 How many forth programmers does it take to screw in a lightbulb? 23:33:34 arrrgggghhhh 23:33:52 Raystm2, depends on the size of the lightbulb. 23:34:12 Theoreticall you need two to screw, but it takes a pretty big lightbulb to do it in. 23:34:18 come on? How many forth programmers does it take to screw in a lightbulb? 23:34:47 2 . 23:34:54 slava, what did you think? 23:35:17 @x = sort { ($a =~ /(\d+)/)[0] <=> ($b =~ /(\d+)/)[0] } @x; 23:35:22 one. 23:35:22 One, but he has to build a dam and a substation first. 23:35:43 Bah. He'd get halfway through implementing a back-hoe and give up. 23:35:44 perl is just soexpressive. 23:36:07 ray: I don't get it 23:36:37 You have to be inside to get an inside joke. 23:37:22 Forth programmers can do anything by themselves but they tend to like to build all thier own tools includeding the interpreter/compiler and assember on and on... 23:38:00 Ray, you know that's not the case. They like to build part of each, and when they get to the hard bits, proclaim it finished by design and claim it's superior to everything else. 23:38:01 oh 23:38:08 why do they tend to build these things? 23:38:34 absentia: it tends towards the nature of the beast. 23:38:40 Forth compilers are easier to implement than virtually all other language compilers. 23:39:16 its a problem-domain solving language that people like to turn on itself, as if forth were the problem. 23:39:39 Ray, but they don't. They don't write a Forth in Forth. They write it in whatever other language they already know. 23:39:50 True. 23:39:52 Thus not learning Forth in the process. 23:39:54 hence factor in c? 23:40:06 (not that I"m calling factor forth) 23:40:25 Factor isn't Forth, and slava has already said this evening that he didn't know Forth when he started it. 23:40:35 I do remember that. 23:40:50 that's why I asked about the meta-c eval 23:41:14 Right, the metatesticular exascerbator. 23:43:04 "Testicles!" said Socraties, "Stop playing with that!" 23:43:20 Was his fat friend Sphericles there? 23:43:51 Elizabeth responded to Drake. 23:44:18 If so he was obscured by clouds by Pink Floyd. 23:44:40 I think "Uncomfortably Dumb" is the correct refrain. 23:45:21 what do you think of this: http://rafb.net/p/Ht9qZA12.html 23:45:38 I think it's a cry for help, absentia. 23:46:08 It looks like the unobfuscated version of a craptastic Forth engine from an IOCCC competition. 23:46:15 I didn't write that. but I want to try to figure it out. 23:47:04 Your search - ioccc craptastic forth - did not match any documents. 23:48:56 uncomfortably dump is exactly how it sounds when you have a cold, did you notice that? 23:49:16 I hope you mean 'dumb'. :) 23:51:00 You are only coming thru in waves, your letters move but I can't hear what your typing! Please repeat, SpaceCadet Jones. 23:51:16 Man this is good Pills. 23:51:42 Anyway chaps I'm out for the night. 23:51:44 I know I'm the only one enjoying this conversation, but for me its one of the best i've ever had the presure to endure. 23:52:14 absentia - it builds a jump table with some extra logic that deciphering Cl can probably help you understand. 23:52:28 night sir! I have the Conn. All officers report to the quarterdeck for nite rations. 23:54:14 Petty officer of the watch! Send the messanger to my compartment for my Marlboros a lighter, this months Maxim and two cough drops. Don't touch anything else or I'll know, now go! 23:55:54 ayn: ya.. I was looking at ci 23:56:02 Call the main space and ask Chief Byrd if he'll consider just putting the coffee directly into the boiler. 23:57:50 looks like the c(*)() is setting up some sort of generic signature, that it's filling with a lookup of m[pc] and m[pc+1] .. and then going there. 23:59:59 --- log: ended forth/06.12.27