[squeak-dev] The Trunk: ReleaseBuilder-eem.172.mcz
David T. Lewis
lewis at mail.msen.com
Sat Jan 6 16:02:55 UTC 2018
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, and
that the system will be recompiled as a side effect of selecting a different
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.
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
More information about the Squeak-dev