Error: No factory specified

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

Error: No factory specified

Esteban A. Maringolo
I'm trying to load a Metacello Configuration I use in Pharo 2 into a brand new Pharo 3 image.

However I'm getting an error when attempting to load it, and it opens the emergency evaluator.

In the console I see following stack, which repeats over and over:

LRUCache(Object)>>error:
LRUCache(Cache)>>at:
ScrollBar class>>arrowOfDirection:size:color:
ScrollBar>>upImage
ScrollBar>>updateUpButtonImage
ScrollBar>>initializeUpButton
ScrollBar>>initializeSlider
ScrollBar(Slider)>>extent:
ScrollBar>>extent:
ScrollBar(Morph)>>bounds:
MorphTreeMorph(ScrollPane)>>hResizeScrollBar
MorphTreeMorph(ScrollPane)>>resizeScrollBars
MorphTreeMorph(ScrollPane)>>hideOrShowScrollBars
MorphTreeMorph(ScrollPane)>>setScrollDeltas
MorphTreeMorph>>adjustSubmorphPositionsOf:startIdx:startPos:
MorphTreeMorph>>adjustSubmorphPositions
MorphTreeMorph>>innerWidgetChanged
MorphTreeMorph>>privateUpdateColumnMorphs
MorphTreeMorph>>updateColumnMorphs
MorphTreeMorph>>addSubmorphsFromNodeList:previouslyExpanded:
MorphTreeMorph>>updateContentsWithPreviouslyExpanded:
MorphTreeMorph>>updateList
MorphTreeMorph>>update:
PackageTreeModel(Object)>>changed: in Block: [ :aDependent | aDependent update: aParameter ]
DependentsArray>>do:
PackageTreeModel(Object)>>changed:
PackageTreeNautilusUI>>updatePackageView
PackageTreeNautilusUI(AbstractNautilusUI)>>mcWorkingCopyCreated:
WeakMessageSend>>value:
WeakMessageSend>>cull:
Error: No factory specified

Any clues?


Esteban A. Maringolo
Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

pharo4Stef@free.fr
Not really.
This is strange.

Stef

> I'm trying to load a Metacello Configuration I use in Pharo 2 into a brand new Pharo 3 image.
>
> However I'm getting an error when attempting to load it, and it opens the emergency evaluator.
>
> In the console I see following stack, which repeats over and over:
>
> LRUCache(Object)>>error:
> LRUCache(Cache)>>at:
> ScrollBar class>>arrowOfDirection:size:color:
> ScrollBar>>upImage
> ScrollBar>>updateUpButtonImage
> ScrollBar>>initializeUpButton
> ScrollBar>>initializeSlider
> ScrollBar(Slider)>>extent:
> ScrollBar>>extent:
> ScrollBar(Morph)>>bounds:
> MorphTreeMorph(ScrollPane)>>hResizeScrollBar
> MorphTreeMorph(ScrollPane)>>resizeScrollBars
> MorphTreeMorph(ScrollPane)>>hideOrShowScrollBars
> MorphTreeMorph(ScrollPane)>>setScrollDeltas
> MorphTreeMorph>>adjustSubmorphPositionsOf:startIdx:startPos:
> MorphTreeMorph>>adjustSubmorphPositions
> MorphTreeMorph>>innerWidgetChanged
> MorphTreeMorph>>privateUpdateColumnMorphs
> MorphTreeMorph>>updateColumnMorphs
> MorphTreeMorph>>addSubmorphsFromNodeList:previouslyExpanded:
> MorphTreeMorph>>updateContentsWithPreviouslyExpanded:
> MorphTreeMorph>>updateList
> MorphTreeMorph>>update:
> PackageTreeModel(Object)>>changed: in Block: [ :aDependent | aDependent update: aParameter ]
> DependentsArray>>do:
> PackageTreeModel(Object)>>changed:
> PackageTreeNautilusUI>>updatePackageView
> PackageTreeNautilusUI(AbstractNautilusUI)>>mcWorkingCopyCreated:
> WeakMessageSend>>value:
> WeakMessageSend>>cull:
> Error: No factory specified
>
> Any clues?
>
>
> Esteban A. Maringolo


Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Esteban A. Maringolo
I tried closing all windows, and just having a workspace. But the same happens even if I load the configuration through the command line.

Screenshot attached.

Esteban A. Maringolo


