I have a package PromisesLocal which redefines a trunk class, Promise.
There is some old protocol from trunk Promise which remains as part of the new definition and this is breaking tests (, Promise>>#whenResolved:, Promise>>#whenBroken:). Is there a way with Monticello or loading where I can remove this protocol? Or a better question is how to best remove this protocol when loading a Monticello package? K, r |
Hi,
What about a preamble script to remove the existing class or methods? Though it does not sound like a good idea to me if the interface is not compatible. It will probably break other stuff in the image. Kind regards, Jakob Am So., 4. Okt. 2020 um 19:41 Uhr schrieb rabbit <[hidden email]>: > > I have a package PromisesLocal which redefines a trunk class, Promise. > There is some old protocol from trunk Promise which remains as part of > the new definition and this is breaking tests (, > Promise>>#whenResolved:, Promise>>#whenBroken:). Is there a way with > Monticello or loading where I can remove this protocol? Or a better > question is how to best remove this protocol when loading a Monticello > package? > > K, r > > > |
Hi Jakob,
Thanks for the info! How could I define such a preamble in Monticello? I ended up redefining the methods to call the super impl and pass the tests. So these methods are present in the package I published. I modified the PromiseTest in KernelTests-Processes to add small delay to allow for async completions. The only changes in semantics are that when a second attempt for a resolution, of a previously resolved promise, I throw a PromiseAlreadyResolved exception. When an arbitrary rejection value is used I wrap it in a BrokenPromiseValue excption. These are the only two classes & exceptions I added to the trunk impl. PromisesLocal pass those tests when it is loaded. K, r On 10/5/20 3:29 PM, Jakob Reschke wrote: > Hi, > > What about a preamble script to remove the existing class or methods? > > Though it does not sound like a good idea to me if the interface is > not compatible. It will probably break other stuff in the image. > > Kind regards, > Jakob > > Am So., 4. Okt. 2020 um 19:41 Uhr schrieb rabbit > <[hidden email]>: >> I have a package PromisesLocal which redefines a trunk class, Promise. >> There is some old protocol from trunk Promise which remains as part of >> the new definition and this is breaking tests (, >> Promise>>#whenResolved:, Promise>>#whenBroken:). Is there a way with >> Monticello or loading where I can remove this protocol? Or a better >> question is how to best remove this protocol when loading a Monticello >> package? >> >> K, r >> >> >> |
You can access the scripts in the Monticello browser by selecting the
package and clicking the Scripts button in the bar. Am Mo., 5. Okt. 2020 um 22:03 Uhr schrieb rabbit <[hidden email]>: > > Hi Jakob, > > Thanks for the info! How could I define such a preamble in Monticello? I > ended up redefining the methods to call the super impl and pass the > tests. So these methods are present in the package I published. > > I modified the PromiseTest in KernelTests-Processes to add small delay > to allow for async completions. The only changes in semantics are that > when a second attempt for a resolution, of a previously resolved > promise, I throw a PromiseAlreadyResolved exception. When an arbitrary > rejection value is used I wrap it in a BrokenPromiseValue excption. > These are the only two classes & exceptions I added to the trunk impl. > > PromisesLocal pass those tests when it is loaded. > > K, r > > On 10/5/20 3:29 PM, Jakob Reschke wrote: > > Hi, > > > > What about a preamble script to remove the existing class or methods? > > > > Though it does not sound like a good idea to me if the interface is > > not compatible. It will probably break other stuff in the image. > > > > Kind regards, > > Jakob > > > > Am So., 4. Okt. 2020 um 19:41 Uhr schrieb rabbit > > <[hidden email]>: > >> I have a package PromisesLocal which redefines a trunk class, Promise. > >> There is some old protocol from trunk Promise which remains as part of > >> the new definition and this is breaking tests (, > >> Promise>>#whenResolved:, Promise>>#whenBroken:). Is there a way with > >> Monticello or loading where I can remove this protocol? Or a better > >> question is how to best remove this protocol when loading a Monticello > >> package? > >> > >> K, r > >> > >> > >> > |
Great! Thanks! The first time I have 'seen' that button.
On 10/5/20 4:23 PM, Jakob Reschke wrote: > You can access the scripts in the Monticello browser by selecting the > package and clicking the Scripts button in the bar. > > Am Mo., 5. Okt. 2020 um 22:03 Uhr schrieb rabbit > <[hidden email]>: >> Hi Jakob, >> >> Thanks for the info! How could I define such a preamble in Monticello? I >> ended up redefining the methods to call the super impl and pass the >> tests. So these methods are present in the package I published. >> >> I modified the PromiseTest in KernelTests-Processes to add small delay >> to allow for async completions. The only changes in semantics are that >> when a second attempt for a resolution, of a previously resolved >> promise, I throw a PromiseAlreadyResolved exception. When an arbitrary >> rejection value is used I wrap it in a BrokenPromiseValue excption. >> These are the only two classes & exceptions I added to the trunk impl. >> >> PromisesLocal pass those tests when it is loaded. >> >> K, r >> >> On 10/5/20 3:29 PM, Jakob Reschke wrote: >>> Hi, >>> >>> What about a preamble script to remove the existing class or methods? >>> >>> Though it does not sound like a good idea to me if the interface is >>> not compatible. It will probably break other stuff in the image. >>> >>> Kind regards, >>> Jakob >>> >>> Am So., 4. Okt. 2020 um 19:41 Uhr schrieb rabbit >>> <[hidden email]>: >>>> I have a package PromisesLocal which redefines a trunk class, Promise. >>>> There is some old protocol from trunk Promise which remains as part of >>>> the new definition and this is breaking tests (, >>>> Promise>>#whenResolved:, Promise>>#whenBroken:). Is there a way with >>>> Monticello or loading where I can remove this protocol? Or a better >>>> question is how to best remove this protocol when loading a Monticello >>>> package? >>>> >>>> K, r >>>> >>>> >>>> |
Free forum by Nabble | Edit this page |