00:00:00 --- log: started forth/06.10.15 00:20:28 --- join: crest_ (n=crest@p54894B2F.dip.t-dialin.net) joined #forth 00:30:36 --- quit: Crest (Read error: 110 (Connection timed out)) 00:36:41 --- quit: JasonWoof ("off to bed") 01:29:21 --- nick: crest_ -> Crest 01:45:35 --- quit: virl (Remote closed the connection) 01:58:17 --- quit: nighty_ (Read error: 104 (Connection reset by peer)) 02:33:35 --- join: nighty_ (n=nighty@sushi.rural-networks.com) joined #forth 02:48:25 --- join: Cheery (n=Cheery@a81-197-19-23.elisa-laajakaista.fi) joined #forth 03:55:15 --- join: vatic (n=chatzill@pool-162-84-156-148.ny5030.east.verizon.net) joined #forth 04:00:04 --- quit: Teratogen ("Leaving") 04:00:52 --- join: Teratogen (i=leontopo@slashsnot.org) joined #forth 04:17:05 --- join: zpg (n=user@user-54417e84.l6.c5.dsl.pol.co.uk) joined #forth 04:28:24 afternoon 04:40:52 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 04:41:14 hi virl 05:14:21 --- quit: virl (Read error: 110 (Connection timed out)) 05:29:35 --- join: erider (n=erider@unaffiliated/erider) joined #forth 05:29:38 hi all 05:34:15 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 05:35:17 --- quit: k4jcw (Remote closed the connection) 05:36:10 hey erider 05:36:22 hi zpg 05:36:31 how's it going? 05:36:47 --- join: k4jcw (n=jcw@adsl-065-006-151-062.sip.asm.bellsouth.net) joined #forth 05:46:06 good 05:46:24 doing some exploration in lush 05:46:40 neat. 05:47:16 I'm looking at it for the lisp side of fisp 05:48:12 fisp? 05:49:58 new language that we are working on 05:50:36 forth + lisp and some features from other languages 05:53:26 ehm? reminds me on factor 05:58:59 got a website? 05:59:02 and who's "we"? 06:00:10 yes 06:00:42 http://thin.bespin.org/keowiki// 06:02:32 neat 06:02:44 so you're doing postfix heads of lists in parentheses? 06:03:10 or just every phrase has its own parenthesis? 06:03:16 ==> ( _ _ _ ?exit _ _ _ ?loop ) 06:04:04 do you know C zpg 06:04:26 yes 06:04:28 I can email you the source code 06:04:35 oh it's working? 06:05:08 yes some of it we still have to work on some things 06:05:55 neat stuff. 06:06:05 just compiling something else at the moment, which has proven a nightmare so far. 06:06:12 getting somewhere, finally... 06:06:16 I'm working on the compiler but the interactive mode and the interpreter works 06:06:50 neat stuff. 06:07:06 its going to be compiler interpreter and interactive 06:08:08 i don't like "[]___] Step aside" sort of syntax. "()...)" ? 06:08:23 it does, certainlty to a lisper, but i'm sure to everyone else too, like it's mismatched. 06:09:35 erm, "it looks mismatched" is what that was supposed to say. 06:12:52 you can use [ ( { they are interchangeably 06:16:19 so "(]___)" ? 06:20:48 yes that could be one notation 06:21:45 hmm ok 06:48:52 eh what? 07:08:18 'eh' to who? 07:08:34 this is erider fisp, i was commenting that the unmatched paren syntax was confusing. 07:08:38 *erider's 07:18:58 --- quit: erider (Read error: 110 (Connection timed out)) 07:19:21 --- join: erider (n=erider@unaffiliated/erider) joined #forth 07:23:43 --- quit: k4jcw (Remote closed the connection) 07:24:27 --- join: k4jcw (n=jcw@adsl-065-006-151-062.sip.asm.bellsouth.net) joined #forth 07:24:57 I wish like hell I knew why X or KDE forgets I have a keyboard. The USB mouse is plugged into the keyboard, and it keeps working, so it's not a USB driver/hardware issue. 07:25:07 I suspect modular X is still a little stupid, at times. 07:25:19 Never had it lose my keyboard. Suspect you have something else going on. 07:28:38 Can't imagine what. It's done it across a number of kernels. I've replaced the keyboard. And I don't remember this ever happening until after I switched to modular X. 07:29:10 X is always stupid, it's a kind of black magic 07:29:15 1; 07:29:25 maybe the keyboard itself is flaky ? 07:30:02 As I just said, I've replaced the keyboard. 07:30:45 config on one version of X enables usb and on another newer one version it doesn't detect it. 07:30:45 Oh, and as soon as I exit KDE, the keyboard works at the shell. So it's not a kernel USB driver losing it. 07:31:57 I didn't know that X was actually USB-aware. 07:33:34 could be kde fscking up hehe 07:33:41 Yes, it could well be. 07:34:00 try using some other wm for a while to see if it still happens 07:34:10 I'd trying running straight X, but it happens too infrequently. 07:39:30 --- join: snowrichard (n=richard@12.18.108.162) joined #forth 07:40:15 good morning 07:40:22 hey 07:40:47 added a switch statement to my interpreter 07:41:14 hi Quartus 07:41:23 hi zpg 07:41:34 hey snowrichard 07:42:04 gtk+ nearly installed, but now i need cups 07:42:11 (a newer version, presumably) 07:42:46 then hopefully i can try gtk+ and gforth. the idea as it stands is this: try the demo suggested. if that works, try glade, see how it produces code for gtk+. once that's done, perhaps write some wrappers for gtk+ widgets. then try writing gui apps in gforth. 07:45:33 (and perhaps check out the retroforth code for gtk bindings, though i imagine this isn't directly compatible) 08:04:15 --- quit: snowrichard ("Leaving") 08:14:24 hi Quartus: can you offer any general advice on structuring the termination of a WHILE loop on 2 conditional tests? 08:14:50 Say GOAL is a cell address that would be found in a car of a list.. 08:15:05 and CLAUSES is the list being searched... 08:15:06 as in .... begin test1 while do-something test2 while do-something-else repeat ? 08:15:37 Oh, you can "cascade" WHILEs? 08:15:54 not quite like that. begin test1 while test2 while repeat then is the actual form. 08:15:57 like that? 08:16:18 LIke that. 08:16:52 Is this mentioned somewhere, or something that an experienced programmer has picked up? 08:17:30 It's a natural feature of the way control structures are implemented. They all work with dests and origs, so they can be assembled in various ways. 08:18:57 Here's a practical example: : scan ( c-addr1 u1 char -- c-addr2 u2 ) >r begin dup while over c@ r@ <> while 1/string repeat then ; 08:19:00 I think it'll do it. I'd want to terminate on CLAUSES cdr nil = and GOAL CLAUSES car = 08:19:05 "1 /string" of course. 08:19:11 (howdy vatic) 08:19:20 hi zpg! 08:19:30 how's it going? 08:19:40 ok 08:20:08 good good. 08:20:13 Quartus: thanks! I think I can take it from there, and will be on the lookout for these kinds of combinations... 08:20:18 Ok. 08:21:03 Quartus: I got my search to work with a single while, but it would take the car of nil which wouldn't be too cool! 08:21:21 My car and cdr now return nil for nil. 08:21:38 : car dup if >car @ then ; 08:22:29 Quartus: so I won't be blowing up my TX with 0 car? ;-) 08:22:38 In C, we have structures. What's the most idiomatic way of implementing structures in Forth? Assume something like a structure that contains an int for an ID, an int for birth year, and 2 20 character fields for names. Ideally, should a 5th field need to be added, it should be painless (in C, we'd simply add the field, and for any memsets or memcpy()'s, sizeof (foo_t) takes care of the change in size). 08:22:39 No resets required. 08:22:44 vatic: are you using Q's list code? 08:22:50 vatic: or one of the other implementations? 08:22:53 I can think of several ways to do this, of course, but I don't know which would be consider mo-better. 08:23:12 Left out a word. An array of structures. 08:23:19 k4jcw, there are some very simple approaches. Commonest is a struct{ 1 cells field: foo }struct my-struct kind of thing. 08:23:20 zpg: Quartus' code of course! It runs better on Quartus Forth! ;-) 08:23:30 heh heh 08:23:48 vatic: so you're hacking on a PDA? 08:24:01 k4jcw, my-struct winds up being a word that returns the size of the entire struct. 08:24:24 And what do accesses to it look like? Say foo [3].ID ? 08:24:47 foo is my structure, not your field. 08:25:31 How could they look like that? This is Forth. Field names, like my field foo, are offset-adders. So create instance my-struct allot ... 5 instance foo ! 08:25:34 zpg: got a used Palm keyboard and Quartus Forth is the bomb! Keyboard is a tremendous amplifier for a PDA... 08:25:46 The palm keyboard is a handy gadget. 08:25:59 "Say" as in "in C, we'd do it like this" 08:26:08 ah ok. 08:26:11 Obviously that's not a Forth syntax. 08:27:40 Oh, apparently in that Vx+GPS auction I won, which includes the folding keyboard, he's also throwing in a "thumb keyboard", which I think is the little guy that plugs into the bottom of the Vx, and gives a small PDA-like keyboard. 08:27:48 --- quit: erider (Read error: 110 (Connection timed out)) 08:27:57 Lots of toys. 08:28:12 --- join: erider (n=erider@unaffiliated/erider) joined #forth 08:28:50 Is this struct{ thing defined in DPANS somewhere? And/Or can it be implemented in Forth fairly easily? 08:28:57 I'm thinking I'd like to add that to mine. 08:29:22 It's not a standard word. It's very easy to implement. 08:30:14 : struct{ 0 ; 08:30:34 : }struct constant ; 08:30:57 : field: create over , + does> @ + ; 08:31:50 Hmm. Looks like namespace collisions can occur between different structures field name, then. 08:32:12 Two ways to go; modules, or make the name fields unique. 08:33:25 When porting C structures across from Windows, I set up each .h equivalent in its own module, and expose them as needed. 08:34:00 C .h files tend not to re-use field names inside a particular .h. Any conflicts require a slightly modified name, or a prefix. 08:34:20 I like the modules approach better. Having to uniquely name fields is kludgy. 08:34:26 vatic: oh, neat. my keyboard should be arriving early this week. which model PDA are you using? 08:34:50 (and i agreet re: QF (thanks Neal) -- the RsrcEdit stuff is pretty neat too, amazingly concise composition of GUI programmes) 08:34:54 *agree 08:34:55 zpg: I have a TX... 08:34:55 What I'm saying is that even in the modules approach, you *could* have a conflict. Certainly I wouldn't make a module for each struct. 08:35:07 zpg, I'm glad it's going well. 08:35:12 Quartus: yeah, enjoyable stuff. 08:35:59 okay, the gtk+ moment of truth... 08:37:03 woohoo! 08:39:17 ==> ezil.sourceforge.net/screenshots/gtk-osx.jpg 08:39:55 what are we supposed to notice from that? 08:40:08 sorry, that's my relief at having spent hours getting GTK+ to work on OSX. 08:40:16 ah 08:40:29 so now, time to recompile gforth with ffcall support, then hopefully get a window on the screen.... 08:40:55 k4jcw, you'd use align as appropriate to get aligned fields. 08:43:27 Quartus: so the THEN as in REPEAT THEN provides resolution to the second WHILE's forward reference? 08:43:40 To the first one, in a two-while loop. 08:44:12 It's a stack, so REPEAT resolves the most recent WHILE, leaving the other one to be resolved by THEN, or ELSE THEN. 08:44:29 Quartus: proceeding from inner to outer as in LIFO? 08:44:43 or a stack... 08:45:05 Control-flow items go on a stack; it's almost always the data stack, in fact. 08:45:33 during compilation, you're talking about? 08:45:37 Right. 08:45:44 Ok, thanks! 08:47:46 typical -- gforth won't compile out-of-the-box with the ffcall library installed. 08:48:35 zpg: you'll need the CVS version for that. Had luck compiling for Debian. Didn't finish my struggle under OSX... 08:48:45 hmm okay. 08:48:53 apparently there's a long long problem on PPC OSX 08:49:06 CVS is supposed to solve this? 08:49:44 zpg: I don't have any probs with the release version on OSX, but the issues with compiling the CVS are magnified on OSX. 08:50:10 check the gforth mailing list on chaossolutions and the Forth-Gesellschaft sites... 08:50:31 okay. i'm trying 0.6.2 here incidentally. i haven't come across any information for checking out a cvs branch. 08:50:39 it compiles without ffcall, doesn't with it. 08:50:46 i found this thread -- http://www.mail-archive.com/gforth@chaossolutions.org/msg00346.html 08:50:59 but there's no explicit workaround that i can see. 08:52:07 zpg: dunno... 08:54:59 * zpg sighs 08:56:22 zpg: did you check the release info at the tuwien CVS? 08:56:37 haven't come across it... have you the link? 08:56:40 that message was a while ago... 08:56:56 yes indeed 08:57:10 as i said, i may be missing an obvious link but haven't seen a cvs repository link for gforth 08:57:24 http://www.jwdt.com/~paysan/gforth.html <-- just release info 08:57:34 ah, http://www.mail-archive.com/gforth@chaossolutions.org/msg00437.html 08:58:02 zpg: http://www.complang.tuwien.ac.at/forth/gforth/cvs-public/ 08:58:16 yeah thanks, the chaos... page linked there too :) 08:58:19 zpg: googling "anton ertl gforth" got me there... ;-) 08:58:31 ah nice 08:58:33 "gforth cvs" 08:58:35 for me 08:59:58 vatic: the TX looks really nice btw, would you recommend it? 09:00:04 zpg: the install is cranky as I said above... 09:00:40 * zpg nods 09:00:45 i'll try it and see. 09:01:00 --- quit: erider (Read error: 110 (Connection timed out)) 09:01:06 i can always post a message to the list to see what the fix is for getting gforth to compile on osx with ffcall 09:01:08 zpg: as opposed to what? 09:01:19 vatic: what opposed to what? 09:01:23 --- join: erider (n=erider@unaffiliated/erider) joined #forth 09:01:59 what PDA are you using? (although I'm hardly an expert on PDAs...) 09:02:03 m130 09:02:20 aha! 09:02:33 ./configure ac_cv_sizeof_long_long=0 <-- "If C's "long long" do not work properly on your machine (i.e., if the tests involving double-cell numbers fail), you can build Gforth such that it does not use "long long":" 09:03:37 zpg: you might want to see if the release version has that config option before proceeding down the rabbit hole of CVS compilation for OSX... 09:03:55 i just tried on the release version (0.6.2) 09:04:01 but alas, still doesn't work. 09:17:48 let's hope this works --> http://www.complang.tuwien.ac.at/forth/gforth/Known-problems.html, there's a patch for OSX 09:34:37 ahaha!! 09:34:39 http://ezil.sourceforge.net/screenshots/gtk-forth.jpg 09:35:26 looks like someone has a MAC 09:35:36 So what's the Forth code look like? 09:35:37 yes it does. 09:35:48 it's taken from http://www.shockfamily.net/cedric/fflib.html 09:36:30 here: http://ezil.sourceforge.net/devel/gtk-forth.html 09:36:56 Cool. Now you can write the bindings to get Sleepycat's Berkeley DB working under gforth :) 09:37:03 hehe 09:37:13 the code is pretty hard to follow as it stands, and i can't remember anything about gtk+ 09:37:30 but as the screenshot indicates, it's operational, and there isn't too much code to get this up and running. 09:37:43 for starters, we wrap the libgtk calls into a header. 09:44:49 --- join: JasonWoof (n=jason@c-71-192-33-206.hsd1.ma.comcast.net) joined #forth 09:44:49 --- mode: ChanServ set +o JasonWoof 09:45:28 hi JasonWoof 09:48:21 --- join: Raystm2- (n=NanRay@adsl-68-93-41-121.dsl.rcsntx.swbell.net) joined #forth 09:49:26 Hi Quartus, code is much easier to read also: 09:49:28 : find-clause ( goal @clauses1 -- goal @clauses2 ) 09:49:29 begin 2 dup 09:49:31 dup nil <> while 09:49:32 car <> while 09:49:34 cdr repeat then 2drop ; 09:53:44 --- quit: Raystm2 (Read error: 104 (Connection reset by peer)) 09:55:07 --- join: nighty__ (n=nighty@sushi.rural-networks.com) joined #forth 09:59:37 good deal 10:02:58 Quartus: does look OK for beginner code? :-) 10:03:02 that 10:05:48 --- quit: nighty_ (Read error: 110 (Connection timed out)) 10:05:56 not too bad! 10:11:48 Quartus_: wouldn't expect perfection at this stage! ;-) thnx... 10:13:09 Quartus_: right now, I'm sort of working "middle->out" on this backtrack search, so I'm taking Pete Townsend's word for what params should be on the stack. 10:13:22 hi zpg 10:13:23 Might find out later that some other organization is better... 10:18:00 vatic: I don't understand the control constructs there 10:19:20 JasonWoof: how so? it's supposed to test for cdr being not nil and a match between car and what's on the stack.. 10:19:50 I don't know what happens when you put two "while"s in 10:19:54 or what the "then" does 10:20:24 JasonWoof: talk to Quartus about that ;-) His suggestion! 10:20:29 hehe 10:20:43 JasonWoof: the then resolves the forward ref of the first while... 10:20:55 oop, gotta go. 10:20:56 later 10:21:01 bye! 11:17:31 yes, the then resolves the first while. 11:19:19 with an else then, you can have different post-loop code for each while. 11:25:53 --- quit: timlarson ("Leaving") 11:26:35 --- join: timlarson (n=timlarso@user-12l325b.cable.mindspring.com) joined #forth 11:35:08 --- nick: Raystm2- -> Raystm2 11:35:15 hey ray 11:37:36 Quartus: I think I need to know about ELSE THEN because my 2drop should happen when cdr dup nil <> proves false... 11:39:08 Hello, men! 11:39:20 begin code1 test1 while code2 test2 while code3 repeat post1 else post2 then 11:40:07 Quartus_: so when test1 is false and the while terminates, it runs post2? 11:40:13 Raystm2: howdy, man. 11:40:18 :) 11:40:35 hiya guys 11:40:49 Raystm2: hi! 11:44:07 Hi vatic. hi lukeparrish. 11:48:59 Quartus_: answered my own ?, thanks! 11:50:39 still a little gun-shy from crashes... ;-) 11:51:54 heh. Sorry, mobile. Not always looking. 11:52:35 Quartus_: it was simple enough to just try, but I'm glad you mentioned it in the thread. I had overlooked a termination condition. 11:52:55 wasn't sure where to go... ;-) 11:54:48 Quartus_: is there a way to dump q4th history into a memo? 11:57:02 Quartus_: I don't have the ability to 'see' definitions on the palm, do i? 11:57:52 zpg: I don't think that's provided. RTFM! :-) 11:58:28 heh 12:10:02 zpg, yes -- include disasm 12:10:28 vatic, there's no history dump; after a bit you should be able to code one up, though! 12:12:16 Quartus_: true! 12:12:53 Quartus_: the setup with peditPro is pretty nice... 12:14:06 though. 12:30:45 Quartus_: thanks. 12:30:51 just wrote a bit of code on the Palm, very neat. 12:32:23 Raystm2: do you run Windows? 12:40:02 yes. 12:45:43 Raystm2: OK, I have Windows CDs for your Vx... 12:46:47 You do? vatic, I couldn't be more excited. It's really kind of you to do this for me. I've been dieing to try the Quartus Forth. 12:48:34 Raystm2: strange thing is, I have no idea where it came from. With an extra cradle and USB connect kit... 12:51:28 really, you mean, you didn't bye it? 12:51:37 buy even. 12:52:24 Raystm2: must've snuck in the front door when I wasn't looking, around 2000 ;-) 12:53:20 hehehe. 12:53:33 What do you use now? 12:54:26 Geoworks 12:56:05 geoworks website is unavailable. :( 12:56:30 k4jcw: NAPLPS... 12:56:58 *snort* 12:57:20 k4jcw: comes with my subscription to Times Mirror Videotext... 12:57:29 Videotex... 12:58:33 Why? 12:58:37 k4jcw: did that Pocket Mirror work for you? 12:59:15 Yes! Quite well. Thank you. 12:59:38 k4jcw: cool! I'll scrap it off my disk now... 12:59:41 scrape 12:59:55 Seriously, why do you have a Times feed? 13:02:24 k4jcw: Sorry, guess I went too far back in the wayback machine. mid-to-late 1970s Times Mirror had a Videotex service trial in Florida, along with Dean Witter and a bunch of others. 13:03:09 I believe the Times is still running theirs, is it not? 13:03:16 They used NAPLPS for the user interface. Can't imagine the data rate was better than 1200bps over the phone lines... 13:03:58 k4jcw: They put it out of their misery in the very early 1980s. If they have something now, there isn't any continuity... 13:04:09 I always wanted to play with that stuff, back then. Wanted to build my own decoder. 13:04:25 k4jcw: there was software. 13:05:15 Yea, but all the services were pay services, IIRC. And I couldn't afford/couldn't justify it. 13:05:22 I wrote a disassembler for it, never got the graphics routines all done... 13:06:09 k4jcw: In the early 1980s there were a few BBS's running NAPLPS. Chariot in Colorado was one. Quite famous at the time. 13:06:35 I hosted a lot of NAPLPS art on Compuserv's ArtSig also... 13:07:14 a disassembler for what ? 13:07:21 I didn't know about the BBSs. I used to run one, back in the 80's. Apple II, single 140K disk, all integer basic and assembly. But never anything with NAPLPS. 13:07:32 Toronto was a big hot spot for that kind of work too. 13:08:49 --- join: iano (n=iosgood@sub26-46.member.dsl-only.net) joined #forth 13:08:57 k4jcw: Microstar software of Nepean, wrote a NAPLPS terminal program for IBM's online offering (I forget the name) 13:09:21 so it was available free for you to hack, and you could buy it from Microstar for about $30... 13:09:29 http://bbslist.textfiles.com/404/ Scroll down to 404-256-1549 13:10:58 Hahaha! Very cool, JC! Brings back memories... 13:11:39 Did you ever used to read Readers Digest? 13:11:57 k4jcw: right Prodigy's give-away terminal program displayed NAPLPS and you could hack it to dial something other than Prodigy... 13:12:24 k4jcw: no, not unless I was stuck at some Summer cottage... 13:13:57 I don't know if you remember the "I am Joe's " stuff, but one of their more memorable one was a guy named Joe Trott. Somehow he sustained some brain damage (birth or accident, I dont' remember). Anyway, he was a friend of mine, and the guy I sold my Apple II to. Unfortunately, I failed to keep a copy of my BBS software. I have a hard copy listing of the BASIC portion from an older version, but none of the 3000 lines of un 13:13:58 commented assembly. 13:15:21 haha 13:15:28 nice 6502 uncommented asm :) 13:15:44 I am Joe's Man Gland! 13:29:41 Jeez, you really know how to shut down a channel :) 13:30:40 k4jcw: That's all I remember... 13:33:30 hmm, given that <# takes an unsigned double, how would one go about prettily printing a triple (or, for that matter, printing one at all)? 13:34:06 zpg, you'd need to successively divide the triple by the base, and display the value. <# and friends work on doubles, so you'd need to put together a new set. 13:34:42 ah, i see 13:35:15 so literally print one number at a time? 13:35:23 as we work through the columns? 13:36:11 that's how <# #s #> works. 13:36:24 neat, i'm not going to do this now, but i've just been playing with doubles on the palm. 13:36:26 Except the process returns your digits in reverse, so you have to manage that. 13:36:33 2. 32 exp 1 d- ud. 13:37:01 yes, i'm aware of the <# reversal ... i wouldn't want to write a triple word that behaves any differently 13:37:03 what's '32 exp 1' ? 13:37:04 would be confusing. 13:37:10 sorry --> 13:37:17 2. 32 exp 1 d- ud. 13:37:30 (2^32) - 1, print it. 13:37:39 since 2^32 requires a triple it seems. 13:37:42 1 d- will do something odd, because 1 is not a double. 13:38:02 oh sorry, my transcribing error, yes it should read 1. 13:38:07 2. 32 exp 1. d- ud. 13:38:17 (that caught me out when i wrote it too heh) 13:38:49 2. 32 exp would overflow 32 bits, it'd be 0. 13:39:05 Assuming exp does what it probably does. 13:40:18 yes, the stack reads 0 0 afterwards. 13:40:56 hence the one subtraction -- i was just checking the layout of a double in memory, and tinkering about. 13:42:39 oddly, 1. 1. d- ud. still produces 0 13:42:48 Why is that odd? 13:43:00 both "2. 32 exp" and "1. 1. d- ud." both leaving "0 0" on the stack 13:43:22 Sure. 2. 32 exp results in 2^32, the lower 32 bits of which are 0. 1. 1. d- ud. subtracts 1. from 1., and leaves 0. 13:43:46 oh i see what i'm doing wrong. 13:43:47 duh 13:44:09 0. 1. d- ud. 13:44:16 better :) 13:44:20 or more explicitly, -1. ud. 13:44:27 ah ye 13:44:31 +s 13:44:53 sorry, i've just been spending the evening with QF, doubles and the stack 13:45:11 there's lots of ways to generate 0. :) 13:45:35 0 dup 1 over d- 13:45:40 :P 13:46:26 that way probably wouldnt conform to the standard :) 13:46:28 just a guess 13:46:36 why? 13:46:59 my understanding is that the least significant double cell sits below the most 13:47:05 because it assumes the higher order word of the double is at top of stack. isnt that tied to the processors word order ? 13:47:29 i thought the stack order of doubles was irrespective of endianness 13:47:33 It's not. The high-cell of a double is always on top. 13:47:38 cool 13:47:41 It has nothing to do with endianness. 13:47:47 does the standard specify that ? 13:47:56 so my silly example is still ANS? 13:48:00 Yes, as did FIG, Forth 79, and Forth 83. 13:49:36 that was my understanding, hence the tinkering. 13:49:50 btw -- i don't think i've asked but why are people actively anti-ANS? 13:49:57 --- join: Anbidian (i=never@S0106000fb09cff56.ed.shawcable.net) joined #forth 13:50:04 i read a chap's site today saying in pretty puritanical terms that this was the case for him. 13:50:28 zpg, I really don't know. I haven't met anyone who needs portability who speaks out against it; all the negativity comes from people who work in some variant to which they've become emotionally attached. 13:50:39 i see. 13:51:05 i thought your ANS layer for retro was pretty neat ... prevent too much fragmentation. 13:51:23 mostly because i HATE most of their word names. but i also dislike the thinking behind certain words 13:51:23 Really fun to write. 13:51:35 i think "portabilty" is a complete non issue 13:51:38 and an impossability 13:51:52 but you fit the profile, I440r; you don't write for more than one Forth; you write just for your own personal variant, to which you have become emotionally attached. 13:52:20 I440r: hate .... what? 13:52:53 show me portable ans sources and ill show you the bullshit visuall clutter DUCT TAPE code at the top of the source file 13:53:02 not always. but its there most times 13:53:15 #ifdefined this compiler #ifnotdefined this word blah blah blah 13:53:16 I am in the process of writing a substantial body of portable code, so I'll have the opportunity to show you that. 13:53:44 quartus you will have to cater to the differences between all the ans compliant compilers 13:53:50 is this word defined, if not define it 13:54:25 I'm managing that process all in one common include, but it's not to smooth differences -- it's to implement non-standard common-usage extensions. 13:54:54 i still consider it duct tape code 13:54:57 And conditionals are only to avoid redefining those words if they're already there. Not necessary, but more elegant. 13:55:21 http://forthlinks.com/blog/ <-- new, usenet post 13:55:22 i wont even support conditional compilation. i would have but i saw the SHIT people do with it 13:55:59 I've hit my thumb with a hammer a few times, but I keep one around anyway. 13:56:04 most sources i look at look no better than an UNMADE BED - i take great pains to keep my sources formatted neatly and CONSISTENTLY!!!! 13:56:18 yes, I think good formatting is key for any programming. 13:56:37 most people dont format nicely 13:56:53 or consistently either 13:56:55 Often they've never been shown good examples. 13:56:57 --- join: erider_ (n=erider@unaffiliated/erider) joined #forth 13:56:58 mov eax, #1 13:57:07 push < eax 13:57:25 jmp foo 13:57:36 no an excuse 13:57:37 Quartus: do you have any special settings in memo pad. i mean, it's pretty usable, but perhaps fixed width font or turning off capitalisation post words ending in full-stop? 13:57:39 lol 13:58:31 zpg, under OS4 and below I use ShiftHack for that (my own thing, it's free at my site). I stay with the font that's there. 13:58:39 k 13:58:52 shifthack ? 13:59:17 Palm OS thing, stops the auto-capitalization the Palm has. It's handy when you're writing normal text, but not so handy for Forth. 13:59:36 Quartus being the font of all things good for palm, heh :) 13:59:40 does os5 do that too ? 13:59:44 heh. I won't claim that. :) 13:59:56 i mean. thats moronic and hacks arent possible now 14:00:00 OS5 has autocapitalization too. There's a system extension to turn it off too, I don't recall the name right now. 14:00:47 --- quit: erider (Read error: 110 (Connection timed out)) 14:03:57 Quartus: Shifthack works well, thanks. 14:04:09 :) Glad it's still getting some use. 14:05:21 heh 14:05:35 the m130 is suddenly surprisingly useful. 14:06:15 Nearly everything I've written was in answer to some itch of my own that needed scratching. 14:08:13 --- join: erider__ (n=erider@nc-71-50-113-74.dyn.embarqhsd.net) joined #forth 14:08:37 --- nick: erider__ -> erider 14:15:06 --- quit: erider_ (Read error: 110 (Connection timed out)) 14:16:57 i like the sony clie peg20. ;) 14:18:07 The Sony palm devices were unfortunately slightly incompatible in certain ways with the mainstream Palm OS. 14:44:44 --- join: arke (n=Chris@pD9E049C4.dip.t-dialin.net) joined #forth 14:44:44 --- mode: ChanServ set +o arke 14:57:29 why is that ? 14:57:36 the sony devices LOOK better lol 14:58:28 sony made some mods for their own reasons that weren't reflected on any other device. 15:00:35 guess they had to make the product "theirs" lol 15:02:13 they had collapsible input areas, rotating screens, different resolutions, but they hacked in add-ons for them instead of working toward a shared portable solution. 15:09:11 in consequence it became extremely difficult to write a palm app that could access such facilities reliably on all pal devices. A real-world example of the need for portability! 15:11:12 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 15:15:59 --- quit: arke (Read error: 104 (Connection reset by peer)) 15:16:00 --- join: arke_ (n=Chris@pD9E049C4.dip.t-dialin.net) joined #forth 15:19:37 --- nick: arke_ -> arke 15:19:41 --- mode: ChanServ set +o arke 15:35:54 Quartus: one problem with that example, Palm wanted portability and variance. Now, if someone created a PDA with the philosophy of pursuing portability is confused, you might get a very different result. 15:36:25 I'm afraid I don't follow. 15:36:57 incidentally, i've been tinkering with [defined] and looking into find; now, "bl word" seems to push an address, whereas parse-word, word and of course s" myword" will return an address length pair. does find check for both, will it only work on an address...? 15:37:01 You point to Palm as an example of the need for portability, but Palm itself endorses the philospohy of Portability. 15:37:28 right. The sony divergence from that stands out by contrast. 15:38:12 Now, if Palm had not accepted portability as an approach, then there may have been very different results that *may* have been better (depending on your criteria). So infact that may be an example of why portability is not needed. 15:39:05 well, on the contrary. As a developer, it would have been marvellous to portably be able to handle collapsible input areas. Because of sony, we couldn't. 15:39:38 there were some workarounds, but they were all clumsy. 15:41:11 I get what you're saying. I see how portability would have served Palm if all the manufactures were forced to work within certain confines or interfaces. 15:41:36 I'm just asking what would have been possible on the other side too, if portability was rejected as a goal. No PDA company has done this to my knowledge, so I can't be sure. 15:41:46 sure. A common interface means your apps run everywhere the interface is valid. 15:42:48 I'm not sure what rejecting portability means. If a developer has to re-write his app for every pda, well, how is that good for anybody? 15:43:03 It isn't, pure and simple 15:43:20 :) 15:43:24 * arke quiets down again 15:45:19 Quartus: That wouldn't be the point. If one rejected portability from the start, then you would save all the hassles of trying to be portable, and get easier, smaller, better apps (I am assuming). How you managed variance would then become a different matter. Either you had variance only on certain dimensions but kept all other parts identical, or you had different units with different OS/software. 15:45:55 I'm sorry, Anbidian, perhaps it's me, but I'm not following you. 15:46:50 write code for a specific system and your code will be alot tighter 15:46:51 He's saying that apps would be smaller if you didn't have to worry about portability. That there is overhead in allowing for portability. 15:47:05 there is in almost every case 15:47:12 Well, if one took the approach of rejecting portability then they would have to be careful how they approached variance: so either they would have little or no variance, or they would allow variance but have no portability. Then you would create variance to a larger degree because it wouldn't make sense to rewrite apps for something roughly similar. 15:47:30 there isn't. Palm apps are very small. Coding to a different but equivalent api would not make them smaller, just incompatible. 15:48:08 Quartus: you're telling me there are zero sacrafices made on any level to keep different palm devices portable? 15:48:16 perhaps you're using the words 'portable' and 'variance' in ways I don't understand. 15:49:36 anbidian, with the exception of situations like the sony one, there are no compromises that come to mind at all. Hmm. When you build a bitmap that you want to display in b/w and colour, you have to provide both. 15:50:10 well, 'have to' -- the b/w will display the color one, albeit awkwardly. 15:50:35 different screen resolutions, different placement and quantity of buttons, different processing power, different interfaces, different fonts, etc. isn't there all of that and more? 15:51:26 Are you assuming portability across all PDA OSs? WinCE, PalmOS, etc? 15:51:46 the screen size (modulo sony) is abstracted, as is the harware button interface. There are extra fonts beyond the base on some systems. 15:51:50 Because portability is not something some of these people desire. They want to lock you into their device because a particular app is available on it. 15:52:59 I'm not talking about one app that runs on wince, symbian, psion, and palm. I'm just talking about Palm. Amazing portability is possible within that platform (again, excepting sony). 15:54:13 you can write apps that run, binary-compatible, on the first USR Pilot and the latest OS5 Treo. That's ten years of hardware. 15:54:15 You're not. I get the impression that Anbidian is. 15:56:55 k4jcw: portability within a single platform, like PalmOS 15:57:41 They now have different processors, from those motorala ones to the new ARM ones, so I don't get how you can say they haven't made any compromises for portability, what can be a larger compromise than running software on an emulator on a different processor? 15:57:58 The compatibility is impressive. There's a common subset of the current API that runs back all the way. Sony's divergence is a noteworthy exception to that. Now, it may not be all Sony's fault, but wherever the blame may lay, it stands out sharply. 16:04:07 It is, of course, always possible to write an app that depends on a specific feature that is not present on all devices. 16:04:21 --- quit: virl (Remote closed the connection) 16:04:40 OT - anybody know of a Forth system for TI-89? In particular, ones that I can create a forth program in, have it compile, and run it from TI89-BASIC? 16:04:56 (well, the second feature isnt required but would be nice) 16:08:17 arke, google can't find one. Just went through the possible hits. 16:09:27 thats why I asked ... googling for it is hard, since forth is a common english word, and programming is a common word on ti89 sites 16:09:46 "in forth" helps, or excluding -"so forth" -"back and forth" and a bunch of others. 16:11:51 This is the closest hit, but it's not a Forth: http://www.paxm.org/symbulator/download/rpn.html 16:20:05 --- quit: vatic (Read error: 60 (Operation timed out)) 16:22:02 Thanks 16:22:13 an interesting self-fulfilling article I just found: http://www.embedded.com/story/OEG20010731S0028 16:22:32 (and no, I don't agree with the author, or at least not completely) 16:22:52 He makes quite a few flat-out errors in his article. The responses below it are very good. 16:24:22 Yeah 16:24:24 like the comment thing 16:24:47 did they EVER post an opposing view of forth to counter that article ? 16:25:00 ive seen that before too 16:25:01 Right. This is not a guy who has ever used Forth. He may have seen it once, or had it described to him by somebody else who was badly misinformed. 16:25:05 its totally bogus 16:25:25 I suppose it's faintly possible he used some amazingly fucked-up weekend-coder's attempt at a Forth. 16:25:31 exactly. so someone should write a counter article for them and insist it be published 16:26:09 http://www.embedded.com/showArticle.jhtml?articleID=9900308 16:27:50 there it is, hehe 16:28:20 Notice it got no dissenting comments. 16:28:25 :) 16:28:39 i did see that. but then.. THAT article was written by a cluebie :) 16:29:45 HAH 16:29:46 thats a new word 16:29:50 "cluebie" :D 16:30:08 http://ganssle.com/ 16:30:36 arke, where did you find that article? 16:30:53 I just found it today too 16:30:56 dont remember, somewhere searching for forths for calculators 16:31:05 i think it was on some forth links ring 16:31:12 "Forth sucks?" Is that what passes for thoughtful analysis these days? (sigh) 16:31:14 lol 16:31:20 He leaves that article out of his web-site. I wonder why. 16:31:37 lol 16:31:44 it's the interweb, anyone can publish anything ;) 16:32:27 The negative press he got from that article must have had some impact on even him. I'm sure he'd like embedded.com to remove it. 16:32:54 I put up a Forth blog today, though I may and try and get other people to contribute to it too because if it's just me it'll be too infrequently updated and have a limited area of focus 16:33:31 Please let me know when you'll be in Southern California, and I'll be happy to show you what modern Forths look like. 16:33:31 Elizabeth D. Rather 16:33:31 President 16:33:31 FORTH, Inc. 16:33:32 lol 16:33:36 Thwap! 16:34:43 Yes. I doubt the fellow ever bothered. Why be informed? 16:37:20 heh 16:37:34 im more qualified to hate forth than him :) 16:37:39 lol 16:38:08 eep! 16:38:15 ive never been "qualified" before :) 16:39:41 Since when do you hate Forth? 16:40:06 I thought you just hate C and are bringing the things you do like about C into isForth :) 16:40:30 i dont have forth - i do dislike certain aspects of the ans standard tho 16:40:54 theres not very much To like about c 16:41:55 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-151-054.pools.arcor-ip.net) joined #forth 16:43:39 I think C does have likeable aspects 16:43:43 and some very hateable aspects too 16:43:47 but you can say that about any language 16:43:58 actually its not C i hate really 16:44:00 its how its used 16:44:03 Which is why there is no one language to rule them all 16:44:08 If you're Jack Ganssle, you can say it without even knowing the language. 16:44:15 hehe 16:44:24 because he is smarter than us mere forth coders 16:44:26 you have to choose your tool based on availability, performance requirements, convenienve, and last but not least, preference.# 16:44:32 Hehe :) 16:44:44 which is why i code in C when im on a contract 16:44:46 like now :P 16:44:50 I think he's 'choosing his tool' a little too often. 16:45:32 --- quit: iano () 16:45:40 I think the correct terminology here is "being a tool" :) 16:45:56 i was just about to say taht lol 16:46:05 that's funny. 16:46:07 --- join: slava (n=slava@CPE0080ad77a020-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 16:46:08 --- mode: ChanServ set +o slava 16:46:17 hi ray 16:46:24 hi slava 16:46:30 hi 16:46:32 VOODOO VOODOO RAY da daaaa du daaaa da daa 16:46:40 hey Chris, vie ghets? ( is that even close? ) 16:46:56 if you replace the v with a w and switch the h and e, its perfect :) 16:47:07 ah okay wie gehts. 16:47:23 Gut, und dir? 16:47:30 ~ 16:47:49 :D 16:48:08 hi slava. 16:48:25 --- join: zpg` (n=user@user-54478c30.wfd83b.dsl.pol.co.uk) joined #forth 16:49:06 sleep time for arke 16:49:07 good night 16:49:24 g'night arke. 16:50:37 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 16:51:02 --- nick: snoopy_1711 -> Snoopy42 16:51:41 wish we had a disk defragmenter in linux that could defragment a fat32 file system 16:51:58 If only there was a programmer around. 16:52:11 something like nortons dos defrag 16:52:33 no programmers, only luddites. 16:52:40 THINK!!! 16:52:43 ? 16:52:53 I am the worlds best systems programmer! 16:53:03 You are all fools!!! 16:53:11 yea and im the worlds best guitarist :) 16:53:34 I440r: we're making fun of werty from comp.lang.forth 16:53:44 aha. 16:53:53 invite him in here :) 16:53:59 by simply quoting him, which is impressive. 16:55:10 lol 17:00:18 so write a fat32 defrag in forth, i440r. 17:01:13 --- quit: zpg (Read error: 110 (Connection timed out)) 17:01:45 --- quit: timlarson (orwell.freenode.net irc.freenode.net) 17:02:00 --- join: timlarson (n=timlarso@user-12l325b.cable.mindspring.com) joined #forth 17:05:30 Who in here is a vim user? 17:07:26 me 17:08:15 --- join: vatic (n=chatzill@pool-162-84-156-148.ny5030.east.verizon.net) joined #forth 17:11:10 quartus i dont trust myself to not blow away my fat32 file system lol 17:11:35 I suggest testing on a dummy one. 17:11:40 heh 17:11:56 actualy right now i dont have one because the drive decided to go belly up instead 17:11:59 Welcome vatic. 17:12:04 im rmaing it and will have to reinstall :/ 17:13:12 Must be a Seagate. 17:13:16 no 17:13:20 or... yes 17:13:22 hehe 17:13:34 its a maxtor and seagate acquired them i belive 17:13:40 maxtors SUCK 17:13:46 Bah. You are WRONG. 17:13:57 ? 17:13:58 Maxtors are good. Seagate non-SCSI drives suck ass. 17:14:14 ive had more maxtor failures than any other make of drive 17:14:20 western digital are way better 17:14:48 THESE two drives both died at exactly the same moment. i shut down, removed them. inserted them in a new box and... 17:14:53 neither drive will even spin up now 17:14:58 We seriously do not agree here. I'd consider WD a step below Seagate, and Seagate a step below an IOmega zip drive. 17:15:11 Sure you plugged in the power cables? 17:15:14 ive had that happen many times before with maxtor drives 17:15:22 posative 17:15:28 and i didnt static zap them either 17:15:36 Actually... 17:15:43 nd zip drives are horrible. i think they are on the bottom of the list lol 17:15:43 Are you sure the +12V is good on your power supply? 17:15:57 none of the other drives are complaining 17:16:04 ah. 17:16:14 With both drives down, it kinda sounds like +12V is missing. 17:16:29 its a 700 W drive 17:16:44 ? 17:16:57 erm its a 700w power supply i mean lol 17:16:59 sorry heh 17:17:19 Yea, but you *could* have a bad cable, or even a bad 12V section in the PS, was more my thinking. 17:17:20 and ive swapped power cables between drives. i dont think its the power 17:17:28 Yea, probably not then. 17:17:52 Will they spin up without the data cable connected? 17:18:01 no 17:20:28 these are not my only bad experience with maxtor, almost every maxtor drive iev ever had has gone the way of the dodo while still in warrantee 17:20:44 ive had some WD's do that too but far fewer 17:21:25 I've had one Maxtor go bad in 6 years. And I've got 23 drives spinning between various systems. 17:23:13 this sytem actually just had a WD go down, a 200 gig sata that was a replacement for one i RMA'd a few weeks ago but this is VERY rare for wd's for me 17:23:29 the replacement says "refurbished" im going to BITCH like a mofo tomorrow 17:23:40 when i rma a brand new drive i want a freeking brand new replacement 17:23:46 not someone elses hacked on rma 17:23:50 It should be illegal to replace items covered by warranty with refurbished junk. 17:24:03 ya 17:24:16 luckilly that drive was my windows install and i have a backup of it on dvd 17:24:24 somewhere 17:24:25 lol 17:25:10 I was tearing down some old boxens at work, and found one of those Seagate Bigfoot drives it. Single platter 5.25" HD. Don't remember the capacity. I took the cordless drill and drilled a hole in it to make SURE no one could use it ever again. 17:25:24 I swear those things had a 110% failure rate. 17:25:37 drilling that hole probably made it work better 17:26:56 It's a bitch to drill through a platter, I'll tell you that. Bits don't seem to want to bite into them very easily. 17:27:17 its made of titanium glass i belive 17:27:51 That's mostly the 3.5" drives, IIRC. The 5.25"s and old 3.5"s are hardened aluminum. 17:27:51 they make nice mobiles. hang a bunch of them from fishing wire outside your door 17:28:05 they have a very pleasant sound when they collide :) 17:28:20 aha 17:28:24 junk :) 17:29:34 I've started saving the magnets from the drives I destroy (older smaller drives. Anything 40GB and under). Those magnets are scary powerful. You can really pinch the heck out of your finger. 17:44:56 yea i collect those too heh 18:07:32 --- quit: Quartus_ (Read error: 60 (Operation timed out)) 18:24:35 --- join: nighty_ (n=nighty@sushi.rural-networks.com) joined #forth 18:33:39 --- join: Quartus_ (n=Quartus_@209.167.5.1) joined #forth 18:33:39 --- mode: ChanServ set +o Quartus_ 18:38:20 --- quit: nighty__ (Read error: 110 (Connection timed out)) 18:43:50 say, is there an implmentation howto/guide for implementing Forth on new archs? 18:45:57 Zarutian: one sec 18:46:13 eForth was built around an easy to implement forth for new archs, IIRC 18:46:39 " I wrote eForth so that it would be easier for me to develop Forth systems for many processors. Processors included 56000, 6502, 68332, 68HC11, 8051, 8080, 80C166, 80C196, 80x86, RTX2000, RTX2001, RTX2010, SC32, StrongARM, TMS320, Z80, etc" 18:46:51 well, sort of. It's a teaching system, not a practical one. Brad Rodriguez' "Moving Forth" series, though a bit dated, would be more useful. 18:47:16 see: http://www.baymoon.com/~bimu/forth/ and http://www.offete.com/eforth1.html 18:47:56 moving forth: http://www.zetetics.com/bj/papers/moving1.htm 18:48:38 eForth may be simple to port (I've never tried it), but when you're done, you'd only have eForth, which is perhaps non-ideal for your needs. 18:49:05 what do you feel eForth would be lacking? 18:49:18 efficiency, for one. It's a slow implementation. 18:49:54 how slow is it? 18:50:50 Most of it is implemented in Forth source, and it's unoptimized, so it's slower than most. 18:51:17 It also has no block or file storage facilities, at least last time I looked at it. 18:51:30 so how does it store a program? 18:51:35 You don't. 18:51:38 You type it in. 18:51:45 Or stream it in with a terminal program. 18:51:49 there is an eForth2, as well, but Im not sure what the diff is 18:52:28 "eForth model was designed for portability, and only 31 primitive FORTH 18:52:28 words are machine dependent and must be coded for specific underlying 18:52:28 CPU. It is slow except for the very fast CPU's like 80x86. 18:52:46 "very fast". Heh. Tells you how dated *that* is. 18:52:55 If it's a model of implementation you want, I would recommend MAF first and foremost. If it's a guide, "Moving Forth". 18:53:44 Quartus: a url to MAF would be nice 18:54:01 Zuartian, scroll up 18:54:09 MILF 18:54:15 Machines I'd Like to Forth :) 18:54:24 ahahhahah, didn't see that coming 18:54:34 ftp://ftp.taygeta.com/pub/Forth/Applications/ANS/maf1v02.zip 18:55:18 Quartus: danke 18:55:20 oops, MAF not = Moving Forth 18:57:04 Night all. 18:57:06 --- quit: Anbidian () 19:01:20 --- quit: erider ("I don't sleep because sleep is the cousin of death!") 19:04:41 --- join: snowrichard (n=richard@12.18.108.162) joined #forth 19:13:31 --- quit: vatic ("*poof*") 19:17:43 --- quit: snowrichard ("Leaving") 19:43:22 --- join: snowrichard (n=richard@12.18.108.162) joined #forth 19:43:49 hi 19:44:00 --- join: Bushmills (n=l@wpc3131.amenworld.com) joined #forth 19:44:04 hi Snoopy42 19:44:05 oops 19:44:06 hi snowrichard 19:44:13 who is Snoopy42 anyway? Always here but always silent. 19:44:18 evening guys. 19:44:27 updated my interpreter release on freshmeat 19:44:29 hi zpg. Isn't it 4AM for you? 19:44:44 v0.3 now 19:44:45 3:45, yes 19:45:09 i've begun to notice that CMoore is pretty reticent when it comes to bringing 'foils' or laptops to lectures he's given. 19:46:40 I have one of his fairly recent chats, I think he had some visual aids. 19:48:31 snowrichard, what's new in it? 19:49:13 Quartus: oh, neat. the google video ones seem sparing. 19:49:26 this is intriguing -- not sure what they're talking about though: http://video.google.com/videoplay?docid=8026011931655804826&q=colorforth 19:49:27 well, it's not a televisual feast or anything. 19:49:31 seems to be a forth environment with nice visuals 19:49:55 :r4color or something 19:50:44 http://www.geocities.com/redaforth/ 19:51:45 ah, that must be it. 19:51:52 It is. 19:51:58 looks kinda smalltalky/logo-esque in those photos. 19:53:48 It's a crude Forth-ish thing. The sources that are in the .zip have questionable Forth style. Variables. PICK. Etc. 19:54:12 hmm ok 19:54:29 a bug fix, and a switch statement 19:54:38 some input ops 19:54:53 I see. 19:58:06 the bug was get_opcode returning 0 in some cases 19:58:24 when it should have defined a new dictionary entry 20:01:17 bugs are eternal. 20:03:07 --- quit: snowrichard ("Leaving") 20:03:47 does 'vocabulary' see much use btw? 20:04:06 i prefer that name over "word list" bleh 20:04:16 har har 20:05:00 no, i was watching Ribles Sudoku talk, which was actually pretty neat. he redefined + and - within a vocabulary so that he could use them to parse the sudoku table using the standard parser. 20:05:25 Common-use vocabulary replaces the first wordlist in the search order. I've used it on occasion. 20:05:28 i.e., he just let normal parsing take place, and blanked out + and - where boxes met / intersected. 20:05:49 Quartus_: but i gather it's not standard stuff? i couldn't find it in QF for example. 20:06:07 oh, ok. That's just using wordlists. The particular mechanism is not critical. 20:06:28 there's a Vocabulary def in the appendix. 20:06:51 appendix to ...? 20:07:14 standard. 20:07:19 ah ok. 20:07:53 also, i was looking into [defined] which is sitting in one of the QF memos. it uses word to scan from the input buffer, so that find can search for the given word. 20:07:58 it's trivially defined on top of the standard wordlist stuff. 20:08:02 * zpg` nods 20:08:27 i was expecting s" dup" find to work too, then i noticed that find was expecting an address, not address length pair. 20:08:37 --- quit: Raystm2 ("Should have paid the bill.") 20:08:42 however, i also though WORD was being phased out in favour of PARSE/-WORD 20:08:43 I find I use [undefined] is even more useful. 20:08:55 * zpg` nods 20:09:04 but my confusion came over the format returned by WORD 20:09:10 and the incompatibility with s" dup" find 20:09:17 sure. Word returns a counted string that find needs, so they're good together. 20:09:48 why do s" dup" find 20:09:51 instead of ' dup 20:09:52 ? 20:10:27 because if i do 20:10:29 ' qweiocj 20:10:32 it throws an error 20:10:45 i want to check whether qweiocj is defined. 20:11:11 then use defined 20:11:18 : defined bl word find ; 20:11:18 --- join: Raystm2 (n=NanRay@adsl-68-93-41-121.dsl.rcsntx.swbell.net) joined #forth 20:11:22 no ? 20:11:25 yes 20:11:29 i looked at the definition 20:11:35 i was wondering why WORD was being employed. 20:11:41 not what to use. 20:11:51 because of find's requirements. 20:12:08 okay. 20:12:19 --- part: Bushmills left #forth 20:12:26 i didn't know counted strings existed until this evening. i thought strings were starting address and length 20:12:32 word USUALLY parses the next token delimited string out of the input stream and puts it at HERE 20:12:42 find wants the string to be searched for at HERE 20:12:48 ahh 20:12:59 modern strings are c-addr u, but counted strings crop up now and then. 20:13:25 wtf is c-addr u ? 20:13:27 so how to counted strings work internally? where is the count held. 20:13:27 oh 20:13:30 address and length 20:13:32 on the stack 20:13:41 count converts a counted string into that format 20:14:02 first char of the string, zpg. 20:14:25 which limits your strings to 255 bytes :) 20:14:46 ahh, this is getting very interesting. thanks for clearing that up. 20:15:10 time to test this. 20:15:17 counted strings are also known as pascal strings. 20:15:21 * zpg` nods 20:17:17 how do you resize a partition in linux ? 20:17:27 cfdisk? 20:17:31 or fdisk 20:17:42 I440r: carefully 20:17:55 thers no data on it 20:18:08 i just want to shrink the first prtition and grow the second one down 20:18:13 without having to delete either 20:18:22 okay, so count does pascal->addr u 20:18:33 is there a simple builtin for addr u -> pascal ? 20:18:42 or does this have to be written manually? 20:18:42 drop 1- 20:19:01 * slava is writing a pastebin 20:19:03 which will only work if the address actually points 1 char beyond the count byte of a counted string 20:19:08 in forth ? 20:19:10 hehe 20:19:10 and a web framework to go with it! 20:19:21 slava: forth or factor? 20:19:26 c"foo" makes a counted string. 20:19:33 ahh ok 20:19:39 factor is a forth :) 20:20:04 the drop 1- example --> if addr u has been put on the stack ": histring s" hi" ;", we can't guarantee that 1- the address is going to contain the count can we? 20:20:23 well... I'd say Forth is untyped. 20:20:59 It isn't, in that example. 20:21:28 forth has types, but no type checks 20:21:37 right. 20:21:58 zpg, a s" string has no count byte. 20:22:08 indeed. so this drop 1- seems incorrect for conversion. 20:22:19 right. 20:22:47 PLACE is a common-isage word for making a counted string in memory. 20:22:49 linus t doesnt like forth for that very reason... maybe he would like factor :) 20:24:46 Quartus_: thanks. 20:25:02 i read more into pfa, create ... does> today ... forth gets more and more intriguing :) 20:25:09 been writing a lot more in QF too. 20:25:18 it does it by copying the string to a specified target. 20:26:37 yeah, i can see how it would be easy to allocate space for ((length) characters + 1), then copy the string into the 1+ offset and write the length to the first byte. 20:27:14 that's the way. 20:27:21 :) 20:30:16 i need to debug my xml parser 20:38:26 --- join: snowrichard (n=richard@12.18.108.162) joined #forth 21:06:54 night all 21:06:57 --- quit: zpg` ("ERC Version 5.1.3 (IRC client for Emacs)") 21:30:28 --- quit: segher (Nick collision from services.) 21:30:35 --- join: segher_ (n=segher@dslb-084-056-136-068.pools.arcor-ip.net) joined #forth 21:45:52 --- quit: snowrichard ("Leaving") 21:46:42 --- join: snowrichard (n=richard@12.18.108.162) joined #forth 21:48:51 --- quit: snowrichard (Client Quit) 22:05:01 --- quit: nighty_ ("Disappears in a puff of smoke") 22:46:21 --- quit: arke (Read error: 104 (Connection reset by peer)) 22:48:15 --- quit: slava () 22:49:01 --- join: arke (n=Chris@pD9E049C4.dip.t-dialin.net) joined #forth 22:49:01 --- mode: ChanServ set +o arke 23:18:50 --- join: snowrichard (n=richard@12.18.108.162) joined #forth 23:19:11 hey 23:28:10 --- quit: arke (Read error: 110 (Connection timed out)) 23:41:23 --- quit: snowrichard ("Leaving") 23:42:45 --- join: arke (i=Chris@x458.vpn.hrz.tu-darmstadt.de) joined #forth 23:42:45 --- mode: ChanServ set +o arke 23:49:50 good morning 23:59:59 --- log: ended forth/06.10.15