Re: [Pharo-dev] what is newFrom:

2020-07-23 Thread Reg Krock via Pharo-dev
--- Begin Message ---
I have seen #newFrom: in many places while working Smalltalk. I have never 
assumed it would be a ‘similar’ object. 

Also, what is the meaning of ‘similar’?

Since all objects have same ancestor, Object, one could argue any returned 
object is similar.

Regards,

Reg

Sent from my iPhone

> On Jul 23, 2020, at 10:09 AM, Sean P. DeNigris  wrote:
> 
> Stéphane Ducasse wrote
>> I’m spotting real inconsistency in the specification and use of newFrom: 
> 
> I recently thought something similar when working with ArrayedCollection. As
> you say, here is yet another inconsistency because it doesn't return a
> "similar object", but just copies the elements of the collection argument
> into an instance of itself with the same size. There is also
> ArrayedCollection class >> #withAll: which seems to do the same, but neither
> delegates to the other and they have different implementations.
> 
> 
> 
> -
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
> 


--- End Message ---


Re: [Pharo-dev] what is newFrom:

2020-07-23 Thread Sean P. DeNigris
Stéphane Ducasse wrote
> I’m spotting real inconsistency in the specification and use of newFrom: 

I recently thought something similar when working with ArrayedCollection. As
you say, here is yet another inconsistency because it doesn't return a
"similar object", but just copies the elements of the collection argument
into an instance of itself with the same size. There is also
ArrayedCollection class >> #withAll: which seems to do the same, but neither
delegates to the other and they have different implementations.



-
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html



[Pharo-dev] what is newFrom:

2020-07-21 Thread Stéphane Ducasse
Hi 

I’m spotting real inconsistency in the specification and use of newFrom: 

In Pharo and Object we have 

newFrom: aSimilarObject
"Create an object that has similar contents to aSimilarObject. If the 
classes have any instance variables with the same names, copy them across. If 
this is bad for a class, override this method."

^ (self isVariable
ifTrue: [self basicNew: aSimilarObject basicSize]
ifFalse: [self basicNew]) copySameFrom: aSimilarObject

The ANSI standard does not define newFrom: 

Now in Pharo some classes such dictionary expect as argument a dictionary but 
OrderedDictionary expects a like of association!

Set expects a collection, 
Bag too and many others.
CompiledMethod expects a compiledMethod

I think that it would be good to strengthen this method and we could define 
newFromSibling: but it looks like a copy to me. 

S

Stéphane Ducasse
http://stephane.ducasse.free.fr / http://www.pharo.org 
03 59 35 87 52
Assistant: Aurore Dalle 
FAX 03 59 57 78 50
TEL 03 59 35 86 16
S. Ducasse - Inria
40, avenue Halley, 
Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
Villeneuve d'Ascq 59650
France



Re: [Pharo-dev] What is a GlobalIdentifier

2019-10-09 Thread ducasse
Thanks Andrei 
Yes this is case. 


> On 9 Oct 2019, at 11:03, Andrei Chis  wrote:
> 
> Hi,
> 
> I think we mostly added it for the GTEventCollector, as a way to
> detect if events coming from different images were from the same
> machine.
> 
> Cheers,
> Andrei
> 
> On Fri, Oct 4, 2019 at 9:27 PM Stéphane Ducasse
>  wrote:
>> 
>> Hi
>> 
>> We have a package SystemIdentification and I would like to know if this is 
>> still in use.
>> 
>> 
>> Here is the comment of the class.
>> 
>> I keep global IDs that are used for tracking user activity, e.g. computer 
>> id. By default, you should access me by calling #uniqueInstance.
>> 
>> Responsibility:
>> The IDs that are important to store onto disk (and shared by all images) 
>> should be placed in persistedInformation instance variable. On other hand, 
>> if you do not want to store it onto disk, create a new instance variable. I 
>> can #loadPreferences and #savePreferences onto a disk.
>> 
>> I know computer ID and secret ID. Computer ID is a global UUID that is share 
>> among all the images. It is stored on a local disk. Secret ID is use for 
>> encrypting information, e.g., class names, method names. You can use 
>> #hashForText: method.
>> 
>> Collaborators: I do not collaborate with other classes. I only offer the 
>> basic IDs for other frameworks.
>> 
>> Public API and Key Messages
>> 
>> - computerUUID
>> - ensureComputerUUID
>> - hashForText:
>> - loadPreferences
>> - savePreferences.
>> 
>> Before using #computerUUID, you should call #ensureComputerUUID. It will 
>> update UUID from the disk or stores existing one if it is not stored yet. I 
>> behave like this as automatic storing data to disk on image start-up leads 
>> to errors.
>> 
>> 
>> It looks like it is used by the GTEventCollector and I wonder if it is used 
>> and useful anymore.
>> 
>> Stef
>> 
>> 
>> 
>> 
>> Stéphane Ducasse
>> http://stephane.ducasse.free.fr
>> http://www.synectique.eu / http://www.pharo.org
>> 03 59 35 87 52
>> Assistant: Julie Jonas
>> FAX 03 59 57 78 50
>> TEL 03 59 35 86 16
>> S. Ducasse - Inria
>> 40, avenue Halley,
>> Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
>> Villeneuve d'Ascq 59650
>> France
>> 
> 





Re: [Pharo-dev] What is a GlobalIdentifier

2019-10-09 Thread Andrei Chis
Hi,

I think we mostly added it for the GTEventCollector, as a way to
detect if events coming from different images were from the same
machine.

Cheers,
Andrei

On Fri, Oct 4, 2019 at 9:27 PM Stéphane Ducasse
 wrote:
>
> Hi
>
> We have a package SystemIdentification and I would like to know if this is 
> still in use.
>
>
> Here is the comment of the class.
>
> I keep global IDs that are used for tracking user activity, e.g. computer id. 
> By default, you should access me by calling #uniqueInstance.
>
> Responsibility:
> The IDs that are important to store onto disk (and shared by all images) 
> should be placed in persistedInformation instance variable. On other hand, if 
> you do not want to store it onto disk, create a new instance variable. I can 
> #loadPreferences and #savePreferences onto a disk.
>
> I know computer ID and secret ID. Computer ID is a global UUID that is share 
> among all the images. It is stored on a local disk. Secret ID is use for 
> encrypting information, e.g., class names, method names. You can use 
> #hashForText: method.
>
> Collaborators: I do not collaborate with other classes. I only offer the 
> basic IDs for other frameworks.
>
> Public API and Key Messages
>
> - computerUUID
> - ensureComputerUUID
> - hashForText:
> - loadPreferences
> - savePreferences.
>
> Before using #computerUUID, you should call #ensureComputerUUID. It will 
> update UUID from the disk or stores existing one if it is not stored yet. I 
> behave like this as automatic storing data to disk on image start-up leads to 
> errors.
>
>
> It looks like it is used by the GTEventCollector and I wonder if it is used 
> and useful anymore.
>
> Stef
>
>
>
> 
> Stéphane Ducasse
> http://stephane.ducasse.free.fr
> http://www.synectique.eu / http://www.pharo.org
> 03 59 35 87 52
> Assistant: Julie Jonas
> FAX 03 59 57 78 50
> TEL 03 59 35 86 16
> S. Ducasse - Inria
> 40, avenue Halley,
> Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
> Villeneuve d'Ascq 59650
> France
>



[Pharo-dev] What is a GlobalIdentifier

2019-10-04 Thread Stéphane Ducasse
Hi 

We have a package SystemIdentification and I would like to know if this is 
still in use. 


Here is the comment of the class. 

I keep global IDs that are used for tracking user activity, e.g. computer id. 
By default, you should access me by calling #uniqueInstance.

Responsibility:
The IDs that are important to store onto disk (and shared by all images) should 
be placed in persistedInformation instance variable. On other hand, if you do 
not want to store it onto disk, create a new instance variable. I can 
#loadPreferences and #savePreferences onto a disk.

I know computer ID and secret ID. Computer ID is a global UUID that is share 
among all the images. It is stored on a local disk. Secret ID is use for 
encrypting information, e.g., class names, method names. You can use 
#hashForText: method.

Collaborators: I do not collaborate with other classes. I only offer the basic 
IDs for other frameworks.

Public API and Key Messages

- computerUUID 
- ensureComputerUUID
- hashForText:
- loadPreferences 
- savePreferences.

Before using #computerUUID, you should call #ensureComputerUUID. It will update 
UUID from the disk or stores existing one if it is not stored yet. I behave 
like this as automatic storing data to disk on image start-up leads to errors.


It looks like it is used by the GTEventCollector and I wonder if it is used and 
useful anymore. 

Stef




Stéphane Ducasse
http://stephane.ducasse.free.fr
http://www.synectique.eu / http://www.pharo.org 
03 59 35 87 52
Assistant: Julie Jonas 
FAX 03 59 57 78 50
TEL 03 59 35 86 16
S. Ducasse - Inria
40, avenue Halley, 
Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
Villeneuve d'Ascq 59650
France



Re: [Pharo-dev] what is demote?

2018-04-21 Thread Stephane Ducasse
Excellent! Thanks!
:)

On Sat, Apr 21, 2018 at 7:57 PM, Sean P. DeNigris  wrote:
> CyrilFerlicot wrote
>> It's probably to change a package of the form "MyPackage-Something" to a
>> package "MyPackage" with a "Something" tag.
>
> Yes, breakpoint triggered from Calypso "Demote to package with tag" context
> menu.
>
> Maybe the message name could be improved too… #demoteToTagInPackageNamed:?
> Also, maybe there should be a guard if `aString = self name`?
>
> https://github.com/pharo-project/pharo/pull/1240
>
> I don't want to be accused of talking without action ;-)
>
>
>
> -
> Cheers,
> Sean
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
>



Re: [Pharo-dev] what is demote?

2018-04-21 Thread Sean P. DeNigris
CyrilFerlicot wrote
> It's probably to change a package of the form "MyPackage-Something" to a
> package "MyPackage" with a "Something" tag.

Yes, breakpoint triggered from Calypso "Demote to package with tag" context
menu. 

Maybe the message name could be improved too… #demoteToTagInPackageNamed:?
Also, maybe there should be a guard if `aString = self name`?

https://github.com/pharo-project/pharo/pull/1240

I don't want to be accused of talking without action ;-)



-
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html



Re: [Pharo-dev] what is demote?

2018-04-21 Thread Cyril Ferlicot
On sam. 21 avr. 2018 at 10:12, Stephane Ducasse 
wrote:

> demoteToRPackageNamed: aString
> | newRPackage |
>
> self unregister.
> newRPackage := self class organizer
>   packageNamed: aString
>   ifAbsent:  [ (self class named: aString) register ].
> newRPackage importPackage: self.
> newRPackage classes do: [ :each |
>  SystemAnnouncer uniqueInstance
>classRepackaged: each
>from: self
>to: newRPackage ].
>
> of course no comment because everything is obvious in Pharo, isn't?
>
>

Hi,
It's probably to change a package of the form "MyPackage-Something" to a
package "MyPackage" with a "Something" tag.
-- 
Cyril Ferlicot
https://ferlicot.fr


[Pharo-dev] what is demote?

2018-04-21 Thread Stephane Ducasse
demoteToRPackageNamed: aString
| newRPackage |

self unregister.
newRPackage := self class organizer
  packageNamed: aString
  ifAbsent:  [ (self class named: aString) register ].
newRPackage importPackage: self.
newRPackage classes do: [ :each |
 SystemAnnouncer uniqueInstance
   classRepackaged: each
   from: self
   to: newRPackage ].

of course no comment because everything is obvious in Pharo, isn't?



Re: [Pharo-dev] what is

2018-02-13 Thread Stephane Ducasse
Thierry when I select a pragma and do senders of I see all the users.
Now I do not see why this would be difficult to see to have implementors.
And pragma can be use to perform action now people can decide to do
what they want.

Since pragma arguments are literal, I think that for example the
choice of pargram as a marker
as in settings is much better. So it depends on the scenario.

Now the point is not here. The point is that we should reify the
pragma family/type to attach to it query,
verification and documentation.

Stef




On Tue, Feb 13, 2018 at 9:05 AM, Stephane Ducasse
 wrote:
> So I got the answer: pragmas to be removed. So I will remove them.
>
> Stef
>
> On Sun, Feb 11, 2018 at 6:48 PM, Stephane Ducasse
>  wrote:
>> Hi
>>
>> what is this pragma in metaclass method?
>>
>> Stef



Re: [Pharo-dev] what is

2018-02-13 Thread Stephane Ducasse
So I got the answer: pragmas to be removed. So I will remove them.

Stef

On Sun, Feb 11, 2018 at 6:48 PM, Stephane Ducasse
 wrote:
> Hi
>
> what is this pragma in metaclass method?
>
> Stef



Re: [Pharo-dev] what is

2018-02-12 Thread Hernán Morales Durand
Hi Thierry,

2018-02-12 5:48 GMT-03:00 Thierry Goubier :
> Hi Hernan,
>
> 2018-02-12 7:48 GMT+01:00 Hernán Morales Durand :
>> Hi Eliot,
>>
>> One could say that a pragma is a message without a method?
>>
>> I think pragmas were never been integrated properly into the system
>> browser. We can browses pragmas with the PragmaCollection but what I
>> mean is a pragma-aware browser. See for example, there are some
>> pragmas where is easy to infer the meaning: ,
>> , and others  where is not
>> so clear. So even if we take  is not
>> easy with the current tools to find of which parameters makes sense. I
>> always missed something like the annotation pane plugin or the quality
>> assistant plugin in Nautilus, but for pragmas.
>
> What Eliot is pointing out, is that integration is very easy to do as
> long as you implement it the way Eliot describes it: you see a pragma,
> you select it, search for implementors, and, voilà, you know what the
> pragma is for and how it is used (and you may even get a comment for
> the parameters).
>
> Now, you can try to do that in Pharo, and, of course that doesn't
> work: I can select the pragma ,
> search for implementors, and I get none. If I search for senders,
> among the few hundreds of senders I get into my pharo 6 image, and
> knowing that this should be inside the GT-Inspector-Core package, I
> find:
>
> #GTInspector class >>#extensionsPragma
>
> Now, following senders of #extensionsPragma, I find about a dozen
> senders (because there are multiple implementors of #extensionsPragma,
> probably). One of the senders is probably the key:
>
> ProtoObject>>#gtInspectorPresentationsIn:inContext:
>
> And the use of #allNamed:from:to:sortedUsing: should give you a clue
> about the argument (because, yes there is no comment about the
> argument... or even if the pragma should have one...).
>

As you noted, that's a long way to find a pragma information.
It should be a lot easier.

>> This could be an excellent opportunity for Calypso to see how pragmas
>> can be exploited in the way you describe.
>
> As I said above, if used like Eliot describes, then it could be done
> just by searching implementors of the pragma symbol.
>
> Now, implemented as it is in Pharo, I suspect it will be hard to do
> even for Calypso.
>

I see. I would love a popup after each new pragma is defined to write
some description.
The system can enforce to write documentation! ;)

Best regards,

Hernán

> Regards,
>
> Thierry
>
>> Thanks for the kind explanation.
>>
>> Cheers,
>>
>> Hernán
>>
>>
>> 2018-02-12 1:09 GMT-03:00 Eliot Miranda :
>>> Hi Hernan,
>>>
>>>
>>>
>>>
>>> _,,,^..^,,,_ (phone)
 On Feb 11, 2018, at 10:47 AM, Hernán Morales Durand 
  wrote:

 I don't know, but how you you find documentation about specific pragmas?
>>>
>>> The best way is to ensure the pragma has at least one implementation, i.e. 
>>> there is at least one method in the system that has the same signature as 
>>> the pragma.  This implementation should document the pragma, but even 
>>> better it should be the method that extracts information from the pragma.
>>>
>>> An example will help.  Imagine a pragma that specifies a method belongs on 
>>> some menu.  The method containing the pragma is intended to be an action of 
>>> the menu, do that when the menu item is selected, the method containing the 
>>> pragma will b executed.  The pragma defines the menu the method belongs to, 
>>> where in the method, the string to appear in the menu, the hot key for the 
>>> menu item, etc.
>>>
>>> If the pragma is implemented by a menu builder then
>>> - yes, certainly the pragma can be documented in the m by builder's 
>>> implementation, but also
>>> - the menu can be built by performing the pragma by the menu builder
>>>
>>> This was my intent when Steve Dahl and I invented pragmas, that there would 
>>> always be implementations of the pragma in classes that were designed to 
>>> extract the information from the pragma and add the method containing the 
>>> pragma to whatever structure the pragma was intended to facilitate updating 
>>> (menus, inspectors, exported apis, etc).  So the most powerful way of use 
>>> my pragmas is via a visitor pattern:
>>>
>>> When a method with a particular pragma is added or removed, the class 
>>> containing the method triggers some action.  This action collects all the 
>>> relevant pragma methods in the class hierarchy, creates some builder 
>>> object, and has the builder perform each method containing a relevant 
>>> pragma.
>>>
>>> Using pragmas as arbitrary labels is fine, bug doesn't exploit the fact 
>>> that pragmas are messages, and that hence one can do senders and 
>>> implementors /and/ perform them.
>>>
>>> HTH
>>>

 Hernán


 2018-02-11 14:48 GMT-03:00 Stephane Ducasse :
