<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Folks,<br>
<br>
I have just pushed an update to VectorEnginePlugin.pck.st at the
Cuis-Smalltalk-Dev Cuis repo to use only ANSI style assignment ' :=
'. In my system, generated C source is exactly the same as before.<br>
<br>
Thank you all for your help in integrating this in the official VMs!<br>
<br>
Cheers,<br>
<pre class="moz-signature" cols="72">--
Juan Vuletich
<a class="moz-txt-link-abbreviated" href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a>
<a class="moz-txt-link-freetext" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a class="moz-txt-link-freetext" href="https://github.com/jvuletich">https://github.com/jvuletich</a>
<a class="moz-txt-link-freetext" href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
@JuanVuletich</pre>
<br>
On 8/11/2021 4:14 AM, Marcel Taeumel wrote:<br>
<br>
<blockquote
cite="mid:Mailbird-8f60e3fd-f1cd-4cb6-a28f-061685fb1b83@hpi.de"
type="cite">
<fieldset class="mimeAttachmentHeader"></fieldset>
<div id="__MailbirdStyleContent" style="font-size: 10pt;
font-family: Arial; color: rgb(0, 0, 0); text-align: left;"
dir="ltr"> Hi Juan!
<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: rgb(170, 170, 170); margin-top: 10px;">Am
10.08.2021 19:21:48 schrieb Juan Vuletich
<a class="moz-txt-link-rfc2396E" href="mailto:juanvuletich@zoho.com"><juanvuletich@zoho.com></a>:</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>
<a class="moz-txt-link-abbreviated" href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a><br>
<a class="moz-txt-link-freetext" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a><br>
<a class="moz-txt-link-freetext" href="https://github.com/jvuletich">https://github.com/jvuletich</a><br>
<a class="moz-txt-link-freetext" href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a><br>
@JuanVuletich<br>
<br>
</lewis@mail.msen.com></div>
</blockquote>
</div>
</blockquote>
<br>
<br>
</body>
</html>