A new version of Monticello was added to project The Inbox:
http://source.squeak.org/inbox/Monticello-ct.707.mcz
==================== Summary ====================
Name: Monticello-ct.707
Author: ct
Time: 7 December 2019, 3:58:13.941146 pm
UUID: c5c14d57-ee2d-214d-81bf-b20eee03e2e5
Ancestors: Monticello-ct.706
Make modal MC tools more robust against multiprocessing
In certain simultation scenarios, is it possible that the parent process is not the active process, but still alive. I do not see any reason why we should forbid this case.
To watch a difference, for example, you can save a Monticello version and in the dialog window, inspect the accept button and do "[model perform: actionSelector] fork" on it. This works now.
=============== Diff against Monticello-ct.706 ===============
Item was changed:
----- Method: MCTool>>answer: (in category 'morphic ui') -----
answer: anObject
+ (modalProcess notNil and: [modalProcess isTerminated])
- (modalProcess notNil and: [modalProcess ~~ Processor activeProcess])
ifTrue: [^self inform: 'This modal dialog was interrupted, please close it'].
modalValue := anObject.
self close.!
A new version of Tools was added to project The Inbox:
http://source.squeak.org/inbox/Tools-ct.924.mcz
==================== Summary ====================
Name: Tools-ct.924
Author: ct
Time: 7 December 2019, 5:03:02.396431 pm
UUID: 0db76606-63d7-4a4a-94fd-99fe4a088304
Ancestors: Tools-mt.922
Fix a bug ProcessBrowser >> #selectedClass in case of no context selection
=============== Diff against Tools-mt.922 ===============
Item was changed:
----- Method: ProcessBrowser>>selectedClass (in category 'accessing') -----
selectedClass
"Answer the class in which the currently selected context's method was
found."
^ selectedClass
+ ifNil: [
+ selectedContext ifNil: [^ nil].
+ selectedClass := selectedContext receiver
- ifNil: [selectedClass := selectedContext receiver
ifNil: [selectedSelector := selectedContext method selector.
selectedContext method methodClass]
ifNotNil: [selectedContext methodClass]]!
Hi all,
may it be possible that the following methods are no longer in use and could be deprecated for the sake of simplicity?
Point
#u, #v
(class) #u:v:
SequenceableCollection
#errorFirstObject:
#errorLastObject:
Best,
Christoph
A new version of Help-Squeak-TerseGuide was added to project The Inbox:
http://source.squeak.org/inbox/Help-Squeak-TerseGuide-jr.13.mcz
==================== Summary ====================
Name: Help-Squeak-TerseGuide-jr.13
Author: jr
Time: 7 December 2019, 9:21:46.658998 pm
UUID: 7d846785-0ca0-3840-9489-59de4e607cca
Ancestors: Help-Squeak-TerseGuide-mt.12
Old-style assignment should not be the first thing a newcomer should learn.
Edited the page directly in the HelpBrowser. It added the parentheses and the key: and shouldStyle: sends.
=============== Diff against Help-Squeak-TerseGuide-mt.12 ===============
Item was changed:
----- Method: TerseGuideHelp class>>assignment (in category 'pages') -----
assignment
"This method was automatically generated. Edit it using:"
"TerseGuideHelp edit: #assignment"
+ ^(HelpTopic
- ^HelpTopic
title: 'Assignment'
contents:
'| x y z |
- "x _ 4. " "older assignment style, Squeak used to repurpose the underscore to a left-arrow glyph <-"
x := 5. "assignment"
x := y := z := 6. "compound assignment"
x := (y := 6) + 1.
+ "x _ 4. " "older assignment style, Squeak used to repurpose the underscore to a left-arrow glyph <-"
x := Object new. "bind to allocated instance of a class"
x := 123 class. "discover the object class"
x := Integer superclass. "discover the superclass of a class"
x := Object allInstances. "get an array of all instances of a class"
x := Integer allSuperclasses. "get all superclasses of a class"
x := 1.2 hash. "hash value for object"
y := x copy. "copy object"
y := x shallowCopy. "copy object (not overridden)"
y := x deepCopy. "copy object and instance vars"
y := x veryDeepCopy. "complete tree copy using a dictionary"
+ !!' readStream nextChunkText)
+ key: #assignment;
+ shouldStyle: true;
+ yourself!
- !!' readStream nextChunkText!
A new version of Kernel was added to project The Inbox:
http://source.squeak.org/inbox/Kernel-ct.1285.mcz
==================== Summary ====================
Name: Kernel-ct.1285
Author: ct
Time: 7 December 2019, 3:30:28.183146 pm
UUID: 13eb78c3-6473-7d48-a013-79fa853f407c
Ancestors: Kernel-mt.1284
Add hook #defaultCategoryForSelector: in ClassDescription
The other changes in Message and Process are really minor typos, so I am following Chris' suggestion not to spam the history with an extra commit for them. Hope this way appeal to you :)
=============== Diff against Kernel-mt.1284 ===============
Item was added:
+ ----- Method: ClassDescription>>defaultCategoryForSelector: (in category 'organization') -----
+ defaultCategoryForSelector: aSelector
+
+ ^ nil!
Item was changed:
----- Method: ClassOrganizer>>classifyAllUnclassified (in category 'classifying') -----
classifyAllUnclassified
| organizers |
organizers := self subject withAllSuperclasses collect: [:ea | ea organization].
(self listAtCategoryNamed: ClassOrganizer default) do: [:sel | | found |
+ found := (organizers collect: [:org | org categoryOfElement: sel])
+ detect: [:ea | ea ~= ClassOrganizer default and: [ea ~= nil]]
+ ifNone: [self subject defaultCategoryForSelector: sel].
- found := (organizers collect: [ :org | org categoryOfElement: sel])
- detect: [:ea | ea ~= ClassOrganizer default and: [ ea ~= nil]]
- ifNone: [].
found ifNotNil: [self classify: sel under: found]].
!
Item was changed:
----- Method: Message>>analogousCodeTo: (in category 'comparing') -----
analogousCodeTo: anObject
+ "For MethodProperties comparison."
- "For MethodPropertires comparison."
^self class == anObject class
and: [selector == anObject selector
and: [args = anObject arguments
and: [lookupClass == anObject lookupClass]]]!
Item was changed:
----- Method: Process>>effectiveProcess (in category 'accessing') -----
effectiveProcess
+ "effectiveProcess is a mechanism to allow process-faithful debugging. The debugger executes code on behalf of processes, so unless some effort is made the identity of Processor activeProcess is not correctly maintained when debugging code. The debugger uses evaluate:onBehalfOf: to assign the debugged process as the effectiveProcess of the process executing the code, preserving process identity."
- "effectiveProcess is a mechanism to allow process-faithful debugging. The debugger executes code
- on behalf of processes, so unless some effort is made the identity of Processor activeProcess is not
- correctly maintained when debugging code. The debugger uses evaluate:onBehalfOf: to assign the
- debugged process as the effectiveProcess of the process executing the code, preserving process
- identity."
^effectiveProcess ifNil: [self]!
Hi all,
as we are currently updating Squeak by Example<https://github.com/codeZeilen/SqueakByExample-english>, I came across the following section from the chapter Environment about Monticello:
To tell Monticello about your package, click on +Package, and type the name of the package, in his case "SBE". Monticello will add SBE to its list of packages; the package entry will be marked with an asterisk to show that the version in the image has not yet been written to any repository. [italic mine]
In context, a class under the system category "SBE" has been created before creating the package.
However, I cannot reproduce the described behavior in Trunk: I first need to raise another relevant SystemChangeNotifier event again before the asterisk appears. Just after creating the package, it is not displayed as modified.
Is this a regression in modern Monticello, or had the original SbE author dreamt a dream that has never become reality until today? :)
Best,
Christoph
Follow-up: thread on GitHub<https://github.com/codeZeilen/SqueakByExample-english/issues/21#issuecommen…>