> Hi
>
> what is this pragma in metaclass method?
>
> Stef
>

>>>
>>
>



Re: [Pharo-dev] what is

2018-02-12 Thread Nicolas Cellier
It sounds like thinking data vs thinking behavior.
Eliot teaches that pragmas should better be used as behavior.
>From what you describe, some of Pharo usage is like behaviorless metadata...

2018-02-12 9:48 GMT+01:00 Thierry Goubier :

> Hi Hernan,
>
> 2018-02-12 7:48 GMT+01:00 Hernán Morales Durand  >:
> > Hi Eliot,
> >
> > One could say that a pragma is a message without a method?
> >
> > I think pragmas were never been integrated properly into the system
> > browser. We can browses pragmas with the PragmaCollection but what I
> > mean is a pragma-aware browser. See for example, there are some
> > pragmas where is easy to infer the meaning: ,
> > , and others  where is not
> > so clear. So even if we take  is not
> > easy with the current tools to find of which parameters makes sense. I
> > always missed something like the annotation pane plugin or the quality
> > assistant plugin in Nautilus, but for pragmas.
>
> What Eliot is pointing out, is that integration is very easy to do as
> long as you implement it the way Eliot describes it: you see a pragma,
> you select it, search for implementors, and, voilà, you know what the
> pragma is for and how it is used (and you may even get a comment for
> the parameters).
>
> Now, you can try to do that in Pharo, and, of course that doesn't
> work: I can select the pragma ,
> search for implementors, and I get none. If I search for senders,
> among the few hundreds of senders I get into my pharo 6 image, and
> knowing that this should be inside the GT-Inspector-Core package, I
> find:
>
> #GTInspector class >>#extensionsPragma
>
> Now, following senders of #extensionsPragma, I find about a dozen
> senders (because there are multiple implementors of #extensionsPragma,
> probably). One of the senders is probably the key:
>
> ProtoObject>>#gtInspectorPresentationsIn:inContext:
>
> And the use of #allNamed:from:to:sortedUsing: should give you a clue
> about the argument (because, yes there is no comment about the
> argument... or even if the pragma should have one...).
>
> > This could be an excellent opportunity for Calypso to see how pragmas
> > can be exploited in the way you describe.
>
> As I said above, if used like Eliot describes, then it could be done
> just by searching implementors of the pragma symbol.
>
> Now, implemented as it is in Pharo, I suspect it will be hard to do
> even for Calypso.
>
> Regards,
>
> Thierry
>
> > Thanks for the kind explanation.
> >
> > Cheers,
> >
> > Hernán
> >
> >
> > 2018-02-12 1:09 GMT-03:00 Eliot Miranda :
> >> Hi Hernan,
> >>
> >>
> >>
> >>
> >> _,,,^..^,,,_ (phone)
> >>> On Feb 11, 2018, at 10:47 AM, Hernán Morales Durand <
> hernan.mora...@gmail.com> wrote:
> >>>
> >>> I don't know, but how you you find documentation about specific
> pragmas?
> >>
> >> The best way is to ensure the pragma has at least one implementation,
> i.e. there is at least one method in the system that has the same signature
> as the pragma.  This implementation should document the pragma, but even
> better it should be the method that extracts information from the pragma.
> >>
> >> An example will help.  Imagine a pragma that specifies a method belongs
> on some menu.  The method containing the pragma is intended to be an action
> of the menu, do that when the menu item is selected, the method containing
> the pragma will b executed.  The pragma defines the menu the method belongs
> to, where in the method, the string to appear in the menu, the hot key for
> the menu item, etc.
> >>
> >> If the pragma is implemented by a menu builder then
> >> - yes, certainly the pragma can be documented in the m by builder's
> implementation, but also
> >> - the menu can be built by performing the pragma by the menu builder
> >>
> >> This was my intent when Steve Dahl and I invented pragmas, that there
> would always be implementations of the pragma in classes that were designed
> to extract the information from the pragma and add the method containing
> the pragma to whatever structure the pragma was intended to facilitate
> updating (menus, inspectors, exported apis, etc).  So the most powerful way
> of use my pragmas is via a visitor pattern:
> >>
> >> When a method with a particular pragma is added or removed, the class
> containing the method triggers some action.  This action collects all the
> relevant pragma methods in the class hierarchy, creates some builder
> object, and has the builder perform each method containing a relevant
> pragma.
> >>
> >> Using pragmas as arbitrary labels is fine, bug doesn't exploit the fact
> that pragmas are messages, and that hence one can do senders and
> implementors /and/ perform them.
> >>
> >> HTH
> >>
> >>>
> >>> Hernán
> >>>
> >>>
> >>> 2018-02-11 14:48 GMT-03:00 Stephane Ducasse :
>  Hi
> 
>  what is this pragma in metaclass method?
> 
>  Stef
> 
> >>>
> >>
> >
>
>


Re: [Pharo-dev] what is

2018-02-12 Thread Thierry Goubier
Hi Hernan,

2018-02-12 7:48 GMT+01:00 Hernán Morales Durand :
> Hi Eliot,
>
> One could say that a pragma is a message without a method?
>
> I think pragmas were never been integrated properly into the system
> browser. We can browses pragmas with the PragmaCollection but what I
> mean is a pragma-aware browser. See for example, there are some
> pragmas where is easy to infer the meaning: ,
> , and others  where is not
> so clear. So even if we take  is not
> easy with the current tools to find of which parameters makes sense. I
> always missed something like the annotation pane plugin or the quality
> assistant plugin in Nautilus, but for pragmas.

What Eliot is pointing out, is that integration is very easy to do as
long as you implement it the way Eliot describes it: you see a pragma,
you select it, search for implementors, and, voilà, you know what the
pragma is for and how it is used (and you may even get a comment for
the parameters).

Now, you can try to do that in Pharo, and, of course that doesn't
work: I can select the pragma ,
search for implementors, and I get none. If I search for senders,
among the few hundreds of senders I get into my pharo 6 image, and
knowing that this should be inside the GT-Inspector-Core package, I
find:

#GTInspector class >>#extensionsPragma

Now, following senders of #extensionsPragma, I find about a dozen
senders (because there are multiple implementors of #extensionsPragma,
probably). One of the senders is probably the key:

ProtoObject>>#gtInspectorPresentationsIn:inContext:

And the use of #allNamed:from:to:sortedUsing: should give you a clue
about the argument (because, yes there is no comment about the
argument... or even if the pragma should have one...).

> This could be an excellent opportunity for Calypso to see how pragmas
> can be exploited in the way you describe.

As I said above, if used like Eliot describes, then it could be done
just by searching implementors of the pragma symbol.

Now, implemented as it is in Pharo, I suspect it will be hard to do
even for Calypso.

Regards,

Thierry

> Thanks for the kind explanation.
>
> Cheers,
>
> Hernán
>
>
> 2018-02-12 1:09 GMT-03:00 Eliot Miranda :
>> Hi Hernan,
>>
>>
>>
>>
>> _,,,^..^,,,_ (phone)
>>> On Feb 11, 2018, at 10:47 AM, Hernán Morales Durand 
>>>  wrote:
>>>
>>> I don't know, but how you you find documentation about specific pragmas?
>>
>> The best way is to ensure the pragma has at least one implementation, i.e. 
>> there is at least one method in the system that has the same signature as 
>> the pragma.  This implementation should document the pragma, but even better 
>> it should be the method that extracts information from the pragma.
>>
>> An example will help.  Imagine a pragma that specifies a method belongs on 
>> some menu.  The method containing the pragma is intended to be an action of 
>> the menu, do that when the menu item is selected, the method containing the 
>> pragma will b executed.  The pragma defines the menu the method belongs to, 
>> where in the method, the string to appear in the menu, the hot key for the 
>> menu item, etc.
>>
>> If the pragma is implemented by a menu builder then
>> - yes, certainly the pragma can be documented in the m by builder's 
>> implementation, but also
>> - the menu can be built by performing the pragma by the menu builder
>>
>> This was my intent when Steve Dahl and I invented pragmas, that there would 
>> always be implementations of the pragma in classes that were designed to 
>> extract the information from the pragma and add the method containing the 
>> pragma to whatever structure the pragma was intended to facilitate updating 
>> (menus, inspectors, exported apis, etc).  So the most powerful way of use my 
>> pragmas is via a visitor pattern:
>>
>> When a method with a particular pragma is added or removed, the class 
>> containing the method triggers some action.  This action collects all the 
>> relevant pragma methods in the class hierarchy, creates some builder object, 
>> and has the builder perform each method containing a relevant pragma.
>>
>> Using pragmas as arbitrary labels is fine, bug doesn't exploit the fact that 
>> pragmas are messages, and that hence one can do senders and implementors 
>> /and/ perform them.
>>
>> HTH
>>
>>>
>>> Hernán
>>>
>>>
>>> 2018-02-11 14:48 GMT-03:00 Stephane Ducasse :
 Hi

 what is this pragma in metaclass method?

 Stef

>>>
>>
>



Re: [Pharo-dev] what is

2018-02-11 Thread Hernán Morales Durand
Hi Eliot,

One could say that a pragma is a message without a method?

I think pragmas were never been integrated properly into the system
browser. We can browses pragmas with the PragmaCollection but what I
mean is a pragma-aware browser. See for example, there are some
pragmas where is easy to infer the meaning: ,
, and others  where is not
so clear. So even if we take  is not
easy with the current tools to find of which parameters makes sense. I
always missed something like the annotation pane plugin or the quality
assistant plugin in Nautilus, but for pragmas.

This could be an excellent opportunity for Calypso to see how pragmas
can be exploited in the way you describe.

Thanks for the kind explanation.

Cheers,

Hernán


2018-02-12 1:09 GMT-03:00 Eliot Miranda :
> Hi Hernan,
>
>
>
>
> _,,,^..^,,,_ (phone)
>> On Feb 11, 2018, at 10:47 AM, Hernán Morales Durand 
>>  wrote:
>>
>> I don't know, but how you you find documentation about specific pragmas?
>
> The best way is to ensure the pragma has at least one implementation, i.e. 
> there is at least one method in the system that has the same signature as the 
> pragma.  This implementation should document the pragma, but even better it 
> should be the method that extracts information from the pragma.
>
> An example will help.  Imagine a pragma that specifies a method belongs on 
> some menu.  The method containing the pragma is intended to be an action of 
> the menu, do that when the menu item is selected, the method containing the 
> pragma will b executed.  The pragma defines the menu the method belongs to, 
> where in the method, the string to appear in the menu, the hot key for the 
> menu item, etc.
>
> If the pragma is implemented by a menu builder then
> - yes, certainly the pragma can be documented in the m by builder's 
> implementation, but also
> - the menu can be built by performing the pragma by the menu builder
>
> This was my intent when Steve Dahl and I invented pragmas, that there would 
> always be implementations of the pragma in classes that were designed to 
> extract the information from the pragma and add the method containing the 
> pragma to whatever structure the pragma was intended to facilitate updating 
> (menus, inspectors, exported apis, etc).  So the most powerful way of use my 
> pragmas is via a visitor pattern:
>
> When a method with a particular pragma is added or removed, the class 
> containing the method triggers some action.  This action collects all the 
> relevant pragma methods in the class hierarchy, creates some builder object, 
> and has the builder perform each method containing a relevant pragma.
>
> Using pragmas as arbitrary labels is fine, bug doesn't exploit the fact that 
> pragmas are messages, and that hence one can do senders and implementors 
> /and/ perform them.
>
> HTH
>
>>
>> Hernán
>>
>>
>> 2018-02-11 14:48 GMT-03:00 Stephane Ducasse :
>>> Hi
>>>
>>> what is this pragma in metaclass method?
>>>
>>> Stef
>>>
>>
>



Re: [Pharo-dev] what is

2018-02-11 Thread Eliot Miranda
Hi Hernan,




_,,,^..^,,,_ (phone)
> On Feb 11, 2018, at 10:47 AM, Hernán Morales Durand 
>  wrote:
> 
> I don't know, but how you you find documentation about specific pragmas?

The best way is to ensure the pragma has at least one implementation, i.e. 
there is at least one method in the system that has the same signature as the 
pragma.  This implementation should document the pragma, but even better it 
should be the method that extracts information from the pragma.

An example will help.  Imagine a pragma that specifies a method belongs on some 
menu.  The method containing the pragma is intended to be an action of the 
menu, do that when the menu item is selected, the method containing the pragma 
will b executed.  The pragma defines the menu the method belongs to, where in 
the method, the string to appear in the menu, the hot key for the menu item, 
etc.

If the pragma is implemented by a menu builder then
- yes, certainly the pragma can be documented in the m by builder's 
implementation, but also
- the menu can be built by performing the pragma by the menu builder

This was my intent when Steve Dahl and I invented pragmas, that there would 
always be implementations of the pragma in classes that were designed to 
extract the information from the pragma and add the method containing the 
pragma to whatever structure the pragma was intended to facilitate updating 
(menus, inspectors, exported apis, etc).  So the most powerful way of use my 
pragmas is via a visitor pattern:

When a method with a particular pragma is added or removed, the class 
containing the method triggers some action.  This action collects all the 
relevant pragma methods in the class hierarchy, creates some builder object, 
and has the builder perform each method containing a relevant pragma.

Using pragmas as arbitrary labels is fine, bug doesn't exploit the fact that 
pragmas are messages, and that hence one can do senders and implementors /and/ 
perform them.

HTH

> 
> Hernán
> 
> 
> 2018-02-11 14:48 GMT-03:00 Stephane Ducasse :
>> Hi
>> 
>> what is this pragma in metaclass method?
>> 
>> Stef
>> 
> 



Re: [Pharo-dev] what is

2018-02-11 Thread Stephane Ducasse
This is one of the problem we will have to fix one of these days.
Pragmas are missing PragmasType as we talk about it in the past.

On Sun, Feb 11, 2018 at 7:47 PM, Hernán Morales Durand
 wrote:
> I don't know, but how you you find documentation about specific pragmas?
>
> Hernán
>
>
> 2018-02-11 14:48 GMT-03:00 Stephane Ducasse :
>> Hi
>>
>> what is this pragma in metaclass method?
>>
>> Stef
>>
>



Re: [Pharo-dev] what is

2018-02-11 Thread Hernán Morales Durand
I don't know, but how you you find documentation about specific pragmas?

Hernán


2018-02-11 14:48 GMT-03:00 Stephane Ducasse :
> Hi
>
> what is this pragma in metaclass method?
>
> Stef
>



[Pharo-dev] what is

2018-02-11 Thread Stephane Ducasse
Hi

what is this pragma in metaclass method?

Stef



Re: [Pharo-dev] What is blocking Pharo from supporting long paths on Windows?

2017-10-18 Thread Alistair Grant
Hi Peter,

