[Pharo-project] i know esug just started...but some kind soul can please revive squeaksource

2010-09-13 Thread Fernando olivero
thanks,
Fernando

___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] Squeak VM on iPad/IPhone gets open/GL rendering

2010-09-13 Thread John M McIntosh
Spent a few more hours today reading and  then decided the test case I had from 
Bert spent 90% of it's time in the interpreter's 
copyLoop logic.  Toss that for the fall back of using bouncing atoms so I could 
get a better feel of the performance differences. 

So after some optimization, on the iPad, the CALayer pushes about 38 fps,  the 
OpenGL code pushes 49 fps (which is limited by Morphic loop). 

In checking Instruments the 10% of the time taken in CALayer for memcpy of data 
out of the UIImages is gone when I do open/GL
However if the drawing area becomes too big then the Open/GL drawing is slower, 
trade offs, trade offs. 
 
Also the byte alignment plays a part, that I have to explore more.  Still this 
is significant progress and we'll see what happens this week. 

A quick check on an iPhone 3GS shows CALayer pushes about 27fps, OpenGL does 43 
fps. So much bigger win, I think we'll keep it. 

Sadly it doesn't fly on an iPod Gen 1 device (3.1.3) Zero clues.. It's possible 
of course there isn't isn't enough memory to go around, but
given I've two different implementation classes I can choose the viable one at 
run time... 


On 2010-09-11, at 3:37 PM, John M McIntosh wrote:

 On friday night I created an open/GL renderer to work with Squeak screen 
 updates on the iPhone/iPad.  
 
 Unfortunately it runs slows than the tiled Core Animation render that I had 
 work out earlier in the year
 with help from the Apple graphics engineers. 
 
 So if anyone has a fair amount of knowledge about Open/GL ES maybe they could 
 contact me and 
 we'll see if we can improve things? 

--
===
John M. McIntosh john...@smalltalkconsulting.com   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===






smime.p7s
Description: S/MIME cryptographic signature
___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Re: [Pharo-project] Compiling the VM for MacOSX

2010-09-13 Thread Alexandre Bergel
 which is a bit sad. Because we cannot run an hudson srever to automatically 
 build vms.
 I do not really understand why this would not be possible.


Indeed, it would be nice to have that

Alexandre

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] update to OCompletion

2010-09-13 Thread Alexandre Bergel
 Nevertheless, I would say that once I pressed the down arrow, my focus is 
 to the completion, and thus enter should mean selection of the completion.
 
 +1
 
 I totally agree on this one.

We should also be able to do a mouse click on a list item.

Alexandre

 
 
 
 
 On 12 Sep 2010, at 01:30, Francisco Ortiz Peñaloza wrote:
 
 Hi, i'm trying the latest version cause i's tired of waiting for the
 switch to the longer list of suggestions. But i don't understand the
 following change
 
 -removed enter to insert a completion
 
 am i missing something? why do u ppl make this change?
 
 Cheers,
 Francisco Ortiz Peñaloza
 
 On Wed, Aug 4, 2010 at 8:20 PM, Tim Mackinnon tamackin...@gmail.com 
 wrote:
 I shall definitely give that a read - especially now i have an example to
 think back on.
 
 By the way - these chapters that people keep writing, are a great help 
 (the
 monticello one certainly took away a huge load of frustrations I was 
 having)
 - so thanks to everyone that keeps chipping away at them!
 
 tim
 
 On 4 Aug 2010, at 18:44, Mariano Martinez Peck wrote:
 
 I am glad I helped. You can also take a look to the Metacello draft we
 wrote for Pharo By Example 2. I attach it.
 
 
 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
 
 
 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
 
 --
 www.tudorgirba.com
 
 Every thing has its own flow.
 
 
 
 
 
 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
 
 --
 _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
 Alexandre Bergel  http://www.bergel.eu
 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
 
 
 
 
 
 
 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
 
 
 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] Updated http://isqueak.org/PlatformVMAPI

2010-09-13 Thread Noury Bouraqadi
On 12 sept. 2010, at 23:47, John M McIntosh wrote:

 I spent a few hours this morning and updated the VM Platform API 
 documentation at
 http://isqueak.org/PlatformVMAPI
 
 To capture the details of the OS-X Cocoa work. (Squeak macintosh VM 5.x) 
 
 For the most part the iPhone  OS-X implementation share a common Objective-C 
 code base because
 Apple uses OSX as the foundation for both devices which shares most of the 
 functionality except for the UI
 components. Thus for the most part I could say see iPhone implementation 
 details. 
 
Thans John!
It's really important to have an up to date documentation.

Noury @ ESUG 2010 - Barcelona :-)
---
18th International Smalltalk Joint Conference, September 13 -17 2010 Barcelona, 
Spain.
http://www.esug.org/Conferences/2010




___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] Update to OCompletion

2010-09-13 Thread Romain Robbes
 Message: 17
 Date: Sun, 12 Sep 2010 08:52:27 +0300
 From: Tudor Girba tudor.gi...@gmail.com
 Subject: Re: [Pharo-project] update to OCompletion
 To: Pharo-project@lists.gforge.inria.fr
 Message-ID: 01233679-6338-49eb-8460-4952904ba...@gmail.com
 Content-Type: text/plain; charset=iso-8859-1

 This is because when you have a line split into multiple lines, I want Enter 
 to mean new line, not complete. This is particularly the case when you have 
 pseudo-domain specific languages like in Glamour or Mondrian.

 Nevertheless, I would say that once I pressed the down arrow, my focus is to 
 the completion, and thus enter should mean selection of the completion.


Wouldn't that be somewhat inconsistent though? You can't select the
first completion with enter, only from the second on.

Cheers,
Romain


 Cheers,
 Doru


___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] Update to OCompletion

2010-09-13 Thread Tudor Girba
Hi Romain,

On 13 Sep 2010, at 11:22, Romain Robbes wrote:

 Message: 17
 Date: Sun, 12 Sep 2010 08:52:27 +0300
 From: Tudor Girba tudor.gi...@gmail.com
 Subject: Re: [Pharo-project] update to OCompletion
 To: Pharo-project@lists.gforge.inria.fr
 Message-ID: 01233679-6338-49eb-8460-4952904ba...@gmail.com
 Content-Type: text/plain; charset=iso-8859-1
 
 This is because when you have a line split into multiple lines, I want Enter 
 to mean new line, not complete. This is particularly the case when you have 
 pseudo-domain specific languages like in Glamour or Mondrian.
 
 Nevertheless, I would say that once I pressed the down arrow, my focus is to 
 the completion, and thus enter should mean selection of the completion.
 
 
 Wouldn't that be somewhat inconsistent though? You can't select the
 first completion with enter, only from the second on.

Actually I was thinking of the first arrow down to just transfer the focus from 
the text to the completion. Thus, the first arrow down would still select the 
first item and enter would work there.

Cheers,
Doru


 Cheers,
Romain
 
 
 Cheers,
 Doru
 
 
 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

--
www.tudorgirba.com

Not knowing how to do something is not an argument for how it cannot be done.


___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


[Pharo-project] Settings for Shout syntax highlighting

2010-09-13 Thread Simon Denier
Hi

A new package Settings-Shout in the Pharo Inbox for issue 1611

SLICE-Issue-1611-ShoutSettings-simon_denier.1

You can now set how (for example), instance variables, selector patterns, class 
references appears in the Shout pane.
One point is that Shout comes with a list of hundred token types which can be 
individually customized, some of which I have no idea what they represent 
(externalCallTypePointerIndicator?). To keep things manageable, I defined some 
groups of logically related token types (like the gorup 'selector patterns' for 
token types patternKeyword, patternBinary, patternUnary).

Class SHGroupStyle manages settings for the Shout syntax highlighting. Token 
types are organized in logical groups which will share the same style. 
Currently, only color and emphasis can be edited through Shout settings. Text 
font and size are managed through the more general appearance setting. Changing 
a style setting on a SHGroupStyle automatically applies the style.

Groups are defined in the class-side method initializeGroups. Alternatively, 
one can set its own style table using Shout tokens by calling #customStyleTable 
(see SHTextStylerST80 classdefaultStyleTable for the format).


Help needed:
1) code review
2) review group definition, because I made some groups based partly on my 
intuition, partly on styling difference in the current difference: there may be 
a better partition of token types.
3) review description for group, setting organization...


