00:00:00 --- log: started forth/09.09.06 00:07:59 --- join: f[x] (n=user@95.133.180.28) joined #forth 00:38:13 --- join: gogonkt (n=info@218.13.56.121) joined #forth 01:28:26 --- quit: gogonkt (Read error: 60 (Operation timed out)) 01:29:40 --- join: garfield__ (n=uwekloss@p54863C9A.dip.t-dialin.net) joined #forth 01:30:42 --- quit: garfield_ (Read error: 110 (Connection timed out)) 01:36:35 --- join: gogonkt (n=info@218.13.56.121) joined #forth 02:28:10 --- quit: gogonkt (Read error: 110 (Connection timed out)) 04:07:46 --- join: gogonkt (n=info@218.13.56.121) joined #forth 04:14:10 --- join: thom_ (n=thom@173.51.164.80) joined #forth 04:32:05 --- quit: thom_ ("This computer has gone to sleep") 04:49:15 --- join: thom_ (n=thom@pool-173-51-164-80.lsanca.fios.verizon.net) joined #forth 04:59:28 --- join: csmerlin (n=smileymy@99-31-211-124.lightspeed.sntcca.sbcglobal.net) joined #forth 05:49:04 --- join: neceve (n=ncv@unaffiliated/neceve) joined #forth 06:08:11 --- quit: gogonkt (Read error: 131 (Connection reset by peer)) 06:25:18 --- join: gogonkt (n=info@218.13.56.121) joined #forth 06:32:15 --- join: crc_ (n=charlesc@c-68-80-139-0.hsd1.pa.comcast.net) joined #forth 06:33:02 --- mode: ChanServ set +o crc_ 06:33:37 --- quit: crc (Nick collision from services.) 06:33:37 --- nick: crc_ -> crc 06:52:12 --- join: crc_ (n=charlesc@c-68-80-139-0.hsd1.pa.comcast.net) joined #forth 06:52:12 --- quit: crc (Read error: 104 (Connection reset by peer)) 06:55:25 --- mode: ChanServ set +o crc_ 06:55:31 --- nick: crc_ -> crc 07:00:21 --- join: segher (n=rehges@84.105.60.153) joined #forth 07:04:24 --- quit: gogonkt (Read error: 104 (Connection reset by peer)) 07:08:09 --- join: gogonkt (n=info@218.13.56.121) joined #forth 07:31:49 --- join: kar8nga (n=kar8nga@LRouen-152-83-15-79.w80-13.abo.wanadoo.fr) joined #forth 07:39:51 --- quit: thom_ ("This computer has gone to sleep") 07:48:32 --- quit: gogonkt (Read error: 104 (Connection reset by peer)) 07:55:02 --- quit: crc () 08:01:17 --- join: crc (n=charlesc@c-68-80-139-0.hsd1.pa.comcast.net) joined #forth 08:04:15 --- join: gogonkt (n=info@218.13.56.121) joined #forth 08:41:03 --- join: GeDaMo (n=gedamo@212.225.115.96) joined #forth 09:03:01 --- join: Judofyr (n=Judofyr@cC694BF51.dhcp.bluecom.no) joined #forth 09:18:51 segher: the non-standard behaviour in Jones Forth doesn't take much to fix, but hopefully the BB4W porter and Jones will fix the versions online. 09:19:00 So as not to confuse anyone else :-) 09:33:47 --- join: forther (n=forther@c-24-5-171-193.hsd1.ca.comcast.net) joined #forth 09:34:30 --- quit: forther (Client Quit) 09:41:06 --- quit: maht (Read error: 60 (Operation timed out)) 10:04:14 impomatic: sure, i just meant you could do e.g. : here here @ ; for your own code 10:20:02 erm that would be wrong 10:20:18 here returns the contents of the variable dp (dictionary pointer) 10:20:35 your new definition of here returns the contents of the memory address pointed to by the dictionary pointer 10:21:05 and theres little point in redefining here to : here dp @ ; as that is already its definiion 10:21:31 if you need to add a new version of "here" to some new vocabulary (because you have removed the forth voc from context) then you should do 10:21:41 ' here alias here 10:22:00 with your new voc being "current" and with forth still being in context 10:22:06 then remove forth from context 10:23:02 the new definition for here simply creates a new forth header for the already existing code for "here". it adds no new code 10:26:22 mark4: they're talking about a non-standard Forth 10:26:34 mark4: the problem is that the original here just returns the address of the variable, like if you said h or like dp in whatever system you are talking about 10:27:40 oh 10:32:08 so really : here dp ; <-- its defined like that? 10:32:12 or some such 10:32:20 ' dp alias here 10:32:38 Something like that 10:34:22 i suppose it is more like they use here _as the variable dp or h itself_ 10:37:46 which is just wrong in so many ways 10:37:53 i agree. : here here @ ; 10:38:04 i would put that at the top of every project 10:38:15 or have a "fixit.4th" and include that every time 10:38:23 it's not "wrong", it's just non-standard 10:39:14 I would probably do : dp here ; : here dp @ ; 10:39:51 or ' here alias dp if alias exists 10:46:39 that's only useful if you want to have direct access to the variable still, which isn't standard anyway, heh 10:48:00 --- join: gogonkt_ (n=info@218.13.60.71) joined #forth 10:49:43 and no. its wrong. isforth is "non standard" 10:50:05 but i dont go defining 5 constant 4 just to be different 10:50:10 which is pretty much what they are doing 10:52:27 i doubt they did it on purpose, it's probably just a beginner project 10:52:50 --- quit: gogonkt_ (Read error: 104 (Connection reset by peer)) 10:54:17 :) 10:57:58 --- join: gogonkt_ (n=info@218.13.60.71) joined #forth 10:59:33 --- quit: gogonkt (Read error: 110 (Connection timed out)) 11:26:10 --- join: crc_ (n=charlesc@c-68-80-139-0.hsd1.pa.comcast.net) joined #forth 11:26:11 --- quit: crc (Connection reset by peer) 11:27:12 --- join: crc (n=charlesc@c-68-80-139-0.hsd1.pa.comcast.net) joined #forth 11:28:32 --- quit: crc_ (Read error: 104 (Connection reset by peer)) 11:30:33 --- join: crc_ (n=charlesc@c-68-80-139-0.hsd1.pa.comcast.net) joined #forth 11:30:51 --- quit: crc (Read error: 54 (Connection reset by peer)) 11:41:24 --- quit: crc_ (Read error: 104 (Connection reset by peer)) 11:43:50 --- quit: pgas ("/quit") 12:16:59 --- quit: DrunkTomato () 12:17:34 --- join: crc (n=charlesc@c-68-80-139-0.hsd1.pa.comcast.net) joined #forth 12:22:30 --- join: Qcoder00 (n=chatzill@dyn-62-56-118-137.dslaccess.co.uk) joined #forth 12:22:36 Hi 12:22:46 I was wanting to ask something... 12:23:17 Do standrad Forth's have a word for moving an item from any depth on the stack to the top? 12:26:10 pick? 12:26:14 im not sure its standard 12:26:23 it's standard 12:26:31 CORE-EXT i think 12:26:47 it doesn't move it, but copy it 12:26:55 to actually move it, there is ROLL 12:27:44 OK my next question is ROLL primitive or can it be built from soemthing simpler? 12:27:47 oh right. my bad :) 12:28:00 I,E From pick and moving things on the stack down... 12:28:15 i dobut the standard would allow you to easilly define it in high level 12:28:18 it would be ugly 12:28:34 you can build it by hand 12:28:41 you could CODE it 12:28:43 wait, let me find it 12:29:20 The simple FORTH I am using isn't quite ANS , but it does have PICK 12:29:27 But no ROLL 12:29:30 : ROLL DUP BEGIN ?DUP WHILE ROT >R 1- REPEAT BEGIN ?DUP WHILE R> -ROT 1- REPEAT ; 12:30:19 if you have a stack in memory, and you can get the address of it, you can use MOVE as the base for ROLL 12:30:29 Thanks... I'll bear that in mind :) 12:30:54 i made my ROLL as slow as it is (see above) because people shouldn't bloody use it anyway, dammit :-) 12:31:18 I'm not sure the simple FORTH has all the words it uses anyway :) 12:31:23 Something I'll have to check :) 12:31:27 true lol. 12:31:33 all of those are very very standard words 12:31:43 In any case ROLL's probably better done as 'primitive' and coded directly... 12:31:47 Qcoder00, what segher was getting at there was that "if you need to use pick or roll what you really need to do is rethink your code" 12:31:49 : ?dup dup IF dup THEN ; 12:31:57 yeah 12:32:10 which i agree with in all but ONE case 12:32:14 the definition for .s :) 12:32:18 i do use "2 pick", which i called "under" 12:32:21 that needs pick :) 12:32:27 over 12:32:29 not under 12:32:38 over is 1 pick 12:32:49 dup is 0 pick 12:32:50 The specfic need for using ROLL and PICK was in implementing some grpahics routines... 12:32:53 well under pushes a copy of the top item UNDER the second 12:32:58 2pick is rot then 12:33:00 that is TUCK 12:33:00 That's tuck 12:33:16 erm damn lol 12:33:19 and ROT is 2 ROLL 12:33:21 ya 12:33:30 ill shut up now lol 12:33:36 heh :-) 12:33:38 For me it's easy to do x1 y1 x2 y2 RECTANGLE 12:33:53 then have to reverse the way I feed in the coordinates 12:34:13 qcoder yes thats ok. you can have 500 parameters on the stack for what ever word but its not advised to actually peek that deep into the stack 12:34:26 if you have to do stack manipulations deeper than 3 you should rethink 12:34:27 use locals, use some temp vars, or use the return stack more 12:34:31 erm NO 12:34:39 there is no such thing as a local variable GRRRRRRRR 12:34:46 oh i agree :-) 12:34:48 * mark4 snarls 12:34:52 lol 12:34:54 I am sure there are other ways to code rectangle so I don't need to ROLL or PICK 12:35:09 in most cases, if you have many parameters do a word, you are doing it wrong already 12:35:19 yes. inside rectangle you can do 2>r 's and 2dups and 2swaps 12:35:42 I might change to doing something like that 12:36:04 x1 y1 set-turtle x2 y2 rectangle 12:36:14 Do we have pastebin here? 12:36:57 You can use any pastebin-type site 12:37:21 But forth.pastebin.ca is mentioned in the topic 12:37:24 pastie.org , pastebin.ca , etc 12:38:21 --- join: thom_ (n=thom@pool-173-51-164-80.lsanca.fios.verizon.net) joined #forth 12:39:20 pluck is also 2 pick - I saw it on a list of non-standard words 12:41:46 yeah 12:41:52 i don't like the name though 12:41:58 :-) 12:42:02 to each his own, eh 12:53:19 http://forth.pastebin.ca/1556414 12:53:54 The reason I have to do some of things is to do with the way the grpahics driver under BBC BASIC For Windows works 12:54:23 ( Even though the FORTH I am using is nominally in assembler it uses the BBC Basic for Windows graphics drivers) 12:55:19 segher: To be fair you x1 y1 set turtle might be a better way of doing it :) 13:22:06 --- quit: thom_ ("This computer has gone to sleep") 13:31:33 --- quit: Qcoder00 ("ChatZilla 0.9.85 [Firefox 2.0.0.20/2008121709]") 13:35:59 --- join: Maki (n=Maki@dynamic-78-30-139-176.adsl.eunet.rs) joined #forth 14:15:53 --- quit: GeDaMo ("Leaving.") 14:17:33 --- quit: kar8nga (Read error: 110 (Connection timed out)) 14:29:52 --- quit: f[x] (Read error: 110 (Connection timed out)) 14:45:23 --- quit: Maki ("Leaving") 14:49:15 --- join: maht (n=maht__@85.189.31.174.proweb.managedbroadband.co.uk) joined #forth 15:06:26 --- quit: impomatic (Read error: 110 (Connection timed out)) 17:00:04 --- join: nighty^ (n=nighty@210.188.173.245) joined #forth 17:10:17 --- join: DrunkTomato (n=DEDULO@ext-gw.wellcom.tomsk.ru) joined #forth 17:15:51 --- quit: neceve (Read error: 110 (Connection timed out)) 17:20:51 --- join: Raystm2 (i=rastm2@c-24-8-232-212.hsd1.co.comcast.net) joined #forth 17:21:33 --- quit: Raystm2 (Client Quit) 17:32:27 --- join: Raystm2 (i=rastm2@c-24-8-232-212.hsd1.co.comcast.net) joined #forth 17:32:56 Hello, missed you. Have you seen kc5tja? :) 17:33:38 --- nick: Raystm2 -> help 17:34:07 --- nick: help -> Guest22555 17:34:53 --- nick: Guest22555 -> Raystm2 17:45:19 Why doesn't forth have some sort of commonly used facility for local variables? I like the idea of a postfix syntax... but variables are nice =) Is there a killer-example of why you wouldn't want to? 17:46:12 hi csmerlin, I've read some stuff recently about that subject. No reason not to use locals, that I can find. Just not really standard, I suppose. 17:47:05 Locals are used quite a bit in Object oriented installations, of course. 17:47:16 --- join: thom_ (n=thom@pool-173-51-164-80.lsanca.fios.verizon.net) joined #forth 17:47:33 raystm2: Thank you =) 17:47:46 my pleasure. 17:52:10 --- quit: DrunkTomato () 17:58:03 --- quit: thom_ ("This computer has gone to sleep") 18:04:29 --- quit: Snoopy_1611 (Read error: 60 (Operation timed out)) 18:14:24 --- join: Snoopy_1611 (i=Snoopy_1@dslb-084-059-104-156.pools.arcor-ip.net) joined #forth 18:14:32 --- quit: Raystm2 ("User pushed the X - because it's Xtra, baby") 18:29:27 csmerlin: a) local variables are inefficient, in most forth implementations; b) local variables encourage bad programming style (huge functions, lousy factoring, not thinking about stuff, etc) 18:30:31 anyway, there _is_ a commonly used facility for locals: { bla duh dom } -- note curlies, not parentheses 20:00:18 --- nick: gogonkt_ -> gogonkt 20:02:46 --- join: Al2O3 (n=Al2O3@c-24-9-43-112.hsd1.co.comcast.net) joined #forth 21:45:47 --- quit: gogonkt (Read error: 110 (Connection timed out)) 22:20:11 --- join: gogonkt (n=info@218.13.60.71) joined #forth 22:20:19 --- quit: mathrick (Read error: 60 (Operation timed out)) 22:35:37 --- nick: mark4 -> I440r 22:35:47 --- mode: ChanServ set +o I440r 22:47:34 --- join: mathrick (n=mathrick@users177.kollegienet.dk) joined #forth 23:12:40 --- join: f[x] (n=user@86-29-132-95.pool.ukrtel.net) joined #forth 23:22:08 --- join: kar8nga (n=kar8nga@LRouen-152-83-15-79.w80-13.abo.wanadoo.fr) joined #forth 23:59:59 --- log: ended forth/09.09.06