[squeak-dev] The Trunk: ReleaseBuilder-eem.172.mcz

Eliot Miranda eliot.miranda at gmail.com
Sat Jan 6 17:38:55 UTC 2018


Hi David,

On Sat, Jan 6, 2018 at 8:02 AM, David T. Lewis <lewis at mail.msen.com> wrote:

> Hi Eliot,
>
> I'm not sure that I understand well enough to offer guidance, but is it the
> case that when SistaV1 bytecode is fully in place that the preference for
> preferredBytecodeSetEncoderClass will allow the user to switch bytecode,


Yes.  Selecting the preference will then arrange that subsequent
compilations will produce methods in that set.

and
> that the system will be recompiled as a side effect of selecting a
> different
> bytecode preferences?
>

I don't think setting the preference should recompile the system, though.
 a) recompilation takes of the order of a minute, depending on system size,
and b) recompilation leaves lots of unbound methods and blocks if not
followed by a system reinitialization phase.  Hence my focus now, after I
have the bytecode set fully working, is on setting the preference during
the release process with the idea that for most users it will be a
default.  Experimenters can of course do whatever they like, but for most
of us I expect we'd rathe it "just worked" and stayed well under the covers.


> If that is the case, then you may be able to set the value of the
> preference
> from ReleaseBuilder in setPreferences, but defer the activation of that
> preference
> until later at the end of prepareSourceCode.
>
> I'm thinking of something along the lines of:
>
>   CompiledCode class>>preferredBytecodeSetEncoderClass:
> aBytecodeEncoderSubclass recompile: aBoolean
>
> Aside from that suggestion, I am not very familiar with ReleaseBuilder so
> I'm not sure I can give help there.
>

Well, I'm learning :-).  Right now I'm learning that I should be focussing
on getting recompilation and decompilation to work without progressing to
ReleaseBuilder just yet :-)  My code has problems that need addressing
before I slow down my development by sitting in the
modify-compiler-then-test-recompile-in-the-ReleaseBuilder cycle :-)


> Dave
>
>
> On Fri, Jan 05, 2018 at 08:09:02PM -0800, Eliot Miranda wrote:
> > Hi Marcel, Hi David,
> >
> >     in modifying the ReleaseBuilder to allow the SistaV1 bytecode set to
> be
> > selected I'm not happy having to wait until all the checking before
> > prompting to use the bytecode set.  One could move the query earlier,
> into
> > setPreferences, but this means that the bytecode set would be in use
> before
> > the Compiler recompileAll step, and that isn't desirable while debugging
> > the byte code set.  Would you object to me adding an instance variable to
> > ReleaseBuilder class, useNewBytecodeSet or some such, which would be set
> in
> > setPreferences and read in recompileAll?
> >
> > On Fri, Jan 5, 2018 at 7:20 PM, <commits at source.squeak.org> wrote:
> >
> > > Eliot Miranda uploaded a new version of ReleaseBuilder to project The
> > > Trunk:
> > > http://source.squeak.org/trunk/ReleaseBuilder-eem.172.mcz
> > >
> > > ==================== Summary ====================
> > >
> > > Name: ReleaseBuilder-eem.172
> > > Author: eem
> > > Time: 5 January 2018, 7:20:47.150059 pm
> > > UUID: 4144895f-5617-4f80-9ab2-593eca77e2ac
> > > Ancestors: ReleaseBuilder-mt.171
> > >
> > > Allow the ReleaseBuilder to query if the SistaV1 bytecode set should be
> > > the default in a new release.
> > >
> > > =============== Diff against ReleaseBuilder-mt.171 ===============
> > >
> > > Item was changed:
> > >   ----- Method: ReleaseBuilder class>>prepareSourceCode (in category
> > > 'preparing') -----
> > >   prepareSourceCode
> > >         "Update code. Remove foreign packages."
> > >
> > >         MCMcmUpdater defaultUpdateURL: self buildRepository
> description.
> > >
> > >         MCMcmUpdater updateMissingPackages: true.
> > >         MCMcmUpdater enableUpdatesForAllPackages.
> > >
> > >         TestCase new ensureInternetConnectionTo: self buildRepository
> > > description.
> > >
> > >         "Flush all caches. If a previous download failed this is often
> > > helpful"
> > >         MCFileBasedRepository flushAllCaches.
> > >
> > >         "Save the current default updater, clear the registry, and
> > > re-register the current updater"
> > >         MCMcmUpdater clearRegistry.
> > >
> > >         [MCMcmUpdater default doUpdate: false. "non-interactive"]
> > >                 on: MCEmptyVersion do: [:warning | warning resume].
> > >
> > >         self
> > >                 unloadForeignPackages;
> > >                 checkForDirtyPackages;
> > >                 loadWellKnownPackages;
> > > +               checkForUndeclaredSymbols;
> > > +               recompileAll!
> > > -               checkForUndeclaredSymbols.
> > > -
> > > -       Compiler recompileAll.!
> > >
> > > Item was added:
> > > + ----- Method: ReleaseBuilder class>>recompileAll (in category
> 'scripts -
> > > support') -----
> > > + recompileAll
> > > +
> > > +       (Smalltalk classNamed: #EncoderForSistaV1) ifNotNil:
> > > +               [:sistaBytecodeSet|
> > > +                CompiledCode preferredBytecodeSetEncoderClass ~~
> > > sistaBytecodeSet ifTrue:
> > > +                       [(Project uiManager
> > > +                               confirm: 'Do you want to make it the
> > > default in this release?'
> > > +                               orCancel: [false]
> > > +                               title: 'The SistaV1 Bytecode Set Is
> > > Available') ifTrue:
> > > +                                       [CompiledCode
> > > +
> > >  installSecondaryBytecodeSet: sistaBytecodeSet;
> > > +
> > >  preferredBytecodeSetEncoderClass: sistaBytecodeSet]]].
> > > +
> > > +       Compiler recompileAll!
> > >
> > >
> > >
> >
> >
> > --
> > _,,,^..^,,,_
> > best, Eliot
>
> >
>
>
>


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


More information about the Squeak-dev mailing list