<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        Hi Juan!<div class="mb_sig"></div>
                                        <div><br></div><div>> [...] <span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">I'll happy </span><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">to make the change.</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">This would be the easiest solution. :-) Thank you!</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Hi Eliot!</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">> [...] </span><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">the class side method must be loaded before methods containing a underscore assignments [...]</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Currently, Squeak+Monticello give only coarse-grained control over code load order:</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">- Packages can be ordered via MC "dependencies" (see "required packages" in context menu)</span><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">- Packages can be ordered in an update map / MCConfiguration</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">- MCPackageLoader implements some generic rules such as "addition-before-removal", which affects "move methods" across packages (see MCPackageLodaer >> #basicLoad)</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">So, even the #compilerClass hook is currently not working as one might expect. We currently rely on the byte code being present in and installed from .mcz files. See snapshot.bin inside the .mcz.</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Maybe also see MethodAddition >> #notifyObservers.</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Best,</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Marcel</span></div><blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 10.08.2021 19:21:48 schrieb Juan Vuletich <juanvuletich@zoho.com>:</p><div style="font-family:Arial,Helvetica,sans-serif"> <br>Hi Folks,<br><br>On 8/10/2021 1:40 PM, Eliot Miranda wrote:<br>><br>> Hi Dave, Hi Marcel,<br>><br>>> On Aug 8, 2021, at 5:40 PM, David T. Lewis<lewis@mail.msen.com>  wrote:<br>>><br>>> <br>>> Background: By convention the assignment operator in modern day Squeak<br>>> is ':=' and it Cuis it is '_'. The actual fonts are rendered nicely in<br>>> either case for Cuis and Squeak.<br>>><br>>> The VMs used for Cuis and Squeak consist of the VM proper along with various<br>>> VM plugins such as OSProcessPlugin and VectorEnginePlugin. The VM plugins<br>>> are written in Smalltalk ("slang") with supporting external code as needed.<br>>> The Smalltalk code for each VM plugin is translated to C code, and the<br>>> resulting C code is expected to be correct regardless of the dialect of<br>>> Squeak/Cuis in which the plugin is written.<br>>><br>>> The generated C code for a VM plugin is the same regardless of whether the<br>>> Smalltalk source is written in the '_' or ':=' convention. However, mixing<br>>> these two conventions in the same VMMaker image may be confusing, especially<br>>> if the (Squeak) image has disabled its 'Allow underscore selectors' preference.<br>>><br>>> OK, enough background. The question I want to present is this:<br>>><br>>> The new VectorEnginePlugin is being developed in Cuis, and therefore uses<br>>> the '_' convention in its Smalltalk source code. When building a new<br>>> opensmalltalk-vm VMMaker image from primary sources, the 'Allow underscore<br>>> selectors' preference' is disabled, presumably in order to catch VM plugin<br>>> code that accidentally uses the '_' convention. However, in the case of<br>>> VectorEnginePlugin, the use of '_' is intentional, and we can expect it<br>>> to be used for current and future versions of the plugin Smalltalk code<br>>> as development proceeds.<br>>><br>>> So should we:<br>>><br>>>   1) Relax the restriction and allow VectorEnginePlugin to be loaded without<br>>>      modification in a VMMaker image<br>>><br>>> or:<br>>><br>>>   2) Convert current and future versions of the VectorEnginePlugin Smalltalk<br>>>     to use ':=' for assigments prior to loading in a Squeak VMMaker image<br>>>     (method author/timestamps would be preserved).<br>>><br>>> I personally prefer 1) but consider either option to be reasonable and doable.<br>>><br>>> Comments? Preferences?<br>> My preference is 1a :-). 1a is supporting a Compiler patch that allows one to assert the 'Allow underscore selectors' preference on a per-class basis and adding some class side state (a method? A method containing a pragma?) to VectorEnginePlugin that asserts the preference.  Maybe this is too elaborate, and there’s a bootstrap problem (the class side method must be loaded before methods containing a underscore assignments) but I like not having the preference globally.<br>><br>>> Dave<br><br>I can change VectorEnginePlugin to use only ':=' assignments. I used '_' <br>assignments only because it is what I am used to. But this is code that <br>is meant to be used in Squeak and not only in Cuis. Dave, unless you see <br>additional value in allowing '_' assignment in plugin code, I'll happy <br>to make the change.<br><br>Thanks,<br><br>-- <br>Juan Vuletich<br>www.cuis-smalltalk.org<br>https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev<br>https://github.com/jvuletich<br>https://www.linkedin.com/in/juan-vuletich-75611b3<br>@JuanVuletich<br><br></lewis@mail.msen.com></div></blockquote></div>