Re: [Pharo-dev] [pharo-project/pharo-core] 4d4f25: 40358

2014-11-07 Thread stepharo

Marcus
we could have turn the rule to the inverse. Menu item should not get 
translated.


Stef

On 6/11/14 20:28, GitHub wrote:

14409 remove RBTranslateLiteralsInMenusRule
https://pharo.fogbugz.com/f/cases/14409





[Pharo-dev] [update 3.0] #30860

2014-11-07 Thread Marcus Denker
30860
-

14405 (backport pharo3) FileOut creates invalid comment entries for classes 
with class side methods
https://pharo.fogbugz.com/f/cases/14405




Re: [Pharo-dev] [Vm-dev] Re: PharoVM - Build issues on CentOS6.5

2014-11-07 Thread Nicolai Hess
2014-11-07 10:40 GMT+01:00 p...@highoctane.be p...@highoctane.be:


 I removed the thirdparty things for libs like ssl sdl etc. Now, things are
 building.

 What to do to get these externals to work?
 ​
 Phil




more recent cmake version ?

https://www.mail-archive.com/pharo-dev@lists.pharo.org/msg20781.html


Re: [Pharo-dev] [Vm-dev] Re: PharoVM - Build issues on CentOS6.5

2014-11-07 Thread p...@highoctane.be
[philippeback@CENTOSDEV frontend]$ cmake --version
cmake version 2.6-patch 4

Maybe.

I did a yum upgrade cmake and now have

​$ cmake --version
cmake version 2.8.12.2

Will try that out.

Thx.


Re: [Pharo-dev] PharoVM - Build issues on CentOS6.5

2014-11-07 Thread p...@highoctane.be
No need as dependencies get loaded and built by the VM build process.

Works now, it was the CMake version bump that was needed.

Thx all for the help. (Can't we get a CentOS build slave???)

Phil


On Fri, Nov 7, 2014 at 10:55 AM, Christophe Demarey 
christophe.dema...@inria.fr wrote:


 Le 7 nov. 2014 à 10:40, p...@highoctane.be a écrit :

  I removed the thirdparty things for libs like ssl sdl etc. Now, things
 are building.
 
  What to do to get these externals to work?

 stupid question but did you try to install libssl, libsdl and co on your
 cent OS (using yum or whatever)?




Re: [Pharo-dev] PharoVM - Build issues on CentOS6.5

2014-11-07 Thread Esteban Lorenzano
for now, you do not need those dependencies. 
I’m preparing the vm for use libgit2 with monticello (not ready yet) and to 
render UI using sdl2 through OSWindow (also not ready yet). 
In the future you will need them to improve your pharo experience, but for now 
you can safely skip it. 

nothing changed in the way cmake files are built, but previous versions didn’t 
have third party libraries for unix (now we have them). 
if cmake is failing to download the libraries, it can happen because some 
versions/distributions of cmake does not allow ssl downloads… no idea how to 
help there, maybe an updated cmake helps, maybe not. 
but cmake tries always to download first from http://files.pharo.org/vm/src/lib 
http://files.pharo.org/vm/src/lib if it does not find it, maybe one 
interesting change is to add a previous check in some local repository (to do a 
simple copy instead a download). 
I can do that, but it will take some time, as always :)

Esteban


 On 07 Nov 2014, at 11:10, p...@highoctane.be wrote:
 
 No need as dependencies get loaded and built by the VM build process.
 
 Works now, it was the CMake version bump that was needed.
 
 Thx all for the help. (Can't we get a CentOS build slave???)
 
 Phil
 
 
 On Fri, Nov 7, 2014 at 10:55 AM, Christophe Demarey 
 christophe.dema...@inria.fr mailto:christophe.dema...@inria.fr wrote:
 
 Le 7 nov. 2014 à 10:40, p...@highoctane.be mailto:p...@highoctane.be a 
 écrit :
 
  I removed the thirdparty things for libs like ssl sdl etc. Now, things are 
  building.
 
  What to do to get these externals to work?
 
 stupid question but did you try to install libssl, libsdl and co on your cent 
 OS (using yum or whatever)?
 
 



Re: [Pharo-dev] PharoVM - Build issues on CentOS6.5

2014-11-07 Thread p...@highoctane.be
Ok, understood.

Now, if someone puts a CentOS 6.5 slave somewhere I can put the Jenkins job
on it and bootstrap (as I do have a working CentOS VM to generate the
sources).

Phil



On Fri, Nov 7, 2014 at 11:52 AM, Esteban Lorenzano esteba...@gmail.com
wrote:

 for now, you do not need those dependencies.
 I’m preparing the vm for use libgit2 with monticello (not ready yet) and
 to render UI using sdl2 through OSWindow (also not ready yet).
 In the future you will need them to improve your pharo experience, but for
 now you can safely skip it.

 nothing changed in the way cmake files are built, but previous versions
 didn’t have third party libraries for unix (now we have them).
 if cmake is failing to download the libraries, it can happen because some
 versions/distributions of cmake does not allow ssl downloads… no idea how
 to help there, maybe an updated cmake helps, maybe not.
 but cmake tries always to download first from 
 *http://files.pharo.org/vm/src/lib
 http://files.pharo.org/vm/src/lib *if it does not find it, maybe one
 interesting change is to add a previous check in some local repository (to
 do a simple copy instead a download).
 I can do that, but it will take some time, as always :)

 Esteban


 On 07 Nov 2014, at 11:10, p...@highoctane.be wrote:

 No need as dependencies get loaded and built by the VM build process.

 Works now, it was the CMake version bump that was needed.

 Thx all for the help. (Can't we get a CentOS build slave???)

 Phil


 On Fri, Nov 7, 2014 at 10:55 AM, Christophe Demarey 
 christophe.dema...@inria.fr wrote:


 Le 7 nov. 2014 à 10:40, p...@highoctane.be a écrit :

  I removed the thirdparty things for libs like ssl sdl etc. Now, things
 are building.
 
  What to do to get these externals to work?

 stupid question but did you try to install libssl, libsdl and co on your
 cent OS (using yum or whatever)?






[Pharo-dev] [pharo-project/pharo-core] d6237a: 40360

2014-11-07 Thread GitHub
  Branch: refs/heads/4.0
  Home:   https://github.com/pharo-project/pharo-core
  Commit: d6237af950749d5cd9a8994eb1fc11c7fae874f9
  
https://github.com/pharo-project/pharo-core/commit/d6237af950749d5cd9a8994eb1fc11c7fae874f9
  Author: Jenkins Build Server bo...@pharo-project.org
  Date:   2014-11-07 (Fri, 07 Nov 2014)

  Changed paths:
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/README.md
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/class/accessing/project.st
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/class/development
 support/DevelopmentSupport.st
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/class/development
 support/validate.st
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/class/loading/load.st
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/class/loading/loadBleedingEdge.st
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/class/loading/loadDevelopment.st
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/class/metacello
 tool support/isMetacelloConfig.st
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/class/private/baseConfigurationClassIfAbsent_.st
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/class/private/ensureMetacello.st
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/class/private/ensureMetacelloBaseConfiguration.st
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/definition.st
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/instance/accessing/customProjectAttributes.st
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/instance/accessing/project.st
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/instance/baselines/baseline20_.st
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/instance/symbolic
 versions/development_.st
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/instance/symbolic
 versions/stable_.st
A 
ConfigurationOfGTInspectorCore.package/ConfigurationOfGTInspectorCore.class/instance/versions/version200_.st
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/README.md
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/class/accessing/project.st
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/class/development
 support/DevelopmentSupport.st
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/class/development
 support/validate.st
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/class/loading/load.st
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/class/loading/loadBleedingEdge.st
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/class/loading/loadDevelopment.st
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/class/metacello
 tool support/isMetacelloConfig.st
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/class/private/baseConfigurationClassIfAbsent_.st
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/class/private/ensureMetacello.st
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/class/private/ensureMetacelloBaseConfiguration.st
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/definition.st
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/instance/accessing/customProjectAttributes.st
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/instance/accessing/project.st
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/instance/baselines/baseline20_.st
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/instance/symbolic
 versions/development_.st
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/instance/symbolic
 versions/stable_.st
A 
ConfigurationOfGTPlaygroundCore.package/ConfigurationOfGTPlaygroundCore.class/instance/versions/version200_.st
A 
ConfigurationOfGlamourCore.package/ConfigurationOfGlamourCore.class/README.md
A 
ConfigurationOfGlamourCore.package/ConfigurationOfGlamourCore.class/class/accessing/project.st
A 
ConfigurationOfGlamourCore.package/ConfigurationOfGlamourCore.class/class/development
 support/DevelopmentSupport.st
A 

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

2014-11-07 Thread GitHub
  Branch: refs/tags/40360
  Home:   https://github.com/pharo-project/pharo-core


[Pharo-dev] StandardFileStreamopen:forWrite: serious isse...

2014-11-07 Thread p...@highoctane.be
Code (Transcript calls of mine)


open: fileName forWrite: writeMode
Open the file with the given name. If writeMode is true, allow writing,
otherwise open the file in read-only mode.
| f |
f := fileName asVmPathName.
Transcript log: 'File:', f.

fileID := StandardFileStream retryWithGC:[self primOpen: f writable:
writeMode]
until:[:id| id notNil]
forFileNamed: fileName.
fileID ifNil: [
'  Cannot get fileID' logCr.
^ nil].  allows sender to detect failure
('  Got fileID: ', fileID printString) logCr.
name := fileName.
self register.
rwmode := writeMode.
buffer1 := String new: 1.
self enableReadBuffering

I have a ton of files to open. And some were slow to return a problem.

After digging, I got to the method above.

Now at one moment, I get nil fileIDs.

What is that retryWithGC: until: thing???

retryWithGC: execBlock until: testBlock forFileNamed: fullName
Re-implemented to only force GC if a file with the given name exists |
blockValue foundIt | blockValue := execBlock value. (testBlock value:
blockValue) ifTrue:[^blockValue]. See if we have a file with the given
name foundIt := self registry keys hold on strongly for now
anySatisfy:[:file| file name sameAs: fullName]. foundIt
ifFalse:[^blockValue]. Smalltalk garbageCollectMost. blockValue :=
execBlock value. (testBlock value: blockValue) ifTrue:[^blockValue].
Smalltalk garbageCollect. ^execBlock value.


Huh, yeah, some lookup going on in a registry...

and GCs? For file opens?

I am doing these opens in a webapp, what I want is to know if the file is
there or not and fail fast, not have all of this thing (debugging kind of
nightmarish...)

I have tested with 100 files and of course it all works since I get the IDs
back from the registry.

But at one point, it all fails. Registry full?

What to do here?

TIA
Phil


Re: [Pharo-dev] StandardFileStreamopen:forWrite: serious isse...

2014-11-07 Thread Sven Van Caekenberghe
Yes, weird code ;-)

The registry seems unlimited, it is just a WeakRegistry.
I guess the GC is there to trigger weak reference cleanup.
On the other hand, there is always a limited on the number of open files at the 
OS level.

The main thing is, if you use tons of (open) files, to always close them as 
fast as possible, and to not let that happen automatically or lose them in the 
case of exceptions. 

 On 07 Nov 2014, at 12:42, p...@highoctane.be wrote:
 
 Code (Transcript calls of mine)
 
 
 open: fileName forWrite: writeMode 
   Open the file with the given name. If writeMode is true, allow 
 writing, otherwise open the file in read-only mode.
   | f |
   f := fileName asVmPathName.
   Transcript log: 'File:', f.
 
   fileID := StandardFileStream retryWithGC:[self primOpen: f writable: 
 writeMode] 
   until:[:id| id notNil] 
   forFileNamed: fileName.
   fileID ifNil: [
   '  Cannot get fileID' logCr.
   ^ nil].  allows sender to detect failure
   ('  Got fileID: ', fileID printString) logCr.
   name := fileName.
   self register.
   rwmode := writeMode.
   buffer1 := String new: 1.
   self enableReadBuffering
   
 
 I have a ton of files to open. And some were slow to return a problem.
 
 After digging, I got to the method above.
 
 Now at one moment, I get nil fileIDs.
 
 What is that retryWithGC: until: thing???
 
 retryWithGC: execBlock until: testBlock forFileNamed: fullName
   Re-implemented to only force GC if a file with the given name exists
   | blockValue foundIt |
   blockValue := execBlock value.
   (testBlock value: blockValue) ifTrue:[^blockValue].
   See if we have a file with the given name
   foundIt := self registry keys hold on strongly for now 
   anySatisfy:[:file| file name sameAs: fullName].
   foundIt ifFalse:[^blockValue].
   Smalltalk garbageCollectMost.
   blockValue := execBlock value.
   (testBlock value: blockValue) ifTrue:[^blockValue].
   Smalltalk garbageCollect.
   ^execBlock value.
 
 
 
 Huh, yeah, some lookup going on in a registry... 
 
 and GCs? For file opens?
 
 I am doing these opens in a webapp, what I want is to know if the file is 
 there or not and fail fast, not have all of this thing (debugging kind of 
 nightmarish...)
 
 I have tested with 100 files and of course it all works since I get the IDs 
 back from the registry.
 
 But at one point, it all fails. Registry full?
 
 What to do here?
 
 TIA
 Phil
 
 
 
 




Re: [Pharo-dev] StandardFileStreamopen:forWrite: serious isse...

2014-11-07 Thread p...@highoctane.be
Well, I am not keeping things open... (some local vars to get some easier
stepping)


measurementForTarget: aTargetId onSection: aSection at: aRegistryKey
| item fileRef |
item := 'ACQ_', aTargetId, '-', aSection, '_', aRegistryKey,'.txt'.
 fileRef := self monitoringDirectory / item.
 ^ [ fileRef readStreamDo: [ :s | s next: Config maxFileCharsToRead ] ]
on: Error do: [ :ex |
self warn: ('Cannot measure for target {1} on section {2} and registry key
{3}' format: { aTargetId asString. aSection asString. aRegistryKey asString
}).
ex return: ''
]

It works for a couple files but at one point, it just doesn't open things.
Even if files are closed.

When reusing the same files over and over, it works (like readStreamDo: for
1 times, I get the contents back).


I've simplified the call to retryWithGC: ... to avoid the registry
completely:

retryWithGC: execBlock until: testBlock forFileNamed: fullName
Re-implemented to only force GC if a file with the given name exists
| blockValue  |
blockValue := execBlock value.
(testBlock value: blockValue) ifTrue:[^blockValue].
^blockValue

But the symptom is the same.


Time to go into the filePlugin?

Phil


