GemTalk / Rowan

a new project/package manager for Smalltalk that supports FileTree and Tonel repositories, and is independent of Monticello and Metacello
MIT License
14 stars 7 forks source link

(3.7.0) GsNMethod>>_rwRecompileFromSourceIfUnpackagedDo: is incorrect #906

Closed dalehenrich closed 8 months ago

dalehenrich commented 1 year ago

GsNMethod>>_rwRecompileFromSourceIfUnpackagedDo: in 3.7.0 looks like the following:

_rwRecompileFromSourceIfUnpackagedDo: unpackagedBlock
    "If the method is packaged, then we need to force a recompile of the method, 
        since method source is not being changed"

    | packageName |
    packageName := self rowanPackageName.
    packageName = Rowan unpackagedName
        ifFalse: [
            "method is packaged, so force the method to be recompiled ... remember that the source is identical"
            | theClass loadedMethod |
            theClass := self inClass.
            loadedMethod := Rowan image
                loadedMethodForMethod: self.
            Rowan projectTools browser
                forceRecompileLoadedMethod: loadedMethod
                dictionaries: GsCurrentSession currentSession symbolList
                forClassNamed: theClass name asString
                isMeta: theClass isMeta ].
    ^ unpackagedBlock value

and note that the unpackagedBlock is unconditionally executed which is just not correct

dalehenrich commented 1 year ago

Internal bug number 50731. Requires Gemstone base fixes currently on branch dkh_50731 (cbb8fe58daaf)