The Trunk: Kernel-nice.808.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Kernel-nice.808.mcz

commits-2
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!