Re: [Pharo-dev] WhatsUp from: 2013-11-04 until: 2013-11-17

2013-11-04 Thread Camillo Bruni

On 2013-11-04, at 07:00, seas...@rmod.lille.inria.fr wrote:

 Hi! We're sending this automatic email twice a month, to give the community 
 an opportunity to easily know what's happening and to coordinate efforts.  
 Just answer informally, and feel free to spawn discussions thereafter!
 
 ### Here's what I've been up to since the last WhatsUp:

Automatic Issue Validation:
---
stable release ahead, 1 failing test left (only under headless linux):
- fancy twitter bootstrap based reports
- simplified command line reporter
- exceptions are reported with stack traces
- merge conflicts are listed in detail with a diff
- lint rules are shown with their descriptions and the list of problematic 
elements (methods / classes)
- test failures still need some more love (missing stack trace for example)

ImageWorker:

To make the issue validation work, we have to run blocks in a separate image. 
For instance to load a slice, we do not want to pollute the main image, since 
we cannot guarantee anything. The ImageWorker takes care of this and spawns a 
new image with OSProcess:

ImageWorker do: [ ... ]

Additionally, if an error happens in the remote image, the error is passed back 
to the main image and resignaled locally:

ImageWorker do: [ 1/0 ]

This allows for a very natural interaction, as the remotely evaluated blocks 
behave almost like local ones.


signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: [Pharo-dev] Feature request poll

2013-11-04 Thread Camillo Bruni

On 2013-11-04, at 08:56, Norbert Hartl norb...@hartl.name wrote:

 
 
 Am 04.11.2013 um 00:26 schrieb Yuriy Tymchuk yuriy.tymc...@me.com:
 
 Hi everyone,
 
 I’ve just got an idea (not something extra ordinary) to try out. Maybe we 
 can make some kind of poll where community will be able to add new feature 
 requests and vote for them. This way we can get an idea what is important to 
 most of people. Eg. see how many votes are for the stateful traits and how 
 many for the ability to quit image without prompt for saving. After writing 
 last sentence I’ve figured out that it’s a good idea to be able also to vote 
 down :)
 
 But I think that this can be a nice experiment. Also as we are promoting and 
 idea that “Pharo is made by you”, then new feature poll is nice to have.
 
 I have this gut feeling there should something around three levels of 
 acknowledgement:
 
 - I like it
 - I need it really
 - I like or need it and will spend time doing it

yes, the I am willing to contribute is important!



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: [Pharo-dev] Feature request poll

2013-11-04 Thread Sven Van Caekenberghe

On 04 Nov 2013, at 09:04, Camillo Bruni camillobr...@gmail.com wrote:

 
 On 2013-11-04, at 08:56, Norbert Hartl norb...@hartl.name wrote:
 
 
 
 Am 04.11.2013 um 00:26 schrieb Yuriy Tymchuk yuriy.tymc...@me.com:
 
 Hi everyone,
 
 I’ve just got an idea (not something extra ordinary) to try out. Maybe we 
 can make some kind of poll where community will be able to add new feature 
 requests and vote for them. This way we can get an idea what is important 
 to most of people. Eg. see how many votes are for the stateful traits and 
 how many for the ability to quit image without prompt for saving. After 
 writing last sentence I’ve figured out that it’s a good idea to be able 
 also to vote down :)
 
 But I think that this can be a nice experiment. Also as we are promoting 
 and idea that “Pharo is made by you”, then new feature poll is nice to have.
 
 I have this gut feeling there should something around three levels of 
 acknowledgement:
 
 - I like it
 - I need it really
 - I like or need it and will spend time doing it
 
 yes, the I am willing to contribute is important!

or even, “I am willing to pay




Re: [Pharo-dev] Feature request poll

2013-11-04 Thread Yuriy Tymchuk
I think that if we want to have it, we have to make something simple with an 
option to create ideas and simple voting. If it will be used then we can extend 
it.

Uko

On 04 Nov 2013, at 09:15, Sven Van Caekenberghe s...@stfx.eu wrote:

 
 On 04 Nov 2013, at 09:04, Camillo Bruni camillobr...@gmail.com wrote:
 
 
 On 2013-11-04, at 08:56, Norbert Hartl norb...@hartl.name wrote:
 
 
 
 Am 04.11.2013 um 00:26 schrieb Yuriy Tymchuk yuriy.tymc...@me.com:
 
 Hi everyone,
 
 I’ve just got an idea (not something extra ordinary) to try out. Maybe we 
 can make some kind of poll where community will be able to add new feature 
 requests and vote for them. This way we can get an idea what is important 
 to most of people. Eg. see how many votes are for the stateful traits and 
 how many for the ability to quit image without prompt for saving. After 
 writing last sentence I’ve figured out that it’s a good idea to be able 
 also to vote down :)
 
 But I think that this can be a nice experiment. Also as we are promoting 
 and idea that “Pharo is made by you”, then new feature poll is nice to 
 have.
 
 I have this gut feeling there should something around three levels of 
 acknowledgement:
 
 - I like it
 - I need it really
 - I like or need it and will spend time doing it
 
 yes, the I am willing to contribute is important!
 
 or even, “I am willing to pay
 
 




Re: [Pharo-dev] Feature request poll

2013-11-04 Thread Norbert Hartl


 Am 04.11.2013 um 09:15 schrieb Sven Van Caekenberghe s...@stfx.eu:
 
 
 On 04 Nov 2013, at 09:04, Camillo Bruni camillobr...@gmail.com wrote:
 
 
 On 2013-11-04, at 08:56, Norbert Hartl norb...@hartl.name wrote:
 
 
 
 Am 04.11.2013 um 00:26 schrieb Yuriy Tymchuk yuriy.tymc...@me.com:
 
 Hi everyone,
 
 I’ve just got an idea (not something extra ordinary) to try out. Maybe we 
 can make some kind of poll where community will be able to add new feature 
 requests and vote for them. This way we can get an idea what is important 
 to most of people. Eg. see how many votes are for the stateful traits and 
 how many for the ability to quit image without prompt for saving. After 
 writing last sentence I’ve figured out that it’s a good idea to be able 
 also to vote down :)
 
 But I think that this can be a nice experiment. Also as we are promoting 
 and idea that “Pharo is made by you”, then new feature poll is nice to 
 have.
 
 I have this gut feeling there should something around three levels of 
 acknowledgement:
 
 - I like it
 - I need it really
 - I like or need it and will spend time doing it
 
 yes, the I am willing to contribute is important!
 
 or even, “I am willing to pay
 
+1

Gets more important every day as I don't find time for contributing.

Norbert


[Pharo-dev] [pharo-project/pharo-core] b9350c: 30546

2013-11-04 Thread GitHub
  Branch: refs/heads/3.0
  Home:   https://github.com/pharo-project/pharo-core
  Commit: b9350cb501d63bc764ddf6ac110d7f53977a798a
  
https://github.com/pharo-project/pharo-core/commit/b9350cb501d63bc764ddf6ac110d7f53977a798a
  Author: Jenkins Build Server bo...@pharo-project.org
  Date:   2013-11-04 (Mon, 04 Nov 2013)

  Changed paths:
M Fuel.package/extension/LargeNegativeInteger/instance/fuelAccept_.st
M 
HudsonBuildTools20.package/HDTestReport.class/instance/private/beginTestCase_time_.st
M 
HudsonBuildTools20.package/HDTestReport.class/instance/private/endTestCase.st
M 
HudsonBuildTools20.package/HDTestReport.class/instance/private/stackTraceString_of_.st
M 
HudsonBuildTools20.package/HDTestReport.class/instance/private/writeError_stack_.st
M 
HudsonBuildTools20.package/HDTestReport.class/instance/private/writeFailure_stack_.st
M HudsonBuildTools20.package/HDTestReport.class/instance/running/setUp.st
M HudsonBuildTools20.package/HDTestReport.class/instance/running/tearDown.st
M 
Morphic-Base.package/TextAnchor.class/instance/visiting/emphasizeScanner_.st
A ScriptLoader30.package/ScriptLoader.class/instance/pharo - 
scripts/script201.st
A ScriptLoader30.package/ScriptLoader.class/instance/pharo - 
updates/update30546.st
M 
ScriptLoader30.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st

  Log Message:
  ---
  30546
12052 Fuel could store LargeNegativeInteger up to 32bits magnitude
https://pharo.fogbugz.com/f/cases/12052

12067 A TextAnchor should never try to placeEmbeddedObject: by itself
https://pharo.fogbugz.com/f/cases/12067

11906 HDTestReport measures the wrong duration
https://pharo.fogbugz.com/f/cases/11906

http://files.pharo.org/image/30/30546.zip





[Pharo-dev] [pharo-project/pharo-core]

2013-11-04 Thread GitHub
  Branch: refs/tags/30546
  Home:   https://github.com/pharo-project/pharo-core



Re: [Pharo-dev] Feature request poll

2013-11-04 Thread Norbert Hartl
I don't think our community ever lacked of ideas. It is primarily 
time/contributed work that is missing. It is too easy to have a quick opinion 
that is based only on my current mood. Should these guide the future 
development of pharo? That could do more harm than it helps.
Nevertheless nice idea ;)

Norbert

 Am 04.11.2013 um 09:19 schrieb Yuriy Tymchuk yuriy.tymc...@me.com:
 
 I think that if we want to have it, we have to make something simple with an 
 option to create ideas and simple voting. If it will be used then we can 
 extend it.
 
 Uko
 
 On 04 Nov 2013, at 09:15, Sven Van Caekenberghe s...@stfx.eu wrote:
 
 
 On 04 Nov 2013, at 09:04, Camillo Bruni camillobr...@gmail.com wrote:
 
 
 On 2013-11-04, at 08:56, Norbert Hartl norb...@hartl.name wrote:
 
 
 
 Am 04.11.2013 um 00:26 schrieb Yuriy Tymchuk yuriy.tymc...@me.com:
 
 Hi everyone,
 
 I’ve just got an idea (not something extra ordinary) to try out. Maybe we 
 can make some kind of poll where community will be able to add new 
 feature requests and vote for them. This way we can get an idea what is 
 important to most of people. Eg. see how many votes are for the stateful 
 traits and how many for the ability to quit image without prompt for 
 saving. After writing last sentence I’ve figured out that it’s a good 
 idea to be able also to vote down :)
 
 But I think that this can be a nice experiment. Also as we are promoting 
 and idea that “Pharo is made by you”, then new feature poll is nice to 
 have.
 
 I have this gut feeling there should something around three levels of 
 acknowledgement:
 
 - I like it
 - I need it really
 - I like or need it and will spend time doing it
 
 yes, the I am willing to contribute is important!
 
 or even, “I am willing to pay
 
 



Re: [Pharo-dev] Feature request poll

2013-11-04 Thread Yuriy Tymchuk

On 04 Nov 2013, at 09:41, Norbert Hartl norb...@hartl.name wrote:

 I don't think our community ever lacked of ideas. It is primarily 
 time/contributed work that is missing.
I think that you are right on this. That’s why I think we need this ideas 
portal. So all the ideas are collected in one place and you can spot and when 
someone has time to contribute ha can check what ideas have the most amount of 
votes, etc…

Uko

 It is too easy to have a quick opinion that is based only on my current mood. 
 Should these guide the future development of pharo? That could do more harm 
 than it helps.
 Nevertheless nice idea ;)
 
 Norbert
 
 Am 04.11.2013 um 09:19 schrieb Yuriy Tymchuk yuriy.tymc...@me.com:
 
 I think that if we want to have it, we have to make something simple with an 
 option to create ideas and simple voting. If it will be used then we can 
 extend it.
 
 Uko
 
 On 04 Nov 2013, at 09:15, Sven Van Caekenberghe s...@stfx.eu wrote:
 
 
 On 04 Nov 2013, at 09:04, Camillo Bruni camillobr...@gmail.com wrote:
 
 
 On 2013-11-04, at 08:56, Norbert Hartl norb...@hartl.name wrote:
 
 
 
 Am 04.11.2013 um 00:26 schrieb Yuriy Tymchuk yuriy.tymc...@me.com:
 
 Hi everyone,
 
 I’ve just got an idea (not something extra ordinary) to try out. Maybe 
 we can make some kind of poll where community will be able to add new 
 feature requests and vote for them. This way we can get an idea what is 
 important to most of people. Eg. see how many votes are for the stateful 
 traits and how many for the ability to quit image without prompt for 
 saving. After writing last sentence I’ve figured out that it’s a good 
 idea to be able also to vote down :)
 
 But I think that this can be a nice experiment. Also as we are promoting 
 and idea that “Pharo is made by you”, then new feature poll is nice to 
 have.
 
 I have this gut feeling there should something around three levels of 
 acknowledgement:
 
 - I like it
 - I need it really
 - I like or need it and will spend time doing it
 
 yes, the I am willing to contribute is important!
 
 or even, “I am willing to pay
 
 
 




Re: [Pharo-dev] WhatsUp from: 2013-11-04 until: 2013-11-17

2013-11-04 Thread Stephan Eggermont
Hi! We're sending this automatic email twice a month, to give the community an 
opportunity to easily know what's happening and to coordinate efforts.  Just 
answer informally, and feel free to spawn discussions thereafter! 

### Here's what I've been up to since the last WhatsUp: 

Put out CFP for FOSDEM2014 devroom

Lots of improvements to PetitDelphi
http://www.flickr.com/photos/35787002@N03/sets/72157634356004836/

First step in making QCMagritte use new Bootstrap

### What's next, until 2013-11-17 (*): 

Handling of compiler directives for PetitDelphi, first ifdefs and includes
Still a lot of parse errors to fix

Diego  Stephan


Re: [Pharo-dev] Github and Pharo

2013-11-04 Thread kilon alios
I can document this , but not before I get really familiar with the
process. Also I have not forgotten my promise to document Nativeboost,
expect a blog post about that really soon.

I tried to use this in windows and I get a failure

