Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 1 participants
- 144619 messages
Re: [Pharo-project] Issue 2747 in pharo: Refactor extract method dialog is too small to be usable
by pharo@googlecode.com
Updates:
Status: Closed
Comment #1 on issue 2747 by marcus.d...(a)gmail.com: Refactor extract method
dialog is too small to be usable
http://code.google.com/p/pharo/issues/detail?id=2747
I checked in 1.2 Full and it seems to be fixed.
March 15, 2011
Re: [Pharo-project] Issue 3247 breaks external packages
by Henrik Sperre Johansen
On 15.03.2011 17:39, Miguel Cobá wrote:
> El mar, 15-03-2011 a las 09:07 +0100, Stéphane Ducasse escribió:
>> On Mar 15, 2011, at 5:58 AM, Miguel Cobá wrote:
>>
>>> I am trying to run Magma and uses TextConstants at: idiom.
>>>
>>> Before 3247 TextConstants was a Dictionary and the at: message works ok.
>>> But now that it is a SharedPool there is no way to use the external code
>>> without modify it before it works in Pharo 1.2. This change doesn't even
>>> tries to present the same interface to acces the Text constants as
>>> before. The TextConstants>>at: message in Pharo 1.2 is the Object>>at:
>>> method that obviously doesn't work.
>> How could we do that?
>> If the system badly uses a global variable in all sort of different ways then
>> there is no way that we can propose the same interface.
>>
> Ok, I understand that, but also it was known that it would break code.
> This is also understandable. and a price to pay to have this system
> going forward. My point is the change was made, and no care for the
> users was made in either:
>
> - stating somewhere (maybe the list, a wiki, a faq) the consequences of
> this change and the advantages over the old code.
> - a way to migrate old code to the new code.
>
> This, at least for someone that has never used shared pools, isn't
> obvious. The issue tracker says something about importing the shared
> pool in the class using it so it can access its values. But there are
> package extensions that add methods to other classes that use
> TextConstants, how is one to work out this case, adding TextConstant
> sharedpool to the class (array in the case of magma that is augmented by
> a couple of methods that uses TextConstants)
>
>> Then TextConstants had different and bad use:
>> - storing constants
>> - storing volatile information about fonts and all sorts of registrations for fonts!!! in textConstants
>> "oh yes this is the dictionary so lets us mess there"
>> instead of using adequate classVariables in adequate classes (we should still clean this part).
>> TextSharedInformation below is for the moment containing all the crap.
>>
> I understand.
>
>>> What is the reason of this change? Why is better than the dictionary (I
>>> suppose that reifying it is a reason)?
>>
>> because TextConstants was the **last** global pool and it was like a jellyfish.
>> In fact when SharedPool were introduced by andreas (it was a good idea BTW)
>> TextConstants was left because it was touching a lot of code.
>>
> Exactly, and this change let a lot of code in the cold without warning
> or a migration path.
>
>> If we want to be able to get a bootstrappable core (and eliot and us want that)
>> then we should clean the mess.
>> Yes all the sharedPool are subclasses of sharedPool except TextConstants.... imagine the code to manage
>> that. Is it a class, a traits, a global is it a dictionary of may be this is textConstants.....
>>
>>> What is the intended usage for code that uses TextConstants the
>>> dictionary access way?
>>> Specifically, code like this doesn't work anymore in Pharo1.2
>>>
>>> self ~~ (TextConstants at: #DefaultTabsArray)
>>> and: [ self ~~ (TextConstants at: #DefaultMarginTabsArray) ]
>>
>> Using accessors to control access to defaultTabsArrat and DefaultMargin.... is the first steps.
>> Like that migration is easier.
> Yes, I now, but this means that all the code using the at: message in
> TextConstants is broken in the new Pharo1.2. Maybe this hasn't been
> noted (at least for me it hasn't) because PharoCore 1.2 wasn't stable
> but now that is stable people will try to load code that uses
> TextConstants and if uses the at: message it won't work.
>
> Don't get me wrong. I am for the progress of Pharo and this change is in
> that direction but it appears to me that was without notice and without
> a deprecation warning akin to the method deprecation. This was released
> to the world without time for package to catch up and prepare either a
> patch to the code or a PharoCompatibility package that copes with usage
> of TextConstants.
>
>
>> Now I do not really understand why a database has to change that kind of text information.
>>
> I don't know either because I'm not expert on magma but that is besides
> the point.
>
> Now what I will do is to add (after consulting with Chris) a Pharo
> specific package to magma, or if that isn't possible, an add-on in
> PharoTaskForces that is loaded after magma packages and overwrites the
> methods using TextConstants with the Pharo specific shared pool
> implementation. This I suppose will dirty the Magma package and I don't
> like it so much.
>
> So, dear Magma on Pharo users, the ConfigurationOfMagma isn't usable
> yet. Please wait a couple of days more. :/
>
>
> Cheers
How about:
<category: 'backwards compatability'
at: aSymbol
^self classPool at: aSymbol
at: aSymbol put: aValue
^self
deprecated: 'TextConstants is not a place to store your stuff'
on: '15 March 2011'
in: 'Pharo1.2'
Cheers,
Henry
March 15, 2011
Re: [Pharo-project] Lumiere on Linux?
by Schwab,Wilhelm K
Great. What about the usual "native code" speed boost? Are you writing a plugin, or is it all Smalltalk code?
________________________________________
From: pharo-project-bounces(a)lists.gforge.inria.fr [pharo-project-bounces(a)lists.gforge.inria.fr] On Behalf Of Ricardo Jacas [ricardo.jacas(a)gmail.com]
Sent: Tuesday, March 15, 2011 11:07 AM
To: Pharo-project(a)lists.gforge.inria.fr
Subject: Re: [Pharo-project] Lumiere on Linux?
Hi guys, as Alex said we are currently working on a quite simple 3d
library entirely based on Morph.
Right know there is only cubes and "3d lines" to play as we please, i
will add some screenshots as soon as i have some spare time :)
2011/3/13 Schwab,Wilhelm K <bschwab(a)anest.ufl.edu>:
> Using libGL.so.1 gives similar results :(
>
>
>
> ________________________________________
> From: pharo-project-bounces(a)lists.gforge.inria.fr [pharo-project-bounces(a)lists.gforge.inria.fr] On Behalf Of Lemuus [lemuus(a)gmail.com]
> Sent: Saturday, March 12, 2011 9:48 PM
> To: Pharo-project(a)lists.gforge.inria.fr
> Subject: Re: [Pharo-project] Lumiere on Linux?
>
> I think that the correct choice is libGL.so,but I'm just guessing.
>
> On Sat, Mar 12, 2011 at 9:43 PM, Schwab,Wilhelm K <bschwab(a)anest.ufl.edu<mailto:bschwab@anest.ufl.edu>> wrote:
> I tried the 1.2 one-click with Lumiere. Following the collaboractive book,
>
> Gofer it
> squeaksource: 'Lumiere';
> package: 'ConfigurationOfLumiere';
> load.
> ( Smalltalk globals classNamed:'ConfigurationOfLumiere' ) perform: #loadDefault.
>
> led to a warning about DisplayList(??), but seemed to work otherwise. Trying an example such as #testRenderingSphere gave an error trying open OpenGL.framework, which I had trouble finding on Linux. Changing AlienOpenGLLibrary>>libraryName to answer 'libglut.so.3' gets it to the point of a segment fault, shown below. Is glut the correct choice, or do I need to get or specify some other library?
>
> Bill
>
>
>
>
> Segmentation fault
>
> Smalltalk stack dump:
> 0xbfd1714c I AlienOpenGLLibrary>glMatrixMode: 2033044028: a(n) AlienOpenGLLibrary
> 0xbfd17170 M [] in AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples
> 0xbfd17190 M BlockClosure>ensure: 2033043980: a(n) BlockClosure
> 0xbfd171b4 M AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples
> 0xbfd171d4 I AlienOpenGLLibraryExamples class>run: 2024758496: a(n) AlienOpenGLLibraryExamples class
> 0xbfd171f0 M AlienOpenGLLibraryExamples class>? 2024758496: a(n) AlienOpenGLLibraryExamples class
> 0xbfd17228 I Compiler>evaluate:in:to:notifying:ifFail:logged: 2032491124: a(n) Compiler
> 0xbfd17268 I [] in OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout
> 0xbfd17284 M BlockClosure>on:do: 2032491080: a(n) BlockClosure
> 0xbfd172b8 I OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout
> 0xbfd172d0 M [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout
> 0xbfd172f8 I [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout
> 0xbfd17318 I OBTextMorphWithShout(TextMorph)>handleEdit: 2024964024: a(n) OBTextMorphWithShout
> 0xbfd17340 I OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout
> 0xbfd1735c M OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout
> 0xbfd17378 M OBDefinitionPanel(OBTextPanel)>perform:orSendTo: 2024940940: a(n) OBDefinitionPanel
> 0xbfd173a8 I [] in ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph
> 0xbfd173c8 M BlockClosure>ensure: 2032477540: a(n) BlockClosure
> 0xbfd173f0 I CursorWithMask(Cursor)>showWhile: 2002515888: a(n) CursorWithMask
> 0xbfd17418 I ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph
> 0xbfd1743c I ToggleMenuItemMorph(MenuItemMorph)>mouseUp: 2031928172: a(n) ToggleMenuItemMorph
> 0xbfd17458 M ToggleMenuItemMorph(MenuItemMorph)>handleMouseUp: 2031928172: a(n) ToggleMenuItemMorph
> 0xbfd17474 M MouseButtonEvent>sentTo: 2032130572: a(n) MouseButtonEvent
> 0xbfd17490 M ToggleMenuItemMorph(Morph)>handleEvent: 2031928172: a(n) ToggleMenuItemMorph
> 0xbfd174c0 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher
> 0xbfd174e0 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher
> 0xbfd17500 M ToggleMenuItemMorph(Morph)>processEvent:using: 2031928172: a(n) ToggleMenuItemMorph
> 0xbfd17534 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher
> 0xbfd17554 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher
> 0xbfd17574 M MenuMorph(Morph)>processEvent:using: 2031927856: a(n) MenuMorph
> 0xbfd17594 M MenuMorph(Morph)>processEvent: 2031927856: a(n) MenuMorph
> 0xbfd175b0 M MenuMorph>handleFocusEvent: 2031927856: a(n) MenuMorph
> 0xbfd175d8 M [] in HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph
> 0xbfd175f4 M [] in PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph
> 0xbfd17610 M BlockClosure>on:do: 2032130460: a(n) BlockClosure
> 0xbfd1763c M PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph
> 0xbfd17660 M HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph
> 0xbfd17688 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph
> 0xbfd176ac M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph
> 0xbfd176d0 M HandMorph>handleEvent: 2002449320: a(n) HandMorph
> 0xbfd176fc M HandMorph>processEvents 2002449320: a(n) HandMorph
> 0xbfd17714 M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState
> 0xbfd17738 M Array(SequenceableCollection)>do: 2001081712: a(n) Array
> 0xbfd17754 M WorldState>handsDo: 2004924588: a(n) WorldState
> 0xbfd17770 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState
> 0xbfd1778c M WorldState>doOneCycleFor: 2004924588: a(n) WorldState
> 0xbfd101bc M WorldState>doOneSubCycleFor: 2004924588: a(n) WorldState
> 0xbfd101d8 M PasteUpMorph>doOneSubCycle 2003523448: a(n) PasteUpMorph
> 0xbfd10200 I MenuMorph>invokeModalAt:in:allowKeyboard: 2031927856: a(n) MenuMorph
> 0xbfd1022c I MenuMorph>invokeModal: 2031927856: a(n) MenuMorph
> 0xbfd10250 I MenuMorph>invokeModal 2031927856: a(n) MenuMorph
> 0xbfd10274 I OBPluggableTextMorphWithShout(PluggableTextMorph)>yellowButtonActivity: 2024962936: a(n) OBPluggableTextMorphWithShout
> 0xbfd10298 I OBTextMorphWithShout(TextMorphForEditView)>mouseDown: 2024964024: a(n) OBTextMorphWithShout
> 0xbfd102b4 M OBTextMorphWithShout(Morph)>handleMouseDown: 2024964024: a(n) OBTextMorphWithShout
> 0xbfd102d0 M MouseButtonEvent>sentTo: 2031927788: a(n) MouseButtonEvent
> 0xbfd102ec M OBTextMorphWithShout(Morph)>handleEvent: 2024964024: a(n) OBTextMorphWithShout
> 0xbfd10328 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd10348 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd10368 M OBTextMorphWithShout(Morph)>processEvent:using: 2024964024: a(n) OBTextMorphWithShout
> 0xbfd103a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd103c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd103e8 M TransformMorph(Morph)>processEvent:using: 2024963800: a(n) TransformMorph
> 0xbfd10428 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd10448 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd10468 M OBPluggableTextMorphWithShout(Morph)>processEvent:using: 2024962936: a(n) OBPluggableTextMorphWithShout
> 0xbfd104a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd104c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd104e8 M OBGroupingMorph(Morph)>processEvent:using: 2024957608: a(n) OBGroupingMorph
> 0xbfd10528 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd10548 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd10568 M OBSystemWindow(Morph)>processEvent:using: 2024944124: a(n) OBSystemWindow
> 0xbfd105a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd105c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd105e8 M PasteUpMorph(Morph)>processEvent:using: 2003523448: a(n) PasteUpMorph
> 0xbfd10610 M PasteUpMorph>processEvent:using: 2003523448: a(n) PasteUpMorph
> 0xbfd10630 M PasteUpMorph(Morph)>processEvent: 2003523448: a(n) PasteUpMorph
> 0xbfd10650 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph
> 0xbfd10674 M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph
> 0xbfd10698 M HandMorph>handleEvent: 2002449320: a(n) HandMorph
> 0xbfd106c4 M HandMorph>processEvents 2002449320: a(n) HandMorph
> 0xbfd106dc M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState
> 0xbfd10700 M Array(SequenceableCollection)>do: 2001081712: a(n) Array
> 0xbfd1071c M WorldState>handsDo: 2004924588: a(n) WorldState
> 0xbfd10738 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState
> 0xbfd10754 M WorldState>doOneCycleFor: 2004924588: a(n) WorldState
> 0xbfd10770 M PasteUpMorph>doOneCycle 2003523448: a(n) PasteUpMorph
> 0xbfd10790 I [] in Project class>spawnNewProcess 2004397340: a(n) Project class
> 2025126836 s [] in BlockClosure>newProcess
>
> Most recent primitives
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> new:
> at:put:
> at:put:
> value:value:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> basicNew
> at:put:
> at:put:
> at:put:
> at:put:
> basicNew:
> at:put:
> at:put:
> basicNew:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> species
> new:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> species
> new:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> basicNew:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> basicNew:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> new
> value:value:
> value:value:
> basicNew
> size
> basicNew
> byteAt:put:
> byteAt:put:
> bitXor:
> size
> species
> basicNew:
> replaceFrom:to:with:startingAt:
> basicNew:
> replaceFrom:to:with:startingAt:
> replaceFrom:to:with:startingAt:
> basicNew:
> basicNew
> at:put:
> species
> basicNew:
> replaceFrom:to:with:startingAt:
> replaceFrom:to:with:startingAt:
> size
> at:put:
> species
> basicNew:
> replaceFrom:to:with:startingAt:
> size
> size
> size
> perform:withArguments:
> perform:withArguments:
> species
> basicNew
> new:
> value:
> perform:withArguments:
> at:put:
> perform:withArguments:
> species
> new:
> species
> new:
> species
> new:
> replaceFrom:to:with:startingAt:
> newMethod:header:
> at:put:
> at:put:
> at:put:
> objectAt:put:
> objectAt:put:
> objectAt:put:
> objectAt:put:
> basicNew
> size
> objectAt:
> basicNew
> objectAt:
> at:put:
> at:put:
> at:put:
> at:put:
> value
> objectAt:
> size
> objectAt:
> objectAt:
> objectAt:
> objectAt:
> objectAt:
> objectAt:put:
> objectAt:
> objectAt:put:
> withArgs:executeMethod:
> basicNew
> perform:
> basicNew
> @
> basicNew
> primCreateRenderer:x:y:w:h:
> millisecondClockValue
> signal
> primSignal:atMilliseconds:
> millisecondClockValue
> wait
> primGetNextEvent:
> millisecondClockValue
> wait
> signal
> millisecondClockValue
> primSignal:atMilliseconds:
> millisecondClockValue
> wait
> signal
> wait
> at:put:
> primRender:getProperty:
> basicNew
> primLoadLibrary:
> basicNew:
> sizeFieldPut:
> unsignedLongAt:put:
> basicNew
> new:
> value
> value
> basicNew:
> sizeFieldPut:
> unsignedLongAt:put:
> basicNew
> at:put:
> primFindSymbol:
> basicNew:
> sizeFieldPut:
> addressFieldPut:
> primFFICallResult:with:
> Aborted
>
>
>
>
>
--
lets reign all together
March 15, 2011
[Pharo-project] OSS sound plugin.
by Lemuus
Hi, is it possible to include the vm-sound-OSS sound plugin in the cog build
on Hudson?. This is the only plugin that seems to work on linux.
Thanks.
Daniel Galdames G.
March 15, 2011
Re: [Pharo-project] Issue 3247 breaks external packages
by Miguel Cobá
El mar, 15-03-2011 a las 09:07 +0100, Stéphane Ducasse escribió:
> On Mar 15, 2011, at 5:58 AM, Miguel Cobá wrote:
>
> > I am trying to run Magma and uses TextConstants at: idiom.
> >
> > Before 3247 TextConstants was a Dictionary and the at: message works ok.
> > But now that it is a SharedPool there is no way to use the external code
> > without modify it before it works in Pharo 1.2. This change doesn't even
> > tries to present the same interface to acces the Text constants as
> > before. The TextConstants>>at: message in Pharo 1.2 is the Object>>at:
> > method that obviously doesn't work.
>
> How could we do that?
> If the system badly uses a global variable in all sort of different ways then
> there is no way that we can propose the same interface.
>
Ok, I understand that, but also it was known that it would break code.
This is also understandable. and a price to pay to have this system
going forward. My point is the change was made, and no care for the
users was made in either:
- stating somewhere (maybe the list, a wiki, a faq) the consequences of
this change and the advantages over the old code.
- a way to migrate old code to the new code.
This, at least for someone that has never used shared pools, isn't
obvious. The issue tracker says something about importing the shared
pool in the class using it so it can access its values. But there are
package extensions that add methods to other classes that use
TextConstants, how is one to work out this case, adding TextConstant
sharedpool to the class (array in the case of magma that is augmented by
a couple of methods that uses TextConstants)
> Then TextConstants had different and bad use:
> - storing constants
> - storing volatile information about fonts and all sorts of registrations for fonts!!! in textConstants
> "oh yes this is the dictionary so lets us mess there"
> instead of using adequate classVariables in adequate classes (we should still clean this part).
> TextSharedInformation below is for the moment containing all the crap.
>
I understand.
> > What is the reason of this change? Why is better than the dictionary (I
> > suppose that reifying it is a reason)?
>
>
> because TextConstants was the **last** global pool and it was like a jellyfish.
> In fact when SharedPool were introduced by andreas (it was a good idea BTW)
> TextConstants was left because it was touching a lot of code.
>
Exactly, and this change let a lot of code in the cold without warning
or a migration path.
> If we want to be able to get a bootstrappable core (and eliot and us want that)
> then we should clean the mess.
> Yes all the sharedPool are subclasses of sharedPool except TextConstants.... imagine the code to manage
> that. Is it a class, a traits, a global is it a dictionary of may be this is textConstants.....
>
> > What is the intended usage for code that uses TextConstants the
> > dictionary access way?
> > Specifically, code like this doesn't work anymore in Pharo1.2
> >
> > self ~~ (TextConstants at: #DefaultTabsArray)
> > and: [ self ~~ (TextConstants at: #DefaultMarginTabsArray) ]
>
>
> Using accessors to control access to defaultTabsArrat and DefaultMargin.... is the first steps.
> Like that migration is easier.
Yes, I now, but this means that all the code using the at: message in
TextConstants is broken in the new Pharo1.2. Maybe this hasn't been
noted (at least for me it hasn't) because PharoCore 1.2 wasn't stable
but now that is stable people will try to load code that uses
TextConstants and if uses the at: message it won't work.
Don't get me wrong. I am for the progress of Pharo and this change is in
that direction but it appears to me that was without notice and without
a deprecation warning akin to the method deprecation. This was released
to the world without time for package to catch up and prepare either a
patch to the code or a PharoCompatibility package that copes with usage
of TextConstants.
>
> Now I do not really understand why a database has to change that kind of text information.
>
I don't know either because I'm not expert on magma but that is besides
the point.
Now what I will do is to add (after consulting with Chris) a Pharo
specific package to magma, or if that isn't possible, an add-on in
PharoTaskForces that is loaded after magma packages and overwrites the
methods using TextConstants with the Pharo specific shared pool
implementation. This I suppose will dirty the Magma package and I don't
like it so much.
So, dear Magma on Pharo users, the ConfigurationOfMagma isn't usable
yet. Please wait a couple of days more. :/
Cheers
--
Miguel Cobá
http://twitter.com/MiguelCobaMtz
http://miguel.leugim.com.mx
March 15, 2011
[Pharo-project] Issue 3819 in pharo: [Hudson] make tar files to not include .git/ subdirectory in archive
by pharo@googlecode.com
Status: Accepted
Owner: siguc...(a)gmail.com
New issue 3819 by siguc...(a)gmail.com: [Hudson] make tar files to not
include .git/ subdirectory in archive
http://code.google.com/p/pharo/issues/detail?id=3819
This is mainly for
https://pharo-ic.lille.inria.fr/hudson/job/Cog%20Git%20Tracker%20%28sig-cog…
jobs, where .git/ subdir is noise.
March 15, 2011
Re: [Pharo-project] Lumiere on Linux?
by Ricardo Jacas
Hi guys, as Alex said we are currently working on a quite simple 3d
library entirely based on Morph.
Right know there is only cubes and "3d lines" to play as we please, i
will add some screenshots as soon as i have some spare time :)
2011/3/13 Schwab,Wilhelm K <bschwab(a)anest.ufl.edu>:
> Using libGL.so.1 gives similar results :(
>
>
>
> ________________________________________
> From: pharo-project-bounces(a)lists.gforge.inria.fr [pharo-project-bounces(a)lists.gforge.inria.fr] On Behalf Of Lemuus [lemuus(a)gmail.com]
> Sent: Saturday, March 12, 2011 9:48 PM
> To: Pharo-project(a)lists.gforge.inria.fr
> Subject: Re: [Pharo-project] Lumiere on Linux?
>
> I think that the correct choice is libGL.so,but I'm just guessing.
>
> On Sat, Mar 12, 2011 at 9:43 PM, Schwab,Wilhelm K <bschwab(a)anest.ufl.edu<mailto:bschwab@anest.ufl.edu>> wrote:
> I tried the 1.2 one-click with Lumiere. Â Following the collaboractive book,
>
> Â Gofer it
> Â Â Â squeaksource: 'Lumiere';
> Â Â Â package: 'ConfigurationOfLumiere';
> Â Â Â load.
> Â Â Â ( Smalltalk globals classNamed:'ConfigurationOfLumiere' ) perform: #loadDefault.
>
> led to a warning about DisplayList(??), but seemed to work otherwise. Â Trying an example such as #testRenderingSphere gave an error trying open OpenGL.framework, which I had trouble finding on Linux. Â Changing AlienOpenGLLibrary>>libraryName to answer 'libglut.so.3' gets it to the point of a segment fault, shown below. Â Is glut the correct choice, or do I need to get or specify some other library?
>
> Bill
>
>
>
>
> Segmentation fault
>
> Smalltalk stack dump:
> 0xbfd1714c I AlienOpenGLLibrary>glMatrixMode: 2033044028: a(n) AlienOpenGLLibrary
> 0xbfd17170 M [] in AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples
> 0xbfd17190 M BlockClosure>ensure: 2033043980: a(n) BlockClosure
> 0xbfd171b4 M AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples
> 0xbfd171d4 I AlienOpenGLLibraryExamples class>run: 2024758496: a(n) AlienOpenGLLibraryExamples class
> 0xbfd171f0 M AlienOpenGLLibraryExamples class>? 2024758496: a(n) AlienOpenGLLibraryExamples class
> 0xbfd17228 I Compiler>evaluate:in:to:notifying:ifFail:logged: 2032491124: a(n) Compiler
> 0xbfd17268 I [] in OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout
> 0xbfd17284 M BlockClosure>on:do: 2032491080: a(n) BlockClosure
> 0xbfd172b8 I OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout
> 0xbfd172d0 M [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout
> 0xbfd172f8 I [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout
> 0xbfd17318 I OBTextMorphWithShout(TextMorph)>handleEdit: 2024964024: a(n) OBTextMorphWithShout
> 0xbfd17340 I OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout
> 0xbfd1735c M OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout
> 0xbfd17378 M OBDefinitionPanel(OBTextPanel)>perform:orSendTo: 2024940940: a(n) OBDefinitionPanel
> 0xbfd173a8 I [] in ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph
> 0xbfd173c8 M BlockClosure>ensure: 2032477540: a(n) BlockClosure
> 0xbfd173f0 I CursorWithMask(Cursor)>showWhile: 2002515888: a(n) CursorWithMask
> 0xbfd17418 I ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph
> 0xbfd1743c I ToggleMenuItemMorph(MenuItemMorph)>mouseUp: 2031928172: a(n) ToggleMenuItemMorph
> 0xbfd17458 M ToggleMenuItemMorph(MenuItemMorph)>handleMouseUp: 2031928172: a(n) ToggleMenuItemMorph
> 0xbfd17474 M MouseButtonEvent>sentTo: 2032130572: a(n) MouseButtonEvent
> 0xbfd17490 M ToggleMenuItemMorph(Morph)>handleEvent: 2031928172: a(n) ToggleMenuItemMorph
> 0xbfd174c0 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher
> 0xbfd174e0 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher
> 0xbfd17500 M ToggleMenuItemMorph(Morph)>processEvent:using: 2031928172: a(n) ToggleMenuItemMorph
> 0xbfd17534 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher
> 0xbfd17554 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher
> 0xbfd17574 M MenuMorph(Morph)>processEvent:using: 2031927856: a(n) MenuMorph
> 0xbfd17594 M MenuMorph(Morph)>processEvent: 2031927856: a(n) MenuMorph
> 0xbfd175b0 M MenuMorph>handleFocusEvent: 2031927856: a(n) MenuMorph
> 0xbfd175d8 M [] in HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph
> 0xbfd175f4 M [] in PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph
> 0xbfd17610 M BlockClosure>on:do: 2032130460: a(n) BlockClosure
> 0xbfd1763c M PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph
> 0xbfd17660 M HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph
> 0xbfd17688 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph
> 0xbfd176ac M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph
> 0xbfd176d0 M HandMorph>handleEvent: 2002449320: a(n) HandMorph
> 0xbfd176fc M HandMorph>processEvents 2002449320: a(n) HandMorph
> 0xbfd17714 M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState
> 0xbfd17738 M Array(SequenceableCollection)>do: 2001081712: a(n) Array
> 0xbfd17754 M WorldState>handsDo: 2004924588: a(n) WorldState
> 0xbfd17770 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState
> 0xbfd1778c M WorldState>doOneCycleFor: 2004924588: a(n) WorldState
> 0xbfd101bc M WorldState>doOneSubCycleFor: 2004924588: a(n) WorldState
> 0xbfd101d8 M PasteUpMorph>doOneSubCycle 2003523448: a(n) PasteUpMorph
> 0xbfd10200 I MenuMorph>invokeModalAt:in:allowKeyboard: 2031927856: a(n) MenuMorph
> 0xbfd1022c I MenuMorph>invokeModal: 2031927856: a(n) MenuMorph
> 0xbfd10250 I MenuMorph>invokeModal 2031927856: a(n) MenuMorph
> 0xbfd10274 I OBPluggableTextMorphWithShout(PluggableTextMorph)>yellowButtonActivity: 2024962936: a(n) OBPluggableTextMorphWithShout
> 0xbfd10298 I OBTextMorphWithShout(TextMorphForEditView)>mouseDown: 2024964024: a(n) OBTextMorphWithShout
> 0xbfd102b4 M OBTextMorphWithShout(Morph)>handleMouseDown: 2024964024: a(n) OBTextMorphWithShout
> 0xbfd102d0 M MouseButtonEvent>sentTo: 2031927788: a(n) MouseButtonEvent
> 0xbfd102ec M OBTextMorphWithShout(Morph)>handleEvent: 2024964024: a(n) OBTextMorphWithShout
> 0xbfd10328 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd10348 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd10368 M OBTextMorphWithShout(Morph)>processEvent:using: 2024964024: a(n) OBTextMorphWithShout
> 0xbfd103a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd103c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd103e8 M TransformMorph(Morph)>processEvent:using: 2024963800: a(n) TransformMorph
> 0xbfd10428 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd10448 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd10468 M OBPluggableTextMorphWithShout(Morph)>processEvent:using: 2024962936: a(n) OBPluggableTextMorphWithShout
> 0xbfd104a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd104c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd104e8 M OBGroupingMorph(Morph)>processEvent:using: 2024957608: a(n) OBGroupingMorph
> 0xbfd10528 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd10548 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd10568 M OBSystemWindow(Morph)>processEvent:using: 2024944124: a(n) OBSystemWindow
> 0xbfd105a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd105c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher
> 0xbfd105e8 M PasteUpMorph(Morph)>processEvent:using: 2003523448: a(n) PasteUpMorph
> 0xbfd10610 M PasteUpMorph>processEvent:using: 2003523448: a(n) PasteUpMorph
> 0xbfd10630 M PasteUpMorph(Morph)>processEvent: 2003523448: a(n) PasteUpMorph
> 0xbfd10650 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph
> 0xbfd10674 M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph
> 0xbfd10698 M HandMorph>handleEvent: 2002449320: a(n) HandMorph
> 0xbfd106c4 M HandMorph>processEvents 2002449320: a(n) HandMorph
> 0xbfd106dc M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState
> 0xbfd10700 M Array(SequenceableCollection)>do: 2001081712: a(n) Array
> 0xbfd1071c M WorldState>handsDo: 2004924588: a(n) WorldState
> 0xbfd10738 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState
> 0xbfd10754 M WorldState>doOneCycleFor: 2004924588: a(n) WorldState
> 0xbfd10770 M PasteUpMorph>doOneCycle 2003523448: a(n) PasteUpMorph
> 0xbfd10790 I [] in Project class>spawnNewProcess 2004397340: a(n) Project class
> 2025126836 s [] in BlockClosure>newProcess
>
> Most recent primitives
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> at:put:
> basicNew
> new:
> at:put:
> at:put:
> value:value:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> basicNew
> at:put:
> at:put:
> at:put:
> at:put:
> basicNew:
> at:put:
> at:put:
> basicNew:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> species
> new:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> species
> new:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> basicNew:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> basicNew:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> new
> value:value:
> value:value:
> basicNew
> size
> basicNew
> byteAt:put:
> byteAt:put:
> bitXor:
> size
> species
> basicNew:
> replaceFrom:to:with:startingAt:
> basicNew:
> replaceFrom:to:with:startingAt:
> replaceFrom:to:with:startingAt:
> basicNew:
> basicNew
> at:put:
> species
> basicNew:
> replaceFrom:to:with:startingAt:
> replaceFrom:to:with:startingAt:
> size
> at:put:
> species
> basicNew:
> replaceFrom:to:with:startingAt:
> size
> size
> size
> perform:withArguments:
> perform:withArguments:
> species
> basicNew
> new:
> value:
> perform:withArguments:
> at:put:
> perform:withArguments:
> species
> new:
> species
> new:
> species
> new:
> replaceFrom:to:with:startingAt:
> newMethod:header:
> at:put:
> at:put:
> at:put:
> objectAt:put:
> objectAt:put:
> objectAt:put:
> objectAt:put:
> basicNew
> size
> objectAt:
> basicNew
> objectAt:
> at:put:
> at:put:
> at:put:
> at:put:
> value
> objectAt:
> size
> objectAt:
> objectAt:
> objectAt:
> objectAt:
> objectAt:
> objectAt:put:
> objectAt:
> objectAt:put:
> withArgs:executeMethod:
> basicNew
> perform:
> basicNew
> @
> basicNew
> primCreateRenderer:x:y:w:h:
> millisecondClockValue
> signal
> primSignal:atMilliseconds:
> millisecondClockValue
> wait
> primGetNextEvent:
> millisecondClockValue
> wait
> signal
> millisecondClockValue
> primSignal:atMilliseconds:
> millisecondClockValue
> wait
> signal
> wait
> at:put:
> primRender:getProperty:
> basicNew
> primLoadLibrary:
> basicNew:
> sizeFieldPut:
> unsignedLongAt:put:
> basicNew
> new:
> value
> value
> basicNew:
> sizeFieldPut:
> unsignedLongAt:put:
> basicNew
> at:put:
> primFindSymbol:
> basicNew:
> sizeFieldPut:
> addressFieldPut:
> primFFICallResult:with:
> Aborted
>
>
>
>
>
--
lets reign all together
March 15, 2011
Re: [Pharo-project] Do you want to add the background picture to the image like we did with Pharo 1.1 ?
by Richard Durr
> I vote against using a picture as a background
+1
I like a gradient as background and preferences to specify an url / a file
of an image. :D
On Tue, Mar 15, 2011 at 12:14 AM, Germán Arduino <garduino(a)gmail.com> wrote:
> 2011/3/13 Tudor Girba <tudor.girba(a)gmail.com>:
> > I vote against using a picture as a background.
> >
> > Doru
> >
> >
>
> +1
>
> Germán.
>
>
March 15, 2011
Re: [Pharo-project] Issue 3785 in pharo: WeakOrderedCollection from Squeak required for Magma on Pharo 1.2 and 1.3
by pharo@googlecode.com
Updates:
Status: FixProposed
Comment #1 on issue 3785 by marcus.d...(a)gmail.com: WeakOrderedCollection
from Squeak required for Magma on Pharo 1.2 and 1.3
http://code.google.com/p/pharo/issues/detail?id=3785
(No comment was entered for this change.)
March 15, 2011
Re: [Pharo-project] Issue 3700 in pharo: it is not possible to install O2 on pharo 1.2
by pharo@googlecode.com
Updates:
Status: Invalid
Comment #1 on issue 3700 by marcus.d...(a)gmail.com: it is not possible to
install O2 on pharo 1.2
http://code.google.com/p/pharo/issues/detail?id=3700
O2 is not supported for 1.2....
March 15, 2011