Tony Garnock-Jones uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-tonyg.1001.mcz
==================== Summary ====================
Name: System-tonyg.1001
Author: tonyg
Time: 9 February 2018, 1:04:21.615446 pm
UUID: 761c7a6f-cd55-4660-a4f5-5baadcd7ab37
Ancestors: System-mt.1000
Attempting to set Preferences bigDisplay caused a DNU in Preferences class >> #displaySizeChanged invoking #smallLandFonts, which doesn't seem to be implemented anywhere in the stock image. I suspect this is code rot; this commit removes the call to Preferences class >> #smallLandFonts from #displaySizeChanged.
=============== Diff against System-mt.1000 ===============
Item was changed:
----- Method: Preferences class>>displaySizeChanged (in category 'updating - system') -----
displaySizeChanged
self flag: #todo.
- "only change font on small-land image"
- self smallLandFonts.
self tinyDisplay
ifTrue: [self enable: #scrollBarsNarrow]
ifFalse: [self disable: #scrollBarsNarrow].
self tinyDisplay
ifTrue:[self disable: #biggerHandles]
ifFalse:[self enable: #biggerHandles]!
Tony Garnock-Jones uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-tonyg.1151.mcz
==================== Summary ====================
Name: Kernel-tonyg.1151
Author: tonyg
Time: 9 February 2018, 12:55:51.129682 pm
UUID: b5708007-672e-4c5e-a6b6-8cfab8dab44b
Ancestors: Kernel-tonyg.1150
Update Promise >> #waitTimeoutMSecs: to stop waiting if the promise is rejected, as well as if it's accepted.
=============== Diff against Kernel-tonyg.1150 ===============
Item was changed:
----- Method: Promise>>waitTimeoutMSecs: (in category 'waiting') -----
waitTimeoutMSecs: msecs
+ "Wait for at most the given number of milliseconds for this promise to settle.
+ Answer true if it is resolved, false otherwise. False can therefore mean EITHER 'timeout' OR 'rejected'."
- "Wait for at most the given number of milliseconds for this promise to resolve. Answer true if it is resolved, false otherwise."
| sema delay |
sema := Semaphore new.
self whenResolved: [sema signal].
+ self whenRejected: [sema signal].
delay := Delay timeoutSemaphore: sema afterMSecs: msecs.
[sema wait] ensure: [delay unschedule].
^ self isResolved.!
Hi Tony,
Yes, I do think this discussion is good for the squeak-dev list. I hope
you don't mind, I am CCing the list for follow ups.
On Fri, Feb 09, 2018 at 05:58:24PM +0000, Tony Garnock-Jones wrote:
> Hi again David,
>
> So just now I thought I'd practice a bit by treating some old packages
> to get them out of the inbox. I managed to treat two, apparently
> successfully, but each time, when I clicked on the move-to-treated-inbox
> button, the web server never came back, eventually yielding 504 gateway
> timeout. The session appeared to be borked at that point, so I logged in
> fresh from the front page.
Yes, that is what I have been seeing also. I think that Eliot had suggested
that it was something to do with gathering diffs for the list when committing,
but it seems now that it is happening after any sort of update. I even
got a timeout after I set a temporary password for you, so it seems like
a thing that happens after any sort of respository change.
>
> No problems with squeaksource.com that I've noticed yet.
>
I am trying guess what the difference might be. The squeaksource.com
image is just doing an hourly image save, whereas the source.squeak.org
never saves its image, but instead is serializing the repository out to
a data.obj file (this based on my taking a quick look around the server
earlier today to try to find out what was going on).
I wonder if perhaps changes to the repository are triggering long-running
serialize to disk operations?
>
> Also, can I just double check some monticello policy with you? I don't
> want to bother the list with newbie questions :-) (Though of course if
> you think these questions *should* go to the list, let me know, and I'll
> post them there for the group!)
>
> We currently have Kernel 1150 in trunk, and fn.1151 and tonyg.1151 in
> the inbox.
>
> I like tonyg.1151, and if I'd been able to, I'd have put it straight in
> trunk. (It was failure to be able to do so that led me to email earlier
> today!)
>
> What's best practice here? There are two subquestions I'm interested in:
Best practices for these cases are not obvious, and we should probably
document them better.
>
> 1. Say I have what seems to me to be an uncontroversial change, but it's
> in the Kernel package, which seems a bit special. Should I:
> A) put it in Inbox, and ask on the mailing list for a bit of review?
> B) trust myself, stick it in Trunk, and deal with any fallout later?
Either way you should trust yourself :-)
If you think that other people are likely to comment, or to suggest
alternative approaches, then it is good to put it in the inbox first.
Give it a day or two for review and comment, then move from inbox
to trunk (using the web interface) if there no objections. I would
say that "no objections" is a good test, since you may grow old waiting
for positive acknowledgements sometimes ;-)
If you are happy with the change and do not expect much feedback, then
just go ahead and commit to trunk. That gets it done quickly with no
worries concerning branching. Once in a while you will make a mistake,
and that is not a problem. It is easy to back out a mistake, and we all
do it from time to time.
>
> 2. Say we're in the situation now with fn.1151 getting some pushback,
> but imagine that my tonyg.1151 is totally OK and the right thing to do
> is stick it in Trunk. Should I (or whoever does it):
> A) Move It To Trunk with the special button?
> B) Wait for the situation with fn.1151 to resolve itself, at which
> point a merge of tonyg.1151 and fn.1151 will end up being committed
> to Trunk as whoever.1152?
> C) Something else??
Move it from inbox to trunk using the web interface, then do a merge if
needed and commit the merge to trunk. This preserves all original MCZ
files to avoid confusion, and the merging is an easy step to resolve
any conflicts.
In your example above, the fn.1151 can also be merged at a later time,
so your moving tonyg.1151 does not prevent fn.1151 from being adopted
also.
>
> I was thinking it seems like whenever there are multiple heads, there'll
> be some merge-related pain at some point, and I'm wondering when that
> pain is best dealt with.
>
>
> Tony
I was rather nervous about doing the merging too, but it turns out to be
painless.
Dave
Chris Cunningham uploaded a new version of Squeak-Version to project The Trunk:
http://source.squeak.org/trunk/Squeak-Version-cbc.5133.mcz
==================== Summary ====================
Name: Squeak-Version-cbc.5133
Author: cbc
Time: 10 February 2018, 11:30:39.217775 am
UUID: da6eac14-0ac4-6a4d-b44e-f2e3a1b2ffc3
Ancestors: Squeak-Version-cbc.5132
Fix postcript to call unload more cleanly - this already includes all of the 'complexity' of the previous call.
=============== Diff against Squeak-Version-cbc.5132 ===============
Item was changed:
(PackageInfo named: 'Squeak-Version') postscript: '#( ''Exceptions'' ''FlexibleVocabularies'' ''ScriptLoader'' ) do: [:package|
+ (MCPackage named: package) unload.
- (MCPackage named: package) workingCopy unload.
- (MCPackage named: package) workingCopy unregister.
].'!
A new version of EToys was added to project The Inbox:
http://source.squeak.org/inbox/EToys-fn.320.mcz
==================== Summary ====================
Name: EToys-fn.320
Author: fn
Time: 10 February 2018, 5:41:54.520402 pm
UUID: 426d114e-cc88-4f1b-848d-377a5b873aba
Ancestors: EToys-eem.319
Move to "logical operations".
=============== Diff against EToys-eem.319 ===============
Item was removed:
- ----- Method: Boolean>>xor: (in category '*Etoys-Squeakland-logical operations') -----
- xor: aBoolean
- "Exclusive OR. Answer true if the receiver is not equivalent to aBoolean."
-
- ^(self == aBoolean) not!
A new version of Kernel was added to project The Inbox:
http://source.squeak.org/inbox/Kernel-fn.1152.mcz
==================== Summary ====================
Name: Kernel-fn.1152
Author: fn
Time: 10 February 2018, 5:39:43.015522 pm
UUID: 3f388945-f981-4f1e-830e-a296f4d45a2a
Ancestors: Kernel-fn.1151
Move to "logical operations".
=============== Diff against Kernel-fn.1151 ===============
Item was added:
+ ----- Method: Boolean>>xor: (in category 'logical operations') -----
+ xor: aBoolean
+ "Exclusive OR. Answer true if the receiver is not equivalent to aBoolean."
+
+ ^(self == aBoolean) not!
A new version of System was added to project The Inbox:
http://source.squeak.org/inbox/System-tonyg.1001.mcz
==================== Summary ====================
Name: System-tonyg.1001
Author: tonyg
Time: 9 February 2018, 1:04:21.615446 pm
UUID: 761c7a6f-cd55-4660-a4f5-5baadcd7ab37
Ancestors: System-mt.1000
Attempting to set Preferences bigDisplay caused a DNU in Preferences class >> #displaySizeChanged invoking #smallLandFonts, which doesn't seem to be implemented anywhere in the stock image. I suspect this is code rot; this commit removes the call to Preferences class >> #smallLandFonts from #displaySizeChanged.
=============== Diff against System-mt.1000 ===============
Item was changed:
----- Method: Preferences class>>displaySizeChanged (in category 'updating - system') -----
displaySizeChanged
self flag: #todo.
- "only change font on small-land image"
- self smallLandFonts.
self tinyDisplay
ifTrue: [self enable: #scrollBarsNarrow]
ifFalse: [self disable: #scrollBarsNarrow].
self tinyDisplay
ifTrue:[self disable: #biggerHandles]
ifFalse:[self enable: #biggerHandles]!
A new version of Kernel was added to project The Inbox:
http://source.squeak.org/inbox/Kernel-tonyg.1151.mcz
==================== Summary ====================
Name: Kernel-tonyg.1151
Author: tonyg
Time: 9 February 2018, 12:55:51.129682 pm
UUID: b5708007-672e-4c5e-a6b6-8cfab8dab44b
Ancestors: Kernel-tonyg.1150
Update Promise >> #waitTimeoutMSecs: to stop waiting if the promise is rejected, as well as if it's accepted.
=============== Diff against Kernel-tonyg.1150 ===============
Item was changed:
----- Method: Promise>>waitTimeoutMSecs: (in category 'waiting') -----
waitTimeoutMSecs: msecs
+ "Wait for at most the given number of milliseconds for this promise to settle.
+ Answer true if it is resolved, false otherwise. False can therefore mean EITHER 'timeout' OR 'rejected'."
- "Wait for at most the given number of milliseconds for this promise to resolve. Answer true if it is resolved, false otherwise."
| sema delay |
sema := Semaphore new.
self whenResolved: [sema signal].
+ self whenRejected: [sema signal].
delay := Delay timeoutSemaphore: sema afterMSecs: msecs.
[sema wait] ensure: [delay unschedule].
^ self isResolved.!