Thanks to Alain for helping with settings and especially polymorph widgets.

--
 Simon



___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Re: [Pharo-project] Settings for Shout syntax highlighting

2010-09-13 Thread Stéphane Ducasse
Thanks!

Stef

On Sep 13, 2010, at 11:00 AM, Simon Denier wrote:

 Hi
 
 A new package Settings-Shout in the Pharo Inbox for issue 1611
 
 SLICE-Issue-1611-ShoutSettings-simon_denier.1
 
 You can now set how (for example), instance variables, selector patterns, 
 class references appears in the Shout pane.
 One point is that Shout comes with a list of hundred token types which can be 
 individually customized, some of which I have no idea what they represent 
 (externalCallTypePointerIndicator?). To keep things manageable, I defined 
 some groups of logically related token types (like the gorup 'selector 
 patterns' for token types patternKeyword, patternBinary, patternUnary).
 
 Class SHGroupStyle manages settings for the Shout syntax highlighting. Token 
 types are organized in logical groups which will share the same style. 
 Currently, only color and emphasis can be edited through Shout settings. Text 
 font and size are managed through the more general appearance setting. 
 Changing a style setting on a SHGroupStyle automatically applies the style.
 
 Groups are defined in the class-side method initializeGroups. Alternatively, 
 one can set its own style table using Shout tokens by calling 
 #customStyleTable (see SHTextStylerST80 classdefaultStyleTable for the 
 format).
 
 
 Help needed:
 1) code review
 2) review group definition, because I made some groups based partly on my 
 intuition, partly on styling difference in the current difference: there may 
 be a better partition of token types.
 3) review description for group, setting organization...
 
 
 Thanks to Alain for helping with settings and especially polymorph widgets.
 
 --
  Simon
 
 
 
 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


[Pharo-project] Cecinestpasunepomme best squeaksource package name!

2010-09-13 Thread stephane ducasse
Hi 

Cecinestpasunepomme best squeaksource package name!

Stef

___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] Cecinestpasunepomme best squeaksource package name!

2010-09-13 Thread Peter Hugosson-Miller
LOL! Nice with a little Magritte humour ;-)

On Mon, Sep 13, 2010 at 11:18 AM, stephane ducasse stephane.duca...@free.fr
 wrote:

 Hi

 Cecinestpasunepomme best squeaksource package name!

 Stef

 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Re: [Pharo-project] Settings for Shout syntax highlighting

2010-09-13 Thread Lukas Renggli
Excellent, I merged the changes into the Shout package and the
existing preferences it already defined (package and setting wise).

http://source.lukas-renggli.ch/unsorted

Name: Shout-lr.88
Author: lr
Time: 13 September 2010, 11:24:32 am
UUID: 0646e300-30df-4c6f-8b5b-bd9437569194
Ancestors: Shout-lr.86

- merged the changes of simon and alain

Lukas

On 13 September 2010 11:02, Stéphane Ducasse stephane.duca...@inria.fr wrote:
 Thanks!

 Stef

 On Sep 13, 2010, at 11:00 AM, Simon Denier wrote:

 Hi

 A new package Settings-Shout in the Pharo Inbox for issue 1611

 SLICE-Issue-1611-ShoutSettings-simon_denier.1

 You can now set how (for example), instance variables, selector patterns, 
 class references appears in the Shout pane.
 One point is that Shout comes with a list of hundred token types which can 
 be individually customized, some of which I have no idea what they represent 
 (externalCallTypePointerIndicator?). To keep things manageable, I defined 
 some groups of logically related token types (like the gorup 'selector 
 patterns' for token types patternKeyword, patternBinary, patternUnary).

 Class SHGroupStyle manages settings for the Shout syntax highlighting. 
 Token types are organized in logical groups which will share the same style. 
 Currently, only color and emphasis can be edited through Shout settings. 
 Text font and size are managed through the more general appearance setting. 
 Changing a style setting on a SHGroupStyle automatically applies the style.

 Groups are defined in the class-side method initializeGroups. Alternatively, 
 one can set its own style table using Shout tokens by calling 
 #customStyleTable (see SHTextStylerST80 classdefaultStyleTable for the 
 format).


 Help needed:
 1) code review
 2) review group definition, because I made some groups based partly on my 
 intuition, partly on styling difference in the current difference: there may 
 be a better partition of token types.
 3) review description for group, setting organization...


 Thanks to Alain for helping with settings and especially polymorph widgets.

 --
  Simon



 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project




-- 
Lukas Renggli
www.lukas-renggli.ch

___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


[Pharo-project] Fwd: [Esug-list] Live Streaming ESUG 2010

2010-09-13 Thread Noury Bouraqadi


Begin forwarded message:

 From: Marcus Denker marcus.den...@inria.fr
 Date: 13 septembre 2010 10:45:02 HAEC
 To: ESUG Mailing list esug-l...@lists.esug.org
 Subject: [Esug-list] Live Streaming ESUG 2019
 
 Hi,
 
 ESUG 2010 is streamed live:
 
   http://eventv.projectescitilab.eu
 
 Second room: http://eventv.projectescitilab.eu/page3/page3.html
 
 Start of talks is announced on Twitter: http://twitter.com/esugsmalltalk
 
 
   Marcus
 
 --
 Marcus Denker  -- http://www.marcusdenker.de
 INRIA Lille -- Nord Europe. Team RMoD.
 
 
 ___
 Esug-list mailing list
 esug-l...@lists.esug.org
 http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org

Noury @ ESUG 2010 - Barcelona :-)
---
18th International Smalltalk Joint Conference, September 13 -17 2010 Barcelona, 
Spain.
http://www.esug.org/Conferences/2010




___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] Settings for Shout syntax highlighting

2010-09-13 Thread Schwab,Wilhelm K
Dumb question/request: background colors?  I like to choose something other 
than white to reduce contrast.





From: pharo-project-boun...@lists.gforge.inria.fr 
[pharo-project-boun...@lists.gforge.inria.fr] On Behalf Of Simon Denier 
[simon.den...@inria.fr]
Sent: Monday, September 13, 2010 5:00 AM
To: Pharo Development
Cc: Simon Denier
Subject: [Pharo-project] Settings for Shout syntax highlighting

Hi

A new package Settings-Shout in the Pharo Inbox for issue 
1611http://code.google.com/p/pharo/issues/detail?id=1611

SLICE-Issue-1611-ShoutSettings-simon_denier.1

You can now set how (for example), instance variables, selector patterns, class 
references appears in the Shout pane.
One point is that Shout comes with a list of hundred token types which can be 
individually customized, some of which I have no idea what they represent 
(externalCallTypePointerIndicator?). To keep things manageable, I defined some 
groups of logically related token types (like the gorup 'selector patterns' for 
token types patternKeyword, patternBinary, patternUnary).

Class SHGroupStyle manages settings for the Shout syntax highlighting. Token 
types are organized in logical groups which will share the same style. 
Currently, only color and emphasis can be edited through Shout settings. Text 
font and size are managed through the more general appearance setting. Changing 
a style setting on a SHGroupStyle automatically applies the style.

Groups are defined in the class-side method initializeGroups. Alternatively, 
one can set its own style table using Shout tokens by calling #customStyleTable 
(see SHTextStylerST80 classdefaultStyleTable for the format).


Help needed:
1) code review
2) review group definition, because I made some groups based partly on my 
intuition, partly on styling difference in the current difference: there may be 
a better partition of token types.
3) review description for group, setting organization...


Thanks to Alain for helping with settings and especially polymorph widgets.

--
 Simon




___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


[Pharo-project] Compiler throws error in Gemstone, not in Pharo

2010-09-13 Thread Bart Gauquie
Dear list,

while testing between Pharo and Gemstone I've noticed that Pharo allows
following code, while Gemstone does not.

renderSelectorAndReturnBrushForSelector: aSelector.
^canvas textInput
id: (self idForSelector: aSelector);
value: (self inputValueForSelector: aSelector);
script: (canvas jQuery new datepicker);
yourself

The error is that in the message definition:
renderSelectorAndReturnBrushForSelector: aSelector. there is a dot on the
end.

This seems like an error in the Pharo compiler ? or not?

Kind Regards,

Bart
___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Re: [Pharo-project] Compiler throws error in Gemstone, not in Pharo