On Tue, Oct 17, 2017 at 09:16:49PM +0200, Peter Uhn??k wrote:
> So I wanted to update Iceberg in one of my PharoLauncher managed issues.
> Of course the load failed on some missing file... upon further exploration:
> 
> updating Iceberg updates Metacello, and metacello contains content like
> 
> Metacello-metacello-1af26bf/repository/Metacello-ToolBox.package/
> MetacelloToolBox.class/instance/
> modifySection.sectionIndex.repository.requiredProjects.packages.dependencies.includes.files.repositories.preLoadDoIts.postLoadDoIts.supplyingAnswers.groups.versionSpecsDo..st
> (271 characters - longest file path)
> 
> or
> 
> Metacello-metacello-1af26bf/repository/Metacello-GemStone-TestsMCB.package/
> MetacelloScriptingRegistryDisableUndefinedSymbolsTestCase.extension/instance/
> (152 characters - longest directory path)
> 
> To that you need to add the path to the image (44 chars for me), name of the
> image (35 chars on avg for me), and the local location 
> (github-cache\metacello\
> metacello\Pharo6.1) (41 chars).
> 
> tl;dr: 120 chararacters out of Windows 260 is taken by fixed cost, and I need
> to fit 152+ characters (that's just directory, it includes files of course)
> into 140 chars.
> 
> I have longPathsEnabled in Windows (10) and some applications indeed can go
> beyond the limit --- e.g. I can clone (with git) metacello to the same
> directory (and go over the limit), but Pharo will fail if I try to navigate to
> it. So clearly my system supports it, but not Pharo.
> 
> In conclusion:
> 
> Anyone familiar with WinAPI knows what needs to be done for Pharo to support
> unlimited/long paths?
> 
> Thanks,
> Peter

I'm not familiar with the Win API, but probably what you are looking for
is covered by this comment in sqWin32File.h:

Handles paths longer than 260 characters (including NULL) by prepending
"\\?\" to encode UNC paths as suggested in
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx#maxpath

  "The maximum path of 32,767 characters is approximate,
 because the "\\?\" prefix may be expanded to a longer
 string by the system at run time, and this expansion
 applies to the total length."

FilePlugin already does this, so normal directory traversal, i.e. using
FileReference, within Pharo should be working correctly.


Cheers,
Alistair



[Pharo-dev] What is blocking Pharo from supporting long paths on Windows?

2017-10-17 Thread Peter Uhnák
So I wanted to update Iceberg in one of my PharoLauncher managed issues.
Of course the load failed on some missing file... upon further exploration:

updating Iceberg updates Metacello, and metacello contains content like

Metacello-metacello-1af26bf/repository/Metacello-ToolBox.package/MetacelloToolBox.class/instance/modifySection.sectionIndex.repository.requiredProjects.packages.dependencies.includes.files.repositories.preLoadDoIts.postLoadDoIts.supplyingAnswers.groups.versionSpecsDo..st
(271 characters - longest file path)

or

Metacello-metacello-1af26bf/repository/Metacello-GemStone-TestsMCB.package/MetacelloScriptingRegistryDisableUndefinedSymbolsTestCase.extension/instance/
(152 characters - longest directory path)

To that you need to add the path to the image (44 chars for me), name of
the image (35 chars on avg for me), and the local location
(github-cache\metacello\metacello\Pharo6.1) (41 chars).

tl;dr: 120 chararacters out of Windows 260 is taken by fixed cost, and I
need to fit 152+ characters (that's just directory, it includes files of
course) into 140 chars.

I have longPathsEnabled in Windows (10) and some applications indeed can go
beyond the limit --- e.g. I can clone (with git) metacello to the same
directory (and go over the limit), but Pharo will fail if I try to navigate
to it. So clearly my system supports it, but not Pharo.

In conclusion:

Anyone familiar with WinAPI knows what needs to be done for Pharo to
support unlimited/long paths?

Thanks,
Peter


Re: [Pharo-dev] what is the SpecLayout architecture?

2017-03-12 Thread stepharong

On Sat, 11 Mar 2017 14:55:35 +0100, Peter Uhnak  wrote:


Hi,

this is probably a tall order, but is there some description of  
SpecLayout architecture?


To clarify: I am NOT asking how to use SpecLayout, I am asking how  
SpecLayout works internally.


iirc SpecInterpreter was rewritten by Johan & Stef, so maybe you guys  
have some notes?


No we did not.
In fact the interpreter not really nicely done.
Esteban rewrote it but the spec author never wanted to listen and after a  
while he

refactored the main ugly interpret method
and since then I did not look at it.

And Esteban got deadly attracted by uFFI and related ugly instability.
I think that spec deserves a large pass but this is not something that you  
do without

enough time and concentration.



Thanks,
Peter




--
Using Opera's mail client: http://www.opera.com/mail/



[Pharo-dev] what is the SpecLayout architecture?

2017-03-11 Thread Peter Uhnak
Hi,

this is probably a tall order, but is there some description of SpecLayout 
architecture?

To clarify: I am NOT asking how to use SpecLayout, I am asking how SpecLayout 
works internally.

iirc SpecInterpreter was rewritten by Johan & Stef, so maybe you guys have some 
notes?

Thanks,
Peter



Re: [Pharo-dev] What is the craziest bug you ever face

2017-03-09 Thread Holger Freyther

> On 9 Mar 2017, at 12:36, Stephane Ducasse  wrote:
> 
> Hi guys
> 
> During the DSU workshop we were brainstorming about what are the most 
> difficult bugs we faced and what are the conceptual tools that would have 
> helped you.

Tracking down a problem where a header file was like this

struct touch_screen_event {
#ifdef SOME_FLAG
... other fields
#endif
int x;
int y;
int pressure;
};

The touchscreen library was compile with -DSOME_FLAG but the code using that 
library didn't have the flag set. This means the code using the touchscreen 
events read x/y from the wrong offset in memory. The example work of the 
touchscreen library worked while the real user didn't. It would have helped to 
embed struct sizes and offsets into the shared library to find differences at 
link time.

---

Keyboard handling in kdrive (an Xserver for embedded/mobile usage): After 
plugging/unplugging USB into the device, the keyboard started to generate wrong 
keycodes. In Linux (depending on your keyboard mode) every key event is 
represented as a byte(?). This worked for a long time but then keyboards 
started to have more keys. So a special key value is used to indicate that a 
multi byte sequence will follow. As it turns out plugging/unplugging generated 
a multi-byte keyboard event...

Not sure what would have helped? :)






Re: [Pharo-dev] What is the craziest bug you ever face

2017-03-09 Thread Ron Teitelbaum
We had to fix a Heisenbug.  (a bug that never breaks when you look at it)
 This was a bug that happened only in production, didn't break every time,
and never broke while debugging.  It also got less frequent the more we
added logging to report on the current state when the bug happened.  We
knew it was a timing issue but exactly what was happening eluded us.  The
trick eventual was logging.  We kept adding and removing logging and
mapping the state during the bug until we understood it on paper.  Then we
created a test that reproduced it, fixed it, and celebrated!  It was really
difficult!  The lesson is that no matter how difficult or infrequent the
bug occurs with enough persistence and hard work you can figure it out!

All the best,

Ron Teitelbaum
www.3dicc.com

On Thu, Mar 9, 2017 at 9:38 AM Max Leske  wrote:

> Fixing a race condition in handling open sockets when forking an image. At
> first I had no clue where the problem could come from, then I spent a lot
> of time guessing at the conditions (of course, being a race condition there
> was no means to force the specific condition but I didn't know that yet).
>
> Over all I spent about 6 weeks on this bug and finally fixed it by
> creating a new primitive to handle that specific case. I'm not sure what
> tools could have helped me as this was a rather specific problem
> (OSProcess). But the hardest problems in my experience are usually
> concurrency / asynchrony (e.g. race conditions) or bugs in libraries (where
> you always assume that you must have made a mistake, never the library).
>
> Max
>
> > On 9 Mar 2017, at 12:36, Stephane Ducasse 
> wrote:
> >
> > Hi guys
> >
> > During the DSU workshop we were brainstorming about what are the most
> difficult bugs we faced and what are the conceptual tools that would have
> helped you.
> >
> > Stef
>
>
>
>


Re: [Pharo-dev] What is the craziest bug you ever face

2017-03-09 Thread Max Leske
Fixing a race condition in handling open sockets when forking an image. At 
first I had no clue where the problem could come from, then I spent a lot of 
time guessing at the conditions (of course, being a race condition there was no 
means to force the specific condition but I didn't know that yet).

Over all I spent about 6 weeks on this bug and finally fixed it by creating a 
new primitive to handle that specific case. I'm not sure what tools could have 
helped me as this was a rather specific problem (OSProcess). But the hardest 
problems in my experience are usually concurrency / asynchrony (e.g. race 
conditions) or bugs in libraries (where you always assume that you must have 
made a mistake, never the library).

Max

> On 9 Mar 2017, at 12:36, Stephane Ducasse  wrote:
> 
> Hi guys
> 
> During the DSU workshop we were brainstorming about what are the most 
> difficult bugs we faced and what are the conceptual tools that would have 
> helped you.
> 
> Stef




[Pharo-dev] What is the craziest bug you ever face

2017-03-09 Thread Stephane Ducasse
Hi guys

During the DSU workshop we were brainstorming about what are the most
difficult bugs we faced and what are the conceptual tools that would have
helped you.

Stef


Re: [Pharo-dev] What is the correct way to create new integration configuration?

2016-07-14 Thread Juraj Kubelka
OK. Thanks Marcus!

> El 14-07-2016, a las 12:32, Marcus Denker  escribió:
> 
> Hello,
> 
> the CI is sadly down (admins fixed something yesterday evening to make it 
> work again, but
> it still does not work).
> 
> There is a long weekend here (holiday today), so this might only be fixed 
> monday.
> 
> 
>   Marcus
> 
>> On 14 Jul 2016, at 18:00, Juraj Kubelka > > wrote:
>> 
>> Can someone check if I created well the GTool integration?
>> 
>> - https://pharo.fogbugz.com/f/cases/18773/ 
>>  
>> 
>> I do not know if Monkey should run it. Maybe I miss something.
>> It is in the state Resolved (Fix Review Needed).
>> 
>> Thanks,
>> Juraj
>> 
>>> El 13-07-2016, a las 10:06, Tudor Girba >> > escribió:
>>> 
>>> Thanks a lot, Juraj!
>>> 
>>> Doru
>>> 
>>> 
 On Jul 13, 2016, at 3:45 PM, Juraj Kubelka >>> > wrote:
 
> 
> 13. 7. 2016 v 9:32, Marcus Denker  >:
> 
> 
>> On 13 Jul 2016, at 14:46, Juraj Kubelka > > wrote:
>> 
>> Hi,
>> 
>> I am working on a new configuration for GTools. 
>> 
>> What is the correct way to integrate cases with a slice? 
>> For example this one: 
>> https://pharo.fogbugz.com/f/cases/18471/GTTools-relies-on-hasSpecialSelector-ifTrueSetByte#BugEvent.169953
>>  
>> 
>>  
>> It has slice in Pharo60Inbox. Should I copy commits to GToolkit 
>> repository? 
>> 
> This one is not yet integrated, I submitted a slice to not have to wait 
> for GT, but with my pre-holiday stress I did not menage to actually
> get it in yet. 
> 
> So instead you can ignore the slice and just get these changes in.
 
 OK. I am preparing new configuration here: 
 https://pharo.fogbugz.com/f/cases/18773/ 
  
 I am almost done. 
 I will take care of GTool integrations. So next time there is something to 
 integrate, just ping me. Anyway, i will regularly check FogBugz.
 
> 
>> And how it happens that GToolkit repository has commits done by 
>> TheIntegrator?
> 
> The auto-rewriting deprecations happen to rewrite code. This then is 
> saved in the Pharo repo and needs to be merged.
> (or if it is the latest it can just be copied).
> 
> The same happens if changes have to be done fast or if they cross-cut 
> many packages.
> 
> it is a bit of a mess… for the future we need a unified way to handle 
> things… the current approach with the configurations and 
> external repositories is not good.. far too slow and far too much manual 
> work.
 
 That’s true. It is a lot of manual work and it is also hard to know if I 
 integrate it well, with all changes, etc.
 
 Cheers,
 Juraj
 
> 
>   Marcus
>>> 
>>> --
>>> www.tudorgirba.com 
>>> www.feenk.com 
>>> 
>>> "When people care, great things can happen."
>>> 
>>> 
>>> 
>>> 
>>> 
>> 
> 



Re: [Pharo-dev] What is the correct way to create new integration configuration?

2016-07-14 Thread Marcus Denker
Hello,

the CI is sadly down (admins fixed something yesterday evening to make it work 
again, but
it still does not work).

There is a long weekend here (holiday today), so this might only be fixed 
monday.


Marcus

> On 14 Jul 2016, at 18:00, Juraj Kubelka  wrote:
> 
> Can someone check if I created well the GTool integration?
> 
> - https://pharo.fogbugz.com/f/cases/18773/ 
>  
> 
> I do not know if Monkey should run it. Maybe I miss something.
> It is in the state Resolved (Fix Review Needed).
> 
> Thanks,
> Juraj
> 
>> El 13-07-2016, a las 10:06, Tudor Girba > > escribió:
>> 
>> Thanks a lot, Juraj!
>> 
>> Doru
>> 
>> 
>>> On Jul 13, 2016, at 3:45 PM, Juraj Kubelka >> > wrote:
>>> 
 
 13. 7. 2016 v 9:32, Marcus Denker >>> >:
 
 
> On 13 Jul 2016, at 14:46, Juraj Kubelka  > wrote:
> 
> Hi,
> 
> I am working on a new configuration for GTools. 
> 
> What is the correct way to integrate cases with a slice? 
> For example this one: 
> https://pharo.fogbugz.com/f/cases/18471/GTTools-relies-on-hasSpecialSelector-ifTrueSetByte#BugEvent.169953
>  
> 
>  
> It has slice in Pharo60Inbox. Should I copy commits to GToolkit 
> repository? 
> 
 This one is not yet integrated, I submitted a slice to not have to wait 
 for GT, but with my pre-holiday stress I did not menage to actually
 get it in yet. 
 
 So instead you can ignore the slice and just get these changes in.
>>> 
>>> OK. I am preparing new configuration here: 
>>> https://pharo.fogbugz.com/f/cases/18773/ 
>>>  
>>> I am almost done. 
>>> I will take care of GTool integrations. So next time there is something to 
>>> integrate, just ping me. Anyway, i will regularly check FogBugz.
>>> 
 
> And how it happens that GToolkit repository has commits done by 
> TheIntegrator?
 
 The auto-rewriting deprecations happen to rewrite code. This then is saved 
 in the Pharo repo and needs to be merged.
 (or if it is the latest it can just be copied).
 
 The same happens if changes have to be done fast or if they cross-cut many 
 packages.
 
 it is a bit of a mess… for the future we need a unified way to handle 
 things… the current approach with the configurations and 
 external repositories is not good.. far too slow and far too much manual 
 work.
>>> 
>>> That’s true. It is a lot of manual work and it is also hard to know if I 
>>> integrate it well, with all changes, etc.
>>> 
>>> Cheers,
>>> Juraj
>>> 
 
Marcus
>> 
>> --
>> www.tudorgirba.com 
>> www.feenk.com
>> 
>> "When people care, great things can happen."
>> 
>> 
>> 
>> 
>> 
> 



Re: [Pharo-dev] What is the correct way to create new integration configuration?

2016-07-14 Thread Juraj Kubelka
Can someone check if I created well the GTool integration?

- https://pharo.fogbugz.com/f/cases/18773/ 
 

I do not know if Monkey should run it. Maybe I miss something.
It is in the state Resolved (Fix Review Needed).

Thanks,
Juraj

> El 13-07-2016, a las 10:06, Tudor Girba  escribió:
> 
> Thanks a lot, Juraj!
> 
> Doru
> 
> 
>> On Jul 13, 2016, at 3:45 PM, Juraj Kubelka  wrote:
>> 
>>> 
>>> 13. 7. 2016 v 9:32, Marcus Denker :
>>> 
>>> 
 On 13 Jul 2016, at 14:46, Juraj Kubelka  wrote:
 
 Hi,
 
 I am working on a new configuration for GTools. 
 
 What is the correct way to integrate cases with a slice? 
 For example this one: 
 https://pharo.fogbugz.com/f/cases/18471/GTTools-relies-on-hasSpecialSelector-ifTrueSetByte#BugEvent.169953
  
 It has slice in Pharo60Inbox. Should I copy commits to GToolkit 
 repository? 
 
>>> This one is not yet integrated, I submitted a slice to not have to wait for 
>>> GT, but with my pre-holiday stress I did not menage to actually
>>> get it in yet. 
>>> 
>>> So instead you can ignore the slice and just get these changes in.
>> 
>> OK. I am preparing new configuration here: 
>> https://pharo.fogbugz.com/f/cases/18773/ 
>> I am almost done. 
>> I will take care of GTool integrations. So next time there is something to 
>> integrate, just ping me. Anyway, i will regularly check FogBugz.
>> 
>>> 
 And how it happens that GToolkit repository has commits done by 
 TheIntegrator?
>>> 
>>> The auto-rewriting deprecations happen to rewrite code. This then is saved 
>>> in the Pharo repo and needs to be merged.
>>> (or if it is the latest it can just be copied).
>>> 
>>> The same happens if changes have to be done fast or if they cross-cut many 
>>> packages.
>>> 
>>> it is a bit of a mess… for the future we need a unified way to handle 
>>> things… the current approach with the configurations and 
>>> external repositories is not good.. far too slow and far too much manual 
>>> work.
>> 
>> That’s true. It is a lot of manual work and it is also hard to know if I 
>> integrate it well, with all changes, etc.
>> 
>> Cheers,
>> Juraj
>> 
>>> 
>>> Marcus
> 
> --
> www.tudorgirba.com
> www.feenk.com
> 
> "When people care, great things can happen."
> 
> 
> 
> 
> 



Re: [Pharo-dev] What is the correct way to create new integration configuration?

2016-07-13 Thread Tudor Girba
Thanks a lot, Juraj!

Doru


> On Jul 13, 2016, at 3:45 PM, Juraj Kubelka  wrote:
> 
>> 
>> 13. 7. 2016 v 9:32, Marcus Denker :
>> 
>> 
>>> On 13 Jul 2016, at 14:46, Juraj Kubelka  wrote:
>>> 
>>> Hi,
>>> 
>>> I am working on a new configuration for GTools. 
>>> 
>>> What is the correct way to integrate cases with a slice? 
>>> For example this one: 
>>> https://pharo.fogbugz.com/f/cases/18471/GTTools-relies-on-hasSpecialSelector-ifTrueSetByte#BugEvent.169953
>>>  
>>> It has slice in Pharo60Inbox. Should I copy commits to GToolkit repository? 
>>> 
>> This one is not yet integrated, I submitted a slice to not have to wait for 
>> GT, but with my pre-holiday stress I did not menage to actually
>> get it in yet. 
>> 
>> So instead you can ignore the slice and just get these changes in.
> 
> OK. I am preparing new configuration here: 
> https://pharo.fogbugz.com/f/cases/18773/ 
> I am almost done. 
> I will take care of GTool integrations. So next time there is something to 
> integrate, just ping me. Anyway, i will regularly check FogBugz.
> 
>> 
>>> And how it happens that GToolkit repository has commits done by 
>>> TheIntegrator?
>> 
>> The auto-rewriting deprecations happen to rewrite code. This then is saved 
>> in the Pharo repo and needs to be merged.
>> (or if it is the latest it can just be copied).
>> 
>> The same happens if changes have to be done fast or if they cross-cut many 
>> packages.
>> 
>> it is a bit of a mess… for the future we need a unified way to handle 
>> things… the current approach with the configurations and 
>> external repositories is not good.. far too slow and far too much manual 
>> work.
> 
> That’s true. It is a lot of manual work and it is also hard to know if I 
> integrate it well, with all changes, etc.
> 
> Cheers,
> Juraj
> 
>> 
>>  Marcus

--
www.tudorgirba.com
www.feenk.com

"When people care, great things can happen."







Re: [Pharo-dev] What is the correct way to create new integration configuration?

2016-07-13 Thread Juraj Kubelka

> 13. 7. 2016 v 9:32, Marcus Denker :
> 
> 
>> On 13 Jul 2016, at 14:46, Juraj Kubelka > > wrote:
>> 
>> Hi,
>> 
>> I am working on a new configuration for GTools. 
>> 
>> What is the correct way to integrate cases with a slice? 
>> For example this one: 
>> https://pharo.fogbugz.com/f/cases/18471/GTTools-relies-on-hasSpecialSelector-ifTrueSetByte#BugEvent.169953
>>  
>> 
>>  
>> It has slice in Pharo60Inbox. Should I copy commits to GToolkit repository? 
>> 
> This one is not yet integrated, I submitted a slice to not have to wait for 
> GT, but with my pre-holiday stress I did not menage to actually
> get it in yet. 
> 
> So instead you can ignore the slice and just get these changes in.

OK. I am preparing new configuration here: 
https://pharo.fogbugz.com/f/cases/18773/ 
 
I am almost done. 
I will take care of GTool integrations. So next time there is something to 
integrate, just ping me. Anyway, i will regularly check FogBugz.

> 
>> And how it happens that GToolkit repository has commits done by 
>> TheIntegrator?
> 
> The auto-rewriting deprecations happen to rewrite code. This then is saved in 
> the Pharo repo and needs to be merged.
> (or if it is the latest it can just be copied).
> 
> The same happens if changes have to be done fast or if they cross-cut many 
> packages.
> 
> it is a bit of a mess… for the future we need a unified way to handle things… 
> the current approach with the configurations and 
> external repositories is not good.. far too slow and far too much manual work.

That’s true. It is a lot of manual work and it is also hard to know if I 
integrate it well, with all changes, etc.

Cheers,
Juraj

> 
>   Marcus
> 



Re: [Pharo-dev] What is the correct way to create new integration configuration?

2016-07-13 Thread Marcus Denker

> On 13 Jul 2016, at 14:46, Juraj Kubelka  wrote:
> 
> Hi,
> 
> I am working on a new configuration for GTools. 
> 
> What is the correct way to integrate cases with a slice? 
> For example this one: 
> https://pharo.fogbugz.com/f/cases/18471/GTTools-relies-on-hasSpecialSelector-ifTrueSetByte#BugEvent.169953
>  
> 
>  
> It has slice in Pharo60Inbox. Should I copy commits to GToolkit repository? 
> 
This one is not yet integrated, I submitted a slice to not have to wait for GT, 
but with my pre-holiday stress I did not menage to actually
get it in yet. 

So instead you can ignore the slice and just get these changes in.

> And how it happens that GToolkit repository has commits done by TheIntegrator?

The auto-rewriting deprecations happen to rewrite code. This then is saved in 
the Pharo repo and needs to be merged.
(or if it is the latest it can just be copied).

The same happens if changes have to be done fast or if they cross-cut many 
packages.

it is a bit of a mess… for the future we need a unified way to handle things… 
the current approach with the configurations and 
external repositories is not good.. far too slow and far too much manual work.

Marcus



[Pharo-dev] What is the correct way to create new integration configuration?

2016-07-13 Thread Juraj Kubelka
Hi,

I am working on a new configuration for GTools. 

What is the correct way to integrate cases with a slice? 
For example this one: 
https://pharo.fogbugz.com/f/cases/18471/GTTools-relies-on-hasSpecialSelector-ifTrueSetByte#BugEvent.169953
 

 
It has slice in Pharo60Inbox. Should I copy commits to GToolkit repository? 

And how it happens that GToolkit repository has commits done by TheIntegrator?

Thanks,
Juraj

Re: [Pharo-dev] What is GTInspector using to print UUID?

2016-06-16 Thread Torsten Bergmann

Hi Peter,

 

It's done as a GT extension: see #gtInspectorItemsIn: in class SequencableCollection

and (as nothing is carved in stone in Pharo) for sure this can be changed (or overwritten) ;)

 

HTH

T.

 

Gesendet: Donnerstag, 16. Juni 2016 um 14:10 Uhr
Von: "Peter Uhnák" 
An: "Pharo Development List" , "Moose-related development" 
Betreff: [Pharo-dev] What is GTInspector using to print UUID?


Hi,
 

how inspector decides what to print in the table/headings/etc?

Because for UUID it prints the bytes (I guess because it's child of ByteArray?), however that's rarely useful for UUID, as normally you want to see the #asString representation.

 

 


​

Can this be changed?

 

Thanks,

Peter






[Pharo-dev] What is GTInspector using to print UUID?

2016-06-16 Thread Peter Uhnák
Hi,

how inspector decides what to print in the table/headings/etc?
Because for UUID it prints the bytes (I guess because it's child of
ByteArray?), however that's rarely useful for UUID, as normally you want to
see the #asString representation.



​
Can this be changed?

Thanks,
Peter


Re: [Pharo-dev] What is the limit of prespur VM memory under Windows?

2016-03-01 Thread Stephan Eggermont

On 29-02-16 18:42, Paul DeBruicker wrote:

A while ago Eliot Miranda posted this script to see when an image runs out of
memory:


And with a 50613 spur image on Ubuntu that gives me 3917 MB,starting 
from 93MB. Same for 50495 (pre-spur) was 1016 MB. It might be an option 
to run a virtualbox/vmware image on the windows machine


Stephan




Re: [Pharo-dev] What is the limit of prespur VM memory under Windows?

2016-03-01 Thread Blondeau Vincent
Hi Eliot,

I executed the cmd like advised in the link you gave me and change the ini file 
to AddressSpaceLimit=30
I got now 1384.4 Mo for a non-spur and 1778.0Mo for a spur thanks to the script 
of Paul.

But we still far of the 3Go…

Anyway, I tried again and it load all I wanted!

Thanks
Vincent


De : Pharo-dev [mailto:pharo-dev-boun...@lists.pharo.org] De la part de Eliot 
Miranda
Envoyé : lundi 29 février 2016 19:25
À : Pharo Development List
Objet : Re: [Pharo-dev] What is the limit of prespur VM memory under Windows?

Hi Clément,


On Feb 29, 2016, at 10:01 AM, Clément Bera 
mailto:bera.clem...@gmail.com>> wrote:
No.

The limit is supposed to be around 500 Mb on windows or 1 Gb for some 
specifically compiled VMs. 1 Gb VM may not start on windows, you may need to 
restart the computer before.

IIRC the default limit is 512Mb and that can be raised on the command line (or 
in an ini file ?).

But I think that at least Windows xo has a 2gb preprocessor limit by default.  
I remember that to go higher one needed to change how the system booted in 
win.ini.  See eg 
https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/How-to-enable-a-3GB-switch-on-Windows-Vista-Windows-7-or-Windows-XP-s.html



To bypass the limit the best way is to use a spur VM honestly. Spur32VMs are 
limited to around 2.7Gb on Windows.

+1 :)

_,,,^..^,,,_ (phone)


2016-02-29 18:53 GMT+01:00 Blondeau Vincent 
mailto:vincent.blond...@worldline.com>>:
Hi,


I am confronted with a memory issue under Windows.

I have an image of 745Mo with a Moose model, and I cannot instantiate a string 
of 30Mo: I get a OutOfMemoryException.

The theoretical limit is 2Go, isn’t it?



I have a prespur vm under a Windows 64 bits:
Smalltalk vm version:
'NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 
4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Dec  3 2015
NBCogit NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 
4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Dec  3 2015
https://github.com/pharo-project/pharo-vm.git Commit: 
28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: 
Esteban Lorenzano mailto:esteba...@gmail.com>> Jenkins 
build #15019

I set in Pharo.ini: AddressSpaceLimit=20



What can I do to bypass the issue?





Thanks in advance,

Vincent


!!!*
"Ce message et les pièces jointes sont confidentiels et réservés à l'usage 
exclusif de ses destinataires. Il peut également être protégé par le secret 
professionnel. Si vous recevez ce message par erreur, merci d'en avertir 
immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant 
être assurée sur Internet, la responsabilité de Worldline ne pourra être 
recherchée quant au contenu de ce message. Bien que les meilleurs efforts 
soient faits pour maintenir cette transmission exempte de tout virus, 
l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne 
saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for 
the addressee; it may also be privileged. If you receive this e-mail in error, 
please notify the sender immediately and destroy it. As its integrity cannot be 
secured on the Internet, the Worldline liability cannot be triggered for the 
message content. Although the sender endeavours to maintain a computer 
virus-free network, the sender does not warrant that this transmission is 
virus-free and will not be liable for any damages resulting from any virus 
transmitted.!!!"


!!!*
"Ce message et les pièces jointes sont confidentiels et réservés à l'usage 
exclusif de ses destinataires. Il peut également être protégé par le secret 
professionnel. Si vous recevez ce message par erreur, merci d'en avertir 
immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant 
être assurée sur Internet, la responsabilité de Worldline ne pourra être 
recherchée quant au contenu de ce message. Bien que les meilleurs efforts 
soient faits pour maintenir cette transmission exempte de tout virus, 
l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne 
saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for 
the addressee; it may also be privileged. If you receive this e-mail in error, 
please notify the sender immediately and destroy it. As its integrity cannot be 
secured on the Internet, the Worldline liability cannot be triggered for the 
message content. Although the sender endeavours to maintain a computer 
virus-free network, the sender does not warrant that this transmission is 
virus-free and will not be liable for any damages resulting from any virus 
transmitted.!!!"


Re: [Pharo-dev] What is the limit of prespur VM memory under Windows?

2016-03-01 Thread Blondeau Vincent
Thanks for the  script, it is very useful :)

