From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 10.182.213.74 with SMTP id nq10mr38649140obc.39.1436715631622; Sun, 12 Jul 2015 08:40:31 -0700 (PDT) X-Received: by 10.140.91.110 with SMTP id y101mr212737qgd.39.1436715631520; Sun, 12 Jul 2015 08:40:31 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!news.glorb.com!qs7no4253013igc.0!news-out.google.com!4ni80118qgh.1!nntp.google.com!e109no430284qge.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Sun, 12 Jul 2015 08:40:31 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=75.74.189.161; posting-account=yiWntAoAAAC1KqC_shmxJYv07B9l6LNU NNTP-Posting-Host: 75.74.189.161 References: User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <3e374c9e-f4d9-473d-b2b7-f72d144a3c37@googlegroups.com> Subject: Re: Self-modifying code From: David Botton Injection-Date: Sun, 12 Jul 2015 15:40:31 +0000 Content-Type: text/plain; charset=ISO-8859-1 Xref: news.eternal-september.org comp.lang.ada:26795 Date: 2015-07-12T08:40:31-07:00 List-Id: > So, except for shared (loaded at runtime) or dynamic (loaded on demand) > libraries, the answer is NO! So not true... I've done it and I am sure many others have here too. In the old days it was a much more common technique when space was tight. Almost any language can do it, and no language in and of itself can really prevent it. Ada prevents you from shooting yourself in the foot by mistake, but anyone can do it on purpose. > Note: Dynamic libraries are normally a complete sub-system of routines > not just a simple single function type plug-in. Not true, I'd almost say the majority of dynamic libraries I've used (outside basic std libs) are components. You would be surprised how often those dynalibs have no more than one function, say a factory to an IUknown interface etc. Also tons of plugin APIs, etc. I've used in the past with one function access, etc. Dynamic libs are a very solid way to swap code around at runtime. David Botton