class: Smalltalk
changed:
#fileInClass:package:initialize:lazy:silent:
#installAutoloadedClasses
#loadPackage:asAutoloaded:
ensure preLoad/postLoad notifications for browsers
--- a/Smalltalk.st Thu Mar 05 12:04:46 2015 +0100
+++ b/Smalltalk.st Thu Mar 05 12:06:08 2015 +0100
@@ -2460,40 +2460,40 @@
|packageId packageString packageDir def sourceCodeManager|
- packageId := aPackageStringArg asPackageId.
- packageString := packageId string.
+ packageString := aPackageStringArg.
+
+ "/ a little convenience: so you can stx packages with loadPackage:'goodies/soap'
+ (packageString includes:$:) ifFalse:[
+ packageString := 'stx:',packageString.
+ ].
"if I am here, so must my package"
packageString = self package ifTrue:[^ true].
+ packageId := aPackageStringArg asPackageId.
+
"/ if there is a projectDefinition, let it load itself...
def := packageId projectDefinitionClass.
(def notNil and:[def isLoaded]) ifTrue:[
- def loadAsAutoloaded:doLoadAsAutoloaded.
- ^ true.
+ def loadAsAutoloaded:doLoadAsAutoloaded.
+ ^ true.
].
packageDir := self packageDirectoryForPackageId:packageId.
- packageDir isNil ifTrue:[
- (packageString includes:$:) ifFalse:[
- "/ assume stx
- packageDir := self packageDirectoryForPackageId:('stx:',packageString).
- ].
- ].
[
- self
- loadPackage:packageString
- fromDirectory:packageDir
- asAutoloaded:doLoadAsAutoloaded.
+ self
+ loadPackage:packageString
+ fromDirectory:packageDir
+ asAutoloaded:doLoadAsAutoloaded.
] on:PackageLoadError do:[:ex|
- AbstractSourceCodeManager notNil ifTrue:[
- sourceCodeManager := AbstractSourceCodeManager sourceCodeManagerForPackage:packageString.
- sourceCodeManager notNil ifTrue:[
- ^ sourceCodeManager loadPackageWithId:packageString fromRepositoryAsAutoloaded:doLoadAsAutoloaded
- ].
- ].
- ex reject.
+ AbstractSourceCodeManager notNil ifTrue:[
+ sourceCodeManager := AbstractSourceCodeManager sourceCodeManagerForPackage:packageString.
+ sourceCodeManager notNil ifTrue:[
+ ^ sourceCodeManager loadPackageWithId:packageString fromRepositoryAsAutoloaded:doLoadAsAutoloaded
+ ].
+ ].
+ ex reject.
].
^ true
@@ -5068,8 +5068,7 @@
|dirsConsulted|
- Smalltalk changed:#preLoad.
- [
+ LoadInProgressQuery answerNotifyLoadingDo:[
dirsConsulted := Set new.
"/ along the package-path
@@ -5085,8 +5084,6 @@
]
].
self splashInfo:nil.
- ] ensure:[
- Smalltalk changed:#postLoad
].
"
@@ -5830,8 +5827,7 @@
|classFileName alternativeClassFileName libName newClass ok wasLazy wasSilent sharedLibExtension inStream mgr
filenameToSet packageDir packageFile bos|
- [
- Smalltalk changed:#preLoad.
+ ClassLoadInProgressQuery answerNotifyLoading:aClassName do:[
wasLazy := Compiler compileLazy:loadLazy.
beSilent notNil ifTrue:[
@@ -6142,8 +6138,6 @@
]
]
].
- ] ensure:[
- Smalltalk changed:#postLoad
].
^ newClass
@@ -8205,11 +8199,11 @@
!Smalltalk class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.1117 2015-03-03 10:48:10 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.1118 2015-03-05 11:06:08 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.1117 2015-03-03 10:48:10 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.1118 2015-03-05 11:06:08 cg Exp $'
!
version_SVN