00:00:00 --- log: started forth/06.12.29 03:00:52 --- quit: ellisway (Read error: 104 (Connection reset by peer)) 03:22:36 --- quit: JasonWoof ("off to bed at last") 03:25:18 --- quit: ayrnieu (Read error: 110 (Connection timed out)) 03:31:34 Hey, who woke me? 04:01:56 --- join: Cheery (n=Cheery@a81-197-54-146.elisa-laajakaista.fi) joined #forth 04:19:40 --- join: zpg (n=user@81-178-215-184.dsl.pipex.com) joined #forth 04:26:31 Greetings. 05:00:01 --- join: ellisway (n=ellis@host-87-74-241-174.bulldogdsl.com) joined #forth 05:09:20 --- join: ASau (n=user@62.118.220.74) joined #forth 05:12:54 hi ASau, ellisway 05:13:48 Good afternoon, zpg. 05:36:24 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 05:36:24 --- mode: ChanServ set +o tathi 05:37:49 hi tathi 05:42:48 hi zpg 05:44:29 --- join: timlarson_ (n=timlarso@65.116.199.19) joined #forth 06:04:47 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 06:16:30 --- join: vatic (n=chatzill@ool-45740b1c.dyn.optonline.net) joined #forth 06:42:33 --- quit: vatic ("*poof*") 07:04:12 --- part: ASau left #forth 07:19:49 --- quit: TreyB (Read error: 60 (Operation timed out)) 07:41:03 --- join: TreyB (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 08:21:03 --- quit: zpg ("ERC Version 5.1.3 (IRC client for Emacs)") 08:52:48 --- quit: virl (Remote closed the connection) 09:18:48 uhmmm 09:19:16 hi nighty_ 09:19:21 hey 09:19:31 hi 09:19:34 --- join: snowrichard (n=richard@12.18.108.162) joined #forth 09:25:48 hello 09:26:05 hey 09:26:32 Kind of a sad christmas here, my ex-wife died the 26th DEC 09:26:39 Sorry to hear! 09:30:23 --- join: jackokring (n=jackokri@static-195-248-105-144.adsl.hotchilli.net) joined #forth 09:36:38 sorry to hear it.... 10:29:01 --- join: ASau (n=user@home-pool-173-2.com2com.ru) joined #forth 10:29:10 Good evening, all! 10:32:12 hi ASau 10:55:33 What about CFAN? 10:55:58 I've got free time till 10'th January 10:56:07 Winter holidays here 10:56:32 Of course, I can't devote all these to Forth, but... 11:00:54 --- quit: jackokring (Read error: 110 (Connection timed out)) 11:04:49 --- join: Quartus_ (n=Quartus_@209.167.5.2) joined #forth 11:04:49 --- mode: ChanServ set +o Quartus_ 11:09:00 `utime' - dtime gforth ``utime'' 11:09:01 Report the current time in microseconds since some epoch. 11:09:27 so I "utime" -- in gforth -- and .s --> .s <2> 347409182 271811 ok 11:09:44 why 2 items on the stack ? 11:09:55 double-cell value 11:10:23 use ud. to display it 11:10:30 through "- dtime" was a stack comment . 11:10:49 "d" is conventional prefix for double cells. 11:11:11 ah. makes sense. I saw them used as individuals -- but not as a prefix,etc. 11:13:51 this is still confusing to me... I can d.r, ud. d. -- but how do I get the value? there's no d@? 11:14:02 get the value? from where? 11:14:11 If you want to read a two-cell value from memory, it's 2@ 11:14:29 I looked for that... strange. 11:14:38 ah. ok thanks. 11:14:39 but after utime, the value is right on the stack. 11:15:02 I get 2 values, and they aren't the same as I get wuth ud. or * 11:15:29 They're two cell values. The high-order one is on top, the low-order one is under it. What does * have to do with it? 11:15:47 I was taking a guess at that those values were... before. 11:16:00 They're the low and high cells of a double-cell value. 11:16:16 2@ says invalid mem, @ says invalid mem 11:16:36 Ok. Stop for a second. 2@ is for reading a 2-cell value from an address in memory. 11:16:41 I want the number that I get back when I use ud. 11:16:50 The number is in the two cells on top of the stack. 11:17:22 123 456 d. 1958505087099 ok 11:17:22 1958505087099. .s <2> 123 456 ok 11:17:41 ? 11:18:06 347409182 271811 d. -> 1167419703102238 11:18:33 1167419703102238. .s -> <2> 347409182 271811 11:18:50 It is the same value, represented in two cells on the stack. 11:18:56 ok 11:19:05 time for champagne at work -- this will certainly help. 11:19:08 (thanks for the help) 11:27:40 --- quit: tathi ("bbl") 11:29:37 --- join: frunobulax (n=anonym@f233149.upc-f.chello.nl) joined #forth 11:39:17 --- join: JasonWoof (n=jason@c-71-192-26-248.hsd1.ma.comcast.net) joined #forth 11:39:18 --- mode: ChanServ set +o JasonWoof 11:42:25 Hey J 11:47:26 ok, monday is a holiday. yay! 11:47:59 And tuesday is a holiday! 11:49:41 --- join: arke_ (n=chris@pD9E05E45.dip.t-dialin.net) joined #forth 11:51:40 Good evening, Chris! 11:52:10 --- quit: arke (Nick collision from services.) 11:52:11 --- nick: arke_ -> arke 11:52:15 --- mode: ChanServ set +o arke 11:52:27 is tuesday? 11:52:41 And wednesday too. 11:52:50 lucky. 11:53:52 After we've got this Rozhdestvo as state holiday, 11:53:52 everything went upside down. 11:54:24 January 1-2 are holidays, New Year. 11:54:58 Dec. 31 is short workday, alright. 11:55:19 Jan. 7-8 are holidays, 6th is short. 11:55:58 for a to-upper -- what would you say in terms of general design: make a cosntant char a char A - constant UPPER_DISTANCE and into-upper, check if param_char is within a to z and add upper_distance -- or just cut to the chase and "32 and" ? 11:56:20 er, 32 or 11:56:55 There's no general design in ``>upper''. 11:57:30 just asking... I tend to like to make the constant, check and add... but 32 or is faster. 11:57:38 (dirty, etc) 11:57:58 Do whatever way you like it. 11:58:09 :-) 12:04:20 toupper should only uppercase letters. 12:04:51 and pass other characters unchanged. 12:09:24 in other words, it returns the uppercase version of any symbol, but in the required character set they only exist for a-z. 12:26:25 Not only for a-z, but for ae, oe, ue, ss, and others too. 12:31:14 mine is only gonna do a-z 12:31:28 Slacker. 12:31:34 :-< 12:45:17 --- quit: arke (Read error: 104 (Connection reset by peer)) 12:49:19 --- join: arke (n=chris@pD9E05E45.dip.t-dialin.net) joined #forth 12:49:20 --- mode: ChanServ set +o arke 12:58:14 the required character set doesn't have any symbols to uppercase besides a-z. 13:06:02 --- quit: timlarson_ ("Leaving") 13:16:25 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 13:16:25 --- mode: ChanServ set +o tathi 13:31:43 re 13:33:07 hey 13:33:11 what's up ? 13:33:51 Not too much, you? 13:36:56 just got home.. .form work. 13:36:59 finally eating lunch. 13:37:06 and, would you believe, progarmming forth :-) 13:37:59 hey whaddaya know, me too. :) 13:46:46 --- quit: ellisway (Read error: 113 (No route to host)) 14:26:30 --- quit: snowrichard (Remote closed the connection) 14:36:09 what's the fasted wait to set the stack to empty? 14:41:29 in retro, 'reset' works. I'm not sure of the proper way to do it in an ANS Forth system 14:41:37 ya... I saw reset 14:41:47 I used "exit" ... to cause an error... but it's messy... :-) 14:42:04 I guess I could make a dropall 14:42:07 alldrop? 14:42:21 reset-stack 14:42:29 I thought there might have been a statment like 0. or soemthing. 14:42:45 notdef 14:45:28 it's a pretty trivial task 14:48:50 yup.. that's about my level. 14:49:02 KISS -- Keep It Simple, Scott. 14:58:30 aslijdhgnvapihdpcfhvyspo is the fastest. 14:58:46 scott? 14:59:34 if you're going to try to make the KISS acronym nicer, why not also make it more sensical 14:59:58 --- join: I440r (n=mark4@70.102.202.162) joined #forth 14:59:59 like Keep It Simple and Straightforward 15:00:23 but, I guess then you run the danger of it looking like the kiss-ass principle :) 15:01:33 they use that one more :) 15:06:09 : fclear fdepth 0 ?do fdrop loop ; ( assuming gforth ) 15:08:03 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 15:08:16 cant you just do rp0 @ rp! ? 15:08:23 erm sp0 @ sp! even 15:08:28 or maybe sp0 sp! 15:08:41 oh this is for the floating point stack? 15:08:46 fp0 @ fp! ? 15:08:58 maybe no fetch. i dont use gforth (ick :) 15:09:32 sp0 @ sp! does work on gforth 15:10:22 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 15:11:23 hi crc 15:12:08 hi virl 15:16:11 keep it simple and straightforward? kiss a55 ? 15:16:16 I just personalized it. 15:27:47 what is the general use of values vs variables? 15:27:54 in terms of style. 15:29:14 I use variables/data structures when they make the code cleaner 15:29:44 I have something called "delay" ... I can make it a variable or a value ... 15:29:51 delay @ ms 15:29:55 or dalay ms 15:29:55 ? 15:30:09 I avoud VALUE/TO as a rule. 15:30:14 avoid 15:30:19 ok 15:30:25 why? 15:30:36 Matter of preferance? 15:30:48 I make use of constants, but not values 15:30:48 or is there a deaper reason? 15:30:51 hard to quantify. Not forth-like, is the facile answer. 15:30:58 I see. 15:31:03 seemed hackish to me too 15:31:25 I've never found need for it. Is there a true need? 15:31:58 not really. just the difference between "delay @ ms" and "delay ms" 15:32:16 in terms of the code -- not really sure how the ramification are underneath the hood 15:32:29 Is it for variables with default starting values? 15:32:35 wrap delay @ ms in an appropriately-named factor. Abstract. 15:32:58 it's something that's unlikely to change often in my prog -- may not change at all.. but *could* 15:33:50 that's not relevant to whether it should be factored. 15:34:21 factoring wasn't my question. 15:35:23 what was it? 15:35:41 just asking about convention for use of "value" ... 15:36:11 like const correctness in c++ 15:36:21 Sorry, I may have confused the issue. 15:36:46 the underlying transfer between variable and stack is really irrelevant. In your delay @ ms example, it should be abstracted away in a factor, at which point it's moot. 15:36:57 ok 15:37:22 * Raystm2 goes out to try to find a rational for VALUE/TO 15:37:43 unless the named value *is* the abstraction, which is rare and unnecessary. 15:38:27 im sure my code could be factored 10x ... I'm mostly just trying to familiarize myself with different things in forth -- so I have a few constants, a few values, a few variables, etc. 15:39:08 named constants are good. Try to avoid parameter-passing via varianles; that's what the stack is for. 15:40:04 I never liked the TO thing 15:40:56 it involves special compilation semantics, and forward-parsing or special channels, and it's clanky. 15:41:11 I figure if you really want to not have to call @ all the time, then my prefered solution would be to make a creating word that would create two words. one that would fetch the value and one that would set it 15:41:30 so you do: auto-var: foo 15:41:31 jason, exactly. Abstract the interface. 15:41:36 and it creates the words "foo" and ">foo" 15:41:45 : foo++ foo 1+ >foo ; 15:42:26 it's not that I mind abstracting the interfac, it's that I don't like the syntax "to foo" 15:42:41 it breaks the left-to-right reading style that I like so much 15:42:51 agreed 15:43:02 I know there has to be exceptions, but this is a case where it definitely does not have to be an exception 15:43:47 it's a general-purpose solution to a problem that differs in each specific instance. 15:44:03 the odd thing to me, is that I had a relatively hard time figuring out how to create a new word (much like CREATE does) from a name I have in memory somewhere rather than reading it from the source code 15:44:44 --- join: Al2O3 (n=Al2O3@pool-71-164-165-172.dllstx.fios.verizon.net) joined #forth 15:45:02 Not sure I follow 15:45:14 I eventually figured out how to do it in gforth: 15:45:15 : stack-create header, reveal dovar: cfa, ; ( addr u -- ) like CREATE but takes the name off the stack 15:45:42 oh, ok. 15:45:51 --- join: ellisway (n=ellis@host-87-74-241-174.bulldogdsl.com) joined #forth 15:46:14 sure, copy CREATE without the parsing. 15:46:44 right. 15:46:56 I assumed that when I did SEE CREATE it would say something like: 15:47:02 there's another portable approach. 15:47:09 : create bl parse stack-create ; 15:47:19 but noooo 15:47:29 it's a bit fiunkier 15:47:34 yeah? 15:47:36 -i 15:48:03 yes... Build a string and EVALUATE. 15:48:10 feh 15:48:26 works, portably, if that should matter. 15:48:45 that's cool, but at this point I've kinda given up on that 15:49:02 I just factor out my gforth specific stuff and mark it as such 15:49:24 just saying, not that it necessarily applies to your current effort. 15:49:39 \ announce Forth implementation-specific statements 15:49:39 : GFORTH-SPECIFIC ; immediate 15:49:51 yeah, that's a good point 15:50:10 it just doesn't apply, as you say 15:50:25 If I port this, it'll be to fronds, which doesn't parse at compile time 15:50:34 I see 15:50:50 so you can't create two words at once 15:51:08 creating two words at once would probably confuse the dependancy compiler too 15:51:34 is there any good code out there for implementing a dynamically allocated hash for gforth? 15:51:49 I want something that will store key/value pairs 15:51:52 with string keys 15:52:13 and I don't feel like writing it right now 15:52:40 I have a small associative array implementation, but it's back home. Linked-list based. 15:53:07 I don't think I'll be putting enough pairs in for it to matter how the search works 15:53:27 Works. Nodes are dynamically allocated. 15:53:33 I'll need to be able to put it in a GPL project though 15:53:52 I won't sue you. 15:53:58 :) 15:54:30 anyway you could make it yours readily enough; it's really straightforward. 15:54:41 The oldest shootout has exactly that: hashed key/value pairs. It should be in gforth, they ran that code too. 15:55:18 yeah, I could just write my own 15:55:27 I just decided I wanted such 15:55:56 happy to share it, but can't for a while, as I'm out. 15:57:08 I won't be home for a while either 15:57:14 ok. 15:57:37 it takes string pairs, but of course the strings can be any data. 15:57:44 right 15:57:56 I'd want them counted 15:58:15 by "strings" in this case we mean variable-length data 15:58:31 this implementation isn't, but you could leave the length parts zero. 15:58:47 anyway perhaps you can make some use of it. 15:59:11 I don't mean that you can change the length of it 15:59:19 I mean that a string is some data that can be any length 15:59:23 as it stands each node points to two pairs, each of which is a c-addr and len. 15:59:24 (up to some reasonably max) 15:59:34 cool 15:59:59 and there are find, delete, add, iterate operations. 15:59:59 I did some sort of linked list in my cgi stuff 16:00:07 :) 16:00:10 that's the parts I don't have 16:00:19 I just have something that adds to the end and a search 16:00:22 no delete 16:00:54 I believe the delete just zeroes the node, rather than going to the trouble of delinking and freeing. 16:01:08 oh 16:01:09 I'd have to look. I wrote it a while back. 16:01:28 of course you could as easily delink and free. 16:01:34 I _think_ what I want is some sort of dynamic string handling stuff 16:01:53 so I can write little "filters" that read in text, and output the modified version 16:02:16 and be able to use those filters to modify existing strings 16:02:18 so you're re-writing awk in forth? :) 16:02:25 heh 16:02:58 the trouble is I don't know how I want to deal with memory management 16:03:06 guess I need a clear goal before I code anything at all 16:03:27 helps. 16:03:44 or at least an approximate goal. 16:04:02 I just remember that the cgi stuff that I did in forth was clumsy 16:04:19 and I'm trying to figure out what I need to add so it's easy to code such things 16:04:43 that comes out of actually doing it, for me. 16:05:04 yeah, I wouldn't have a clue what to do if I hadn't used it a little 16:05:18 I don't decide in advance what I need, write that, and then use that to build. I generally go at it from the other side. 16:05:21 guess I'll have to do another page with the code I have now, and get really into the problem 16:05:36 yeah, that's the way to go 16:05:47 I get in trouble when I try to build the tools I think I'll need 16:05:55 I often find that they aren't the right tools 16:06:04 I start with a blank page, and climb the mountains as they arise. 16:07:41 I build the assoc stuff as an example implementation for my list code. 16:07:48 built, rather 16:08:21 then I used the assoc stuff to build a demo for a sorting module. All for the book. 16:08:32 cool 16:09:04 I should really get my forth finished 16:09:09 to the point where I can write aps with it 16:09:10 apps 16:09:46 the proof of the pudding is in the eating, as they say. 16:10:06 :) 16:10:27 I have this idea in my head that I hate writing interfaces 16:10:31 so I'm putting it off like crazy 16:10:38 ui? 16:10:43 y 16:11:12 my editor interface is more than half-way functional 16:11:27 I've just gotta make it so you can edit :) 16:11:42 currently you can browse, search, and delete 16:11:45 but you cannot type 16:11:50 or alter meta-data 16:12:05 or add or remove definitions 16:12:06 Maybe that's for the best. :) 16:12:15 no 16:12:21 No one can screw with your code. 16:12:25 inot since qb45 have I used a programming language that was bound to a development environment. Actually qb45 wasn't, you coud edit externally :) 16:12:29 it would be best to finish these so I can stop coding it in herkforth 16:12:35 and go native 16:12:45 I really like it when my forth can sustain its own development 16:13:13 Raystm2: I want people to be able to screw with my code 16:13:15 Well, it always could. You're just working on convenience. 16:13:16 Raystm2: especially me 16:13:34 I know that. Take a joke already. 16:13:56 no, I'm talking about my new forth Fronds 16:14:05 I wrote a cross-compiler in herkforth for it 16:14:06 I knew that as well. 16:14:10 and that. 16:14:23 tho i've not tried or even asked to see it yet. 16:14:26 I'm fairly close to the point where I can ditch herkforth and just work in Fronds 16:14:46 that will be nice 16:14:51 testing will be more immediate 16:15:01 Not that I don't wanna see it, cuz I do, but if I add one more forth... 16:15:03 and I can leave out the extra garbage for the cross-compiler 16:15:22 and I won't have to get the definitions in the right order, which is something I've been looking forward to for a long time 16:15:51 Raystm2: is it too late for me to be the fourth forth? 16:16:19 Raystm2: don't worry, when I have a nice demo I'll make you try it. 16:16:22 fourth? I musta looked at 30 or more. 16:16:51 ok, time for me to pack up. I'll catch you from home when I get there. 16:16:58 Safe trip. 16:17:12 1.2 hours maybe 16:17:15 * JasonWoof waves 16:17:29 ` 16:17:32 oops 16:17:33 ~ 16:18:13 question: is it (1) addr top bottom do dup i + XXX loop --OR-- (1) top bottom do addr i + XXX loop ??? does it matter? (ie: is that a lookup of addr or is it compiled in, since it doens't change -- and if so, then is the dup actually worse? 16:18:16 ) 16:19:26 --- quit: frunobulax ("a quit that actually quits") 16:21:06 absentia: if I hazzard an opinion... 16:21:15 I'm having trouble unpacking your question. 16:22:04 Of course in the first one you need a drop after loop, but that first one will work for unknown values of address, where as two is a hardcoded address and works specifically on that address. 16:23:36 sorry, I used (1) twice.. the second was supposed to be(2) ... ya, the first you can pass the addr.. but you have to dup it and then after loop drop it.. .that seems to be inline with that I see -- in example codes. 16:24:59 I'm having a hell of a time trrying to initialize a char array to all blanks :-< create ca W H * char allot ... then trying to W H * 0 do ca i chars bl c! loop -- gives me invalid memory address 16:25:01 BUT one requires that every pass you leave addr on the top of stack. 16:25:33 so if your puting values on the stack, the last stack operation before loop needs to end with the addr back on top. 16:25:33 right -- but most things in forth examples that i've seen seem to operate that way -- 16:25:44 and quartus also said don't use vars for value passing, use the stack 16:26:17 no, just trying to init a char array 16:26:31 with addr the addr of the char array 16:36:51 I guess I could iuse fill :-> 16:37:05 (since I couldn't get mineto work) 16:38:12 hmmm. that failed too. :-) 16:57:25 create foo 80 chars allot foo 80 chars bl fill 16:58:03 I use uwed W H * instead of 80. 16:59:20 yes, why use whole words when cryptic random sequences and single letters are available? 16:59:44 in the code, I have the full words... here I just the letters because the eaning is clear 17:00:14 I think you mean 'the eaning is lear', or perhaps 'the M is C' 17:00:22 :-) 17:00:58 c constant m 17:04:06 --- join: frunobulax (n=anonym@f233149.upc-f.chello.nl) joined #forth 17:07:03 --- quit: frunobulax (Client Quit) 17:49:39 fill is probably best 17:49:57 also, it's silly to calculate the address of the byte you're trying to clear each iteration through the loop 17:50:24 if you're going to use the fancy do/loop construct that can loop from any value to any other, why not loop from the begining address to the final? 17:51:28 ie: array length over + do bl i ! loop 17:52:11 better yet, factor it out: 17:53:19 : bl-allot ( length -- ) here over bl fill allot ; 17:53:54 that seems best to me, but if you must use a loop you could do: 17:54:06 : bl-allot ( length -- ) 0 do 0 c, loop ; 17:54:16 oops, right you wanted bl not zero 17:54:19 : bl-allot ( length -- ) 0 do bl c, loop ; 18:03:32 man, my mind can wander 18:03:43 I just invented an object system 18:03:56 I don't even want objects 18:19:38 --- quit: nighty (Remote closed the connection) 18:21:49 --- join: nighty (n=nighty@sushi.rural-networks.com) joined #forth 18:36:14 --- join: TheBlueWizard (i=TheBlueW@ts001d0801.wdc-dc.xod.concentric.net) joined #forth 18:47:12 I didn't know about fill... I just ran across it... now it uses fill 18:47:13 :-> 18:50:54 Just another Worlds Greatest Systems Programmer!!! here, reminding you... Only you can prevent Forthist fires. 18:53:52 And now back to our show, Claude Rains, Jon-Claude van Dam, Claudia Shiffer, and Happy the wonder dog in the Penny Marshall Classic, "Yes I really do shop at K-mart". 18:55:55 * absentia just got done with dinner -- and is coding again. 18:56:00 Cool. 18:56:13 just playing with chars in mem 18:56:20 * Raystm2 just got done with codeing and is surfing a bit, like the news and stuff. 18:56:27 cool. 18:59:00 actually, i'm realizing that I keep moving in the very same channels, over and over again in greater and greater and more complex loops. Rut if you will. 18:59:16 tv? 19:00:00 same life channels, same web channels, ya same tv channels, irc, programming languages, music styles, 19:00:19 Certainly i've not defined my likes and shun the rest? 19:01:36 I suppose we go thru life catagorizing things and maximizing... what? Comfort? 19:01:47 Waste certainly. 19:07:50 I can't sem to get this char array stuff 19:07:50 :-< 19:07:58 all I ever get is invalid memory address 19:11:58 create board WIDTH HEIGHT * chars allot ... then I can't see to do diddly :-< board 3 chars c@ = error, board 3 chars 65 c! --> error 19:12:55 even copying the code from gforth info ... for "array" the stuff at the bottom -- gives me invalid memory address. 19:13:20 something' funky. 19:13:23 did you try to add numbers, like this: board 3 chars + c@ 19:13:23 --- quit: cmeme ("Client terminated by server") 19:13:34 yes 19:13:47 * TheBlueWizard is not experienced in gforth 19:14:01 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 19:14:06 well, stuff from the info page -- gives an error. 19:17:22 * absentia is getting quite frustrated 19:19:23 Take it in smaller steps. 19:19:35 smaller steps? the code from the info page doesnt work. 19:19:43 What code specifically? 19:21:10 CREATE text-buf 80 chars allot ok 19:21:29 text-buf 0 chars c@ \ the 1st character (offset 0) 19:21:29 *the terminal*:2: Invalid memory address 19:21:29 text-buf 0 chars c@ \ the 1st character (offset 0) 19:21:29 ^^ 19:21:38 any c@ or c! gives invalid memory address 19:21:39 text-buf 0 chars + c@ 19:21:44 sme error 19:21:52 no. you are missing the + 19:22:08 I told you about trying to add the numbers... 19:22:13 (first, that's not in the info page) ... second... I did try that. I'll do it again. 19:22:17 What info page? 19:22:30 array 19:22:57 the index search doesn't turn up anything for 'array'. 19:23:20 node CREATE 19:24:04 The only reference I can find for CREATE is just a stack diagram. 19:24:13 I wonder if mine somehow is old? 19:24:50 This manual is for Gforth (version 0.6.2, August 25, 2003), a fast and 19:25:07 matches the version I'm running 19:25:20 Looking again 19:26:10 I think my stack need swap for c! 19:26:10 Found it. Looks like the + is missing from there too. Maybe it was eaten in the info typesetting. 19:26:16 probably. 19:26:38 but I did try it with the + -- but I think what happens is that I needed swap -- so even with the + -- I was getting invalid address... gimme sec. 19:27:21 you don't need swap. + is commutative. 19:27:29 no, I think I have addr c 19:27:32 Ineed c addr 19:27:44 No, you don't. Not for +. 19:27:53 I was copying what I saw in another program, didn't look up the doc. 19:27:55 for c! 19:28:36 Quartus: I think he's talking about code he didn't post 19:28:45 ok. 19:30:04 you guys ready for the new year? 19:30:13 what do you guys do (for work)? 19:38:22 absentia: i'm a salesman for an industrial supplier. We do materials handling devices. 19:38:43 do you like the job? 19:38:46 Quartus: you planning to tell the gforth guys about the missing + in the docs? 19:38:47 * Raystm2 watching an episode of Connections on the web. 19:38:49 if not, I'll do it 19:38:57 absentia: I absolutely hate it. 19:38:57 tathi, go ahead; I'd have to dig up a contact address. 19:39:03 :-< 19:40:18 t/q: ya, what happened is that I did the + (I sort of assumed that I needed to do that...) but then I had the stack "swap"ped for what c! required. so it didn't make a difference if I did th + or not... since that address was never used anyway -- it was being masked 19:40:54 Well, think about what's happening. The CREATEd word places an address on the stack; you need to add an offset to it to get an appropriate address. 19:41:31 ya... I was looking at the stack between each command, it looked starnge to see a mem address and an index... sort of like what you'd see for "type" 19:41:48 I didn't think it logically made sense for c! to do a + on that.. and then assignment. 19:42:20 --- join: I440r_ (n=mark4@ip70-162-111-107.ph.ph.cox.net) joined #forth 19:42:32 tbw! 19:42:34 hiya I440r_ 19:42:36 Conventionally you wouldn't directly manage an array like this. You'd abstract the interface. 19:42:36 :) 19:42:37 :) 19:42:54 whassup, I440r_? 19:43:35 not much, working in arid-zona :) 19:43:42 tho its not so hot right now :) 19:43:44 hehe 19:44:06 q: I'll abstract the hell out of it, now that I have c@ and c! working! :-> can't abstract something when create b 1 chars allot b 0 chars + bl c! \ was getting an error... needed bw swap c! (or just constrcut it swapped) 19:44:14 just bought a whites dfx metal detector too. might go searching for the lost duchmans gold mine 19:44:20 its arround here somewhere :))) 19:45:24 Common-usage is : carray ( n "name" -- ) create chars allot does> swap chars + ; 19:45:39 lol...that reminds me of good ol' Apple II BASIC game entitled "Lost Dutchman's Gold" 19:45:43 Then 80 carray foo char A 5 foo c! 5 foo c@ emit 19:45:58 see your swap! 19:46:08 The swap is because of the DOES> 19:46:10 in the does... I just goofed that. 19:46:30 It's not because of the +. 19:46:38 i dont like char x i prefer 'x' because its less verbose 19:46:43 tho ' ' is problematical 19:46:50 kj 19:48:08 Gforth allows 'A 19:49:04 * nighty looks at his non working gforth port under freebsd 19:49:46 I emailed the maintainer of that port so he fixes it 19:49:57 gforth allows 'A' in CVS :) 19:50:20 It allows it in 0.6.2, too, but it returns 16679. 19:50:22 in 0.6.2 ' is just a prefix that sets the base to 256 19:50:24 yeat 19:50:27 yeah, even 19:50:37 ' ' would return the xt of ' tho :P 19:50:49 hence BL 19:51:04 yup 19:51:27 i dont like 'x 19:51:29 at all 19:52:25 I have no problem with char. 19:52:35 too verbose :) 19:52:41 lol 19:53:05 I'm not aiming for maximum source density. 19:53:17 * absentia has tried that. 19:53:33 I don't mind char and [char] too much, but I do prefer 'x' for readability 19:53:51 char x constant 'x' 19:53:55 neither am i but i what tathi said :) 19:54:17 for me, char and [char] tend to drown out the character 19:54:22 not a big deal though 19:54:45 that is also my take on it 19:55:03 but isforth doesnt defin char or [char] 19:57:58 --- quit: tathi ("TTFN") 20:11:44 that definition for carray - i dont like it. it should just be called ARRAY. forth is not typed 20:11:59 There are many types in Forth. There's no type-checking. 20:12:16 and it smacks of hungarian notation :) 20:12:26 CARRAY accesses specifically via char-width offsets. ARRAY is conventionally for cell-width. 20:13:00 Just as there's c! and ! and c@ and ! 20:13:11 er, c@ and @ 20:13:27 ok 20:13:42 dxidnt think of it that way 20:16:01 so much for purism :) 20:22:05 I have a fancy-schmancy array word, looks like 100 200 300 2 floats 3 dimensional-array foo 20:22:30 wow... I just chose to use forth instead of perl for something. that's amazing. :-> 20:24:32 --- quit: I440r (Nick collision from services.) 20:24:36 --- nick: I440r_ -> I440r 20:24:52 --- mode: ChanServ set +o I440r 20:27:05 I hate that the ^K in gforth is not standard :-< 20:27:08 gets me every time 20:27:22 huh? 20:27:44 ^k is kill from cursor position until end of line.. in gforth, it is the same as ^u is supposed to be -- kill line. 20:29:12 I've never used it. 20:29:17 ah. 20:29:42 The manual says it's kill from cursor position to end of line, but it does seem to eat the line. Something to do with the readline library configuration I'm sure. 20:29:52 yup 20:34:17 I write code in an editor. I only use the console for interactive testing. 20:34:27 crap ,ti's almost midnight 20:34:33 I thought it was like 9 or 9:30 20:34:38 heheh 20:34:39 coding? 20:34:45 nah 20:34:51 playing discworld mud 20:42:39 --- quit: ellisway (Read error: 104 (Connection reset by peer)) 20:45:05 --- join: skas (i=sszukals@202-90-54-135.static.linearg.net) joined #forth 20:45:07 --- quit: skas (Remote closed the connection) 20:47:18 100 times faster than ASP! 20:47:28 er, wrong chan, sorry. 20:52:00 asps are pretty fast 20:52:20 it was some url a guy posted in c++ -- another paragraph says that the csp is 250 times as fast as ASP. :-) 20:56:10 --- join: I440r_ (n=mark4@ip70-162-111-107.ph.ph.cox.net) joined #forth 20:56:33 --- quit: I440r (Nick collision from services.) 20:56:40 --- nick: I440r_ -> I440r 20:57:06 --- mode: ChanServ set +o I440r 21:09:25 you could also do 80 1 chars 1 dimensional-array foo for a one-dimensional char-sized array of 80 elements. Kind of a sledgehammer to kill a flea, but it's one word instead of many, as it handles any size and dimensions of array. 21:21:46 sadam executed when ? 21:21:53 10pm est 21:22:16 i cant help feeling sorry for him 21:22:22 :-/ 21:24:31 feeling sorry? Saddam gassed numerous Kudish towns, terrorized a lot of Shi'ites, and killed a lot of people, ran a brutal torture prison, launched two wars, and so on...nope, I don't feel sorry for him at all 21:24:47 i know, he was definatly insane 21:24:50 *Kurdish 21:24:58 and deserved to be executed 21:25:07 but the christian in me still feels sorry for him 21:26:14 moreover, one of his sons liked to roam Baghdad, looking for 'pretty women' to rape and butcher (it's said that he needed to see women bleeding to death in order to get aroused) 21:27:27 and.... you don't think anything you hear might be... false? 21:29:02 town being gassed? heck, Saddam bragged about it himself (that happened prior to US-led coalition attack in 2003) 21:29:12 no -- ths stuff about his sons. 21:29:23 sure, lots of nasty stuff went on, probably more than anyone will ever know... 21:29:28 the world is a sick place. 21:29:31 people are sick, etc. 21:29:59 it's far sicker than you even know 21:30:10 :-;) 21:37:02 TheBlueWizard: how do you know ? 21:37:15 TheBlueWizard: not that I am saying it is not true 21:37:34 well, read about his sons at http://en.wikipedia.org/wiki/Uday_Saddam_Hussein (the one allegedly raping and killing women) and http://en.wikipedia.org/wiki/Qusay_Hussein 21:37:40 TheBlueWizard: I would just like to know your source of information and how you made your opinion 21:38:15 TheBlueWizard: you trust WikiPedia ? 21:38:21 I did not make any opinions...I just read from newspapers, etc. 21:38:31 and not just Wikipedia 21:38:46 * TheBlueWizard is annoyed with absentia and nighty 21:38:50 Newspapers uhmmm interesting 21:39:04 Guys. Please. 21:39:18 A proper statement would be ," you think ....." 21:39:51 Quartus: just talking 21:40:23 This serves no purpose other than to generate animosity and perpetuate argument. 21:41:14 Quartus: why ? 21:41:27 Quartus: I see no anomosity in what I am saying 21:42:19 A believes Y. B asks how A knows. A cites a source. B says the source is bogus. A cites another source. B suggests A is gullible for believing any source. B gets annoyed. Cycle repeats. 21:42:43 Quartus: thank you very much 21:42:50 Quartus: I am not saying one is gullible for reading wikipedia 21:43:01 Quartus: wikipedia is quite useful 21:43:43 Ok, but at no point in that cycle is either A or B enlightened or informed. It's not a conversation, it's bear-baiting. 21:43:59 That's why. 21:44:08 Quartus: I was enlightened 21:44:17 Quartus: by TheBlueWizard 21:44:31 Quartus: I do not count ? 21:46:03 well, gotta go...must sleep...bye all 21:46:08 ciao 21:46:22 --- part: TheBlueWizard left #forth 22:00:52 why are you annoyed with me ? 22:01:20 oh - -night 22:19:28 Quartus: uhmmm I see we have one more common interest 22:19:39 what's that? 22:19:45 Quartus: sci.crypt 22:20:08 Quartus: and Quantum Physic 22:20:13 random numbers interest me. Cryptology too, but less so. 22:20:38 Yes 22:20:42 yes, I have a passing interest in quantum physics. 22:23:20 --- quit: cmeme (Remote closed the connection) 22:24:03 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 22:41:49 --- join: ellisway (n=ellis@host-87-74-241-174.bulldogdsl.com) joined #forth 22:48:24 --- quit: I440r (Remote closed the connection) 23:27:21 --- part: absentia left #forth 23:54:40 --- join: absentia (n=scott@ns6.lobodirect.com) joined #forth 23:59:59 --- log: ended forth/06.12.29