Path: csiph.com!usenet.pasdenom.info!aioe.org!.POSTED!not-for-mail From: "Rod Pemberton" Newsgroups: comp.lang.forth Subject: Re: gforth too bloated ? Date: Sat, 17 May 2014 21:09:06 -0400 Organization: Aioe.org NNTP Server Lines: 27 Message-ID: References: <4b4ea6f6-3b09-434a-a501-ff31190b9f4a@googlegroups.com> <7qadnesZfp6twfPOnZ2dnUVZ_qGdnZ2d@supernews.com> <2014May11.141024@mips.complang.tuwien.ac.at> <2014May13.184005@mips.complang.tuwien.ac.at> <47qdnXip89VGwe_OnZ2dnUVZ_jadnZ2d@supernews.com> <2014May14.140323@mips.complang.tuwien.ac.at> <7xha4sl4hf.fsf@ruckus.brouhaha.com> <2014May15.162231@mips.complang.tuwien.ac.at> <2014May16.151900@mips.complang.tuwien.ac.at> NNTP-Posting-Host: CNsg4fVcCsvs3UaOgZtQCw.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Opera Mail/12.16 (Linux) X-Notice: Filtered by postfilter v. 0.8.2 Xref: csiph.com comp.lang.forth:30445 On Fri, 16 May 2014 09:19:00 -0400, Anton Ertl wrote: > : test { x y } x y x y ; ok > : test > >l >l @local0 @local1 @local0 @local1 lp+2 ; What seems to be an issue is that for an interpreter to compile the body, then 'x' or 'y' *MUST* be in the dictionary. They must be immediate words, compiling words, and somehow made temporary so they aren't left in the dictionary. That's not including the issue of defining them and assigning the appropriate local to them which must be handled with { brace. The other option is to define another interpreter for } brace ... The rest can be restructured as mentioned in Andrew's post, so that the compiled code for lp+2 corresponds to the locations of the } brace. Something like: : cln_lcl r> lp + ; : test >l >l ' cln_lcl >r 2 >r @local0 @local1 @local0 @local1 ; Rod Pemberton