On Fri, Nov 7, 2014 at 12:59 PM, Sven Van Caekenberghe s...@stfx.eu wrote:

 Yes, weird code ;-)

 The registry seems unlimited, it is just a WeakRegistry.
 I guess the GC is there to trigger weak reference cleanup.
 On the other hand, there is always a limited on the number of open files
 at the OS level.

 The main thing is, if you use tons of (open) files, to always close them
 as fast as possible, and to not let that happen automatically or lose them
 in the case of exceptions.

  On 07 Nov 2014, at 12:42, p...@highoctane.be wrote:
 
  Code (Transcript calls of mine)
 
 
  open: fileName forWrite: writeMode
Open the file with the given name. If writeMode is true, allow
 writing, otherwise open the file in read-only mode.
| f |
f := fileName asVmPathName.
Transcript log: 'File:', f.
 
fileID := StandardFileStream retryWithGC:[self primOpen: f
 writable: writeMode]
until:[:id| id notNil]
forFileNamed: fileName.
fileID ifNil: [
'  Cannot get fileID' logCr.
^ nil].  allows sender to detect failure
('  Got fileID: ', fileID printString) logCr.
name := fileName.
self register.
rwmode := writeMode.
buffer1 := String new: 1.
self enableReadBuffering
 
 
  I have a ton of files to open. And some were slow to return a problem.
 
  After digging, I got to the method above.
 
  Now at one moment, I get nil fileIDs.
 
  What is that retryWithGC: until: thing???
 
  retryWithGC: execBlock until: testBlock forFileNamed: fullName
Re-implemented to only force GC if a file with the given name
 exists
| blockValue foundIt |
blockValue := execBlock value.
(testBlock value: blockValue) ifTrue:[^blockValue].
See if we have a file with the given name
foundIt := self registry keys hold on strongly for now
anySatisfy:[:file| file name sameAs: fullName].
foundIt ifFalse:[^blockValue].
Smalltalk garbageCollectMost.
blockValue := execBlock value.
(testBlock value: blockValue) ifTrue:[^blockValue].
Smalltalk garbageCollect.
^execBlock value.
 
 
 
  Huh, yeah, some lookup going on in a registry...
 
  and GCs? For file opens?
 
  I am doing these opens in a webapp, what I want is to know if the file
 is there or not and fail fast, not have all of this thing (debugging kind
 of nightmarish...)
 
  I have tested with 100 files and of course it all works since I get the
 IDs back from the registry.
 
  But at one point, it all fails. Registry full?
 
  What to do here?
 
  TIA
  Phil
 
 
 
 





Re: [Pharo-dev] StandardFileStreamopen:forWrite: serious isse...

2014-11-07 Thread p...@highoctane.be
I've now set ulimit -n 3000 and things are working.

Sorry for the noise, but this GC thing is still weird.

Phil


On Fri, Nov 7, 2014 at 12:59 PM, Sven Van Caekenberghe s...@stfx.eu wrote:

 Yes, weird code ;-)

 The registry seems unlimited, it is just a WeakRegistry.
 I guess the GC is there to trigger weak reference cleanup.
 On the other hand, there is always a limited on the number of open files
 at the OS level.

 The main thing is, if you use tons of (open) files, to always close them
 as fast as possible, and to not let that happen automatically or lose them
 in the case of exceptions.

  On 07 Nov 2014, at 12:42, p...@highoctane.be wrote:
 
  Code (Transcript calls of mine)
 
 
  open: fileName forWrite: writeMode
Open the file with the given name. If writeMode is true, allow
 writing, otherwise open the file in read-only mode.
| f |
f := fileName asVmPathName.
Transcript log: 'File:', f.
 
fileID := StandardFileStream retryWithGC:[self primOpen: f
 writable: writeMode]
until:[:id| id notNil]
forFileNamed: fileName.
fileID ifNil: [
'  Cannot get fileID' logCr.
^ nil].  allows sender to detect failure
('  Got fileID: ', fileID printString) logCr.
name := fileName.
self register.
rwmode := writeMode.
buffer1 := String new: 1.
self enableReadBuffering
 
 
  I have a ton of files to open. And some were slow to return a problem.
 
  After digging, I got to the method above.
 
  Now at one moment, I get nil fileIDs.
 
  What is that retryWithGC: until: thing???
 
  retryWithGC: execBlock until: testBlock forFileNamed: fullName
Re-implemented to only force GC if a file with the given name
 exists
| blockValue foundIt |
blockValue := execBlock value.
(testBlock value: blockValue) ifTrue:[^blockValue].
See if we have a file with the given name
foundIt := self registry keys hold on strongly for now
anySatisfy:[:file| file name sameAs: fullName].
foundIt ifFalse:[^blockValue].
Smalltalk garbageCollectMost.
blockValue := execBlock value.
(testBlock value: blockValue) ifTrue:[^blockValue].
Smalltalk garbageCollect.
^execBlock value.
 
 
 
  Huh, yeah, some lookup going on in a registry...
 
  and GCs? For file opens?
 
  I am doing these opens in a webapp, what I want is to know if the file
 is there or not and fail fast, not have all of this thing (debugging kind
 of nightmarish...)
 
  I have tested with 100 files and of course it all works since I get the
 IDs back from the registry.
 
  But at one point, it all fails. Registry full?
 
  What to do here?
 
  TIA
  Phil
 
 
 
 





Re: [Pharo-dev] StandardFileStreamopen:forWrite: serious isse...

2014-11-07 Thread Sven Van Caekenberghe

 On 07 Nov 2014, at 13:16, p...@highoctane.be wrote:
 
 I've now set ulimit -n 3000 and things are working.
 
 Sorry for the noise, but this GC thing is still weird.

That would mean that you keep 1000s of files open concurrently.

Anyway, I just wrote this as a test:

'/tmp/pharo-files-test/' asFileReference ensureCreateDirectory in: [ :base |
0 to: 99 do: [ :each |
base / each asString writeStreamDo: [ :out | 
out print: each; crlf;  each asWords; crlf ] ] ].

10 timesRepeat: [ 
| file |
file := 99 atRandom asString.
'/tmp/pharo-files-test/' asFileReference / file readStreamDo: [ :in |
self assert: (in upToEnd beginsWith: file) ] ]

And it worked fine.

 Phil
 
 
 On Fri, Nov 7, 2014 at 12:59 PM, Sven Van Caekenberghe s...@stfx.eu wrote:
 Yes, weird code ;-)
 
 The registry seems unlimited, it is just a WeakRegistry.
 I guess the GC is there to trigger weak reference cleanup.
 On the other hand, there is always a limited on the number of open files at 
 the OS level.
 
 The main thing is, if you use tons of (open) files, to always close them as 
 fast as possible, and to not let that happen automatically or lose them in 
 the case of exceptions.
 
  On 07 Nov 2014, at 12:42, p...@highoctane.be wrote:
 
  Code (Transcript calls of mine)
 
 
  open: fileName forWrite: writeMode
Open the file with the given name. If writeMode is true, allow 
  writing, otherwise open the file in read-only mode.
| f |
f := fileName asVmPathName.
Transcript log: 'File:', f.
 
fileID := StandardFileStream retryWithGC:[self primOpen: f writable: 
  writeMode]
until:[:id| id notNil]
forFileNamed: fileName.
fileID ifNil: [
'  Cannot get fileID' logCr.
^ nil].  allows sender to detect failure
('  Got fileID: ', fileID printString) logCr.
name := fileName.
self register.
rwmode := writeMode.
buffer1 := String new: 1.
self enableReadBuffering
 
 
  I have a ton of files to open. And some were slow to return a problem.
 
  After digging, I got to the method above.
 
  Now at one moment, I get nil fileIDs.
 
  What is that retryWithGC: until: thing???
 
  retryWithGC: execBlock until: testBlock forFileNamed: fullName
Re-implemented to only force GC if a file with the given name exists
| blockValue foundIt |
blockValue := execBlock value.
(testBlock value: blockValue) ifTrue:[^blockValue].
See if we have a file with the given name
foundIt := self registry keys hold on strongly for now
anySatisfy:[:file| file name sameAs: fullName].
foundIt ifFalse:[^blockValue].
Smalltalk garbageCollectMost.
blockValue := execBlock value.
(testBlock value: blockValue) ifTrue:[^blockValue].
Smalltalk garbageCollect.
^execBlock value.
 
 
 
  Huh, yeah, some lookup going on in a registry...
 
  and GCs? For file opens?
 
  I am doing these opens in a webapp, what I want is to know if the file is 
  there or not and fail fast, not have all of this thing (debugging kind of 
  nightmarish...)
 
  I have tested with 100 files and of course it all works since I get the IDs 
  back from the registry.
 
  But at one point, it all fails. Registry full?
 
  What to do here?
 
  TIA
  Phil
 
 
 
 
 
 
 




Re: [Pharo-dev] StandardFileStreamopen:forWrite: serious isse...

2014-11-07 Thread p...@highoctane.be
I did tests like that and they work ok.

I am still puzzled on why this happens in my code as only do these
readStreamDo: [] and nothing is in parallel.

I've been putting more caching in my own code but still, there is something
hiding.

Phil


On Fri, Nov 7, 2014 at 1:27 PM, Sven Van Caekenberghe s...@stfx.eu wrote:


  On 07 Nov 2014, at 13:16, p...@highoctane.be wrote:
 
  I've now set ulimit -n 3000 and things are working.
 
  Sorry for the noise, but this GC thing is still weird.

 That would mean that you keep 1000s of files open concurrently.

 Anyway, I just wrote this as a test:

 '/tmp/pharo-files-test/' asFileReference ensureCreateDirectory in: [ :base
 |
 0 to: 99 do: [ :each |
 base / each asString writeStreamDo: [ :out |
 out print: each; crlf;  each asWords; crlf ] ] ].

 10 timesRepeat: [
 | file |
 file := 99 atRandom asString.
 '/tmp/pharo-files-test/' asFileReference / file readStreamDo: [
 :in |
 self assert: (in upToEnd beginsWith: file) ] ]

 And it worked fine.

  Phil
 
 
  On Fri, Nov 7, 2014 at 12:59 PM, Sven Van Caekenberghe s...@stfx.eu
 wrote:
  Yes, weird code ;-)
 
  The registry seems unlimited, it is just a WeakRegistry.
  I guess the GC is there to trigger weak reference cleanup.
  On the other hand, there is always a limited on the number of open files
 at the OS level.
 
  The main thing is, if you use tons of (open) files, to always close them
 as fast as possible, and to not let that happen automatically or lose them
 in the case of exceptions.
 
   On 07 Nov 2014, at 12:42, p...@highoctane.be wrote:
  
   Code (Transcript calls of mine)
  
  
   open: fileName forWrite: writeMode
 Open the file with the given name. If writeMode is true, allow
 writing, otherwise open the file in read-only mode.
 | f |
 f := fileName asVmPathName.
 Transcript log: 'File:', f.
  
 fileID := StandardFileStream retryWithGC:[self primOpen: f
 writable: writeMode]
 until:[:id| id notNil]
 forFileNamed: fileName.
 fileID ifNil: [
 '  Cannot get fileID' logCr.
 ^ nil].  allows sender to detect failure
 ('  Got fileID: ', fileID printString) logCr.
 name := fileName.
 self register.
 rwmode := writeMode.
 buffer1 := String new: 1.
 self enableReadBuffering
  
  
   I have a ton of files to open. And some were slow to return a problem.
  
   After digging, I got to the method above.
  
   Now at one moment, I get nil fileIDs.
  
   What is that retryWithGC: until: thing???
  
   retryWithGC: execBlock until: testBlock forFileNamed: fullName
 Re-implemented to only force GC if a file with the given name
 exists
 | blockValue foundIt |
 blockValue := execBlock value.
 (testBlock value: blockValue) ifTrue:[^blockValue].
 See if we have a file with the given name
 foundIt := self registry keys hold on strongly for now
 anySatisfy:[:file| file name sameAs: fullName].
 foundIt ifFalse:[^blockValue].
 Smalltalk garbageCollectMost.
 blockValue := execBlock value.
 (testBlock value: blockValue) ifTrue:[^blockValue].
 Smalltalk garbageCollect.
 ^execBlock value.
  
  
  
   Huh, yeah, some lookup going on in a registry...
  
   and GCs? For file opens?
  
   I am doing these opens in a webapp, what I want is to know if the file
 is there or not and fail fast, not have all of this thing (debugging kind
 of nightmarish...)
  
   I have tested with 100 files and of course it all works since I get
 the IDs back from the registry.
  
   But at one point, it all fails. Registry full?
  
   What to do here?
  
   TIA
   Phil
  
  
  
  
 
 
 





Re: [Pharo-dev] StandardFileStreamopen:forWrite: serious isse...

2014-11-07 Thread Sven Van Caekenberghe

 On 07 Nov 2014, at 13:42, p...@highoctane.be wrote:
 
 I did tests like that and they work ok.
 
 I am still puzzled on why this happens in my code as only do these 
 readStreamDo: [] and nothing is in parallel.
 
 I've been putting more caching in my own code but still, there is something 
 hiding.

Yes, I think so, happy hunting ;-)
You could try to hunt for instances and references when the error occurs.

 Phil
 
 
 On Fri, Nov 7, 2014 at 1:27 PM, Sven Van Caekenberghe s...@stfx.eu wrote:
 
  On 07 Nov 2014, at 13:16, p...@highoctane.be wrote:
 
  I've now set ulimit -n 3000 and things are working.
 
  Sorry for the noise, but this GC thing is still weird.
 
 That would mean that you keep 1000s of files open concurrently.
 
 Anyway, I just wrote this as a test:
 
 '/tmp/pharo-files-test/' asFileReference ensureCreateDirectory in: [ :base |
 0 to: 99 do: [ :each |
 base / each asString writeStreamDo: [ :out |
 out print: each; crlf;  each asWords; crlf ] ] ].
 
 10 timesRepeat: [
 | file |
 file := 99 atRandom asString.
 '/tmp/pharo-files-test/' asFileReference / file readStreamDo: [ :in |
 self assert: (in upToEnd beginsWith: file) ] ]
 
 And it worked fine.
 
  Phil
 
 
  On Fri, Nov 7, 2014 at 12:59 PM, Sven Van Caekenberghe s...@stfx.eu wrote:
  Yes, weird code ;-)
 
  The registry seems unlimited, it is just a WeakRegistry.
  I guess the GC is there to trigger weak reference cleanup.
  On the other hand, there is always a limited on the number of open files at 
  the OS level.
 
  The main thing is, if you use tons of (open) files, to always close them as 
  fast as possible, and to not let that happen automatically or lose them in 
  the case of exceptions.
 
   On 07 Nov 2014, at 12:42, p...@highoctane.be wrote:
  
   Code (Transcript calls of mine)
  
  
   open: fileName forWrite: writeMode
 Open the file with the given name. If writeMode is true, allow 
   writing, otherwise open the file in read-only mode.
 | f |
 f := fileName asVmPathName.
 Transcript log: 'File:', f.
  
 fileID := StandardFileStream retryWithGC:[self primOpen: f 
   writable: writeMode]
 until:[:id| id notNil]
 forFileNamed: fileName.
 fileID ifNil: [
 '  Cannot get fileID' logCr.
 ^ nil].  allows sender to detect failure
 ('  Got fileID: ', fileID printString) logCr.
 name := fileName.
 self register.
 rwmode := writeMode.
 buffer1 := String new: 1.
 self enableReadBuffering
  
  
   I have a ton of files to open. And some were slow to return a problem.
  
   After digging, I got to the method above.
  
   Now at one moment, I get nil fileIDs.
  
   What is that retryWithGC: until: thing???
  
   retryWithGC: execBlock until: testBlock forFileNamed: fullName
 Re-implemented to only force GC if a file with the given name 
   exists
 | blockValue foundIt |
 blockValue := execBlock value.
 (testBlock value: blockValue) ifTrue:[^blockValue].
 See if we have a file with the given name
 foundIt := self registry keys hold on strongly for now
 anySatisfy:[:file| file name sameAs: fullName].
 foundIt ifFalse:[^blockValue].
 Smalltalk garbageCollectMost.
 blockValue := execBlock value.
 (testBlock value: blockValue) ifTrue:[^blockValue].
 Smalltalk garbageCollect.
 ^execBlock value.
  
  
  
   Huh, yeah, some lookup going on in a registry...
  
   and GCs? For file opens?
  
   I am doing these opens in a webapp, what I want is to know if the file is 
   there or not and fail fast, not have all of this thing (debugging kind of 
   nightmarish...)
  
   I have tested with 100 files and of course it all works since I get the 
   IDs back from the registry.
  
   But at one point, it all fails. Registry full?
  
   What to do here?
  
   TIA
   Phil
  
  
  
  
 
 
 
 
 
 