2014-04-08 16:10 GMT-03:00 Pharo4Stef <[hidden email]>:
Not really.
This is strange.

Stef

> I'm trying to load a Metacello Configuration I use in Pharo 2 into a brand new Pharo 3 image.
>
> However I'm getting an error when attempting to load it, and it opens the emergency evaluator.
>
> In the console I see following stack, which repeats over and over:
>
> LRUCache(Object)>>error:
> LRUCache(Cache)>>at:
> ScrollBar class>>arrowOfDirection:size:color:
> ScrollBar>>upImage
> ScrollBar>>updateUpButtonImage
> ScrollBar>>initializeUpButton
> ScrollBar>>initializeSlider
> ScrollBar(Slider)>>extent:
> ScrollBar>>extent:
> ScrollBar(Morph)>>bounds:
> MorphTreeMorph(ScrollPane)>>hResizeScrollBar
> MorphTreeMorph(ScrollPane)>>resizeScrollBars
> MorphTreeMorph(ScrollPane)>>hideOrShowScrollBars
> MorphTreeMorph(ScrollPane)>>setScrollDeltas
> MorphTreeMorph>>adjustSubmorphPositionsOf:startIdx:startPos:
> MorphTreeMorph>>adjustSubmorphPositions
> MorphTreeMorph>>innerWidgetChanged
> MorphTreeMorph>>privateUpdateColumnMorphs
> MorphTreeMorph>>updateColumnMorphs
> MorphTreeMorph>>addSubmorphsFromNodeList:previouslyExpanded:
> MorphTreeMorph>>updateContentsWithPreviouslyExpanded:
> MorphTreeMorph>>updateList
> MorphTreeMorph>>update:
> PackageTreeModel(Object)>>changed: in Block: [ :aDependent | aDependent update: aParameter ]
> DependentsArray>>do:
> PackageTreeModel(Object)>>changed:
> PackageTreeNautilusUI>>updatePackageView
> PackageTreeNautilusUI(AbstractNautilusUI)>>mcWorkingCopyCreated:
> WeakMessageSend>>value:
> WeakMessageSend>>cull:
> Error: No factory specified
>
> Any clues?
>
>
> Esteban A. Maringolo




