00:00:00 --- log: started forth/06.12.13 00:12:37 --- join: arke (n=Chris@pD9E0607F.dip.t-dialin.net) joined #forth 00:33:38 --- join: ecraven (n=nex@eutyche.swe.uni-linz.ac.at) joined #forth 01:06:15 --- mode: ChanServ set +o arke 01:09:24 --- quit: JasonWoof ("off to bed") 01:09:29 --- quit: slava () 01:10:59 --- quit: Quartus (Read error: 104 (Connection reset by peer)) 01:11:03 --- join: JasonWoof (n=jason@c-71-192-26-248.hsd1.ma.comcast.net) joined #forth 01:11:04 --- mode: ChanServ set +o JasonWoof 01:11:21 --- join: Quartus (n=trailer@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #forth 01:11:21 --- mode: ChanServ set +o Quartus 01:16:36 --- quit: Amanita_Virosa ("Woops.") 01:26:11 --- quit: Shine (Read error: 104 (Connection reset by peer)) 01:27:53 --- join: Shine_ (n=Frank_Bu@xdsl-81-173-176-35.netcologne.de) joined #forth 01:28:06 --- nick: Shine_ -> Shine 01:28:10 --- quit: arke (Read error: 110 (Connection timed out)) 01:48:22 --- join: arke (n=Chris@x185.vpn.hrz.tu-darmstadt.de) joined #forth 01:48:23 --- mode: ChanServ set +o arke 01:56:54 --- quit: crc (Read error: 60 (Operation timed out)) 02:34:36 --- join: Cheery (n=Cheery@a81-197-54-146.elisa-laajakaista.fi) joined #forth 03:01:11 --- join: crc (n=crc@pool-151-197-233-220.phil.east.verizon.net) joined #forth 03:01:27 --- mode: ChanServ set +o crc 03:15:21 --- quit: Shine ("Chatzilla 0.9.77 [Firefox 2.0/2006101023]") 03:51:04 --- quit: arke (Read error: 110 (Connection timed out)) 04:45:24 --- join: arke (n=Chris@x340.vpn.hrz.tu-darmstadt.de) joined #forth 04:46:03 --- join: zpg (n=user@user-514fca8b.l3.c4.dsl.pol.co.uk) joined #forth 04:47:30 Afternoon. 04:49:07 hi 04:49:19 --- mode: ChanServ set +o arke 04:49:37 hi arke 04:59:48 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 05:00:12 hmm, given that S" is an IMMEDIATE word, how come gforth's "see" retains my s" ..." (albeit as s\" ...") when SEEing a word definition, such as : blah s" hi" ; -- i assume we're actually embedding the sliteral inside blah. 05:02:42 --- join: vatic (n=chatzill@pool-162-84-178-20.ny5030.east.verizon.net) joined #forth 05:03:25 hi vatic! 05:18:29 Hi zpg. I'm just leaving for work. Noticed you and Quartus had a chance to go over that code. Does it work now? 05:20:11 hi ray 05:20:12 hi zpg, Raystm2! 05:20:21 arke! vatic! 05:20:25 Nan says hi both. 05:21:13 zpg - the manner of compiled strings and the manner of SEEn definitions each depend on cleverness; gforth clearly has gotten its cleverness in sync, here. IAC, IMMEDIAcy has absolutely nothing to do with this. 05:31:03 Raystm2: yep, nicely thanks. 05:31:20 again, what does IAC stand for? 05:31:58 in any case. 05:32:31 don't see how immediacy is irrelevant; s" ..." is an immediate word, and when state=compile, the output of parse is handed to sliteral. 05:37:09 --- quit: virsys (Read error: 104 (Connection reset by peer)) 05:38:15 so i would think compiling ": blah s" hi" ;" would result in an sliteral in the body of blah. this seems to be suggested by the constant (c-addr u) pair on the stack when blah is called. yet SEE suggests something very different. 05:38:40 well, when you've questions, feel free to ask them. 05:39:08 okay -- 'what gives'? 05:39:18 is blah embedding a sliteral, or not? 05:40:07 I don't have gforth, but it's certainly doing something like that. 05:44:11 I don't know why this confuses you, but consider: a strategy here is to embed the string literal in-place, within the word definition. So clearly the inner interpreter needs to know where string literals are -- it can't simply interpret them as machine code or addresses to words or such. And if the inner interpreter can do this, SEE can also do that when it examines the exact same structure. 05:44:45 And if SEE prints out something friendlier, why not? It already prints : , it already somehow distinguishes integers and prints those as such. 05:45:33 it even has BEGIN ... AGAIN , when BEGIN probably doesn't even exist, physically, in the word definition. 05:45:48 true, but i wanted to confirm the nature of the representation. imagine that s" isn't immediate, and returns a new pair every time it's called. 05:45:48 --- join: timlarson_ (n=timlarso@65.116.199.19) joined #forth 05:46:59 here's another example ==> 05:47:06 : mys" [char] " parse postpone 2literal ; immediate 05:47:06 : blah mys" hi there" ; 05:47:12 where see blah gives ==> 05:47:17 : blah 05:47:18 8407608 05:47:18 8 05:47:18 ; 05:47:22 which makes perfect sense to me. 05:48:16 OK, then you understand? Good. I understood more of this by some bizarre Forth system with a bizarre decompiler. Please continue to feel free to ask questions. 05:48:17 replacing 2literal with sliteral on the other hand gives a very different output for SEE. one that is less clear. 05:49:03 how gracious of you. 05:49:27 here's the curious part: 05:49:31 : blah mys" hi" ; redefined blah ok 05:49:31 see blah 05:49:31 : blah 05:49:31 s\" 05:49:36 h 05:49:37 i 05:49:42 " 05:49:43 ; ok 06:02:03 zpg - you can take 'ask questions' as you like. I'd prefer that you take it as 'ayrnieu will try to answer questions and will otherwise more easily not respond'. There's some technical IRC channel culture in that, too, but nevermind. 06:02:19 * zpg nods 06:02:19 ok. 06:28:03 --- join: Ray_work (n=Raystm2@199.227.227.26) joined #forth 06:28:40 wb Ray 06:28:42 Good morning, happy peoples. :) 06:28:44 thanks :) 06:28:49 de nada 06:29:09 did you get a chance to answer my inquiry this morning? if so I left and missed it. :) 06:29:32 about yesterday's code? 06:31:02 ya. 06:31:34 all working well. stripped out the redundant code, and used Neal's suggestion of create/does> 06:32:08 the old "add-xyz" stuff was due to my generating entries through iteration. i factored the iteration out, so the "add-xyz" factoring was redundant. 06:32:58 --- nick: Raystm2 -> nanstm 06:45:51 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 06:45:52 --- mode: ChanServ set +o tathi 06:49:51 --- join: virsys (n=virsys@or-71-53-65-55.dhcp.embarqhsd.net) joined #forth 07:03:52 --- quit: vatic (Remote closed the connection) 07:05:18 I see. Thanks for including me in that. I learned something there. :) 07:17:33 good stuff. 07:23:39 --- quit: ecraven ("bbl") 07:35:32 --- quit: arke (Read error: 110 (Connection timed out)) 07:37:33 --- quit: crest_ (Read error: 60 (Operation timed out)) 07:37:58 --- join: crest_ (n=crest@p54897385.dip.t-dialin.net) joined #forth 08:02:33 --- join: jackokring (n=jackokri@static-195-248-105-144.adsl.hotchilli.net) joined #forth 08:20:13 zpg: that's interesting about s"/see in gforth 08:20:17 I wonder what it's doing 08:20:46 JasonWoof - gforth's s\" interprets \n , &c. 08:20:55 perhaps it sees that the address in the literal is pointing to the place where it stores strings, and therefor displays it differently 08:21:17 oh, that's cool 08:21:49 cooool 08:22:26 what's the &c thing? 08:22:35 'et cetera' 08:22:42 ahh 08:22:49 that's great, I didn't know about that feature 08:23:39 A while ago I was working with lots of constant strings with " in them. But none had \n so I made my own string allocator word that read to the end of the line 08:24:39 and SLITERAL doesn't just drop two cells within the definition. In at least one system, it stores the actual string within the definition, and in execution of the definition a word will fetch the address and length of this string, place it on the stack, and then skip the execution pointers past the string. 08:24:57 ahh, could be that 08:25:26 yeah, IsForth does that. 08:25:34 don't think it's called SLITERAL though :) 08:26:43 It might make sense to study a description of ITC and DTC definition structures. Which describe LIT as a word that places the next cell of the word on the stack and then advances the IP past that cell, and so on. 08:28:33 in gforth sliteral appears to inline the data 08:30:55 makes sense 08:30:59 it's pretty space effecient 08:31:14 it amuses me to see that PFE's SEE distinguishes between S" and SLITERAL -compiled strings within a word-- I don't know why it does that. Some concern for pre-ANS code, maybe. 08:31:23 then sliteral can compile this sequence: 1) call to (sliteral) 2) string length 3) string data 08:32:03 something like: : (sliteral) r@ dup 4+ swap @ r> over + alligned >r ; 08:55:53 SEE in Gforth is just doing what it can to reproduce the original source. 09:00:25 yeah. it's pretty nifty 09:11:43 --- quit: jackokring (Read error: 110 (Connection timed out)) 09:23:36 --- join: I440r (n=mark4@70.102.202.162) joined #forth 09:39:44 --- join: neceve (n=claudiu@unaffiliated/neceve) joined #forth 09:45:04 --- join: jackokring (n=jackokri@static-195-248-105-144.adsl.hotchilli.net) joined #forth 10:05:34 --- quit: segher (Nick collision from services.) 10:05:45 --- join: segher (n=segher@dslb-084-056-193-252.pools.arcor-ip.net) joined #forth 10:08:49 --- join: jackokring[1] (n=jackokri@static-195-248-105-144.adsl.hotchilli.net) joined #forth 10:15:30 --- join: Quartus_ (n=Quartus_@209.167.5.2) joined #forth 10:15:30 --- mode: ChanServ set +o Quartus_ 10:18:24 --- quit: jackokring (Read error: 110 (Connection timed out)) 10:49:50 hey. What's up? 10:50:10 Quartus_ :) 10:50:29 hey missed ya last night. I'm sure you have a good excuse for not being here. hehe :) 10:50:41 I came by later. 10:51:04 oh, yes. I saw you and zpg's convo this morn at alarm time. 10:51:35 I was asleep, doing some renovations yesterday, wore me out. 10:51:38 I don't know why I don't think of create/does> more often. 10:51:41 :) 10:51:56 Something about the bathroom, iirc? 10:52:34 right. Shower/tub plumbing, blowtorches, brass, copper, etc. :) 10:52:50 getting over the create/does> wall is supposed to be a milestone. I'm just not at that milestone, I suppose. 10:52:54 :) 10:52:55 hehe 10:53:20 Well, if the women don't find you hansom, they better find you handy. :) 10:53:28 create/does> is pretty simple to understand and use. Bit harder to implement. 10:53:39 yes. I think that as well. 10:53:43 right :) Red Green. 10:54:20 You have to recognise the time for create/does>. Usually after hours of makeing the ends not meet quite right. 10:54:43 and since most newcomers immediately fall into the trap of thinking they can learn Forth by implementing it, they think create/does> is hard. 10:55:04 I like Red Green. I record a month or two of episodes and then watch them in a weekend. 10:55:10 ya. 10:56:16 Ray_work: I imagine it doesn't help that you have mostly (?) used forths that don't have create/does> 10:56:27 I especially like those black and white silent slapstick that Bill Green makes. 10:56:42 they're good. :) 10:56:46 tathi: excellent point. Goes right to my excuse. 10:57:59 --- join: snoopy_1711 (n=snoopy_1@dslb-084-058-124-038.pools.arcor-ip.net) joined #forth 10:58:02 somebody in retro was just trying to work examples in 'thinking forth' using retroforth, unsuccessfully. 10:58:17 Quartus: it's a quality show, very creative all around with language, used to have neat songs, great slap stick movies, and all of those "DuckTape*junkYard" inventions... 10:58:31 That damn duct even 10:58:37 Smith is a funny guy. 10:58:49 duck even 10:58:54 ya. 10:59:10 it's duct. 10:59:19 sorry I meant Goose. 10:59:22 from the movie 10:59:34 didn't see the movie. 10:59:34 and the brand is DuckTape. 10:59:52 there is one brand with 'duck' in the name. 12:59:06 --- log: started forth/06.12.13 12:59:06 --- join: clog (n=nef@bespin.org) joined #forth 12:59:06 --- topic: 'Welcome to #forth. We discuss the Forth programming language and a variety of technical subjects. Introduction: http://tinyurl.com/kvawv | Starting Forth: http://tinyurl.com/rm7pq | Thinking Forth: http://tinyurl.com/nsy4j | Gforth compiler: http://tinyurl.com/s8uho | ANS/ISO Forth Standard doc: http://tinyurl.com/nx7dx | http://quartus.net/search | Paste: http://forth.pastebin.ca' 12:59:06 --- topic: set by Quartus on [Sat Nov 25 22:45:21 2006] 12:59:06 --- names: list (clog arke madwork_ Snoopy42 @Quartus_ jackokring[1] segher neceve I440r crest_ virsys @tathi Ray_work timlarson_ virl zpg @crc @Quartus @JasonWoof Sukoshi nanstm TreyB Zarutian absentia madgarden nighty timlarson warpzero ayrnieu ccfg cmeme) 13:03:18 : does> compile (does>) compile exit (coloncfa) , ; IMMEDIATE 13:03:59 --- join: neceve_ (n=claudiu@unaffiliated/neceve) joined #forth 13:04:13 : (does>) R@ 2+ 'last 2+ ! ; 13:06:29 A test. : bah does> @ . ; create foo 42 , bah foo -> 42 13:10:50 : create : here 4 + literal ( 2 ) compile noop ( 1 ) compile exit ( 1 ) ; 13:11:33 what are ( 1 ) and ( 2 ) in aid of? 13:11:49 count of cells 13:11:59 hence 4+ 13:12:45 oh ok. The last time I built one like this, I backpatched the addr literal too, so as to not have to precalculate it and not have it be brittle. 13:14:06 hi 13:14:42 hi zpg 13:14:46 : (does>) r@ 1+ ( coloncfa ) 'last 3 + ! ; 13:14:50 hi Quartus_ 13:16:16 : does> compile (does>) compile exit (coloncfa) , ; immediate 13:17:35 --- quit: neceve (Read error: 110 (Connection timed out)) 13:22:09 --- join: arke_ (n=Chris@pD9E0756D.dip.t-dialin.net) joined #forth 13:28:13 --- quit: timlarson_ ("Leaving") 13:39:37 --- quit: arke (Read error: 110 (Connection timed out)) 13:51:04 --- join: Shine (n=Frank_Bu@xdsl-84-44-130-162.netcologne.de) joined #forth 13:52:05 --- join: Quartus___ (n=Quartus_@209.167.5.1) joined #forth 13:52:42 --- nick: arke_ -> arke 13:54:17 --- quit: Quartus_ (Read error: 60 (Operation timed out)) 14:01:59 --- join: Raystm2 (n=NanRay@adsl-69-149-62-12.dsl.rcsntx.swbell.net) joined #forth 14:16:29 --- quit: nanstm (Read error: 110 (Connection timed out)) 14:19:46 --- quit: jackokring[1] (Read error: 104 (Connection reset by peer)) 14:22:17 --- join: jackokring (n=jackokri@static-195-248-105-144.adsl.hotchilli.net) joined #forth 14:30:25 --- join: skas (n=skas@202.55.146.182) joined #forth 14:32:09 --- quit: skas (Client Quit) 14:32:28 --- join: skas (n=skas@202.55.146.182) joined #forth 14:38:57 --- quit: jackokring (Read error: 60 (Operation timed out)) 14:43:55 --- quit: Ray_work (Read error: 104 (Connection reset by peer)) 14:53:02 --- part: zpg left #forth 15:35:13 --- quit: neceve_ ("Leaving") 15:38:29 --- join: earth| (n=sqrt@82-35-248-212.cable.ubr06.dals.blueyonder.co.uk) joined #forth 16:08:18 --- quit: Shine (Nick collision from services.) 16:08:22 --- join: Shine_ (n=Frank_Bu@xdsl-81-173-234-72.netcologne.de) joined #forth 16:08:35 --- nick: Shine_ -> Shine 16:31:27 --- quit: virl ("Verlassend") 17:42:15 --- quit: Shine ("Chatzilla 0.9.77 [Firefox 2.0/2006101023]") 17:50:10 --- quit: earth| ("\") 17:50:43 --- join: earth| (n=sqrt@82-35-248-212.cable.ubr06.dals.blueyonder.co.uk) joined #forth 18:12:44 --- quit: arke (Read error: 131 (Connection reset by peer)) 18:13:37 --- quit: tathi ("leaving") 19:27:01 --- quit: earth| ("\") 19:29:41 --- join: earth| (n=sqrt@82-35-248-212.cable.ubr06.dals.blueyonder.co.uk) joined #forth 19:42:56 --- join: Cheery (n=Cheery@a81-197-54-146.elisa-laajakaista.fi) joined #forth 20:04:31 --- join: slava (n=slava@CPE0080ad77a020-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 20:04:31 --- mode: ChanServ set +o slava 20:04:37 Quartus: "You can rent a woman , but if you stop paying rent ....... " 20:16:24 Heh 20:22:18 That's our werty. 21:04:46 --- quit: earth| ("\") 21:22:11 --- quit: crest_ (Read error: 110 (Connection timed out)) 21:44:29 --- join: Crest (n=crest@p54897579.dip.t-dialin.net) joined #forth 22:07:45 --- quit: skas ("Leaving") 23:59:59 --- log: ended forth/06.12.13