[Vm-dev] Underscore for assignment in VMMaker and related plugins

Marcel Taeumel marcel.taeumel at hpi.de
Thu Aug 12 07:07:04 UTC 2021

Hi Dave --

> Do you (or someone else) want to implement 1a)?
> If yes, can we do 1) near term until the implementation
> is available?

We do not have enough control over code-load order to make this work without hacking something we might regret into Monticello. :-) I would love to extent Monticello to give packages more control over code-load order by themselves. Maybe I will get some idea while working on FFI. There is this rather inflexible MethodAddtion >> postLoad ...

Am 12.08.2021 01:07:41 schrieb David T. Lewis <lewis at mail.msen.com>:

On Tue, Aug 10, 2021 at 09:40:05AM -0700, Eliot Miranda wrote:
> Hi Dave, Hi Marcel,
> > On Aug 8, 2021, at 5:40 PM, David T. Lewis wrote:
> >
> > ???
> > Background: By convention the assignment operator in modern day Squeak
> > is ':=' and it Cuis it is '_'. The actual fonts are rendered nicely in
> > either case for Cuis and Squeak.
> >
> > The VMs used for Cuis and Squeak consist of the VM proper along with various
> > VM plugins such as OSProcessPlugin and VectorEnginePlugin. The VM plugins
> > are written in Smalltalk ("slang") with supporting external code as needed.
> > The Smalltalk code for each VM plugin is translated to C code, and the
> > resulting C code is expected to be correct regardless of the dialect of
> > Squeak/Cuis in which the plugin is written.
> >
> > The generated C code for a VM plugin is the same regardless of whether the
> > Smalltalk source is written in the '_' or ':=' convention. However, mixing
> > these two conventions in the same VMMaker image may be confusing, especially
> > if the (Squeak) image has disabled its 'Allow underscore selectors' preference.
> >
> > OK, enough background. The question I want to present is this:
> >
> > The new VectorEnginePlugin is being developed in Cuis, and therefore uses
> > the '_' convention in its Smalltalk source code. When building a new
> > opensmalltalk-vm VMMaker image from primary sources, the 'Allow underscore
> > selectors' preference' is disabled, presumably in order to catch VM plugin
> > code that accidentally uses the '_' convention. However, in the case of
> > VectorEnginePlugin, the use of '_' is intentional, and we can expect it
> > to be used for current and future versions of the plugin Smalltalk code
> > as development proceeds.
> >
> > So should we:
> >
> > 1) Relax the restriction and allow VectorEnginePlugin to be loaded without
> > modification in a VMMaker image
> >
> > or:
> >
> > 2) Convert current and future versions of the VectorEnginePlugin Smalltalk
> > to use ':=' for assigments prior to loading in a Squeak VMMaker image
> > (method author/timestamps would be preserved).
> >
> > I personally prefer 1) but consider either option to be reasonable and doable.
> >
> > Comments? Preferences?
> 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.

Hi Eliot,

Do you (or someone else) want to implement 1a)? If yes, can we do 1) near
term until the implementation is available?

Otherwise, Juan has offered to replace underscores with := in the upstream


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20210812/701c167b/attachment-0001.html>

More information about the Vm-dev mailing list