[Pharo-dev] Should Nautilus use Rubric?

2014-11-07 Thread Juraj Kubelka
Hi!

Is it worth to integrate Rubric into Nautilus? Or is there any reason not to do 
it?

Thank you a lot!
Juraj


Re: [Pharo-dev] Should Nautilus use Rubric?

2014-11-07 Thread Alain Plantec
Hi Juraj,

Rubric is in the image because of GT but I guess GT will use TxText when it will
be released as the default text editor. As a consequence, Rubric will be 
removed from the image.

For the record, Rubric is the reimplementation of PluggableTextMorph.
I consider it as an improvement over PluggableTextMorph but It uses the old 
text model.
TxText is much more sexy :)
So, I think it is not worth to integrate Rubric more.

Cheers
Alain

 On 7 nov. 2014, at 14:07, Juraj Kubelka juraj.kube...@gmail.com wrote:
 
 Hi!
 
 Is it worth to integrate Rubric into Nautilus? Or is there any reason not to 
 do it?
 
 Thank you a lot!
 Juraj




Re: [Pharo-dev] Should Nautilus use Rubric?

2014-11-07 Thread Juraj Kubelka
What is TxModel? Is it something which replaces Rubric? Or is it something we 
need to be able to integrate Rubric into Nautilus? What is the relation between 
TxModel and Rubric? 

Thanks!
Juraj

 On Nov 7, 2014, at 10:24 AM, Esteban Lorenzano esteba...@gmail.com wrote:
 
 I would say yes. 
 we would like to have rubric everywhere we need a real editor :)
 (while waiting for the new TxModel, this is the “less pain path”, IMO)
 
 Esteban
 
 On 07 Nov 2014, at 14:07, Juraj Kubelka juraj.kube...@gmail.com wrote:
 
 Hi!
 
 Is it worth to integrate Rubric into Nautilus? Or is there any reason not to 
 do it?
 
 Thank you a lot!
 Juraj
 
 




Re: [Pharo-dev] Should Nautilus use Rubric?

2014-11-07 Thread Norbert Hartl
I think we should submit TxModel to the vaporware awards 2014 :)

Norbert

 Am 07.11.2014 um 14:24 schrieb Esteban Lorenzano esteba...@gmail.com:
 
 I would say yes. 
 we would like to have rubric everywhere we need a real editor :)
 (while waiting for the new TxModel, this is the “less pain path”, IMO)
 
 Esteban
 
 On 07 Nov 2014, at 14:07, Juraj Kubelka juraj.kube...@gmail.com wrote:
 
 Hi!
 
 Is it worth to integrate Rubric into Nautilus? Or is there any reason not to 
 do it?
 
 Thank you a lot!
 Juraj
 
 




Re: [Pharo-dev] Should Nautilus use Rubric?

2014-11-07 Thread Alain Plantec
TxModel implements the text model of TxText.
http://smalltalkhub.com/mc/sig/TxText/main

There is no direct relation with Rubric. TxText is a completely fresh text 
model 
whereas Rubric is a kind of fork of PluggableTextMorph.
TxText is implemented with Athens and not Rubric.

Cheers
Alain

 On 7 nov. 2014, at 14:29, Juraj Kubelka juraj.kube...@gmail.com wrote:
 
 What is TxModel? Is it something which replaces Rubric? Or is it something we 
 need to be able to integrate Rubric into Nautilus? What is the relation 
 between TxModel and Rubric? 
 
 Thanks!
 Juraj
 
 On Nov 7, 2014, at 10:24 AM, Esteban Lorenzano esteba...@gmail.com wrote:
 
 I would say yes. 
 we would like to have rubric everywhere we need a real editor :)
 (while waiting for the new TxModel, this is the “less pain path”, IMO)
 
 Esteban
 
 On 07 Nov 2014, at 14:07, Juraj Kubelka juraj.kube...@gmail.com wrote:
 
 Hi!
 
 Is it worth to integrate Rubric into Nautilus? Or is there any reason not 
 to do it?
 
 Thank you a lot!
 Juraj
 
 
 
 




Re: [Pharo-dev] Should Nautilus use Rubric?

2014-11-07 Thread kilon alios
LOL :D

I dont think Igor would appreciate that ;)

On Fri, Nov 7, 2014 at 3:32 PM, Norbert Hartl norb...@hartl.name wrote:

 I think we should submit TxModel to the vaporware awards 2014 :)

 Norbert

  Am 07.11.2014 um 14:24 schrieb Esteban Lorenzano esteba...@gmail.com:
 
  I would say yes.
  we would like to have rubric everywhere we need a real editor :)
  (while waiting for the new TxModel, this is the “less pain path”, IMO)
 
  Esteban
 
  On 07 Nov 2014, at 14:07, Juraj Kubelka juraj.kube...@gmail.com
 wrote:
 
  Hi!
 
  Is it worth to integrate Rubric into Nautilus? Or is there any reason
 not to do it?
 
  Thank you a lot!
  Juraj
 
 





Re: [Pharo-dev] Should Nautilus use Rubric?

2014-11-07 Thread Alain Plantec

 On 7 nov. 2014, at 14:32, Norbert Hartl norb...@hartl.name wrote:
 
 I think we should submit TxModel to the vaporware awards 2014 :)

Hi Norbert,
I really don't think so. Have a look.
TxText is a real perl, I can't believe it will not be released.
Cheers
Alain

 
 Norbert
 
 Am 07.11.2014 um 14:24 schrieb Esteban Lorenzano esteba...@gmail.com:
 
 I would say yes. 
 we would like to have rubric everywhere we need a real editor :)
 (while waiting for the new TxModel, this is the “less pain path”, IMO)
 
 Esteban
 
 On 07 Nov 2014, at 14:07, Juraj Kubelka juraj.kube...@gmail.com wrote:
 
 Hi!
 
 Is it worth to integrate Rubric into Nautilus? Or is there any reason not 
 to do it?
 
 Thank you a lot!
 Juraj
 
 
 
 




Re: [Pharo-dev] Should Nautilus use Rubric?

2014-11-07 Thread Esteban Lorenzano
Actually, I’m (finally) about to integrate it (an alpha version). 
it will be in the image next week :P

Esteban

 On 07 Nov 2014, at 14:32, Norbert Hartl norb...@hartl.name wrote:
 
 I think we should submit TxModel to the vaporware awards 2014 :)
 
 Norbert
 
 Am 07.11.2014 um 14:24 schrieb Esteban Lorenzano esteba...@gmail.com:
 
 I would say yes. 
 we would like to have rubric everywhere we need a real editor :)
 (while waiting for the new TxModel, this is the “less pain path”, IMO)
 
 Esteban
 
 On 07 Nov 2014, at 14:07, Juraj Kubelka juraj.kube...@gmail.com wrote:
 
 Hi!
 
 Is it worth to integrate Rubric into Nautilus? Or is there any reason not 
 to do it?
 
 Thank you a lot!
 Juraj
 
 
 
 




Re: [Pharo-dev] Should Nautilus use Rubric?

2014-11-07 Thread Torsten Bergmann
I agree with Alain here. From what I see Igor invested a lot
into this and I think it is just a problem of time once again
to make it complete and usable. The demos and code in the
repo are really promising! Or did I miss something?

To answer the original question it would be interesting:
 1. why is Rubric better than the old model
 2. what are the main differences between the old, Rubric and the new
(not only features but also regarding integration)
 3. what is the current state of TxText, what is missing
 4. how could the community help

Thanks
T.

 Gesendet: Freitag, 07. November 2014 um 14:47 Uhr
 Von: Alain Plantec alain.plan...@yahoo.com
 An: Pharo Development List pharo-dev@lists.pharo.org
 Betreff: Re: [Pharo-dev] Should Nautilus use Rubric?

 
  On 7 nov. 2014, at 14:32, Norbert Hartl norb...@hartl.name wrote:
  
  I think we should submit TxModel to the vaporware awards 2014 :)
 
 Hi Norbert,
 I really don't think so. Have a look.
 TxText is a real perl, I can't believe it will not be released.
 Cheers
 Alain
 
  
  Norbert
  
  Am 07.11.2014 um 14:24 schrieb Esteban Lorenzano esteba...@gmail.com:
  
  I would say yes. 
  we would like to have rubric everywhere we need a real editor :)
  (while waiting for the new TxModel, this is the “less pain path”, IMO)
  
  Esteban
  
  On 07 Nov 2014, at 14:07, Juraj Kubelka juraj.kube...@gmail.com wrote:
  
  Hi!
  
  Is it worth to integrate Rubric into Nautilus? Or is there any reason not 
  to do it?
  
  Thank you a lot!
  Juraj
  
  
  
  
 
 




[Pharo-dev] playground history

2014-11-07 Thread Christophe Demarey
In the latest Pharo4 (at least), the history of the text written in the 
Playground has gone!
There is a nice publish icon but no way to get the history.
Do I miss something or was it really removed? The history is very useful and I 
would like to get it back.

Thanks,
Christophe.

smime.p7s
Description: S/MIME cryptographic signature


Re: [Pharo-dev] Should Nautilus use Rubric?

2014-11-07 Thread Alain Plantec
:))

 On 7 nov. 2014, at 14:52, Esteban Lorenzano esteba...@gmail.com wrote:
 
 Actually, I’m (finally) about to integrate it (an alpha version). 
 it will be in the image next week :P
 
 Esteban
 
 On 07 Nov 2014, at 14:32, Norbert Hartl norb...@hartl.name wrote:
 
 I think we should submit TxModel to the vaporware awards 2014 :)
 
 Norbert
 
 Am 07.11.2014 um 14:24 schrieb Esteban Lorenzano esteba...@gmail.com:
 
 I would say yes. 
 we would like to have rubric everywhere we need a real editor :)
 (while waiting for the new TxModel, this is the “less pain path”, IMO)
 
 Esteban
 
 On 07 Nov 2014, at 14:07, Juraj Kubelka juraj.kube...@gmail.com wrote:
 
 Hi!
 
 Is it worth to integrate Rubric into Nautilus? Or is there any reason not 
 to do it?
 
 Thank you a lot!
 Juraj
 
 
 
 
 
 




Re: [Pharo-dev] Should Nautilus use Rubric?

2014-11-07 Thread Norbert Hartl
Hurrayy

Good news! Thanks!

Norbert

 Am 07.11.2014 um 14:52 schrieb Esteban Lorenzano esteba...@gmail.com:
 
 Actually, I’m (finally) about to integrate it (an alpha version). 
 it will be in the image next week :P
 
 Esteban
 
 On 07 Nov 2014, at 14:32, Norbert Hartl norb...@hartl.name wrote:
 
 I think we should submit TxModel to the vaporware awards 2014 :)
 
 Norbert
 
 Am 07.11.2014 um 14:24 schrieb Esteban Lorenzano esteba...@gmail.com:
 
 I would say yes. 
 we would like to have rubric everywhere we need a real editor :)
 (while waiting for the new TxModel, this is the “less pain path”, IMO)
 
 Esteban
 
 On 07 Nov 2014, at 14:07, Juraj Kubelka juraj.kube...@gmail.com wrote:
 
 Hi!
 
 Is it worth to integrate Rubric into Nautilus? Or is there any reason not 
 to do it?
 
 Thank you a lot!
 Juraj
 
 
 
 
 
 




Re: [Pharo-dev] playground history

2014-11-07 Thread Alexandre Bergel
FYI: Andrei is away from his computer for a few days. 

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



 On Nov 7, 2014, at 11:04 AM, Christophe Demarey christophe.dema...@inria.fr 
 wrote:
 
 In the latest Pharo4 (at least), the history of the text written in the 
 Playground has gone!
 There is a nice publish icon but no way to get the history.
 Do I miss something or was it really removed? The history is very useful and 
 I would like to get it back.
 
 Thanks,
 Christophe.



[Pharo-dev] edit values in GTInspector

2014-11-07 Thread Christophe Demarey
Hi,

Is it planned to add the possibility to edit instances variables of an object 
directly from the inspector. I mean without evaluating code, just by clicking 
on the value and update it?

Regards,
Christophe.

smime.p7s
Description: S/MIME cryptographic signature


Re: [Pharo-dev] edit values in GTInspector

2014-11-07 Thread Sven Van Caekenberghe
I already asked this too, so +1 - this is needed.

 On 07 Nov 2014, at 16:29, Christophe Demarey christophe.dema...@inria.fr 
 wrote:
 
 Hi,
 
 Is it planned to add the possibility to edit instances variables of an object 
 directly from the inspector. I mean without evaluating code, just by clicking 
 on the value and update it?
 
 Regards,
 Christophe.




Re: [Pharo-dev] NAtiveBoost error

2014-11-07 Thread Kjell Godo
This is off topic.

I tried to post it as a top level thread but I have become unknown.

I don't know if you want this crap in here but I have decided not to wait
for the

postmaster to get back to me on the subject of becoming known.  Feel free.





( Original-SUBJECT: ( picoVerse-:( what about state , is state really
evil? ) )   )






I am a Smalltalker.

But in the past few months i have been running with the Haskellers.

The Haskellers hate state.