ExternalWindowsOSProcess class(Object)doesNotUnderstand: #defaultShellPath
PipeableOSProcess
classcommand:environment:workingDir:input:output:error:errorPipelineStream:shellSyntax:
PipeableOSProcess
classcommand:environment:workingDir:input:output:error:errorPipelineStream:
PipeableOSProcess classcommand:
MCFileTreeGitRepositorygitVersions
MCFileTreeGitRepositoryloadAncestry
MCFileTreeGitRepositoryloadAllFileNames in Block: [ :bar | ...
BlockClosurecull:
Jobrun in Block: [ result := block cull: self ]
BlockClosureon:do:
Jobrun in Block: [ ...
BlockClosureensure:
Jobrun
MorphicUIManager(UIManager)displayProgress:from:to:during:
ByteString(String)displayProgressFrom:to:during:
MCFileTreeGitRepositoryloadAllFileNames
MCFileTreeGitRepositoryallFileNames
MCFileTreeGitRepositoryreadableFileNames
MCFileTreeGitRepositorypackageDescriptionsFromReadableFileNames
MCFileTreeGitRepository(MCFileBasedRepository)retrieveVersionsWithPackageNames:
MCFileTreeGitRepositoryInspector(MCFileRepositoryInspector)refresh
MCFileTreeGitRepositoryInspector(MCFileRepositoryInspector)setRepository:workingCopy:
in Block: [ ...
BlockClosurenewProcess in Block: [ ...

I have loaded both OSProcess and OSWindows , are there other dependencies
on Windows I need to load ?




On Mon, Nov 4, 2013 at 6:46 AM, Tudor Girba tu...@tudorgirba.com wrote:

 Exactly. This would be a valuable contribution. Screencasts would be very
 helpful as well.

 Doru




 On Mon, Nov 4, 2013 at 12:04 AM, Stéphane Ducasse 
 stephane.duca...@inria.fr wrote:

 one of you should write a blog entry on Git support and the process :)
 Because we will get this repeat that often.

 Stef



 On Nov 3, 2013, at 2:11 PM, kilon alios kilon.al...@gmail.com wrote:

 ok it was my bad, i had not correctly initialized my git repo. Now it
 works fine. Thanks for the help this awesome.


 On Sun, Nov 3, 2013 at 2:56 PM, kilon alios kilon.al...@gmail.comwrote:

 I installed OSProcess but I get a new Error : Git Error : bad default
 revision 'Head'

 just to clarify i try to commit to an existing git repo that I have
 create manually via terminal.


 MCFileTreeGitRepository(Object)error:
 MCFileTreeGitRepositorygitVersions
 MCFileTreeGitRepositoryloadAncestry
 MCFileTreeGitRepositoryloadAllFileNames in Block: [ :bar | ...
 BlockClosurecull:
 Jobrun in Block: [ result := block cull: self ]
 BlockClosureon:do:
 Jobrun in Block: [ ...
 BlockClosureensure:
 Jobrun
 MorphicUIManager(UIManager)displayProgress:from:to:during:
 ByteString(String)displayProgressFrom:to:during:
 MCFileTreeGitRepositoryloadAllFileNames
 MCFileTreeGitRepositoryallFileNames
 MCFileTreeGitRepositoryreadableFileNames

 MCFileTreeGitRepository(MCFileTreeRepository)allFileNamesForVersionNamed:
 MCFileTreeGitRepository(MCDirectoryRepository)includesVersionNamed:
 MCWorkingCopyuniqueVersionNameIn: in Block: [ ...
 BlockClosurecull:
 Jobrun in Block: [ result := block cull: self ]
 BlockClosureon:do:
 Jobrun in Block: [ ...
 BlockClosureensure:
 Jobrun
 MorphicUIManager(UIManager)displayProgress:from:to:during:
 ByteString(String)displayProgressFrom:to:during:
 MCWorkingCopyuniqueVersionNameIn:
 MCWorkingCopynewVersionIn:
 MCWorkingCopyBrowserbasicSaveVersionIn: in Block: [ ...
 WorldStaterunStepMethodsIn:



 On Sun, Nov 3, 2013 at 2:40 PM, GOUBIER Thierry 
 thierry.goub...@cea.frwrote:

  Oh sorry, the OSProcess dependency is missing :(

 You can install OSProcess from the configuration browser in your Pharo
 image or, on the command line :

 $ pharo Pharo.image config
 http://ss3.gemstone.com/ss/MetaRepoForPharo20 ConfigurationOfOSProcess
 --install=stable

 Thierry

  --
 *De :* Pharo-dev [pharo-dev-boun...@lists.pharo.org] de la part de
 kilon alios [kilon.al...@gmail.com]
 *Date d'envoi :* dimanche 3 novembre 2013 13:30

 *À :* Pharo Development List
 *Objet :* Re: [Pharo-dev] Github and Pharo

   look like it cant find PipeableOSProcess on Macos, any idea where I
 can find this object ?

  UndefinedObject(Object)doesNotUnderstand: #command:
 MCFileTreeGitRepositorygitVersions
 MCFileTreeGitRepositoryloadAncestry
 MCFileTreeGitRepositoryloadAllFileNames in Block: [ :bar | ...
 BlockClosurecull:
 Jobrun in Block: [ result := block cull: self ]
 BlockClosureon:do:
 Jobrun in Block: [ ...
 BlockClosureensure:
 Jobrun
 MorphicUIManager(UIManager)displayProgress:from:to:during:
 ByteString(String)displayProgressFrom:to:during:
 MCFileTreeGitRepositoryloadAllFileNames
 MCFileTreeGitRepositoryallFileNames
 MCFileTreeGitRepositoryreadableFileNames

 MCFileTreeGitRepository(MCFileTreeRepository)allFileNamesForVersionNamed:
 MCFileTreeGitRepository(MCDirectoryRepository)includesVersionNamed:
 MCWorkingCopyuniqueVersionNameIn: in Block: [ ...
 BlockClosurecull:
 

Re: [Pharo-dev] Github and Pharo

2013-11-04 Thread Goubier Thierry

Hi Stef,

I don't have a blog ;) yet. But yes, I think I should write things up.

Thierry

Le 04/11/2013 00:04, Stéphane Ducasse a écrit :

one of you should write a blog entry on Git support and the process :)
Because we will get this repeat that often.

Stef


On Nov 3, 2013, at 2:11 PM, kilon alios kilon.al...@gmail.com
mailto:kilon.al...@gmail.com wrote:


ok it was my bad, i had not correctly initialized my git repo. Now it
works fine. Thanks for the help this awesome.


On Sun, Nov 3, 2013 at 2:56 PM, kilon alios kilon.al...@gmail.com
mailto:kilon.al...@gmail.com wrote:

I installed OSProcess but I get a new Error : Git Error : bad
default revision 'Head'

just to clarify i try to commit to an existing git repo that I
have create manually via terminal.


MCFileTreeGitRepository(Object)error:
MCFileTreeGitRepositorygitVersions
MCFileTreeGitRepositoryloadAncestry
MCFileTreeGitRepositoryloadAllFileNames in Block: [ :bar | ...
BlockClosurecull:
Jobrun in Block: [ result := block cull: self ]
BlockClosureon:do:
Jobrun in Block: [ ...
BlockClosureensure:
Jobrun
MorphicUIManager(UIManager)displayProgress:from:to:during:
ByteString(String)displayProgressFrom:to:during:
MCFileTreeGitRepositoryloadAllFileNames
MCFileTreeGitRepositoryallFileNames
MCFileTreeGitRepositoryreadableFileNames
MCFileTreeGitRepository(MCFileTreeRepository)allFileNamesForVersionNamed:
MCFileTreeGitRepository(MCDirectoryRepository)includesVersionNamed:
MCWorkingCopyuniqueVersionNameIn: in Block: [ ...
BlockClosurecull:
Jobrun in Block: [ result := block cull: self ]
BlockClosureon:do:
Jobrun in Block: [ ...
BlockClosureensure:
Jobrun
MorphicUIManager(UIManager)displayProgress:from:to:during:
ByteString(String)displayProgressFrom:to:during:
MCWorkingCopyuniqueVersionNameIn:
MCWorkingCopynewVersionIn:
MCWorkingCopyBrowserbasicSaveVersionIn: in Block: [ ...
WorldStaterunStepMethodsIn:



On Sun, Nov 3, 2013 at 2:40 PM, GOUBIER Thierry
thierry.goub...@cea.fr mailto:thierry.goub...@cea.fr wrote:

Oh sorry, the OSProcess dependency is missing :(

You can install OSProcess from the configuration browser in
your Pharo image or, on the command line :

$ pharo Pharo.image config
http://ss3.gemstone.com/ss/MetaRepoForPharo20
ConfigurationOfOSProcess --install=stable

Thierry


*De :* Pharo-dev [pharo-dev-boun...@lists.pharo.org
mailto:pharo-dev-boun...@lists.pharo.org] de la part de
kilon alios [kilon.al...@gmail.com mailto:kilon.al...@gmail.com]
*Date d'envoi :* dimanche 3 novembre 2013 13:30

*À :* Pharo Development List
*Objet :* Re: [Pharo-dev] Github and Pharo

look like it cant find PipeableOSProcess on Macos, any idea
where I can find this object ?

UndefinedObject(Object)doesNotUnderstand: #command:
MCFileTreeGitRepositorygitVersions
MCFileTreeGitRepositoryloadAncestry
MCFileTreeGitRepositoryloadAllFileNames in Block: [ :bar | ...
BlockClosurecull:
Jobrun in Block: [ result := block cull: self ]
BlockClosureon:do:
Jobrun in Block: [ ...
BlockClosureensure:
Jobrun
MorphicUIManager(UIManager)displayProgress:from:to:during:
ByteString(String)displayProgressFrom:to:during:
MCFileTreeGitRepositoryloadAllFileNames
MCFileTreeGitRepositoryallFileNames
MCFileTreeGitRepositoryreadableFileNames

MCFileTreeGitRepository(MCFileTreeRepository)allFileNamesForVersionNamed:
MCFileTreeGitRepository(MCDirectoryRepository)includesVersionNamed:
MCWorkingCopyuniqueVersionNameIn: in Block: [ ...
BlockClosurecull:
Jobrun in Block: [ result := block cull: self ]
BlockClosureon:do:
Jobrun in Block: [ ...
BlockClosureensure:
Jobrun
MorphicUIManager(UIManager)displayProgress:from:to:during:
ByteString(String)displayProgressFrom:to:during:
MCWorkingCopyuniqueVersionNameIn:
MCWorkingCopynewVersionIn:
MCWorkingCopyBrowserbasicSaveVersionIn: in Block: [ ...
WorldStaterunStepMethodsIn:



On Sun, Nov 3, 2013 at 12:41 PM, GOUBIER Thierry
thierry.goub...@cea.fr mailto:thierry.goub...@cea.fr wrote:

This is where you use GitFileTree.

GitFileTree will do you the commit, browsing the git logs
and accessing all versions of your package in the git repo
(browsing, loading, changes with the same GUI and look as
a smalltalkhub repo). It won't do the push, however(*). It
will show you the current branch in the repo too (**).

For pharo3, GitFileTree is available with:

$ pharo Pharo.image eval 

Re: [Pharo-dev] Peek

2013-11-04 Thread Sven Van Caekenberghe
Hi Diego,

Streams as they are currently defined, especially ReadStreams, can hardly be 
called IO streams. Many operations assume that there is a single collection 
over which you can move in any direction without restrictions. As a consequence 
most parsing code relies this ability, looking forward and going back multiple 
times, like using #skip: with a negative argument.

Real IO ReadStreams like a SocketStreams or FileStreams cannot be assumed to 
keep more than just a buffer in memory, hence the unrestricted operations are 
not implementable.

IMO, parsing code should be written against a much more restricted API, 
assuming at most a one element peek/buffer. I always try to do that, I even 
have Mock ReadStreams that ensure this.

While benchmarking I have also found that slow #peek behaviour can be a 
bottleneck, especially on some of the more complex streams.

Sven

PS: Have a look at ZnCharacterReadStream for example, which implements this 
restricted behaviour: it is not positionable, but allows a one character peek 
using a one character internal buffer.

On 04 Nov 2013, at 09:57, Diego Lont diego.l...@delware.nl wrote:

 Working on Petit Delphi we found a strange implementation for asPetitStream:
 StreamasPetitStream
   ^ self contents asPetitStream
 
 Further investigation showed that the basic peek was not fast enough for 
 Petit Parser, as it is used a lot. So it implemented a improved unchecked 
 peek:
 PPStreampeek
   An improved version of peek, that is slightly faster than the built in 
 version.
   ^ self atEnd ifFalse: [ collection at: position + 1 ]
 
 PPStreamuncheckedPeek
   An unchecked version of peek that throws an error if we try to peek 
 over the end of the stream, even faster than #peek.
   ^ collection at: position + 1
 
 But in my knowledge a basic peek should be fast. The real problem is the peek 
 in the underlying peek:
 PositionableStreampeek
   Answer what would be returned if the message next were sent to the 
   receiver. If the receiver is at the end, answer nil.
 
   | nextObject |
   self atEnd ifTrue: [^nil].
   nextObject := self next.
   position := position - 1.
   ^nextObject
 
 That actually uses self next. The least thing one should do is to cache the 
 next object. But isn't there a primitive for peek in a file stream? Because 
 al overriding peeks of PositionableStream have basically the same 
 implementation: reading the next and restoring the state to before the peek 
 (that is slow). So we would like to be able to remove PPStream without 
 causing performance issues, as the only added method is the improved peek.
 
 Stephan and Diego




Re: [Pharo-dev] Github and Pharo

2013-11-04 Thread kilon alios
I added the missing method to the class, adjusting it with the 'c:\' system
path, unfortunately now it complains that File pipeWriter is closed. So it
looks like it will need a more a careful look to make this work on windows.
Will try to examine closer.


On Mon, Nov 4, 2013 at 12:05 PM, Goubier Thierry thierry.goub...@cea.frwrote:


 So far, from what I see, this is an OSProcess issue when under Windows, so
 it's a bit unfamiliar territory to me.

 The design of MonticelloFileTree-Git is to call the 'git' command line to
 do things, and it rely on OSProcess to provide the primitive. This was by
 far the fastest way to get things done :)

 Thierry

 Le 04/11/2013 10:49, kilon alios a écrit :

 I can document this , but not before I get really familiar with the
 process. Also I have not forgotten my promise to document Nativeboost,
 expect a blog post about that really soon.

 I tried to use this in windows and I get a failure

 ExternalWindowsOSProcess class(Object)doesNotUnderstand:
 #defaultShellPath
 PipeableOSProcess
 classcommand:environment:workingDir:input:output:error:
 errorPipelineStream:shellSyntax:
 PipeableOSProcess
 classcommand:environment:workingDir:input:output:error:
 errorPipelineStream:
 PipeableOSProcess classcommand:
 MCFileTreeGitRepositorygitVersions
 MCFileTreeGitRepositoryloadAncestry
 MCFileTreeGitRepositoryloadAllFileNames in Block: [ :bar | ...
 BlockClosurecull:
 Jobrun in Block: [ result := block cull: self ]
 BlockClosureon:do:
 Jobrun in Block: [ ...
 BlockClosureensure:
 Jobrun
 MorphicUIManager(UIManager)displayProgress:from:to:during:
 ByteString(String)displayProgressFrom:to:during:
 MCFileTreeGitRepositoryloadAllFileNames
 MCFileTreeGitRepositoryallFileNames
 MCFileTreeGitRepositoryreadableFileNames
 MCFileTreeGitRepositorypackageDescriptionsFromReadableFileNames
 MCFileTreeGitRepository(MCFileBasedRepository)
 retrieveVersionsWithPackageNames:
 MCFileTreeGitRepositoryInspector(MCFileRepositoryInspector)refresh
 MCFileTreeGitRepositoryInspector(MCFileRepositoryInspector)
 setRepository:workingCopy:
 in Block: [ ...
 BlockClosurenewProcess in Block: [ ...

 I have loaded both OSProcess and OSWindows , are there other
 dependencies on Windows I need to load ?



 On Mon, Nov 4, 2013 at 6:46 AM, Tudor Girba tu...@tudorgirba.com
 mailto:tu...@tudorgirba.com wrote:

 Exactly. This would be a valuable contribution. Screencasts would be
 very helpful as well.

 Doru




 On Mon, Nov 4, 2013 at 12:04 AM, Stéphane Ducasse
 stephane.duca...@inria.fr mailto:stephane.duca...@inria.fr wrote:

 one of you should write a blog entry on Git support and the
 process :)
 Because we will get this repeat that often.

 Stef



 On Nov 3, 2013, at 2:11 PM, kilon alios kilon.al...@gmail.com
 mailto:kilon.al...@gmail.com wrote:

  ok it was my bad, i had not correctly initialized my git repo.
 Now it works fine. Thanks for the help this awesome.


 On Sun, Nov 3, 2013 at 2:56 PM, kilon alios
 kilon.al...@gmail.com mailto:kilon.al...@gmail.com wrote:

 I installed OSProcess but I get a new Error : Git Error :
 bad default revision 'Head'

 just to clarify i try to commit to an existing git repo
 that I have create manually via terminal.


 MCFileTreeGitRepository(Object)error:
 MCFileTreeGitRepositorygitVersions
 MCFileTreeGitRepositoryloadAncestry
 MCFileTreeGitRepositoryloadAllFileNames in Block: [ :bar
 | ...
 BlockClosurecull:
 Jobrun in Block: [ result := block cull: self ]
 BlockClosureon:do:
 Jobrun in Block: [ ...
 BlockClosureensure:
 Jobrun
 MorphicUIManager(UIManager)displayProgress:from:to:during:
 ByteString(String)displayProgressFrom:to:during:
 MCFileTreeGitRepositoryloadAllFileNames
 MCFileTreeGitRepositoryallFileNames
 MCFileTreeGitRepositoryreadableFileNames
 MCFileTreeGitRepository(MCFileTreeRepository)
 allFileNamesForVersionNamed:
 MCFileTreeGitRepository(MCDirectoryRepository)
 includesVersionNamed:
 MCWorkingCopyuniqueVersionNameIn: in Block: [ ...
 BlockClosurecull:
 Jobrun in Block: [ result := block cull: self ]
 BlockClosureon:do:
 Jobrun in Block: [ ...
 BlockClosureensure:
 Jobrun
 MorphicUIManager(UIManager)displayProgress:from:to:during:
 ByteString(String)displayProgressFrom:to:during:
 MCWorkingCopyuniqueVersionNameIn:
 MCWorkingCopynewVersionIn:
 MCWorkingCopyBrowserbasicSaveVersionIn: in Block: [ ...
 WorldStaterunStepMethodsIn:



 On Sun, Nov 3, 2013 at 2:40 PM, GOUBIER Thierry
 thierry.goub...@cea.fr 

[Pharo-dev] Duplicate IVs | Bug or feature?

2013-11-04 Thread Noury Bouraqadi
Hi,

In Pharo2.0  #20625 it's possible to create two classes, one inheriting from 
the other, and declaring the exact same IV (attached code). 
It turns out that instances of the subclass hold two IVs with the exact name.
When accessing the IV in the superclass, the first IV is used, while in the 
subclass the second IV is accessed.

Bug or feature?

Noury
Ecole des Mines de Douai
http://car.mines-douai.fr/noury
--






Afin de contribuer au respect de l'environnement,


merci de n'imprimer ce courriel qu'en cas de necessite





Please consider the environment before you print







TestDuplicateIVs.st
Description: Binary data


Re: [Pharo-dev] Duplicate IVs | Bug or feature?

2013-11-04 Thread Luc Fabresse
2013/11/4 Luc Fabresse luc.fabre...@gmail.com


 perhaps related to the new object layout.


arg no, not in 2.0 I guess

Luc



 Luc

 2013/11/4 Noury Bouraqadi bouraq...@gmail.com

 Hi,

 In Pharo2.0  #20625 it's possible to create two classes, one inheriting
 from the other, and declaring the exact same IV (attached code).
 It turns out that instances of the subclass hold two IVs with the exact
 name.
 When accessing the IV in the superclass, the first IV is used, while in
 the subclass the second IV is accessed.

 Bug or feature?

 Noury
 Ecole des Mines de Douai
 http://car.mines-douai.fr/noury
 --






 Afin de contribuer au respect de l'environnement,


 merci de n'imprimer ce courriel qu'en cas de necessite





 Please consider the environment before you print









Re: [Pharo-dev] Duplicate IVs | Bug or feature?

2013-11-04 Thread Luc Fabresse
perhaps related to the new object layout.

Luc

2013/11/4 Noury Bouraqadi bouraq...@gmail.com

 Hi,

 In Pharo2.0  #20625 it's possible to create two classes, one inheriting
 from the other, and declaring the exact same IV (attached code).
 It turns out that instances of the subclass hold two IVs with the exact
 name.
 When accessing the IV in the superclass, the first IV is used, while in
 the subclass the second IV is accessed.

 Bug or feature?

 Noury
 Ecole des Mines de Douai
 http://car.mines-douai.fr/noury
 --






 Afin de contribuer au respect de l'environnement,


 merci de n'imprimer ce courriel qu'en cas de necessite





 Please consider the environment before you print








Re: [Pharo-dev] Github and Pharo

2013-11-04 Thread p...@highoctane.be
I guess that's why I used filetree:// and not gitfiletree:// along with the
git client to do the CLI commits and pushes on Windows (one can use GitBash
for example, or MobaXterm Git plugin http://mobaxterm.mobatek.net/ 
http://mobaxterm.mobatek.net/plugins.html  Git + Curl +Emacs [for you
Gutenberg people, but Pdflatex is missing]).

Additional benefit of MobaXterm on Windows: it has curl, wget etc, so
Zeroconf scripts work easily.

rant
Now, I am more and more leaning towards having a debian VM into which I can
do all the development. That's the kind of system production ends up on
anyway. Debian 6 for me, as 7 requires to go into Multiarch + 32 bits libs
which is not on by default and is a headache to get right. I had a hard
time getting Pharo to run on Debian 7. And when faced with a given default
server box, it was worse as there was no way to add the packages. This
excluded Pharo while Rails/PHP people ran happily. :-(
/rant

Phil


Re: [Pharo-dev] Github and Pharo

2013-11-04 Thread Stéphane Ducasse

On Nov 4, 2013, at 11:02 AM, Goubier Thierry thierry.goub...@cea.fr wrote:

 Hi Stef,
 
 I don't have a blog ;) yet. But yes, I think I should write things up.

You can write in Pier format and this will generate a pdf and html.
look at pharo for the entreprise on github.

I can help also if you write in ascii to make it processed.
I can add you to the github project.

 
 Thierry
 
 Le 04/11/2013 00:04, Stéphane Ducasse a écrit :
 one of you should write a blog entry on Git support and the process :)
 Because we will get this repeat that often.
 
 Stef
 
 
 On Nov 3, 2013, at 2:11 PM, kilon alios kilon.al...@gmail.com
 mailto:kilon.al...@gmail.com wrote:
 
 ok it was my bad, i had not correctly initialized my git repo. Now it
 works fine. Thanks for the help this awesome.
 
 
 On Sun, Nov 3, 2013 at 2:56 PM, kilon alios kilon.al...@gmail.com
 mailto:kilon.al...@gmail.com wrote:
 
I installed OSProcess but I get a new Error : Git Error : bad
default revision 'Head'
 
just to clarify i try to commit to an existing git repo that I
have create manually via terminal.
 
 
MCFileTreeGitRepository(Object)error:
MCFileTreeGitRepositorygitVersions
MCFileTreeGitRepositoryloadAncestry
MCFileTreeGitRepositoryloadAllFileNames in Block: [ :bar | ...
BlockClosurecull:
Jobrun in Block: [ result := block cull: self ]
BlockClosureon:do:
Jobrun in Block: [ ...
BlockClosureensure:
Jobrun
MorphicUIManager(UIManager)displayProgress:from:to:during:
ByteString(String)displayProgressFrom:to:during:
MCFileTreeGitRepositoryloadAllFileNames
MCFileTreeGitRepositoryallFileNames
MCFileTreeGitRepositoryreadableFileNames

 MCFileTreeGitRepository(MCFileTreeRepository)allFileNamesForVersionNamed:
MCFileTreeGitRepository(MCDirectoryRepository)includesVersionNamed:
MCWorkingCopyuniqueVersionNameIn: in Block: [ ...
BlockClosurecull:
Jobrun in Block: [ result := block cull: self ]
BlockClosureon:do:
Jobrun in Block: [ ...
BlockClosureensure:
Jobrun
MorphicUIManager(UIManager)displayProgress:from:to:during:
ByteString(String)displayProgressFrom:to:during:
MCWorkingCopyuniqueVersionNameIn:
MCWorkingCopynewVersionIn:
MCWorkingCopyBrowserbasicSaveVersionIn: in Block: [ ...
WorldStaterunStepMethodsIn:
 
 
 
On Sun, Nov 3, 2013 at 2:40 PM, GOUBIER Thierry
thierry.goub...@cea.fr mailto:thierry.goub...@cea.fr wrote:
 
Oh sorry, the OSProcess dependency is missing :(
 
You can install OSProcess from the configuration browser in
your Pharo image or, on the command line :
 
$ pharo Pharo.image config
http://ss3.gemstone.com/ss/MetaRepoForPharo20
ConfigurationOfOSProcess --install=stable
 
Thierry
 

 
*De :* Pharo-dev [pharo-dev-boun...@lists.pharo.org
mailto:pharo-dev-boun...@lists.pharo.org] de la part de
kilon alios [kilon.al...@gmail.com mailto:kilon.al...@gmail.com]
*Date d'envoi :* dimanche 3 novembre 2013 13:30
 
*À :* Pharo Development List
*Objet :* Re: [Pharo-dev] Github and Pharo
 
look like it cant find PipeableOSProcess on Macos, any idea
where I can find this object ?
 
UndefinedObject(Object)doesNotUnderstand: #command:
MCFileTreeGitRepositorygitVersions
MCFileTreeGitRepositoryloadAncestry
MCFileTreeGitRepositoryloadAllFileNames in Block: [ :bar | ...
BlockClosurecull:
Jobrun in Block: [ result := block cull: self ]
BlockClosureon:do:
Jobrun in Block: [ ...
BlockClosureensure:
Jobrun
MorphicUIManager(UIManager)displayProgress:from:to:during:
ByteString(String)displayProgressFrom:to:during:
MCFileTreeGitRepositoryloadAllFileNames
MCFileTreeGitRepositoryallFileNames
MCFileTreeGitRepositoryreadableFileNames

 MCFileTreeGitRepository(MCFileTreeRepository)allFileNamesForVersionNamed:
MCFileTreeGitRepository(MCDirectoryRepository)includesVersionNamed:
MCWorkingCopyuniqueVersionNameIn: in Block: [ ...
BlockClosurecull:
Jobrun in Block: [ result := block cull: self ]
BlockClosureon:do:
Jobrun in Block: [ ...
BlockClosureensure:
Jobrun
MorphicUIManager(UIManager)displayProgress:from:to:during:
ByteString(String)displayProgressFrom:to:during:
MCWorkingCopyuniqueVersionNameIn:
MCWorkingCopynewVersionIn:
MCWorkingCopyBrowserbasicSaveVersionIn: in Block: [ ...
WorldStaterunStepMethodsIn:
 
 
 
On Sun, Nov 3, 2013 at 12:41 PM, GOUBIER Thierry
thierry.goub...@cea.fr mailto:thierry.goub...@cea.fr wrote:
 
This is where you use GitFileTree.
 
GitFileTree will do you the commit, browsing the git logs
and accessing all versions of 

Re: [Pharo-dev] Peek

2013-11-04 Thread Henrik Johansen

On 04 Nov 2013, at 9:57 , Diego Lont diego.l...@delware.nl wrote:

 Working on Petit Delphi we found a strange implementation for asPetitStream:
 StreamasPetitStream
   ^ self contents asPetitStream
 
 Further investigation showed that the basic peek was not fast enough for 
 Petit Parser, as it is used a lot. So it implemented a improved unchecked 
 peek:
 PPStreampeek
   An improved version of peek, that is slightly faster than the built in 
 version.
   ^ self atEnd ifFalse: [ collection at: position + 1 ]
 
 PPStreamuncheckedPeek
   An unchecked version of peek that throws an error if we try to peek 
 over the end of the stream, even faster than #peek.
   ^ collection at: position + 1
 
 But in my knowledge a basic peek should be fast. The real problem is the peek 
 in the underlying peek:
 PositionableStreampeek
   Answer what would be returned if the message next were sent to the 
   receiver. If the receiver is at the end, answer nil.
 
   | nextObject |
   self atEnd ifTrue: [^nil].
   nextObject := self next.
   position := position - 1.
   ^nextObject
 
 That actually uses self next. The least thing one should do is to cache the 
 next object. But isn't there a primitive for peek in a file stream? Because 
 al overriding peeks of PositionableStream have basically the same 
 implementation: reading the next and restoring the state to before the peek 
 (that is slow). So we would like to be able to remove PPStream without 
 causing performance issues, as the only added method is the improved peek.
 
 Stephan and Diego

If you are reading from file, ZnCharacterStream should be a valid alternative.
If not, ZnBufferedReadStream on an internal collection stream also does peek 
caching.

Beware with files though; it’s better to bench the overall operation for 
different alternatives.
F.ex, ZnCharacterStream is much faster than the standard Filestream for peek:

cr := ZnCharacterReadStream on: 'PharoDebug.log' asFileReference readStream 
binary.
[cr peek] bench. '49,400,000 per second.'
cr close.

FileStream fileNamed: 'PharoDebug.log' do: [:fs | [fs peek] bench] '535,000 per 
second.’

but has different bulk reads characteristics (faster for small bulks, slower 
for large bulks, crossover-point at around 1k chars at once);
(The actual values are of course also dependent on encoder/file contents, those 
given here obtained with UTF-8 and a mostly/all ascii text file)

[cr := ZnCharacterReadStream on: ('PharoDebug.log' asFileReference readStream 
binary ) readStream.
cr next: 65536; close] bench  '105 per second.'  '106 per second.'

[FileStream fileNamed: 'PharoDebug.log' do: [:fs | fs next: 65536]
] bench  '176 per second.’

If you use a StandardFilestream set to binary ( which has less overhead for 
binary next’s compared to the MultiByteFileStream returned by asFileReference 
readStream)as the base stream instead, , the same general profile holds true, 
but with a crossover around 2k characters.

TL;DR: Benchmark the alternatives. The best replacement option depends on your 
results. Appropriately (according to source and actual use) set up Zn-streams 
are probably your best bet. 

Cheers,
Henry


signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: [Pharo-dev] Github and Pharo

2013-11-04 Thread Stéphane Ducasse

On Nov 4, 2013, at 11:34 AM, p...@highoctane.be p...@highoctane.be wrote:

 rant
 Now, I am more and more leaning towards having a debian VM into which I can 
 do all the development. That's the kind of system production ends up on 
 anyway. Debian 6 for me, as 7 requires to go into Multiarch + 32 bits libs 
 which is not on by default and is a headache to get right.

This is why what eliot is doing with the 64 bits is really key for our future.


 I had a hard time getting Pharo to run on Debian 7. And when faced with a 
 given default server box, it was worse as there was no way to add the 
 packages. This excluded Pharo while Rails/PHP people ran happily. :-(
 /rant



Re: [Pharo-dev] Github and Pharo

2013-11-04 Thread kilon alios
yeap filetree did the trick here. However it does not allow to browse
through the git commits as gitfiletree does, the only commit available is
the last commit.

I took a look at CommandShell and friends and they all look pretty much
very broken. For example in workspace I executed [ CommandShellTranscript
open.] and trying ls or dir it creates an error because it add C path
inside pharo subdirectories. Dont know if this is normal behavior.

I am coding in macos and ubuntu , but mostly on macos so for me this is not
a big deal. I am using Git Bash and SmartGit and I am very happy with both
so its no big loss for me.

http://www.syntevo.com/smartgithg/

SmartGit works great on windows, macos and linux. A very elegant
application.


On Mon, Nov 4, 2013 at 12:34 PM, p...@highoctane.be p...@highoctane.bewrote:

 I guess that's why I used filetree:// and not gitfiletree:// along with
 the git client to do the CLI commits and pushes on Windows (one can use
 GitBash for example, or MobaXterm Git plugin http://mobaxterm.mobatek.net/
 http://mobaxterm.mobatek.net/plugins.html  Git + Curl +Emacs [for you
 Gutenberg people, but Pdflatex is missing]).

 Additional benefit of MobaXterm on Windows: it has curl, wget etc, so
 Zeroconf scripts work easily.

 rant
 Now, I am more and more leaning towards having a debian VM into which I
 can do all the development. That's the kind of system production ends up on
 anyway. Debian 6 for me, as 7 requires to go into Multiarch + 32 bits libs
 which is not on by default and is a headache to get right. I had a hard
 time getting Pharo to run on Debian 7. And when faced with a given default
 server box, it was worse as there was no way to add the packages. This
 excluded Pharo while Rails/PHP people ran happily. :-(
 /rant

 Phil




Re: [Pharo-dev] WhatsUp from: 2013-11-04 until: 2013-11-17

2013-11-04 Thread Alexandre Bergel
 Lots of improvements to PetitDelphi
 http://www.flickr.com/photos/35787002@N03/sets/72157634356004836/

Gorgeous!

Alexandre

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






Re: [Pharo-dev] Duplicate IVs | Bug or feature?

2013-11-04 Thread Clément Bera
Hey,

This is a feature but it had side effect problems. For instance, in the
inspector you can see twice the instance variable of that name, 1 being nil
and the other one having the correct value.

Therefore in Pharo 3.0 with the new class builder / object layout this
feature was removed. Now your code will raise an Error (DuplicatedSlot) and
you cannot save your class any more (a popup with the error is shown). The
error tells you which instance variable is duplicated so you can fix it by
removing the duplicated instance variable and saving again the class.


2013/11/4 Luc Fabresse luc.fabre...@gmail.com





 2013/11/4 Luc Fabresse luc.fabre...@gmail.com


 perhaps related to the new object layout.


  arg no, not in 2.0 I guess

 Luc



 Luc

 2013/11/4 Noury Bouraqadi bouraq...@gmail.com

 Hi,

 In Pharo2.0  #20625 it's possible to create two classes, one inheriting
 from the other, and declaring the exact same IV (attached code).
 It turns out that instances of the subclass hold two IVs with the exact
 name.
 When accessing the IV in the superclass, the first IV is used, while in
 the subclass the second IV is accessed.

 Bug or feature?

 Noury
 Ecole des Mines de Douai
 http://car.mines-douai.fr/noury
 --






 Afin de contribuer au respect de l'environnement,


 merci de n'imprimer ce courriel qu'en cas de necessite





 Please consider the environment before you print










Re: [Pharo-dev] moving moose to pharo 3.0

2013-11-04 Thread Stéphane Ducasse

 Hi,
 
 We essentially finished moving Moose to Pharo 3.0 (we still have 6 yellow 
 tests but they needed attention anyway). It took about 4 people looking into 
 issues for a total probably around 2 man-days of effort. The largest 
 impediment was actually SmalltalkHub being down for one day :).

Excellent!
I integrated the flatCollect: fix.

 
 What posed problems:
 - RB visitor now has correct visit* methods instead of accept* methods. The 
 deprecation messages helped quite a bit. This meant (1) that we had to rename 
 in our visitors the methods, and (2) that we had to change the old accept* 
 messages.
Yes. 
 - RB nodes do not answer to #isLiteral anymore. Instead, they answer 
 correctly to #isLiteralNode so that to avoid confusion with 
 Object#isLiteral. This is good, and this meant that we had to hunt all 
 #isLiteral usages in Moose.
:)
 - Categories are no longer mapped on RPackages through 1-to-1. This is also 
 good because it is an important step in Pharo. Although originally we said we 
 want to keep 1-to-1, this is probably a better solution now. For Moose, this 
 meant that some of our older tests setup had to be modified a bit to rely on 
 RPackage only.
 - Some Morphs rely now on Announcements, and this had a little impact on the 
 assumptions we make when we suspend announcements (to avoid infinite loops) 
 that are being sent between Morphic and Glamour. We fixed this in Glamour.
 - In FileSystem #ensureDirectory was renamed to #ensureCreateDirectory 
 without a deprecation. For this one, we should add a deprecation for the old 
 method.
Fill up a bug entry and we will add this one. Good catch

 - flatCollect had a conflicting behavior in Pharo. We are now integrating the 
 Moose version so that it returns the same species.
Done :)

 - The new SpecDebugger expects the registered Inspector to be based on Spec, 
 and this causes problems with the GTInspector. This problem still has to be 
 fixed in Pharo.
 
 All in all, we encountered no significant problems and the problems we faced 
 came from deep into Pharo. So, if your code is not relying directly on RB, 
 RPackage or the Debugger, you are likely to have a smooth transition.

Excellent news.
 
 Cheers,
 Doru
 
 
 -- 
 www.tudorgirba.com
 
 Every thing has its own flow



Re: [Pharo-dev] About BitBlt current - BitBlt (Fuel)

2013-11-04 Thread Mariano Martinez Peck
On Mon, Nov 4, 2013 at 4:05 AM, Max Leske maxle...@gmail.com wrote:

 Did #hackBits: come with Fuel? It’s not an extension method…


No, it is not an extension method. I was referring to change Pharo itself,
not Fuel ;)



 On 04.11.2013, at 01:10, Mariano Martinez Peck marianop...@gmail.com
 wrote:

 Indeed. That's why I want to move it to a separate class.


 On Fri, Nov 1, 2013 at 5:18 PM, Max Leske maxle...@gmail.com wrote:

 Wow… Form is mindnumbing…


 On 30.10.2013, at 23:00, Mariano Martinez Peck marianop...@gmail.com
 wrote:

 hehehe sorry, it was #hackBits: :)


 On Wed, Oct 30, 2013 at 6:52 PM, Max Leske maxle...@gmail.com wrote:

 Where did you find that method? I couldn’t find any implementors or
 references…

 On 30.10.2013, at 21:42, Mariano Martinez Peck marianop...@gmail.com
 wrote:

 BTWit is time to move the hashBits: to a more general classbut
 the question is where?


 On Wed, Oct 30, 2013 at 6:21 PM, Stéphane Ducasse 
 stephane.duca...@inria.fr wrote:

 Fuel was using BitBlt current and I change that to BitBlt

 Stef

 On Oct 29, 2013, at 10:55 AM, Max Leske maxle...@gmail.com wrote:

  Stef, what exactly is the influence on Fuel? I looked at the changes
 of your slice and couldn’t find anything…
 
  Max
 
 
  On 25.10.2013, at 16:26, Stéphane Ducasse stephane.duca...@inria.fr
 wrote:
 
  Hi
 
  I just pushed a change cleaning some strange usage.
  BitBlt was sometimes invoked via BitBlt current (which just returned
 the BitBlt class).
  Apparently in Squeak they removed it too.
 
  Now it touches Fuel so Fuel guys can you merge on your side too?
 
   https://pharo.fogbugz.com/f/cases/12009/BitBlt-current-BitBlt
 
  Stef
 
 





 --
 Mariano
 http://marianopeck.wordpress.com





 --
 Mariano
 http://marianopeck.wordpress.com





 --
 Mariano
 http://marianopeck.wordpress.com





-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-dev] How I can add my projects to configuration browser ?

2013-11-04 Thread Stéphane Ducasse
We are in the flux to move everything to a single input Repo and get validation 
that moves the configuration to 
MetaRepoForPharo20
MetaRepoForPharo30
MetaRepoForPharo40
...

So I usually publish in 
http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo30/main and 
http://www.squeaksource.com/MetacelloRepository

 Check for Pharo 30 (the name is in the ConfigurationBrowse window title):
 
 STH Project: http://www.smalltalkhub.com/#!/~Pharo/MetaRepoForPharo30
 Repo: http://smalltalkhub.com/mc/Pharo/MetaRepoForPharo30/main
 
 
 Phil
 
 
 On Sun, Nov 3, 2013 at 5:17 PM, kilon alios kilon.al...@gmail.com wrote:
 I have seen some interesting projects (well pretty much everyone of them) in 
 configuration browser and I was curious how exactly they are added , is there 
 a specific process that needs to be followed ? 
 



[Pharo-dev] 11920 NewValueHolder should use value instead of contents

2013-11-04 Thread Stéphane Ducasse
Ben 

this is strange when I look at these changes I do not really see that value is 
used instead of contents.
Can you check to see if your changes got really integrated?

Stef
On Nov 3, 2013, at 8:17 PM, GitHub nore...@github.com wrote:

  Branch: refs/heads/3.0
  Home:   https://github.com/pharo-project/pharo-core
  Commit: a5bce43720062026ab415167af4db194d3958d62
  
 https://github.com/pharo-project/pharo-core/commit/a5bce43720062026ab415167af4db194d3958d62
  Author: Jenkins Build Server bo...@pharo-project.org
  Date:   2013-11-03 (Sun, 03 Nov 2013)
 
  Changed paths:
A ScriptLoader30.package/ScriptLoader.class/instance/pharo - 
 scripts/script199.st
A ScriptLoader30.package/ScriptLoader.class/instance/pharo - 
 updates/update30544.st
M 
 ScriptLoader30.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
M Spec-Core.package/TextModel.class/definition.st
M Spec-Core.package/TextModel.class/instance/initialization/initialize.st
A 
 Spec-Core.package/TextModel.class/instance/protocol-events/whenMenuHolderChanged_.st
M 
 Spec-Core.package/TextModel.class/instance/protocol/codePaneMenu_shifted_.st
A Spec-Core.package/TextModel.class/instance/protocol/menuHolder.st
A Spec-Core.package/TextModel.class/instance/protocol/menuHolder_.st
A 
 StartupPreferences.package/extension/SettingBrowser/instance/exportAllSettings_by_withBasename_.st
M 
 StartupPreferences.package/extension/SettingBrowser/instance/exportSettings.st
A 
 StartupPreferences.package/extension/SettingBrowser/instance/exportSettings_toFileNamed_.st
 
  Log Message:
  ---
  30544
 12061 SettingBrowserexportSettings need refactoring
   https://pharo.fogbugz.com/f/cases/12061
 
 11920 NewValueHolder should use value instead of contents
   https://pharo.fogbugz.com/f/cases/11920
   
 11819 TextModel#codePaneMenu:shifted: should work with a value holder
   https://pharo.fogbugz.com/f/cases/11819
 
 http://files.pharo.org/image/30/30544.zip
 
 
 




[Pharo-dev] Spaceship?

2013-11-04 Thread Yuriy Tymchuk
Hi everyone.

I’m wandering if there was any sort of a discussion about a spaceship method 
used in Ruby.

The concept is that you should implement a method =
that returns something negative if the receiver is smaller then a parameter,
positive when the receiver is greater then a parameter,
and 0 if they are equal.

This way if you are implementing comparable object’s the only method you have 
to redefine is spaceship (=).

Yes, I know that i Pharo you have to only redefine  and =. But maybe it would 
be interesting to use spaceship :)

What do you think?
Cheers!
Uko


[Pharo-dev] Problem with NativeBoost when loading Pharo from a .dmg

2013-11-04 Thread Damien Cassou
Hi,

when I try to run Pharo after having installed it to /Applications
from a .dmg file on MacOSX, I get the following problem:

NativeBoost can't find symbol #CStackPointer

To reproduce, please download, dragdrop and launch Pharo from this dmg file:
https://dl.dropboxusercontent.com/u/152013/Pharo%202013.11.04.dmg

This is just standard Pharo embedded in a dmg file for easy installation.

You will get an error when you launch Pharo from your Applications. To
reproduce:

NativeBoost loadSymbol: #CStackPointer


Stacktrace:

NativeBoostMac32(Object)error:
NativeBoostMac32(NativeBoostLinux32)getGlobalSymbolPointer:
NativeBoostMac32(NativeBoostLinux32)loadSymbol:fromModule:
NativeBoost classloadSymbol:fromModule:
NativeBoost classloadSymbol:
UndefinedObjectDoIt
OpalCompilerevaluate
SmalltalkEditorevaluateSelectionAndDo:
PluggableTextMorphprintIt in Block: [ ...
TextMorphForEditView(TextMorph)handleEdit:
PluggableTextMorphprintIt
SmalltalkEditor classbuildSmalltalkEditorKeymappingsOn: in Block: [
:morph | morph printIt ]
BlockClosurecull:
BlockClosurecull:cull:
BlockClosurecull:cull:cull:
KMCategoryBindingcompleteMatch:buffer:
KMKeymapnotifyCompleteMatchTo:buffer: in Block: [ :l | l
completeMatch: self buffer: aBuffer ]
Array(SequenceableCollection)do:
KMKeymapnotifyCompleteMatchTo:buffer:
KMKeymaponMatchWith:notify:andDo:
KMCategoryonMatchWith:notify:andDo: in Block: [ :entry | entry
onMatchWith: anEventBuffer notify...etc...
Setdo:
KMCategoryonMatchWith:notify:andDo:
KMCategoryBindingverifyMatchWith:notifying:thenDoing:
KMDispatcherdispatch: in Block: [ :aTarget | ...
OrderedCollectiondo:
KMDispatcherdispatch:
KMTargetdispatch:
KMDispatchChaindispatch: in Block: [ :targetToDispatch | ...
KMDispatchChaindo:


-- 
Damien Cassou
http://damiencassou.seasidehosting.st

Success is the ability to go from one failure to another without
losing enthusiasm.
Winston Churchill



Re: [Pharo-dev] Github and Pharo

2013-11-04 Thread David T. Lewis
On Mon, Nov 04, 2013 at 01:58:29PM +0100, Goubier Thierry wrote:
 
 
 Le 04/11/2013 12:11, kilon alios a ?crit :
 yeap filetree did the trick here. However it does not allow to browse
 through the git commits as gitfiletree does, the only commit available
 is the last commit.
 
 I took a look at CommandShell and friends and they all look pretty much
 very broken. For example in workspace I executed
 [ CommandShellTranscript open.] and trying ls or dir it creates an
 error because it add C path inside pharo subdirectories. Dont know if
 this is normal behavior.

Use CommandShell open rather than CommandShellTranscript open.


 
 I hope someone with more knowledge than me of OSProcess under windows 
 will have a look :)
 

OSProcess support for Windows is incomplete, so this will probably not
do what you need. If the OSProcess is included in the Windows VM, it will
let you run a Windows program, but it will not do most of the other things
that you expect from OSProcess.

Check http://www.squeaksource.com/ProcessWrapper.html for a possible
alternative.

Dave




Re: [Pharo-dev] Github and Pharo

2013-11-04 Thread Goubier Thierry



Le 04/11/2013 14:09, David T. Lewis a écrit :

On Mon, Nov 04, 2013 at 01:58:29PM +0100, Goubier Thierry wrote:



Le 04/11/2013 12:11, kilon alios a ?crit :

yeap filetree did the trick here. However it does not allow to browse
through the git commits as gitfiletree does, the only commit available
is the last commit.

I took a look at CommandShell and friends and they all look pretty much
very broken. For example in workspace I executed
[ CommandShellTranscript open.] and trying ls or dir it creates an
error because it add C path inside pharo subdirectories. Dont know if
this is normal behavior.


Use CommandShell open rather than CommandShellTranscript open.




I hope someone with more knowledge than me of OSProcess under windows
will have a look :)


OSProcess support for Windows is incomplete, so this will probably not
do what you need. If the OSProcess is included in the Windows VM, it will
let you run a Windows program, but it will not do most of the other things
that you expect from OSProcess.

Check http://www.squeaksource.com/ProcessWrapper.html for a possible
alternative.


Thanks Dave; no easy solution on that, it seems. I'll have a look then 
with FileSystem-Git, this one may be a more portable solution.


Windows is still a world apart from the rest :(

Thierry
--
Thierry Goubier
CEA list
Laboratoire des Fondations des Systèmes Temps Réel Embarqués
91191 Gif sur Yvette Cedex
France
Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95



Re: [Pharo-dev] Spaceship?

2013-11-04 Thread p...@highoctane.be
Type and double dispatch + nil considérations come to mind.

nil = 7 gives?
7.0 = 3 gives ?

Object =: anObject

(self = anObject) ifTrue: [ ^0].

(self  anObject) ifTrue: [ ^ -1] ifFalse: [ ^ 1].

otherwise let's raise an error

What can now go wrong from here ?


Phil
On Monday, November 4, 2013, Stéphane Ducasse wrote:

 do you have a real use case?

 Stef

 On Nov 4, 2013, at 1:32 PM, Yuriy Tymchuk yuriy.tymc...@me.comjavascript:;
 wrote:

  Hi everyone.
 
  I’m wandering if there was any sort of a discussion about a spaceship
 method used in Ruby.
 
  The concept is that you should implement a method =
  that returns something negative if the receiver is smaller then a
 parameter,
  positive when the receiver is greater then a parameter,
  and 0 if they are equal.
 
  This way if you are implementing comparable object’s the only method you
 have to redefine is spaceship (=).
 
  Yes, I know that i Pharo you have to only redefine  and =. But maybe it
 would be interesting to use spaceship :)
 
  What do you think?
  Cheers!
  Uko




-- 
---
Philippe Back
Dramatic Performance Improvements
Mob: +32(0) 478 650 140 | Fax: +32 (0) 70 408 027
Mail:p...@highoctane.be | Web: http://philippeback.eu
Blog: http://philippeback.be | Twitter: @philippeback
Youtube: http://www.youtube.com/user/philippeback/videos

High Octane SPRL
rue cour Boisacq 101 | 1301 Bierges | Belgium

Pharo Consortium Member - http://consortium.pharo.org/
Featured on the Software Process and Measurement Cast -
http://spamcast.libsyn.com
Sparx Systems Enterprise Architect and Ability Engineering EADocX Value
Added Reseller


Re: [Pharo-dev] Duplicate IVs | Bug or feature?

2013-11-04 Thread Marcus Denker

On 04 Nov 2013, at 11:29, Noury Bouraqadi bouraq...@gmail.com wrote:

 Hi,
 
 In Pharo2.0  #20625 it's possible to create two classes, one inheriting from 
 the other, and declaring the exact same IV (attached code). 
 It turns out that instances of the subclass hold two IVs with the exact name.
 When accessing the IV in the superclass, the first IV is used, while in the 
 subclass the second IV is accessed.
 
 Bug or feature?

Bug. It used to raise a hard error when you tried to add the same ivar. Now I 
was cleaning up the SourceFileArray, which is used
while accessing source: so removing an ivar *needs* duplication for a short 
overlap.
So I removed the hard error, which was wrong (it should have been a warning).

In Pharo3 with the new class builder this is fixed.

Marcus


Re: [Pharo-dev] Spaceship?

2013-11-04 Thread Yuriy Tymchuk
Now she someone want’s to have a comparable object he has to use TComparable 
and define  and =.
With spaceship he has to define only =. I’m not sure what’s better. Just 
wanted to hear other peoples opinion 

On 04 Nov 2013, at 13:35, Stéphane Ducasse stephane.duca...@inria.fr wrote:

 do you have a real use case?
 
 Stef
 
 On Nov 4, 2013, at 1:32 PM, Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 
 Hi everyone.
 
 I’m wandering if there was any sort of a discussion about a spaceship method 
 used in Ruby.
 
 The concept is that you should implement a method =
 that returns something negative if the receiver is smaller then a parameter,
 positive when the receiver is greater then a parameter,
 and 0 if they are equal.
 
 This way if you are implementing comparable object’s the only method you 
 have to redefine is spaceship (=).
 
 Yes, I know that i Pharo you have to only redefine  and =. But maybe it 
 would be interesting to use spaceship :)
 
 What do you think?
 Cheers!
 Uko
 
 




Re: [Pharo-dev] Github and Pharo

2013-11-04 Thread kilon alios
I used CommandShell open it has the same problem. I took a look at Window
pipes looks like from what I gather that they work quite differently
(surprise surprise) to Unix pipes. Its certainly an interesting subject
that I will continue to investigate and maybe contribute back if I find a
solution.

At this point all I need is the ability to issue simple commands to the
command line like cd , dir , git push , git pull, etc. So nothing
major.  Maybe I will be able to solve this, maybe I wont. Time will tell.


On Mon, Nov 4, 2013 at 3:09 PM, David T. Lewis le...@mail.msen.com wrote:

 On Mon, Nov 04, 2013 at 01:58:29PM +0100, Goubier Thierry wrote:
 
 
  Le 04/11/2013 12:11, kilon alios a ?crit :
  yeap filetree did the trick here. However it does not allow to browse
  through the git commits as gitfiletree does, the only commit available
  is the last commit.
  
  I took a look at CommandShell and friends and they all look pretty much
  very broken. For example in workspace I executed
  [ CommandShellTranscript open.] and trying ls or dir it creates an
  error because it add C path inside pharo subdirectories. Dont know if
  this is normal behavior.

 Use CommandShell open rather than CommandShellTranscript open.


 
  I hope someone with more knowledge than me of OSProcess under windows
  will have a look :)
 

 OSProcess support for Windows is incomplete, so this will probably not
 do what you need. If the OSProcess is included in the Windows VM, it will
 let you run a Windows program, but it will not do most of the other things
 that you expect from OSProcess.

 Check http://www.squeaksource.com/ProcessWrapper.html for a possible
 alternative.

 Dave





Re: [Pharo-dev] Spaceship?

2013-11-04 Thread kilon alios
It looks to me that this would be the source of less readable code, I
prefer the choosing message approach by Kent Beck (Smalltalk Best Practice
Patterns) where intent is clearly stated. Unless there is an advantage I am
missing here. This is an example that less verbose code does not mean
simpler code. Of course this will largely depend on the specifics of the
case used.


On Mon, Nov 4, 2013 at 3:37 PM, Yuriy Tymchuk yuriy.tymc...@me.com wrote:

 Now she someone want’s to have a comparable object he has to use
 TComparable and define  and =.
 With spaceship he has to define only =. I’m not sure what’s better. Just
 wanted to hear other peoples opinion

 On 04 Nov 2013, at 13:35, Stéphane Ducasse stephane.duca...@inria.fr
 wrote:

  do you have a real use case?
 
  Stef
 
  On Nov 4, 2013, at 1:32 PM, Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 
  Hi everyone.
 
  I’m wandering if there was any sort of a discussion about a spaceship
 method used in Ruby.
 
  The concept is that you should implement a method =
  that returns something negative if the receiver is smaller then a
 parameter,
  positive when the receiver is greater then a parameter,
  and 0 if they are equal.
 
  This way if you are implementing comparable object’s the only method
 you have to redefine is spaceship (=).
 
  Yes, I know that i Pharo you have to only redefine  and =. But maybe
 it would be interesting to use spaceship :)
 
  What do you think?
  Cheers!
  Uko
 
 





Re: [Pharo-dev] WhatsUp from: 2013-11-04 until: 2013-11-17

2013-11-04 Thread Damien Cassou
### Here's what I've been up to since the last WhatsUp:

- find funding for a new intern working on Pharo
- extract Pharo launcher into its own source package for Ubuntu (I
will now be able to release new Pharo Launcher packages without
releasing the VM)
- closely collaborate with Ben Coman on the PharoLauncher (new release
with announcement soon)
- simplify Pier so it does not contain Pillar anymore

### What's next, until 2013-11-17 (*):

- Create an installer for the Pharo Launcher on both MacOSX and Windows


-- 
Damien Cassou
http://damiencassou.seasidehosting.st

Success is the ability to go from one failure to another without
losing enthusiasm.
Winston Churchill



Re: [Pharo-dev] How I can add my projects to configuration browser ?

2013-11-04 Thread Damien Cassou
On Sun, Nov 3, 2013 at 8:39 PM, kilon alios kilon.al...@gmail.com wrote:
 thanks so only thing it takes is to be a contributor , or ask to be added as
 contributor to that project ?


done

-- 
Damien Cassou
http://damiencassou.seasidehosting.st

Success is the ability to go from one failure to another without
losing enthusiasm.
Winston Churchill



Re: [Pharo-dev] WhatsUp from: 2013-11-04 until: 2013-11-17

2013-11-04 Thread p...@highoctane.be
### Here's what I've been up to since the last WhatsUp:
- continued development of a business app (Seaside, Magritte 3, TWBS,
NeoCSV, LDAP, custom components)
- created an accounting and transactions package for supporting financials
in the app
- developed a trades tracking board service for the app
- did a lot of Magritte descriptions, components, reports, custom
components etc (mind bending at first, very nice afterwards)
- enjoyed myself a lot w/ Pharo incredibly productive system in which
writing tests first really helps in creating clear code

### What's next, until 2013-11-17 (*):

- continue app development
- try to fix FTP MetacelloToolBox feature
- demonstrate app to investors
- have a serious shot at Reef
- make use of SandstoneDb + Fuel storage


Re: [Pharo-dev] Problem with NativeBoost when loading Pharo from a .dmg

2013-11-04 Thread Damien Cassou
On Mon, Nov 4, 2013 at 1:43 PM, Damien Cassou damien.cas...@gmail.com wrote:
 when I try to run Pharo after having installed it to /Applications
 from a .dmg file on MacOSX, I get the following problem:

 NativeBoost can't find symbol #CStackPointer

Camillo found the problem: I was running Pharo on a stripped vm
binary. This does not work.

-- 
Damien Cassou
http://damiencassou.seasidehosting.st

Success is the ability to go from one failure to another without
losing enthusiasm.
Winston Churchill



Re: [Pharo-dev] Github and Pharo

2013-11-04 Thread Goubier Thierry
Ok, I tried a bit with FileSystem-Git, but it seems there is still a bit 
of work to do...


I tried on one of my work repository, and:
- it failed trying to uft8convert a packed data file.
So I corrected the error (get the stream as binary!) and
- It failed looking for one of the commit IDs
I found the ref in a pack file; apparently, it's not looking in there...
I'm forcing a read of the pack files in there
- Yet another utf8convert error on binary data
Corrected, I got the pack files, but the index isn't telling me much.
I tried to list the objects in it... Unknown compression method error.

There's a huge amount of code in there, it's a bit frightening. I think 
I'll stay with OSProcess a bit longer ;)


Thierry

Le 04/11/2013 14:28, Goubier Thierry a écrit :



Le 04/11/2013 14:09, David T. Lewis a écrit :

On Mon, Nov 04, 2013 at 01:58:29PM +0100, Goubier Thierry wrote:



Le 04/11/2013 12:11, kilon alios a ?crit :

yeap filetree did the trick here. However it does not allow to browse
through the git commits as gitfiletree does, the only commit available
is the last commit.

I took a look at CommandShell and friends and they all look pretty much
very broken. For example in workspace I executed
[ CommandShellTranscript open.] and trying ls or dir it creates an
error because it add C path inside pharo subdirectories. Dont know if
this is normal behavior.


Use CommandShell open rather than CommandShellTranscript open.




I hope someone with more knowledge than me of OSProcess under windows
will have a look :)


OSProcess support for Windows is incomplete, so this will probably not
do what you need. If the OSProcess is included in the Windows VM, it will
let you run a Windows program, but it will not do most of the other
things
that you expect from OSProcess.

Check http://www.squeaksource.com/ProcessWrapper.html for a possible
alternative.


Thanks Dave; no easy solution on that, it seems. I'll have a look then
with FileSystem-Git, this one may be a more portable solution.

Windows is still a world apart from the rest :(

Thierry


--
Thierry Goubier
CEA list
Laboratoire des Fondations des Systèmes Temps Réel Embarqués
91191 Gif sur Yvette Cedex
France
Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95



Re: [Pharo-dev] WhatsUp from: 2013-11-04 until: 2013-11-17

2013-11-04 Thread Tudor Girba
### Here's what I've been up to since the last WhatsUp:
- Release of Moose 4.9 on top of Pharo 2.0
- Ported Moose to Pharo 3.0
- Consolidated the ideas on the topic of Pharo IDE of the Future

### What's next, until 2013-11-17 (*):


- Continue on the topic of Pharo IDE of the Future

Cheers,
Doru

-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Peek

2013-11-04 Thread Sven Van Caekenberghe
Hi Henrik,

Great writeup, thanks !

(more inline)

On 04 Nov 2013, at 11:58, Henrik Johansen henrik.s.johan...@veloxit.no wrote:

 On 04 Nov 2013, at 9:57 , Diego Lont diego.l...@delware.nl wrote:
 
 Working on Petit Delphi we found a strange implementation for asPetitStream:
 StreamasPetitStream
  ^ self contents asPetitStream
 
 Further investigation showed that the basic peek was not fast enough for 
 Petit Parser, as it is used a lot. So it implemented a improved unchecked 
 peek:
 PPStreampeek
  An improved version of peek, that is slightly faster than the built in 
 version.
  ^ self atEnd ifFalse: [ collection at: position + 1 ]
 
 PPStreamuncheckedPeek
  An unchecked version of peek that throws an error if we try to peek 
 over the end of the stream, even faster than #peek.
  ^ collection at: position + 1
 
 But in my knowledge a basic peek should be fast. The real problem is the 
 peek in the underlying peek:
 PositionableStreampeek
  Answer what would be returned if the message next were sent to the 
  receiver. If the receiver is at the end, answer nil.
 
  | nextObject |
  self atEnd ifTrue: [^nil].
  nextObject := self next.
  position := position - 1.
  ^nextObject
 
 That actually uses self next. The least thing one should do is to cache 
 the next object. But isn't there a primitive for peek in a file stream? 
 Because al overriding peeks of PositionableStream have basically the same 
 implementation: reading the next and restoring the state to before the peek 
 (that is slow). So we would like to be able to remove PPStream without 
 causing performance issues, as the only added method is the improved peek.
 
 Stephan and Diego
 
 If you are reading from file, ZnCharacterStream should be a valid alternative.
 If not, ZnBufferedReadStream on an internal collection stream also does peek 
 caching.
 
 Beware with files though; it’s better to bench the overall operation for 
 different alternatives.
 F.ex, ZnCharacterStream is much faster than the standard Filestream for peek:
 
 cr := ZnCharacterReadStream on: 'PharoDebug.log' asFileReference readStream 
 binary.
 [cr peek] bench. '49,400,000 per second.'
 cr close.
 
 FileStream fileNamed: 'PharoDebug.log' do: [:fs | [fs peek] bench] '535,000 
 per second.’
 
 but has different bulk reads characteristics (faster for small bulks, slower 
 for large bulks, crossover-point at around 1k chars at once);
 (The actual values are of course also dependent on encoder/file contents, 
 those given here obtained with UTF-8 and a mostly/all ascii text file)
 
 [cr := ZnCharacterReadStream on: ('PharoDebug.log' asFileReference readStream 
 binary ) readStream.
   cr next: 65536; close] bench  '105 per second.'  '106 per second.’

Well, I just realised that ZnCharacterReadStream and ZnCharacterWriteStream did 
not yet make use of the optimisations that I did for ZnCharacterEncoding some 
time ago. More specifically, they were not yet using 
#next:putAll:startingAt:toStream: and #readInto:startingAt:count:fromStream: 
which are overwritten for ZnUTF8Encoder with (super hacked) versions that 
assume most of the input will be ASCII (a reasonable assumption).

I am still chasing a bug, but right now:

[ (ZnCharacterReadStream on: ('timezones.json' asFileReference readStream 
binary))
next: 65536; close ] bench. 

135 per second.” BEFORE
3,310 per second.” AFTER

But of course the input file is ASCII, so YMMV.

I’ll let you know when I commit this code.

Sven

 [FileStream fileNamed: 'PharoDebug.log' do: [:fs | fs next: 65536]
   ] bench  '176 per second.’
 
 If you use a StandardFilestream set to binary ( which has less overhead for 
 binary next’s compared to the MultiByteFileStream returned by asFileReference 
 readStream)as the base stream instead, , the same general profile holds true, 
 but with a crossover around 2k characters.
 
 TL;DR: Benchmark the alternatives. The best replacement option depends on 
 your results. Appropriately (according to source and actual use) set up 
 Zn-streams are probably your best bet. 
 
 Cheers,
 Henry




Re: [Pharo-dev] flatCollect:

2013-11-04 Thread Chris Cunningham
On Sat, Nov 2, 2013 at 3:52 AM, Tudor Girba tu...@tudorgirba.com wrote:

 Indeed, it would be more elegant, but streamContents: is only defined in
 SequeanceableCollection, so it is not generic enough.

 So, then use the generic one where it is defined (Collection), and a more
specific one that Sven suggested in SequenceableCollection.

-Chris


 Doru


 On Sat, Nov 2, 2013 at 11:21 AM, Sven Van Caekenberghe s...@stfx.euwrote:

 BTW, it seems #flatten in 2.0 has become #flattened in 3.0 and that too
 might needs the #species

 Would it also not be better and more elegant to say

 self species streamContents: [ :stream |
   … ]

 ?

 On 02 Nov 2013, at 09:50, Sven Van Caekenberghe s...@stfx.eu wrote:

 
  On 01 Nov 2013, at 23:55, Tudor Girba tu...@tudorgirba.com wrote:
 
  Hi,
 
  I see that Pharo 3.0 has a CollectionflatCollect:. This is great as
 the method proved to be very valuable in the context of Moose.
 
  However, the current Pharo implementation is less ideal:
 
  CollectionflatCollect: aBlock
   ^ Array streamContents:
   [:stream |
   self do: [:ea | stream nextPutAll: (aBlock value: ea)]]
 
  The Moose one is:
  CollectionflatCollect: aBlock
   Evaluate aBlock for each of the receiver's elements and answer
 the
   list of all resulting values flatten one level. Assumes that
 aBlock returns some kind
   of collection for each element. Equivalent to the lisp's mapcan
   original written by a. Kuhn and released under MIT
 
   | stream |
   self isEmpty ifTrue: [ ^ self copy ].
   stream := (self species new: 0) writeStream.
   self do: [ :each | stream nextPutAll: (aBlock value: each) ].
   ^ stream contents
 
  The difference is in the type returned. The Pharo one always returns
 Array, while the Moose one returns a collection of the same species as the
 receiver.
 
  Sounds right, returning #species.
 
  Does anyone have anything against the Moose implementation?
 
  Doru
 
  --
  www.tudorgirba.com
 
  Every thing has its own flow





 --
 www.tudorgirba.com

 Every thing has its own flow



Re: [Pharo-dev] flatCollect:

2013-11-04 Thread Sven Van Caekenberghe
Actually I am still confused about this, for example,

  Set new writeStream nextPut: 1; contents

does not work, so for which non-sequenceable collections would the 
#flatCollect: code work ?

I was thinking that maybe #streamContents: could be put higher up ?
If that would not be possible, why not ?
And how would the #flatCollect: code then work ?

On 04 Nov 2013, at 17:36, Chris Cunningham cunningham...@gmail.com wrote:

 On Sat, Nov 2, 2013 at 3:52 AM, Tudor Girba tu...@tudorgirba.com wrote:
 Indeed, it would be more elegant, but streamContents: is only defined in 
 SequeanceableCollection, so it is not generic enough.
 
 So, then use the generic one where it is defined (Collection), and a more 
 specific one that Sven suggested in SequenceableCollection.
 
 -Chris
  
 Doru
 
 
 On Sat, Nov 2, 2013 at 11:21 AM, Sven Van Caekenberghe s...@stfx.eu wrote:
 BTW, it seems #flatten in 2.0 has become #flattened in 3.0 and that too might 
 needs the #species
 
 Would it also not be better and more elegant to say
 
 self species streamContents: [ :stream |
   … ]
 
 ?
 
 On 02 Nov 2013, at 09:50, Sven Van Caekenberghe s...@stfx.eu wrote:
 
 
  On 01 Nov 2013, at 23:55, Tudor Girba tu...@tudorgirba.com wrote:
 
  Hi,
 
  I see that Pharo 3.0 has a CollectionflatCollect:. This is great as the 
  method proved to be very valuable in the context of Moose.
 
  However, the current Pharo implementation is less ideal:
 
  CollectionflatCollect: aBlock
   ^ Array streamContents:
   [:stream |
   self do: [:ea | stream nextPutAll: (aBlock value: ea)]]
 
  The Moose one is:
  CollectionflatCollect: aBlock
   Evaluate aBlock for each of the receiver's elements and answer the
   list of all resulting values flatten one level. Assumes that aBlock 
  returns some kind
   of collection for each element. Equivalent to the lisp's mapcan
   original written by a. Kuhn and released under MIT
 
   | stream |
   self isEmpty ifTrue: [ ^ self copy ].
   stream := (self species new: 0) writeStream.
   self do: [ :each | stream nextPutAll: (aBlock value: each) ].
   ^ stream contents
 
  The difference is in the type returned. The Pharo one always returns 
  Array, while the Moose one returns a collection of the same species as the 
  receiver.
 
  Sounds right, returning #species.
 
  Does anyone have anything against the Moose implementation?
 
  Doru
 
  --
  www.tudorgirba.com
 
  Every thing has its own flow
 
 
 
 
 
 -- 
 www.tudorgirba.com
 
 Every thing has its own flow
 




Re: [Pharo-dev] flatCollect:

2013-11-04 Thread Camillo Bruni

On 2013-11-04, at 17:46, Sven Van Caekenberghe s...@stfx.eu wrote:

 Actually I am still confused about this, for example,
 
  Set new writeStream nextPut: 1; contents


This should actually work the same way as 

OrderedCollection streamContents: [ :s | s nextPut: 1 ].

or

Symbol streamContents: [ :s | s nextPutAll: 'abc' ]

 does not work, so for which non-sequenceable collections would the 
 #flatCollect: code work ?


 I was thinking that maybe #streamContents: could be put higher up ?
 If that would not be possible, why not ?
 And how would the #flatCollect: code then work ?
 
 On 04 Nov 2013, at 17:36, Chris Cunningham cunningham...@gmail.com wrote:
 
 On Sat, Nov 2, 2013 at 3:52 AM, Tudor Girba tu...@tudorgirba.com wrote:
 Indeed, it would be more elegant, but streamContents: is only defined in 
 SequeanceableCollection, so it is not generic enough.
 
 So, then use the generic one where it is defined (Collection), and a more 
 specific one that Sven suggested in SequenceableCollection.
 
 -Chris
 
 Doru
 
 
 On Sat, Nov 2, 2013 at 11:21 AM, Sven Van Caekenberghe s...@stfx.eu wrote:
 BTW, it seems #flatten in 2.0 has become #flattened in 3.0 and that too 
 might needs the #species
 
 Would it also not be better and more elegant to say
 
 self species streamContents: [ :stream |
  … ]
 
 ?
 
 On 02 Nov 2013, at 09:50, Sven Van Caekenberghe s...@stfx.eu wrote:
 
 
 On 01 Nov 2013, at 23:55, Tudor Girba tu...@tudorgirba.com wrote:
 
 Hi,
 
 I see that Pharo 3.0 has a CollectionflatCollect:. This is great as the 
 method proved to be very valuable in the context of Moose.
 
 However, the current Pharo implementation is less ideal:
 
 CollectionflatCollect: aBlock
 ^ Array streamContents:
 [:stream |
 self do: [:ea | stream nextPutAll: (aBlock value: ea)]]
 
 The Moose one is:
 CollectionflatCollect: aBlock
 Evaluate aBlock for each of the receiver's elements and answer the
 list of all resulting values flatten one level. Assumes that aBlock 
 returns some kind
 of collection for each element. Equivalent to the lisp's mapcan
 original written by a. Kuhn and released under MIT
 
 | stream |
 self isEmpty ifTrue: [ ^ self copy ].
 stream := (self species new: 0) writeStream.
 self do: [ :each | stream nextPutAll: (aBlock value: each) ].
 ^ stream contents
 
 The difference is in the type returned. The Pharo one always returns 
 Array, while the Moose one returns a collection of the same species as the 
 receiver.
 
 Sounds right, returning #species.
 
 Does anyone have anything against the Moose implementation?
 
 Doru
 
 --
 www.tudorgirba.com
 
 Every thing has its own flow
 
 
 
 
 
 -- 
 www.tudorgirba.com
 
 Every thing has its own flow
 
 
 



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: [Pharo-dev] flatCollect:

2013-11-04 Thread Chris Cunningham
Right.  I hadn't looked closely enough at the Moose one.  Actually, if you
dig it a bit deeper, #writeStream isn't defined in the Collection hierarchy
until you get to SequenceableCollection in any case, so the Moose version
is defined too high.

So, if there is a desire for #flatCollect: outside of
SequenceableColleciton, then this should work (based on Moose version):

CollectionflatCollect: aBlock
Evaluate aBlock for each of the receiver's elements and answer the
list of all resulting values flatten one level. Assumes that aBlock returns
some kind
of collection for each element. Equivalent to the lisp's mapcan
original written by a. Kuhn and released under MIT
 | result |
self isEmpty ifTrue: [ ^ self copy ].
result := (self species new: 0).
self do: [ :each | result addAll: (aBlock value: each) ].
^ result


SequenceableCollectionflatCollect: aBlock
Evaluate aBlock for each of the receiver's elements and answer the
list of all resulting values flatten one level. Assumes that aBlock returns
some kind
of collection for each element. Equivalent to the lisp's mapcan
original written by a. Kuhn and released under MIT
 | stream |
self isEmpty ifTrue: [ ^ self copy ].
^self species streamContents: [ :stream |
self do: [ :each | stream nextPutAll: (aBlock value: each) ]


-Chris
On Mon, Nov 4, 2013 at 8:46 AM, Sven Van Caekenberghe s...@stfx.eu wrote:

 Actually I am still confused about this, for example,

   Set new writeStream nextPut: 1; contents

 does not work, so for which non-sequenceable collections would the
 #flatCollect: code work ?

 I was thinking that maybe #streamContents: could be put higher up ?
 If that would not be possible, why not ?
 And how would the #flatCollect: code then work ?

 On 04 Nov 2013, at 17:36, Chris Cunningham cunningham...@gmail.com
 wrote:

  On Sat, Nov 2, 2013 at 3:52 AM, Tudor Girba tu...@tudorgirba.com
 wrote:
  Indeed, it would be more elegant, but streamContents: is only defined in
 SequeanceableCollection, so it is not generic enough.
 
  So, then use the generic one where it is defined (Collection), and a
 more specific one that Sven suggested in SequenceableCollection.
 
  -Chris
 
  Doru
 
 
  On Sat, Nov 2, 2013 at 11:21 AM, Sven Van Caekenberghe s...@stfx.eu
 wrote:
  BTW, it seems #flatten in 2.0 has become #flattened in 3.0 and that too
 might needs the #species
 
  Would it also not be better and more elegant to say
 
  self species streamContents: [ :stream |
… ]
 
  ?
 
  On 02 Nov 2013, at 09:50, Sven Van Caekenberghe s...@stfx.eu wrote:
 
  
   On 01 Nov 2013, at 23:55, Tudor Girba tu...@tudorgirba.com wrote:
  
   Hi,
  
   I see that Pharo 3.0 has a CollectionflatCollect:. This is great as
 the method proved to be very valuable in the context of Moose.
  
   However, the current Pharo implementation is less ideal:
  
   CollectionflatCollect: aBlock
^ Array streamContents:
[:stream |
self do: [:ea | stream nextPutAll: (aBlock value: ea)]]
  
   The Moose one is:
   CollectionflatCollect: aBlock
Evaluate aBlock for each of the receiver's elements and answer
 the
list of all resulting values flatten one level. Assumes that
 aBlock returns some kind
of collection for each element. Equivalent to the lisp's mapcan
original written by a. Kuhn and released under MIT
  
| stream |
self isEmpty ifTrue: [ ^ self copy ].
stream := (self species new: 0) writeStream.
self do: [ :each | stream nextPutAll: (aBlock value: each) ].
^ stream contents
  
   The difference is in the type returned. The Pharo one always returns
 Array, while the Moose one returns a collection of the same species as the
 receiver.
  
   Sounds right, returning #species.
  
   Does anyone have anything against the Moose implementation?
  
   Doru
  
   --
   www.tudorgirba.com
  
   Every thing has its own flow
 
 
 
 
 
  --
  www.tudorgirba.com
 
  Every thing has its own flow
 





Re: [Pharo-dev] Spaceship?

2013-11-04 Thread Nicolas Cellier
we add^H^H^H had


2013/11/4 Nicolas Cellier nicolas.cellier.aka.n...@gmail.com

 Beware of cases where you don't have total order.
 For example, in recent Squeak/Pharo we add to redefine the whole set of
 operators on numbers, not only  and =, just because NaN is not ordered...


 2013/11/4 kilon alios kilon.al...@gmail.com

 It looks to me that this would be the source of less readable code, I
 prefer the choosing message approach by Kent Beck (Smalltalk Best Practice
 Patterns) where intent is clearly stated. Unless there is an advantage I am
 missing here. This is an example that less verbose code does not mean
 simpler code. Of course this will largely depend on the specifics of the
 case used.


 On Mon, Nov 4, 2013 at 3:37 PM, Yuriy Tymchuk yuriy.tymc...@me.comwrote:

 Now she someone want’s to have a comparable object he has to use
 TComparable and define  and =.
 With spaceship he has to define only =. I’m not sure what’s better.
 Just wanted to hear other peoples opinion

 On 04 Nov 2013, at 13:35, Stéphane Ducasse stephane.duca...@inria.fr
 wrote:

  do you have a real use case?
 
  Stef
 
  On Nov 4, 2013, at 1:32 PM, Yuriy Tymchuk yuriy.tymc...@me.com
 wrote:
 
  Hi everyone.
 
  I’m wandering if there was any sort of a discussion about a spaceship
 method used in Ruby.
 
  The concept is that you should implement a method =
  that returns something negative if the receiver is smaller then a
 parameter,
  positive when the receiver is greater then a parameter,
  and 0 if they are equal.
 
  This way if you are implementing comparable object’s the only method
 you have to redefine is spaceship (=).
 
  Yes, I know that i Pharo you have to only redefine  and =. But maybe
 it would be interesting to use spaceship :)
 
  What do you think?
  Cheers!
  Uko
 
 







Re: [Pharo-dev] Spaceship?

2013-11-04 Thread Nicolas Cellier
Beware of cases where you don't have total order.
For example, in recent Squeak/Pharo we add to redefine the whole set of
operators on numbers, not only  and =, just because NaN is not ordered...


2013/11/4 kilon alios kilon.al...@gmail.com

 It looks to me that this would be the source of less readable code, I
 prefer the choosing message approach by Kent Beck (Smalltalk Best Practice
 Patterns) where intent is clearly stated. Unless there is an advantage I am
 missing here. This is an example that less verbose code does not mean
 simpler code. Of course this will largely depend on the specifics of the
 case used.


 On Mon, Nov 4, 2013 at 3:37 PM, Yuriy Tymchuk yuriy.tymc...@me.comwrote:

 Now she someone want’s to have a comparable object he has to use
 TComparable and define  and =.
 With spaceship he has to define only =. I’m not sure what’s better.
 Just wanted to hear other peoples opinion

 On 04 Nov 2013, at 13:35, Stéphane Ducasse stephane.duca...@inria.fr
 wrote:

  do you have a real use case?
 
  Stef
 
  On Nov 4, 2013, at 1:32 PM, Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 
  Hi everyone.
 
  I’m wandering if there was any sort of a discussion about a spaceship
 method used in Ruby.
 
  The concept is that you should implement a method =
  that returns something negative if the receiver is smaller then a
 parameter,
  positive when the receiver is greater then a parameter,
  and 0 if they are equal.
 
  This way if you are implementing comparable object’s the only method
 you have to redefine is spaceship (=).
 
  Yes, I know that i Pharo you have to only redefine  and =. But maybe
 it would be interesting to use spaceship :)
 
  What do you think?
  Cheers!
  Uko
 
 






Re: [Pharo-dev] Github and Pharo

2013-11-04 Thread GOUBIER Thierry
Hi Max,

I saw you were on it :) It's a huge effort you're undertaking. I learned a bit 
about git internal storage stepping through the code.

Thierry


De : Pharo-dev [pharo-dev-boun...@lists.pharo.org] de la part de Max Leske 
[maxle...@gmail.com]
Date d'envoi : lundi 4 novembre 2013 17:44
À : Pharo Development List
Objet : Re: [Pharo-dev] Github and Pharo

FileSystem-Git is basically in alpha at the moment… I’m rewriting it.


On 04.11.2013, at 17:04, Goubier Thierry thierry.goub...@cea.fr wrote:

 Ok, I tried a bit with FileSystem-Git, but it seems there is still a bit of 
 work to do...

 I tried on one of my work repository, and:
 - it failed trying to uft8convert a packed data file.
 So I corrected the error (get the stream as binary!) and
 - It failed looking for one of the commit IDs
 I found the ref in a pack file; apparently, it's not looking in there...
 I'm forcing a read of the pack files in there
 - Yet another utf8convert error on binary data
 Corrected, I got the pack files, but the index isn't telling me much.
 I tried to list the objects in it... Unknown compression method error.

 There's a huge amount of code in there, it's a bit frightening. I think I'll 
 stay with OSProcess a bit longer ;)

 Thierry

 Le 04/11/2013 14:28, Goubier Thierry a écrit :


 Le 04/11/2013 14:09, David T. Lewis a écrit :
 On Mon, Nov 04, 2013 at 01:58:29PM +0100, Goubier Thierry wrote:


 Le 04/11/2013 12:11, kilon alios a ?crit :
 yeap filetree did the trick here. However it does not allow to browse
 through the git commits as gitfiletree does, the only commit available
 is the last commit.

 I took a look at CommandShell and friends and they all look pretty much
 very broken. For example in workspace I executed
 [ CommandShellTranscript open.] and trying ls or dir it creates an
 error because it add C path inside pharo subdirectories. Dont know if
 this is normal behavior.

 Use CommandShell open rather than CommandShellTranscript open.



 I hope someone with more knowledge than me of OSProcess under windows
 will have a look :)

 OSProcess support for Windows is incomplete, so this will probably not
 do what you need. If the OSProcess is included in the Windows VM, it will
 let you run a Windows program, but it will not do most of the other
 things
 that you expect from OSProcess.

 Check http://www.squeaksource.com/ProcessWrapper.html for a possible
 alternative.

 Thanks Dave; no easy solution on that, it seems. I'll have a look then
 with FileSystem-Git, this one may be a more portable solution.

 Windows is still a world apart from the rest :(

 Thierry

 --
 Thierry Goubier
 CEA list
 Laboratoire des Fondations des Systèmes Temps Réel Embarqués
 91191 Gif sur Yvette Cedex
 France
 Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95






Re: [Pharo-dev] Github and Pharo

2013-11-04 Thread kilon alios
Yeah I agree, this is an awesome project and thank you for your hard work
:)


On Mon, Nov 4, 2013 at 8:12 PM, GOUBIER Thierry thierry.goub...@cea.frwrote:

 Hi Max,

 I saw you were on it :) It's a huge effort you're undertaking. I learned a
 bit about git internal storage stepping through the code.

 Thierry

 
 De : Pharo-dev [pharo-dev-boun...@lists.pharo.org] de la part de Max
 Leske [maxle...@gmail.com]
 Date d'envoi : lundi 4 novembre 2013 17:44
 À : Pharo Development List
 Objet : Re: [Pharo-dev] Github and Pharo

 FileSystem-Git is basically in alpha at the moment… I’m rewriting it.


 On 04.11.2013, at 17:04, Goubier Thierry thierry.goub...@cea.fr wrote:

  Ok, I tried a bit with FileSystem-Git, but it seems there is still a bit
 of work to do...
 
  I tried on one of my work repository, and:
  - it failed trying to uft8convert a packed data file.
  So I corrected the error (get the stream as binary!) and
  - It failed looking for one of the commit IDs
  I found the ref in a pack file; apparently, it's not looking in there...
  I'm forcing a read of the pack files in there
  - Yet another utf8convert error on binary data
  Corrected, I got the pack files, but the index isn't telling me much.
  I tried to list the objects in it... Unknown compression method error.
 
  There's a huge amount of code in there, it's a bit frightening. I think
 I'll stay with OSProcess a bit longer ;)
 
  Thierry
 
  Le 04/11/2013 14:28, Goubier Thierry a écrit :
 
 
  Le 04/11/2013 14:09, David T. Lewis a écrit :
  On Mon, Nov 04, 2013 at 01:58:29PM +0100, Goubier Thierry wrote:
 
 
  Le 04/11/2013 12:11, kilon alios a ?crit :
  yeap filetree did the trick here. However it does not allow to browse
  through the git commits as gitfiletree does, the only commit
 available
  is the last commit.
 
  I took a look at CommandShell and friends and they all look pretty
 much
  very broken. For example in workspace I executed
  [ CommandShellTranscript open.] and trying ls or dir it creates
 an
  error because it add C path inside pharo subdirectories. Dont know if
  this is normal behavior.
 
  Use CommandShell open rather than CommandShellTranscript open.
 
 
 
  I hope someone with more knowledge than me of OSProcess under windows
  will have a look :)
 
  OSProcess support for Windows is incomplete, so this will probably not
  do what you need. If the OSProcess is included in the Windows VM, it
 will
  let you run a Windows program, but it will not do most of the other
  things
  that you expect from OSProcess.
 
  Check http://www.squeaksource.com/ProcessWrapper.html for a possible
  alternative.
 
  Thanks Dave; no easy solution on that, it seems. I'll have a look then
  with FileSystem-Git, this one may be a more portable solution.
 
  Windows is still a world apart from the rest :(
 
  Thierry
 
  --
  Thierry Goubier
  CEA list
  Laboratoire des Fondations des Systèmes Temps Réel Embarqués
  91191 Gif sur Yvette Cedex
  France
  Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
 






Re: [Pharo-dev] Github and Pharo

2013-11-04 Thread Max Leske
Thanks guys :)

On 04.11.2013, at 19:35, kilon alios kilon.al...@gmail.com wrote:

 Yeah I agree, this is an awesome project and thank you for your hard work :) 
 
 
 On Mon, Nov 4, 2013 at 8:12 PM, GOUBIER Thierry thierry.goub...@cea.fr 
 wrote:
 Hi Max,
 
 I saw you were on it :) It's a huge effort you're undertaking. I learned a 
 bit about git internal storage stepping through the code.
 
 Thierry
 
 
 De : Pharo-dev [pharo-dev-boun...@lists.pharo.org] de la part de Max Leske 
 [maxle...@gmail.com]
 Date d'envoi : lundi 4 novembre 2013 17:44
 À : Pharo Development List
 Objet : Re: [Pharo-dev] Github and Pharo
 
 FileSystem-Git is basically in alpha at the moment… I’m rewriting it.
 
 
 On 04.11.2013, at 17:04, Goubier Thierry thierry.goub...@cea.fr wrote:
 
  Ok, I tried a bit with FileSystem-Git, but it seems there is still a bit of 
  work to do...
 
  I tried on one of my work repository, and:
  - it failed trying to uft8convert a packed data file.
  So I corrected the error (get the stream as binary!) and
  - It failed looking for one of the commit IDs
  I found the ref in a pack file; apparently, it's not looking in there...
  I'm forcing a read of the pack files in there
  - Yet another utf8convert error on binary data
  Corrected, I got the pack files, but the index isn't telling me much.
  I tried to list the objects in it... Unknown compression method error.
 
  There's a huge amount of code in there, it's a bit frightening. I think 
  I'll stay with OSProcess a bit longer ;)
 
  Thierry
 
  Le 04/11/2013 14:28, Goubier Thierry a écrit :
 
 
  Le 04/11/2013 14:09, David T. Lewis a écrit :
  On Mon, Nov 04, 2013 at 01:58:29PM +0100, Goubier Thierry wrote:
 
 
  Le 04/11/2013 12:11, kilon alios a ?crit :
  yeap filetree did the trick here. However it does not allow to browse
  through the git commits as gitfiletree does, the only commit available
  is the last commit.
 
  I took a look at CommandShell and friends and they all look pretty much
  very broken. For example in workspace I executed
  [ CommandShellTranscript open.] and trying ls or dir it creates an
  error because it add C path inside pharo subdirectories. Dont know if
  this is normal behavior.
 
  Use CommandShell open rather than CommandShellTranscript open.
 
 
 
  I hope someone with more knowledge than me of OSProcess under windows
  will have a look :)
 
  OSProcess support for Windows is incomplete, so this will probably not
  do what you need. If the OSProcess is included in the Windows VM, it will
  let you run a Windows program, but it will not do most of the other
  things
  that you expect from OSProcess.
 
  Check http://www.squeaksource.com/ProcessWrapper.html for a possible
  alternative.
 
  Thanks Dave; no easy solution on that, it seems. I'll have a look then
  with FileSystem-Git, this one may be a more portable solution.
 
  Windows is still a world apart from the rest :(
 
  Thierry
 
  --
  Thierry Goubier
  CEA list
  Laboratoire des Fondations des Systèmes Temps Réel Embarqués
  91191 Gif sur Yvette Cedex
  France
  Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
 
 
 
 
 



Re: [Pharo-dev] Spaceship?

2013-11-04 Thread Yuriy Tymchuk
No one prohibits you from redefining other operators.

It’s just that a  b is defined by default as b  a. So why it is this way and 
not a  b is b  a ;)

With spaceship there is one method to rule them all. But Pharo’s implementation 
is interesting too. I never had an idea that you can define things like that

On 04 Nov 2013, at 18:54, Nicolas Cellier nicolas.cellier.aka.n...@gmail.com 
wrote:

 Beware of cases where you don't have total order.
 For example, in recent Squeak/Pharo we add to redefine the whole set of 
 operators on numbers, not only  and =, just because NaN is not ordered...
 
 
 2013/11/4 kilon alios kilon.al...@gmail.com
 It looks to me that this would be the source of less readable code, I prefer 
 the choosing message approach by Kent Beck (Smalltalk Best Practice Patterns) 
 where intent is clearly stated. Unless there is an advantage I am missing 
 here. This is an example that less verbose code does not mean simpler code. 
 Of course this will largely depend on the specifics of the case used. 
 
 
 On Mon, Nov 4, 2013 at 3:37 PM, Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 Now she someone want’s to have a comparable object he has to use TComparable 
 and define  and =.
 With spaceship he has to define only =. I’m not sure what’s better. Just 
 wanted to hear other peoples opinion
 
 On 04 Nov 2013, at 13:35, Stéphane Ducasse stephane.duca...@inria.fr wrote:
 
  do you have a real use case?
 
  Stef
 
  On Nov 4, 2013, at 1:32 PM, Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 
  Hi everyone.
 
  I’m wandering if there was any sort of a discussion about a spaceship 
  method used in Ruby.
 
  The concept is that you should implement a method =
  that returns something negative if the receiver is smaller then a 
  parameter,
  positive when the receiver is greater then a parameter,
  and 0 if they are equal.
 
  This way if you are implementing comparable object’s the only method you 
  have to redefine is spaceship (=).
 
  Yes, I know that i Pharo you have to only redefine  and =. But maybe it 
  would be interesting to use spaceship :)
 
  What do you think?
  Cheers!
  Uko
 
 
 
 
 
 



Re: [Pharo-dev] flatCollect:

2013-11-04 Thread Tudor Girba
Indeed, it would be great to have a polymorphic message for constructing
collections. In the meantime, there are three flatCollect: methods:

CollectionflatCollect: aBlock
Evaluate aBlock for each of the receiver's elements and answer the
list of all resulting values flatten one level. Assumes that aBlock returns
some kind
of collection for each element. Equivalent to the lisp's mapcan
 | stream |
self isEmpty ifTrue: [ ^ self copy ].
stream := (self species new: 0) writeStream.
self do: [ :each | stream nextPutAll: (aBlock value: each) ].
^ stream contents

SetflatCollect: aBlock
^self flatCollectAsSet: aBlock

SortedCollectionflatCollect: aBlock
^ self flatCollect: aBlock as: OrderedCollection

Doru


On Mon, Nov 4, 2013 at 6:02 PM, Chris Cunningham cunningham...@gmail.comwrote:

 Right.  I hadn't looked closely enough at the Moose one.  Actually, if you
 dig it a bit deeper, #writeStream isn't defined in the Collection hierarchy
 until you get to SequenceableCollection in any case, so the Moose version
 is defined too high.

 So, if there is a desire for #flatCollect: outside of
 SequenceableColleciton, then this should work (based on Moose version):

 CollectionflatCollect: aBlock
 Evaluate aBlock for each of the receiver's elements and answer the
  list of all resulting values flatten one level. Assumes that aBlock
 returns some kind
  of collection for each element. Equivalent to the lisp's mapcan
 original written by a. Kuhn and released under MIT
  | result |
  self isEmpty ifTrue: [ ^ self copy ].
 result := (self species new: 0).
  self do: [ :each | result addAll: (aBlock value: each) ].
 ^ result


 SequenceableCollectionflatCollect: aBlock
 Evaluate aBlock for each of the receiver's elements and answer the
  list of all resulting values flatten one level. Assumes that aBlock
 returns some kind
  of collection for each element. Equivalent to the lisp's mapcan
 original written by a. Kuhn and released under MIT
  | stream |
  self isEmpty ifTrue: [ ^ self copy ].
 ^self species streamContents: [ :stream |
  self do: [ :each | stream nextPutAll: (aBlock value: each) ]


 -Chris
 On Mon, Nov 4, 2013 at 8:46 AM, Sven Van Caekenberghe s...@stfx.euwrote:

 Actually I am still confused about this, for example,

   Set new writeStream nextPut: 1; contents

 does not work, so for which non-sequenceable collections would the
 #flatCollect: code work ?

 I was thinking that maybe #streamContents: could be put higher up ?
 If that would not be possible, why not ?
 And how would the #flatCollect: code then work ?

 On 04 Nov 2013, at 17:36, Chris Cunningham cunningham...@gmail.com
 wrote:

  On Sat, Nov 2, 2013 at 3:52 AM, Tudor Girba tu...@tudorgirba.com
 wrote:
  Indeed, it would be more elegant, but streamContents: is only defined
 in SequeanceableCollection, so it is not generic enough.
 
  So, then use the generic one where it is defined (Collection), and a
 more specific one that Sven suggested in SequenceableCollection.
 
  -Chris
 
  Doru
 
 
  On Sat, Nov 2, 2013 at 11:21 AM, Sven Van Caekenberghe s...@stfx.eu
 wrote:
  BTW, it seems #flatten in 2.0 has become #flattened in 3.0 and that too
 might needs the #species
 
  Would it also not be better and more elegant to say
 
  self species streamContents: [ :stream |
… ]
 
  ?
 
  On 02 Nov 2013, at 09:50, Sven Van Caekenberghe s...@stfx.eu wrote:
 
  
   On 01 Nov 2013, at 23:55, Tudor Girba tu...@tudorgirba.com wrote:
  
   Hi,
  
   I see that Pharo 3.0 has a CollectionflatCollect:. This is great
 as the method proved to be very valuable in the context of Moose.
  
   However, the current Pharo implementation is less ideal:
  
   CollectionflatCollect: aBlock
^ Array streamContents:
[:stream |
self do: [:ea | stream nextPutAll: (aBlock value: ea)]]
  
   The Moose one is:
   CollectionflatCollect: aBlock
Evaluate aBlock for each of the receiver's elements and answer
 the
list of all resulting values flatten one level. Assumes that
 aBlock returns some kind
of collection for each element. Equivalent to the lisp's mapcan
original written by a. Kuhn and released under MIT
  
| stream |
self isEmpty ifTrue: [ ^ self copy ].
stream := (self species new: 0) writeStream.
self do: [ :each | stream nextPutAll: (aBlock value: each) ].
^ stream contents
  
   The difference is in the type returned. The Pharo one always returns
 Array, while the Moose one returns a collection of the same species as the
 receiver.
  
   Sounds right, returning #species.
  
   Does anyone have anything against the Moose implementation?
  
   Doru
  
   --
   www.tudorgirba.com
  
   Every thing has its own flow
 
 
 
 
 
  --
  www.tudorgirba.com
 
  Every thing has its own flow
 






-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Feature request poll

2013-11-04 Thread Alexandre Bergel
Why do you mention Smalltalk at all actually? In my classes, I simply say that 
Pharo is inspired by Smalltalk, if I ever mention it
It is easier to be convinced by the future than by the past. 

Alexandre

 Le 04-11-2013 à 6:58, kilon alios kilon.al...@gmail.com a écrit :
 
 I agree too, at worse this poll will show that Pharo is not abandonware and a 
 community that takes seriously popular feature requests. 
 
 I would also love to see a progress bar per feature request or WIP features. 
 I am not talking here 100 features, even 10 will be enough to say that we are 
 moving forward. In irc I had several people pop in asking why pharo chose 
 smalltalk and is it not smalltalk dead etc ? So definetly this could help 
 kick the smalltalk stereotype from the mind of newcomers and show them we are 
 not big, but none the less quite active and open minded community.  
 
 
 
 
 On Mon, Nov 4, 2013 at 10:52 AM, Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 
 On 04 Nov 2013, at 09:41, Norbert Hartl norb...@hartl.name wrote:
 
  I don't think our community ever lacked of ideas. It is primarily 
  time/contributed work that is missing.
 I think that you are right on this. That’s why I think we need this ideas 
 portal. So all the ideas are collected in one place and you can spot and 
 when someone has time to contribute ha can check what ideas have the most 
 amount of votes, etc…
 
 Uko
 
  It is too easy to have a quick opinion that is based only on my current 
  mood. Should these guide the future development of pharo? That could do 
  more harm than it helps.
  Nevertheless nice idea ;)
 
  Norbert
 
  Am 04.11.2013 um 09:19 schrieb Yuriy Tymchuk yuriy.tymc...@me.com:
 
  I think that if we want to have it, we have to make something simple with 
  an option to create ideas and simple voting. If it will be used then we 
  can extend it.
 
  Uko
 
  On 04 Nov 2013, at 09:15, Sven Van Caekenberghe s...@stfx.eu wrote:
 
 
  On 04 Nov 2013, at 09:04, Camillo Bruni camillobr...@gmail.com wrote:
 
 
  On 2013-11-04, at 08:56, Norbert Hartl norb...@hartl.name wrote:
 
 
 
  Am 04.11.2013 um 00:26 schrieb Yuriy Tymchuk yuriy.tymc...@me.com:
 
  Hi everyone,
 
  I’ve just got an idea (not something extra ordinary) to try out. 
  Maybe we can make some kind of poll where community will be able to 
  add new feature requests and vote for them. This way we can get an 
  idea what is important to most of people. Eg. see how many votes are 
  for the stateful traits and how many for the ability to quit image 
  without prompt for saving. After writing last sentence I’ve figured 
  out that it’s a good idea to be able also to vote down :)
 
  But I think that this can be a nice experiment. Also as we are 
  promoting and idea that “Pharo is made by you”, then new feature poll 
  is nice to have.
 
  I have this gut feeling there should something around three levels of 
  acknowledgement:
 
  - I like it
  - I need it really
  - I like or need it and will spend time doing it
 
  yes, the I am willing to contribute is important!
 
  or even, “I am willing to pay
 
 
 
 


Re: [Pharo-dev] Github and Pharo

2013-11-04 Thread GOUBIER Thierry
Alexandre,

using Git with Pharo (2 and 3) works today on Mac and Linux with 
MonticelloFileTree and MonticelloFileTree-Git.

FileSystem-Git will be a better way to do it (and more portable) :)

Thierry


De : Pharo-dev [pharo-dev-boun...@lists.pharo.org] de la part de Alexandre 
Bergel [alexandre.ber...@me.com]
Date d'envoi : lundi 4 novembre 2013 21:34
À : Pharo Development List
Cc: Pharo Development List
Objet : Re: [Pharo-dev] Github and Pharo

+1
Everybody is waiting for using Git with Pharo. There is a real possibility to 
impact 100s of users...
Go go go!

Alexandre

Alexandre

Le 04-11-2013 à 15:35, kilon alios 
kilon.al...@gmail.commailto:kilon.al...@gmail.com a écrit :

Yeah I agree, this is an awesome project and thank you for your hard work :)


On Mon, Nov 4, 2013 at 8:12 PM, GOUBIER Thierry 
thierry.goub...@cea.frmailto:thierry.goub...@cea.fr wrote:
Hi Max,

I saw you were on it :) It's a huge effort you're undertaking. I learned a bit 
about git internal storage stepping through the code.

Thierry


De : Pharo-dev 
[pharo-dev-boun...@lists.pharo.orgmailto:pharo-dev-boun...@lists.pharo.org] 
de la part de Max Leske [maxle...@gmail.commailto:maxle...@gmail.com]
Date d'envoi : lundi 4 novembre 2013 17:44
À : Pharo Development List
Objet : Re: [Pharo-dev] Github and Pharo

FileSystem-Git is basically in alpha at the moment… I’m rewriting it.


On 04.11.2013, at 17:04, Goubier Thierry 
thierry.goub...@cea.frmailto:thierry.goub...@cea.fr wrote:

 Ok, I tried a bit with FileSystem-Git, but it seems there is still a bit of 
 work to do...

 I tried on one of my work repository, and:
 - it failed trying to uft8convert a packed data file.
 So I corrected the error (get the stream as binary!) and
 - It failed looking for one of the commit IDs
 I found the ref in a pack file; apparently, it's not looking in there...
 I'm forcing a read of the pack files in there
 - Yet another utf8convert error on binary data
 Corrected, I got the pack files, but the index isn't telling me much.
 I tried to list the objects in it... Unknown compression method error.

 There's a huge amount of code in there, it's a bit frightening. I think I'll 
 stay with OSProcess a bit longer ;)

 Thierry

 Le 04/11/2013 14:28, Goubier Thierry a écrit :


 Le 04/11/2013 14:09, David T. Lewis a écrit :
 On Mon, Nov 04, 2013 at 01:58:29PM +0100, Goubier Thierry wrote:


 Le 04/11/2013 12:11, kilon alios a ?crit :
 yeap filetree did the trick here. However it does not allow to browse
 through the git commits as gitfiletree does, the only commit available
 is the last commit.

 I took a look at CommandShell and friends and they all look pretty much
 very broken. For example in workspace I executed
 [ CommandShellTranscript open.] and trying ls or dir it creates an
 error because it add C path inside pharo subdirectories. Dont know if
 this is normal behavior.

 Use CommandShell open rather than CommandShellTranscript open.



 I hope someone with more knowledge than me of OSProcess under windows
 will have a look :)

 OSProcess support for Windows is incomplete, so this will probably not
 do what you need. If the OSProcess is included in the Windows VM, it will
 let you run a Windows program, but it will not do most of the other
 things
 that you expect from OSProcess.

 Check http://www.squeaksource.com/ProcessWrapper.html for a possible
 alternative.

 Thanks Dave; no easy solution on that, it seems. I'll have a look then
 with FileSystem-Git, this one may be a more portable solution.

 Windows is still a world apart from the rest :(

 Thierry

 --
 Thierry Goubier
 CEA list
 Laboratoire des Fondations des Systèmes Temps Réel Embarqués
 91191 Gif sur Yvette Cedex
 France
 Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95







Re: [Pharo-dev] Feature request poll

2013-11-04 Thread Esteban A. Maringolo
2013/11/4 Alexandre Bergel alexandre.ber...@me.com

 Why do you mention Smalltalk at all actually? In my classes, I simply say
 that Pharo is inspired by Smalltalk, if I ever mention it
 It is easier to be convinced by the future than by the past.


To me trying to dissociate Smalltalk from Pharo is like trying to
dissociate Smalltalk from VisualWorks (aka Cincom Smalltalk).
Or worst... ANSI C from C++.

I still mention Smalltalk, and I promote Pharo as an active Smalltalk
dialect.

Maybe it will be better to promote it plainly as Pharo...





Esteban A. Maringolo


Re: [Pharo-dev] Feature request poll

2013-11-04 Thread Yuriy Tymchuk

On 04 Nov 2013, at 22:13, Esteban A. Maringolo emaring...@gmail.com wrote:

 
 2013/11/4 Alexandre Bergel alexandre.ber...@me.com
 Why do you mention Smalltalk at all actually? In my classes, I simply say 
 that Pharo is inspired by Smalltalk, if I ever mention it
 It is easier to be convinced by the future than by the past. 
 
 
 To me trying to dissociate Smalltalk from Pharo is like trying to dissociate 
 Smalltalk from VisualWorks (aka Cincom Smalltalk).
 Or worst... ANSI C from C++.
 
 I still mention Smalltalk, and I promote Pharo as an active Smalltalk 
 dialect.
 
 Maybe it will be better to promote it plainly as Pharo…
I just say that Pharo is what had to happen with Smalltalk in last 30 years. We 
can think about Pharo in Smalltalk like Scala in Java. But Java had versions, 
and Smalltalk is treated just as only 80th year frozen snapshot. I’d say that 
Pharo is a Smalltalk of 2013 year. Oh, yes, but in public it’s better to say 
that Pharo is completely different ;)


 
 
 
 
 
 Esteban A. Maringolo 



Re: [Pharo-dev] Peek

2013-11-04 Thread Henrik Sperre Johansen
That's great!
Remembering that commit message was part of the reason for benching, was
sort of disappointed there was no significant difference between Zn in 2.0
and latest 3.0...

I guess with the amount of hacks accumulating, it is indeed turning into a
worthy successor of MultiByteFileStream ;)

Cheers,
Henry

P.S: If you want another delightful one in the same vein (both from
WTFy-ness and perf improvement POV), take a gander at UTF16TextConverter 
nextPutByteString:toStream:


On Mon, Nov 4, 2013 at 5:12 PM, Sven Van Caekenberghe s...@stfx.eu wrote:

 Hi Henrik,

 Great writeup, thanks !

 (more inline)

 On 04 Nov 2013, at 11:58, Henrik Johansen henrik.s.johan...@veloxit.no
 wrote:

  On 04 Nov 2013, at 9:57 , Diego Lont diego.l...@delware.nl wrote:
 
  Working on Petit Delphi we found a strange implementation for
 asPetitStream:
  StreamasPetitStream
   ^ self contents asPetitStream
 
  Further investigation showed that the basic peek was not fast enough
 for Petit Parser, as it is used a lot. So it implemented a improved
 unchecked peek:
  PPStreampeek
   An improved version of peek, that is slightly faster than the
 built in version.
   ^ self atEnd ifFalse: [ collection at: position + 1 ]
 
  PPStreamuncheckedPeek
   An unchecked version of peek that throws an error if we try to
 peek over the end of the stream, even faster than #peek.
   ^ collection at: position + 1
 
  But in my knowledge a basic peek should be fast. The real problem is
 the peek in the underlying peek:
  PositionableStreampeek
   Answer what would be returned if the message next were sent to the
   receiver. If the receiver is at the end, answer nil.
 
   | nextObject |
   self atEnd ifTrue: [^nil].
   nextObject := self next.
   position := position - 1.
   ^nextObject
 
  That actually uses self next. The least thing one should do is to
 cache the next object. But isn't there a primitive for peek in a file
 stream? Because al overriding peeks of PositionableStream have basically
 the same implementation: reading the next and restoring the state to before
 the peek (that is slow). So we would like to be able to remove PPStream
 without causing performance issues, as the only added method is the
 improved peek.
 
  Stephan and Diego
 
  If you are reading from file, ZnCharacterStream should be a valid
 alternative.
  If not, ZnBufferedReadStream on an internal collection stream also does
 peek caching.
 
  Beware with files though; it’s better to bench the overall operation for
 different alternatives.
  F.ex, ZnCharacterStream is much faster than the standard Filestream for
 peek:
 
  cr := ZnCharacterReadStream on: 'PharoDebug.log' asFileReference
 readStream binary.
  [cr peek] bench. '49,400,000 per second.'
  cr close.
 
  FileStream fileNamed: 'PharoDebug.log' do: [:fs | [fs peek] bench]
 '535,000 per second.’
 
  but has different bulk reads characteristics (faster for small bulks,
 slower for large bulks, crossover-point at around 1k chars at once);
  (The actual values are of course also dependent on encoder/file
 contents, those given here obtained with UTF-8 and a mostly/all ascii text
 file)
 
  [cr := ZnCharacterReadStream on: ('PharoDebug.log' asFileReference
 readStream binary ) readStream.
cr next: 65536; close] bench  '105 per second.'  '106 per second.’

 Well, I just realised that ZnCharacterReadStream and
 ZnCharacterWriteStream did not yet make use of the optimisations that I did
 for ZnCharacterEncoding some time ago. More specifically, they were not yet
 using #next:putAll:startingAt:toStream: and
 #readInto:startingAt:count:fromStream: which are overwritten for
 ZnUTF8Encoder with (super hacked) versions that assume most of the input
 will be ASCII (a reasonable assumption).

 I am still chasing a bug, but right now:

 [ (ZnCharacterReadStream on: ('timezones.json' asFileReference readStream
 binary))
 next: 65536; close ] bench.

 135 per second.” BEFORE
 3,310 per second.” AFTER

 But of course the input file is ASCII, so YMMV.

 I’ll let you know when I commit this code.

 Sven

  [FileStream fileNamed: 'PharoDebug.log' do: [:fs | fs next: 65536]
] bench  '176 per second.’
 
  If you use a StandardFilestream set to binary ( which has less overhead
 for binary next’s compared to the MultiByteFileStream returned by
 asFileReference readStream)as the base stream instead, , the same general
 profile holds true, but with a crossover around 2k characters.
 
  TL;DR: Benchmark the alternatives. The best replacement option depends
 on your results. Appropriately (according to source and actual use) set up
 Zn-streams are probably your best bet.
 
  Cheers,
  Henry





Re: [Pharo-dev] 11920 NewValueHolder should use value instead of contents

2013-11-04 Thread Benjamin
I will tomorrow :)

Ben

On 04 Nov 2013, at 13:22, Stéphane Ducasse stephane.duca...@inria.fr wrote:

 Ben 
 
 this is strange when I look at these changes I do not really see that value 
 is used instead of contents.
 Can you check to see if your changes got really integrated?
 
 Stef
 On Nov 3, 2013, at 8:17 PM, GitHub nore...@github.com wrote:
 
 Branch: refs/heads/3.0
 Home:   https://github.com/pharo-project/pharo-core
 Commit: a5bce43720062026ab415167af4db194d3958d62
 
 https://github.com/pharo-project/pharo-core/commit/a5bce43720062026ab415167af4db194d3958d62
 Author: Jenkins Build Server bo...@pharo-project.org
 Date:   2013-11-03 (Sun, 03 Nov 2013)
 
 Changed paths:
   A ScriptLoader30.package/ScriptLoader.class/instance/pharo - 
 scripts/script199.st
   A ScriptLoader30.package/ScriptLoader.class/instance/pharo - 
 updates/update30544.st
   M 
 ScriptLoader30.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
   M Spec-Core.package/TextModel.class/definition.st
   M Spec-Core.package/TextModel.class/instance/initialization/initialize.st
   A 
 Spec-Core.package/TextModel.class/instance/protocol-events/whenMenuHolderChanged_.st
   M 
 Spec-Core.package/TextModel.class/instance/protocol/codePaneMenu_shifted_.st
   A Spec-Core.package/TextModel.class/instance/protocol/menuHolder.st
   A Spec-Core.package/TextModel.class/instance/protocol/menuHolder_.st
   A 
 StartupPreferences.package/extension/SettingBrowser/instance/exportAllSettings_by_withBasename_.st
   M 
 StartupPreferences.package/extension/SettingBrowser/instance/exportSettings.st
   A 
 StartupPreferences.package/extension/SettingBrowser/instance/exportSettings_toFileNamed_.st
 
 Log Message:
 ---
 30544
 12061 SettingBrowserexportSettings need refactoring
  https://pharo.fogbugz.com/f/cases/12061
 
 11920 NewValueHolder should use value instead of contents
  https://pharo.fogbugz.com/f/cases/11920
  
 11819 TextModel#codePaneMenu:shifted: should work with a value holder
  https://pharo.fogbugz.com/f/cases/11819
 
 http://files.pharo.org/image/30/30544.zip
 
 
 
 
 



Re: [Pharo-dev] Feature request poll

2013-11-04 Thread kilon alios
I think now Pharo as Pharo. It stands on its own get inspired by the past,
inventing the future ;)

how that sounds ?


On Mon, Nov 4, 2013 at 11:21 PM, Yuriy Tymchuk yuriy.tymc...@me.com wrote:


 On 04 Nov 2013, at 22:13, Esteban A. Maringolo emaring...@gmail.com
 wrote:


 2013/11/4 Alexandre Bergel alexandre.ber...@me.com

 Why do you mention Smalltalk at all actually? In my classes, I simply say
 that Pharo is inspired by Smalltalk, if I ever mention it
 It is easier to be convinced by the future than by the past.


 To me trying to dissociate Smalltalk from Pharo is like trying to
 dissociate Smalltalk from VisualWorks (aka Cincom Smalltalk).
 Or worst... ANSI C from C++.

 I still mention Smalltalk, and I promote Pharo as an active Smalltalk
 dialect.

 Maybe it will be better to promote it plainly as Pharo…

 I just say that Pharo is what had to happen with Smalltalk in last 30
 years. We can think about Pharo in Smalltalk like Scala in Java. But Java
 had versions, and Smalltalk is treated just as only 80th year frozen
 snapshot. I’d say that Pharo is a Smalltalk of 2013 year. Oh, yes, but in
 public it’s better to say that Pharo is completely different ;)







 Esteban A. Maringolo





Re: [Pharo-dev] Github and Pharo

2013-11-04 Thread kilon alios
It does work indeed, commit wise. But can I git pull and git push with it ?


On Mon, Nov 4, 2013 at 10:50 PM, GOUBIER Thierry thierry.goub...@cea.frwrote:

  Alexandre,

 using Git with Pharo (2 and 3) works today on Mac and Linux with
 MonticelloFileTree and MonticelloFileTree-Git.

 FileSystem-Git will be a better way to do it (and more portable) :)

 Thierry

  --
 *De :* Pharo-dev [pharo-dev-boun...@lists.pharo.org] de la part de
 Alexandre Bergel [alexandre.ber...@me.com]
 *Date d'envoi :* lundi 4 novembre 2013 21:34
 *À :* Pharo Development List
 *Cc:* Pharo Development List

 *Objet :* Re: [Pharo-dev] Github and Pharo

   +1
 Everybody is waiting for using Git with Pharo. There is a real possibility
 to impact 100s of users...
 Go go go!

  Alexandre

  Alexandre

 Le 04-11-2013 à 15:35, kilon alios kilon.al...@gmail.com a écrit :

   Yeah I agree, this is an awesome project and thank you for your hard
 work :)


 On Mon, Nov 4, 2013 at 8:12 PM, GOUBIER Thierry thierry.goub...@cea.frwrote:

 Hi Max,

 I saw you were on it :) It's a huge effort you're undertaking. I learned
 a bit about git internal storage stepping through the code.

 Thierry

 
 De : Pharo-dev [pharo-dev-boun...@lists.pharo.org] de la part de Max
 Leske [maxle...@gmail.com]
 Date d'envoi : lundi 4 novembre 2013 17:44
 À : Pharo Development List
 Objet : Re: [Pharo-dev] Github and Pharo

 FileSystem-Git is basically in alpha at the moment… I’m rewriting it.


 On 04.11.2013, at 17:04, Goubier Thierry thierry.goub...@cea.fr wrote:

  Ok, I tried a bit with FileSystem-Git, but it seems there is still a
 bit of work to do...
 
  I tried on one of my work repository, and:
  - it failed trying to uft8convert a packed data file.
  So I corrected the error (get the stream as binary!) and
  - It failed looking for one of the commit IDs
  I found the ref in a pack file; apparently, it's not looking in there...
  I'm forcing a read of the pack files in there
  - Yet another utf8convert error on binary data
  Corrected, I got the pack files, but the index isn't telling me much.
  I tried to list the objects in it... Unknown compression method error.
 
  There's a huge amount of code in there, it's a bit frightening. I think
 I'll stay with OSProcess a bit longer ;)
 
  Thierry
 
  Le 04/11/2013 14:28, Goubier Thierry a écrit :
 
 
  Le 04/11/2013 14:09, David T. Lewis a écrit :
  On Mon, Nov 04, 2013 at 01:58:29PM +0100, Goubier Thierry wrote:
 
 
  Le 04/11/2013 12:11, kilon alios a ?crit :
  yeap filetree did the trick here. However it does not allow to
 browse
  through the git commits as gitfiletree does, the only commit
 available
  is the last commit.
 
  I took a look at CommandShell and friends and they all look pretty
 much
  very broken. For example in workspace I executed
  [ CommandShellTranscript open.] and trying ls or dir it creates
 an
  error because it add C path inside pharo subdirectories. Dont know
 if
  this is normal behavior.
 
  Use CommandShell open rather than CommandShellTranscript open.
 
 
 
  I hope someone with more knowledge than me of OSProcess under windows
  will have a look :)
 
  OSProcess support for Windows is incomplete, so this will probably not
  do what you need. If the OSProcess is included in the Windows VM, it
 will
  let you run a Windows program, but it will not do most of the other
  things
  that you expect from OSProcess.
 
  Check http://www.squeaksource.com/ProcessWrapper.html for a possible
  alternative.
 
  Thanks Dave; no easy solution on that, it seems. I'll have a look then
  with FileSystem-Git, this one may be a more portable solution.
 
  Windows is still a world apart from the rest :(
 
  Thierry
 
  --
  Thierry Goubier
  CEA list
  Laboratoire des Fondations des Systèmes Temps Réel Embarqués
  91191 Gif sur Yvette Cedex
  France
  Phone/Fax: +33 (0) 1 69 08 32 92 / 83 95
 







Re: [Pharo-dev] Github and Pharo

2013-11-04 Thread GOUBIER Thierry
Doing git pull and git push...

As it stands, git push would be easy: my idea would be to add a button to the 
repository browser to do a push... Or add a setting(*) to do a push after each 
commit, or both.

git pull, however... a git pull can create conflicts, and it would be a bit 
messy to try a pull, fail with conflicts (a pull does a merge) and let the 
Pharo user drop to the command line to try to clean up the mess :( git fetch is 
a bit safer, but may require some command line work to merge the fetched 
changes to the current branch. Git is complex.

The git clone could also be done in Pharo.

Thierry

(*) Settings don't play well with absent classes on first load :(


De : Pharo-dev [pharo-dev-boun...@lists.pharo.org] de la part de kilon alios 
[kilon.al...@gmail.com]
Date d'envoi : lundi 4 novembre 2013 23:19
À : Pharo Development List
Objet : Re: [Pharo-dev] Github and Pharo

It does work indeed, commit wise. But can I git pull and git push with it ?


On Mon, Nov 4, 2013 at 10:50 PM, GOUBIER Thierry 
thierry.goub...@cea.frmailto:thierry.goub...@cea.fr wrote:
Alexandre,

using Git with Pharo (2 and 3) works today on Mac and Linux with 
MonticelloFileTree and MonticelloFileTree-Git.

FileSystem-Git will be a better way to do it (and more portable) :)

Thierry


De : Pharo-dev 
[pharo-dev-boun...@lists.pharo.orgmailto:pharo-dev-boun...@lists.pharo.org] 
de la part de Alexandre Bergel 
[alexandre.ber...@me.commailto:alexandre.ber...@me.com]
Date d'envoi : lundi 4 novembre 2013 21:34
À : Pharo Development List
Cc: Pharo Development List

Objet : Re: [Pharo-dev] Github and Pharo

+1
Everybody is waiting for using Git with Pharo. There is a real possibility to 
impact 100s of users...
Go go go!

Alexandre

Alexandre

Le 04-11-2013 à 15:35, kilon alios 
kilon.al...@gmail.commailto:kilon.al...@gmail.com a écrit :

Yeah I agree, this is an awesome project and thank you for your hard work :)


On Mon, Nov 4, 2013 at 8:12 PM, GOUBIER Thierry 
thierry.goub...@cea.frmailto:thierry.goub...@cea.fr wrote:
Hi Max,

I saw you were on it :) It's a huge effort you're undertaking. I learned a bit 
about git internal storage stepping through the code.

Thierry


De : Pharo-dev 
[pharo-dev-boun...@lists.pharo.orgmailto:pharo-dev-boun...@lists.pharo.org] 
de la part de Max Leske [maxle...@gmail.commailto:maxle...@gmail.com]
Date d'envoi : lundi 4 novembre 2013 17:44
À : Pharo Development List
Objet : Re: [Pharo-dev] Github and Pharo

FileSystem-Git is basically in alpha at the moment… I’m rewriting it.


On 04.11.2013, at 17:04, Goubier Thierry 
thierry.goub...@cea.frmailto:thierry.goub...@cea.fr wrote:

 Ok, I tried a bit with FileSystem-Git, but it seems there is still a bit of 
 work to do...

 I tried on one of my work repository, and:
 - it failed trying to uft8convert a packed data file.
 So I corrected the error (get the stream as binary!) and
 - It failed looking for one of the commit IDs
 I found the ref in a pack file; apparently, it's not looking in there...
 I'm forcing a read of the pack files in there
 - Yet another utf8convert error on binary data
 Corrected, I got the pack files, but the index isn't telling me much.
 I tried to list the objects in it... Unknown compression method error.

 There's a huge amount of code in there, it's a bit frightening. I think I'll 
 stay with OSProcess a bit longer ;)

 Thierry

 Le 04/11/2013 14:28, Goubier Thierry a écrit :


 Le 04/11/2013 14:09, David T. Lewis a écrit :
 On Mon, Nov 04, 2013 at 01:58:29PM +0100, Goubier Thierry wrote:


 Le 04/11/2013 12:11, kilon alios a ?crit :
 yeap filetree did the trick here. However it does not allow to browse
 through the git commits as gitfiletree does, the only commit available
 is the last commit.

 I took a look at CommandShell and friends and they all look pretty much
 very broken. For example in workspace I executed
 [ CommandShellTranscript open.] and trying ls or dir it creates an
 error because it add C path inside pharo subdirectories. Dont know if
 this is normal behavior.

 Use CommandShell open rather than CommandShellTranscript open.



 I hope someone with more knowledge than me of OSProcess under windows
 will have a look :)

 OSProcess support for Windows is incomplete, so this will probably not
 do what you need. If the OSProcess is included in the Windows VM, it will
 let you run a Windows program, but it will not do most of the other
 things
 that you expect from OSProcess.

 Check http://www.squeaksource.com/ProcessWrapper.html for a possible
 alternative.

 Thanks Dave; no easy solution on that, it seems. I'll have a look then
 with FileSystem-Git, this one may be a more portable solution.

 Windows is still a world apart from the rest :(

 Thierry

 --
 Thierry Goubier
 CEA list
 Laboratoire des Fondations des Systèmes Temps Réel Embarqués
 91191 Gif sur Yvette Cedex
 France
 Phone/Fax: +33 (0) 1 69 

Re: [Pharo-dev] Feature request poll

2013-11-04 Thread Yuriy Tymchuk
Sounds like I should get back to work :)

On 04 Nov 2013, at 23:19, kilon alios kilon.al...@gmail.com wrote:

 I think now Pharo as Pharo. It stands on its own get inspired by the past, 
 inventing the future ;) 
 
 how that sounds ? 
 
 
 On Mon, Nov 4, 2013 at 11:21 PM, Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 
 On 04 Nov 2013, at 22:13, Esteban A. Maringolo emaring...@gmail.com wrote:
 
 
 2013/11/4 Alexandre Bergel alexandre.ber...@me.com
 Why do you mention Smalltalk at all actually? In my classes, I simply say 
 that Pharo is inspired by Smalltalk, if I ever mention it
 It is easier to be convinced by the future than by the past. 
 
 
 To me trying to dissociate Smalltalk from Pharo is like trying to dissociate 
 Smalltalk from VisualWorks (aka Cincom Smalltalk).
 Or worst... ANSI C from C++.
 
 I still mention Smalltalk, and I promote Pharo as an active Smalltalk 
 dialect.
 
 Maybe it will be better to promote it plainly as Pharo…
 I just say that Pharo is what had to happen with Smalltalk in last 30 years. 
 We can think about Pharo in Smalltalk like Scala in Java. But Java had 
 versions, and Smalltalk is treated just as only 80th year frozen snapshot. 
 I’d say that Pharo is a Smalltalk of 2013 year. Oh, yes, but in public it’s 
 better to say that Pharo is completely different ;)
 
 
 
 
 
 
 
 Esteban A. Maringolo 
 
 



[Pharo-dev] Latest Xcode to Compile VM

2013-11-04 Thread Sean P. DeNigris
What's the latest Xcode version successfully used to compile the Pharo VM? I
don't want to upgrade past the maintainers...



-
Cheers,
Sean
--
View this message in context: 
http://forum.world.st/Latest-Xcode-to-Compile-VM-tp4719249.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] Feature request poll

2013-11-04 Thread Tudor Girba
Pharo is Pharo. And we should promote it like that.
http://www.tudorgirba.com/blog/pharo-is-pharo

Doru


On Mon, Nov 4, 2013 at 11:19 PM, kilon alios kilon.al...@gmail.com wrote:

 I think now Pharo as Pharo. It stands on its own get inspired by the past,
 inventing the future ;)

 how that sounds ?


 On Mon, Nov 4, 2013 at 11:21 PM, Yuriy Tymchuk yuriy.tymc...@me.comwrote:


 On 04 Nov 2013, at 22:13, Esteban A. Maringolo emaring...@gmail.com
 wrote:


 2013/11/4 Alexandre Bergel alexandre.ber...@me.com

 Why do you mention Smalltalk at all actually? In my classes, I simply
 say that Pharo is inspired by Smalltalk, if I ever mention it
 It is easier to be convinced by the future than by the past.


 To me trying to dissociate Smalltalk from Pharo is like trying to
 dissociate Smalltalk from VisualWorks (aka Cincom Smalltalk).
 Or worst... ANSI C from C++.

 I still mention Smalltalk, and I promote Pharo as an active Smalltalk
 dialect.

 Maybe it will be better to promote it plainly as Pharo…

 I just say that Pharo is what had to happen with Smalltalk in last 30
 years. We can think about Pharo in Smalltalk like Scala in Java. But Java
 had versions, and Smalltalk is treated just as only 80th year frozen
 snapshot. I’d say that Pharo is a Smalltalk of 2013 year. Oh, yes, but in
 public it’s better to say that Pharo is completely different ;)







 Esteban A. Maringolo






-- 
www.tudorgirba.com

Every thing has its own flow


Re: [Pharo-dev] Latest Xcode to Compile VM

2013-11-04 Thread Camillo Bruni
On 2013-11-05, at 05:07, Sean P. DeNigris s...@clipperadams.com wrote:
 What's the latest Xcode version successfully used to compile the Pharo VM? I
 don't want to upgrade past the maintainers...

I think everybody upgraded to 10.9 but did not have time yet to compile the VM 
:P.
The Mac slave is using a rather old OS and an even older Xcode...


signature.asc
Description: Message signed with OpenPGP using GPGMail