Deutsch English Français Italiano |
<v99v4r$kldc$3@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!2.eu.feeder.erje.net!3.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Ruvim <ruvim.pinka@gmail.com> Newsgroups: comp.lang.forth Subject: Re: Juggling system-compilation items Date: Sun, 11 Aug 2024 13:09:46 +0400 Organization: A noiseless patient Spider Lines: 47 Message-ID: <v99v4r$kldc$3@dont-email.me> References: <v957nr$jq4q$2@dont-email.me> <0ec1b5bb411c30d7598c4d5cae50fcdf@www.novabbs.com> <v98sed$kldc$2@dont-email.me> <nnd$162ac816$5abf8036@f906b0f6e82ced92> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Sun, 11 Aug 2024 11:09:47 +0200 (CEST) Injection-Info: dont-email.me; posting-host="aeb8ee31ec6e39a8b25b82ab00e99322"; logging-data="677292"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/nvNSIyMKbK/h1rTNMHIDD" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:imEPb3Jl4HcHv1ogue/ks9aeZD0= In-Reply-To: <nnd$162ac816$5abf8036@f906b0f6e82ced92> Content-Language: en-US Bytes: 2445 On 2024-08-11 12:38, albert@spenarnc.xs4all.nl wrote: > In article <v98sed$kldc$2@dont-email.me>, Ruvim <ruvim.pinka@gmail.com> wrote: >> On 2024-08-10 12:57, PMF wrote: >>> I think !csp and ?csp are common also in other systems. I certainly did >>> not invent them. >> >> Yes, it's a simple method to check the control-flow structures balance >> from the FIG-Forth model. >> >> I would suggest avoiding this method in Forth implementations. > > It saved me a lot of mistakes. ciforth reports an error. > If you care to look the error up in the documentation, you can see > that you can turn this off, if you want to. I don't mean removing this check. I mean using another implementation. This check is easy to implement without being tied to stack depth. For example: -1023 here + constant colon-magic : :noname ( -- xt colon-sys ) :noname colon-magic ; : : ( "name" -- colon-sys ) : colon-magic ; : ; ( colon-sys -- ) colon-magic <> -22 and throw postpone ; [ drop ] \ due to new `:` and old `;` ; immediate : does> ( colon-sys -- colon-sys ) colon-magic <> -22 and throw postpone does> colon-magic ; immediate -- Ruvim