This seemed strange at first because as a Smalltalker i love(d) state.
State iswas my friend.

90% of my life as a Smalltalker is state wrangling.  I am a state herder.

The debugger is my staff I use to whack the state.  And TestCase is my
sheep dog.

But to the Haskellers

state is

the evil trinity

of

satan the anti christ and the false prophet

all rolled into one.

State is the true dev incarnation of the total catastrophe of development
Armageddon.

Blood up to the bridles for hundreds of miles.  Dogs and cats living
together.  Mass hysteria.

They say.

I'm not sure i quite get it yet but they keep preaching on this one point
most of all.

State is evil.

You must keep all state in a Monad.  As many methods/functions m as possible

must be 100% dependent on the input parameters ONLY.

No hidden instance variables affecting the return value of m are allowed.

The only effect m can have is to return a value.

If all this is true then m is pure.

And pure is good.   Pure is very good.  And the wind says

very.

So i wonder if any of you fellow

Smalltalkers

have thought about this at all.

Thanks

Kjell E Godø









(( Maybe Smalltalk should be called Statewalk

as in yak it up fuzz ball. ))


On Tuesday, November 4, 2014, Alain Rastoul alf.mmm@gmail.com wrote:

 Stef,
 As I said to Igor, the main problem about NativeBoost was between
 the chair and the keyboard... :)
 It is my first use of NativeBoost, I simply overlooked the very good
 existing chapter of EnterprisePharo on NativeBoost
 (NativeBoost recipes, the X11 journey) and misused the
 NativeBoost marshalling of data types.
 NAtiveBoost is great.

 If I achieve my experiments with zeromq and ends up with
 something clean (not the case actually, and not my first goal),
 I will be glad to add  a chapter about that.

 My current problem is about a different socket behaviour between
 windows and linux.
 I think this is not a problem with ZeroMQ, the C program works as expected,
 I have to look for an explanation.
 No stress about that


 Alain


 Le 04/11/2014 10:39, stepharo a écrit :

 Alain

 which nativeboost chapter :)?
 Could you propose a paragraph so that we cover the problem you faced?

 Stef

 On 4/11/14 00:44, Alain Rastoul wrote:

 Hi Igor,

 Thank you for your answer, it worked perfectly
 Looks like I overlooked the nativeboost chapter
 .. 10 timesRepeatAfterMe: [self rtfm ] .
 And my suggestion about testing nil was stupid, much better to fail soon.
 ...  I am an ass on this one...

 However, I am struggling on another point you already answered in the
 past
 in the mailing list to a guy who wanted to use socket.io :
 (http://forum.world.st/socket-io-td3891592.html#a3893031)
 Sockets in Pharo are not blocking the whole VM.
 What they block is the process which working with concrete socket. But
 other processes can still run, while
 one waiting data / even from single socket. 
 on windows, zmq socket receive is blocking, on linux, not blocking
 (hence not working).
 As zmq is doing is IO on another thread, I guess there is some side
 effect of
 socket receive timeout settings somewhere (in the plugin ?) - just a
 guess...
 Getting socket options shows no difference, but I don't know how it is
 done on the vm
 side with regards to threads and if the socket is the same (zmq socket
 is not the tcp socket)...
 And on linux, the equivalent C program of to the smalltalk version
 blocks as expected.

 I a mperplexified ...
 may be I should look at vm and plugin code (VMMaker package IIRC) ?
 Do you have another advice ?

 Thanks you

 Alain
 Le 03/11/2014 02:12, Igor Stasenko a écrit :

 NBExternalArray instances cannot be passed directly to functions
 expecting pointers.

 use 'myarray address' for arguments.

 On 3 November 2014 00:20, Alain Rastoul
 alf.mmm@gmail.com
 mailto:alf.mmm@gmail.com wrote:

 Hi,

 I have a problem with a nativeboost call, but  I don't see what I do
 wrong.

library function prototype is:
   int zmq_getsockopt (void *socket, int option_name, void
 *option_value, size_t *option_len);

 my calling method in pharo is:
 zmq_getsockopt: socket option_name: option_name option_value:
 option_value option_len: option_len
  primitive: #primitiveNativeCall module: #NativeBoostPlugin
 error: errorCode
  ^self nbCall: #(int zmq_getsockopt (void *socket, int
 option_name, void * option_value, size_t* option_len)  )

 when I call it with
 ...
 

Re: [Pharo-dev] playground history

2014-11-07 Thread Marcus Denker

 On 07 Nov 2014, at 15:04, Christophe Demarey christophe.dema...@inria.fr 
 wrote:
 
 In the latest Pharo4 (at least), the history of the text written in the 
 Playground has gone!
 There is a nice publish icon but no way to get the history.
 Do I miss something or was it really removed? The history is very useful and 
 I would like to get it back.
 

it appears when you open a new Playground. I added an issue:

https://pharo.fogbugz.com/f/cases/14414/Playground-history-only-shown-after-opening-a-new-workspace
 
https://pharo.fogbugz.com/f/cases/14414/Playground-history-only-shown-after-opening-a-new-workspace

Marcus



Re: [Pharo-dev] NAtiveBoost error

2014-11-07 Thread Kjell Godo
please tell me where this could actually legitimately go.