2010-09-13 Thread Damien Pollet
2010/9/13 Bart Gauquie bart.gauq...@gmail.com:
 The error is that in the message definition:
 renderSelectorAndReturnBrushForSelector: aSelector. there is a dot on the
 end.

 This seems like an error in the Pharo compiler ? or not?

Actually Johan Brichau just mentioned this during his talk this
morning. Gemstone's compiler is stricter than Pharo's.

It's not really a bug that the parser in Pharo is more persmissive,
but it's an inconvenience indeed.


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

___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] Improving generate accessors for refactoring browser

2010-09-13 Thread Mariano Martinez Peck
i would like that too

On Sep 12, 2010 7:27 PM, Bart Gauquie bart.gauq...@gmail.com wrote:

Dear list,

I've noticed that when I'm using the generate accessors refactoring, I'm
always adapting the generated code for the mutator:

number: anObject
number := anObject

to:

number: aNumber
   number := aNumber

So I've adapted the refactoring code a bit so that it automatically
generates this correctly. Anybody also thinks this is useful? If so, I will
create a bug/improvement and a slice for it.

Kind regards,

Bart

___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Re: [Pharo-project] Compiler throws error in Gemstone, not in Pharo

2010-09-13 Thread Stéphane Ducasse
Yes but what is wrong on gemstone.

Stef


 Dear list,
 
 while testing between Pharo and Gemstone I've noticed that Pharo allows 
 following code, while Gemstone does not.
 
 renderSelectorAndReturnBrushForSelector: aSelector.
 ^canvas textInput
 id: (self idForSelector: aSelector);
 value: (self inputValueForSelector: aSelector);
 script: (canvas jQuery new datepicker);
 yourself
 
 The error is that in the message definition: 
 renderSelectorAndReturnBrushForSelector: aSelector. there is a dot on the 
 end. 
 
 This seems like an error in the Pharo compiler ? or not?
 
 Kind Regards,
 
 Bart
 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] Improving generate accessors for refactoring browser

2010-09-13 Thread Lukas Renggli
How you derive the type?

From the method name? I think only very few accessors/inst-vars are
named after the type.

Also note that you can edit the type directly in the changes browser
before you install it, that's what I typically do.

Lukas

2010/9/13 Mariano Martinez Peck marianop...@gmail.com:
 i would like that too

 On Sep 12, 2010 7:27 PM, Bart Gauquie bart.gauq...@gmail.com wrote:

 Dear list,

 I've noticed that when I'm using the generate accessors refactoring, I'm
 always adapting the generated code for the mutator:
 number: anObject
     number := anObject
 to:
 number: aNumber
    number := aNumber
 So I've adapted the refactoring code a bit so that it automatically
 generates this correctly. Anybody also thinks this is useful? If so, I will
 create a bug/improvement and a slice for it.
 Kind regards,

 Bart
 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project




-- 
Lukas Renggli
www.lukas-renggli.ch

___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


[Pharo-project] [update 1.2] #12141

2010-09-13 Thread Stéphane Ducasse
12141
-

- Issue 2955:   some settings simplification + fixes. Thanks Alain Plantec

Stef

___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


[Pharo-project] One order of magnitude faster sets/dicts?!

2010-09-13 Thread Adrian Lienhard
This mail is quite long as I copied it from a conversation with Toon Verwaest. 
Toon and Camillo re-implemented hashed collections for Pinocchio 
(http://scg.unibe.ch/research/pinocchio). Their benchmarks have shown that the 
new implementation is significantly faster than the one in Pharo 1.1. The 
source code is available from www.squeaksource.com/p.html (they haven't set a 
license, but I'm pretty sure they'll release their code as MIT).

I post this here to find somebody knowledgeable in the area to take a look at 
the code and figure out whether this implementation would be interesting for 
Pharo...

Cheers,
Adrian


citing Toon:

We ran some benchmarks on our data structures (It's in comparison with and 
benchmarked in standard Pharo 1.1). We just add / remove integers within a 
certain range thus always perfectly distributed making it ideal for Pharo 
dictionaries. 

The numbers show how long a certain benchmark took on average in 20 runs of the 
benchmark and its standard deviation over those runs. A single benchmark run 
generally consists of many individual operations on the collection in question. 
For example:

benchIncludes
   1 to: set size * 2 do: [ :i|
   set includes: i ]

where the set has size 1. Evaluating this once results in a single run. So 
the number at the top of the benchmark is the sum of all averages with the 
average stdev.

The results:

PDictionary: 15.8 +/-1.7
   Do0.472 +/-0.079
   RemoveKey 0.010 +/-0.021
   AtPut 0.947 +/-0.02
   AtIfAbsentPut 1.64 +/-0.96
   AtPutExisting 0.198 +/-0.011
   KeysAndValuesDo   0.502 +/-0.09
   IncludesKey   0.365 +/-0.024
   AtPutNew  4.2 +/-1.3
   Includes  7.40 +/-0.33

Dictionary: 138.2 +/-4.7
   Do0.830 +/-0.098
   RemoveKey 10.292 +/-0.077
   AtPut 0.957 +/-0.044
   AtIfAbsentPut 1.52 +/-0.95
   AtPutExisting 0.203 +/-0.011
   KeysAndValuesDo   0.850 +/-0.096
   IncludesKey   80.25 +/-0.25
   AtPutNew  3.5 +/-1.3
   Includes  39.8 +/-4.4

PSet: 1.767 +/-0.057
   Remove0.008 +/-0.018
   Add   0.845 +/-0.039
   AddExisting   0.310 +/-0.021
   AddNew0.240 +/-0.021
   Includes  0.365 +/-0.024

Set: 70.9 +/-1.2
   Remove7.737 +/-0.051
   Add   0.755 +/-0.022
   AddExisting   0.305 +/-0.015
   AddNew2.473 +/-0.03
   Includes  59.6 +/-1.2


Obviously the very slight differences have to be taken with a grain of salt, 
but whenever it's more than 10x faster it's quite unlikely that it's due to 
some random runtime variation that might totally change in another run.

An important thing for our datastructures is that they don't degrade since we 
don't have colliding hashes; but we didn't really test that yet (although it 
becomes obvious in some of the benchmark results such as removing of elements 
and testing presence of elements).

 Is there anything special that one would neet to consider when replacing the 
 old implementation in Pharo with yours?

What doesn't happen at the moment is shrinking dictionaries after they have 
grown significantly. I wouldn't know at what point to do so either; nor do I 
think Dictionary does that?

There is a parameter indicating how many elements can be added before it 
switches from a SmallDictionary version to a dictionary with buckets. This is  
set to 20 by default, and I have no idea if it makes sense to change it; I 
didn't really profile what the optimal number is. Maybe it makes sense to make 
that a constant in the code rather than an instance variable to save a bit of 
space and time ...

We have our own PHashedCollection subclassing from Collection; so the biggest 
part of the hierarchy is compatible with what Pharo has. Mostly while porting 
Pinocchio-specific stuff will have to be removed; mostly annotations related to 
Pinocchio Primitives and exporting directives. This is all straightforward 
though.

The current ratio of hashes to elements is set to 500%. So basically when you 
have 32 buckets it will only grow when it contains 160 elements (or key-value 
pairs), so 5 elements per bucket on average. This seems to not make it slower 
which is understandable since SmallDictionary is pretty fast for small amounts 
of elements; but this ratio might have to be tweaked depending on the kind of 
objects and is currently a parameter. The advantage of using 500% is that you 
have A LOT less garbage.

Oh, and our dictionaries do use a lot less garbage, since Pharo's dictionaries 
use association objects for each key-value pair. We don't, so we never generate 
garbage when you remove an object.
Our Sets on the other hand do use a bit more memory because of the bucket 
scheme. Sets don't use associations so we don't have an edge there :) Only 
performance-wise in that case.

The hashes are masked with the amount of buckets - 1, since the buckets are 
always a power of 2.
This 

Re: [Pharo-project] Improving generate accessors for refactoring browser

2010-09-13 Thread Miguel Enrique Cobá Martínez
El lun, 13-09-2010 a las 14:02 +0200, Lukas Renggli escribió:
 How you derive the type?

