Re: [Pharo-users] [ANN] JNIPort for Pharo 3.0 alpha
BTW, I have published an updated version of JNIPort which partly resolves the performance issue caused by using #become:. Joachim -- My OpenPGP Key: 29F88108 available from hkp://wwwkeys.de.pgp.net
Re: [Pharo-users] [ANN] JNIPort for Pharo 3.0 alpha
On 05 Apr 2014, at 23:35, Joachim Geidel joachim.gei...@onlinehome.de wrote: Yes, #become: is *very* slow in Pharo. No problem at all in VisualWorks or Dolphin Smalltalk or Pharo 1.2, though! Time millisecondsToRun: [1000 timesRepeat: [String new become: String new ]] Pharo 3.0 (and also in 2.0 and 1.4): 3948 3495 2891 2532 3162 Pharo 1.2 with the Squeak 4.2.5beta1U VM: 90 89 82 90 72 VisualWorks 7.9.1: note that this is measured in microseconds: Time microsecondsToRun: [1000 timesRepeat: [String new become: String new ]] 211 208 222 212 208 Yes, this is an extreme difference. On my machine, the above takes between 1 and 2 seconds in Pharo 3 (Pharo VM) and Squeak 4.5 (Cog VM), while VW 7.1 takes just 100 to 200 microseconds. Normally, #become: has to iterate over all memory, but this benchmark is a bit special, since it involves two new objects, maybe VW's memory manager somehow optimises this away. Sven
Re: [Pharo-users] [ANN] BabyMock 2
Hello, Thanks. Very nice library! I have a question: is it possible to expect a method to throw an Exception? I would like something like: protocol describe once: mock recv: #aMethod ; signal: anError. I did not find anything in the documentation. I don't want to test that the mock signals an error but I want to test a code that needs to take into account an exception. Best regards, Christophe. Le 11 mars 2014 à 12:30, Attila Magyar a écrit : I'm pleased to announce the 2.0 version of BabyMock. BabyMock is a visual mock object library that supports test-driven development. This version has a new syntax which is incompatible with the old version. Therefore it has a new repository http://smalltalkhub.com/#!/~zeroflag/BabyMock2 (BabyMock 1 is still available at its old location, but in the future I'd to focus on the development of BabyMock2, so don't expect too many changes regarding the old version). Changes in 2.0 - A new, extensible DSL (no more should/can) - Improved error messages, history of messages, detailed information about argument mismatches - An improved, Spec based GUI - Clicking on a mock opens an inspector on the expectations - Clicking on a message opens an inspector on the message - Object methods can be mocked by defaults - Blocks can be executed after receiving a message by the mock. The block has access to the arguments of the incoming message. - Any argument matcher - Cleanups and simplifications in the code I hope you don't mind the changes regarding the syntax. Personally I think it has lot more pros than cons. More information http://smalltalkhub.com/#!/~zeroflag/BabyMock2 p.s. It needs Pharo3.0. Attila -- View this message in context: http://forum.world.st/ANN-BabyMock-2-tp4748530.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. smime.p7s Description: S/MIME cryptographic signature
Re: [Pharo-users] [ANN] WIP iStoa
Le 07/04/2014 10:01, Bernat Romagosa a écrit : Just FYI, I had to replace the shipped vm and plugins by the latest ones to get it to work on my Debian Wheezy machine. But wait, how come more recent VM work for you and not a bit older one (a few months)? Indeed I used a stock VM coming with Pharo3 linux distribution. The problem comes from GLIBC with hardlink dependencies to 2.15. $ objdump -T iStoa.app/bin/pharo | grep GLIBC_2.15 DF *UND* GLIBC_2.15 __fdelt_chk Therefore I will be curious about objdump -T iStoa.app/bin/pharo | grep __fdelt_chk in your vm. Then what about dpkg -l | grep libc6 I don't understand much why and how there are multiple glibc version dependencies. Thanks a lot. Hilaire -- Dr. Geo http://drgeo.eu
[Pharo-users] Bug in SSL
As you might know a sever bug in the openssl library har been reported to the public. This bug is pretty nasty and allows in an easy fashion to access protected data. Please consider upgrading your products and operating systems to a fixed version of openssl. https://www.openssl.org/news/secadv_20140407.txt regards, Norbert
[Pharo-users] Pharo Consortium: New Bronze Member Ta Mère
The Pharo Consortium is very happy to announce that Ta Mère has joined the Consortium as a Bronze Industrial Member. More about - Ta Mère: http://tamere.eu - Pharo Consortium: http://consortium.pharo.org The goal of the Pharo Consortium is to allow companies to support the ongoing development and future of Pharo. Individuals can support Pharo via the Pharo Association: http://association.pharo.org
Re: [Pharo-users] [ANN] JNIPort for Pharo 3.0 alpha
In VW there is the concept of object bodies and head now we will eventually have that with Spur. Maybe clement explained it somewhere in his blog (I understood the point once and of course I forgot). Now I wonder what changed so much between 1.2 and 3.0 Yes, #become: is *very* slow in Pharo. No problem at all in VisualWorks or Dolphin Smalltalk or Pharo 1.2, though! Time millisecondsToRun: [1000 timesRepeat: [String new become: String new ]] Pharo 3.0 (and also in 2.0 and 1.4): 3948 3495 2891 2532 3162 Pharo 1.2 with the Squeak 4.2.5beta1U VM: 90 89 82 90 72 VisualWorks 7.9.1: note that this is measured in microseconds: Time microsecondsToRun: [1000 timesRepeat: [String new become: String new ]] 211 208 222 212 208 Yes, this is an extreme difference. On my machine, the above takes between 1 and 2 seconds in Pharo 3 (Pharo VM) and Squeak 4.5 (Cog VM), while VW 7.1 takes just 100 to 200 microseconds. Normally, #become: has to iterate over all memory, but this benchmark is a bit special, since it involves two new objects, maybe VW's memory manager somehow optimises this away. Sven
[Pharo-users] Error: No factory specified
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 classarrowOfDirection:size:color: ScrollBarupImage ScrollBarupdateUpButtonImage ScrollBarinitializeUpButton ScrollBarinitializeSlider ScrollBar(Slider)extent: ScrollBarextent: ScrollBar(Morph)bounds: MorphTreeMorph(ScrollPane)hResizeScrollBar MorphTreeMorph(ScrollPane)resizeScrollBars MorphTreeMorph(ScrollPane)hideOrShowScrollBars MorphTreeMorph(ScrollPane)setScrollDeltas MorphTreeMorphadjustSubmorphPositionsOf:startIdx:startPos: MorphTreeMorphadjustSubmorphPositions MorphTreeMorphinnerWidgetChanged MorphTreeMorphprivateUpdateColumnMorphs MorphTreeMorphupdateColumnMorphs MorphTreeMorphaddSubmorphsFromNodeList:previouslyExpanded: MorphTreeMorphupdateContentsWithPreviouslyExpanded: MorphTreeMorphupdateList MorphTreeMorphupdate: PackageTreeModel(Object)changed: in Block: [ :aDependent | aDependent update: aParameter ] DependentsArraydo: PackageTreeModel(Object)changed: PackageTreeNautilusUIupdatePackageView PackageTreeNautilusUI(AbstractNautilusUI)mcWorkingCopyCreated: WeakMessageSendvalue: WeakMessageSendcull: Error: No factory specified Any clues? Esteban A. Maringolo
Re: [Pharo-users] Error: No factory specified
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 classarrowOfDirection:size:color: ScrollBarupImage ScrollBarupdateUpButtonImage ScrollBarinitializeUpButton ScrollBarinitializeSlider ScrollBar(Slider)extent: ScrollBarextent: ScrollBar(Morph)bounds: MorphTreeMorph(ScrollPane)hResizeScrollBar MorphTreeMorph(ScrollPane)resizeScrollBars MorphTreeMorph(ScrollPane)hideOrShowScrollBars MorphTreeMorph(ScrollPane)setScrollDeltas MorphTreeMorphadjustSubmorphPositionsOf:startIdx:startPos: MorphTreeMorphadjustSubmorphPositions MorphTreeMorphinnerWidgetChanged MorphTreeMorphprivateUpdateColumnMorphs MorphTreeMorphupdateColumnMorphs MorphTreeMorphaddSubmorphsFromNodeList:previouslyExpanded: MorphTreeMorphupdateContentsWithPreviouslyExpanded: MorphTreeMorphupdateList MorphTreeMorphupdate: PackageTreeModel(Object)changed: in Block: [ :aDependent | aDependent update: aParameter ] DependentsArraydo: PackageTreeModel(Object)changed: PackageTreeNautilusUIupdatePackageView PackageTreeNautilusUI(AbstractNautilusUI)mcWorkingCopyCreated: WeakMessageSendvalue: WeakMessageSendcull: Error: No factory specified Any clues? Esteban A. Maringolo
Re: [Pharo-users] Error: No factory specified
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 emaring...@gmail.com: 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 pharo4s...@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 classarrowOfDirection:size:color: ScrollBarupImage ScrollBarupdateUpButtonImage ScrollBarinitializeUpButton ScrollBarinitializeSlider ScrollBar(Slider)extent: ScrollBarextent: ScrollBar(Morph)bounds: MorphTreeMorph(ScrollPane)hResizeScrollBar MorphTreeMorph(ScrollPane)resizeScrollBars MorphTreeMorph(ScrollPane)hideOrShowScrollBars MorphTreeMorph(ScrollPane)setScrollDeltas MorphTreeMorphadjustSubmorphPositionsOf:startIdx:startPos: MorphTreeMorphadjustSubmorphPositions MorphTreeMorphinnerWidgetChanged MorphTreeMorphprivateUpdateColumnMorphs MorphTreeMorphupdateColumnMorphs MorphTreeMorphaddSubmorphsFromNodeList:previouslyExpanded: MorphTreeMorphupdateContentsWithPreviouslyExpanded: MorphTreeMorphupdateList MorphTreeMorphupdate: PackageTreeModel(Object)changed: in Block: [ :aDependent | aDependent update: aParameter ] DependentsArraydo: PackageTreeModel(Object)changed: PackageTreeNautilusUIupdatePackageView PackageTreeNautilusUI(AbstractNautilusUI)mcWorkingCopyCreated: WeakMessageSendvalue: WeakMessageSendcull: Error: No factory specified Any clues? Esteban A. Maringolo attachment: workspace-error-lrucache.png
Re: [Pharo-users] Error: No factory specified
Please check what is in your package cache. Any package where you have multiple versions? Stephan
Re: [Pharo-users] Error: No factory specified
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 emaring...@gmail.com 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.
Re: [Pharo-users] Error: No factory specified
https://pharo.fogbugz.com/f/cases/12667 It was BabyMock-Examples. HTH, Sven On 08 Apr 2014, at 21:59, Sven Van Caekenberghe s...@stfx.eu 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 emaring...@gmail.com 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.
Re: [Pharo-users] Error: No factory specified
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 s...@stfx.eu: https://pharo.fogbugz.com/f/cases/12667 It was BabyMock-Examples. HTH, Sven On 08 Apr 2014, at 21:59, Sven Van Caekenberghe s...@stfx.eu 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 emaring...@gmail.com 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.
[Pharo-users] Hierarchical state machine implementation
Hi all, I was wondering if there is an implementation of a hierarchical state machines (with input and output actions) available somewhere for Pharo. Any ideas? Thanks in advance! --- Save our in-boxes! http://emailcharter.org --- Johan Fabry - http://pleiad.cl/~jfabry PLEIAD lab - Computer Science Department (DCC) - University of Chile
Re: [Pharo-users] Error: No factory specified
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
Re: [Pharo-users] Error: No factory specified
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 emaring...@gmail.com 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 s...@stfx.eu: https://pharo.fogbugz.com/f/cases/12667 It was BabyMock-Examples. HTH, Sven On 08 Apr 2014, at 21:59, Sven Van Caekenberghe s...@stfx.eu 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 emaring...@gmail.com 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.
Re: [Pharo-users] Error: No factory specified
On 08 Apr 2014, at 23:06, Stephan Eggermont step...@stack.nl 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
Re: [Pharo-users] Error: No factory specified
2014-04-08 19:04 GMT-03:00 Sven Van Caekenberghe s...@stfx.eu: 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
Re: [Pharo-users] Error: No factory specified
On 09 Apr 2014, at 00:16, Esteban A. Maringolo emaring...@gmail.com 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
Re: [Pharo-users] Error: No factory specified
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 Description: Binary data
Re: [Pharo-users] Error: No factory specified
2014-04-08 19:31 GMT-03:00 Sven Van Caekenberghe s...@stfx.eu: On 09 Apr 2014, at 00:16, Esteban A. Maringolo emaring...@gmail.com 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'')'
Re: [Pharo-users] Error: No factory specified
On 09 Apr 2014, at 03:31, Esteban A. Maringolo emaring...@gmail.com 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