On Friday, November 7, 2014, Kjell Godo squeakl...@gmail.com wrote:

 This is off topic.

 I tried to post it as a top level thread but I have become unknown.

 I don't know if you want this crap in here but I have decided not to wait
 for the

 postmaster to get back to me on the subject of becoming known.  Feel free.





 ( Original-SUBJECT: ( picoVerse-:( what about state , is state really
 evil? ) )   )






 I am a Smalltalker.

 But in the past few months i have been running with the Haskellers.

 The Haskellers hate state.

 This seemed strange at first because as a Smalltalker i love(d) state.
 State iswas my friend.

 90% of my life as a Smalltalker is state wrangling.  I am a state herder.

 The debugger is my staff I use to whack the state.  And TestCase is my
 sheep dog.

 But to the Haskellers

 state is

 the evil trinity

 of

 satan the anti christ and the false prophet

 all rolled into one.

 State is the true dev incarnation of the total catastrophe of development
 Armageddon.

 Blood up to the bridles for hundreds of miles.  Dogs and cats living
 together.  Mass hysteria.

 They say.

 I'm not sure i quite get it yet but they keep preaching on this one point
 most of all.

 State is evil.

 You must keep all state in a Monad.  As many methods/functions m as
 possible

 must be 100% dependent on the input parameters ONLY.

 No hidden instance variables affecting the return value of m are allowed.

 The only effect m can have is to return a value.

 If all this is true then m is pure.

 And pure is good.   Pure is very good.  And the wind says

 very.

 So i wonder if any of you fellow

 Smalltalkers

 have thought about this at all.

 Thanks

 Kjell E Godø









 (( Maybe Smalltalk should be called Statewalk

 as in yak it up fuzz ball. ))


 On Tuesday, November 4, 2014, Alain Rastoul alf.mmm@gmail.com
 javascript:_e(%7B%7D,'cvml','alf.mmm@gmail.com'); wrote:

 Stef,
 As I said to Igor, the main problem about NativeBoost was between
 the chair and the keyboard... :)
 It is my first use of NativeBoost, I simply overlooked the very good
 existing chapter of EnterprisePharo on NativeBoost
 (NativeBoost recipes, the X11 journey) and misused the
 NativeBoost marshalling of data types.
 NAtiveBoost is great.

 If I achieve my experiments with zeromq and ends up with
 something clean (not the case actually, and not my first goal),
 I will be glad to add  a chapter about that.

 My current problem is about a different socket behaviour between
 windows and linux.
 I think this is not a problem with ZeroMQ, the C program works as
 expected,
 I have to look for an explanation.
 No stress about that


 Alain


 Le 04/11/2014 10:39, stepharo a écrit :

 Alain

 which nativeboost chapter :)?
 Could you propose a paragraph so that we cover the problem you faced?

 Stef

 On 4/11/14 00:44, Alain Rastoul wrote:

 Hi Igor,

 Thank you for your answer, it worked perfectly
 Looks like I overlooked the nativeboost chapter
 .. 10 timesRepeatAfterMe: [self rtfm ] .
 And my suggestion about testing nil was stupid, much better to fail
 soon.
 ...  I am an ass on this one...

 However, I am struggling on another point you already answered in the
 past
 in the mailing list to a guy who wanted to use socket.io :
 (http://forum.world.st/socket-io-td3891592.html#a3893031)
 Sockets in Pharo are not blocking the whole VM.
 What they block is the process which working with concrete socket. But
 other processes can still run, while
 one waiting data / even from single socket. 
 on windows, zmq socket receive is blocking, on linux, not blocking
 (hence not working).
 As zmq is doing is IO on another thread, I guess there is some side
 effect of
 socket receive timeout settings somewhere (in the plugin ?) - just a
 guess...
 Getting socket options shows no difference, but I don't know how it is
 done on the vm
 side with regards to threads and if the socket is the same (zmq socket
 is not the tcp socket)...
 And on linux, the equivalent C program of to the smalltalk version
 blocks as expected.

 I a mperplexified ...
 may be I should look at vm and plugin code (VMMaker package IIRC) ?
 Do you have another advice ?

 Thanks you

 Alain
 Le 03/11/2014 02:12, Igor Stasenko a écrit :

 NBExternalArray instances cannot be passed directly to functions
 expecting pointers.

 use 'myarray address' for arguments.

 On 3 November 2014 00:20, Alain Rastoul
 alf.mmm@gmail.com
 mailto:alf.mmm@gmail.com wrote:

 Hi,

 I have a problem with a nativeboost call, but  I don't see what I
 do
 wrong.

library function prototype is:
   int zmq_getsockopt (void *socket, int option_name, void
 *option_value, size_t *option_len);

 my calling method in pharo is:
 zmq_getsockopt: socket option_name: option_name option_value:
 option_value option_len: option_len
  primitive: 

Re: [Pharo-dev] playground history

2014-11-07 Thread Esteban Lorenzano
+1

I also would like to have some other stuff from the older workspace menu:

- make unclosable (I use it a lot, because time to time I start closing windows 
like a maniac… and of course, I do not see which one should stay open)
- open/save as…
- inspect variables
- reset variables

cheers, 
Esteban

 On 07 Nov 2014, at 15:04, Christophe Demarey christophe.dema...@inria.fr 
 wrote:
 
 In the latest Pharo4 (at least), the history of the text written in the 
 Playground has gone!
 There is a nice publish icon but no way to get the history.
 Do I miss something or was it really removed? The history is very useful and 
 I would like to get it back.
 
 Thanks,
 Christophe.




Re: [Pharo-dev] NAtiveBoost error

2014-11-07 Thread Sven Van Caekenberghe
Yes, in one sense, object oriented programming involves state and is the 
opposite of pure functional programming.

Now, there are clean and less clean ways of doing object oriented design.

But I too have a hard time accepting or understanding how a useful real world 
piece of software can be written without some form of state. Mathematical 
functions are easy, but once you have a number of closures over some captured 
and shared state, you basically have a object. Passing a world object into and 
returning it modified from pure functions becomes heavy too.

The world is not black or white, but a complex form of grey.

There are many good ideas in (pure) functional programming, you can use all of 
them in Smalltalk, if you want.

 On 07 Nov 2014, at 16:51, Kjell Godo squeakl...@gmail.com wrote:
 
 This is off topic.
 
 I tried to post it as a top level thread but I have become unknown.
 
 I don't know if you want this crap in here but I have decided not to wait for 
 the
 
 postmaster to get back to me on the subject of becoming known.  Feel free.
 
 
 
 
 
 ( Original-SUBJECT: ( picoVerse-:( what about state , is state really 
 evil? ) )   )
 
 
 
 
 
 
 I am a Smalltalker.
 
 But in the past few months i have been running with the Haskellers.
 
 The Haskellers hate state.
 
 This seemed strange at first because as a Smalltalker i love(d) state.  State 
 iswas my friend.
 
 90% of my life as a Smalltalker is state wrangling.  I am a state herder.  
 
 The debugger is my staff I use to whack the state.  And TestCase is my sheep 
 dog.
 
 But to the Haskellers
 
 state is
 
 the evil trinity 
 
 of
 
 satan the anti christ and the false prophet
 
 all rolled into one.
 
 State is the true dev incarnation of the total catastrophe of development 
 Armageddon.
 
 Blood up to the bridles for hundreds of miles.  Dogs and cats living 
 together.  Mass hysteria.
 
 They say.
 
 I'm not sure i quite get it yet but they keep preaching on this one point 
 most of all.
 
 State is evil.
 
 You must keep all state in a Monad.  As many methods/functions m as possible
 
 must be 100% dependent on the input parameters ONLY.   
 
 No hidden instance variables affecting the return value of m are allowed.
 
 The only effect m can have is to return a value.
 
 If all this is true then m is pure.   
 
 And pure is good.   Pure is very good.  And the wind says
 
 very.
 
 So i wonder if any of you fellow
 
 Smalltalkers
 
 have thought about this at all.
 
 Thanks
 
 Kjell E Godø
 
 
 
 
 
 
 
 
 
 (( Maybe Smalltalk should be called Statewalk
 
 as in yak it up fuzz ball. ))
 
 
 On Tuesday, November 4, 2014, Alain Rastoul alf.mmm@gmail.com wrote:
 Stef,
 As I said to Igor, the main problem about NativeBoost was between
 the chair and the keyboard... :)
 It is my first use of NativeBoost, I simply overlooked the very good
 existing chapter of EnterprisePharo on NativeBoost
 (NativeBoost recipes, the X11 journey) and misused the
 NativeBoost marshalling of data types.
 NAtiveBoost is great.
 
 If I achieve my experiments with zeromq and ends up with
 something clean (not the case actually, and not my first goal),
 I will be glad to add  a chapter about that.
 
 My current problem is about a different socket behaviour between
 windows and linux.
 I think this is not a problem with ZeroMQ, the C program works as expected,
 I have to look for an explanation.
 No stress about that
 
 
 Alain
 
 
 Le 04/11/2014 10:39, stepharo a écrit :
 Alain
 
 which nativeboost chapter :)?
 Could you propose a paragraph so that we cover the problem you faced?
 
 Stef
 
 On 4/11/14 00:44, Alain Rastoul wrote:
 Hi Igor,
 
 Thank you for your answer, it worked perfectly
 Looks like I overlooked the nativeboost chapter
 .. 10 timesRepeatAfterMe: [self rtfm ] .
 And my suggestion about testing nil was stupid, much better to fail soon.
 ...  I am an ass on this one...
 
 However, I am struggling on another point you already answered in the
 past
 in the mailing list to a guy who wanted to use socket.io :
 (http://forum.world.st/socket-io-td3891592.html#a3893031)
 Sockets in Pharo are not blocking the whole VM.
 What they block is the process which working with concrete socket. But
 other processes can still run, while
 one waiting data / even from single socket. 
 on windows, zmq socket receive is blocking, on linux, not blocking
 (hence not working).
 As zmq is doing is IO on another thread, I guess there is some side
 effect of
 socket receive timeout settings somewhere (in the plugin ?) - just a
 guess...
 Getting socket options shows no difference, but I don't know how it is
 done on the vm
 side with regards to threads and if the socket is the same (zmq socket
 is not the tcp socket)...
 And on linux, the equivalent C program of to the smalltalk version
 blocks as expected.
 
 I a mperplexified ...
 may be I should look at vm and plugin code (VMMaker package IIRC) ?
 Do you have another advice ?
 
 Thanks you
 
 Alain

Re: [Pharo-dev] playground history

2014-11-07 Thread Tudor Girba
Hi,

It is there only if you have a history. Why should this be an issue?

Doru 

--
www.tudorgirba.com

Every thing has its own flow

 On 07 Nov 2014, at 16:45, Marcus Denker marcus.den...@inria.fr wrote:
 
 
 On 07 Nov 2014, at 15:04, Christophe Demarey christophe.dema...@inria.fr 
 wrote:
 
 In the latest Pharo4 (at least), the history of the text written in the 
 Playground has gone!
 There is a nice publish icon but no way to get the history.
 Do I miss something or was it really removed? The history is very useful and 
 I would like to get it back.
 
 
 it appears when you open a new Playground. I added an issue:
 
 https://pharo.fogbugz.com/f/cases/14414/Playground-history-only-shown-after-opening-a-new-workspace
 
   Marcus
 


Re: [Pharo-dev] NAtiveBoost error

2014-11-07 Thread Igor Stasenko
Computing is not mathematical proof. It has to have side effect(s), else
there will be no need to compute anything, if
result is known beforehand.

And who said that smalltalk is all about state? It is not. It is all about
objects.

90% of my life as a Smalltalker is state wrangling.  I am a state herder.

The debugger is my staff I use to whack the state.


it is fallacy.. you see only what object(s) wanna show you. if they would
want to hide certain things (state) from your eyes,
you won't even notice, nor will be able to retrieve it.
Because you interacting with live objects, not with a dead state.


-- 
Best regards,
Igor Stasenko.


Re: [Pharo-dev] StandardFileStreamopen:forWrite: serious isse...

2014-11-07 Thread Eliot Miranda
Hi Phil,

On Fri, Nov 7, 2014 at 3:42 AM, p...@highoctane.be p...@highoctane.be
wrote:

 Code (Transcript calls of mine)


 open: fileName forWrite: writeMode
 Open the file with the given name. If writeMode is true, allow writing,
 otherwise open the file in read-only mode.
 | f |
 f := fileName asVmPathName.
 Transcript log: 'File:', f.

 fileID := StandardFileStream retryWithGC:[self primOpen: f writable:
 writeMode]
 until:[:id| id notNil]
 forFileNamed: fileName.
 fileID ifNil: [
 '  Cannot get fileID' logCr.
 ^ nil].  allows sender to detect failure
 ('  Got fileID: ', fileID printString) logCr.
 name := fileName.
 self register.
 rwmode := writeMode.
 buffer1 := String new: 1.
 self enableReadBuffering

 I have a ton of files to open. And some were slow to return a problem.

 After digging, I got to the method above.

 Now at one moment, I get nil fileIDs.

 What is that retryWithGC: until: thing???

 retryWithGC: execBlock until: testBlock forFileNamed: fullName
 Re-implemented to only force GC if a file with the given name exists |
 blockValue foundIt | blockValue := execBlock value. (testBlock value:
 blockValue) ifTrue:[^blockValue]. See if we have a file with the given
 name foundIt := self registry keys hold on strongly for now
 anySatisfy:[:file| file name sameAs: fullName]. foundIt
 ifFalse:[^blockValue]. Smalltalk garbageCollectMost. blockValue :=
 execBlock value. (testBlock value: blockValue) ifTrue:[^blockValue].
 Smalltalk garbageCollect. ^execBlock value.


I think its horrible personally but it /should/ work.  The idea is that
files shouldn't need to be closed explicitly; which is fine; we want to be
able to rely on finalization to close them eventually.  Hence retryWithGC:
is called when an open fails, presumably because it failed because the
process is out of file handles, presumably because several
as-yet-unfinalized files have yet to be finalized.  So running the GC
/should/ run finalization.  One issue could be that there are bugs meaning
that finalization does /not/ happen.  For example, Igor could take a look
and find out quickly whether that's the case.  Another issue could be that
the finalization loop is at too low a priority, or has been terminated for
some reason.

But finalization can not be relied upon to be timely.  A better solution is
to explicity close files where possible using a form such
as forceNewFileNamed:do: et al.  Another solution is possible in Spur where
we can simplify the finalization by using ephemerons so there are no
proxies for files.  But that's not relevant immediately.

Huh, yeah, some lookup going on in a registry...

 and GCs? For file opens?

 I am doing these opens in a webapp, what I want is to know if the file is
 there or not and fail fast, not have all of this thing (debugging kind of
 nightmarish...)

 I have tested with 100 files and of course it all works since I get the
 IDs back from the registry.

 But at one point, it all fails. Registry full?

 What to do here?

 TIA
 Phil







-- 
best,
Eliot


Re: [Pharo-dev] NAtiveBoost error

2014-11-07 Thread Marcus Denker

Hmm… to me this mail looks like it is written by a  Bot ?

e.g. in a mailing list everyone can start a top level thread. unknown users
can not post at all.

And I am the “postmaster” of this list and I have not gotten any requests at 
all...


 On 07 Nov 2014, at 16:51, Kjell Godo squeakl...@gmail.com wrote:
 
 This is off topic.
 
 I tried to post it as a top level thread but I have become unknown.
 
 I don't know if you want this crap in here but I have decided not to wait for 
 the
 
 postmaster to get back to me on the subject of becoming known.  Feel free.
 
 
 
 
 
 ( Original-SUBJECT: ( picoVerse-:( what about state , is state really 
 evil? ) )   )
 
 
 
 
 
 
 I am a Smalltalker.
 
 But in the past few months i have been running with the Haskellers.
 
 The Haskellers hate state.
 
 This seemed strange at first because as a Smalltalker i love(d) state.  State 
 iswas my friend.
 
 90% of my life as a Smalltalker is state wrangling.  I am a state herder.  
 
 The debugger is my staff I use to whack the state.  And TestCase is my sheep 
 dog.
 
 But to the Haskellers
 
 state is
 
 the evil trinity 
 
 of
 
 satan the anti christ and the false prophet
 
 all rolled into one.
 
 State is the true dev incarnation of the total catastrophe of development 
 Armageddon.
 
 Blood up to the bridles for hundreds of miles.  Dogs and cats living 
 together.  Mass hysteria.
 
 They say.
 
 I'm not sure i quite get it yet but they keep preaching on this one point 
 most of all.
 
 State is evil.
 
 You must keep all state in a Monad.  As many methods/functions m as possible
 
 must be 100% dependent on the input parameters ONLY.   
 
 No hidden instance variables affecting the return value of m are allowed.
 
 The only effect m can have is to return a value.
 
 If all this is true then m is pure.   
 
 And pure is good.   Pure is very good.  And the wind says
 
 very.
 
 So i wonder if any of you fellow
 
 Smalltalkers
 
 have thought about this at all.
 
 Thanks
 
 Kjell E Godø
 
 
 
 
 
 
 
 
 
 (( Maybe Smalltalk should be called Statewalk
 
 as in yak it up fuzz ball. ))
 
 
 On Tuesday, November 4, 2014, Alain Rastoul alf.mmm@gmail.com 
 mailto:alf.mmm@gmail.com wrote:
 Stef,
 As I said to Igor, the main problem about NativeBoost was between
 the chair and the keyboard... :)
 It is my first use of NativeBoost, I simply overlooked the very good
 existing chapter of EnterprisePharo on NativeBoost
 (NativeBoost recipes, the X11 journey) and misused the
 NativeBoost marshalling of data types.
 NAtiveBoost is great.
 
 If I achieve my experiments with zeromq and ends up with
 something clean (not the case actually, and not my first goal),
 I will be glad to add  a chapter about that.
 
 My current problem is about a different socket behaviour between
 windows and linux.
 I think this is not a problem with ZeroMQ, the C program works as expected,
 I have to look for an explanation.
 No stress about that
 
 
 Alain
 
 
 Le 04/11/2014 10:39, stepharo a écrit :
 Alain
 
 which nativeboost chapter :)?
 Could you propose a paragraph so that we cover the problem you faced?
 
 Stef
 
 On 4/11/14 00:44, Alain Rastoul wrote:
 Hi Igor,
 
 Thank you for your answer, it worked perfectly
 Looks like I overlooked the nativeboost chapter
 .. 10 timesRepeatAfterMe: [self rtfm ] .
 And my suggestion about testing nil was stupid, much better to fail soon.
 ...  I am an ass on this one...
 
 However, I am struggling on another point you already answered in the
 past
 in the mailing list to a guy who wanted to use socket.io http://socket.io/ :
 (http://forum.world.st/socket-io-td3891592.html#a3893031 
 http://forum.world.st/socket-io-td3891592.html#a3893031)
 Sockets in Pharo are not blocking the whole VM.
 What they block is the process which working with concrete socket. But
 other processes can still run, while
 one waiting data / even from single socket. 
 on windows, zmq socket receive is blocking, on linux, not blocking
 (hence not working).
 As zmq is doing is IO on another thread, I guess there is some side
 effect of
 socket receive timeout settings somewhere (in the plugin ?) - just a
 guess...
 Getting socket options shows no difference, but I don't know how it is
 done on the vm
 side with regards to threads and if the socket is the same (zmq socket
 is not the tcp socket)...
 And on linux, the equivalent C program of to the smalltalk version
 blocks as expected.
 
 I a mperplexified ...
 may be I should look at vm and plugin code (VMMaker package IIRC) ?
 Do you have another advice ?
 
 Thanks you
 
 Alain
 Le 03/11/2014 02:12, Igor Stasenko a écrit :
 NBExternalArray instances cannot be passed directly to functions
 expecting pointers.
 
 use 'myarray address' for arguments.
 
 On 3 November 2014 00:20, Alain Rastoul
 alf.mmm@gmail.com 
 mailto:alf.mmm@gmail.com  wrote:
 
 Hi,
 
 I have a problem with a nativeboost call, but  I don't see what I do
 wrong.
 

Re: [Pharo-dev] edit values in GTInspector

2014-11-07 Thread Alexandre Bergel
This is strange, I do not remember to have use this when I was using the old 
inspector. I usually trust what the inspector tells me only having open one.  

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



 On Nov 7, 2014, at 12:40 PM, Marcus Denker marcus.den...@inria.fr wrote:
 
 Yes, editing state and inspectors need to be updated so you see live how 
 value are changing even when they
 are changed from somewhere else.



Re: [Pharo-dev] edit values in GTInspector

2014-11-07 Thread Sven Van Caekenberghe
It simply has to be possible to edit values and to see live updates, there is 
no way around it - else the GT inspector looks at dead objects, bye bye live 
programming.

I think it is not cool that this is being ignored.

 On 07 Nov 2014, at 19:24, Alexandre Bergel alexandre.ber...@me.com wrote:
 
 This is strange, I do not remember to have use this when I was using the old 
 inspector. I usually trust what the inspector tells me only having open one.  
 
 Alexandre
 -- 
 _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
 Alexandre Bergel  http://www.bergel.eu
 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
 
 
 
 On Nov 7, 2014, at 12:40 PM, Marcus Denker marcus.den...@inria.fr wrote:
 
 Yes, editing state and inspectors need to be updated so you see live how 
 value are changing even when they
 are changed from somewhere else.
 




Re: [Pharo-dev] edit values in GTInspector

2014-11-07 Thread Andrei Chis
The feature for editing values in place is already implemented, just for
some reasons related to changing the styling in a text editor it was slower
than we wanted it to be so it wasn't enabled yet. We'll add it soon. I'm
away from my computer this week :)


Cheers,
Andrei

On Fri, Nov 7, 2014 at 3:31 PM, Sven Van Caekenberghe s...@stfx.eu wrote:

 It simply has to be possible to edit values and to see live updates, there
 is no way around it - else the GT inspector looks at dead objects, bye bye
 live programming.

 I think it is not cool that this is being ignored.

  On 07 Nov 2014, at 19:24, Alexandre Bergel alexandre.ber...@me.com
 wrote:
 
  This is strange, I do not remember to have use this when I was using the
 old inspector. I usually trust what the inspector tells me only having open
 one.
 
  Alexandre
  --
  _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
  Alexandre Bergel  http://www.bergel.eu
  ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
 
 
 
  On Nov 7, 2014, at 12:40 PM, Marcus Denker marcus.den...@inria.fr
 wrote:
 
  Yes, editing state and inspectors need to be updated so you see live
 how value are changing even when they
  are changed from somewhere else.
 





Re: [Pharo-dev] fixing 'format on display' and 'format on accept'

2014-11-07 Thread stepharo

I like the idea because I would like to have all the code reformatted.

Stef
On 4/11/14 18:09, Paul DeBruicker wrote:

Hi -

I'm going to get 'format on display' and 'format on accept' working in 
Nautilus.  In Pharo 3 in the settings browser under 'code browsing'  there is a 
'pretty print' check box.  As far as I can tell it doesn't affect code 
displaying at all in Nautilus.


Is it OK to repurpose that checkbox as a control for 'format on display' and to 
also add a check box right there for 'format on accept' ?  If not what would be 
better?


Thanks

Paul






Re: [Pharo-dev] edit values in GTInspector

2014-11-07 Thread Aliaksei Syrel
Hi all,

We worked on it and came out with a prototype version. It will be possible
to enter edition mode double clicking on the value. The problem we are
facing is performance issues with Rubric when changing text mode from plain
text to smalltalk code for syntax highlighting, to assign to the variable a
value of the expression's result.

Thank you for your feedback.

Cheers,
Alex
On Nov 7, 2014 7:31 PM, Sven Van Caekenberghe s...@stfx.eu wrote:

 It simply has to be possible to edit values and to see live updates, there
 is no way around it - else the GT inspector looks at dead objects, bye bye
 live programming.

 I think it is not cool that this is being ignored.

  On 07 Nov 2014, at 19:24, Alexandre Bergel alexandre.ber...@me.com
 wrote:
 
  This is strange, I do not remember to have use this when I was using the
 old inspector. I usually trust what the inspector tells me only having open
 one.
 
  Alexandre
  --
  _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
  Alexandre Bergel  http://www.bergel.eu
  ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
 
 
 
  On Nov 7, 2014, at 12:40 PM, Marcus Denker marcus.den...@inria.fr
 wrote:
 
  Yes, editing state and inspectors need to be updated so you see live
 how value are changing even when they
  are changed from somewhere else.
 





