Deutsch English Français Italiano |
<v5ke5a$2sasd$2@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Krishna Myneni <krishna.myneni@ccreweb.org> Newsgroups: comp.lang.forth Subject: Re: 0 SET-ORDER why? Date: Thu, 27 Jun 2024 14:22:18 -0500 Organization: A noiseless patient Spider Lines: 87 Message-ID: <v5ke5a$2sasd$2@dont-email.me> References: <v5fjkr$1p13i$1@dont-email.me> <2024Jun26.094910@mips.complang.tuwien.ac.at> <667bd654$1@news.ausics.net> <v5h5h6$2565d$1@dont-email.me> <v5ioud$2ii4l$1@dont-email.me> <v5kde0$2sasd$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Thu, 27 Jun 2024 21:22:19 +0200 (CEST) Injection-Info: dont-email.me; posting-host="3e1155ef3c14984d719ad25c26716b5d"; logging-data="3025805"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/r+P6a+yWFEQr+zk22hc+j" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:ziXUS7qO5IkuVqjOpSb2sLVv2gs= Content-Language: en-US In-Reply-To: <v5kde0$2sasd$1@dont-email.me> Bytes: 4181 On 6/27/24 14:09, Krishna Myneni wrote: > On 6/26/24 23:14, Gerry Jackson wrote: >> On 26/06/2024 14:36, Ruvim wrote: >>> One possible use case: >>> >>> : turnkey ( -- ) 0 set-order >>> also Target definitions >>> also Minimal also >>> ; >> >> ALSO duplicates the wordlist at the head of the search order. If the >> search order is empty there is nothing to duplicate. Therefore ALSO >> applied to an empty search order ought to be an ambiguous condition. >> >> Presumably the above definition works because a target wordlist >> replaces whatever garbage ALSO leaves in the search order. So the >> definition might as well have 0 1 SET-ORDER instead of 0 SET-ORDER ALSO. >> Or better still TARGET-WORDLIST 1 SET-ORDER. Either removes the above >> justification for 0 SET-ORDER. >> > > Good analysis showing that > > 1) The definition of TURNKEY is flawed. > > 2) 0 SET-ORDER is not necessary. > > >> But having said that it is better for 0 SET-ORDER to do what is >> natural instead of yet another ambiguous condition. >> >> > Another possible use case: >> > >> > : s-to-n ( addr u -- n ) >> > depth >r >> > get-order n>r 0 set-order >> > ['] evaluate ['] execute-interpreting catch >> > nr> set-order >> > depth 1- r> <> if -12 throw then >> > ; >> >> This is a better use case e.g. if BASE is greater than decimal 10 >> converting an alphanumeric string to a number could clash with a word >> in the dictionary. Having an empty search order eliminates that >> possibility. >> > > This use case is convoluted and there may be a better of dealing with > the anticipated problem. If not, we should consider what's missing in > Forth allowing us to solve the problem more directly. > > > No one has pointed to a need for 0 SET-ORDER in interpretation state, > and there is no to undo its use in interpretation state in a standard. > Furthermore an empty search order contradicts the concept of a minimum > search order. > > The solutions are: > > 1) leave everything as is, and live with the contradiction and the > hazard of performing 0 SET-ORDER in interpretation state. > > 2) make SET-ORDER state-smart, and live with the contradiction. This > will potentially break code. > > 3) disallow zero as an argument to SET-ORDER e.g. throw an error for zero. > > Am I missing any other options? > > Personally, I favor 3) -- throwing an error when zero is an argument to > SET-ORDER. > Edits: No one has pointed to a need for 0 SET-ORDER in interpretation state, and there is no standard way to undo its use in interpretation state. 3) disallow zero as an argument to SET-ORDER e.g. throw an error for zero. This will break existing code where zero is an argument to SET-ORDER. Any idea of frequency of usage for 0 SET-ORDER . I don't believe I have ever used it in a definition. -- KM