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
|
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 |
I tried closing all windows, and just having a workspace. But the same happens even if I load the configuration through the command line. Esteban A. Maringolo
2014-04-08 16:10 GMT-03:00 Pharo4Stef <[hidden email]>: Not really. error.png (93K) Download Attachment |
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]>:
workspace-error-lrucache.png (19K) Download Attachment |
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 |
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. > |
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. >> > |
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 |
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 |
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. > >> > > > > > |
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 |
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 |
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 |
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 |
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'')' |
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. |
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. |
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. |
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 |
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 |
Free forum by Nabble | Edit this page |