[Pharo-dev] Gofer loadDevelopment Bug?

2014-11-07 Thread Sean P. DeNigris
The following, although seemingly equivalent, produce different results...

#1:
Gofer it
smalltalkhubUser: 'SeanDeNigris' project: 'SeansPlayground';
configurationOf: 'LivingCode';
load.
#ConfigurationOfLivingCode asClass project development load.

VS.

#2:
Gofer it
smalltalkhubUser: 'SeanDeNigris' project: 'SeansPlayground';
configurationOf: 'LivingCode';
loadDevelopment

#1 correctly loads package dependencies which #2 fails to load.



-
Cheers,
Sean
--
View this message in context: 
http://forum.world.st/Gofer-loadDevelopment-Bug-tp4788987.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] NAtiveBoost error

2014-11-07 Thread Alain Rastoul

yeah,
big electron computation over the wire will tell
open your chakras to monads or die
:)

Le 07/11/2014 19:03, Marcus Denker a écrit :


Hmm… to me this mail looks like it is written by a  Bot ?

e.g. in a mailing list everyone can start a top level thread. unknown users
can not post at all.

And I am the “postmaster” of this list and I have not gotten any
requests at all...



On 07 Nov 2014, at 16:51, Kjell Godo
squeakl...@gmail.com
mailto:squeakl...@gmail.com wrote:

This is off topic.

I tried to post it as a top level thread but I have become unknown.

I don't know if you want this crap in here but I have decided not to
wait for the

postmaster to get back to me on the subject of becoming known.  Feel free.





( Original-SUBJECT: ( picoVerse-:( what about state , is state
really evil? ) )   )






I am a Smalltalker.

But in the past few months i have been running with the Haskellers.

The Haskellers hate state.

This seemed strange at first because as a Smalltalker i love(d)
state.  State iswas my friend.

90% of my life as a Smalltalker is state wrangling.  I am a state herder.

The debugger is my staff I use to whack the state.  And TestCase is my
sheep dog.

But to the Haskellers

state is

the evil trinity

of

satan the anti christ and the false prophet

all rolled into one.

State is the true dev incarnation of the total catastrophe of
development Armageddon.

Blood up to the bridles for hundreds of miles.  Dogs and cats living
together.  Mass hysteria.

They say.

I'm not sure i quite get it yet but they keep preaching on this one
point most of all.

State is evil.

You must keep all state in a Monad.  As many methods/functions m as
possible

must be 100% dependent on the input parameters ONLY.

No hidden instance variables affecting the return value of m are allowed.

The only effect m can have is to return a value.

If all this is true then m is pure.

And pure is good.   Pure is very good.  And the wind says

very.

So i wonder if any of you fellow

Smalltalkers

have thought about this at all.

Thanks

Kjell E Godø









(( Maybe Smalltalk should be called Statewalk

as in yak it up fuzz ball. ))


On Tuesday, November 4, 2014, Alain Rastoul
alf.mmm@gmail.com
mailto:alf.mmm@gmail.com wrote:

Stef,
As I said to Igor, the main problem about NativeBoost was between
the chair and the keyboard... :)
It is my first use of NativeBoost, I simply overlooked the very good
existing chapter of EnterprisePharo on NativeBoost
(NativeBoost recipes, the X11 journey) and misused the
NativeBoost marshalling of data types.
NAtiveBoost is great.

If I achieve my experiments with zeromq and ends up with
something clean (not the case actually, and not my first goal),
I will be glad to add  a chapter about that.

My current problem is about a different socket behaviour between
windows and linux.
I think this is not a problem with ZeroMQ, the C program works as
expected,
I have to look for an explanation.
No stress about that


Alain


Le 04/11/2014 10:39, stepharo a écrit :

Alain

which nativeboost chapter :)?
Could you propose a paragraph so that we cover the problem you
faced?

Stef

On 4/11/14 00:44, Alain Rastoul wrote:

Hi Igor,

Thank you for your answer, it worked perfectly
Looks like I overlooked the nativeboost chapter
.. 10 timesRepeatAfterMe: [self rtfm ] .
And my suggestion about testing nil was stupid, much
better to fail soon.
...  I am an ass on this one...

However, I am struggling on another point you already
answered in the
past
in the mailing list to a guy who wanted to use socket.io
http://socket.io/ :
(http://forum.world.st/socket-__io-td3891592.html#a3893031
http://forum.world.st/socket-io-td3891592.html#a3893031)
Sockets in Pharo are not blocking the whole VM.
What they block is the process which working with concrete
socket. But
other processes can still run, while
one waiting data / even from single socket. 
on windows, zmq socket receive is blocking, on linux, not
blocking
(hence not working).
As zmq is doing is IO on another thread, I guess there is
some side
effect of
socket receive timeout settings somewhere (in the plugin
?) - just a
guess...
Getting socket options shows no difference, but I don't
know how it is
done on the vm
side with regards to threads and if the socket is the same
(zmq socket
is not the tcp socket)...
And on linux, the equivalent C program of to the smalltalk
version
  

Re: [Pharo-dev] edit values in GTInspector

2014-11-07 Thread Tudor Girba
Hi Sven,

Neither of these requests are being ignored (see the other two replies), but 
good things take time.

We would be happy to get more contributors :).

Doru

--
www.tudorgirba.com

Every thing has its own flow

 On 07 Nov 2014, at 19:31, Sven Van Caekenberghe s...@stfx.eu wrote:
 
 It simply has to be possible to edit values and to see live updates, there is 
 no way around it - else the GT inspector looks at dead objects, bye bye live 
 programming.
 
 I think it is not cool that this is being ignored.
 
 On 07 Nov 2014, at 19:24, Alexandre Bergel alexandre.ber...@me.com wrote:
 
 This is strange, I do not remember to have use this when I was using the old 
 inspector. I usually trust what the inspector tells me only having open one. 
  
 
 Alexandre
 -- 
 _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
 Alexandre Bergel  http://www.bergel.eu
 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
 
 
 
 On Nov 7, 2014, at 12:40 PM, Marcus Denker marcus.den...@inria.fr wrote:
 
 Yes, editing state and inspectors need to be updated so you see live how 
 value are changing even when they
 are changed from somewhere else.
 
 
 



Re: [Pharo-dev] Should Nautilus use Rubric?

2014-11-07 Thread Tudor Girba
Indeed. Really great!

Doru

--
www.tudorgirba.com

Every thing has its own flow

 On 07 Nov 2014, at 18:23, Juraj Kubelka juraj.kube...@gmail.com wrote:
 
 This is the great news! Thanks!
 
 Juraj
 
 On Nov 7, 2014, at 10:52 AM, Esteban Lorenzano esteba...@gmail.com wrote:
 
 Actually, I’m (finally) about to integrate it (an alpha version). 
 it will be in the image next week :P
 
 Esteban
 
 On 07 Nov 2014, at 14:32, Norbert Hartl norb...@hartl.name wrote:
 
 I think we should submit TxModel to the vaporware awards 2014 :)
 
 Norbert
 
 Am 07.11.2014 um 14:24 schrieb Esteban Lorenzano esteba...@gmail.com:
 
 I would say yes. 
 we would like to have rubric everywhere we need a real editor :)
 (while waiting for the new TxModel, this is the “less pain path”, IMO)
 
 Esteban
 
 On 07 Nov 2014, at 14:07, Juraj Kubelka juraj.kube...@gmail.com wrote:
 
 Hi!
 
 Is it worth to integrate Rubric into Nautilus? Or is there any reason not 
 to do it?
 
 Thank you a lot!
 Juraj
 
 



Re: [Pharo-dev] NAtiveBoost error

2014-11-07 Thread stepharo


On 4/11/14 20:30, Alain Rastoul wrote:

Stef,
As I said to Igor, the main problem about NativeBoost was between
the chair and the keyboard... :)
It is my first use of NativeBoost, I simply overlooked the very good
existing chapter of EnterprisePharo on NativeBoost
(NativeBoost recipes, the X11 journey) and misused the
NativeBoost marshalling of data types.
NAtiveBoost is great.

If I achieve my experiments with zeromq and ends up with
something clean (not the case actually, and not my first goal),
I will be glad to add  a chapter about that.


ok je le note ;)



My current problem is about a different socket behaviour between
windows and linux.
I think this is not a problem with ZeroMQ, the C program works as 
expected,

I have to look for an explanation.
No stress about that


Alain


Le 04/11/2014 10:39, stepharo a écrit :

Alain

which nativeboost chapter :)?
Could you propose a paragraph so that we cover the problem you faced?

Stef

On 4/11/14 00:44, Alain Rastoul wrote:

Hi Igor,

Thank you for your answer, it worked perfectly
Looks like I overlooked the nativeboost chapter
.. 10 timesRepeatAfterMe: [self rtfm ] .
And my suggestion about testing nil was stupid, much better to fail 
soon.

...  I am an ass on this one...

However, I am struggling on another point you already answered in the
past
in the mailing list to a guy who wanted to use socket.io :
(http://forum.world.st/socket-io-td3891592.html#a3893031)
Sockets in Pharo are not blocking the whole VM.
What they block is the process which working with concrete socket. But
other processes can still run, while
one waiting data / even from single socket. 
on windows, zmq socket receive is blocking, on linux, not blocking
(hence not working).
As zmq is doing is IO on another thread, I guess there is some side
effect of
socket receive timeout settings somewhere (in the plugin ?) - just a
guess...
Getting socket options shows no difference, but I don't know how it is
done on the vm
side with regards to threads and if the socket is the same (zmq socket
is not the tcp socket)...
And on linux, the equivalent C program of to the smalltalk version
blocks as expected.

I a mperplexified ...
may be I should look at vm and plugin code (VMMaker package IIRC) ?
Do you have another advice ?

Thanks you

Alain
Le 03/11/2014 02:12, Igor Stasenko a écrit :

NBExternalArray instances cannot be passed directly to functions
expecting pointers.

use 'myarray address' for arguments.

On 3 November 2014 00:20, Alain Rastoul
alf.mmm@gmail.com
mailto:alf.mmm@gmail.com wrote:

Hi,

I have a problem with a nativeboost call, but  I don't see what 
I do

wrong.

   library function prototype is:
  int zmq_getsockopt (void *socket, int option_name, void
*option_value, size_t *option_len);

my calling method in pharo is:
zmq_getsockopt: socket option_name: option_name option_value:
option_value option_len: option_len
 primitive: #primitiveNativeCall module: 
#NativeBoostPlugin

error: errorCode
 ^self nbCall: #(int zmq_getsockopt (void *socket, int
option_name, void * option_value, size_t* option_len)  )

when I call it with
...
optionValue := (NBExternalArray ofType: 'int') externalNew: 1.
optionLen := (NBExternalArray ofType: 'size_t' ) externalNew: 1.
[   optionValue at: 1 put: 0 .
 optionLen at: 1 put: (NBExternalType sizeOf: 'int')  .
 rc := self zmq_getsockopt: socket option_name: 
option_name

 option_value:  optionValue
 option_len: optionLen  .
 value := optionValue at: 1 .
] ensure: [  optionValue free.
 optionLen free  ].
...
I allways get an exception: error during FFI call : nil


After stepping in NBFFICallout generation, I found something
strange, the code
generation seems not to be called because lastError stays at nil ?

handleFailureIn: aContext nativeCode: aBlock
 lastError := self getErrorFrom: aContext lastError:
NativeBoost lastError.

 getErrorFrom: aContext lastError: errorCode
  ...  checks  pragmas etc
 getErrorFrom: aContext lastError: errorCode
 ... lastError := aContext  tempAt: method
numTemps.
 = lastError = nil ???  shouldn't be
ErrNoNativeCodeInMethod ?
 install native code and retry the send
 lastError = ErrNoNativeCodeInMethod
 ifTrue: [ ^ self generateCode: aBlock andRetry:
aContext ].
  never gets called ...

 ok, we're out of options, signal an error here
 ^ self signalError: lastError

Could it be because I use this image on windows and unix ?
Or because I had an exception at prototype parsing the first time
because I forgot a ; at the end of the prototype ?

Is my prototype correct or is it the origin of the 

Re: [Pharo-dev] Browse anObject?

2014-11-07 Thread stepharo

:)
we can rename browse into browseClass.


On 6/11/14 00:07, Sean P. DeNigris wrote:

Ben Coman wrote

I thought… the least surprising would be...

Object#browse
self browseClass

This was exactly what I was objecting to. How is #browse sent to anObject
not surprising when you mean #browseClass (which already exists)? Saying
that what else could browse mean in this context? looks at the issue from
someone who is already an expert. The point is that it may mean nothing to a
newbie, and rightly so because IMHO it /is/ meaningless.



-
Cheers,
Sean
--
View this message in context: 
http://forum.world.st/Browse-anObject-tp4788401p4788650.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.







Re: [Pharo-dev] NAtiveBoost error

2014-11-07 Thread kilon alios
Its definetly an interesting concept. I am curious to give it a try because
it would take me outside my comfort zone and there is nothing more that I
love than getting outside my comfort zone. But I blame Pharo and the Pharo
people who dont let me to try another language, damn them  DAMN THEM I
SAY

Side effects certainly can be a source of trouble but alas they are not the
holy grail of trouble. Coding is a complex subject so introducing
restrictions of purity will produce some side effects. OH YES PUN WAS
INTENDED 

Its easy to dismiss such an approach however without trying it in practice
with real projects. But then I do also recognise that mixing types can be a
problem too at some point that does not convince me into going to  static
type language.

I think for Pharo state is much less of a problem because Pharo has very
powerful inspector , debuger and IDE to track down state. So its easy for a
pharo developer to be aware of state compared to some developer using
another language and not using an IDE at all. If state becomes too complex
then its a sign to refactor code and make it simpler. I do think however
with powerful IDEs you can get around this problem easily.

So I cant say I am a big believer of Haskell.

Also I real hate the terminology side effect ... sounds too. elitist
to me.