By running it, I get:
Not spur image: 1143.0 Mo
Spur image: 1140.1 Mo

We are far than the 2Go... even for spur.

Vincent


> -Message d'origine-
> De : Pharo-dev [mailto:pharo-dev-boun...@lists.pharo.org] De la part de
> Paul DeBruicker
> Envoyé : lundi 29 février 2016 18:42
> À : pharo-dev@lists.pharo.org
> Objet : Re: [Pharo-dev] What is the limit of prespur VM memory under
> Windows?
>
> A while ago Eliot Miranda posted this script to see when an image runs out of
> memory:
>
> | them |
> them := OrderedCollection new.
> [[them addLast: (ByteArray new: 1600).
> Transcript cr; show: ((Smalltalk vm parameterAt: 3) / (1024*1024.0)
> printShowingDecimalPlaces: 1); flush] repeat]
> on: OutOfMemory
> do: [:ex| 2 to: them size by: 2 do: [:i| them at: i put: nil. Smalltalk
> garbageCollect]].
> Transcript cr; show: ((Smalltalk vm parameterAt: 3) / (1024*1024.0)
> printShowingDecimalPlaces: 1); flush.
> them := nil.
> Smalltalk garbageCollect.
> Transcript cr; show: ((Smalltalk vm parameterAt: 3) / (1024*1024.0)
> printShowingDecimalPlaces: 1); flush
>
>
>
>
> its from
> here:http://forum.world.st/New-Cog-VMs-available-
> td4764823.html#a4764840
>
> With that you ought to easily be able to see how high you can go on a
> platform.
>
>
>
> Blondeau Vincent wrote
> > Hi,
> >
> >
> > I am confronted with a memory issue under Windows.
> >
> > I have an image of 745Mo with a Moose model, and I cannot instantiate
> > a string of 30Mo: I get a OutOfMemoryException.
> >
> > The theoretical limit is 2Go, isn't it?
> >
> >
> >
> > I have a prespur vm under a Windows 64 bits:
> > Smalltalk vm version:
> > 'NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.21 uuid:
> > 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Dec  3 2015 NBCogit
> > NativeBoost-CogPlugin-EstebanLorenzano.21 uuid:
> > 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Dec  3 2015
> > https://github.com/pharo-project/pharo-vm.git Commit:
> > 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43
> > +0200
> > By: Esteban Lorenzano <
>
> > estebanlm@
>
> > > Jenkins build #15019
> >
> > I set in Pharo.ini: AddressSpaceLimit=20
> >
> >
> >
> > What can I do to bypass the issue?
> >
> >
> >
> >
> >
> > Thanks in advance,
> >
> > Vincent
> >
> >
> >
> !!!
> ***
> > ** "Ce message et les pi?ces jointes sont
> > confidentiels et r?serv?s ? l'usage exclusif de ses destinataires. Il
> > peut ?galement ?tre prot?g? par le secret professionnel. Si vous
> > recevez ce message par erreur, merci d'en avertir imm?diatement
> > l'exp?diteur et de le d?truire. L'int?grit? du message ne pouvant ?tre
> > assur?e sur Internet, la responsabilit? de Worldline ne pourra ?tre
> > recherch?e quant au contenu de ce message. Bien que les meilleurs
> > efforts soient faits pour maintenir cette transmission exempte de tout
> > virus, l'exp?diteur ne donne aucune garantie ? cet ?gard et sa
> > responsabilit? ne saurait ?tre recherch?e pour tout dommage r?sultant
> > d'un virus transmis.
> >
> > This e-mail and the documents attached are confidential and intended
> > solely for the addressee; it may also be privileged. If you receive
> > this e-mail in error, please notify the sender immediately and destroy
> > it. As its integrity cannot be secured on the Internet, the Worldline
> > liability cannot be triggered for the message content. Although the
> > sender endeavours to maintain a computer virus-free network, the
> > sender does not warrant that this transmission is virus-free and will
> > not be liable for any damages resulting from any virus transmitted.!!!"
>
>
>
>
>
> --
> View this message in context: http://forum.world.st/What-is-the-limit-of-
> prespur-VM-memory-under-Windows-tp4881619p4881625.html
> Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.


!!!*
"Ce message et les pièces jointes sont confidentiels et réservés à l'usage 
exclusif de ses destinataires. Il peut également être protégé par le secret 
professionnel. Si vous recevez ce message par erreur, merci d'en avertir 
immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant 
être assurée sur Internet, la responsabilité de Worldline ne pourra êtr

Re: [Pharo-dev] What is the limit of prespur VM memory under Windows?

2016-02-29 Thread Clément Bera
2016-02-29 19:25 GMT+01:00 Eliot Miranda :

> Hi Clément,
>
>
> On Feb 29, 2016, at 10:01 AM, Clément Bera  wrote:
>
> No.
>
> The limit is supposed to be around 500 Mb on windows or 1 Gb for some
> specifically compiled VMs. 1 Gb VM may not start on windows, you may need
> to restart the computer before.
>
>
> IIRC the default limit is 512Mb and that can be raised on the command line
> (or in an ini file ?).
>
> But I think that at least Windows xo has a 2gb preprocessor limit by
> default.  I remember that to go higher one needed to change how the system
> booted in win.ini.  See eg
> https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/How-to-enable-a-3GB-switch-on-Windows-Vista-Windows-7-or-Windows-XP-s.html
>
>
yes you can change the .ini file.

But in a deployed application on windows for a Synectique customer they use
2Gb and sometimes windows doesn't want to start the app, as a work around
they found out that windows always agrees to start the app just after being
reboot. So the .ini file is good on Unix to allow 2Gb instead of the
default 1 Gb, but on windows there are additionnal problems.

So the Spur VM is really the best solution anyway.


>
> To bypass the limit the best way is to use a spur VM honestly. Spur32VMs
> are limited to around 2.7Gb on Windows.
>
>
> +1 :)
>
> _,,,^..^,,,_ (phone)
>
> 2016-02-29 18:53 GMT+01:00 Blondeau Vincent <
> vincent.blond...@worldline.com>:
>
>> Hi,
>>
>>
>>
>> I am confronted with a memory issue under Windows.
>>
>> I have an image of 745Mo with a Moose model, and I cannot instantiate a 
>> string of 30Mo: I get a OutOfMemoryException.
>>
>> The theoretical limit is 2Go, isn’t it?
>>
>>
>>
>> I have a prespur vm under a Windows 64 bits:
>>
>> Smalltalk vm version:
>>
>> 'NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.21 uuid:
>> 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Dec  3 2015
>>
>> NBCogit NativeBoost-CogPlugin-EstebanLorenzano.21 uuid:
>> 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Dec  3 2015
>>
>> https://github.com/pharo-project/pharo-vm.git Commit:
>> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200
>> By: Esteban Lorenzano  Jenkins build #15019
>>
>> I set in Pharo.ini: AddressSpaceLimit=20
>>
>>
>>
>> What can I do to bypass the issue?
>>
>>
>>
>>
>>
>> Thanks in advance,
>>
>> Vincent
>>
>>
>>
>>
>> !!!*
>> "Ce message et les pièces jointes sont confidentiels et réservés à
>> l'usage exclusif de ses destinataires. Il peut également être protégé par
>> le secret professionnel. Si vous recevez ce message par erreur, merci d'en
>> avertir immédiatement l'expéditeur et de le détruire. L'intégrité du
>> message ne pouvant être assurée sur Internet, la responsabilité de
>> Worldline ne pourra être recherchée quant au contenu de ce message. Bien
>> que les meilleurs efforts soient faits pour maintenir cette transmission
>> exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et
>> sa responsabilité ne saurait être recherchée pour tout dommage résultant
>> d'un virus transmis.
>>
>> This e-mail and the documents attached are confidential and intended
>> solely for the addressee; it may also be privileged. If you receive this
>> e-mail in error, please notify the sender immediately and destroy it. As
>> its integrity cannot be secured on the Internet, the Worldline liability
>> cannot be triggered for the message content. Although the sender endeavours
>> to maintain a computer virus-free network, the sender does not warrant that
>> this transmission is virus-free and will not be liable for any damages
>> resulting from any virus transmitted.!!!"
>>
>
>


