Re: [Pharo-dev] WhatsUp from: 2013-11-04 until: 2013-11-17
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
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
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
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
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
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]
Branch: refs/tags/30546 Home: https://github.com/pharo-project/pharo-core
Re: [Pharo-dev] Feature request poll
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
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
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
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
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
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
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?
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/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?
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
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
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
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
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
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
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?
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
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)
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 ?
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
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?
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
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
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
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?
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?
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?
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
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?
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
### 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 ?
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
### 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
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
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
### 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
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:
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:
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:
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:
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?
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?
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
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
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
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?
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:
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
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
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/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
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
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
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
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
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
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
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
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
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
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