Refactoring browser loading

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

Refactoring browser loading

timrowledge
I had a mind to try loading the refactoring browser (see http://ss3.gemstone.com/ss/RefactoringToolsForSqueak.html/Overview?_s=52NK9gjdy81WlQ51&_k=wKVVyVYhknD_y4GY) but none of the three methods mentioned for loading it actually work in a current image.

The Installer code snippet initially fails because an InstallerURL dNU #project:.

The Gofer snippet won't work because Gofer does not exist in the image.

Opening the MC repository works but loading the  ConfigurationOfRefactoringTools-topa.1 does nothing and attempting to load the latest  RefactoringTools-eem.7 fails with many complaints about classes needing loading first.

Fixing the Installer snippet to refer to squeaksource3 @http://ss3.gemtalksystems.com/ss/ instead of using the obsolete http://ss3.gemstone.com/ss/ makes a promising start but very quickly opens the same error as simply trying to load RefactoringTools-eem.7

What have I messed up?

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful random insult:- Permanently out to lunch.



Reply | Threaded
Open this post in threaded view
|

Re: Refactoring browser loading

Eliot Miranda-2
Hi Tim,

> On Jan 16, 2019, at 11:20 AM, tim Rowledge <[hidden email]> wrote:
>
> I had a mind to try loading the refactoring browser (see http://ss3.gemstone.com/ss/RefactoringToolsForSqueak.html/Overview?_s=52NK9gjdy81WlQ51&_k=wKVVyVYhknD_y4GY) but none of the three methods mentioned for loading it actually work in a current image.
>
> The Installer code snippet initially fails because an InstallerURL dNU #project:.
>
> The Gofer snippet won't work because Gofer does not exist in the image.
>
> Opening the MC repository works but loading the  ConfigurationOfRefactoringTools-topa.1 does nothing and attempting to load the latest  RefactoringTools-eem.7 fails with many complaints about classes needing loading first.
>
> Fixing the Installer snippet to refer to squeaksource3 @http://ss3.gemtalksystems.com/ss/ instead of using the obsolete http://ss3.gemstone.com/ss/ makes a promising start but very quickly opens the same error as simply trying to load RefactoringTools-eem.7
>
> What have I messed up?

Dunno.  But I do know that the load script in the image directory that builds the VMMaker image does load the bulk of the support and that one can then load RefactoringTools from ss3.gemtalksystems.com/ss/RefactoringToolsForSqueak and everything works.  I’m currently using RefactoringTools-eem.7.mcz


>
> tim
> --
> tim Rowledge; [hidden email]; http://www.rowledge.org/tim
> Useful random insult:- Permanently out to lunch.
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Refactoring browser loading

timrowledge
In reply to this post by timrowledge
Trying the SqueakMap approach hasn't been much more successful; after allowing for not-yet-updated packages, I see several 'RefactoringBrowser xxx' entries, all very old. A 'Refactoring Tools' entry looks more interesting (though confusing name differences can make using searches such fun, always worth trying to remember) and starts to load.

But then it fails because SMSqueakMp>>loadFullFrom: tries to fetch some zipped data and didn't check the returned info - which in this case is a 504 error notification. Oops...
Restarting the method seems to make it happier... twiddle, twiddle, ooh, could not access 'http://www.squeaksource.com/rb' in MCHttpRepository>>#httpGet:arguments: Restart *that* and continue...

Eventually it does install, so yay. Minus several important points for problems loading. And minus more points for the incorrect 'loading' advice and uninformative notes on the original page. A very quick and 'uninformed user' test suggests that it seems to work once loaded. So, also yay.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
I haven't lost my mind; it's backed up on tape somewhere... so long as the tape drives work I'm ok....



Reply | Threaded
Open this post in threaded view
|

Re: Refactoring browser loading

Tobias Pape
In reply to this post by timrowledge
Hi

> On 16.01.2019, at 20:20, tim Rowledge <[hidden email]> wrote:
>
> I had a mind to try loading the refactoring browser (see http://ss3.gemstone.com/ss/RefactoringToolsForSqueak.html/Overview?_s=52NK9gjdy81WlQ51&_k=wKVVyVYhknD_y4GY) but none of the three methods mentioned for loading it actually work in a current image.
>

The snippets there are actually intended to just give a heads start.
It was a good idea in 2011 or so, today no longer.
The installer/Gofer versions don't work as expected, sorry, thats actually my fault…

> The Installer code snippet initially fails because an InstallerURL dNU #project:.
>
> The Gofer snippet won't work because Gofer does not exist in the image.
>
> Opening the MC repository works but loading the  ConfigurationOfRefactoringTools-topa.1 does nothing and attempting to load the latest  RefactoringTools-eem.7 fails with many complaints about classes needing loading first.
>
> Fixing the Installer snippet to refer to squeaksource3 @http://ss3.gemtalksystems.com/ss/ instead of using the obsolete http://ss3.gemstone.com/ss/ makes a promising start but very quickly opens the same error as simply trying to load RefactoringTools-eem.7
>
> What have I messed up?

Nothing. The thing is intended to be loaded as so:

        Installer ensureRecentMetacello.
        (Smalltalk at: #Metacello) new
                configuration: 'RefactoringTools';
                load.


The "ConfigurationOfRefactoringTools" is a description of what must be loaded.
See the class "ConfigurationOfRefactoringTools" in the package "ConfigurationOfRefactoringTools", methods #baseline10: (which declares dependencies) and #version101: (which gives concrete versions to load).

If you use #record instead of #load you get a nice printout of what _would_ be loaded.

Best regards
        -Tobias
>
> tim
> --
> tim Rowledge; [hidden email]; http://www.rowledge.org/tim
> Useful random insult:- Permanently out to lunch.
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Refactoring browser loading

Chris Muller-3
In reply to this post by timrowledge
Hi Tim,

> Trying the SqueakMap approach hasn't been much more successful;

RefactoringTools on SqueakMap works.

> after allowing for not-yet-updated packages,

The default filter shipped in a 5.2 image allows you to see what is
updated and working at a 5.2 level.

>  I see several 'RefactoringBrowser xxx' entries, all very old. A 'Refactoring Tools' entry looks more interesting (though confusing name differences can make using searches such fun, always worth trying to remember)

Right, and also worth remembering that this is simply the result of it
being a model of Squeak's history.  Turn back on the filter and all
that "old" noise will go away.

> and starts to load.
>
> But then it fails because SMSqueakMp>>loadFullFrom: tries to fetch some zipped data and didn't check the returned info - which in this case is a 504 error notification. Oops...
> Restarting the method seems to make it happier... twiddle, twiddle, ooh, could not access 'http://www.squeaksource.com/rb' in MCHttpRepository>>#httpGet:arguments: Restart *that* and continue...

The server is running on a very old version of Squeak and interpreter
image.  The server code won't even compile on modern Squeak (Hannes
made an update which could possibly get around it but...) I am working
on replacing it with a GraphQL service, so we can have really rich
clients that can properly *showcase* the entries as a proper App-store
experience.

> Eventually it does install, so yay.

In the meantime, thank you for your patience, Tim.

> Minus several important points for problems loading. And minus more points for the incorrect 'loading' advice and uninformative notes on the original page. A very quick and 'uninformed user' test suggests that it seems to work once loaded. So, also yay.
>
> tim
> --
> tim Rowledge; [hidden email]; http://www.rowledge.org/tim
> I haven't lost my mind; it's backed up on tape somewhere... so long as the tape drives work I'm ok....
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Refactoring browser loading

timrowledge


> On 2019-01-16, at 6:45 PM, Chris Muller <[hidden email]> wrote:
>
> Hi Tim,
>
>> Trying the SqueakMap approach hasn't been much more successful;
>
> RefactoringTools on SqueakMap works.

As I said, indeed it does, once the loading has been handled. I've been looking at the code in SMSqueakMp>>loadFullFrom: with a view to fixing the lack of error handling; and as is so often the case it leads to many other places where there is no checking to see if the response to an 'http get' has problems, so it will take a little more thought.

>
>> after allowing for not-yet-updated packages,
>
> The default filter shipped in a 5.2 image allows you to see what is
> updated and working at a 5.2 level.

But not in a current development image, where I have to clear the filter. Which is obvious once I've remembered it, after not having had to think about it in some time.

>
>> I see several 'RefactoringBrowser xxx' entries, all very old. A 'Refactoring Tools' entry looks more interesting (though confusing name differences can make using searches such fun, always worth trying to remember)
>
> Right, and also worth remembering that this is simply the result of it
> being a model of Squeak's history.  Turn back on the filter and all
> that "old" noise will go away.
>
>> and starts to load.
>>
>> But then it fails because SMSqueakMp>>loadFullFrom: tries to fetch some zipped data and didn't check the returned info - which in this case is a 504 error notification. Oops...
>> Restarting the method seems to make it happier...

As above, the problem is that there is no checking for even the possibility of the server not returning the desired content. So we don't get to (maybe) compensate for the elderly nature of the server or any other problem. We can do better with some thought.


>> twiddle, twiddle, ooh, could not access 'http://www.squeaksource.com/rb' in MCHttpRepository>>#httpGet:arguments: Restart *that* and continue...

I'm not sure what the actual error was there, other than a general 'could not access'. Maybe something in the socket code could work out a more helpful error so that, again, we could try to do something helpful. Net services go missing, or connections fail, or dns wotsits get mangled and so forth. I bet we can do something helpful in most cases.

I'm pleased that there is a version that loads and seems to do good things. The refactoring stuff in the VW8.3 image is about the only 'new' thing I have been pleased to find whilst using that system; amazingly it's well over 20 years since I last used VW.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful random insult:- He's not a complete idiot -- some parts are missing.