Re: [Pharo-dev] What is the limit of prespur VM memory under Windows?

2016-02-29 Thread Eliot Miranda
Hi Clément,


> On Feb 29, 2016, at 10:01 AM, Clément Bera  wrote:
> 
> No.
> 
> The limit is supposed to be around 500 Mb on windows or 1 Gb for some 
> specifically compiled VMs. 1 Gb VM may not start on windows, you may need to 
> restart the computer before.

IIRC the default limit is 512Mb and that can be raised on the command line (or 
in an ini file ?).

But I think that at least Windows xo has a 2gb preprocessor limit by default.  
I remember that to go higher one needed to change how the system booted in 
win.ini.  See eg 
https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/How-to-enable-a-3GB-switch-on-Windows-Vista-Windows-7-or-Windows-XP-s.html

> 
> To bypass the limit the best way is to use a spur VM honestly. Spur32VMs are 
> limited to around 2.7Gb on Windows.

+1 :)

_,,,^..^,,,_ (phone)

> 2016-02-29 18:53 GMT+01:00 Blondeau Vincent :
>> Hi,
>> 
>>  
>> 
>> I am confronted with a memory issue under Windows. 
>> I have an image of 745Mo with a Moose model, and I cannot instantiate a 
>> string of 30Mo: I get a OutOfMemoryException.
>> The theoretical limit is 2Go, isn’t it?
>>  
>> I have a prespur vm under a Windows 64 bits:
>> Smalltalk vm version:
>> 
>> 'NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 
>> 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Dec  3 2015
>> 
>> NBCogit NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 
>> 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Dec  3 2015
>> 
>> https://github.com/pharo-project/pharo-vm.git Commit: 
>> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: 
>> Esteban Lorenzano  Jenkins build #15019
>> 
>> I set in Pharo.ini: AddressSpaceLimit=20
>>  
>> What can I do to bypass the issue?
>>  
>>  
>> Thanks in advance,
>> Vincent
>>  
>> 
>> 
>> !!!*
>> "Ce message et les pièces jointes sont confidentiels et réservés à l'usage 
>> exclusif de ses destinataires. Il peut également être protégé par le secret 
>> professionnel. Si vous recevez ce message par erreur, merci d'en avertir 
>> immédiatement l'expéditeur et de le détruire. L'intégrité du message ne 
>> pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra 
>> être recherchée quant au contenu de ce message. Bien que les meilleurs 
>> efforts soient faits pour maintenir cette transmission exempte de tout 
>> virus, l'expéditeur ne donne aucune garantie à cet égard et sa 
>> responsabilité ne saurait être recherchée pour tout dommage résultant d'un 
>> virus transmis.
>> 
>> This e-mail and the documents attached are confidential and intended solely 
>> for the addressee; it may also be privileged. If you receive this e-mail in 
>> error, please notify the sender immediately and destroy it. As its integrity 
>> cannot be secured on the Internet, the Worldline liability cannot be 
>> triggered for the message content. Although the sender endeavours to 
>> maintain a computer virus-free network, the sender does not warrant that 
>> this transmission is virus-free and will not be liable for any damages 
>> resulting from any virus transmitted.!!!"
> 


Re: [Pharo-dev] What is the limit of prespur VM memory under Windows?

2016-02-29 Thread Eliot Miranda
Hi Vincent,

   yes I think you're right that the limit is 2Gb unless you change the system 
in I file.  Google something like "more than 2gb under Windows" and IIRC you 
may be able to get 3gb.

One thing is you're using a .ini setting.  Perhaps that doesn't work.  So try 
using the -memory argument on the command line.

Another thing is that 2gb is 147,483,648 greater than 2,000,000,000 so you 
could try, say, 2,050,000,000.

Finally you could start the image up on another IS and try and reduce its size, 
save and then start it back up on Windows.

That's all I can think of right now.

_,,,^..^,,,_ (phone)

> On Feb 29, 2016, at 9:53 AM, Blondeau Vincent 
>  wrote:
> 
> Hi,
>  
> I am confronted with a memory issue under Windows. 
> I have an image of 745Mo with a Moose model, and I cannot instantiate a 
> string of 30Mo: I get a OutOfMemoryException.
> The theoretical limit is 2Go, isn’t it?
>  
> I have a prespur vm under a Windows 64 bits:
> Smalltalk vm version:
> 'NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 
> 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Dec  3 2015
> NBCogit NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 
> 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Dec  3 2015
> https://github.com/pharo-project/pharo-vm.git Commit: 
> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: 
> Esteban Lorenzano  Jenkins build #15019
> I set in Pharo.ini: AddressSpaceLimit=20
>  
> What can I do to bypass the issue?
>  
>  
> Thanks in advance,
> Vincent
>  
> 
> !!!*
> "Ce message et les pièces jointes sont confidentiels et réservés à l'usage 
> exclusif de ses destinataires. Il peut également être protégé par le secret 
> professionnel. Si vous recevez ce message par erreur, merci d'en avertir 
> immédiatement l'expéditeur et de le détruire. L'intégrité du message ne 
> pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra 
> être recherchée quant au contenu de ce message. Bien que les meilleurs 
> efforts soient faits pour maintenir cette transmission exempte de tout virus, 
> l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne 
> saurait être recherchée pour tout dommage résultant d'un virus transmis.
> 
> This e-mail and the documents attached are confidential and intended solely 
> for the addressee; it may also be privileged. If you receive this e-mail in 
> error, please notify the sender immediately and destroy it. As its integrity 
> cannot be secured on the Internet, the Worldline liability cannot be 
> triggered for the message content. Although the sender endeavours to maintain 
> a computer virus-free network, the sender does not warrant that this 
> transmission is virus-free and will not be liable for any damages resulting 
> from any virus transmitted.!!!"


Re: [Pharo-dev] What is the limit of prespur VM memory under Windows?

2016-02-29 Thread Paul DeBruicker
A while ago Eliot Miranda posted this script to see when an image runs out of
memory:

| them | 
them := OrderedCollection new. 
[[them addLast: (ByteArray new: 1600). 
Transcript cr; show: ((Smalltalk vm parameterAt: 3) / (1024*1024.0)
printShowingDecimalPlaces: 1); flush] repeat] 
on: OutOfMemory 
do: [:ex| 2 to: them size by: 2 do: [:i| them at: i put: nil. Smalltalk
garbageCollect]]. 
Transcript cr; show: ((Smalltalk vm parameterAt: 3) / (1024*1024.0)
printShowingDecimalPlaces: 1); flush. 
them := nil. 
Smalltalk garbageCollect. 
Transcript cr; show: ((Smalltalk vm parameterAt: 3) / (1024*1024.0)
printShowingDecimalPlaces: 1); flush 




its from
here:http://forum.world.st/New-Cog-VMs-available-td4764823.html#a4764840

With that you ought to easily be able to see how high you can go on a
platform.



Blondeau Vincent wrote
> Hi,
> 
> 
> I am confronted with a memory issue under Windows.
> 
> I have an image of 745Mo with a Moose model, and I cannot instantiate a
> string of 30Mo: I get a OutOfMemoryException.
> 
> The theoretical limit is 2Go, isn't it?
> 
> 
> 
> I have a prespur vm under a Windows 64 bits:
> Smalltalk vm version:
> 'NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.21 uuid:
> 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Dec  3 2015
> NBCogit NativeBoost-CogPlugin-EstebanLorenzano.21 uuid:
> 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Dec  3 2015
> https://github.com/pharo-project/pharo-vm.git Commit:
> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200
> By: Esteban Lorenzano <

> estebanlm@

> > Jenkins build #15019
> 
> I set in Pharo.ini: AddressSpaceLimit=20
> 
> 
> 
> What can I do to bypass the issue?
> 
> 
> 
> 
> 
> Thanks in advance,
> 
> Vincent
> 
> 
> !!!*
> "Ce message et les pi?ces jointes sont confidentiels et r?serv?s ? l'usage
> exclusif de ses destinataires. Il peut ?galement ?tre prot?g? par le
> secret professionnel. Si vous recevez ce message par erreur, merci d'en
> avertir imm?diatement l'exp?diteur et de le d?truire. L'int?grit? du
> message ne pouvant ?tre assur?e sur Internet, la responsabilit? de
> Worldline ne pourra ?tre recherch?e quant au contenu de ce message. Bien
> que les meilleurs efforts soient faits pour maintenir cette transmission
> exempte de tout virus, l'exp?diteur ne donne aucune garantie ? cet ?gard
> et sa responsabilit? ne saurait ?tre recherch?e pour tout dommage
> r?sultant d'un virus transmis.
> 
> This e-mail and the documents attached are confidential and intended
> solely for the addressee; it may also be privileged. If you receive this
> e-mail in error, please notify the sender immediately and destroy it. As
> its integrity cannot be secured on the Internet, the Worldline liability
> cannot be triggered for the message content. Although the sender
> endeavours to maintain a computer virus-free network, the sender does not
> warrant that this transmission is virus-free and will not be liable for
> any damages resulting from any virus transmitted.!!!"





--
View this message in context: 
http://forum.world.st/What-is-the-limit-of-prespur-VM-memory-under-Windows-tp4881619p4881625.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] What is the limit of prespur VM memory under Windows?

2016-02-29 Thread Clément Bera
No.

The limit is supposed to be around 500 Mb on windows or 1 Gb for some
specifically compiled VMs. 1 Gb VM may not start on windows, you may need
to restart the computer before.

To bypass the limit the best way is to use a spur VM honestly. Spur32VMs
are limited to around 2.7Gb on Windows.


2016-02-29 18:53 GMT+01:00 Blondeau Vincent 
:

> Hi,
>
>
>
> I am confronted with a memory issue under Windows.
>
> I have an image of 745Mo with a Moose model, and I cannot instantiate a 
> string of 30Mo: I get a OutOfMemoryException.
>
> The theoretical limit is 2Go, isn’t it?
>
>
>
> I have a prespur vm under a Windows 64 bits:
>
> Smalltalk vm version:
>
> 'NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.21 uuid:
> 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Dec  3 2015
>
> NBCogit NativeBoost-CogPlugin-EstebanLorenzano.21 uuid:
> 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Dec  3 2015
>
> https://github.com/pharo-project/pharo-vm.git Commit:
> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200
> By: Esteban Lorenzano  Jenkins build #15019
>
> I set in Pharo.ini: AddressSpaceLimit=20
>
>
>
> What can I do to bypass the issue?
>
>
>
>
>
> Thanks in advance,
>
> Vincent
>
>
>
>
> !!!*
> "Ce message et les pièces jointes sont confidentiels et réservés à l'usage
> exclusif de ses destinataires. Il peut également être protégé par le secret
> professionnel. Si vous recevez ce message par erreur, merci d'en avertir
> immédiatement l'expéditeur et de le détruire. L'intégrité du message ne
> pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra
> être recherchée quant au contenu de ce message. Bien que les meilleurs
> efforts soient faits pour maintenir cette transmission exempte de tout
> virus, l'expéditeur ne donne aucune garantie à cet égard et sa
> responsabilité ne saurait être recherchée pour tout dommage résultant d'un
> virus transmis.
>
> This e-mail and the documents attached are confidential and intended
> solely for the addressee; it may also be privileged. If you receive this
> e-mail in error, please notify the sender immediately and destroy it. As
> its integrity cannot be secured on the Internet, the Worldline liability
> cannot be triggered for the message content. Although the sender endeavours
> to maintain a computer virus-free network, the sender does not warrant that
> this transmission is virus-free and will not be liable for any damages
> resulting from any virus transmitted.!!!"
>


[Pharo-dev] What is the limit of prespur VM memory under Windows?

2016-02-29 Thread Blondeau Vincent
Hi,


I am confronted with a memory issue under Windows.

I have an image of 745Mo with a Moose model, and I cannot instantiate a string 
of 30Mo: I get a OutOfMemoryException.

The theoretical limit is 2Go, isn't it?



I have a prespur vm under a Windows 64 bits:
Smalltalk vm version:
'NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 
4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Dec  3 2015
NBCogit NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 
4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Dec  3 2015
https://github.com/pharo-project/pharo-vm.git Commit: 
28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: 
Esteban Lorenzano  Jenkins build #15019

I set in Pharo.ini: AddressSpaceLimit=20



What can I do to bypass the issue?





Thanks in advance,

Vincent


!!!*
"Ce message et les pi?ces jointes sont confidentiels et r?serv?s ? l'usage 
exclusif de ses destinataires. Il peut ?galement ?tre prot?g? par le secret 
professionnel. Si vous recevez ce message par erreur, merci d'en avertir 
imm?diatement l'exp?diteur et de le d?truire. L'int?grit? du message ne pouvant 
?tre assur?e sur Internet, la responsabilit? de Worldline ne pourra ?tre 
recherch?e quant au contenu de ce message. Bien que les meilleurs efforts 
soient faits pour maintenir cette transmission exempte de tout virus, 
l'exp?diteur ne donne aucune garantie ? cet ?gard et sa responsabilit? ne 
saurait ?tre recherch?e pour tout dommage r?sultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for 
the addressee; it may also be privileged. If you receive this e-mail in error, 
please notify the sender immediately and destroy it. As its integrity cannot be 
secured on the Internet, the Worldline liability cannot be triggered for the 
message content. Although the sender endeavours to maintain a computer 
virus-free network, the sender does not warrant that this transmission is 
virus-free and will not be liable for any damages resulting from any virus 
transmitted.!!!"


Re: [Pharo-dev] what is the relationship between Float and its subclasses?

2016-02-02 Thread Eliot Miranda
Hi Stef,

> On Feb 1, 2016, at 11:03 PM, stepharo  wrote:
> 
> What about something like that
> 
> 
> My instances hold 64-bit Floats in heap objects.  This is the only 
> representation on 32-bit systems.  But on 64-bit systems SmallFloat64 holds a 
> subset of the full 64-bit double-precision range in immediate objects.
> 
> BoxedFloat64 is the classical VM Float, two 4-bytes word allocated per Float, 
> and is both for 32 bits VM and Float values not fitting in immediate format. 
> This is because 3 bits have been removed from the exponent due to the object 
> internal representation needed for the Spur new garbage collector.
> 
> So on a 32 bits VM Floats are represented either by BoxedFloat64 or Float.

No.  Float is now an abstract class.  There are only instances of BoxedFloat64 
or SmallFloat64.  And in 32-bits there are only BoxedFloat64 instances.  So on 
a 32 bits VM Floats are represented only by BoxedFloat64.  On a 64 bits VM 
Floats are represented either by BoxedFloat64 or SmallFloat64.




> 
> 



Re: [Pharo-dev] what is the relationship between Float and its subclasses?

2016-02-02 Thread Eliot Miranda
Stef,

in 32-bit Spur there are only BoxedFloat64 instances.  In 64-bit Spur there 
are (already) both BoxedFloat64 instances and SmallFloat64 immediates.  In 
64-but Spur, if a float's exponent is in the middle 8 bit range of the 11-bit 
double precision exponent range it is represented as a SmallFloat64 immediate 
and occupies no space except the slot referencing it, just as with SmallInteger.

There is good documentation of the scheme in VMMaker.oscog.  When time allows 
I'll write more informative class comments, but look at the SmallInteger 
comment, that's not detailed either.

_,,,^..^,,,_ (phone)

> On Feb 1, 2016, at 11:00 PM, stepharo  wrote:
> 
> Tx nicolas
> 
> I read
> 
> SmallFloat64: My instances represent 64-bit Floats whose exponent fits in 8 
> bits as immediate objects.  This representation is only available on 64-bit 
> systems, not 32-bit systems.
> 
> BoxedFloat64: My instances hold 64-bit Floats in heap objects.  This is the 
> only representation on 32-bit systems.  But on 64-bit systems SmallFloat64 
> holds a subset of the full 64-bit double-precision range in immediate objects.
> 
> I think that we can improve such comments but I do not have the knowledge. 
> 
> So do I get that we will have instances of Float and BoxedFloat64?
> 
> 
> Le 1/2/16 21:27, Nicolas Cellier a écrit :
>> SmallFloat is like SmallInteger: immediate value encoded in oop, and it is 
>> only for 64 bits Spur VM.
>> Boxed is the classical VM Float, two 4-bytes word allocated per Float, and 
>> is both for 32 bits VM and Float values not fitting in immediate format (3 
>> bits have been stolen from exponent...).
>> 
>> 2016-02-01 20:49 GMT+01:00 stepharo :
>>> Hi
>>> 
>>> I'm updating Pharo by example and the relationship between Float and its 
>>> subclasses is unclear to me.
>>> Do we only get instances of the subclasses now?
>>> 
>>> I got that Boxed is only for 64 bits.
>>> But SmallFloat?
>>> The class comment is not really self describing.
>>> 
>>> Stef
> 


