[squeak-dev] Failing tests on CI

Eliot Miranda eliot.miranda at gmail.com
Thu Mar 14 19:22:13 UTC 2013


On Thu, Mar 14, 2013 at 11:42 AM, Colin Putney <colin at wiresong.com> wrote:

>
>
>
> On Thu, Mar 14, 2013 at 11:20 AM, Eliot Miranda <eliot.miranda at gmail.com>wrote:
>
>
>> We want e.g.
>>
>> Smalltalk recompileAll.
>> (CompiledMethod allInstances select:
>>  [:m|
>> m ~~ thisContext method
>> and: [m methodClass isNil
>>  or: [m selector isNil
>> or: [m ~~ (m methodClass >> m selector)]]]]
>> => #()
>>
>> But I don't see how to get near this:
>> 1. lots of GUI stuff can only be cleared by closing windows.  Can we
>> export the morphs and bring them back in?
>> 2. (quite easy) we need to save and restart to restart a number of
>> processes
>>
>
> Is this what you'd like to see as a generally useful facility, or is it
> what you think we need to do to fix the failing tests?
>

As a generally useful facility.  If the system is to be continuously
updated and it is to remain self-compiling then it needs to function
properly across updates that change the compiler.  We've had a number of
these recently, inlining of timesRepeat:, addition of optimized selectors
ifTrue:. whileTrue: et al to literals, fixing the return value of optimized
to:do: and now Environments.  That the system needs recompiling after
certain changes is arcane, that this is tricky to do right is even more
arcane.  Those who publish a package that modifies the compiler generally
know that a recompilation is necessary but avoid it (I suspect) because...
the recompilation is tricky.  If we had a reasonably effective recompile
then we'd be less reticent about offering to recompile after load.  I think
we should provide something like an ability to note that recompilation is
necessary and then a facility to ask the user if they want to recompile.
 e.g. a class var in SmalltalkImage which is a dirty flag marking the
system as needing recompilation, plus a facility to prompt the user to
recompile if they want to.  So then out post-load scripts can contain
somethign like

Smalltalk noteRecompilationIsNecessary.
Smalltalk promptUserToRecompile

which, if interactive, pops up a dialog asking to recompile and then
recompiles smartly if the user says so.  The recompilation necessary flag
gets cleared by Compiler recompileAll, not just by Smalltalk recompileAll.
 (If one uses Compiler recompileAll then recompilation has been done albeit
messily).


> Colin
>
>
>
>


-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20130314/412a8cbd/attachment.htm


More information about the Squeak-dev mailing list