[squeak-dev] Preference settings for 5.3 release

Eliot Miranda eliot.miranda at gmail.com
Tue Dec 24 01:50:54 UTC 2019


Hi Christophe,

On Mon, Dec 23, 2019 at 11:25 AM Thiede, Christoph <
Christoph.Thiede at student.hpi.uni-potsdam.de> wrote:

> Hi all,
>
>
> just my two cents :)
>
>
> > Compiler
> > I claim we are long past the point where enabling block argument
> assignments or underscore assignment should be a default. Fix your damn
> code!
> > Are we sticking with the EncoderForV3PlusClosures encoder?
>
> IIRC someone explained recently that disabling this preference would make
> it impossible to load old code? I would not like to make this unnecessary
> restriction.
> Instead, I would suggest - provided that the following is implementable -
> to raise a special kind of warning if deprecated syntax is used. Users can
> then decide to suppress or not suppress these warnings. During loading old
> code, we can catch and ignore them. (And yes, we sometimes should work at
> improving/exchanging the UI of warnings).
>

I think that they;'re wrong :-)  Let me explain why.

The Cog VM supports up to two bytecode sets, selected by the sign bit of
the method header.  If the sign bit is not set the "primary" bytecode set
is selected, and if set the "secondary" bytecode set is selected.  Both the
primary and secondary bytecode sets are "installed" by setting a couple of
class variables in CompiledCode, one for the PrimaryBytecodeSetEncoderClass
and one for the SecondaryBytecodeSetEncoderClass. Which bytyecode set is
the preferred one is selected by yet another class
variable, PreferredBytecodeSetEncoderClass.

By default these variables have these values (they have these values ion
trunk currently)
PreferredBytecodeSetEncoderClass nil
PrimaryBytecodeSetEncoderClass EncoderForV3PlusClosures
SecondaryBytecodeSetEncoderClass EncoderForV3PlusClosures

What setting the preferred bytecode selector set to SistaV1 does is to set
these variables to these values:
PreferredBytecodeSetEncoderClass EncoderForSistaV1
PrimaryBytecodeSetEncoderClass EncoderForV3PlusClosures
SecondaryBytecodeSetEncoderClass EncoderForSistaV1

So what it *does not do* is change the meaning of the bit in the method
header.  A non-negative method header still means the method uses the old
bytecode set.  So old code continues to load.  It is entirely unaffected.
What it does mean is that any methods that are compiled (that are not quick
methods (*)) are compiled using the new bytecode set and will have negative
method headers.  So if you export them, e.g. via an ImageSegment, they will
use the SistaV1 bytecode set in the receiving image whether it has the
preference set or not.  Further, the VM will happily run the new bytecode
set because for a whole now the VM has had the two bytecode sets compiled
in in this way.  What will happen ion the image that doesn't have
the SecondaryBytecodeSetEncoderClass set to EncoderForSistaV1 is that the
debugger, etc, will get confused because they will interpret the new
byetcodes using the old encodings.

(*) quick methods don't have bytecodes, just a primitive number.  So these
methods keep being expressed in the old bytecode set because I've been too
lazy to rewrite quick method generation to respect
the PreferredBytecodeSetEncoderClass, because for the moment it makes no
difference.

Does this make sense or am I being too detailed and confusing?

Executive summary, the design was careful to *not* invalidate the old
bytecode set, to make using the new bytecode set an option that does not
break backwards compatibility.

In future if we want to jettison the old bytecode set and design a third
set, that's when we introduce backwards com potability issues, and we
introduce the need to express quick methods using the SistaV1 bytecode
set.  But for the moment we're safe.