Re: [Pharo-dev] what is the relationship between Float and its subclasses?

2016-02-01 Thread stepharo

What about something like that


My instances hold 64-bit Floats in heap objects.  This is the only 
representation on 32-bit systems.  But on 64-bit systems SmallFloat64 
holds a subset of the full 64-bit double-precision range in immediate 
objects.


BoxedFloat64 is the classical VM Float, two 4-bytes word allocated per 
Float, and is both for 32 bits VM and Float values not fitting in 
immediate format. This is because 3 bits have been removed from the 
exponent due to the object internal representation needed for the Spur 
new garbage collector.


So on a 32 bits VM Floats are represented either by BoxedFloat64 or Float.




Re: [Pharo-dev] what is the relationship between Float and its subclasses?

2016-02-01 Thread stepharo

Tx nicolas

I read

SmallFloat64: My instances represent 64-bit Floats whose exponent fits 
in 8 bits as immediate objects.  This representation is only available 
on 64-bit systems, not 32-bit systems.


BoxedFloat64: My instances hold 64-bit Floats in heap objects.  This is 
the only representation on 32-bit systems.  But on 64-bit systems 
SmallFloat64 holds a subset of the full 64-bit double-precision range in 
immediate objects.


I think that we can improve such comments but I do not have the knowledge.

So do I get that we will have instances of Float and BoxedFloat64?


Le 1/2/16 21:27, Nicolas Cellier a écrit :
SmallFloat is like SmallInteger: immediate value encoded in oop, and 
it is only for 64 bits Spur VM.
Boxed is the classical VM Float, two 4-bytes word allocated per Float, 
and is both for 32 bits VM and Float values not fitting in immediate 
format (3 bits have been stolen from exponent...).


2016-02-01 20:49 GMT+01:00 stepharo >:


Hi

I'm updating Pharo by example and the relationship between Float
and its subclasses is unclear to me.
Do we only get instances of the subclasses now?

I got that Boxed is only for 64 bits.
But SmallFloat?
The class comment is not really self describing.

Stef






Re: [Pharo-dev] what is the relationship between Float and its subclasses?

2016-02-01 Thread Nicolas Cellier
SmallFloat is like SmallInteger: immediate value encoded in oop, and it is
only for 64 bits Spur VM.
Boxed is the classical VM Float, two 4-bytes word allocated per Float, and
is both for 32 bits VM and Float values not fitting in immediate format (3
bits have been stolen from exponent...).

2016-02-01 20:49 GMT+01:00 stepharo :

> Hi
>
> I'm updating Pharo by example and the relationship between Float and its
> subclasses is unclear to me.
> Do we only get instances of the subclasses now?
>
> I got that Boxed is only for 64 bits.
> But SmallFloat?
> The class comment is not really self describing.
>
> Stef
>
>


[Pharo-dev] what is the relationship between Float and its subclasses?

2016-02-01 Thread stepharo

Hi

I'm updating Pharo by example and the relationship between Float and its 
subclasses is unclear to me.

Do we only get instances of the subclasses now?

I got that Boxed is only for 64 bits.
But SmallFloat?
The class comment is not really self describing.

Stef



Re: [Pharo-dev] What is the current status of flow (flow-stack)?

2016-01-08 Thread Craig Latta

Hoi Erik--

> SqueakJS seems a 'heavy' solution since I probably would like to keep
> the front-end relatively thin (and not use the Morphic UI).

 You can also use the MVC UI, or use no Smalltalk graphics at all
and just manipulate the DOM etc. via the JavaScript bridge.


-C

--
Craig Latta
netjam.org
+31   6 2757 7177 (SMS ok)
+ 1 415  287 3547 (no SMS)




Re: [Pharo-dev] What is the current status of flow (flow-stack)?

2016-01-08 Thread Erik Stel
Hi Sebastian,

Thanks for the update.

I'm starting with a new project and need to get the requirements clear
before deciding which tools will help me (and make me happy) most. I'll also
continu using Meteor, but I prefer Smalltalk over Javascript/Coffeescript
;-). Currently I don't see Amber as the solution for replacing JS/CS within
a Meteor solution.

SqueakJS seems a 'heavy' solution since I probably would like to keep the
front-end relatively thin (and not use the Morphic UI). Amber seems a better
choice for that. But I'll investigate it too.  

Cheers!
Erik




--
View this message in context: 
http://forum.world.st/What-is-the-current-status-of-flow-flow-stack-tp4869620p4869941.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] What is the current status of flow (flow-stack)?

2016-01-06 Thread sebast...@flowingconcept.com
Hi Erik,

2015 was a Smalltalk-sabbatical year for me Erik, that's one of the reasons
why as you see in the github commits, development has not moved further. But
to be honest there is more, the direction of Amber doesn't look too exciting
to me because in the end, the frontend productivity output is not convincing
me anymore.

In the frontend/Smalltalk world this is way more interesting than Amber:
https://bertfreudenberg.github.io/SqueakJS/

But I after the initial modest interest on flow-stack, the reality check of
the lack of strong commercial projects on it made it stall. Maintaining a
framework is not a small thing. Not being backed is a no-no.

But it's all MIT so anyone can take over and give it life on its own if
found valuable.

BTW I'm currently quite happy with Meteor myself.

Feel free to ask anything




--
View this message in context: 
http://forum.world.st/What-is-the-current-status-of-flow-flow-stack-tp4869620p4869622.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



[Pharo-dev] What is the current status of flow (flow-stack)?

2016-01-06 Thread Erik Stel
Hi,

What is the status of flow?

Having worked on a Meteor project I got the idea this would be nice to have
such a platform/stack in Pharo/Amber combo (back-end/front-end). Searched
the web and found  https://github.com/flow-stack/flow
  . No updates for several months.
Sebastian's host (and therefore email) are no longer online.

What is the status of flow? Anyone used it for (demo) projects? Anyone
interested in working on this in the future?

Cheers,
Erik




--
View this message in context: 
http://forum.world.st/What-is-the-current-status-of-flow-flow-stack-tp4869620.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] what is exactly flushCache?

2015-11-24 Thread stepharo



Le 24/11/15 21:14, Marcus Denker a écrit :

On 24 Nov 2015, at 17:00, stepharo  wrote:

Thanks for this great explanation and yes I know about this cache but I do not 
why
I was wondering that we did not need to update it from the image.
Now I would like to add such comment inside the system because I like self 
explanation.

"See Object documentation whatIsAPrimitive." gets frustrates me.


This sentence used to be just in all primitives. it points to a long 
explanation to what is a primitive (in general)
in method #whatIsAPrimitive.

It does not want to explain this one primitive. There should be a sentence in 
addition.


Ok but this See Object documentation whatIsAPrimitive sucks too.
It should say

Browse implementors of whatIsAPrimitive
Why the reader should always guess. We are not superhero and I think 
that Pharo and Pharoers should try to

remember when they discovered the system.

Then I would add these two poor methods into the class comment because I 
do not see why on

Object we get only these two methods. It looks aged to me.

Stef


Marcus








Re: [Pharo-dev] what is exactly flushCache?

2015-11-24 Thread Marcus Denker

> On 24 Nov 2015, at 17:00, stepharo  wrote:
> 
> Thanks for this great explanation and yes I know about this cache but I do 
> not why
> I was wondering that we did not need to update it from the image. 
> Now I would like to add such comment inside the system because I like self 
> explanation. 
> 
> "See Object documentation whatIsAPrimitive." gets frustrates me. 
> 
This sentence used to be just in all primitives. it points to a long 
explanation to what is a primitive (in general)
in method #whatIsAPrimitive.

It does not want to explain this one primitive. There should be a sentence in 
addition.

Marcus




Re: [Pharo-dev] what is exactly flushCache?

2015-11-24 Thread stepharo
Thanks for this great explanation and yes I know about this cache but I 
do not why

I was wondering that we did not need to update it from the image.
Now I would like to add such comment inside the system because I like 
self explanation.


"See Object documentation whatIsAPrimitive." gets frustrates me.

So I imagine that is Behavior flushCache flushing for the class in the 
class,selector pair.
What would be a good place to add such comment? MethodDictionary. It 
sounds reasonable to me but tell me.



TBehavior >> flushCache
"Tell the interpreter to remove the contents of its method lookup 
cache, if it has

one.  Essential.  See Object documentation whatIsAPrimitive."


self primitiveFailed


Symbol >> flushCache
"Tell the interpreter to remove all entries with this symbol as a 
selector from its method lookup cache, if it has one.  This primitive 
must be called whenever a method is redefined or removed.
NOTE:  Only one of the two selective flush methods (Symbol or 
CompiledMethod) needs to be used."




CompiledMethod >> flushCache
"Tell the interpreter to remove all references to this method from 
its method lookup cache, if it has one. This primitive must be called 
whenever a method is redefined or removed.
NOTE:  Only one of two selective flush methods (Symbol or 
CompiledMethod) needs to be used."





Le 24/11/15 19:10, Eliot Miranda a écrit :

Hi Stephane,

the VM caches method lookups in a lookup cache from class,selector 
pairs to method,primitive pairs, where primitive may be null.  This is 
called the first-level method lookup cache.  The JIT VM caches message 
lookups in machine code, so that a particular piece of machine code 
exists in a state that invokes a method for a specific class very fast 
by embedding the class reference in a register load and the target 
method in a call instruction, and having the target method verify this 
"cache probe" (this is an "in-line cache). The JIT also caches the 
translation of a byte coded method to machine code, by hiding a 
reference to a machine code method in a byte coded method.


These caches can be invalidated in several circumstances:

1a. if one adds or removes a method from a class's method dictionary 
it may change the correct results of a lookup not merely of the class 
whose dictionary was updated but also subclasses of the class.
1b. if one replaces a method in a method dictionary this changes the 
target method for a lookup of the selector for the class and subclasses


2. if one wants to rewrite the byte code or literals of a method, for 
example because a Slot definition has changed, then if the method has 
been compiled to machine code, the machine code must be discarded 
before the new code may be executed


1a & 1b are done via Symbol>>flushCache.  In response the normal VM 
flushes its first-level method lookup cache, and the JIT also scans 
all of machine code looking for inline caches with that selector, and 
voiding them, reverting each send site for that selector to the 
"unlinked" state.


There used to be confusion in Squeak, which Pharo inherited, that 
using CompiledMethod>>flushCache was somehow the right way to void 
caches when updating method dictionaries, flushing the old method in 
the dictionary, if any, and the new method.  It isn't, precisely 
because adding or removing methods affects the visibility of inherited 
methods with the same selector.  So MethodDictionary code should use 
Symbol>>flushCache, and only once, on each update of a method 
dictionary.  As a result, the VM will ensure that the necessary send 
caches are flushed for that selector.


2. is done via CompiledMethod>>flushCache.  In response the VM 
searches the first-level method lookup cache and removes all entries 
whose target is the method.  In addition the JIT discards the machine 
code for the method, and searches for all send sites with that 
method's machine code as the target and voids them, reverting them to 
the unlinked state.


The VM must be told to flush the cached state for a compiled method 
via CompiledMethod>>flushCache and will /try/ and void the state for 
that method.  But it can't always deal with existing activations of 
that method, because if there are activations running the machine 
code, that machine code can't merely be thrown away, and can't be 
replaced because its length may change, depending on literals or byte 
codes.  So this kind of byte coded method manipulation needs to be 
done with case and some understanding of the total system state.


HTH


On Tue, Nov 24, 2015 at 9:37 AM, stepharo > wrote:


Clement

do you know what is flushCache and why we need to invoke it?

Stef




--
_,,,^..^,,,_
best, Eliot




Re: [Pharo-dev] what is exactly flushCache?

2015-11-24 Thread Eliot Miranda
Hi Stephane,

the VM caches method lookups in a lookup cache from class,selector
pairs to method,primitive pairs, where primitive may be null.  This is
called the first-level method lookup cache.  The JIT VM caches message
lookups in machine code, so that a particular piece of machine code exists
in a state that invokes a method for a specific class very fast by
embedding the class reference in a register load and the target method in a
call instruction, and having the target method verify this "cache probe"
(this is an "in-line cache).  The JIT also caches the translation of a byte
coded method to machine code, by hiding a reference to a machine code
method in a byte coded method.

These caches can be invalidated in several circumstances:

1a. if one adds or removes a method from a class's method dictionary it may
change the correct results of a lookup not merely of the class whose
dictionary was updated but also subclasses of the class.
1b. if one replaces a method in a method dictionary this changes the target
method for a lookup of the selector for the class and subclasses

2. if one wants to rewrite the byte code or literals of a method, for
example because a Slot definition has changed, then if the method has been
compiled to machine code, the machine code must be discarded before the new
code may be executed

1a & 1b are done via Symbol>>flushCache.  In response the normal VM flushes
its first-level method lookup cache, and the JIT also scans all of machine
code looking for inline caches with that selector, and voiding them,
reverting each send site for that selector to the "unlinked" state.

There used to be confusion in Squeak, which Pharo inherited, that using
CompiledMethod>>flushCache was somehow the right way to void caches when
updating method dictionaries, flushing the old method in the dictionary, if
any, and the new method.  It isn't, precisely because adding or removing
methods affects the visibility of inherited methods with the same
selector.  So MethodDictionary code should use Symbol>>flushCache, and only
once, on each update of a method dictionary.  As a result, the VM will
ensure that the necessary send caches are flushed for that selector.

2. is done via CompiledMethod>>flushCache.  In response the VM searches the
first-level method lookup cache and removes all entries whose target is the
method.  In addition the JIT discards the machine code for the method, and
searches for all send sites with that method's machine code as the target
and voids them, reverting them to the unlinked state.

The VM must be told to flush the cached state for a compiled method via
CompiledMethod>>flushCache and will /try/ and void the state for that
method.  But it can't always deal with existing activations of that method,
because if there are activations running the machine code, that machine
code can't merely be thrown away, and can't be replaced because its length
may change, depending on literals or byte codes.  So this kind of byte
coded method manipulation needs to be done with case and some understanding
of the total system state.

HTH


On Tue, Nov 24, 2015 at 9:37 AM, stepharo  wrote:

> Clement
>
> do you know what is flushCache and why we need to invoke it?
>
> Stef
>
>


-- 
_,,,^..^,,,_
best, Eliot


Re: [Pharo-dev] what is exactly flushCache?

2015-11-24 Thread Marcus Denker

> On 24 Nov 2015, at 14:37, stepharo  wrote:
> 
> flushCache

The comment says it:

"Tell the interpreter to remove all references to this method from its 
method lookup cache, if it has one. This primitive must be called whenever a 
method is redefined or removed.”

Marcus

[Pharo-dev] what is exactly flushCache?

2015-11-24 Thread stepharo

Clement

do you know what is flushCache and why we need to invoke it?

Stef



Re: [Pharo-dev] What is switch universe in Bloc?

2015-11-06 Thread Dimitris Chloupis
"Then they may complain about lack of documentation and no examples and in
the end they will end up with not the best impression of Bloc and will
likely not accept it when it is done"

Are we talking about the same Bloc here , because the last time I checked
it contained like "1000" examples. I dont think I ever seen 1/10th of
examples that Bloc provides in any other Pharo Library/ tool.

Bloc is an example by itself to be followed not complain about. Sure its
still WIP , most of us are aware of it and almost ( ? ) none of us use it
in production anyway.

And since this is suppose to be the replacement of Morphic maybe having
people using it will increase the amount of people contributing into it ?
Just saying.

For my custom GUI project I chose Morphic, which is what I recommend as the
best GUI option inside Pharo. But I close an eye to Bloc and hope for the
best ;)


Re: [Pharo-dev] What is switch universe in Bloc?

2015-11-06 Thread Marcus Denker

> On 06 Nov 2015, at 07:31, Aliaksei Syrel  wrote:
> 
> :) Bloc is in rapid development. Api/logic changes dramatically, not all 
> concepts still clear and Pharo dev list creates to many noise about Bloc. 
> People will start thinking that it is done and will start using it. Then they 
> will ask noob questions or point to something that does not work/not 
> implemented and we know that it is not implemented. Then they may complain 
> about lack of documentation and no examples and in the end they will end up 
> with not the best impression of Bloc and will likely not accept it when it is 
> done. Also it is always complicated to change/remove something that is in use.
> 
> Pharo dev list is for "open-beta testing". Bloc list for "close testing".
> Having in a loop 10 people easier than 100-1000.
> 
> 

But now that you told everyone to subscribe to the list (which means I will set 
up a real mailing list),
there will be 100 people on it within a day.

Marcus



Re: [Pharo-dev] What is switch universe in Bloc?