On Fri, Nov 7, 2014 at 5:51 PM, Kjell Godo squeakl...@gmail.com wrote:

 This is off topic.

 I tried to post it as a top level thread but I have become unknown.

 I don't know if you want this crap in here but I have decided not to wait
 for the

 postmaster to get back to me on the subject of becoming known.  Feel free.





 ( Original-SUBJECT: ( picoVerse-:( what about state , is state really
 evil? ) )   )






 I am a Smalltalker.

 But in the past few months i have been running with the Haskellers.

 The Haskellers hate state.

 This seemed strange at first because as a Smalltalker i love(d) state.
 State iswas my friend.

 90% of my life as a Smalltalker is state wrangling.  I am a state herder.

 The debugger is my staff I use to whack the state.  And TestCase is my
 sheep dog.

 But to the Haskellers

 state is

 the evil trinity

 of

 satan the anti christ and the false prophet

 all rolled into one.

 State is the true dev incarnation of the total catastrophe of development
 Armageddon.

 Blood up to the bridles for hundreds of miles.  Dogs and cats living
 together.  Mass hysteria.

 They say.

 I'm not sure i quite get it yet but they keep preaching on this one point
 most of all.

 State is evil.

 You must keep all state in a Monad.  As many methods/functions m as
 possible

 must be 100% dependent on the input parameters ONLY.

 No hidden instance variables affecting the return value of m are allowed.

 The only effect m can have is to return a value.

 If all this is true then m is pure.

 And pure is good.   Pure is very good.  And the wind says

 very.

 So i wonder if any of you fellow

 Smalltalkers

 have thought about this at all.

 Thanks

 Kjell E Godø









 (( Maybe Smalltalk should be called Statewalk

 as in yak it up fuzz ball. ))


 On Tuesday, November 4, 2014, Alain Rastoul alf.mmm@gmail.com wrote:

 Stef,
 As I said to Igor, the main problem about NativeBoost was between
 the chair and the keyboard... :)
 It is my first use of NativeBoost, I simply overlooked the very good
 existing chapter of EnterprisePharo on NativeBoost
 (NativeBoost recipes, the X11 journey) and misused the
 NativeBoost marshalling of data types.
 NAtiveBoost is great.

 If I achieve my experiments with zeromq and ends up with
 something clean (not the case actually, and not my first goal),
 I will be glad to add  a chapter about that.

 My current problem is about a different socket behaviour between
 windows and linux.
 I think this is not a problem with ZeroMQ, the C program works as
 expected,
 I have to look for an explanation.
 No stress about that


 Alain


 Le 04/11/2014 10:39, stepharo a écrit :

 Alain

 which nativeboost chapter :)?
 Could you propose a paragraph so that we cover the problem you faced?

 Stef

 On 4/11/14 00:44, Alain Rastoul wrote:

 Hi Igor,

 Thank you for your answer, it worked perfectly
 Looks like I overlooked the nativeboost chapter
 .. 10 timesRepeatAfterMe: [self rtfm ] .
 And my suggestion about testing nil was stupid, much better to fail
 soon.
 ...  I am an ass on this one...

 However, I am struggling on another point you already answered in the
 past
 in the mailing list to a guy who wanted to use socket.io :
 (http://forum.world.st/socket-io-td3891592.html#a3893031)
 Sockets in Pharo are not blocking the whole VM.
 What they block is the process which working with concrete socket. But
 other processes can still run, while
 one waiting data / even from single socket. 
 on windows, zmq socket receive is blocking, on linux, not blocking
 (hence not working).
 As zmq is doing is IO on another thread, I guess there is some 

Re: [Pharo-dev] edit values in GTInspector

2014-11-07 Thread Sven Van Caekenberghe

 On 07 Nov 2014, at 21:02, Tudor Girba tu...@tudorgirba.com wrote:
 
 Hi Sven,
 
 Neither of these requests are being ignored (see the other two replies), but 
 good things take time.

So the editing is coming, super.

 We would be happy to get more contributors :).

So how are we going to make the inspectors really live ?

The old inspectors had this busy loop (well part of the morph step protocol) 
for updating. I am sure I do not have to explain why we need this.

Before, it was maybe not efficient (enough) and you said it would be too 
expensive for large computations.

So what is the solution ? An opt-in or opt-out mechanism ? Per object, per 
presentation ?

 Doru
 
 --
 www.tudorgirba.com
 
 Every thing has its own flow
 
 On 07 Nov 2014, at 19:31, Sven Van Caekenberghe s...@stfx.eu wrote:
 
 It simply has to be possible to edit values and to see live updates, there 
 is no way around it - else the GT inspector looks at dead objects, bye bye 
 live programming.
 
 I think it is not cool that this is being ignored.
 
 On 07 Nov 2014, at 19:24, Alexandre Bergel alexandre.ber...@me.com wrote:
 
 This is strange, I do not remember to have use this when I was using the 
 old inspector. I usually trust what the inspector tells me only having open 
 one.  
 
 Alexandre
 -- 
 _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
 Alexandre Bergel  http://www.bergel.eu
 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
 
 
 
 On Nov 7, 2014, at 12:40 PM, Marcus Denker marcus.den...@inria.fr wrote:
 
 Yes, editing state and inspectors need to be updated so you see live how 
 value are changing even when they
 are changed from somewhere else.
 
 
 
 




Re: [Pharo-dev] NAtiveBoost error

2014-11-07 Thread Alain Rastoul

Well, it looks like this thread have somewhat derailed :)

My initial  question was about a problem I now think (but have to
confirm) is a vm system call signals side effects with socket polling
in zeroMQ code (remember this is the vmdev mailing list not the smalltalk
user list).

I don't like zealots of any kind (object, relational, functional, 
religious ...),
my pun was essentially a joke about trying to send a stateless electron 
 :o)

over a wire  as a computation  to someone's answer I suspect beeing
a troll (plug a chakra socket here for a zealot effect).
To me at some point, we have to go into some kind of materialization and 
state,

(even with pivotal who have to stores it's code as bits I guess ?)
and certainly no judgement of any kind about other realms or langages,
I like new ideas , new langages, and  new experiences.
Of course, functional programming, monads, lambda calculus
interests everybody here (me too), I also would like to try functional 
programming too
but have a project I want to take at some interesting level first, and 
this is my priority.


If the intent was not a troll, and he wants to discuss
about smalltalk object oriented realm why doesn't he *please* start a 
new thread

and lot of people would give him valuable answers (some did here)
about the small*talk* spirit which is (IMHO) essentially about object 
perception
and message sending (hence behaviour or functional) but certainly not 
only state


Regards,

Alain


Le 07/11/2014 22:04, kilon alios a écrit :

Its definetly an interesting concept. I am curious to give it a try
because it would take me outside my comfort zone and there is nothing
more that I love than getting outside my comfort zone. But I blame Pharo
and the Pharo people who dont let me to try another language, damn them
 DAMN THEM I SAY

Side effects certainly can be a source of trouble but alas they are not
the holy grail of trouble. Coding is a complex subject so introducing
restrictions of purity will produce some side effects. OH YES PUN WAS
INTENDED 

Its easy to dismiss such an approach however without trying it in
practice with real projects. But then I do also recognise that mixing
types can be a problem too at some point that does not convince me into
going to  static type language.

I think for Pharo state is much less of a problem because Pharo has very
powerful inspector , debuger and IDE to track down state. So its easy
for a pharo developer to be aware of state compared to some developer
using another language and not using an IDE at all. If state becomes too
complex then its a sign to refactor code and make it simpler. I do think
however with powerful IDEs you can get around this problem easily.

So I cant say I am a big believer of Haskell.

Also I real hate the terminology side effect ... sounds too.
elitist to me.

On Fri, Nov 7, 2014 at 5:51 PM, Kjell Godo
squeakl...@gmail.com
mailto:squeakl...@gmail.com wrote:

This is off topic.

I tried to post it as a top level thread but I have become unknown.

I don't know if you want this crap in here but I have decided not to
wait for the

postmaster to get back to me on the subject of becoming known.  Feel
free.





( Original-SUBJECT: ( picoVerse-:( what about state , is state
really evil? ) )   )






I am a Smalltalker.

But in the past few months i have been running with the Haskellers.

The Haskellers hate state.

This seemed strange at first because as a Smalltalker i love(d)
state.  State iswas my friend.

90% of my life as a Smalltalker is state wrangling.  I am a state
herder.

The debugger is my staff I use to whack the state.  And TestCase is
my sheep dog.

But to the Haskellers

state is

the evil trinity

of

satan the anti christ and the false prophet

all rolled into one.

State is the true dev incarnation of the total catastrophe of
development Armageddon.

Blood up to the bridles for hundreds of miles.  Dogs and cats living
together.  Mass hysteria.

They say.

I'm not sure i quite get it yet but they keep preaching on this one
point most of all.

State is evil.

You must keep all state in a Monad.  As many methods/functions m as
possible

must be 100% dependent on the input parameters ONLY.

No hidden instance variables affecting the return value of m are
allowed.

The only effect m can have is to return a value.

If all this is true then m is pure.

And pure is good.   Pure is very good.  And the wind says

very.

So i wonder if any of you fellow

Smalltalkers

have thought about this at all.

Thanks

Kjell E Godø









(( Maybe Smalltalk should be called Statewalk

as in yak it up fuzz ball. ))


On Tuesday, November 4, 2014, Alain Rastoul
alf.mmm@gmail.com
mailto:alf.mmm@gmail.com wrote:

Stef,
As I said to 

Re: [Pharo-dev] NAtiveBoost error

2014-11-07 Thread Eliot Miranda
On Fri, Nov 7, 2014 at 2:06 PM, Alain Rastoul alf.mmm@gmail.com wrote:

 Well, it looks like this thread have somewhat derailed :)

 My initial  question was about a problem I now think (but have to
 confirm) is a vm system call signals side effects with socket polling
 in zeroMQ code (remember this is the vmdev mailing list not the smalltalk
 user list).

 I don't like zealots of any kind (object, relational, functional,
 religious ...),
 my pun was essentially a joke about trying to send a stateless electron
 :o)
 over a wire  as a computation  to someone's answer I suspect beeing
 a troll (plug a chakra socket here for a zealot effect).


But electrons are not stateless; they have spin and energy ;-)


 To me at some point, we have to go into some kind of materialization and
 state,
 (even with pivotal who have to stores it's code as bits I guess ?)
 and certainly no judgement of any kind about other realms or langages,
 I like new ideas , new langages, and  new experiences.
 Of course, functional programming, monads, lambda calculus
 interests everybody here (me too), I also would like to try functional
 programming too
 but have a project I want to take at some interesting level first, and
 this is my priority.

 If the intent was not a troll, and he wants to discuss
 about smalltalk object oriented realm why doesn't he *please* start a new
 thread
 and lot of people would give him valuable answers (some did here)
 about the small*talk* spirit which is (IMHO) essentially about object
 perception
 and message sending (hence behaviour or functional) but certainly not
 only state

 Regards,

 Alain


 Le 07/11/2014 22:04, kilon alios a écrit :

 Its definetly an interesting concept. I am curious to give it a try
 because it would take me outside my comfort zone and there is nothing
 more that I love than getting outside my comfort zone. But I blame Pharo
 and the Pharo people who dont let me to try another language, damn them
  DAMN THEM I SAY

 Side effects certainly can be a source of trouble but alas they are not
 the holy grail of trouble. Coding is a complex subject so introducing
 restrictions of purity will produce some side effects. OH YES PUN WAS
 INTENDED 

 Its easy to dismiss such an approach however without trying it in
 practice with real projects. But then I do also recognise that mixing
 types can be a problem too at some point that does not convince me into
 going to  static type language.

 I think for Pharo state is much less of a problem because Pharo has very
 powerful inspector , debuger and IDE to track down state. So its easy
 for a pharo developer to be aware of state compared to some developer
 using another language and not using an IDE at all. If state becomes too
 complex then its a sign to refactor code and make it simpler. I do think
 however with powerful IDEs you can get around this problem easily.

 So I cant say I am a big believer of Haskell.

 Also I real hate the terminology side effect ... sounds too.
 elitist to me.

 On Fri, Nov 7, 2014 at 5:51 PM, Kjell Godo
 squeakl...@gmail.com
 mailto:squeakl...@gmail.com wrote:

 This is off topic.

 I tried to post it as a top level thread but I have become unknown.

 I don't know if you want this crap in here but I have decided not to
 wait for the

 postmaster to get back to me on the subject of becoming known.  Feel
 free.





 ( Original-SUBJECT: ( picoVerse-:( what about state , is state
 really evil? ) )   )






 I am a Smalltalker.

 But in the past few months i have been running with the Haskellers.

 The Haskellers hate state.

 This seemed strange at first because as a Smalltalker i love(d)
 state.  State iswas my friend.

 90% of my life as a Smalltalker is state wrangling.  I am a state
 herder.

 The debugger is my staff I use to whack the state.  And TestCase is
 my sheep dog.

 But to the Haskellers

 state is

 the evil trinity

 of

 satan the anti christ and the false prophet

 all rolled into one.

 State is the true dev incarnation of the total catastrophe of
 development Armageddon.

 Blood up to the bridles for hundreds of miles.  Dogs and cats living
 together.  Mass hysteria.

 They say.

 I'm not sure i quite get it yet but they keep preaching on this one
 point most of all.

 State is evil.

 You must keep all state in a Monad.  As many methods/functions m as
 possible

 must be 100% dependent on the input parameters ONLY.

 No hidden instance variables affecting the return value of m are
 allowed.

 The only effect m can have is to return a value.

 If all this is true then m is pure.

 And pure is good.   Pure is very good.  And the wind says

 very.

 So i wonder if any of you fellow

 Smalltalkers

 have thought about this at all.

 Thanks

 Kjell E Godø









 (( Maybe 

Re: [Pharo-dev] NAtiveBoost error

2014-11-07 Thread Alain Rastoul

Le 07/11/2014 23:14, Eliot Miranda a écrit :



On Fri, Nov 7, 2014 at 2:06 PM, Alain Rastoul alf.mmm@gmail.com
mailto:alf.mmm@gmail.com wrote:

Well, it looks like this thread have somewhat derailed :)

My initial  question was about a problem I now think (but have to
confirm) is a vm system call signals side effects with socket polling
in zeroMQ code (remember this is the vmdev mailing list not the
smalltalk
user list).

I don't like zealots of any kind (object, relational, functional,
religious ...),
my pun was essentially a joke about trying to send a stateless
electron  :o)
over a wire  as a computation  to someone's answer I suspect beeing
a troll (plug a chakra socket here for a zealot effect).


But electrons are not stateless; they have spin and energy ;-)

that was the point (the :o) smiley)
...how far we go
:)



