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=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,53a571639ed0bc5a X-Google-Attributes: gid103376,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news4.google.com!feeder3.cambrium.nl!feeder1.cambrium.nl!feeder6.cambrium.nl!feed.tweaknews.nl!news.astraweb.com!border2.a.newsrouter.astraweb.com!newsfeed101.telia.com!nf02.dk.telia.net!news.tele.dk!feed118.news.tele.dk!not-for-mail Date: Fri, 10 Aug 2007 16:59:45 +0200 From: Poul-Erik Andreasen User-Agent: Icedove 1.5.0.12 (X11/20070607) MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Dynamic functions References: <46bb3919$0$19890$edfadb0f@dread11.news.tele.dk> <6sdjo0lxt0xs.1ep1p45e58zk2$.dlg@40tude.net> In-Reply-To: <6sdjo0lxt0xs.1ep1p45e58zk2$.dlg@40tude.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Message-ID: <46bc7afa$0$172$edfadb0f@dread11.news.tele.dk> Organization: TDC Totalloesninger NNTP-Posting-Host: 80.166.145.174 X-Trace: 1186757371 dread11.news.tele.dk 172 80.166.145.174:11849 X-Complaints-To: abuse@post.tele.dk Xref: g2news2.google.com comp.lang.ada:1388 Date: 2007-08-10T16:59:45+02:00 List-Id: Dmitry A. Kazakov wrote: > On Fri, 10 Aug 2007 08:54:57 +0200, in comp.lang.ada you wrote: > >> Poul-Erik Andreasen wrote: >> >>> How is the best way to make a representation of a function/algorithm >>> wich can bee setup at runtime in Ada. >> Is there any reason that you cannot convert the function to Ada, write >> it to a file, compile it to a plug-in/DLL/shared library, and then >> load the plug-in/DLL/shared library? > > Yup, this is how MatLab and many other similar languages do, if you really > need to *program* (as opposed to draw (:-)) something... > >> The complication is that it requires an Ada compiler on the running >> system, but the benefit is pretty fast execution. > > ? > > Execution includes elaboration of the code. In your case elaboration would > mean to call the compiler, to link the DLL, to load the DLL. How frequent > the given function F will be called per run? If you are not going to design > some image rendering/processing system with millions of calls per function, > it probably will not pay off. In my case wee are in fact talking about several million calls per function. Jacob have bee proposing this model to me before, but i find i a bit to cumbersome. By the way it is not images it is timeseries > Other potential issues: > > 1. You will need a lot of free system resources to be able to run the > compiler/linker in parallel to your program, free memory and disk space. > > 2. The response time (from request to execute F to its start) will be > awful. > > 3. You will need to manage files (lots of) and other environmental stuff. > Deployment, integration etc might turn difficult. This is my main issue > > 4. DLL interface does not know Ada. Exporting complex data types and > objects of from a dynamically loaded DLL could be difficult. > > 5. DLL handling stuff is non-portable. > This could also become an issue.