I think it only uses the name of the inst var to name the parameter var
in the accessor.

 
 From the method name? I think only very few accessors/inst-vars are
 named after the type.
 
 Also note that you can edit the type directly in the changes browser
 before you install it, that's what I typically do.
 
 Lukas
 
 2010/9/13 Mariano Martinez Peck marianop...@gmail.com:
  i would like that too
 
  On Sep 12, 2010 7:27 PM, Bart Gauquie bart.gauq...@gmail.com wrote:
 
  Dear list,
 
  I've noticed that when I'm using the generate accessors refactoring, I'm
  always adapting the generated code for the mutator:
  number: anObject
  number := anObject
  to:
  number: aNumber
 number := aNumber
  So I've adapted the refactoring code a bit so that it automatically
  generates this correctly. Anybody also thinks this is useful? If so, I will
  create a bug/improvement and a slice for it.
  Kind regards,
 
  Bart
  ___
  Pharo-project mailing list
  Pharo-project@lists.gforge.inria.fr
  http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
 
  ___
  Pharo-project mailing list
  Pharo-project@lists.gforge.inria.fr
  http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
 
 
 
 

-- 
Miguel Cobá
http://miguel.leugim.com.mx


___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Re: [Pharo-project] One order of magnitude faster sets/dicts?!

2010-09-13 Thread Levente Uzonyi

On Mon, 13 Sep 2010, Adrian Lienhard wrote:


This mail is quite long as I copied it from a conversation with Toon Verwaest. 
Toon and Camillo re-implemented hashed collections for Pinocchio 
(http://scg.unibe.ch/research/pinocchio). Their benchmarks have shown that the 
new implementation is significantly faster than the one in Pharo 1.1. The 
source code is available from www.squeaksource.com/p.html (they haven't set a 
license, but I'm pretty sure they'll release their code as MIT).

I post this here to find somebody knowledgeable in the area to take a look at 
the code and figure out whether this implementation would be interesting for 
Pharo...

Cheers,
Adrian


citing Toon:

We ran some benchmarks on our data structures (It's in comparison with and 
benchmarked in standard Pharo 1.1). We just add / remove integers within a 
certain range thus always perfectly distributed making it ideal for Pharo 
dictionaries.

The numbers show how long a certain benchmark took on average in 20 runs of the 
benchmark and its standard deviation over those runs. A single benchmark run 
generally consists of many individual operations on the collection in question. 
For example:

benchIncludes
  1 to: set size * 2 do: [ :i|
  set includes: i ]

where the set has size 1. Evaluating this once results in a single run. So 
the number at the top of the benchmark is the sum of all averages with the 
average stdev.

The results:

PDictionary: 15.8 +/-1.7
  Do0.472 +/-0.079
  RemoveKey 0.010 +/-0.021
  AtPut 0.947 +/-0.02
  AtIfAbsentPut 1.64 +/-0.96
  AtPutExisting 0.198 +/-0.011
  KeysAndValuesDo   0.502 +/-0.09
  IncludesKey   0.365 +/-0.024
  AtPutNew  4.2 +/-1.3
  Includes  7.40 +/-0.33

Dictionary: 138.2 +/-4.7
  Do0.830 +/-0.098
  RemoveKey 10.292 +/-0.077
  AtPut 0.957 +/-0.044
  AtIfAbsentPut 1.52 +/-0.95
  AtPutExisting 0.203 +/-0.011
  KeysAndValuesDo   0.850 +/-0.096
  IncludesKey   80.25 +/-0.25
  AtPutNew  3.5 +/-1.3
  Includes  39.8 +/-4.4

PSet: 1.767 +/-0.057
  Remove0.008 +/-0.018
  Add   0.845 +/-0.039
  AddExisting   0.310 +/-0.021
  AddNew0.240 +/-0.021
  Includes  0.365 +/-0.024

Set: 70.9 +/-1.2
  Remove7.737 +/-0.051
  Add   0.755 +/-0.022
  AddExisting   0.305 +/-0.015
  AddNew2.473 +/-0.03
  Includes  59.6 +/-1.2


Obviously the very slight differences have to be taken with a grain of salt, 
but whenever it's more than 10x faster it's quite unlikely that it's due to 
some random runtime variation that might totally change in another run.


I'm a bit skeptic, because 10x improvement is pretty hard to get if the 
benchmark is not flawed and the code doesn't use VM support.


I wonder what the #pPrimitive:plugin: pragmas stand for in PDictionary's
#at:ifAbsent: and #at:put:.

Where can I find the benchmark code?



An important thing for our datastructures is that they don't degrade since we 
don't have colliding hashes; but we didn't really test that yet (although it 
becomes obvious in some of the benchmark results such as removing of elements 
and testing presence of elements).


Is there anything special that one would neet to consider when replacing the 
old implementation in Pharo with yours?


What doesn't happen at the moment is shrinking dictionaries after they have 
grown significantly. I wouldn't know at what point to do so either; nor do I 
think Dictionary does that?


The current HashedCollections don't shrink. Remove is a rarely used 
operation.




There is a parameter indicating how many elements can be added before it 
switches from a SmallDictionary version to a dictionary with buckets. This is  
set to 20 by default, and I have no idea if it makes sense to change it; I 
didn't really profile what the optimal number is. Maybe it makes sense to make 
that a constant in the code rather than an instance variable to save a bit of 
space and time ...

We have our own PHashedCollection subclassing from Collection; so the biggest 
part of the hierarchy is compatible with what Pharo has. Mostly while porting 
Pinocchio-specific stuff will have to be removed; mostly annotations related to 
Pinocchio Primitives and exporting directives. This is all straightforward 
though.

The current ratio of hashes to elements is set to 500%. So basically when you 
have 32 buckets it will only grow when it contains 160 elements (or key-value pairs), so 
5 elements per bucket on average. This seems to not make it slower which is 
understandable since SmallDictionary is pretty fast for small amounts of elements; but 
this ratio might have to be tweaked depending on the kind of objects and is currently a 
parameter. The advantage of using 500% is that you have A LOT less garbage.

Oh, and our dictionaries do use a lot less garbage, since Pharo's dictionaries 
use association objects 

Re: [Pharo-project] One order of magnitude faster sets/dicts?!

2010-09-13 Thread Stéphane Ducasse
do you know if they compare with squeak because levent did a lot of work in 
that area.

Stef

On Sep 13, 2010, at 2:55 PM, Adrian Lienhard wrote:

 This mail is quite long as I copied it from a conversation with Toon 
 Verwaest. Toon and Camillo re-implemented hashed collections for Pinocchio 
 (http://scg.unibe.ch/research/pinocchio). Their benchmarks have shown that 
 the new implementation is significantly faster than the one in Pharo 1.1. The 
 source code is available from www.squeaksource.com/p.html (they haven't set a 
 license, but I'm pretty sure they'll release their code as MIT).
 
 I post this here to find somebody knowledgeable in the area to take a look at 
 the code and figure out whether this implementation would be interesting for 
 Pharo...
 
 Cheers,
 Adrian
 
 
 citing Toon:
 
 We ran some benchmarks on our data structures (It's in comparison with and 
 benchmarked in standard Pharo 1.1). We just add / remove integers within a 
 certain range thus always perfectly distributed making it ideal for Pharo 
 dictionaries. 
 
 The numbers show how long a certain benchmark took on average in 20 runs of 
 the benchmark and its standard deviation over those runs. A single benchmark 
 run generally consists of many individual operations on the collection in 
 question. For example:
 
 benchIncludes
   1 to: set size * 2 do: [ :i|
   set includes: i ]
 
 where the set has size 1. Evaluating this once results in a single run. 
 So the number at the top of the benchmark is the sum of all averages with the 
 average stdev.
 
 The results:
 
 PDictionary: 15.8 +/-1.7
   Do0.472 +/-0.079
   RemoveKey 0.010 +/-0.021
   AtPut 0.947 +/-0.02
   AtIfAbsentPut 1.64 +/-0.96
   AtPutExisting 0.198 +/-0.011
   KeysAndValuesDo   0.502 +/-0.09
   IncludesKey   0.365 +/-0.024
   AtPutNew  4.2 +/-1.3
   Includes  7.40 +/-0.33
 
 Dictionary: 138.2 +/-4.7
   Do0.830 +/-0.098
   RemoveKey 10.292 +/-0.077
   AtPut 0.957 +/-0.044
   AtIfAbsentPut 1.52 +/-0.95
   AtPutExisting 0.203 +/-0.011
   KeysAndValuesDo   0.850 +/-0.096
   IncludesKey   80.25 +/-0.25
   AtPutNew  3.5 +/-1.3
   Includes  39.8 +/-4.4
 
 PSet: 1.767 +/-0.057
   Remove0.008 +/-0.018
   Add   0.845 +/-0.039
   AddExisting   0.310 +/-0.021
   AddNew0.240 +/-0.021
   Includes  0.365 +/-0.024
 
 Set: 70.9 +/-1.2
   Remove7.737 +/-0.051
   Add   0.755 +/-0.022
   AddExisting   0.305 +/-0.015
   AddNew2.473 +/-0.03
   Includes  59.6 +/-1.2
 
 
 Obviously the very slight differences have to be taken with a grain of salt, 
 but whenever it's more than 10x faster it's quite unlikely that it's due to 
 some random runtime variation that might totally change in another run.
 
 An important thing for our datastructures is that they don't degrade since we 
 don't have colliding hashes; but we didn't really test that yet (although it 
 becomes obvious in some of the benchmark results such as removing of elements 
 and testing presence of elements).
 
 Is there anything special that one would neet to consider when replacing the 
 old implementation in Pharo with yours?
 
 What doesn't happen at the moment is shrinking dictionaries after they have 
 grown significantly. I wouldn't know at what point to do so either; nor do I 
 think Dictionary does that?
 
 There is a parameter indicating how many elements can be added before it 
 switches from a SmallDictionary version to a dictionary with buckets. This is 
  set to 20 by default, and I have no idea if it makes sense to change it; I 
 didn't really profile what the optimal number is. Maybe it makes sense to 
 make that a constant in the code rather than an instance variable to save a 
 bit of space and time ...
 
 We have our own PHashedCollection subclassing from Collection; so the biggest 
 part of the hierarchy is compatible with what Pharo has. Mostly while porting 
 Pinocchio-specific stuff will have to be removed; mostly annotations related 
 to Pinocchio Primitives and exporting directives. This is all straightforward 
 though.
 
 The current ratio of hashes to elements is set to 500%. So basically when 
 you have 32 buckets it will only grow when it contains 160 elements (or 
 key-value pairs), so 5 elements per bucket on average. This seems to not make 
 it slower which is understandable since SmallDictionary is pretty fast for 
 small amounts of elements; but this ratio might have to be tweaked depending 
 on the kind of objects and is currently a parameter. The advantage of using 
 500% is that you have A LOT less garbage.
 
 Oh, and our dictionaries do use a lot less garbage, since Pharo's 
 dictionaries use association objects for each key-value pair. We don't, so we 
 never generate garbage when you remove an object.
 Our Sets on the other hand do use a bit more memory 

Re: [Pharo-project] Improving generate accessors for refactoring browser

2010-09-13 Thread Bart Gauquie
don't use the type, i only uses the name of the parameter var to derive the
name of parameter

2010/9/13 Miguel Enrique Cobá Martínez miguel.c...@gmail.com

 El lun, 13-09-2010 a las 14:02 +0200, Lukas Renggli escribió:
  How you derive the type?

 I think it only uses the name of the inst var to name the parameter var
 in the accessor.

 
  From the method name? I think only very few accessors/inst-vars are
  named after the type.
 
  Also note that you can edit the type directly in the changes browser
  before you install it, that's what I typically do.
 
  Lukas
 
  2010/9/13 Mariano Martinez Peck marianop...@gmail.com:
   i would like that too
  
   On Sep 12, 2010 7:27 PM, Bart Gauquie bart.gauq...@gmail.com
 wrote:
  
   Dear list,
  
   I've noticed that when I'm using the generate accessors refactoring,
 I'm
   always adapting the generated code for the mutator:
   number: anObject
   number := anObject
   to:
   number: aNumber
  number := aNumber
   So I've adapted the refactoring code a bit so that it automatically
   generates this correctly. Anybody also thinks this is useful? If so, I
 will
   create a bug/improvement and a slice for it.
   Kind regards,
  
   Bart
   ___
   Pharo-project mailing list
   Pharo-project@lists.gforge.inria.fr
   http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
  
   ___
   Pharo-project mailing list
   Pharo-project@lists.gforge.inria.fr
   http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
  
 
 
 

 --
 Miguel Cobá
 http://miguel.leugim.com.mx


 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project




-- 
imagination is more important than knowledge - Albert Einstein
Logic will get you from A to B. Imagination will take you everywhere -
Albert Einstein
Learn from yesterday, live for today, hope for tomorrow. The important thing
is not to stop questioning. - Albert Einstein
The true sign of intelligence is not knowledge but imagination. - Albert
Einstein
However beautiful the strategy, you should occasionally look at the results.
- Sir Winston Churchill
It's not enough that we do our best; sometimes we have to do what's
required. - Sir Winston Churchill
___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Re: [Pharo-project] Compiler throws error in Gemstone, not in Pharo

2010-09-13 Thread Johan Brichau
What's the dot doing after 'aSelector' ? :-)

it's an empty statement - gs parser does not allow that

btw, I think this is a rule in code critic, so if you launch that, you will get 
all these problems before trying to load them into GS

On 13 Sep 2010, at 13:55, Stéphane Ducasse wrote:

 Yes but what is wrong on gemstone.
 
 Stef
 
 
 Dear list,
 
 while testing between Pharo and Gemstone I've noticed that Pharo allows 
 following code, while Gemstone does not.
 
 renderSelectorAndReturnBrushForSelector: aSelector.
^canvas textInput
id: (self idForSelector: aSelector);
value: (self inputValueForSelector: aSelector);
script: (canvas jQuery new datepicker);
yourself
 
 The error is that in the message definition: 
 renderSelectorAndReturnBrushForSelector: aSelector. there is a dot on the 
 end. 
 
 This seems like an error in the Pharo compiler ? or not?
 
 Kind Regards,
 
 Bart
 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
 
 
 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] One order of magnitude faster sets/dicts?!

2010-09-13 Thread Adrian Lienhard
No, they just compared to Pharo 1.1.

But the benchmarks are available in a separate package.

Adrian

On Sep 13, 2010, at 15:52 , Stéphane Ducasse wrote:

 do you know if they compare with squeak because levent did a lot of work in 
 that area.
 
 Stef
 
 On Sep 13, 2010, at 2:55 PM, Adrian Lienhard wrote:
 
 This mail is quite long as I copied it from a conversation with Toon 
 Verwaest. Toon and Camillo re-implemented hashed collections for Pinocchio 
 (http://scg.unibe.ch/research/pinocchio). Their benchmarks have shown that 
 the new implementation is significantly faster than the one in Pharo 1.1. 
 The source code is available from www.squeaksource.com/p.html (they haven't 
 set a license, but I'm pretty sure they'll release their code as MIT).
 
 I post this here to find somebody knowledgeable in the area to take a look 
 at the code and figure out whether this implementation would be interesting 
 for Pharo...
 
 Cheers,
 Adrian
 
 
 citing Toon:
 
 We ran some benchmarks on our data structures (It's in comparison with and 
 benchmarked in standard Pharo 1.1). We just add / remove integers within a 
 certain range thus always perfectly distributed making it ideal for Pharo 
 dictionaries. 
 
 The numbers show how long a certain benchmark took on average in 20 runs of 
 the benchmark and its standard deviation over those runs. A single benchmark 
 run generally consists of many individual operations on the collection in 
 question. For example:
 
 benchIncludes
  1 to: set size * 2 do: [ :i|
  set includes: i ]
 
 where the set has size 1. Evaluating this once results in a single run. 
 So the number at the top of the benchmark is the sum of all averages with 
 the average stdev.
 
 The results:
 
 PDictionary: 15.8 +/-1.7
  Do0.472 +/-0.079
  RemoveKey 0.010 +/-0.021
  AtPut 0.947 +/-0.02
  AtIfAbsentPut 1.64 +/-0.96
  AtPutExisting 0.198 +/-0.011
  KeysAndValuesDo   0.502 +/-0.09
  IncludesKey   0.365 +/-0.024
  AtPutNew  4.2 +/-1.3
  Includes  7.40 +/-0.33
 
 Dictionary: 138.2 +/-4.7
  Do0.830 +/-0.098
  RemoveKey 10.292 +/-0.077
  AtPut 0.957 +/-0.044
  AtIfAbsentPut 1.52 +/-0.95
  AtPutExisting 0.203 +/-0.011
  KeysAndValuesDo   0.850 +/-0.096
  IncludesKey   80.25 +/-0.25
  AtPutNew  3.5 +/-1.3
  Includes  39.8 +/-4.4
 
 PSet: 1.767 +/-0.057
  Remove0.008 +/-0.018
  Add   0.845 +/-0.039
  AddExisting   0.310 +/-0.021
  AddNew0.240 +/-0.021
  Includes  0.365 +/-0.024
 
 Set: 70.9 +/-1.2
  Remove7.737 +/-0.051
  Add   0.755 +/-0.022
  AddExisting   0.305 +/-0.015
  AddNew2.473 +/-0.03
  Includes  59.6 +/-1.2
 
 
 Obviously the very slight differences have to be taken with a grain of salt, 
 but whenever it's more than 10x faster it's quite unlikely that it's due to 
 some random runtime variation that might totally change in another run.
 
 An important thing for our datastructures is that they don't degrade since 
 we don't have colliding hashes; but we didn't really test that yet (although 
 it becomes obvious in some of the benchmark results such as removing of 
 elements and testing presence of elements).
 
 Is there anything special that one would neet to consider when replacing 
 the old implementation in Pharo with yours?
 
 What doesn't happen at the moment is shrinking dictionaries after they have 
 grown significantly. I wouldn't know at what point to do so either; nor do I 
 think Dictionary does that?
 
 There is a parameter indicating how many elements can be added before it 
 switches from a SmallDictionary version to a dictionary with buckets. This 
 is  set to 20 by default, and I have no idea if it makes sense to change it; 
 I didn't really profile what the optimal number is. Maybe it makes sense to 
 make that a constant in the code rather than an instance variable to save a 
 bit of space and time ...
 
 We have our own PHashedCollection subclassing from Collection; so the 
 biggest part of the hierarchy is compatible with what Pharo has. Mostly 
 while porting Pinocchio-specific stuff will have to be removed; mostly 
 annotations related to Pinocchio Primitives and exporting directives. This 
 is all straightforward though.
 
 The current ratio of hashes to elements is set to 500%. So basically when 
 you have 32 buckets it will only grow when it contains 160 elements (or 
 key-value pairs), so 5 elements per bucket on average. This seems to not 
 make it slower which is understandable since SmallDictionary is pretty fast 
 for small amounts of elements; but this ratio might have to be tweaked 
 depending on the kind of objects and is currently a parameter. The advantage 
 of using 500% is that you have A LOT less garbage.
 
 Oh, and our dictionaries do use a lot less garbage, since Pharo's 
 dictionaries use association objects for each 

Re: [Pharo-project] Improving generate accessors for refactoring browser

2010-09-13 Thread Lukas Renggli
In my image only 9% of the accessors follow this pattern.

Lukas

2010/9/13 Bart Gauquie bart.gauq...@gmail.com:
 don't use the type, i only uses the name of the parameter var to derive the
 name of parameter

 2010/9/13 Miguel Enrique Cobá Martínez miguel.c...@gmail.com

 El lun, 13-09-2010 a las 14:02 +0200, Lukas Renggli escribió:
  How you derive the type?

 I think it only uses the name of the inst var to name the parameter var
 in the accessor.

 
  From the method name? I think only very few accessors/inst-vars are
  named after the type.
 
  Also note that you can edit the type directly in the changes browser
  before you install it, that's what I typically do.
 
  Lukas
 
  2010/9/13 Mariano Martinez Peck marianop...@gmail.com:
   i would like that too
  
   On Sep 12, 2010 7:27 PM, Bart Gauquie bart.gauq...@gmail.com
   wrote:
  
   Dear list,
  
   I've noticed that when I'm using the generate accessors refactoring,
   I'm
   always adapting the generated code for the mutator:
   number: anObject
       number := anObject
   to:
   number: aNumber
      number := aNumber
   So I've adapted the refactoring code a bit so that it automatically
   generates this correctly. Anybody also thinks this is useful? If so, I
   will
   create a bug/improvement and a slice for it.
   Kind regards,
  
   Bart
   ___
   Pharo-project mailing list
   Pharo-project@lists.gforge.inria.fr
   http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
  
   ___
   Pharo-project mailing list
   Pharo-project@lists.gforge.inria.fr
   http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
  
 
 
 

 --
 Miguel Cobá
 http://miguel.leugim.com.mx


 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


 --
 imagination is more important than knowledge - Albert Einstein
 Logic will get you from A to B. Imagination will take you everywhere -
 Albert Einstein
 Learn from yesterday, live for today, hope for tomorrow. The important thing
 is not to stop questioning. - Albert Einstein
 The true sign of intelligence is not knowledge but imagination. - Albert
 Einstein
 However beautiful the strategy, you should occasionally look at the results.
 - Sir Winston Churchill
 It's not enough that we do our best; sometimes we have to do what's
 required. - Sir Winston Churchill

 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project




-- 
Lukas Renggli
www.lukas-renggli.ch

___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] Compiler throws error in Gemstone, not in Pharo

2010-09-13 Thread Lukas Renggli
 it's an empty statement - gs parser does not allow that

 btw, I think this is a rule in code critic, so if you launch that, you will 
 get all these problems before trying to load them into GS

Yes, Slime detects these kind of syntactic problems that impact portability.

Lukas

-- 
Lukas Renggli
www.lukas-renggli.ch

___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] Compiling the VM for MacOSX