To me at some point, we have to go into some kind of materialization
and state,
(even with pivotal who have to stores it's code as bits I guess ?)
and certainly no judgement of any kind about other realms or langages,
I like new ideas , new langages, and  new experiences.
Of course, functional programming, monads, lambda calculus
interests everybody here (me too), I also would like to try
functional programming too
but have a project I want to take at some interesting level first,
and this is my priority.

If the intent was not a troll, and he wants to discuss
about smalltalk object oriented realm why doesn't he *please* start
a new thread
and lot of people would give him valuable answers (some did here)
about the small*talk* spirit which is (IMHO) essentially about
object perception
and message sending (hence behaviour or functional) but certainly
not only state

Regards,

Alain


Le 07/11/2014 22:04, kilon alios a écrit :

Its definetly an interesting concept. I am curious to give it a try
because it would take me outside my comfort zone and there is
nothing
more that I love than getting outside my comfort zone. But I
blame Pharo
and the Pharo people who dont let me to try another language,
damn them
 DAMN THEM I SAY

Side effects certainly can be a source of trouble but alas they
are not
the holy grail of trouble. Coding is a complex subject so
introducing
restrictions of purity will produce some side effects. OH YES
PUN WAS
INTENDED 

Its easy to dismiss such an approach however without trying it in
practice with real projects. But then I do also recognise that
mixing
types can be a problem too at some point that does not convince
me into
going to  static type language.

I think for Pharo state is much less of a problem because Pharo
has very
powerful inspector , debuger and IDE to track down state. So its
easy
for a pharo developer to be aware of state compared to some
developer
using another language and not using an IDE at all. If state
becomes too
complex then its a sign to refactor code and make it simpler. I
do think
however with powerful IDEs you can get around this problem easily.

So I cant say I am a big believer of Haskell.

Also I real hate the terminology side effect ... sounds too.
elitist to me.

On Fri, Nov 7, 2014 at 5:51 PM, Kjell Godo
squeakl...@gmail.com mailto:squeakl...@gmail.com
mailto:squeakl...@gmail.com mailto:squeakl...@gmail.com wrote:

 This is off topic.

 I tried to post it as a top level thread but I have become
unknown.

 I don't know if you want this crap in here but I have
decided not to
 wait for the

 postmaster to get back to me on the subject of becoming
known.  Feel
 free.





 ( Original-SUBJECT: ( picoVerse-:( what about state ,
is state
 really evil? ) )   )






 I am a Smalltalker.

 But in the past few months i have been running with the
Haskellers.

 The Haskellers hate state.

 This seemed strange at first because as a Smalltalker i love(d)
 state.  State iswas my friend.

 90% of my life as a Smalltalker is state wrangling.  I am a
state
 herder.

 The debugger is my staff I use to whack the state.  And
TestCase is
 my sheep dog.

 But to the Haskellers

 state is

 the evil trinity

 of

 satan the anti christ and the false prophet

 all rolled into one.

 State is the true dev incarnation of the total catastrophe of
 

Re: [Pharo-dev] NAtiveBoost error

2014-11-07 Thread Alain Rastoul

Le 07/11/2014 21:11, stepharo a écrit :


On 4/11/14 20:30, Alain Rastoul wrote:

Stef,
As I said to Igor, the main problem about NativeBoost was between
the chair and the keyboard... :)
It is my first use of NativeBoost, I simply overlooked the very good
existing chapter of EnterprisePharo on NativeBoost
(NativeBoost recipes, the X11 journey) and misused the
NativeBoost marshalling of data types.
NAtiveBoost is great.

If I achieve my experiments with zeromq and ends up with
something clean (not the case actually, and not my first goal),
I will be glad to add  a chapter about that.


ok je le note ;)


Avec plaisir :)

But to be honest, I am very disappointed with zeroMQ library,
not what I was expecting reading docs and books (some hype, not only 
sure but some),

lots of asserts in code like unlikely(condition), return code tests
not clear, looks very fragile,  breakable and somewhat uncertain (and 
often crashed).


In fact about the linux problem, I suspect (really not sure yet) a side 
effect

with the pharo vm signals, that should not be the case for a library.
Reading some posts and answers about python interfacing problems, I think
ZeroMQ works well in a program that is designed to use it and only.
It may work well with other systems, but not designed in that mindset
(assertions in posts like : failing here must abort the program?!).
Things that make me think that zeroMQ is probably not a reliable thing
to use in Pharo.

Plus the only answer I had on the mq list was my own answer (or comment)
on debugging the library
:(

BTW, I have the websocket B plan for that (first tests make me
think it could be a better plan for my needs).
It will be a different animal, but interesting too.



My current problem is about a different socket behaviour between
windows and linux.
I think this is not a problem with ZeroMQ, the C program works as
expected,
I have to look for an explanation.
No stress about that


Alain


Le 04/11/2014 10:39, stepharo a écrit :

Alain

which nativeboost chapter :)?
Could you propose a paragraph so that we cover the problem you faced?

Stef

On 4/11/14 00:44, Alain Rastoul wrote:

Hi Igor,

Thank you for your answer, it worked perfectly
Looks like I overlooked the nativeboost chapter
.. 10 timesRepeatAfterMe: [self rtfm ] .
And my suggestion about testing nil was stupid, much better to fail
soon.
...  I am an ass on this one...

However, I am struggling on another point you already answered in the
past
in the mailing list to a guy who wanted to use socket.io :
(http://forum.world.st/socket-io-td3891592.html#a3893031)
Sockets in Pharo are not blocking the whole VM.
What they block is the process which working with concrete socket. But
other processes can still run, while
one waiting data / even from single socket. 
on windows, zmq socket receive is blocking, on linux, not blocking
(hence not working).
As zmq is doing is IO on another thread, I guess there is some side
effect of
socket receive timeout settings somewhere (in the plugin ?) - just a
guess...
Getting socket options shows no difference, but I don't know how it is
done on the vm
side with regards to threads and if the socket is the same (zmq socket
is not the tcp socket)...
And on linux, the equivalent C program of to the smalltalk version
blocks as expected.

I a mperplexified ...
may be I should look at vm and plugin code (VMMaker package IIRC) ?
Do you have another advice ?

Thanks you

Alain
Le 03/11/2014 02:12, Igor Stasenko a écrit :

NBExternalArray instances cannot be passed directly to functions
expecting pointers.

use 'myarray address' for arguments.

On 3 November 2014 00:20, Alain Rastoul
alf.mmm@gmail.com
mailto:alf.mmm@gmail.com wrote:

Hi,

I have a problem with a nativeboost call, but  I don't see what
I do
wrong.

   library function prototype is:
  int zmq_getsockopt (void *socket, int option_name, void
*option_value, size_t *option_len);

my calling method in pharo is:
zmq_getsockopt: socket option_name: option_name option_value:
option_value option_len: option_len
 primitive: #primitiveNativeCall module:
#NativeBoostPlugin
error: errorCode
 ^self nbCall: #(int zmq_getsockopt (void *socket, int
option_name, void * option_value, size_t* option_len)  )

when I call it with
...
optionValue := (NBExternalArray ofType: 'int') externalNew: 1.
optionLen := (NBExternalArray ofType: 'size_t' ) externalNew: 1.
[   optionValue at: 1 put: 0 .
 optionLen at: 1 put: (NBExternalType sizeOf: 'int')  .
 rc := self zmq_getsockopt: socket option_name:
option_name
 option_value:  optionValue
 option_len: optionLen  .
 value := optionValue at: 1 .
] ensure: [  optionValue free.
 optionLen free  ].
...
I allways get an exception: error during FFI call : nil


After stepping in NBFFICallout 

Re: [Pharo-dev] inria survey

2014-11-07 Thread Ben Coman

stepharo wrote:

Hi guys

you can help us to improve our communication as a research center. 
Please take some minutes to fill this little survey.


Stef

--
VERSION FRANÇAISE
--
Créé depuis 2002 à Lille, le centre de recherche Inria Lille - Nord 
Europe souhaite faire un point d’étape sur sa notoriété et s’interroge 
sur l’image qu’il véhicule auprès des différents publics avec lesquels 
il collabore. Industriels, partenaires académiques, collectivités, 
chercheurs, journalistes, fournisseurs, étudiants, lycéens… Nous voulons 
savoir si vous nous connaissez bien et si vous auriez envie d’en savoir 
plus. Vos avis nous intéressent alors n’hésitez pas à compléter le 
questionnaire avant le 28 novembre.


David Simplot-Ryl directeur Inria Lille - Nord Europe


En pratique ;
Lien vers le questionnaire : 
https://sondages.inria.fr/index.php/632788?lang=fr

Clôture de l’enquête le 28 novembre.
Temps de réponse au questionnaire : moins de 10min.
Les résultats de l’enquête seront communiqués en 2015.

http://www.inria.fr/centre/lille/actualites/enquete-sur-l-image-du-centre-inria-lille-nord-europe 




ENGLISH VERSION

Created since 2002 in Lille, the Inria Lille - Nord Europe research 
center wish to make a report on its reputation and its image. Industrial 
and academic partners, researchers, journalists , suppliers, 
students,... We want to know if you know us well and if you would like 
to learn more. We are interested in your opinion then do not hesitate to 
complete the questionnaire before 28 November. David Simplot- Ryl 
director Inria Lille - Nord Europe


David Simplot-Ryl director Inria Lille - Nord Europe

In practice ;
Link to the survey :https://sondages.inria.fr/index.php/632788?lang=fr 
(select English)

Deadline to respond 28 November.
Questionnaire response time : less than 10 minutes.
The results of the survey will be released in 2015.

http://www.inria.fr/en/centre/lille/news/inria-lille-nord-europe-survey




I've completed it, but some ambiguities I encountered...

What is Vulgarization of science ?

For Patient specific model is this specifically referring to a medical 
application, or a translation error meaning User specific model?


btw, it would have been nice to be able to go back to previous pages.
cheers -ben





[Pharo-dev] Visit/accept method naming philosophy

2014-11-07 Thread Ben Coman


This is a general query and something I've wondered several times before 
in different situations, but I use OSWindow as an example since that is 
what I happen to be looking at this time.


For curiosity I was having a poke around OSWindow and seeing 
OSWindowMorphicEventHandlerhandleEvent:

morphicEvent := anEvent accept: self.

I wanted to view the code that could invoke, so I used cmd-M on 
#accept: to get the implementors, which lists 116 items, many of which 
are unrelated.   Now its not t hard to guess which implementations 
are related, but it would be nicer to guess less.   Would it be a 
reasonable philosophy to distinguish each package's #accept: method by 
appending the expect object type, like this... ?



OSWindowMorphicEventHandlerhandleEvent:
morphicEvent := anEvent acceptOSEventHandler: self.

IRVisitorvisitNode: elem
   ^ elem acceptIRVisitor: self

ParseNodeVisitorvisitBlockNode: aBlockNode
aBlockNode statements do:
[:statement | statement acceptParseNode: self]


Or does such a convention constrain too much how you can extend a 
visitor pattern?


cheers -ben






Re: [Pharo-dev] inria survey

2014-11-07 Thread Marcus Denker

 
 I've completed it, but some ambiguities I encountered...
 
 What is Vulgarization of science”

French people think it is the english translation of the french word 
vulgarisation scientifique
http://fr.wikipedia.org/wiki/Vulgarisation

It seems to be in the english dictionary as “to make popular”:
http://dictionary.reverso.net/english-definition/vulgarisation

(coming from latin I guess lots of languages have it with kind-of-the same 
meaning.)
For my german ear it sound horrible, as “vulgär” has picked up *very* negative 
connotations. 

You really do not want to be that… or make your research that:
http://www.dict.cc/deutsch-englisch/vulgär.html


Marcus






Re: [Pharo-dev] edit values in GTInspector

2014-11-07 Thread Marcus Denker

 On 07 Nov 2014, at 19:24, Alexandre Bergel alexandre.ber...@me.com wrote:
 
 This is strange, I do not remember to have use this when I was using the old 
 inspector. I usually trust what the inspector tells me only having open one.  
 

But that’s the point: if the value changes, the inspector shows the old one. So 
you can *not* trust it.
(and all the cool demos do not work anymore: adding an ivar to a class and the 
inspector on the object shows
it, inspecting the world and showing how the mouse course position changes…)

Marcus


Re: [Pharo-dev] Visit/accept method naming philosophy

2014-11-07 Thread Thierry Goubier
Hi Ben,

2014-11-08 7:28 GMT+01:00 Ben Coman b...@openinworld.com:


 This is a general query and something I've wondered several times before
 in different situations, but I use OSWindow as an example since that is
 what I happen to be looking at this time.

 For curiosity I was having a poke around OSWindow and seeing
 OSWindowMorphicEventHandlerhandleEvent:
 morphicEvent := anEvent accept: self.

 I wanted to view the code that could invoke, so I used cmd-M on #accept:
 to get the implementors, which lists 116 items, many of which are
 unrelated.   Now its not t hard to guess which implementations are
 related, but it would be nicer to guess less.   Would it be a reasonable
 philosophy to distinguish each package's #accept: method by appending the
 expect object type, like this... ?


 OSWindowMorphicEventHandlerhandleEvent:
 morphicEvent := anEvent acceptOSEventHandler: self.

 IRVisitorvisitNode: elem
^ elem acceptIRVisitor: self

 ParseNodeVisitorvisitBlockNode: aBlockNode
 aBlockNode statements do:
 [:statement | statement acceptParseNode: self]


 Or does such a convention constrain too much how you can extend a visitor
 pattern?


It has a nice a type is documentation for the programmer effect, so I'd
say it could work. It would be interesting to see what it looks like on an
external package of a certain size and with users.

At the same time, your issue is also with the fact that filtering the
relevant #accept: implementors could be easier, and this is a GUI issue for
which we already have propositions (or we can think of some).

Thierry



 cheers -ben







Re: [Pharo-dev] inria survey

2014-11-07 Thread Thierry Goubier
2014-11-08 7:32 GMT+01:00 Marcus Denker marcus.den...@inria.fr:


 
  I've completed it, but some ambiguities I encountered...
 
  What is Vulgarization of science

 French people think it is the english translation of the french word
 vulgarisation scientifique
 http://fr.wikipedia.org/wiki/Vulgarisation

 It seems to be in the english dictionary as to make popular:
 http://dictionary.reverso.net/english-definition/vulgarisation

 (coming from latin I guess lots of languages have it with kind-of-the same
 meaning.)
 For my german ear it sound horrible, as vulgär has picked up *very*
 negative
 connotations.

 You really do not want to be that... or make your research that:
 http://www.dict.cc/deutsch-englisch/vulgär.html


Knowing that vulgaire in french has more or less the same meaning than
vulgär in German :)

Thierry




 Marcus







Re: [Pharo-dev] edit values in GTInspector

2014-11-07 Thread Tudor Girba
What Alex was saying is that he only trusts an inspector that he just
opened. This is clearly not ideal.

Is there a way to get reliably notified when an object changes its state?

Cheers,
Doru



On Sat, Nov 8, 2014 at 7:37 AM, Marcus Denker marcus.den...@inria.fr
wrote:


  On 07 Nov 2014, at 19:24, Alexandre Bergel alexandre.ber...@me.com
 wrote:
 
  This is strange, I do not remember to have use this when I was using the
 old inspector. I usually trust what the inspector tells me only having open
 one.
 

 But that’s the point: if the value changes, the inspector shows the old
 one. So you can *not* trust it.
 (and all the cool demos do not work anymore: adding an ivar to a class and
 the inspector on the object shows
 it, inspecting the world and showing how the mouse course position
 changes…)

 Marcus




-- 
www.tudorgirba.com

Every thing has its own flow