00:00:00 --- log: started forth/06.12.28 00:05:18 that casts m[] to a pointer to an array of functions that accept N arguments and return a pointer to int 00:05:37 ##C could probably give you better help on this. 00:06:42 ya, I was going to hit that up after I finished the other things I was looking into... 00:07:01 pardon, that's just a cast to a function that accepts N arguments and returns an int. 00:07:03 wasn't a high priority... I just thought that vm was kind of neat -- it was the smallest one that I found on the net. 00:07:39 absentia: Nan's home from work now and I just got done sharing your Daniel with her. He's very cute. That Tigger costume is great. 00:07:57 :-) 00:08:03 Denise loves the tigger. 00:08:34 Cl() takes m=[pc++], takes m[x] as (int)(*)(), and then calls m[x] with m[x+1] as an argument. 00:08:35 that was back before he was really tuned into people... he's now "babbling" a lot.. and will stare at me intensly for a long time. 00:08:45 right. 00:08:52 that's about my level of c 00:08:53 :-> 00:09:06 but I don't know how to use this... 00:09:16 He looks like he's got mom's eyes. 00:09:49 we thought he was me from the mid nose up, and her from the mid nose down. 00:10:05 definitely her chin... but my eyebrows[s] .. and hair. 00:10:07 I see. Still, he'll be a lady killer. : 00:11:04 we'll see. 00:11:23 most people have said that my reproducing is a sign of the apocalypse. 00:12:50 I'm certain it is but that's only because they don't stay this long for ever and have a natural need to stretch and test thier boundries in many and differing forms as the mature. :) 00:13:15 yikes don't stay this YOUNG doh! 00:13:52 :-) 00:14:40 It really does go by fast and you can't take enough pictures. 00:16:03 ok, time for me to crash... see you all later! 00:16:09 thanks for all the discussion -- and help/pointers. 00:16:31 Gn 00:18:02 --- join: Cheery (n=Cheery@a81-197-54-146.elisa-laajakaista.fi) joined #forth 01:02:54 --- quit: slava () 01:18:00 oh dear, what happened while I was asleep? seems that was a night which had a lot todo with drugs. 01:38:07 --- quit: virl ("Verlassend") 01:57:22 --- part: JasonWoof left #forth 04:16:14 --- join: Cheer1 (n=Cheery@a81-197-54-146.elisa-laajakaista.fi) joined #forth 04:27:52 --- join: gettyup (n=gettyup@64.69.51.169) joined #forth 04:33:19 --- quit: Cheery (Read error: 110 (Connection timed out)) 04:47:32 --- join: nighty__ (n=nighty@66-163-28-100.ip.tor.radiant.net) joined #forth 04:50:43 --- quit: nighty (Read error: 113 (No route to host)) 05:01:05 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 05:01:05 --- mode: ChanServ set +o tathi 05:01:35 --- quit: gettyup (Read error: 110 (Connection timed out)) 05:21:26 --- nick: Cheer1 -> Cheery 05:55:19 --- join: timlarson_ (n=timlarso@65.116.199.19) joined #forth 06:08:25 --- join: nighty (n=nighty@sushi.rural-networks.com) joined #forth 06:18:36 --- join: timlarson__ (n=timlarso@65.116.199.19) joined #forth 06:30:54 --- quit: timlarson__ (Read error: 104 (Connection reset by peer)) 06:31:10 --- join: timlarson___ (n=timlarso@65.116.199.19) joined #forth 06:36:20 --- quit: timlarson_ (Read error: 110 (Connection timed out)) 06:37:25 --- join: neceve (n=claudiu@unaffiliated/neceve) joined #forth 06:52:11 --- nick: timlarson___ -> timlarson_ 06:58:11 yay. finally got the documentation for the CVS version of gforth to build :) 06:58:42 morn' 06:59:21 morning 06:59:28 written any Forth yet? 07:02:32 nothing large.. but, ya, some. 07:03:06 where are you located? 07:03:52 US -- Pennsylvania 07:04:01 * absentia is in EST too. 07:04:05 About an hour north of Philadelphia 07:04:19 ah 07:05:40 so tell me again, what's this thing (game?) you're talking about doing in Forth? 07:13:47 well, I like to have a program I can do in a language... to give me something to shoot for. something that's not academic like implementing a quicksort... 07:13:59 so, snce I like games, I tend to implement games. 07:14:49 when I do a gui toolkit -- my goal is to put up a "grid of hexes" and then be able to click on a hex and identify a hex. in ealy java -- when I was coding it -- I actually had to come up with a way to do that myself -- since java's ".inside()" was based on rectangles! argh! 07:15:44 my solution ended up teaching me a lot about java, and when I was done, I was able tomake a scroll plane widget in < 30 minutes in a few lines that worked correct the first time and the code looked respectable -- even if my hex code was gnarly. 07:16:33 so, a game that is fairly easy... is a little turn based adventure game -- a little like the game "robots" 07:16:38 are you familiar with robots? 07:18:40 --- join: koaftder (n=lol@cpe-071-070-208-065.nc.res.rr.com) joined #forth 07:20:31 anyway, it's an easy thing to do in that it's not copmlicated, fast... and has some reward involved, plus, you can then enhance it -- so it's not like an alorithm such as quicksort, where once you're done, sure you have a lib -- but you can't do anything more with it. 07:28:47 --- quit: I440r () 07:28:49 --- quit: koaftder () 07:37:52 --- quit: arke ("This is my quit message. There are many quit messages like it, but this is mine.") 07:47:32 --- join: jackokring (n=jackokri@static-195-248-105-144.adsl.hotchilli.net) joined #forth 07:49:01 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 07:51:45 so, anyway, the reason why I like it is that it's easy, it's a game ... you can do it in various different ways, it gives a few challenges that are more than just a single algorithm... you do interaction with the user -- to read keys.... yet, it's small enough to be a first shot. I did a game like Ishido ... in perl... it's nice, but not quite the same. 07:52:36 thisis something I wrong in like '91 ... etc. http://www.spy.org/tmp/pascIshido.txt 07:56:06 sorry, had to go take care of a few things 07:57:20 no problem... I'm very busy, in and out, etc. it's one of the things that's keeping me from coding more -- normally I'd have coded more in any (new) language -- ie: forth.. in the first night than I have done in the last two weeks... but with a new child, working at a start upwith a product about to launch, etc... it's hard enough to find time to read -- but in the reading, it's like getting a bunch of reviews for a movie -- you know what to 07:57:30 expect, but you still need to see the movie -- if it interests you -- to get the full effect. 07:59:41 I actually ordered another book last night from B&N ... :-/ 08:01:27 on what? 08:01:59 design and implementation of virtual machines in c/c++ 08:02:16 huh 08:05:55 --- quit: jackokring (Read error: 104 (Connection reset by peer)) 08:07:49 --- quit: neceve (Remote closed the connection) 08:39:33 --- join: koaftder (n=lol@cpe-071-070-208-065.nc.res.rr.com) joined #forth 08:39:35 --- part: koaftder left #forth 08:46:49 Hey. 08:50:34 hi Quartus 08:50:56 Hey tathi. What's up? Coding any virtual machines in C/C++? :) 08:51:15 nope. :) 08:52:06 Every nutter in the bag is on me like barnacles on a ship's hull in c.l.f. I'm waiting for werty and coughlin to weigh in. 08:52:57 over this: : digit ( u -- char ) [char] 0 + dup [char] 9 > 7 and + ; 08:53:02 really? I thought people were coming down on your side, mostly. 08:53:19 Yes, the people who matter are. Rickman's on about how coding like that opens the door to the Devil himself. 08:53:48 ah. I don't read c.l.f., so I dunno Rickman 08:53:55 "The attitude that this is "a common Forth idiom" is one of the things 08:53:55 > that holds Forth back from popular acceptance." 08:54:03 just assumed he was another one of these people who has never actually used Forth. 08:54:07 "Although this example may work, it is exactly the 08:54:07 > philosophy of programming that can lead to difficult to find bugs and 08:54:07 > was the motivation behind languages such as ADA. 08:54:07 " 08:54:11 That's also my guess. 08:55:08 So the next time you're using a Forth app and a digit suddenly comes up as a happy clown face, you'll know that this dangerous technique is probably to blame. :) 08:55:43 :) 08:56:55 I suppose it would be an unhappy clown face, really. 08:59:25 "I am accustomed to not mixing data types in ways that depend on how the data types are implemented. It may be true that in ANSI Forth the boolean types 08:59:29 have fixed representations. But in other languages this is not true. As a 08:59:32 result I found the code hard to read." 08:59:43 My reply to that: "If you code Forth to the common set of limitations of the other languages 08:59:43 you know, you'll have to avoid using considerably more than this simple 08:59:43 technique. 08:59:49 " 09:00:09 that looks to me like he's saying that he hasn't really learned Forth technique. 09:00:14 absolutely. 09:01:07 As Rather said yesterday, "The big point is that Forth is largely typeless." 09:01:55 Rickman goes on to talk about non-Forth programmers finding the technique objectionable. 09:02:04 When looking at Forth code. 09:02:17 And that reaction thus giving rise to Ada. 09:02:42 It makes about as much sense as Heaven's Gate doctrine. 09:02:58 Of course, they're all up on that UFO now laughing. 09:06:48 wow. you went and tested your dictionary for conflicts with Huffman encoding? 09:07:13 With the specific breed of coding Moore is using, yes. Simple bit of code. 09:08:34 Given that Moore says this coding was intended to speed dictionary searches, I'm curious to know why he's expanding it (which will reduce any speed advantage), rather than simply ditching it. 09:12:30 which technique? 09:12:50 What, so you can say it's ugly and stupid? 09:12:58 This isn't my first day here. 09:15:49 whatever.. 09:16:06 Good for you. You've done your part. 09:16:50 whatever, don't get on my nerves. 09:17:14 Moore seems to have a real thing about plain text; I assume that's why. 09:17:22 He hates it, apparently. 09:19:03 ya. 09:21:17 I suppose it would be a bit tricky to move to plain text without totally restructuring colorforth. 09:21:41 I don't know. Might be worth doing. 09:22:01 because each source token has a color tag attached 09:22:10 but you could easily switch to some other form of tokenization 09:22:12 Yes. 09:22:16 --- join: Zarutian (n=Zarutian@194-144-84-110.du.xdsl.is) joined #forth 09:22:41 store real strings in the dictionary, and use the index as the token or something 09:23:27 I doubt that would take more than a few hours for someone familiar with the thing. 09:23:49 Sure, or the dictionary header address as an offset + tags. 09:24:24 ya, whatever 09:25:11 I don't like systems where name conflicts are a possibility, no matter how remote -- and they ain't all that remote with this one. 09:25:25 Silent name conflicts, actually. 09:25:45 colorforth has so many other flaws though, might as well just ditch the whole thing :) 09:25:52 That would get my vote. 09:27:43 --- join: vatic (n=chatzill@pool-162-83-229-109.ny5030.east.verizon.net) joined #forth 09:30:25 where is all this discussion that you guys are always referencing? 09:31:33 e.coli vs anthrax... your choice. 09:31:40 er, sorry.. wrong chan 09:32:39 all of it? 09:32:58 comp.lang.forth absentia 09:34:23 so...do they ever have useful, logical conversations on comp.lang.forth? 09:34:27 or is it always like this? 09:34:33 Yes, there's sometimes very good stuff. 09:34:45 Hit and miss, but the signal-to-noise is actually higher in that group than in many others. 09:34:47 I guess I don't go back and read new posts ... I should. 09:35:22 I almost... got into that graphics of the i/ii/iii kind... 09:35:26 There are some true whackjobs. The ones who really mystify me are the ones who don't use Forth, but hang around spouting off opinions about it anyway. 09:36:09 ya, that's annoying.... 09:36:14 I hate it when people do that. 09:36:39 And they hang around for years and years. Coughlin, for example. This guy Rickman. 09:37:01 oh. I thought you were referring to me, here... in this channel. 09:37:06 :-) 09:37:20 well, I gather news groups are known for their low signal-to-noise ratio 09:37:29 actually yes, you proclaiming that certain parts of Forth should be jettisoned before every having actually even used it is quite annoying. 09:38:02 tathi, that happens. c.l.f isn't so bad as UseNet goes. At least the discussions are predominantly on-topic, regardless of the relative sanity of the participants. 09:39:08 actually, I have not... but you keep saying that I have. 09:39:12 but that's ok... 09:39:20 You did yesterday. Said the interpreter should be jettisoned. 09:39:28 not at all. 09:39:30 I can paste it in with the timestamp, if you like. 09:39:47 I said -- *I* would like to run forth code, after it's done -- without the interpreter. 09:40:13 I'm just trying to remove the middleman. 09:41:20 "This isn't a crack against forth... I like Forth for what it gives, but I'd like to jettison the interpreter." Sorry if I misinterpreted that, but it doesn't leave a lot of room. 09:42:07 right. jettison the interpreter -- not in all cases.... read thel ines before it and more-so, the lines after it 09:42:55 I see nothing relevant in the lines above it; you switch horses and start talking about non-blocking reads on input streams after that. 09:43:09 I guess what would be nice -- is if there was some nmi or something... that could be done to change states into the/a interpreter (monitor?) -- and then otherwise, be running compiled code that is not interpreting pcode. 09:43:22 ok, whatever. 09:43:38 I'll move my mouth.... you say the words you want. 09:43:54 absentia: ya looking for dwim instruction then? ;Þ 09:43:56 Native-code Forth compilers are more and more common. Interpreting pcode, or threaded engines as they're called in Forth, are increasingly less common. 09:44:05 what is dwim ? 09:44:20 I'm not putting words into your mouth, absentia. 09:44:22 Do What I Mean 09:44:32 great! that's all... nothing more, nothing less. 09:45:11 not trying to redesign forth or heaven-forbid.. .criticize it. 09:45:22 z: ya... assembly. :-) 09:45:31 Criticize it all you like, but it will be considerably less annoying if you actually have some experience in it first. 09:45:44 * absentia nods. 09:46:06 "An crytic is an man in wheelchair teaching running" 09:46:34 maybe he was able to run before -- but was hit by a car or something. 09:47:05 yes, but I couldnt sit on myself on uttering that quote 09:47:23 Then the people who don't use Forth in c.l.f used to be intelligent, but had a brain accident? That would account for it. :) 09:47:38 Massive head injury. 09:49:05 * absentia had a brain forth... er, I mean fart. 09:49:06 ? 09:59:06 here's my last question on ##C++ --> > for pentium5, is it faster to add 32 or xor 32? if there some place where I 09:59:07 +can see cycle timing for opcodes. 09:59:29 here's the first (and only) response: absentia: I've gotta say that that sounds like a problem for 09:59:29 +incredibly-premature-optimization man! 10:04:33 --- quit: vatic ("*poof*") 10:06:06 well, there aren't really docs which list the cycle times of each x86 opcode for the new intel chips. or has anybody those docs 10:06:52 --- join: arke (n=chris@pD9E054C8.dip.t-dialin.net) joined #forth 10:06:53 --- mode: ChanServ set +o arke 10:07:24 it probably varies widly too... with each revision. 10:08:01 it's interesting, as when I was learning assembly for 65c02, it was somewhatimportant as I only had like 40 cycles per time-slice... 10:10:02 yeah, now it doesn't matter, so stop worrying about irrelevancies and start writing code :) 10:17:04 there's a thought. 10:18:49 intel makes all timing docs available, btw. 10:19:29 it's just practically impossible to work it out for a sequence of instructions in real-world conditions. :) 10:19:31 Certain instructions execute in parallel, so it's not as simple as adding all the timings together. 10:19:42 right. 10:41:37 --- join: jackokring (n=jackokri@static-195-248-105-144.adsl.hotchilli.net) joined #forth 10:58:45 --- quit: tathi ("bbl") 11:10:48 --- join: Shine (n=Frank_Bu@xdsl-81-173-252-6.netcologne.de) joined #forth 11:30:55 well, I was going to ask about pipelining, but I figured I'd get reprimanded.. again. 11:31:18 it's the one nice thing 'bout compilers. I looked into icc vs gcc -- it was remarkable. 11:32:53 again, this is just general interest... no big deal. 11:48:56 --- join: arke_ (n=chris@pD9E048E3.dip.t-dialin.net) joined #forth 11:50:27 --- quit: arke (Nick collision from services.) 11:50:34 --- nick: arke_ -> arke 11:50:35 --- mode: ChanServ set +o arke 12:00:04 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 12:00:04 --- mode: ChanServ set +o tathi 12:15:34 --- join: zpg (n=user@81-178-215-83.dsl.pipex.com) joined #forth 12:15:50 hi 12:16:18 hi zpg how are you? 12:17:01 hey 12:22:51 hey virl, Quartus_. not bad thanks. 12:22:54 how're you guys doing? 12:23:39 ticking along. I'm mobile presently. 12:25:55 * zpg nods 12:26:14 still coding dangerously. 12:26:56 what does that mean ? 12:27:14 ref. the dialog on clf 12:28:51 clf is what? 12:29:22 comp.lang.forth? 12:33:21 yes 12:33:39 i'm trawling through this stuff at the moment (for some reason presently beyond me) 12:35:07 slightly headache inducing stuff. 12:39:55 it is. Rather's reply was good. 12:40:04 indeed. 12:40:24 there seemed to be a bit of an ego-situation in drake's response. 12:40:43 which threead is all this on ? 12:41:58 http://groups.google.com/group/comp.lang.forth/browse_thread/thread/fcc6d94d6006ee1d/00fd20fffd417d40 12:41:59 etc. 12:42:00 --- join: JasonWoof (n=jason@c-71-192-26-248.hsd1.ma.comcast.net) joined #forth 12:42:00 --- mode: ChanServ set +o JasonWoof 12:42:38 that's the newest stuff. click on older to see the main bulk of the discussion -- Quartus_, Raystm2, Fox, Rible, Rather and of course, Drake. 12:43:41 if Rible and Rather tell you you're wrong about Forth, you should pay heed. :) 12:43:59 quite -- that cracked me up. 12:44:46 thanks! 12:44:51 in particular, "Elizabeth, nobody's going to force you to use multiple exit points either even though that's well defined within the Forth and has been for years." 12:45:32 heh 12:53:22 --- join: vatic (n=chatzill@ool-45740b1c.dyn.optonline.net) joined #forth 12:54:19 hi vatic 12:55:54 zpg: hi 12:56:08 vatic: how's it going? 12:59:24 zpg: OK, studying for my oral exams... 13:00:17 exams for...? 13:03:19 my PhD. 13:04:56 ah neat. 13:16:21 Phd in what? 13:28:19 --- quit: virsys (Read error: 60 (Operation timed out)) 13:30:31 time to head. cheers for now. 13:30:41 --- quit: zpg ("take care") 13:33:49 --- quit: timlarson_ ("Leaving") 13:37:41 vatic, I am a dog. I still have that blessed book. Tomorrow I have other items for the post; I'll take it in. Sorry about that. 13:40:28 Quartus_ Woof, woof! ;-) PhD in musicology. 13:40:45 woof! 13:41:12 JasonWoof: woof! 13:41:43 Bow, wow. 13:42:04 Quartus_: quite alright, I don't have any time to read it until after Feb 3rd anyway... 13:43:31 :) 13:44:08 in the meanwhile it's being subjected to proximiity to my dangerous programming techniques, hopefully no permanent damage :) 13:45:04 Quartus_: I can't tell you how much laughter the CLF threads about colorforth and werty have generated at my apartment... 13:47:23 I'm finding them amusing too, despite the abuse directed my way. :) 13:48:04 something of a strain on my civility. :) 13:48:34 Quartus_: your calmness and the simplicity of your critique make it all the more funny... 13:49:00 --- join: slava (n=slava@CPE0080ad77a020-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 13:49:01 --- mode: ChanServ set +o slava 13:49:13 I almost wish it were a gray area, the discussion might be interesting. 13:51:25 Quartus_: Drake is flapping around like a pair of wet underwear on clothesline... 13:51:25 I'd never have thought two words in a ten word definition could generate such ire. 13:52:30 Quartus_: maybe I should have said "flag" 13:52:33 I know if I were wailing about something, and Rather, Rible, Beroset and van der Horst told me I was wrong, I'd be inclined to reconsider. 13:52:39 heh 13:54:34 never do arithmetic on a wet flag 13:55:41 ok, I see the discussion -- but haven't found the original code. 13:55:50 Quartus: fox would disagree with you, too, but his life experiences are too amazing and unique for you to believe him. 13:56:29 : digit ( u -- char ) [char] 0 + [char] 9 > 7 and + ; 13:56:45 easier t o read than absentia's perl... 13:57:06 slava, oddly he hasn't stepped forward to say he has received death threats about this paeticular technique. :) 13:57:13 my perl has been accusd of being line noise. 13:57:41 No, line noise might sometimes accidentally form a word. 13:58:17 oh, dang. I left out a dup. 13:58:24 mobile presently, sorry. 13:59:11 : digit ( u -- char ) [char] 0 + dup [char] 9 > 7 and + ; 13:59:48 if it's not a char -- what happens? 13:59:52 on the stack ? 14:00:07 it's the 'and' that's the gateway to hell, apparently. 14:00:22 if what's not a char? 14:01:21 so what's the effect of comparison of 9 and 7 ? 14:01:35 that's not what the code does. 14:01:42 http://www.icw-net.com/howto/funstuff/euroengl.htm 14:02:15 I think you mis parsed my question 14:02:41 perhaps absentias code is comperable with the output of /dev/random? 14:02:52 there is no comparison of 9 and 7. 14:02:57 I didn't say there was 14:02:58 god dammit 14:03:13 virl: readable perl is hard to write... 14:03:15 what's with the comparison with the value from char 9... 14:03:17 that's verbatim, man. 14:03:18 absentia, RPN 14:03:21 what are you trying to do with that? 14:03:33 fuck you guys are impossible. 14:03:37 this word converts a number 0-15 to a char 0-9A-F 14:03:47 ah! 14:03:55 THAT is the comparison. thank you 14:03:56 this word turns an unsigned integer into a printable character from 0..9A..Z 14:04:03 or -Z, even. 14:04:19 if it's true then bitmask 7 does it's magic with AND 14:04:20 right... so what if the value is outside the range? that is what I was asking. 14:04:34 I can see 9 is 0 - 9 and 7 is a - F 14:04:48 it doesn't range check. Conventionally range checking is left to the caller. 14:04:56 --- quit: nighty__ (Client Quit) 14:05:12 no, the 7 is not a-f. It is the distance between 9 and A. 14:05:15 well, usually the caller is a routine to convert a number to a string 14:05:15 I normally don't consider chars as signed ... hence my original question about u not being a char ... but that doesn't seem to matter. 14:05:19 --- join: nighty_ (n=nighty@66-163-28-100.ip.tor.radiant.net) joined #forth 14:05:22 and the range check is implicit, it uses /mod to extract digits one by one 14:05:26 at least that's how its done in factor 14:05:27 ah 14:05:28 ok 14:05:46 right. It's up to the caller to pass a valid value. 14:05:47 except i can't bitmask the result of >, because booleans are not integers 14:06:10 so if it's greater than 9, you're turning on 3 more bits. 14:06:14 ok. 14:06:17 no. 14:06:17 *whew* 14:06:31 right. It's up to the caller to pass a valid value. 14:07:03 no to the '3 more bits'. That is not what is happening. 14:08:13 and + ? 14:08:15 the result of dup [char] 9 > 7 and is either 7, or 0. 14:08:16 ok, meeting. brb 14:08:27 + adds it. 14:08:34 what is "7" 14:08:37 4 + 2 + 1 14:08:52 the distance between 9 and A in the character set. 14:09:21 yes, 7 is three bits wide. That code does not 'turn on 3 more bits'. It adds either 7, or 0. 14:09:55 actually the distance between the character one past 9, and A, to be precise. 14:11:19 you really gotta learn you some Forth, scott :) 14:12:24 you could also say: 9 > if 7 + then but that would be longer.. 14:12:44 you could, it's equivalent. 14:16:08 though it's an extra code path to test. 14:22:11 --- join: Amanita_Virosa (n=jenni@adsl-70-248-239-251.dsl.hstntx.sbcglobal.net) joined #forth 14:29:58 --- quit: slava () 14:45:33 --- quit: jackokring (Read error: 60 (Operation timed out)) 15:03:55 --- part: Ray_work left #forth 15:08:34 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 15:32:57 --- join: jeremy_c (n=jeremy@cpe-71-74-145-210.neo.res.rr.com) joined #forth 15:43:47 LUDDITES!!! Colorforth needed to learn a new keyboard layout !!! and ill bet those keys has alpha!!! 15:44:21 We must have clever keyboards!!! 15:44:34 no fixed, no alphas!!! 15:44:42 σιλλψ πεοπλε 15:44:53 Raystm2: your pills 15:44:58 hi Amanita_Virosa 15:45:02 hi JasonWoof. 15:45:08 hi :) 15:45:13 ηιψα ραψστμ2 15:45:14 Amanita_Virosa I don't have those characters, 15:45:20 heh 15:45:24 that's kinda funny, actually 15:45:27 What font should I load. 15:45:54 it's in utf-8 15:46:08 bleh :) 15:46:12 so long as you're using a sufficiently complete font, you'll see it 15:46:12 tathi ! :) 15:46:28 hi Ray 15:46:46 Luddites!!! I invent you a new forth and you ignore me. Why do you ignore my email chuckmoore. 15:47:07 My forth is save world!!! 15:47:33 pills taken just two to go for the day. 15:47:34 my IRC client doesn't know from UTF-8 15:47:52 is that werty? how bored must someone be? 15:48:14 pretty bored, I didn't go to work last two days. 15:48:31 Out with dental pain, and debilitating pain pills. 15:48:54 I'll go in tomorrow tho. I'm sure I'm backed up. 15:49:46 this werty tho, he's pretty far gone, ya? 15:50:23 I saw my first werty post yesterday, tho i've heard the group talk about him. 15:52:04 looks like i can add a UTF-8 script to my client. Not sure where to get one just yet... 15:54:19 I mean I see characters but they don't spell anything, just looks like a set of wingdings. 15:54:34 Maybe that's what you intended? 15:55:53 I just saw a bunch of question marks 15:56:03 works for me 15:58:20 heh 15:58:32 no, it's actually a series of greek letters 15:58:39 which spell out english words lol 15:58:40 but hey 16:01:31 σιλλψ πεοπλε = silly people 16:02:04 ηιψα ραψστμ2 = hiya raystm2 16:04:34 hi vatic. 16:04:44 yep :) 16:04:52 I'm supposed to have a tendancy to read geek. 16:05:36 i set my keyboard up so i could just type cool things like, say... R₁=3.5μΩ 16:06:27 looks cool. still can't make heads nor tails of it, but it's still cool. 16:07:06 heh 16:07:29 it's "R1=3.5microohms", if you still can't see the UTF-8 version 16:07:46 it's kinda strange, actually... i'm completely linux console-based, but i'm apparently an early adopter of utf-8 heh 16:09:15 --- quit: ellisway (Read error: 104 (Connection reset by peer)) 16:13:51 Raystm2: hey! 16:21:07 --- quit: Shine ("Chatzilla 0.9.77 [Firefox 2.0.0.1/2006120418]") 16:41:27 So, vatic, Holidays? How were they? 16:42:36 Amanita_Virosa. I suppose so. 16:50:19 Raystm2: full of studying! no vacation for me... :-( 17:12:26 anyway, I don't know the original specs.. but here's how I'd do the hexchar thing... 17:12:30 http://rafb.net/p/ESEKaq79.html 17:14:07 I'd fo the top one, even though it uses a little more space. if that's an issue, then if we're gonna assume that char a - f and 0 to 9 are contiguous, w might as well put the values straight in -- and simply document the values.... if they are going to be used more than once, they could be made to consts ... and with the consts, we could go back to style 1 if, for whatver reason 0 to 9 and a to f weren't contiguous 17:14:59 well, the bottom one would work for any base up to 36, if you took out the '15 and'. 17:15:26 plus, intersting that char a right, the 15 and is because it says hex... 17:15:35 just a little safety thing in case it gets passed bad data 17:15:51 yeah, the original thing was just for whatever digit 17:16:09 used as a factor of the number printing routine 17:16:14 but it was hex out... until you got to G :-) 17:16:19 right 17:16:50 so it was base 10 to 36 (assuming you are correct, above) ... just not b < 10 17:17:05 so, when the baby goes down -- I hope toget more forth tonight. 17:17:34 yeah, the standard says you can store 2..36 in BASE 17:17:46 anything outside of that may not work, may crash your forth, whatever. :) 17:18:06 Quartus's point was that if you only need decimal, you can just do 17:18:09 so, BASE and dup ? 17:18:12 : digit [char] 0 + ; 17:18:28 but then base is 1 off 17:18:32 so he likes to do that first and then adjust if necessary. 17:18:40 yup 17:18:55 yeah, usually it will get used like 'base /mod digit hold' or whatever 17:19:07 ya, saw some examples of that. 17:19:17 so you skip the error checking in digit 17:19:25 the whole <# # .s #> 17:19:33 ya 17:19:43 I came in late ... all I saw was the code, not the specs or why the code was written 17:19:58 so you said 17:22:39 but the top technique seems pretty standard... 17:22:46 how old is the baby? 17:22:50 (when you have space -- which is most of the time) 17:22:55 yeah, sure, that works 17:22:56 3 months.... as of today! 17:23:08 ah, little tiny :) 17:23:13 16lbs 17:23:18 22+ inches 17:23:20 pig 17:23:57 hehe 17:24:47 I was comparing to my niece who's right about 21 months 17:25:24 --- quit: vatic ("*poof*") 17:25:57 ah 17:28:19 --- quit: Amanita_Virosa ("Gone like the wind.") 18:08:43 --- join: ellisway (n=ellis@host-87-74-241-174.bulldogdsl.com) joined #forth 18:17:08 --- join: TheBlueWizard (i=TheBlueW@ts001d0811.wdc-dc.xod.concentric.net) joined #forth 18:18:45 --- quit: virl ("Verlassend") 18:36:44 --- join: virsys (n=virsys@or-71-53-68-17.dhcp.embarqhsd.net) joined #forth 18:56:24 Hey. 19:08:33 hey. :) 19:08:57 hiya Raystm2 ... and Quartus :) 19:09:06 Hey guys. 19:09:29 hey TheBlueWizard how ya been? 19:12:15 doing fine (and busy!)...and you? 19:12:44 Hey ray. Asked you a ? in c.l.f, but I can ask here -- Each word in a comment is also restricted by length to what will 19:12:44 huffman-encode into 28 bits in the current colorForth, right? 19:12:52 Been in dental pain last 5 days. 19:12:54 re, ok, bab going down! 19:13:31 ouch re: pain...are you gonna see dentist? 19:14:18 Quartus: the extention tag 0 will allow for words or numbers that will not fit in the first 27 ( for numbers iirc) and 28 ( for wordnames) bits. 19:14:33 will, or does? 19:14:37 TheBlueWizard: Ya got quotes, checking with insurance. I need major work. 19:14:48 Quartus: sorry, does. 19:14:58 So how does that work? 19:16:11 it gets displayed as part of the same word (no space in between) 19:16:12 In the case of mFind and fFind, the extensions are ( possibly were is the correct term now as i'm not sure but it was 'are' ) ignored for dictionary hits. 19:16:23 but gets ignored for dictionary lookup 19:16:33 So how does that work when an encoding is truncated at the 28-bit boundary? 19:16:45 it just goes on to the next word 19:16:47 that's right tathi, the code for the extention does a -trailing sorta routine before appending the extention. 19:16:59 so the bit pattern actually is partly in the first word, and partly in the second? 19:17:04 yes 19:17:07 Yes. 19:17:18 Even when a huffman code is snapped in half at the boundary? Ok. 19:17:36 hmm...not sure about that one. 19:18:08 Not sure I understand what you are asking. 19:18:28 no, I'm pretty sure it keeps individual codes (letters) whole 19:18:41 For instance, move-down encodes as 1000100111100001010011100111/1000000011101110110 (/ at the 28-bit mark) 19:19:00 if a code doesn't fit in a word (ignoring trailing zero bits), it gets put in the next one 19:19:25 Ok. 19:20:00 wait wait wait, I got a bit of this in my head now... 19:20:30 --- join: Al2O3 (n=Al2O3@pool-71-164-165-172.dllstx.fios.verizon.net) joined #forth 19:20:37 yeah 19:20:40 The extension tag is in the extention and not in the word's first portion because that tag has the color/class. 19:20:49 the words actually get built on the stack 19:21:05 it has a variable which tells how many cells on top of the stack contain coded characters 19:21:19 Man. Complicated. 19:21:21 then when you're done it usually just drops all but the last 19:21:33 yeah. I mean, I can see going tokenized to avoid dealing with text 19:21:38 I don't see the win. 19:21:39 but then he adds all the complexity right back in 19:21:44 unpack sees the extention and uses the last color and the -trailing routine to piece the word together but the dictionary doesn't have to include the second extention(s) 19:21:46 with the whole multiple-words thing 19:22:23 Unpack must be sizeable to do all that junk. 19:22:50 * Raystm2 verifying that i'm not just guessing this... 19:22:55 er...unpack doesn't do all that 19:23:07 it just extracts the first code 19:23:10 The famous Drake hello-world stuff looks to me that it deals with only one cell at a time, masking it with fffffff0 and displaying it, and then emitting a space. 19:23:37 It uses unpack, right? 19:23:42 yeah, you have to mask out the tag, then you can use unpack to pull off the characters one by one 19:23:54 Ok. But it's clearly so doing on only one cell at a time. 19:24:01 unpack is ( word -- word2 char ) 19:24:16 yes. in the kernel, there's a routine that the editor uses 19:24:30 it has a jump table to set the color and print spaces and such as necessary 19:24:51 But I take it the editor lets you say 'jeff fox is an insane fruitbat' without truncating 'fruitbat' to 'frui' 19:24:59 it does 19:25:25 Through a painful process that eliminates any possible win. 19:25:35 pretty much :) 19:25:44 Jeez. 19:27:29 it's probably 125+ lines of asm code 19:27:41 That is pretty big. 19:28:00 we are not talking so much about unpack here as we are about the complexity of ACCEPT and PACK 19:28:02 ayup. 19:28:21 Raystm2: oh, I was just talking about type and its associated subroutines 19:28:38 the stuff the editor uses to display source 19:28:47 Yes. 19:29:17 unpacking it to display it sounds arduous -- I don't suppose the editor routines can be reused for that? 19:29:17 Quartus: especially compared to : type 0 ?do count emit loop drop ; 19:29:27 it probably could be 19:29:33 it's not exposed though 19:29:36 Oh. 19:29:42 So much for 'don't hide your tools' I guess. 19:29:45 a lot of stuff isn't 19:30:02 another annoying thing about colorforth 19:30:59 I wish I could see how this is supposed to be progress. And I'm not being cynical or sarcastic. I'm just not seeing it. 19:31:31 I don't know who's claiming it is, other than Jeff. 19:31:49 Jeff, Drake. 19:32:02 Chuck mostly seems to say that it works for him and he doesn't see any reason to change it. :) 19:32:06 Moore, one presumes, though of course his mouthpiece is batshit insane. 19:32:18 And if other people like it, that's nice, but who really cares? 19:32:34 I wish I could claim having done something productive with it. It's been a pleasant passtime. 19:32:46 I can't say I've seen anything from Moore himself claiming that it's all that special 19:32:57 His own pages at colorforth.com. 19:33:40 Should have been carved in stone for the life of the project, as far as that goes. 19:34:12 I mean, please, visit your pages now and again and rinse them, repeat. 19:34:38 I think it was carved in stone, the last-update date says Sept. 2002. 19:39:04 80% of the community is watching 20%. of the active 20%, 80% of those are apparently hybernating the last two years or so, leaving the 20% whose 80% are new and uninitiated, leaving 20% whose 80% are people who've never used it but actually do know what they are talking about cuz of shear experiance and the rest of us are either psychotic, undereducated, insolin deficient, or plain nieve. 19:39:27 The more I find out about it the worse I find it. 19:39:35 :) 19:39:53 I made the error, again, of trying to communicate with Fox. 19:40:12 Remind me not to do that. I keep defaulting to giving the benefit of the doubt when I know better. 19:40:49 I liked seeing how simple a round-robin task switcher could be in a minimal Forth. 19:40:56 Some times we step in it. Nothing to be ashamed of, just wern't watching and accidents happen. 19:41:01 Dunno if I got anything else out of it... 19:42:38 You know, back when, the seduction was pretty good. You couldn't get colorforth to boot at first so poking around you found Sean Pringle and wudn't Enth with Flux neat? 19:43:08 --- quit: Quartus_ (Read error: 104 (Connection reset by peer)) 19:43:14 It was an operating system in forth on a disk, and it booted the first you tried it. 19:44:04 It was built thru the process of his own assembler and meta compiler, they were included and it was a small, easy to bite into complete forth os to study. 19:45:36 From that, I got the few hints i needed to get colorForth working and man suddenly I could run every version I found. Couldn't do anything or even just type in it for a while and wudn't I neat cuz I got it going and nobody else could. On several machines, like every one I seem to touch. 19:45:46 Baden once said "Chuck is 19:45:46 an excellent engineer, but he does not understand programming languages. 19:45:48 " 19:46:17 --- quit: Al2O3 ("Leaving") 19:46:41 Quartus: you know I'll admit right here that I think crc is a bit of a language designer. 19:47:00 Baden was talking about Moore, not Childers. :) 19:47:50 I didn't understand his little things there for a bit, but they are neat, handy, work, make work compact, and fun to code. Least that's my experience so far. 19:48:07 He also said the colorForth code (colorForth source from Chuck) was the worst code he'd seen in 20 years. 19:48:45 I know that's true. It's not been factored the way it has stood for years. 19:49:01 I'm beginning to see confirmation that this wasn't a from-the-hip observation, but a considered evaluation. 19:56:31 I'd agree with that. 19:57:13 Forth owes as much to Dean Sanderson (and others) as it does to Moore's original confluence of ideas. 19:58:09 pacman 19:58:34 ChuckBot. 19:59:19 Your keyboard will not alpha!!!! 19:59:32 101!!!! HAHAHA!!! 20:00:40 so does werty actually write code, or just insane UseNet posts? 20:01:02 Let me put it this way: absentia's Forth code dwarfs werty's. 20:01:19 I figured :) 20:01:45 I see Drake didn't bother to respond to Rather's remarkably concise reply. 20:02:09 wertys is MID LEVEL code and doesn't quite reach the keyboard due to alpha MID lEVEL alpha code . 20:02:13 I'd have more regard for the frantically irate if they were non-partisan, and took on all comers, instead of picking and choosing. 20:03:34 I wrot code tonight :-) 20:03:42 I doubt that. Provide evidence. 20:03:55 DANGER WILL ROBINSON!!! 20:04:11 stomp feet, arms flailing. 20:04:14 http://rafb.net/p/ESEKaq79.html 20:05:19 You don't need to document those two assumptions. Do you know that my digit word from earlier will do this? 20:06:51 Also the 15 AND is a form of range-checking that would normally be left to the caller. 20:08:01 Have you tested the return value from hexchar? 20:08:41 are you reading this? 20:08:46 yes 20:09:01 I fell asleep for an hour, but I'm awake now. 20:10:10 There's no benefit that I can see to having a word that will only print digits in the range of 0..15, but only your second one works. I suggest not using unnamed constants like 55 and 48, but rather descriptive code instead. 20:10:45 eh? 20:10:58 Try 1 hexchar . 20:11:03 I would do it the first way -- not the second. the second was written in case you didn't want to "waste" the storage fo the string... 20:11:26 The second way is much more Forth-like than the first. However there's a bug in the first. 20:13:18 emit 20:13:39 right... I wrote the second to be like the one that you wrote. that's how I would have done it. 20:13:46 if you're gonna assume, etc. 20:13:47 Emit produces the result you want from hexchar under Gforth, but it's masking the bug. 20:13:55 what bug? 20:13:59 Try 1 hexchar . 20:14:12 1 hexchar . 875770417 ok 20:14:14 ya? 20:14:23 Does 875770417 seem like the character code for '1' to you? 20:14:51 ? 20:14:52 Try char 1 . 20:15:24 char 1 . -> 49 1 hexchar . -> should be returning 49, not 875770417. 20:15:36 it was written for emit, not . 20:15:41 change the specs, change the program 20:15:43 It's still broken. 20:15:48 sure 20:15:59 if you change the requiresments :-> 20:15:59 Consider two things: endianness, and out-of-bounds memory access. 20:16:04 No. It's broken as it stands. 20:16:14 my program to play tic tac toe is borken if I expect it to play chess 20:16:18 You're also relying on emit to mask the lower 8 bits. 20:16:35 absentia, I'm not yanking your chain. There is a very real bug in hexchar, and it's one that matters, and it's not one that depends on the specs. 20:17:39 Look, forget it. I thought you wanted feedback. 20:18:55 I'm providing suggestions so you can actually find the bug yourself and fix it, but screw that. Your @ should be c@. You're welcome to go figure out why. 20:19:38 : hexchar ( u -- hexchar ) 15 and HEXCHARS drop + @ 255 and ; 20:19:45 that doesn't fix it. 20:19:51 it will fail on big-endian systems 20:19:54 I don't know the word for retrieve byte ... yet. would have to look it up 20:20:04 or systems that only allow aligned cell fetches 20:20:13 ah. Quartus just said. c@ 20:20:30 yes, c 20:20:32 @ 20:20:33 that's it 20:21:00 I was remembering b@ :-) 20:24:12 There's no way you're going to get my assistance if I have to disarm you every time I point out a problem. 20:24:18 'c' for character 20:24:28 not at all. I appreciate the help/feedback. 20:26:21 Beyond the endian problem, and the alignment problem, it reads past the end of the string for each digit 9 and higher, and it depends on a specific implementation of EMIT that is not guaranteed. 20:26:45 :-) 20:27:12 In broader terms, it is a narrow solution that doesn't need to be narrow. A word like 'digit' is general-purpose and thus a far more useful factor. 20:27:23 explain how it reads past the end of the string for 9 andhigher? 20:27:34 mine were called "hexchar" 20:27:49 @ reads a cell-width, which under Gforth is four chars wide. 20:27:49 your were called digit 20:27:55 c@ 20:28:02 The name is not what I'm referring to specifically. 20:28:16 I am talking about your posted code. 20:28:26 ya, it's old/broken.. I've already updated it to be c@ 20:29:25 I could proably also have done a byte data segment... but that's getting closer and closer to just using 48-57 and 65-72 in the first place.. but the string representation allows you to quickly change the chars... if need be. 20:29:45 i.e. never. 20:29:55 like, in the game i'm writing, I could put CHARSET s" XYZabc123" and if I wanted to change the b to a %, just change it there. that type of idea. 20:30:18 alternatively, those all could be constants, in the game, etc. 20:30:50 And the word would most decidedly no longer be appropriately named 'hexchar'. 20:31:05 well 20:31:11 0123456789ABCDEF 20:31:16 0123456789abcdef 20:31:47 or, if you want to studlify: 20:31:52 0123456789AbcdEf 20:32:07 Good factoring would instead suggest lower-casing the result from 'digit' as required. 20:34:27 Point being, if you want to display special symbols, you won't be doing it by delving into your existing numerical-display routines and buggering with the digit output routine. 20:35:57 I can see that. 20:41:41 Good factoring and good naming go hand in hand. 20:41:51 but it takes a lot of practice. 20:41:58 I think the good naming part will be harder. 20:42:40 Yes. In this case, 'digit' is a useful and necessary factor. 'hexchar' (I hate that name, btw) is a specialization of it. So implement digit, and if you need such a thing as hexchar (which I think you don't, btw), build it on top. So... 20:42:52 : hexchar 15 and digit ; 20:43:25 makes sense. 20:44:07 basechar base 1 - digit ; 20:44:27 It does in terms of factoring, but it further highlights the purposelessness of a word like 'hexchar'. There's no advantage in doing a modulo-16; the only thing it could accomplish is to mask an invalid input. 20:44:46 that was the whole point of it, yes. 20:44:56 it would keep going past the end of the string. 20:45:07 (provided c@, of course) 20:45:27 Not with a 'digit' that isn't based on an unnecessary table-lookup. But beyond that, it doesn't mask it usefully. If you are worried an invalid input may arrive, you'd code an assertion, not a modulo operation. 20:46:35 There's no way you'd ever pass it 19 and be delighted that it returned the character 3. If you're getting invalid input, you have a problem, and you need to know about it. 20:46:54 that was one of my tests,actually. 20:48:58 a word named 'hexchar' (still hate it) would turn a digit in base 16 into a suitable displayable character. That's a simple description. If you have to expand on it and say 'unless the digit is beyond 15, in which case the value is first reduced modulo 16 before conversion is attempted', you've got a bad factor on your hands. 20:49:08 A good factor does one thing. 20:50:45 That's one of the rules of thumb. It should have a name that means what it does, and it should be able to be described in a single, simple statement. 20:51:25 Now, that's not a constraint you're supposed to find loopholes in, so that you can show how clever you are by writing a huge word and then describing it in a seven-hundred word Victor Hugo sentence. 20:51:35 It's a guideline. 20:53:13 Is this going in the book? :) 20:53:22 It is, only with less of an annoyed tone. 20:59:23 if I : page ESC[ ." 2J" 0 0 at-xy ; 20:59:31 page clears the screen and goes to 0,0 20:59:52 if I : cls ESC[ ." 2J" 0 0 at-xy ; 21:00:03 cls clears the screen, but stays at the current cursor position. 21:00:16 see page and see cls .. seem to show 100% the same 21:00:21 Works fine here. 21:00:46 --- join: slava (n=mp@modemcable059.157-37-24.mc.videotron.ca) joined #forth 21:00:46 --- mode: ChanServ set +o slava 21:01:24 hmm. cached cls def. 21:01:26 Quartus: colorforth seems more like a cult than software to me. web site is never updated, uncommented source, jeff fox talking about new colorforth versions which are never released, jeff fox himself, etc. 21:01:28 redefining it worked. 21:02:00 slava, I agree completely. 21:02:13 I stupidly tried to engage Fox in discussion again. 21:02:29 your life experiences are not extraordinary or unique, so do not bother. 21:02:53 Indeed. 21:03:47 programmers with average or above average IQs prefer word names shorter than 5 characters 21:04:04 I can think of a round dozen such names for Fox. 21:04:13 LOL 21:04:53 this laptop is running out of batteries -- i have to shut down. i just felt like popping in after reading the latest c.l.f discussion 21:04:59 --- quit: slava () 21:04:59 rhaaaa 21:05:03 .if ${OSVERSION} < 700000 21:05:03 BROKEN= Does not compile on pointyhat 21:05:03 .endif 21:05:13 gforth does not compile 21:05:16 well stop compiling it on your pointy hat. 21:05:17 who do I kill ? 21:05:23 :) 21:06:52 stas@FreeBSD.org <--- you die :) 21:09:51 --- part: TheBlueWizard left #forth 21:17:43 how do I get glossary information?? is there somethinglike "help word" that is in reva... in gforth? 21:18:34 Gforth's documentation covers both the Standard Forth words (so does the Standard, of course) and its extensions. 21:18:51 but is it in gforth or do I have to use info 21:19:10 You have to use info 21:19:17 k thx 21:19:22 I don't think there's an automated link in Gforth. You could build one. 21:19:35 some files have \G ... 21:20:04 Yeah, but I think the compiler treats that data as comments and throws it away. 21:20:11 yup 21:20:42 Yes. The practice of using \something words for annotation makes me itch all over. 21:20:50 \G is mapped to \ in Gforth. 21:20:55 :-) 21:25:56 Doxygen does roughly the equivalent for C/C++/Java. It works OK for those languages. I haven't done enough pure Forth to have an opinion about similar strategies applied to it. 21:26:16 I like doxygen 21:26:43 Quartus: what would you prefer for annotation? 21:26:57 A poke in the eye with a sharp stick. 21:28:08 I use a COMMENT END-COMMENT notation for literate programming in Forth. Everything between is in a markup language. 21:28:39 I do not think that selected comments should be extracted from the source; the source is a continuous document. 21:29:18 tell us how you really feel 21:29:48 ah 21:30:45 I would tend to agree, given that Forth doesn't have separate declarations and definitions like C/C++. 21:31:11 But I have no experience to back up that posistion. 21:32:03 If necessary, : can be extended to export a glossary line. 21:34:28 My practice is to always have a stack comment immediately following the name, with any required general comments about the word in \ comments in the lines immediately following. 21:35:06 That would be easy to export with an extension to :. If I were building that kind of exported glossary, I'd also want to make the other defining words kick up a line too. 21:37:09 I'd think I'd have to be dealing with a pretty large and unwieldly set of Forth sources to want to generate an index like that. 21:37:30 SwiftForth (and some others) have a LOCATE that takes you to the source text for the specified word. 21:38:36 I just want two things... probably won't get it -- (1) way to stop the scrollage of all the words in gforth.. or list subranges... and (2) a way to get help while inside of gforth. I want to see a new word and get help immediately... etc 21:38:57 can't you scroll backward in your console window? 21:39:20 yes, but I don't like the mouse. 21:39:29 try shift-pgup 21:39:36 and I haven'tlearned the keys to scroll a gnome-term 21:39:43 um, ok. 21:39:54 Perhaps the solution to that is as evident to you as it is to me. 21:40:17 ok, that works. 21:40:18 thanks! 21:40:29 now, open a separate window with the documentation in it. 21:40:30 now for the help part? 21:40:33 :-) 21:40:37 I figured that was coming. 21:41:34 --- quit: tathi ("'night all") 21:41:40 As an exercise, write a word INFO that parses a word, shells out to the info program, and looks up the word in the gforth glossary. 21:42:05 Assuming such a word doesn't already exist. 21:42:26 I found another program I think I want to do.. that's shorter but a good step... a "cal" program that displays the current month and highlights the current day. has some decent things in there, time+date, output formatting, month checks, etc. 21:42:38 (system) ? 21:42:56 ok, I'll do that after cal. 21:43:32 I'm working on a random number generator now. 21:45:36 Look up sh and system in info -> gforth -> Passing Commands to the OS. 21:45:53 trying to nav info now.. trying to figure out what "chars" does. 21:49:44 'info gforth --index-search=SOMEWORD' works remarkably well. 21:49:46 can't findit -- is that a standard word? 21:50:01 Check the Standard. 21:50:50 hmm. that index-search kinda hits the first occurrence -- not alwaysin a glossary etc. 21:51:06 It got the right hit the first time for SH , SYSTEM , C@ and AT-XY for me. 21:51:13 It worked for chars, too. 21:51:23 It placed the cursor incorrectly, but got to the proper page. 21:51:34 (for SH and SYSTEM) 21:51:35 ok, chars is like cells+ ok 21:51:45 I kinda thought that looking how it was used. 21:51:56 cells+ ? 21:52:09 cells 21:52:16 (sizeof) 21:52:33 It's not equivalent to sizeof. 21:57:34 Be careful. Don't be too hasty to bind Forth words to existing concepts from other languages. 21:59:13 werty is annoying 21:59:24 he is really going at it tonight. 21:59:39 who is this guy ? 21:59:43 Some twit. 22:00:12 why does he sticks in c.l.f ? 22:00:31 he has something to do with the forth community ? 22:00:45 He's a self-proclaimed genius who thinks he knows more about Forth than anyone. 22:00:45 He seems to think so. 22:01:16 Quartus: have you seen any of his work ? 22:01:22 He has no work. 22:01:27 Ha! He doesn't produce any. 22:01:47 He's just a mentally-defective idiot who posts a lot of incoherent messages. 22:01:52 yes 22:02:02 That's the whole story. 22:02:14 Two words: kill file 22:02:16 He posts them in certain other groups, too. 22:02:32 TreyB: yes I just did this 22:18:25 I can't figure out how to get fortth to take the next word... like see 22:18:28 too complicated 22:18:45 what have you tried? 22:18:51 see see 22:18:53 see parse-word 22:18:54 see source 22:19:06 see perform 22:19:31 Does this mean you finished 'cal'? 22:19:59 no... I wanted to try to get help to work inside of forth 22:20:08 it's too annoying to jump all over to try to get info on forth words 22:20:11 --- quit: ayrnieu (Connection timed out) 22:20:16 I wrote it when tathi discussed it earlier. 22:20:24 but, I figure the info jump from inside forth probably won't work anywy. 22:20:30 Works fine. 22:20:36 I didn't see any discusion until 30 secnds ago 22:20:43 im sure it works for you 22:20:44 I'm happy 22:20:52 oh, I mean TreyB. 22:21:07 :-) 22:21:21 absentia, I didn't say 'Works fine' as some kind of assault on you. I'm telling you it works fine in response to you saying you figure it won't work. 22:21:23 : se parse-word bl word count type ; ok 22:21:26 if I do 22:21:31 You get one more shot at not being an ass when asking for help. 22:21:31 se hello 22:21:47 then type .. I get "eelo" 22:21:52 er, "eello" 22:22:14 well, it will run a full page info, which will destroy my screen. 22:22:20 it's not like "help word" in reva 22:22:47 Here the Forth screen is completely restored after info quits. I don't know how it will behave on your specific setup. 22:22:59 you in xterm ? 22:23:06 I'm in win32 right now. 22:23:11 ah 22:23:34 well, the issue I have is.. I can't seem to get a next work without using "refill" which doesn't take the next word on the line 22:23:51 once I have that, I don't know how to send that to sh 22:24:34 I have a working solution here. Would you like to see it, or would you rather just get some assistance in the right direction so you can learn it yourself? 22:24:55 nope.. gimme a sec. 22:25:00 I'm giving up on that method. 22:25:03 wasted an hour on it 22:25:24 It's only been a half an hour since it came up. 22:25:47 : help sh s" info gforth --index-search" ; 22:25:53 but that destroys my screen. 22:26:06 and doesn't launch info. 22:26:16 did for me 22:26:51 it will launch s" 22:27:09 ya, didn't the second time... wonder what I changed 22:27:22 It's broken. 22:28:45 actually it won't even launch s". It's rilly rilly broken. sh is meant for interactive use, it parses when it runs. 22:30:30 system is what you want, not sh. 22:31:53 this is too advanced. 22:31:56 it's not worth it 22:32:22 It's not advanced. It's very likely you think it's a) quite different and b) far more complex than it actually is. 22:35:06 Both of those are significant obstacles. 22:35:30 If you like, I'll post my version. 22:35:33 sure 22:36:09 http://forth.pastebin.ca/295263 22:37:30 To use it -- info 2swap 22:37:32 ya, not a chance i'd get even close to that 22:37:33 or whatever 22:37:33 too advanced. 22:38:03 ok. So you expect to not have to actually learn any of the words, and just flail about and produce working code on the first effort? 22:38:18 naw 22:38:42 baby steps... simple things repeated. 22:38:45 That code is quite simple. It appends two strings, one static, one parsed, and passes the result to system. 22:38:55 ya, I can read it. 22:39:04 ya. 22:39:09 can't think it 22:39:51 I suspect you're trying to bind the Forth concepts to notions you already have about programming. That will present yet another significant obstacle. 22:40:33 not really. 22:40:45 (not the obstacle, the binding) 22:40:55 G 22:40:58 Ooops 22:41:12 G'night, all. Have a safe holiday weekend. 22:41:17 Thanks, you too! 22:41:25 night 22:42:00 Let's go back for a second to : help sh s" info gforth --index-search" ; 22:42:18 sh is the wrong word, so replace that with system. But then it's still broken. Let's have a look: : help system s" info gforth --index-search" ; 22:42:39 ya, it's the parsing that threw me. 22:42:46 the first thing help does is call system, which expects a string on the stack. There isn't one, that's problem one. After that, you're placing a static string on the stack. 22:42:57 the parse-word got too deep... I think I was missing a param so it chomped a char 22:43:00 So to call "info gforth" -- : help s" info gforth" system ; 22:43:42 ok, here's something new to me... 22:43:55 My code is a simple expansion on that. 22:45:49 ...? 22:45:57 trying to make a pastable eample 22:46:02 unless you want it here in the chan 22:46:07 pressed the wrong button :) 22:46:17 If it's short. 22:46:23 i'm making it longer. 22:46:27 I'll pastebin' 22:55:02 hmm 22:55:15 ETA? Hour, two hours maybe? 22:55:27 :-) 22:55:47 pasting 22:56:36 http://forth.pastebin.ca/295277 22:57:22 ok, what is that, what is it supposed to illustrate, and what is your question about it? 22:57:40 just playing with the wordsize. 22:58:00 wordsize? 22:58:35 well, first is 4 bytes per... second is 1 byte per. just thinking of making a lookup table for days of the month. 22:59:02 The first is one cell per value, which happens to be 4 in Gforth. 3 cells would be much better code than 4 3 * 22:59:30 I tried that 22:59:33 it didn't give me the resole 22:59:56 Try it again, please, as it works. 23:00:06 md1 3 cells + . 23:00:14 You removed the @. 23:00:21 + @ . 23:00:24 Right. 23:00:36 I typed that, not pasted it.. I did it right in the forth. 23:00:45 I did too. Returns 15. 23:01:02 y 23:01:13 is that an accidental keypress, or do you mean 'yes'? 23:01:18 yes 23:01:22 grr 23:02:18 If I tell you something is a preferred working alternative, at this stage of your learning you can be reasonably assured that I'm right, and that I've tested it already before telling you. 23:02:19 I meant yes 23:02:29 yup. I'm taking notes. 23:02:40 I tried cells.. I thought it was like base.. .though. 23:02:47 so my usage was wrong. 23:03:00 --- part: jeremy_c left #forth 23:03:15 which makes sense now why my negative number changed to a random number :-) 23:03:20 Ok. Just so you know, these "try this" "I tried that, it doesn't work" "yes it does" "oh so it does" conversations are no fun. 23:03:37 ok 23:04:29 Quartus: do you prefer "xxx in Canada sux" type conversations ? :) 23:04:46 nighty, hard to decide which is the lesser evil. :) 23:04:49 Quartus: because I've got no more of these in stock :) 23:05:13 nighty, don't worry, I have a supply of 'xxx in France sux' that I was too kind to unleash on you, so if we ever get desperate enough for conversation, I'm ready. 23:05:14 :) 23:05:36 Quartus: neat :) go ahead 23:05:46 no, it's for emergency use only. :) 23:05:48 Quartus: I was getting bored :) 23:05:58 Quartus: and it snows 23:06:07 it's snowing now? 23:06:10 yes 23:06:17 about time. 23:06:21 yep 23:06:32 though I don't think it will hold on the wet ground 23:06:42 Likely not. 23:09:06 Well i have the Thinking Forth book 23:09:14 I think I am going to read it again 23:09:21 The updated one from the website? 23:09:26 yes 23:09:36 A good book. Still a bit dated, but some useful and interesting stuff. 23:11:18 well it is too bad there is no current book on forth 23:11:23 I'm working on one. 23:11:29 Nice 23:11:38 And there are some. Forth, Inc. makes a couple. Pelc has a free one up on his website. 23:11:46 who is your publisher ? 23:11:54 just a online book ? 23:12:02 I don't have a publisher yet. Pelc's book is in PDF form. 23:12:39 O'reilly would publish ? 23:12:53 Maybe not , too restricted an audience maybe ? 23:13:02 I haven't started seeking a publisher yet. I don't know if O'reilly would be the best choice. Maybe. 23:14:08 Will it be for beginners also ? 23:14:11 like me ? 23:15:01 Are you a beginner? I'm working on it being accessible to newcomers to Forth, yes. 23:15:13 Yes in forth I am a beginner 23:15:24 a n00b 23:15:39 in other languages like C or other 23:15:41 I am not 23:15:48 Well, there are newcomers to Forth, and newcomers to programming in general. Both camps present challenges. 23:16:05 I see 23:17:01 You have to teach fundamental programming concepts to the newcomers to programming, and unteach sometimes tightly-held concepts to the newcomers to Forth. 23:17:29 Yes I think I am having the latter problem 23:18:02 Like baby chickens many programmers bond with their first languages. :) 23:18:40 I perceive forth's extraordinary strength 23:18:51 but it is more of a gut feeling 23:19:07 than one based on actual knowledge 23:19:16 I recommend the actual knowledge. You need to practice. 23:19:30 Yes... 23:19:49 I am trying hard to make it so I can be authorized to use it at work 23:20:05 but first I need to be a little bit fluent in it 23:21:27 the problem being that people do not know forth or about forth 23:21:49 so when you mention it , they ask , why can't this be done in C ? 23:22:32 and really so far I have not found a good argument against this question 23:23:06 Any given task can be accomplished in many different programming languages. 23:24:02 A good Forth programmer writes better code faster, with greater confidence in its soundness and correctness-of-fit to the specific application domain. 23:25:04 Forth is also interactive and reflective, and can thus provide direct interactive control over hardware. 23:26:18 The interactivity allows easy exploration of different solutions, going back to the correctness-of-fit. 23:26:51 Forth is a natural for test-driven design, which goes back to the greater confidence in the soundness of the resulting code. 23:27:40 --- join: ayrnieu (n=julian@pdpc/supporter/sustaining/ayrnieu) joined #forth 23:27:50 Once an sound application-specific lexicon is built up, its components can be used in combination, providing the kind of flexibility and strength you find in Unix, where commands can be combined in various ways. 23:31:13 Perhaps that helps? 23:33:24 Elizabeth Rather from Forth, Inc. has much to say about C vs. Forth, as her company has been on both ends of the equation -- to replace a floundering C app, and having a working Forth solution replaced by a C-centric management decision, with the problems that resulted from that. 23:35:13 Anecdotally, Forth is a much more powerful development tool than C -- I support that too. I'm not aware that any specific studies have been done, however. 23:35:48 Yes 23:59:59 --- log: ended forth/06.12.28