Path: news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!border-3.nntp.ord.giganews.com!nntp.giganews.com!Xl.tags.giganews.com!local-2.nntp.ord.giganews.com!news.giganews.com.POSTED!not-for-mail NNTP-Posting-Date: Sat, 21 Jun 2025 07:23:41 +0000 Subject: Re: VMS Newsgroups: comp.os.linux.misc References: <102ka4k$9umt$2@dont-email.me> <87tt4i9nw5.fsf@eder.anydns.info> <102l0h9$fjtb$5@dont-email.me> <4_GdncCsf-Nqe8n1nZ2dnZfqnPSdnZ2d@giganews.com> <103392c$lpbg$5@dont-email.me> <1033o4a$1qj6$3@dont-email.me> <1035ldd$u0ib$4@dont-email.me> From: c186282 Date: Sat, 21 Jun 2025 03:23:25 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: <1035ldd$u0ib$4@dont-email.me> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Message-ID: <5KWcndcdSMZgwMv1nZ2dnZfqnPqdnZ2d@giganews.com> Lines: 32 X-Usenet-Provider: http://www.giganews.com X-Trace: sv3-TABFa45Gh5nf+WJxJCRfXcr67cLy5gH0bgfIN++WmJ3Sys/5TEztbnrXhkT9LGYOuqvWEVcMSeO3fxl!ziItbFbl2przvRe+BsxU1nQeX2kVVsYlywyVUctfeMNSSVnlPY6YcJe/NQjNKNYJDq6Uddg1I+/Z X-Complaints-To: abuse@giganews.com X-DMCA-Notifications: http://www.giganews.com/info/dmca.html X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 On 6/21/25 3:02 AM, Lawrence D'Oliveiro wrote: > On Fri, 20 Jun 2025 21:19:35 +0100, Richard Kettlewell wrote: > >> Secondly, many checks can be optimized out. e.g. iterating over an array >> (or a prefix of it) doesn’t need a check on every access, it just needs >> a check that the loop bound doesn’t exceed the array bound[1]. > > And remember, Ada has subrange types, just like Pascal before it. This > means, if you have something like (excuse any errors in Ada syntax) > > nr_elements : constant integer := 10; > subtype index is > 1 .. nr_elements; > > buffer : array index of elt_type; > buffer_index : index; > > then an array access like > > buffer(buffer_index) > > doesn’t actually need to be range-checked at that point, because the > value of buffer_index is already known to be within the valid range. "Already known" is great, I pref it when possible ... but the modern stuff tends to be built with the 'infinitely extensible' mindset. Little data sets, a few small params, become HUGE sets and params 20 years on. I've done ONE borderline 'medium' Ada app ... never again. Just TOO anal-retentive - half your work is DEFEATING that so you can get ANYTHING useful done.