2015-11-06 Thread Aliaksei Syrel
:) Bloc is in rapid development. Api/logic changes dramatically, not all
concepts still clear and Pharo dev list creates to many noise about Bloc.
People will start thinking that it is done and will start using it. Then
they will ask noob questions or point to something that does not work/not
implemented and we know that it is not implemented. Then they may complain
about lack of documentation and no examples and in the end they will end up
with not the best impression of Bloc and will likely not accept it when it
is done. Also it is always complicated to change/remove something that is
in use.

Pharo dev list is for "open-beta testing". Bloc list for "close testing".
Having in a loop 10 people easier than 100-1000.

Complains are acceptable ;)
On Nov 6, 2015 11:15 AM, "Sven Van Caekenberghe"  wrote:

> Why does it need a separate list ?
>
> If Bloc is/will become a fundamental part of Pharo it belongs to the
> general dev list.
>
> > On 06 Nov 2015, at 11:07, Aliaksei Syrel  wrote:
> >
> > Hi Marcus
> >
> > How much effort would it take to make Bloc list public?
> >
> > Cheers
> >
> > On Nov 5, 2015 3:22 PM, "Marcus Denker"  wrote:
> >
> >> On 05 Nov 2015, at 09:54, Aliaksei Syrel  wrote:
> >>
> >> Hi
> >>
> >> Did you choose "Switch universe" or "Switch universe [OSWindow]"?
> >>
> >> I don't know about Linux but latest version of Brick with latest vm is
> stable and confirmed to work on windows and Mac.
> >>
> >> P.S. For Bloc related stuff we have discussions-b...@pharo.org
> >>
> > But this is a mailingst that is manually managed, if this is supposed to
> be public we need to move to to Mailman.
> >
> >   Marcus
>
>
>


Re: [Pharo-dev] What is switch universe in Bloc?

2015-11-06 Thread Torsten Bergmann
"Sven Van Caekenberghe"
>Why does it need a separate list ?
>
>If Bloc is/will become a fundamental part of Pharo it belongs to the general 
>dev list.

+1000



Re: [Pharo-dev] What is switch universe in Bloc?

2015-11-06 Thread Sven Van Caekenberghe
Why does it need a separate list ?

If Bloc is/will become a fundamental part of Pharo it belongs to the general 
dev list.

> On 06 Nov 2015, at 11:07, Aliaksei Syrel  wrote:
> 
> Hi Marcus
> 
> How much effort would it take to make Bloc list public?
> 
> Cheers
> 
> On Nov 5, 2015 3:22 PM, "Marcus Denker"  wrote:
> 
>> On 05 Nov 2015, at 09:54, Aliaksei Syrel  wrote:
>> 
>> Hi
>> 
>> Did you choose "Switch universe" or "Switch universe [OSWindow]"?
>> 
>> I don't know about Linux but latest version of Brick with latest vm is 
>> stable and confirmed to work on windows and Mac.
>> 
>> P.S. For Bloc related stuff we have discussions-b...@pharo.org
>> 
> But this is a mailingst that is manually managed, if this is supposed to be 
> public we need to move to to Mailman.
> 
>   Marcus




Re: [Pharo-dev] What is switch universe in Bloc?

2015-11-06 Thread Aliaksei Syrel
Hi Marcus

How much effort would it take to make Bloc list public?

Cheers
On Nov 5, 2015 3:22 PM, "Marcus Denker"  wrote:

>
> On 05 Nov 2015, at 09:54, Aliaksei Syrel  wrote:
>
> Hi
>
> Did you choose "Switch universe" or "Switch universe [OSWindow]"?
>
> I don't know about Linux but latest version of Brick with latest vm is
> stable and confirmed to work on windows and Mac.
>
> P.S. For Bloc related stuff we have discussions-b...@pharo.org
>
> But this is a mailingst that is manually managed, if this is supposed to
> be public we need to move to to Mailman.
>
> Marcus
>


Re: [Pharo-dev] What is switch universe in Bloc?

2015-11-05 Thread Stephan Eggermont

On 05-11-15 16:25, Aliaksei Syrel wrote:

$ pharo --version

3.9-7 #1 Thu Nov  5 00:34:36 CET 2015 gcc 4.6.3 [Production ITHB VM]


It looks like I have an old version

/usr/bin/pharo-vm-x --version
3.9-7 #1 Sat Feb 14 16:10:09 UTC 2015 gcc 4.9.1 [Production ITHB VM]
NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 
4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Feb 14 2015
NBCogit NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 
4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Feb 14 2015
https://github.com/pharo-project/pharo-vm.git Commit: 
447f247306f31b843ecce66cabf82bc6f6c42103 Date: 2014-11-29 09:42:26 +0100 
By: Esteban Lorenzano  Jenkins build #14881
Linux lgw01-08 3.13.0-45-generic #74-Ubuntu SMP Tue Jan 13 19:36:28 UTC 
2015 i686 i686 i686 GNU/Linux

plugin path: /usr/lib/pharo-vm/ [default: /usr/lib/pharo-vm/]


Interesting to see such an old gcc version used with current production
(2012-3-1 released)

Stephan




Re: [Pharo-dev] What is switch universe in Bloc?

2015-11-05 Thread Marcus Denker

> On 05 Nov 2015, at 09:54, Aliaksei Syrel  wrote:
> 
> Hi
> 
> Did you choose "Switch universe" or "Switch universe [OSWindow]"?
> 
> I don't know about Linux but latest version of Brick with latest vm is stable 
> and confirmed to work on windows and Mac.
> 
> P.S. For Bloc related stuff we have discussions-b...@pharo.org 
> But this is a mailingst that is manually 
> managed, if this is supposed to be public we need to move to to Mailman.

Marcus

Re: [Pharo-dev] What is switch universe in Bloc?

2015-11-05 Thread Stephan Eggermont

On 05-11-15 13:54, Aliaksei Syrel wrote:

Did you choose "Switch universe" or "Switch universe [OSWindow]"?


Switch universe. Anything with OSWindow doesn't work at all,
just makes the window unresponsive

Stephan





Re: [Pharo-dev] What is switch universe in Bloc?

2015-11-05 Thread Damien Pollet
On 5 November 2015 at 13:54, Aliaksei Syrel  wrote:

> P.S. For Bloc related stuff we have discussions-b...@pharo.org
>
Where is this list hosted ? how can we register ?



-- 
Damien Pollet
type less, do more [ | ] http://people.untyped.org/damien.pollet


Re: [Pharo-dev] What is switch universe in Bloc?

2015-11-05 Thread Aliaksei Syrel
Hi

Did you choose "Switch universe" or "Switch universe [OSWindow]"?

I don't know about Linux but latest version of Brick with latest vm is
stable and confirmed to work on windows and Mac.

P.S. For Bloc related stuff we have discussions-b...@pharo.org
On Nov 5, 2015 1:30 PM, "Stephan Eggermont"  wrote:

> I took a look at the latest Brick, and did 'switch universe' before
> opening the Brick examples. Resizing the Pharo window resulted in a black
> screen. If I first create a Bloc world, resizing works.
> (Ubuntu 15.04)
>
> Stephan
>
>
>
>


[Pharo-dev] What is switch universe in Bloc?

2015-11-05 Thread Stephan Eggermont
I took a look at the latest Brick, and did 'switch universe' before 
opening the Brick examples. Resizing the Pharo window resulted in a 
black screen. If I first create a Bloc world, resizing works.

(Ubuntu 15.04)

Stephan





Re: [Pharo-dev] what is this method?

2015-10-30 Thread Nicolai Hess
2015-10-30 12:49 GMT+01:00 Esteban Lorenzano :

> I saw this today:
>
> Class>>#private_subclass: t instanceVariableNames: f classVariableNames: d
> poolDictionaries: s category: cat
>
> 1) method name is not according to conventions (should be
> #privateSubclass:instanceVariableNames:classVariableNames:
> poolDictionaries:category:)
> 2) variable names are not good: t, f, d, s and cat do not means anything.
> 3) if is private, needs to be in “private” protocol.
> 4) more than “private” I think it’s function is “basic”… but that’s not a
> real problem :)
>
> please, a fix?
>

This is my fix for issue
16836

Can't remove an instance variable and a trait in one step

to fix this issue, I had to add another method private_subclass ... between
the two
subclass:...
variants, one with a uses-traits and one without the uses-traits name.
If you find a better way, please let me know.
About the variable naming, well I just copied the existing method arg names.
It is not in the "private" category, because it is not private to the trait
users that have to implement this.
The method is just called "private_" because I could not think of a
better name.



>
> Esteban
>


[Pharo-dev] what is this method?

2015-10-30 Thread Esteban Lorenzano
I saw this today:

Class>>#private_subclass: t instanceVariableNames: f classVariableNames: d 
poolDictionaries: s category: cat 

1) method name is not according to conventions (should be 
#privateSubclass:instanceVariableNames:classVariableNames: 
poolDictionaries:category:)
2) variable names are not good: t, f, d, s and cat do not means anything. 
3) if is private, needs to be in “private” protocol. 
4) more than “private” I think it’s function is “basic”… but that’s not a real 
problem :)

please, a fix?

Esteban


Re: [Pharo-dev] what is NativeBoost?

2015-10-14 Thread Max Leske

> On 14 Oct 2015, at 17:20, Robert Withers  wrote:
> 
> Max, if I were to call a blocking 'select' call for NIO, do you think it 
> would lock the image? Thx

Yes. Only callbacks can work asynchronously.

