<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Feb 19, 2020 at 10:45 AM tim Rowledge <<a href="mailto:tim@rowledge.org">tim@rowledge.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><br>
<br>
> On 2020-02-18, at 6:08 PM, David T. Lewis <<a href="mailto:lewis@mail.msen.com" target="_blank">lewis@mail.msen.com</a>> wrote:<br>
> <br>
> Not obvious, but worth knowing:<br>
> <br>
> "Smalltalk listBuiltinModules" gives a list of all internal plugins.<br>
> These are the plugins that are compiled into the main VM executable.<br>
> <br>
> "Smalltalk listLoadedModules" give a list of all external plugins that<br>
> have so far been loaded. It is not necessarily a list of all of the<br>
> external plugins, rather it is the external plugins that have been<br>
> referenced by the image. The external plugins are loaded on demand,<br>
> and once loaded, are available for fast access to the primitives that<br>
> they provide.<br>
<br>
Also note that you can unload a plugin; this is primarily a benefit when you are developing a plugin since you can build it, compile it, try it, decide something needs more work, unload it, re build it, recompile it, try it again and so on. Much faster than building it internal every time and rebuilding the vm etc.<br>
<br>
> <br>
> If a plugin is compiled as a built-in module, and if it also is<br>
> compiled as a separate external plugin (Windows dll or Unix shared<br>
> library), then the external plugin overrides the primitive implemented<br>
> in the built-in module.<br>
<br>
<br>
The key point about the external over-riding internal is to support bug fixing without replacing the entire vm. It does of course also almost completely obviate the value of the SecurityPlugin.<br></blockquote><div><br></div><div>The SecurityPlugin could be extended to allow/disallow plugin un/re/loading and could refuse to allow itself to be unloaded.</div><div> </div><div><br></div><div>P.S. I'm getting a bit frustrated that VM discussions are being held on the general purpose list and not on vm-dev.  Not because I don't want Vm discussions here, but that vm-dev is a place of record.  Please try and cc vm-dev when a discussion strays that way.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">tim<br>
--<br>
tim Rowledge; <a href="mailto:tim@rowledge.org" target="_blank">tim@rowledge.org</a>; <a href="http://www.rowledge.org/tim" rel="noreferrer" target="_blank">http://www.rowledge.org/tim</a><br>
A hacker does for love what others would not do for money.<br>
<br>
<br>
<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div></div>