Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-nice.808.mcz ==================== Summary ==================== Name: Kernel-nice.808 Author: nice Time: 20 September 2013, 9:51:16.441 pm UUID: 0538a438-3c3f-4580-a21e-6d7da6c5faca Ancestors: Kernel-nice.807 Don't pass a category to a Compiler, classifying is not its job. =============== Diff against Kernel-nice.807 =============== Item was changed: ----- Method: Behavior>>compile:notifying: (in category 'compiling') ----- compile: code notifying: requestor "Compile the argument, code, as source code in the context of the receiver and insEtall the result in the receiver's method dictionary. The second argument, requestor, is to be notified if an error occurs. The argument code is either a string or an object that converts to a string or a PositionableStream. This method also saves the source code." | methodAndNode | methodAndNode := self compile: code "a Text" - classified: nil notifying: requestor trailer: self defaultMethodTrailer ifFail: [^nil]. methodAndNode method putSource: code fromParseNode: methodAndNode node inFile: 2 withPreamble: [:f | f cr; nextPut: $!!; nextChunkPut: 'Behavior method'; cr]. self addSelector: methodAndNode selector withMethod: methodAndNode method notifying: requestor. ^ methodAndNode selector! Item was added: + ----- Method: Behavior>>compile:notifying:trailer:ifFail: (in category 'compiling') ----- + compile: code notifying: requestor trailer: bytes ifFail: failBlock + "Compile code without logging the source in the changes file" + + | methodNode | + methodNode := self newCompiler + compile: code + in: self + notifying: requestor + ifFail: failBlock. + ^ CompiledMethodWithNode generateMethodFromNode: methodNode trailer: bytes.! Item was changed: ----- Method: Behavior>>firstPrecodeCommentFor: (in category 'accessing method dictionary') ----- firstPrecodeCommentFor: selector "If there is a comment in the source code at the given selector that preceeds the body of the method, return it here, else return nil" | parser source tree | "Behavior firstPrecodeCommentFor: #firstPrecodeCommentFor:" (#(Comment Definition Hierarchy) includes: selector) ifTrue: ["Not really a selector" ^ nil]. source := self sourceCodeAt: selector asSymbol ifAbsent: [^ nil]. parser := self newParser. tree := parser parse: (ReadStream on: source) class: self noPattern: false - context: nil notifying: nil ifFail: [^ nil]. ^ (tree comment ifNil: [^ nil]) first! Item was changed: ----- Method: ClassDescription>>compile:classified:withStamp:notifying:logSource: (in category 'compiling') ----- compile: text classified: category withStamp: changeStamp notifying: requestor logSource: logSource | methodAndNode | + methodAndNode := self compile: text asString notifying: requestor - methodAndNode := self compile: text asString classified: category notifying: requestor trailer: self defaultMethodTrailer ifFail: [^nil]. logSource ifTrue: [ self logMethodSource: text forMethodWithNode: methodAndNode inCategory: category withStamp: changeStamp notifying: requestor. ]. self addAndClassifySelector: methodAndNode selector withMethod: methodAndNode method inProtocol: category notifying: requestor. self instanceSide noteCompilationOf: methodAndNode selector meta: self isClassSide. ^ methodAndNode selector! Item was changed: ----- Method: ClassDescription>>compile:environment:classified:withStamp:notifying:logSource: (in category 'compiling') ----- compile: text environment: anEnvironment classified: category withStamp: changeStamp notifying: requestor logSource: logSource | methodAndNode context methodNode | context := CompilationCue source: text class: self environment: anEnvironment - category: category requestor: requestor. methodNode := self newCompiler compile: context ifFail: [^ nil]. methodAndNode := CompiledMethodWithNode generateMethodFromNode: methodNode trailer: self defaultMethodTrailer. logSource ifTrue: [ self logMethodSource: text forMethodWithNode: methodAndNode inCategory: category withStamp: changeStamp notifying: requestor. ]. self addAndClassifySelector: methodAndNode selector withMethod: methodAndNode method inProtocol: category notifying: requestor. self instanceSide noteCompilationOf: methodAndNode selector meta: self isClassSide. ^ methodAndNode selector! |
Free forum by Nabble | Edit this page |