2010-09-13 Thread Alexandre Bergel
Yup, much clearer now. Thanks John!

Alexandre


On 11 Sep 2010, at 19:11, John M McIntosh wrote:

 On 2010-09-11, at 7:42 AM, Alexandre Bergel wrote:
 
 If you want a fast vm i recommend to compile in deployment, but that take 
 more time.
 
 How do I compile in deployment? By inspecting the project and selecting the 
 Build tab?
 
 Ok, there is a bit of learning that has to take place since I'm going to 
 assume if you want to 
 build your own VM, then you should be familiar with XCode, otherwise you 
 should just
 use the pre-built binaries. 
 
 The Build tab you refer to lets you change the compile, link, deployment 
 settings. 
 
 In the Menu Bar the Project menu  has Set Active...  to let you choose 
 which project to build
 and the type, etc... 
 
 
 
 Cheers,
 Alexandre
 
 
 --
 ===
 John M. McIntosh john...@smalltalkconsulting.com   Twitter:  squeaker68882
 Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
 ===
 
 
 
 
 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] Improving generate accessors for refactoring browser

2010-09-13 Thread Guillermo Polito
which pattern?  I thought we were discussing about the default... :S

I think that anObject is an ugly default, yes.  I prefere to have

niceSarasa: aNiceSarasa
niceSarasa := aNiceSarasa

than

niceSarasa: anObject
niceSarasa := anObject

Obviously, these are useful only when we autogenerate the accesors :).  If I
have to modify every accesor I autogenerate, it's like not autogenerating it
:).

BTW, I never use that refactor :P.

Cheers!

On Mon, Sep 13, 2010 at 11:16 AM, Lukas Renggli reng...@gmail.com wrote:

 In my image only 9% of the accessors follow this pattern.

 Lukas

 2010/9/13 Bart Gauquie bart.gauq...@gmail.com:
  don't use the type, i only uses the name of the parameter var to derive
 the
  name of parameter
 
  2010/9/13 Miguel Enrique Cobá Martínez miguel.c...@gmail.com
 
  El lun, 13-09-2010 a las 14:02 +0200, Lukas Renggli escribió:
   How you derive the type?
 
  I think it only uses the name of the inst var to name the parameter var
  in the accessor.
 
  
   From the method name? I think only very few accessors/inst-vars are
   named after the type.
  
   Also note that you can edit the type directly in the changes browser
   before you install it, that's what I typically do.
  
   Lukas
  
   2010/9/13 Mariano Martinez Peck marianop...@gmail.com:
i would like that too
   
On Sep 12, 2010 7:27 PM, Bart Gauquie bart.gauq...@gmail.com
wrote:
   
Dear list,
   
I've noticed that when I'm using the generate accessors refactoring,
I'm
always adapting the generated code for the mutator:
number: anObject
number := anObject
to:
number: aNumber
   number := aNumber