error.png (93K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Esteban A. Maringolo
Another pointer here before opening the emergency recovery.
This is what I get. No other error.





Esteban A. Maringolo


2014-04-08 16:15 GMT-03:00 Esteban A. Maringolo <[hidden email]>:
I tried closing all windows, and just having a workspace. But the same happens even if I load the configuration through the command line.

Screenshot attached.

Esteban A. Maringolo


2014-04-08 16:10 GMT-03:00 Pharo4Stef <[hidden email]>:

Not really.
This is strange.

Stef

> I'm trying to load a Metacello Configuration I use in Pharo 2 into a brand new Pharo 3 image.
>
> However I'm getting an error when attempting to load it, and it opens the emergency evaluator.
>
> In the console I see following stack, which repeats over and over:
>
> LRUCache(Object)>>error:
> LRUCache(Cache)>>at:
> ScrollBar class>>arrowOfDirection:size:color:
> ScrollBar>>upImage
> ScrollBar>>updateUpButtonImage
> ScrollBar>>initializeUpButton
> ScrollBar>>initializeSlider
> ScrollBar(Slider)>>extent:
> ScrollBar>>extent:
> ScrollBar(Morph)>>bounds:
> MorphTreeMorph(ScrollPane)>>hResizeScrollBar
> MorphTreeMorph(ScrollPane)>>resizeScrollBars
> MorphTreeMorph(ScrollPane)>>hideOrShowScrollBars
> MorphTreeMorph(ScrollPane)>>setScrollDeltas
> MorphTreeMorph>>adjustSubmorphPositionsOf:startIdx:startPos:
> MorphTreeMorph>>adjustSubmorphPositions
> MorphTreeMorph>>innerWidgetChanged
> MorphTreeMorph>>privateUpdateColumnMorphs
> MorphTreeMorph>>updateColumnMorphs
> MorphTreeMorph>>addSubmorphsFromNodeList:previouslyExpanded:
> MorphTreeMorph>>updateContentsWithPreviouslyExpanded:
> MorphTreeMorph>>updateList
> MorphTreeMorph>>update:
> PackageTreeModel(Object)>>changed: in Block: [ :aDependent | aDependent update: aParameter ]
> DependentsArray>>do:
> PackageTreeModel(Object)>>changed:
> PackageTreeNautilusUI>>updatePackageView
> PackageTreeNautilusUI(AbstractNautilusUI)>>mcWorkingCopyCreated:
> WeakMessageSend>>value:
> WeakMessageSend>>cull:
> Error: No factory specified
>
> Any clues?
>
>
> Esteban A. Maringolo





workspace-error-lrucache.png (19K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Stephan Eggermont-3
In reply to this post by Esteban A. Maringolo
Please check what is in your package cache.
Any package where you have multiple versions?

Stephan

Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Sven Van Caekenberghe-2
In reply to this post by Esteban A. Maringolo
What are you loading ? There was a report back of some package overwriting system code leading to this error, I'll see if I can find it.

On 08 Apr 2014, at 21:05, Esteban A. Maringolo <[hidden email]> wrote:

> I'm trying to load a Metacello Configuration I use in Pharo 2 into a brand new Pharo 3 image.
>
> However I'm getting an error when attempting to load it, and it opens the emergency evaluator.
>


Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Sven Van Caekenberghe-2
https://pharo.fogbugz.com/f/cases/12667

It was BabyMock-Examples.

HTH,

Sven

On 08 Apr 2014, at 21:59, Sven Van Caekenberghe <[hidden email]> wrote:

> What are you loading ? There was a report back of some package overwriting system code leading to this error, I'll see if I can find it.
>
> On 08 Apr 2014, at 21:05, Esteban A. Maringolo <[hidden email]> wrote:
>
>> I'm trying to load a Metacello Configuration I use in Pharo 2 into a brand new Pharo 3 image.
>>
>> However I'm getting an error when attempting to load it, and it opens the emergency evaluator.
>>
>


Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Esteban A. Maringolo
Okay, I found the culprit: Glorp.

If you execute this, it will load a class named Cache, which will overwrite Pharo's version. As happened with the referenced issue.

Gofer it 
package: 'Glorp';
load.

No one ever tried loading Glorp into a Pharo3 image? What do people use for ORM?

Regards!


Esteban A. Maringolo


2014-04-08 17:00 GMT-03:00 Sven Van Caekenberghe <[hidden email]>:
https://pharo.fogbugz.com/f/cases/12667

It was BabyMock-Examples.

HTH,

Sven

On 08 Apr 2014, at 21:59, Sven Van Caekenberghe <[hidden email]> wrote:

> What are you loading ? There was a report back of some package overwriting system code leading to this error, I'll see if I can find it.
>
> On 08 Apr 2014, at 21:05, Esteban A. Maringolo <[hidden email]> wrote:
>
>> I'm trying to load a Metacello Configuration I use in Pharo 2 into a brand new Pharo 3 image.
>>
>> However I'm getting an error when attempting to load it, and it opens the emergency evaluator.
>>
>



Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Stephan Eggermont-3
In reply to this post by Esteban A. Maringolo
We might be better off renaming Cache to WeightedCache (or NeoCache or SystemCache).
The class comment in Cache seems to cover more than what Cache actually does itself.

Stephan
Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Sven Van Caekenberghe-2
In reply to this post by Esteban A. Maringolo
Argh, yeah, another namespace problem. Sorry you had to run into that.

I do wonder though: is there no warning when you are (about to) overwrite an existing class ?

And I would never name any class of mine anything general like Cache or Record without a namespace prefix.

There should indeed be a CI job, I thought there was talk about a DBX one, but I can't find it.

On 08 Apr 2014, at 22:34, Esteban A. Maringolo <[hidden email]> wrote:

> Okay, I found the culprit: Glorp.
>
> If you execute this, it will load a class named Cache, which will overwrite Pharo's version. As happened with the referenced issue.
>
> Gofer it
> url: 'http://smalltalkhub.com/mc/DBXTalk/Glorp/main';
> package: 'Glorp';
> load.
>
> No one ever tried loading Glorp into a Pharo3 image? What do people use for ORM?
>
> Regards!
>
>
> Esteban A. Maringolo
>
>
> 2014-04-08 17:00 GMT-03:00 Sven Van Caekenberghe <[hidden email]>:
> https://pharo.fogbugz.com/f/cases/12667
>
> It was BabyMock-Examples.
>
> HTH,
>
> Sven
>
> On 08 Apr 2014, at 21:59, Sven Van Caekenberghe <[hidden email]> wrote:
>
> > What are you loading ? There was a report back of some package overwriting system code leading to this error, I'll see if I can find it.
> >
> > On 08 Apr 2014, at 21:05, Esteban A. Maringolo <[hidden email]> wrote:
> >
> >> I'm trying to load a Metacello Configuration I use in Pharo 2 into a brand new Pharo 3 image.
> >>
> >> However I'm getting an error when attempting to load it, and it opens the emergency evaluator.
> >>
> >
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Sven Van Caekenberghe-2
In reply to this post by Stephan Eggermont-3

On 08 Apr 2014, at 23:06, Stephan Eggermont <[hidden email]> wrote:

> We might be better off renaming Cache to WeightedCache (or NeoCache or SystemCache).
> The class comment in Cache seems to cover more than what Cache actually does itself.
>
> Stephan

I disagree: third-party code should not use un-prefixed general names for classes as long as we live in one namespace.

I don't understand the remark about Cache being more than what a cache should be: unless it is limited in some way, which any cache should be, you could just as well use a Dictionary. The same argument can be made about the factory concept.

Sven
Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Esteban A. Maringolo
In reply to this post by Sven Van Caekenberghe-2
2014-04-08 19:04 GMT-03:00 Sven Van Caekenberghe <[hidden email]>:
>
> Argh, yeah, another namespace problem. Sorry you had to run into that.

Don't sorry. It was just a matter of trying to load it.

> I do wonder though: is there no warning when you are (about to) overwrite an existing class ?

Apparently not :D

> And I would never name any class of mine anything general like Cache or Record without a namespace prefix.

The main code trunk is in VisualWorks, which uses namespaces extensively.
So migrating to Pharo/Squeak with an added prefix is not an option, or
requires a lot of rewrites during the fileout.

> There should indeed be a CI job, I thought there was talk about a DBX one, but I can't find it.

I haven't seen it either.
From my standpoint GLORP is abandoned in the Pharo realm.
There are some people, like me, that still use it, but no one maintains it.
It worries me that not a single person ran into this issue before,
during the whole testing of Pharo 3. Well... I am now, but I'd expect
more people using GLORP.


Esteban A. Maringolo

Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Sven Van Caekenberghe-2

On 09 Apr 2014, at 00:16, Esteban A. Maringolo <[hidden email]> wrote:

> From my standpoint GLORP is abandoned in the Pharo realm.
> There are some people, like me, that still use it, but no one maintains it.
> It worries me that not a single person ran into this issue before,
> during the whole testing of Pharo 3. Well... I am now, but I'd expect
> more people using GLORP.

No, it is not abandoned. See

 http://dbxtalk.smallworks.com.ar
 http://forum.world.st/dbxtalk-working-on-pharo-3-0-td4743313.html

Cache was added recently to Pharo 3.

But your remarks about porting and namespaces is correct. Maintaining something across multiple Smalltalk implementations is very hard.

Sven
Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Stephan Eggermont-3
In reply to this post by Esteban A. Maringolo
There are ci jobs at ci.inria.fr/dbxtalk
I’ve started fixing one of them
https://ci.inria.fr/dbxtalk/job/DBXTalkDriver-BleedingEdge/
I don’t have commit rights
 
The easiest way to make sure glorp keeps working is
to create  pharo3 (and soon 4) builds for a configuration
of all the open source you use.


ConfigurationOfOpenDBXDriver-StephanEggermont.29.mcz (10K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Esteban A. Maringolo
In reply to this post by Sven Van Caekenberghe-2
2014-04-08 19:31 GMT-03:00 Sven Van Caekenberghe <[hidden email]>:

>
> On 09 Apr 2014, at 00:16, Esteban A. Maringolo <[hidden email]> wrote:
>
>> From my standpoint GLORP is abandoned in the Pharo realm.
>> There are some people, like me, that still use it, but no one maintains it.
>> It worries me that not a single person ran into this issue before,
>> during the whole testing of Pharo 3. Well... I am now, but I'd expect
>> more people using GLORP.
>
> No, it is not abandoned. See
>  http://dbxtalk.smallworks.com.ar
>  http://forum.world.st/dbxtalk-working-on-pharo-3-0-td4743313.html

DBXTalk is the driver layer, which is not GLORP per se (I know you know this).
In the mentioned thread Tudor talks about loading DBXTalk [1], not GlorpDBX.
Otherwise he would had run into the Cache name collision.

GLORP port is outdated by two years, Alan Knight confirmed it, and
Mariano told me porting it from VW is not as straightforward as you
would expect (name clashing aside), and the reason for GlorpDBX (which
only exists in Pharo/Squeak AFAIK) is to decouple VW's GLORP from
PostgreSQL (which is tightly bound).

> But your remarks about porting and namespaces is correct.
> Maintaining something across multiple Smalltalk implementations is very hard.

If not impossible ;-)

Thanks for your support.

Esteban A. Maringolo


[1] I tested the load of DBXTalk in a vanilla 3.0 image using:
Gofer new
  smalltalkhubUser: 'DBXTalk' project: 'DBXTalkDriver';
  package: 'ConfigurationOfOpenDBXDriver';
  load.
#ConfigurationOfOpenDBXDriver asClass loadBleedingEdge.

And got he following error:
 'No version found for ''1.3.1'' of ConfigurationOfTalkFFI because:
Version ''1.3.1'' is not defined in ConfigurationOfTalkFFI. Possible
versions include: #(#bleedingEdge #development ''1.0-baseline''
''1.0'' ''1.1-baseline'' ''1.1'' ''1.2-baseline'' ''1.2''
''1.3-baseline'' ''1.3'' ''1.4'' ''1.5'')'

Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Stephan Eggermont-3
In reply to this post by Esteban A. Maringolo
>I disagree: third-party code should not use un-prefixed general names for classes as long as we live in one namespace.

That would be nice but creates problems. There is existing third party code we want to use.
We can be much more precise in naming, and should not use generic names for specific implementations.

"When #totalWeight is no longer below #maximumWeight, the least recently used item of the cache is evicted (removed) to make room. „ is not part of the Cache behavior, but of LRUCache.
Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Stephan Eggermont-3
In reply to this post by Esteban A. Maringolo
 'No version found for ''1.3.1'' of ConfigurationOfTalkFFI because:

Yes, you can see that in
https://ci.inria.fr/dbxtalk/job/DBXTalkDriver-BleedingEdge/BACKEND=pgsql,Platform=dbxtalk-ubuntu12-i386/138/console

That’s fixed in the configuration I attached.
Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Sven Van Caekenberghe-2
In reply to this post by Stephan Eggermont-3

On 09 Apr 2014, at 00:51, Stephan Eggermont <[hidden email]> wrote:

> "When #totalWeight is no longer below #maximumWeight, the least recently used item of the cache is evicted (removed) to make room. „ is not part of the Cache behavior, but of LRUCache.

Yes, you are correct: how room is made available and how it is decided which entry to remove is subclass behaviour, but the fact that the cache is limited using an abstract concept of weight is not.
Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Esteban A. Maringolo
In reply to this post by Stephan Eggermont-3
Hi Stephan,

2014-04-08 19:55 GMT-03:00 Stephan Eggermont <[hidden email]>:
>  'No version found for ''1.3.1'' of ConfigurationOfTalkFFI because:
>
> Yes, you can see that in
> https://ci.inria.fr/dbxtalk/job/DBXTalkDriver-BleedingEdge/BACKEND=pgsql,Platform=dbxtalk-ubuntu12-i386/138/console
>
> That's fixed in the configuration I attached.

I loaded the configuration you attached, and the loaded the latest
version. However it doesn't work (see attached screenshot).
It is a fresh 3.0 image with only the config you sent me loaded.

OpenDBX aside (which I don't plan to use), I don't see how this will
get GLORP running :)
Should I rename Pharo's Cache to something else, like "PharoCache" or
"AbstractCache"?

Thanks in advance,


Esteban A. Maringolo

OpenDBX-config.png (209K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Error: No factory specified

Sven Van Caekenberghe-2

On 09 Apr 2014, at 03:31, Esteban A. Maringolo <[hidden email]> wrote:

> OpenDBX aside (which I don't plan to use), I don't see how this will
> get GLORP running :)

It is maintained as part of DBXTalk, as far as I understand

  http://www.smalltalkhub.com/#!/~DBXTalk/Glorp/

and yes that is a bit confusing, but you can't do much with Glorp unless you can talk to a database, so it makes some sense.

> Should I rename Pharo's Cache to something else, like "PharoCache" or
> "AbstractCache"?

Well, to get the code to load, that would be a dirty hack that could work.

But IMO we should rename Glorp's Cache to InstancesCache, it is only referred to via CacheManager.

Sven
12