[squeak-dev] The Inbox: Kernel-ct.1455.mcz
commits at source.squeak.org
commits at source.squeak.org
Sat Apr 2 16:04:30 UTC 2022
A new version of Kernel was added to project The Inbox:
http://source.squeak.org/inbox/Kernel-ct.1455.mcz
==================== Summary ====================
Name: Kernel-ct.1455
Author: ct
Time: 2 April 2022, 6:03:46.669052 pm
UUID: d86c9223-8db7-e541-96bd-cde0c9b7fb92
Ancestors: Kernel-ul.1454
Proposal: Adds basic support for #acceptsLoggingOfCompilation to class comments by allowing strings in BasicClassOrganizer.classComment. With this change, installing updates in a read-only image becomes more feasible. Please review.
=============== Diff against Kernel-ul.1454 ===============
Item was changed:
----- Method: BasicClassOrganizer>>classComment (in category 'accessing') -----
classComment
classComment
ifNil: [^ ''].
+ (classComment isString
+ or: [classComment isText])
+ ifTrue: [^ classComment].
+ ^ classComment text
+ ifNil: ['']!
- ^ classComment text ifNil: ['']!
Item was changed:
----- Method: BasicClassOrganizer>>classComment:stamp: (in category 'accessing') -----
classComment: aString stamp: aStamp
+ "Store the comment, aString, associated with the object that refers to the receiver. PRIVATE!! Clients should use aClass classComment: instead."
- "Store the comment, aString, associated with the object that refers to the receiver."
self commentStamp: aStamp.
(aString isKindOf: RemoteString)
ifTrue: [classComment := aString]
ifFalse: [(aString == nil or: [aString size = 0])
ifTrue: [classComment := nil]
ifFalse:
+ [classComment := aString]]
- [self error: 'use aClass classComment:'.
- classComment := RemoteString newString: aString onFileNumber: 2]]
"Later add priorSource and date and initials?"!
Item was changed:
----- Method: BasicClassOrganizer>>commentRemoteStr (in category 'accessing') -----
commentRemoteStr
+ ^ (classComment isKindOf: RemoteString)
+ ifTrue: [classComment]!
- ^ classComment!
Item was changed:
----- Method: BasicClassOrganizer>>fileOutCommentOn:moveSource:toFile: (in category 'fileIn/Out') -----
fileOutCommentOn: aFileStream moveSource: moveSource toFile: fileIndex
"Copy the class comment to aFileStream. If moveSource is true (as in compressChanges or compressSources, then update classComment to point to the new file."
| fileComment |
+ self hasNoComment ifTrue: [^ self].
+
+ aFileStream cr.
+ fileComment := RemoteString
+ newString: self classComment
+ onFileNumber: fileIndex
+ toFile: aFileStream.
+ moveSource ifTrue: [classComment := fileComment].!
- classComment ifNotNil:
- [aFileStream cr.
- fileComment := RemoteString newString: classComment text
- onFileNumber: fileIndex toFile: aFileStream.
- moveSource ifTrue: [classComment := fileComment]]!
Item was changed:
----- Method: BasicClassOrganizer>>moveChangedCommentToFile:numbered: (in category 'fileIn/Out') -----
moveChangedCommentToFile: aFileStream numbered: fileIndex
"If the comment is in the changes file, then move it to a new file."
+ (self commentRemoteStr ~~ nil and: [classComment sourceFileNumber > 1]) ifTrue:
- (classComment ~~ nil and: [classComment sourceFileNumber > 1]) ifTrue:
[self fileOutCommentOn: aFileStream moveSource: true toFile: fileIndex]!
Item was changed:
----- Method: ClassDescription>>classComment:stamp: (in category 'fileIn/Out') -----
classComment: aString stamp: aStamp
"Store the comment, aString or Text or RemoteString, associated with the class we are organizing. Empty string gets stored only if had a non-empty one before."
- | ptr header file oldCommentRemoteStr |
(aString isKindOf: RemoteString) ifTrue:
[SystemChangeNotifier uniqueInstance classCommented: self.
^ self organization classComment: aString stamp: aStamp].
+ self acceptsLoggingOfCompilation
+ ifTrue:
+ [| ptr header file oldCommentRemoteStr |
+ oldCommentRemoteStr := self organization commentRemoteStr.
+ (aString size = 0) & (oldCommentRemoteStr == nil) ifTrue:
+ ["never had a class comment, no need to write empty string out"
+ ^ self organization classComment: nil].
+
+ ptr := oldCommentRemoteStr ifNil: [0] ifNotNil: [oldCommentRemoteStr sourcePointer].
+ SourceFiles ifNotNil: [(file := SourceFiles at: 2) ifNotNil:
+ [file setToEnd; cr; nextPut: $!!. "directly"
+ "Should be saying (file command: ''H3'') for HTML, but ignoring it here"
+ header := String streamContents: [:strm | strm nextPutAll: self name;
+ nextPutAll: ' commentStamp: '.
+ aStamp storeOn: strm.
+ strm nextPutAll: ' prior: '; nextPutAll: ptr printString].
+ file nextChunkPut: header]].
+ self organization classComment: (RemoteString newString: aString onFileNumber: 2) stamp: aStamp.
+ file ifNotNil: [ InMidstOfFileinNotification signal ifFalse: [ file flush ] ]]
+ ifFalse:
+ [self organization classComment: aString stamp: aStamp].
+
+ SystemChangeNotifier uniqueInstance classCommented: self.!
- oldCommentRemoteStr := self organization commentRemoteStr.
- (aString size = 0) & (oldCommentRemoteStr == nil) ifTrue: [^ self organization classComment: nil].
- "never had a class comment, no need to write empty string out"
-
- ptr := oldCommentRemoteStr ifNil: [0] ifNotNil: [oldCommentRemoteStr sourcePointer].
- SourceFiles ifNotNil: [(file := SourceFiles at: 2) ifNotNil:
- [file setToEnd; cr; nextPut: $!!. "directly"
- "Should be saying (file command: 'H3') for HTML, but ignoring it here"
- header := String streamContents: [:strm | strm nextPutAll: self name;
- nextPutAll: ' commentStamp: '.
- aStamp storeOn: strm.
- strm nextPutAll: ' prior: '; nextPutAll: ptr printString].
- file nextChunkPut: header]].
- self organization classComment: (RemoteString newString: aString onFileNumber: 2) stamp: aStamp.
- file ifNotNil: [ InMidstOfFileinNotification signal ifFalse: [ file flush ] ].
- SystemChangeNotifier uniqueInstance classCommented: self.
- !
More information about the Squeak-dev
mailing list
|