> 'ignore style if only bold'?
>
> Didn't we talk about this recently? It is related to storing all
> TextAttributes into a compiled method. See here
> <http://forum.world.st/Text-gt-gt-unembellished-td5106986.html>.
> According to Tobias, it sounds like something that has developed
> historically, so I proposed to deprecate it.
> But yes, loosely related to browsing, I guess.
>
> > 'Use the new color picker' - is the new color pick not our pick for
> picking colors? If it still isn't the sensible choice more than 10 years
> later, maybe we should dump it completely.
>
> There still might be one feature which the classical color pick does have,
> but the new one is missing: Really "picking" a color from any pixel of the
> screen. Maybe we should add this feature. Or am I missing something?
>
> Merry Christmas,
> Christoph
> ------------------------------
> *Von:* Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im
> Auftrag von Nicola Mingotti <nmingotti at gmail.com>
> *Gesendet:* Montag, 23. Dezember 2019 10:56:36
> *An:* The general-purpose Squeak developers list
> *Betreff:* Re: [squeak-dev] Preference settings for 5.3 release
>
>
> Hi Elliot,
>
>
> Forgive me for encouraging you to proselytize on e.g. Quora.  Do you have
> a blog?  I'd love to read your impressions and criticisms.
>
>
>>
>>
>
> I am flattered, really:)
>
> At the moment I am putting some effort in the Video medium. I think it is
> extremely important to get people to try Squeak, they must see it in
> action. It is very very difficult to explain in textual form what it can do
> and why it is different. It is difficult for the reader to get the idea.
> (it was very difficult for me, and I am very much trained in learning by
> the book)
>
> When I produce something new I publish it in Linkedin.
> https://www.linkedin.com/in/nicola-mingotti-2612a940
>
> I usually copy the link also in Reddit "smalltalk" channel.
>
> I try to keep updated also the Swiki.
>
> If you have other suggestion of where to publish/link things or share
> points of view let me know. I will try to be there as well.
>
> bye
> Nicola
>
>
>
>
>
> Opinion of total beginners (so, partially also mine) should be weighted
>> less, because they do not know what is coming. Like opinion of students,
>> let them choose democratically and Calculus would be deleted from any
>> curriculum. :P
>>
>> bye
>> nicola
>>
>>
>>
>>
>> > On Dec 23, 2019, at 1:59 AM, David T. Lewis <lewis at mail.msen.com>
>> wrote:
>> >
>> > I am sure that both of those preferences will remain.
>> >
>> > I also agree with your view of colorful windows, and I always turn
>> > this preference on in my image(s). But I recall that this was discussed
>> > for the 5.2 release, and we had feedback from new users who did
>> > not like the window coloring. For that reason, we should probably
>> > keep the preference turned off in the release image.
>> >
>> > But I am not a "new user" any more, so if there are any fresh opinions
>> > on the subject of colorful windows, please speak up :-)
>> >
>> > Dave
>> >
>> >
>> > On Mon, Dec 23, 2019 at 12:29:03AM +0100, Nicola Mingotti wrote:
>> >>
>> >> I am totally 'pro' on reducing the number of preferences.
>> >>
>> >> But I ask you this:
>> >>
>> >> [1] Do not remove the preference to keep different windows in
>> different colors. That is one of the most useful decision you can make
>> IMHO. Why would you color the Browser, Workspace and Debugger in the same
>> way?
>> >>
>> >> I understand that all grey may seems more a "professional/industrial"
>> interface, but I guess we can leave that aim to Pharo and go on on our way.
>>
>> >>
>> >> [2] "do not remove the possibility of having larger fonts".
>> >>
>> >> With high High-DPI Squeak would be unusable out of the Box.
>> >>
>> >> bye
>> >> Nicola
>> >>
>> >>
>> >>
>> >>
>> >>> On Dec 20, 2019, at 11:18 PM, David T. Lewis <lewis at mail.msen.com>
>> wrote:
>> >>>
>> >>> A preference elimination initiative would be *very* welcome, but
>> >>> it is something that we should start working on immediately after
>> >>> the 5.3 release.
>> >>>
>> >>> Preferences are like other bad habits: easy to get into, and
>> >>> hard to eliminate. So let's all make a New Year's resolution to
>> >>> lose weight, exercise more, eat healthier food, and get rid of
>> >>> unnecessary preferences in Squeak.
>> >>>
>> >>> For the current release, I think that we should limit discussion
>> >>> to specific default preference settings that we might want to
>> >>> change for the upcoming release.
>> >>>
>> >>> Dave
>> >>>
>> >>> On Fri, Dec 20, 2019 at 12:57:15PM -0800, tim Rowledge wrote:
>> >>>> We have a *lot* of preferences - in my view way too many - and there
>> should be at least some discussion about the default values we provide for
>> 5.3
>> >>>> tl;dr - Too many preferences, too badly organised. reduce, make
>> decisions, simplify.
>> >>>>
>> >>>> I can't imagine I'll hit all of them here but let's try to get
>> something done -
>> >>>>
>> >>>> Arithmetic
>> >>>> Should we have these as preferences? How many people understand
>> enough about Burnikel-Ziegler recursion splits to make it sensible to
>> easily change?
>> >>>>
>> >>>> Compiler
>> >>>> I claim we are long past the point where enabling block argument
>> assignments or underscore assignment should be a default. Fix your damn
>> code!
>> >>>> Are we sticking with the EncoderForV3PlusClosures encoder?
>> >>>>
>> >>>> Examples
>> >>>> These are for the test suite and if possible should be hidden
>> >>>>
>> >>>> Files
>> >>>> The one entry here relates to the encoding of stdio streams so maybe
>> this category should be renamed?
>> >>>>
>> >>>> Graphics
>> >>>> Both entries relate to sub-pixel font rendering, so again, rename?
>> >>>>
>> >>>> Morphic
>> >>>> So. Many. Preferences.
>> >>>> Surely at least the text edit related ones ought to be removed and
>> kept to the 'editing' section?
>> >>>>
>> >>>> OLPC
>> >>>> Really?
>> >>>>
>> >>>> TextDiff
>> >>>> Could be better placed; in Tools?
>> >>>>
>> >>>> Tools
>> >>>> 'Use unified message labels' What does this do? Is it worth allowing
>> a choice for this sort of thing?
>> >>>>
>> >>>> browsing
>> >>>> Aargh! More options than 31 flavour ice-cream stores! How many are
>> actually of value?
>> >>>> 'ignore style if only bold'?
>> >>>> 'menu button in tool pane' - no actual senders, for example
>> >>>>
>> >>>> colors
>> >>>> 'Use the new color picker' - is the new color pick not our pick for
>> picking colors? If it still isn't the sensible choice more than 10 years
>> later, maybe we should dump it completely.
>> >>>>
>> >>>> fileout
>> >>>> are there ever good reasons to not have 24 hr timestamps? For not
>> checking for slips?
>> >>>>
>> >>>> general
>> >>>> Wow, still more flavours of ice-cream.
>> >>>> 'Read only mode' - no senders. It's so old there is no timestamp.
>> >>>> 'Use locale' is there any reason to ever not use it?
>> >>>>
>> >>>> .... and my brain melted at this point.
>> >>>>
>> >>>>
>> >>>>
>> >>>> tim
>> >>>> --
>> >>>> tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
>> >>>> Useful random insult:- Couldn't pour water out of a boot with
>> instructions on the heel.
>> >>>>
>> >>>>
>> >>>>
>> >>>
>> >>
>> >>
>> >
>>
>>
>>
>
> --
> _,,,^..^,,,_
> best, Eliot
>
>
>
>

-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20191223/3c043d2a/attachment.html>


More information about the Squeak-dev mailing list