> 
> ---
> robert
> 
>> On Oct 14, 2015, at 11:13 AM, Max Leske  wrote:
>> 
>> 
>>> On 14 Oct 2015, at 17:01, Robert Withers  wrote:
>>> 
>>> I ran across it browsing and it looks pretty interesting. It's purpose 
>>> remains a mystery to to me.
>> 
>> NativeBoost provides an FFI. It’s used by Athens for example to render the 
>> fonts in Pharo using Cairo (http://cairographics.org).
>> 
>> Cheers,
>> Max
>> 
>>> 
>>> -- 
>>> thanks so much ^^
>>> Robert
>> 
>> 
> 




Re: [Pharo-dev] what is NativeBoost?

2015-10-14 Thread Robert Withers
Well, yes, I have not much use for this in my projects. The example of 
FFI, however, it great to find.


thanks so much ^^
Robert

On 10/14/2015 12:48 PM, Dimitris Chloupis wrote:

So to summarise the great thing about NB is that it does assembly code
with pharo syntax, the bad thing about NB is that it does assembly code
with pharo syntax.

Of course there are not that many people around to be sane enough to
write assembly , so of course it will be removed at some point.

On Wed, Oct 14, 2015 at 7:36 PM Robert Withers
mailto:robert.w.with...@gmail.com>> wrote:

Awesome! SO you can do emulation. That's fantastic.

thanks so much ^^
Robert

On 10/14/2015 12:30 PM, Esteban Lorenzano wrote:
 > it allows you to define and execute assembly code in the image.
 >
 > Esteban
 >
 >> On 14 Oct 2015, at 18:24, Robert Withers
mailto:robert.w.with...@gmail.com>> wrote:
 >>
 >> I'd think there's just as much concern with all the globals.
What does ASMJIT do? a Jit?
 >>
 >> thanks so much ^^
 >> Robert
 >>
 >> On 10/14/2015 11:18 AM, Esteban Lorenzano wrote:
 >>> but beware… ASMJIT part of NB (and well… NB it self, that
means) will fade away…
 >>> it will remain compatible (95% of the cases), but we will
unload it… there is a lot of maintainability and security concerns
around it.
 >>>
 >>> Esteban
 >>>
 >>>
  On 14 Oct 2015, at 17:13, Max Leske mailto:maxle...@gmail.com>> wrote:
 
 
 > On 14 Oct 2015, at 17:01, Robert Withers
mailto:robert.w.with...@gmail.com>> wrote:
 >
 > I ran across it browsing and it looks pretty interesting.
It's purpose remains a mystery to to me.
 
  NativeBoost provides an FFI. It’s used by Athens for example
to render the fonts in Pharo using Cairo (http://cairographics.org).
 
  Cheers,
  Max
 
 >
 > --
 > thanks so much ^^
 > Robert
 >
 
 
 >>>
 >>>
 >>
 >
 >





Re: [Pharo-dev] what is NativeBoost?

2015-10-14 Thread Dimitris Chloupis
So to summarise the great thing about NB is that it does assembly code with
pharo syntax, the bad thing about NB is that it does assembly code with
pharo syntax.

Of course there are not that many people around to be sane enough to write
assembly , so of course it will be removed at some point.

On Wed, Oct 14, 2015 at 7:36 PM Robert Withers 
wrote:

> Awesome! SO you can do emulation. That's fantastic.
>
> thanks so much ^^
> Robert
>
> On 10/14/2015 12:30 PM, Esteban Lorenzano wrote:
> > it allows you to define and execute assembly code in the image.
> >
> > Esteban
> >
> >> On 14 Oct 2015, at 18:24, Robert Withers 
> wrote:
> >>
> >> I'd think there's just as much concern with all the globals.  What does
> ASMJIT do? a Jit?
> >>
> >> thanks so much ^^
> >> Robert
> >>
> >> On 10/14/2015 11:18 AM, Esteban Lorenzano wrote:
> >>> but beware… ASMJIT part of NB (and well… NB it self, that means) will
> fade away…
> >>> it will remain compatible (95% of the cases), but we will unload it…
> there is a lot of maintainability and security concerns around it.
> >>>
> >>> Esteban
> >>>
> >>>
>  On 14 Oct 2015, at 17:13, Max Leske  wrote:
> 
> 
> > On 14 Oct 2015, at 17:01, Robert Withers 
> wrote:
> >
> > I ran across it browsing and it looks pretty interesting. It's
> purpose remains a mystery to to me.
> 
>  NativeBoost provides an FFI. It’s used by Athens for example to
> render the fonts in Pharo using Cairo (http://cairographics.org).
> 
>  Cheers,
>  Max
> 
> >
> > --
> > thanks so much ^^
> > Robert
> >
> 
> 
> >>>
> >>>
> >>
> >
> >
>
>


Re: [Pharo-dev] what is NativeBoost?

2015-10-14 Thread Esteban Lorenzano
it allows you to define and execute assembly code in the image.

Esteban

> On 14 Oct 2015, at 18:24, Robert Withers  wrote:
> 
> I'd think there's just as much concern with all the globals.  What does 
> ASMJIT do? a Jit?
> 
> thanks so much ^^
> Robert
> 
> On 10/14/2015 11:18 AM, Esteban Lorenzano wrote:
>> but beware… ASMJIT part of NB (and well… NB it self, that means) will fade 
>> away…
>> it will remain compatible (95% of the cases), but we will unload it… there 
>> is a lot of maintainability and security concerns around it.
>> 
>> Esteban
>> 
>> 
>>> On 14 Oct 2015, at 17:13, Max Leske  wrote:
>>> 
>>> 
 On 14 Oct 2015, at 17:01, Robert Withers  
 wrote:
 
 I ran across it browsing and it looks pretty interesting. It's purpose 
 remains a mystery to to me.
>>> 
>>> NativeBoost provides an FFI. It’s used by Athens for example to render the 
>>> fonts in Pharo using Cairo (http://cairographics.org).
>>> 
>>> Cheers,
>>> Max
>>> 
 
 --
 thanks so much ^^
 Robert
 
>>> 
>>> 
>> 
>> 
> 




Re: [Pharo-dev] what is NativeBoost?

2015-10-14 Thread Robert Withers

Awesome! SO you can do emulation. That's fantastic.

thanks so much ^^
Robert

On 10/14/2015 12:30 PM, Esteban Lorenzano wrote:

it allows you to define and execute assembly code in the image.

Esteban


On 14 Oct 2015, at 18:24, Robert Withers  wrote:

I'd think there's just as much concern with all the globals.  What does ASMJIT 
do? a Jit?

thanks so much ^^
Robert

On 10/14/2015 11:18 AM, Esteban Lorenzano wrote:

but beware… ASMJIT part of NB (and well… NB it self, that means) will fade away…
it will remain compatible (95% of the cases), but we will unload it… there is a 
lot of maintainability and security concerns around it.

Esteban



On 14 Oct 2015, at 17:13, Max Leske  wrote:



On 14 Oct 2015, at 17:01, Robert Withers  wrote:

I ran across it browsing and it looks pretty interesting. It's purpose remains 
a mystery to to me.


NativeBoost provides an FFI. It’s used by Athens for example to render the 
fonts in Pharo using Cairo (http://cairographics.org).

Cheers,
Max



--
thanks so much ^^
Robert
















Re: [Pharo-dev] what is NativeBoost?

2015-10-14 Thread Robert Withers
I'd think there's just as much concern with all the globals.  What does 
ASMJIT do? a Jit?


thanks so much ^^
Robert

On 10/14/2015 11:18 AM, Esteban Lorenzano wrote:

but beware… ASMJIT part of NB (and well… NB it self, that means) will fade away…
it will remain compatible (95% of the cases), but we will unload it… there is a 
lot of maintainability and security concerns around it.

Esteban



On 14 Oct 2015, at 17:13, Max Leske  wrote:



On 14 Oct 2015, at 17:01, Robert Withers  wrote:

I ran across it browsing and it looks pretty interesting. It's purpose remains 
a mystery to to me.


NativeBoost provides an FFI. It’s used by Athens for example to render the 
fonts in Pharo using Cairo (http://cairographics.org).

Cheers,
Max



--
thanks so much ^^
Robert











Re: [Pharo-dev] what is NativeBoost?

2015-10-14 Thread Robert Withers
Max, if I were to call a blocking 'select' call for NIO, do you think it would 
lock the image? Thx

---
robert

> On Oct 14, 2015, at 11:13 AM, Max Leske  wrote:
> 
> 
>> On 14 Oct 2015, at 17:01, Robert Withers  wrote:
>> 
>> I ran across it browsing and it looks pretty interesting. It's purpose 
>> remains a mystery to to me.
> 
> NativeBoost provides an FFI. It’s used by Athens for example to render the 
> fonts in Pharo using Cairo (http://cairographics.org).
> 
> Cheers,
> Max
> 
>> 
>> -- 
>> thanks so much ^^
>> Robert
> 
> 



Re: [Pharo-dev] what is NativeBoost?

2015-10-14 Thread Robert Withers
;-)   I knew you had fonts. Somewhere inside, i just had that feeling.

Cheers,
---
robert

> On Oct 14, 2015, at 11:13 AM, Max Leske  wrote:
> 
> 
>> On 14 Oct 2015, at 17:01, Robert Withers  wrote:
>> 
>> I ran across it browsing and it looks pretty interesting. It's purpose 
>> remains a mystery to to me.
> 
> NativeBoost provides an FFI. It’s used by Athens for example to render the 
> fonts in Pharo using Cairo (http://cairographics.org).
> 
> Cheers,
> Max
> 
>> 
>> -- 
>> thanks so much ^^
>> Robert
> 
> 



Re: [Pharo-dev] what is NativeBoost?

2015-10-14 Thread Esteban Lorenzano
but beware… ASMJIT part of NB (and well… NB it self, that means) will fade 
away… 
it will remain compatible (95% of the cases), but we will unload it… there is a 
lot of maintainability and security concerns around it.

Esteban


> On 14 Oct 2015, at 17:13, Max Leske  wrote:
> 
> 
>> On 14 Oct 2015, at 17:01, Robert Withers  wrote:
>> 
>> I ran across it browsing and it looks pretty interesting. It's purpose 
>> remains a mystery to to me.
> 
> NativeBoost provides an FFI. It’s used by Athens for example to render the 
> fonts in Pharo using Cairo (http://cairographics.org).
> 
> Cheers,
> Max
> 
>> 
>> -- 
>> thanks so much ^^
>> Robert
>> 
> 
> 




Re: [Pharo-dev] what is NativeBoost?

2015-10-14 Thread Max Leske

> On 14 Oct 2015, at 17:01, Robert Withers  wrote:
> 
> I ran across it browsing and it looks pretty interesting. It's purpose 
> remains a mystery to to me.

NativeBoost provides an FFI. It’s used by Athens for example to render the 
fonts in Pharo using Cairo (http://cairographics.org).

Cheers,
Max

> 
> -- 
> thanks so much ^^
> Robert
> 




[Pharo-dev] what is NativeBoost?

2015-10-14 Thread Robert Withers
I ran across it browsing and it looks pretty interesting. It's purpose 
remains a mystery to to me.


--
thanks so much ^^
Robert



[Pharo-dev] what is the protocol between a data source and a FTlist?

2015-08-30 Thread stepharo

Hi esteban

I'm wondering how the list is updated when the data source change.
What is the protocol.
I was looking at the examples but I could not see it.

Stef



Re: [Pharo-dev] what is the simple way to get an input?

2015-06-14 Thread stepharo

Thanks mathieu.
I do not know.
May be the repl that guillermo is building is the solution.

Stef

Le 13/6/15 19:29, Matthieu Lacaton a écrit :
Isn't it*userInput := UIManager default request: 'Enter whatever you 
want'* ?


2015-06-13 19:00 GMT+02:00 stepharo >:


Hi

I was reading a book that teaches programming in python and they
have input(x) that
requests inputs and stores it?

What is our equivalent?

Stef






Re: [Pharo-dev] what is the simple way to get an input?

2015-06-13 Thread Matthieu Lacaton
Isn't it* userInput := UIManager default request: 'Enter whatever you want'*
?

2015-06-13 19:00 GMT+02:00 stepharo :

> Hi
>
> I was reading a book that teaches programming in python and they have
> input(x) that
> requests inputs and stores it?
>
> What is our equivalent?
>
> Stef
>
>


[Pharo-dev] what is the simple way to get an input?

2015-06-13 Thread stepharo

Hi

I was reading a book that teaches programming in python and they have 
input(x) that

requests inputs and stores it?

What is our equivalent?

Stef



Re: [Pharo-dev] what is a GTSpotterRecorderCategorySelectedEvent?

2015-05-30 Thread stepharo

OK

I'm trying to see how to make category less spread as a term because 
after a while it is confusing.

so could you make the class comment
a bit more precise.

Stef

Le 30/5/15 21:56, Tudor Girba a écrit :

Hi Stef,

I am not sure I understand the question.

This class records the selection of a Spotter category, not a system 
category. This is the thing that appears in light gray in Spotter 
(like Classes, Packages, ... )


Cheers
Doru


On Sat, May 30, 2015 at 9:51 PM, stepharo > wrote:


A GTSpotterRecorderCategorySelectedEvent  models the action of
selecting a category in the search results. This event stores the
name of the category and the number of results that were matched
by the current query.

Instance Variables
categoryLabel:
elementCount:

categoryLabel
- x

elementCount
- x


Is a category related to class/method?

Stef




--
www.tudorgirba.com 

"Every thing has its own flow"




Re: [Pharo-dev] what is a GTSpotterRecorderCategorySelectedEvent?

2015-05-30 Thread Tudor Girba
Hi Stef,

I am not sure I understand the question.

This class records the selection of a Spotter category, not a system
category. This is the thing that appears in light gray in Spotter (like
Classes, Packages, ... )

Cheers
Doru


On Sat, May 30, 2015 at 9:51 PM, stepharo  wrote:

> A GTSpotterRecorderCategorySelectedEvent  models the action of selecting a
> category in the search results. This event stores the name of the category
> and the number of results that were matched by the current query.
>
> Instance Variables
> categoryLabel:
> elementCount:
>
> categoryLabel
> - x
>
> elementCount
> - x
>
>
> Is a category related to class/method?
>
> Stef
>
>


-- 
www.tudorgirba.com

"Every thing has its own flow"


[Pharo-dev] what is a GTSpotterRecorderCategorySelectedEvent?

2015-05-30 Thread stepharo
A GTSpotterRecorderCategorySelectedEvent  models the action of selecting 
a category in the search results. This event stores the name of the 
category and the number of results that were matched by the current query.


Instance Variables
categoryLabel:
elementCount:

categoryLabel
- x

elementCount
- x


Is a category related to class/method?

Stef



Re: [Pharo-dev] What is a Behavior, are Traits behavior too?

2015-02-16 Thread Nicolai Hess
Thank you for your feedback Camille,


2015-02-10 10:24 GMT+01:00 Camille :

>
> On 09 Feb 2015, at 18:24, Nicolai Hess  wrote:
>
> I thought, Behaviors define the "behavior" of objects, therefore:
>
> Integer is a behavior, because it defines the behavior of "integer objects"
> Integer class is a behavior because it defines the behavior of the object
> "Integer".
>
> 5 isBehavior -> false.
> Integer isBehavior -> true.
> Integer class isBehavior -> true.
>
> What about Traits?
>
> Traits are "behavioral(?)", but they don't define the behavior alone, only
> the composition of
> Traits in an actual class defines the behavior of an Object.
>
> TClass isBehavior -> false.
>
>
> So far so good.
>
>
> In fact the first time I saw this I was a bit surprised, I was expecting
> it to return true.
> After all Trait class inherits TraitBehavior that uses the TBehavior
> trait.
> Sure a trait alone doesn’t define the whole behavior of an object but at
> least part of it.
> In fact it’s because there is many senders of isBehavior which expect it
> to return true only if the receiver is instanciable.
> But still it’s a bit confusing.
>
> Smalltalk globals allBehaviors includes:TClass -> true !
>
> No suprise, because #allBehaviors explicitly collect all classes and
> traits.
> But the question is, what do we want to call a "Behavior”?
>
>
> I would prefer isBehavior to return true for traits and rename the current
> isBehavior to isInstanciable for exemple.
> But this is quite a refactoring and it’s likely to break many things that
> are not in the image by default.
>

I would prefer any solution, as long as it is consistent.

Other opinions?




>
> Likewise in SystemDictionary and SystemNavigation:
>
> All Classes and MetaClasses (-> Behavior allSubclasses)
>
>
> -> allInstanciable or allClassesAndMetaclasses
>
> All Classes and Traits
>
>
> -> allInstanceSideBehaviors (and an equivalent allClassSideBehavior for
> metaclasses and classtraits)
>
> All Classes and Traits and MetaClasses and ClassTraits
>
>
> -> allBehaviors
>
> All Classes and MetaClasses and some Traits?
>
>
> not this one
>
> (this of course, is related to
> http://forum.world.st/RBEnvironments-allClasses-Traits-Meta-tp4796370.html
> ).
>
> In squeak Traits are behavior too.
>
>
> Yes, it’s because in squeak traits are implemented differently: the class
> Trait inherits from Behavior so traits are instanciable.
>
>
>
> nicolai
>
>
>
>


Re: [Pharo-dev] What is Phlow?

2015-02-15 Thread Thierry Goubier
2015-02-14 22:07 GMT+01:00 stepharo :

>Stef,
>
>  would that mean you could do dataflow programming (a la FRP or STEPS)
> with the appropriate slots?
>
>
> Yes!
> We can define a variable that emit a value each time its value is set for
> example.
>
>   Could it be possible as well to run a constraint satisfaction engine
> behind slots?
>
> Yes
> Slots are just programmable variables :)
>

Thanks.

Intriguing possibilities.

Thierry

>
>  Thierry
>
>
>>
>> Stef
>>
>>   2015-02-09 21:50 GMT+01:00 Tudor Girba :
>>
>>> Hi,
>>>
>>>  First, thanks for reviewing the code :).
>>>
>>>  Phlow is a small engine that makes it possible to link Brick slots to
>>> one another to enable flow of data.
>>>
>>
>>  Sounds interesting!
>>
>>
>>
>>>
>>>  Cheers,
>>> Doru
>>>
>>>
>>>
>>> On Mon, Feb 9, 2015 at 1:46 PM, Nicolai Hess  wrote:
>>>
 For example GLMBrick subclass: #GLMPhlowBrick
 in category: 'Glamour-Morphic-Brick-Phlow'


>>>
>>>
>>>  --
>>>  www.tudorgirba.com
>>>
>>>  "Every thing has its own flow"
>>>
>>
>>
>>
>
>


Re: [Pharo-dev] What is Phlow?

2015-02-14 Thread stepharo

Stef,

would that mean you could do dataflow programming (a la FRP or STEPS) 
with the appropriate slots?


Yes!
We can define a variable that emit a value each time its value is set 
for example.


Could it be possible as well to run a constraint satisfaction engine 
behind slots?

Yes
Slots are just programmable variables :)


Thierry


Stef


2015-02-09 21:50 GMT+01:00 Tudor Girba mailto:tu...@tudorgirba.com>>:

Hi,

First, thanks for reviewing the code :).

Phlow is a small engine that makes it possible to link Brick
slots to one another to enable flow of data.


Sounds interesting!


Cheers,
Doru



On Mon, Feb 9, 2015 at 1:46 PM, Nicolai Hess
mailto:nicolaih...@web.de>> wrote:

For example GLMBrick subclass: #GLMPhlowBrick
in category: 'Glamour-Morphic-Brick-Phlow'




-- 
www.tudorgirba.com 


"Every thing has its own flow"









Re: [Pharo-dev] What is a Behavior, are Traits behavior too?

2015-02-10 Thread Camille

> On 09 Feb 2015, at 18:24, Nicolai Hess  wrote:
> 
> I thought, Behaviors define the "behavior" of objects, therefore:
> 
> Integer is a behavior, because it defines the behavior of "integer objects"
> Integer class is a behavior because it defines the behavior of the object 
> "Integer".
> 
> 5 isBehavior -> false.
> Integer isBehavior -> true.
> Integer class isBehavior -> true.
> 
> What about Traits?
> 
> Traits are "behavioral(?)", but they don't define the behavior alone, only 
> the composition of
> Traits in an actual class defines the behavior of an Object.
> 
> TClass isBehavior -> false.
> 
> So far so good.

In fact the first time I saw this I was a bit surprised, I was expecting it to 
return true.
After all Trait class inherits TraitBehavior that uses the TBehavior trait. 
Sure a trait alone doesn’t define the whole behavior of an object but at least 
part of it.
In fact it’s because there is many senders of isBehavior which expect it to 
return true only if the receiver is instanciable.
But still it’s a bit confusing.

> Smalltalk globals allBehaviors includes:TClass -> true !
> 
> No suprise, because #allBehaviors explicitly collect all classes and traits.
> But the question is, what do we want to call a "Behavior”?

I would prefer isBehavior to return true for traits and rename the current 
isBehavior to isInstanciable for exemple.
But this is quite a refactoring and it’s likely to break many things that are 
not in the image by default.

Likewise in SystemDictionary and SystemNavigation:
> All Classes and MetaClasses (-> Behavior allSubclasses)

-> allInstanciable or allClassesAndMetaclasses

> All Classes and Traits

-> allInstanceSideBehaviors (and an equivalent allClassSideBehavior for 
metaclasses and classtraits)

> All Classes and Traits and MetaClasses and ClassTraits

-> allBehaviors

> All Classes and MetaClasses and some Traits?

not this one

> (this of course, is related to 
> http://forum.world.st/RBEnvironments-allClasses-Traits-Meta-tp4796370.html 
> ).
> 
> In squeak Traits are behavior too.

Yes, it’s because in squeak traits are implemented differently: the class Trait 
inherits from Behavior so traits are instanciable.

> 
> 
> nicolai
> 
> 



Re: [Pharo-dev] What is Phlow?

2015-02-10 Thread Norbert Hartl
Doru,

I didn't mean material about your actual work. It is more a question like 
Thierry asked. What is the working model beneath. Is it FRP, something 
different, something new?

Just a few words as a teaser ;)

Norbert
> Am 10.02.2015 um 08:59 schrieb Tudor Girba :
> 
> Things move fast, don't they?! In fact, they seem to be moving faster and 
> faster. Faster than any one of us can think. That is what accelerating 
> acceleration means. We are approaching amazing times.
> 
> About Phlow, please wait for a little while. We are still working on it. It 
> will likely need some months, but we'll let you know when we have something 
> more complete :)
> 
> Doru
> 
> On Tue, Feb 10, 2015 at 8:42 AM, Norbert Hartl  > wrote:
> That sounds really interesting. Are there any materials available?
> 
> Norbert
> 
> 
> 
> Am 10.02.2015 um 08:14 schrieb stepharo  >:
> 
>> This is fun because I wanted to propose to have a dataflow engine based on 
>> slot for event manipulation 
>> and there is phlow :)
>> 
>> Stef
>> 
>>> 2015-02-09 21:50 GMT+01:00 Tudor Girba >> >:
>>> Hi,
>>> 
>>> First, thanks for reviewing the code :).
>>> 
>>> Phlow is a small engine that makes it possible to link Brick slots to one 
>>> another to enable flow of data.
>>> 
>>> Sounds interesting!
>>> 
>>>  
>>> 
>>> Cheers,
>>> Doru
>>> 
>>> 
>>> 
>>> On Mon, Feb 9, 2015 at 1:46 PM, Nicolai Hess >> > wrote:
>>> For example GLMBrick subclass: #GLMPhlowBrick
>>> in category: 'Glamour-Morphic-Brick-Phlow'
>>> 
>>> 
>>> 
>>> 
>>> -- 
>>> www.tudorgirba.com 
>>> 
>>> "Every thing has its own flow"
>>> 
>> 
> 
> 
> 
> -- 
> www.tudorgirba.com 
> 
> "Every thing has its own flow"



Re: [Pharo-dev] What is Phlow?

2015-02-10 Thread Thierry Goubier
2015-02-10 8:14 GMT+01:00 stepharo :

>  This is fun because I wanted to propose to have a dataflow engine based
> on slot for event manipulation
> and there is phlow :)
>

Stef,

would that mean you could do dataflow programming (a la FRP or STEPS) with
the appropriate slots?

Could it be possible as well to run a constraint satisfaction engine behind
slots?

Thierry


>
> Stef
>
>   2015-02-09 21:50 GMT+01:00 Tudor Girba :
>
>> Hi,
>>
>>  First, thanks for reviewing the code :).
>>
>>  Phlow is a small engine that makes it possible to link Brick slots to
>> one another to enable flow of data.
>>
>
>  Sounds interesting!
>
>
>
>>
>>  Cheers,
>> Doru
>>
>>
>>
>> On Mon, Feb 9, 2015 at 1:46 PM, Nicolai Hess  wrote:
>>
>>> For example GLMBrick subclass: #GLMPhlowBrick
>>> in category: 'Glamour-Morphic-Brick-Phlow'
>>>
>>>
>>
>>
>>  --
>>  www.tudorgirba.com
>>
>>  "Every thing has its own flow"
>>
>
>
>


  1   2   3   >