So I've adapted the refactoring code a bit so that it automatically
generates this correctly. Anybody also thinks this is useful? If so,
 I
will
create a bug/improvement and a slice for it.
Kind regards,
   
Bart
___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
   
___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
   
  
  
  
 
  --
  Miguel Cobá
  http://miguel.leugim.com.mx
 
 
  ___
  Pharo-project mailing list
  Pharo-project@lists.gforge.inria.fr
  http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
 
 
  --
  imagination is more important than knowledge - Albert Einstein
  Logic will get you from A to B. Imagination will take you everywhere -
  Albert Einstein
  Learn from yesterday, live for today, hope for tomorrow. The important
 thing
  is not to stop questioning. - Albert Einstein
  The true sign of intelligence is not knowledge but imagination. - Albert
  Einstein
  However beautiful the strategy, you should occasionally look at the
 results.
  - Sir Winston Churchill
  It's not enough that we do our best; sometimes we have to do what's
  required. - Sir Winston Churchill
 
  ___
  Pharo-project mailing list
  Pharo-project@lists.gforge.inria.fr
  http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
 



 --
 Lukas Renggli
 www.lukas-renggli.ch

 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Re: [Pharo-project] Compiler throws error in Gemstone, not in Pharo

2010-09-13 Thread Stéphane Ducasse
ah yes

an empty statement.
Ugly we cleaned a lot of 
..
in the past I hope that Opal will fix that

On Sep 13, 2010, at 4:07 PM, Johan Brichau wrote:

 What's the dot doing after 'aSelector' ? :-)
 
 it's an empty statement - gs parser does not allow that
 
 btw, I think this is a rule in code critic, so if you launch that, you will 
 get all these problems before trying to load them into GS
 
 On 13 Sep 2010, at 13:55, Stéphane Ducasse wrote:
 
 Yes but what is wrong on gemstone.
 
 Stef
 
 
 Dear list,
 
 while testing between Pharo and Gemstone I've noticed that Pharo allows 
 following code, while Gemstone does not.
 
 renderSelectorAndReturnBrushForSelector: aSelector.
   ^canvas textInput
   id: (self idForSelector: aSelector);
   value: (self inputValueForSelector: aSelector);
   script: (canvas jQuery new datepicker);
   yourself
 
 The error is that in the message definition: 
 renderSelectorAndReturnBrushForSelector: aSelector. there is a dot on the 
 end. 
 
 This seems like an error in the Pharo compiler ? or not?
 
 Kind Regards,
 
 Bart
 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
 
 
 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
 
 
 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] [update 1.2] #12141

2010-09-13 Thread Germán Arduino
Don't load here, I get an UndefinedObject(Object)doesNotUnderstand: #format:

Cheers.


2010/9/13 Stéphane Ducasse stephane.duca...@inria.fr:
 12141
 -

 - Issue 2955:   some settings simplification + fixes. Thanks Alain Plantec

 Stef

 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project




-- 
=
Germán S. Arduino  gsa @ arsol.net   Twitter: garduino
Arduino Software  Web Hosting   http://www.arduinosoftware.com
PasswordsPro  http://www.passwordspro.com
=

___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] Fwd: [Esug-list] Live Streaming ESUG 2010

2010-09-13 Thread Gary Chambers

Nice to be able to attend vicariously!
Thanks.

Regards, Gary

- Original Message - 
From: Noury Bouraqadi bouraq...@gmail.com
To: Pharo Development pharo-project@lists.gforge.inria.fr; Squeak-dev 
developers list general-purpose Squeak 
squeak-...@lists.squeakfoundation.org; VisualWorks NC v...@cs.uiuc.edu

Sent: Monday, September 13, 2010 10:49 AM
Subject: [Pharo-project] Fwd: [Esug-list] Live Streaming ESUG 2010





Begin forwarded message:


From: Marcus Denker marcus.den...@inria.fr
Date: 13 septembre 2010 10:45:02 HAEC
To: ESUG Mailing list esug-l...@lists.esug.org
Subject: [Esug-list] Live Streaming ESUG 2019

Hi,

ESUG 2010 is streamed live:

http://eventv.projectescitilab.eu

Second room: http://eventv.projectescitilab.eu/page3/page3.html

Start of talks is announced on Twitter: http://twitter.com/esugsmalltalk


Marcus

--
Marcus Denker  -- http://www.marcusdenker.de
INRIA Lille -- Nord Europe. Team RMoD.


___
Esug-list mailing list
esug-l...@lists.esug.org
http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org


Noury @ ESUG 2010 - Barcelona :-)
---
18th International Smalltalk Joint Conference, September 13 -17 2010 
Barcelona, Spain.

http://www.esug.org/Conferences/2010




___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project 



___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] One order of magnitude faster sets/dicts?!

2010-09-13 Thread Levente Uzonyi

On Mon, 13 Sep 2010, Levente Uzonyi wrote:


On Mon, 13 Sep 2010, Adrian Lienhard wrote:

This mail is quite long as I copied it from a conversation with Toon 
Verwaest. Toon and Camillo re-implemented hashed collections for Pinocchio 
(http://scg.unibe.ch/research/pinocchio). Their benchmarks have shown that 
the new implementation is significantly faster than the one in Pharo 1.1. 
The source code is available from www.squeaksource.com/p.html (they haven't 
set a license, but I'm pretty sure they'll release their code as MIT).


I post this here to find somebody knowledgeable in the area to take a look 
at the code and figure out whether this implementation would be interesting 
for Pharo...


Cheers,
Adrian


citing Toon:

We ran some benchmarks on our data structures (It's in comparison with and 
benchmarked in standard Pharo 1.1). We just add / remove integers within a 
certain range thus always perfectly distributed making it ideal for Pharo 
dictionaries.


The numbers show how long a certain benchmark took on average in 20 runs of 
the benchmark and its standard deviation over those runs. A single 
benchmark run generally consists of many individual operations on the 
collection in question. For example:


benchIncludes
  1 to: set size * 2 do: [ :i|
  set includes: i ]

where the set has size 1. Evaluating this once results in a single run. 
So the number at the top of the benchmark is the sum of all averages with 
the average stdev.


The results:

PDictionary: 15.8 +/-1.7
  Do0.472 +/-0.079
  RemoveKey 0.010 +/-0.021
  AtPut 0.947 +/-0.02
  AtIfAbsentPut 1.64 +/-0.96
  AtPutExisting 0.198 +/-0.011
  KeysAndValuesDo   0.502 +/-0.09
  IncludesKey   0.365 +/-0.024
  AtPutNew  4.2 +/-1.3
  Includes  7.40 +/-0.33

Dictionary: 138.2 +/-4.7
  Do0.830 +/-0.098
  RemoveKey 10.292 +/-0.077
  AtPut 0.957 +/-0.044
  AtIfAbsentPut 1.52 +/-0.95
  AtPutExisting 0.203 +/-0.011
  KeysAndValuesDo   0.850 +/-0.096
  IncludesKey   80.25 +/-0.25
  AtPutNew  3.5 +/-1.3
  Includes  39.8 +/-4.4

PSet: 1.767 +/-0.057
  Remove0.008 +/-0.018
  Add   0.845 +/-0.039
  AddExisting   0.310 +/-0.021
  AddNew0.240 +/-0.021
  Includes  0.365 +/-0.024

Set: 70.9 +/-1.2
  Remove7.737 +/-0.051
  Add   0.755 +/-0.022
  AddExisting   0.305 +/-0.015
  AddNew2.473 +/-0.03
  Includes  59.6 +/-1.2


Obviously the very slight differences have to be taken with a grain of 
salt, but whenever it's more than 10x faster it's quite unlikely that it's 
due to some random runtime variation that might totally change in another 
run.


I'm a bit skeptic, because 10x improvement is pretty hard to get if the 
benchmark is not flawed and the code doesn't use VM support.


Okay, I found the benchmark code, and it's flawed. The distribution of the 
keys is not uniform. Actually it's far from uniform, it's just 1..dictSize.
Anyway I ran the benchmarks in Squeak 4.2 alpha and got the following 
results:


PBDictionary: 0.1249 +/-0.0067
RemoveKey 6.7e-500 +/-4.6e-5
AtPutNew 0.0648 +/-0.0048
Do 0.00160 +/-0.0001
AtPutExisting 0.003302 +/-0.00018
AtIfAbsentPut 0.0192 +/-0.0035
AtPut 0.015570001 +/-0.00028
IncludesKey 0.0180 +/-0.0029
KeysAndValuesDo 0.00223 +/-0.0001201
Includes 0.000133 +/-6.3e-5

PBSTDictionary: 0.2204 +/-0.0063
RemoveKey 0.07203 +/-0.00032
AtPutNew 0.0434 +/-0.0055
Do 0.00 +/-0.0
AtPutExisting 0.00260 +/-0.00013
AtIfAbsentPut 0.01193 +/-0.0002
AtPut 0.0147 +/-0.0031
IncludesKey 0.011570001 +/-0.0002401
KeysAndValuesDo 0.002200 +/-7.4e-5
Includes 0.05993 +/-0.00019

The PDictionary is only better at 2 benchmarks:
Includes (not IncludesKey!) and RemoveKey which are both rarely used. In 
all other tests Squeak's Dictionary implementation is faster in this 
flawed benchmark.



Levente



I wonder what the #pPrimitive:plugin: pragmas stand for in PDictionary's
#at:ifAbsent: and #at:put:.

Where can I find the benchmark code?



An important thing for our datastructures is that they don't degrade since 
we don't have colliding hashes; but we didn't really test that yet 
(although it becomes obvious in some of the benchmark results such as 
removing of elements and testing presence of elements).


Is there anything special that one would neet to consider when replacing 
the old implementation in Pharo with yours?


What doesn't happen at the moment is shrinking dictionaries after they have 
grown significantly. I wouldn't know at what point to do so either; nor do 
I think Dictionary does that?


The current HashedCollections don't shrink. Remove is a rarely used 
operation.




There is a parameter indicating how many elements can be added before it 
switches from a SmallDictionary version to a dictionary with buckets. This 
is  set to 20 by default, 

Re: [Pharo-project] Settings for Shout syntax highlighting

2010-09-13 Thread Schwab,Wilhelm K
I thought that too, but I was told there was a relevant style - I've never 
found it.



From: pharo-project-boun...@lists.gforge.inria.fr 
[pharo-project-boun...@lists.gforge.inria.fr] On Behalf Of Simon Denier 
[simon.den...@inria.fr]
Sent: Monday, September 13, 2010 11:24 AM
To: Pharo-project@lists.gforge.inria.fr
Subject: Re: [Pharo-project] Settings for Shout syntax highlighting

On 13 sept. 2010, at 13:06, Schwab,Wilhelm K wrote:

 Dumb question/request: background colors?  I like to choose something other 
 than white to reduce contrast.


mmm, actually I'm not sure what you mean. Shout highlights tokens in a text 
pane, I guess you don't want to change the background color for each token, but 
rather change the background for the whole editor pane. It should be a setting 
of the editor, or even a different Theme, but I can't tell much more.






 
 From: pharo-project-boun...@lists.gforge.inria.fr 
 [pharo-project-boun...@lists.gforge.inria.fr] On Behalf Of Simon Denier 
 [simon.den...@inria.fr]
 Sent: Monday, September 13, 2010 5:00 AM
 To: Pharo Development
 Cc: Simon Denier
 Subject: [Pharo-project] Settings for Shout syntax highlighting

 Hi

 A new package Settings-Shout in the Pharo Inbox for issue 
 1611http://code.google.com/p/pharo/issues/detail?id=1611

 SLICE-Issue-1611-ShoutSettings-simon_denier.1

 You can now set how (for example), instance variables, selector patterns, 
 class references appears in the Shout pane.
 One point is that Shout comes with a list of hundred token types which can be 
 individually customized, some of which I have no idea what they represent 
 (externalCallTypePointerIndicator?). To keep things manageable, I defined 
 some groups of logically related token types (like the gorup 'selector 
 patterns' for token types patternKeyword, patternBinary, patternUnary).

 Class SHGroupStyle manages settings for the Shout syntax highlighting. Token 
 types are organized in logical groups which will share the same style. 
 Currently, only color and emphasis can be edited through Shout settings. Text 
 font and size are managed through the more general appearance setting. 
 Changing a style setting on a SHGroupStyle automatically applies the style.

 Groups are defined in the class-side method initializeGroups. Alternatively, 
 one can set its own style table using Shout tokens by calling 
 #customStyleTable (see SHTextStylerST80 classdefaultStyleTable for the 
 format).


 Help needed:
 1) code review
 2) review group definition, because I made some groups based partly on my 
 intuition, partly on styling difference in the current difference: there may 
 be a better partition of token types.
 3) review description for group, setting organization...


 Thanks to Alain for helping with settings and especially polymorph widgets.

 --
 Simon




 ___
 Pharo-project mailing list
 Pharo-project@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

--
 Simon




___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] About CodeMorph and Styler dependency

2010-09-13 Thread Sean P. DeNigris


Stéphane Ducasse wrote:
 
 Name: Morphic-FernandoOlivero.589
 Rethought the CodeMorph class hierarchy, removed the subclasses and added
 CodeMorph class methods for creatingMethodMorph and
 ClassDefinitionMorph 
 Fixed now.
 

CodeMorph is still broken in 1.2-12123.  There doesn't seem to be a way to
accept changes to the code.  There is the orange unsaved triangle, but
cmd-s (Mac) and self accept do not save the edits.

Try:
m := CodeMorph codeOf:  ( Object  Object selectors anyOne ).
m
openInWorld;
borderWidth: 10;
margin:10;
borderColor: Color lightGray;
fitToParagraph;
width: 300.

Sean
-- 
View this message in context: 
http://forum.world.st/TextEditor-and-NewTextMorph-merges-and-fixes-tp2219629p2538214.html
Sent from the Pharo Smalltalk mailing list archive at Nabble.com.

___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

[Pharo-project] Extension Methods

2010-09-13 Thread DeNigris Sean
Extension methods showing up as *[PackageName] is an ugly hack!!  It is an 
implementation detail (in this context) that probably should be first class (as 
a package name somewhere else), but definitely shouldn't be displayed to the 
user here :(

How about if *[PackageName]-[method category] showed up in the browser as:
Category (in the category pane): [method category]
Method name (in the right pane): [method name] (*[PackageName])

This way, since categories would cease to be hijacked, the methods would show 
up in their correct logical category, and it would still be clear that they 
were in a different package.  Ideally, the dialogs to change the 
package/category would reflect this model, but changing the browsers would be a 
good start.

From ESUG
Sean
___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


Re: [Pharo-project] [squeak-dev] Re: Squeak VM on iPad/IPhone gets open/GL rendering

2010-09-13 Thread John M McIntosh
I figured out we can't reasonably do open/GL arbitrary sized textures on the 
first gen iPhone or  iPod Touch. 
So I check for iOS 3.1.x and fall back to using the CALayer render, the wonders 
of polymorphism.  

I also commented out some of the nifty eToys on the iPad features lurking in 
the VM, like rotate me to get a keyboard, 
and also checked and confirmed that rotation of both types of renders with the 
view as a plain view or 
embedded in a scrolling view worked as expected. 

At this point I'm somewhat done the open/GL optimization.

The implementation is to:

Ccreate a texture and populate via glTexImage2D using apple's extension 
APPLE_texture_2D_limited_npot
at view surface creation time. 

Then on a ioForceDisplayUpdate (implicit or explicit) we take the union of the 
rectangles observed 
in ioShowDisplayOnWindow and then use the  

 glTexSubImage2D 

to push the bytes one row at a time by calculating the offset into the bytes 
found in the Display special object,
the texture then is drawn to the screen. I note we create the full sized 
glTexImage2D only once at startup time. 

An alternate choice was to use kEAGLDrawablePropertyRetainedBacking=YES and set 
the 
glTexImage2D  glTexSubImage2D pair for each ioForceDisplayUpdate using the 
subrectangle.
But I found the Open/GL fps had a lot of jitter, so it seemed less animation 
friendly than creating the 
glTexImage2D once and doing  the glTexSubImage2D on each ioForceDisplayUpdate.

Someone mutters, GL_FRAMEBUFFER_OES but at this point someone can pay me to 
explore faster
alternatives.

--
===
John M. McIntosh john...@smalltalkconsulting.com   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===






smime.p7s
Description: S/MIME cryptographic signature
___
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project