help-smalltalk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Help-smalltalk] [PATCH] Make PackageNotAvailable public


From: Paolo Bonzini
Subject: [Help-smalltalk] [PATCH] Make PackageNotAvailable public
Date: Thu, 27 Dec 2007 11:26:45 +0100
User-agent: Thunderbird 2.0.0.9 (Macintosh/20071031)

Thomas pointed out offlist that PackageNotAvailable is not used everywhere, and that it is not in the public SystemExceptions namespace.

This patch fixes both.  I'll run a 'make distcheck' before committing.

Paolo
* looking for address@hidden/smalltalk--devo--2.2--patch-679 to compare with
* comparing to address@hidden/smalltalk--devo--2.2--patch-679
M  ChangeLog
M  kernel/PkgLoader.st

* modified files

--- orig/ChangeLog
+++ mod/ChangeLog
@@ -1,3 +1,8 @@
+2007-12-27  Paolo Bonzini  <address@hidden>
+
+       * kernel/PkgLoader.st: Move PackageNotAvailable to SystemExceptions
+       namespace.  Raise it instead of Error when appropriate.
+
 2007-12-20  Paolo Bonzini  <address@hidden>
 
        * kernel/Collection.st: Add #readStream.


--- orig/kernel/PkgLoader.st
+++ mod/kernel/PkgLoader.st
@@ -44,12 +44,24 @@ Notification subclass: PackageSkip [
 
 
 
-Namespace current: Kernel [
+Namespace current: SystemExceptions [
 
-Exception subclass: PackageNotAvailable [
+NotFound subclass: PackageNotAvailable [
     
     <category: 'Language-Packaging'>
     <comment: nil>
+
+    PackageNotAvailable class >> signal: aString [
+       ^super signalOn: aString what: 'package'
+    ]
+
+    isResumable [
+        "Answer true.  Package unavailability is resumable, because the
+        package files might just lie elsewhere."
+
+        <category: 'description'>
+        ^true
+    ]
 ]
 
 ]
@@ -84,7 +96,7 @@ XML.'>
 
     at: aString [
        <category: 'accessing'>
-       ^self at: aString ifAbsent: [self error: 'package not found']
+       ^self at: aString ifAbsent: [PackageNotAvailable signal: aString]
     ]
 
     at: aString ifAbsent: aBlock [
@@ -324,7 +336,7 @@ XML.'>
        file := [FileStream open: fileName mode: FileStream read] on: Error
                    do: [:ex | ^self].
        
-       [[self parse: file] on: PackageNotAvailable
+       [[self parse: file] on: SystemExceptions.PackageNotAvailable
            do: [:ex | ex resignalAs: PackageSkip new]] 
                ensure: [file close].
        packages := packages reject: [:each | each isDisabled]
@@ -1104,7 +1116,7 @@ XML.'>
 
        "TODO: should put the name and baseDirectories into the exception."
        "name printNl.  baseDirectories printNl."
-       PackageNotAvailable signal: self
+       SystemExceptions.PackageNotAvailable signal: self name
     ]
 
     directory [
@@ -1117,7 +1129,7 @@ XML.'>
                | name |
                name := Directory append: self relativeDirectory to: dir.
                (Directory exists: name) ifTrue: [^name]].
-       PackageNotAvailable signal: self
+       SystemExceptions.PackageNotAvailable signal: self name
     ]
 
     relativeDirectory [
@@ -1486,7 +1498,7 @@ into a Smalltalk image, correctly handli
        packagesList isEmpty ifTrue: [^self].
        self refresh.
        toBeLoaded := root extractDependenciesFor: packagesList
-                   ifMissing: [:name | ^self error: 'package not available: ' 
, name].
+                   ifMissing: [:name | SystemExceptions.PackageNotAvailable 
signal: name].
        toBeLoaded do: 
                [:each | 
                OutputVerbosity > 0 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]