Re: [Pharo-dev] [Vm-dev] Frequent SegFaults in PharoVM with Pharo 3.0

2013-11-26 Thread Max Leske
Thanks for the explanation. I suspected something like that (interestingly when 
I tried disabling all options on my Mac it worked fine…).

I’ll dig some more and let you know.


On 25.11.2013, at 18:42, Eliot Miranda eliot.mira...@gmail.com wrote:

 
 
 
 On Mon, Nov 25, 2013 at 9:37 AM, Sven Van Caekenberghe s...@stfx.eu wrote:
 
 On 25 Nov 2013, at 17:56, Clément Bera bera.clem...@gmail.com wrote:
 
  Yeah you cannot compile without inlining specific messages. You can disable 
  inlining of #timesRepeat: at image level because we added it for fun to see 
  if it was easy to do in Opal. Now all other optimizations were in the old 
  compiler and are mandatories. However, you can now in Opal disable these 
  optimized messages in a restricted area (such as a class and its 
  subclasses).
 
  To me, it is kind of a bug that we cannot disable those optimizations, we 
  should be able to do it (so 1 day in the very very far future we could have 
  the JIT inlining these control structure allowing us to implement all these 
  inlined messages in all classes). But one thing is that some methods such 
  as #whileTrue are not implemented in a way they really work (they have not 
  stop condition, so if the compiler does not inline it, it gives you an 
  infinite loop). Another thing is the interrupt point problem as Marcus said.
 
  I don't think your other bug is related Opal optimization, only 
  #timesRepeat: is new and therefore can be faulty (and in this case, the 
  bytecode is correct, so I guess it is faulty because it removes an 
  interrupt point).
 
 It is a bit scary that there is no explicit, crystal clear list of those 
 interrupt critical points, especially if skipping them can lead to VM crashes.
 
 Before we raise the alarm the first thing is to identify the cause of the VM 
 crash.  It could still be a VM bug.  First track down the bug.  Don't try and 
 find work-arounds.  Try and find the cause.  Only then can one develop a 
 correct fix.  Anything else buries the true cause under hacks, a process that 
 is truly scary ;-)
  
 
  2013/11/25 Marcus Denker marcus.den...@inria.fr
 
  On 25 Nov 2013, at 16:26, Max Leske maxle...@gmail.com wrote:
 
   Thanks Clément, that seems to be it. Disabling the timesRepeat inlining 
   makes most of the builds run through but not all of them. It seems like 
   there’s another (Opal related?) problem (with the exact same symptoms…).
  
   I’ve tried disabling all options, just to see what happens: all builds 
   fail with SegFaults…
 
  You can not compile without optimisations. There are places in the image 
  that would not work with e.g. whileTrue: optimisation disabled as it would 
  e.g. add an interrupt point where none is now
  And other things, like performance, or e.g. the loop that goes over all 
  objects, if that creates objects while running you have a problem…
 
  Marcus
 
 
 
 
 
 
 -- 
 best,
 Eliot



Re: [Pharo-dev] Is there an up to date version of ConfigurationOfFuel?

2013-11-24 Thread Max Leske
What do you mean by up to date? For 3.0 #development is current.


On 24.11.2013, at 21:04, Stéphane Ducasse stephane.duca...@inria.fr wrote:

 Is there an up to date version of ConfigurationOfFuel?
 
 Stef
 




Re: [Pharo-dev] Is there an up to date version of ConfigurationOfFuel?

2013-11-24 Thread Max Leske
I’m currently making some fixes to the configuration but basically you can just 
use the latest one. That should do the trick.

On 24.11.2013, at 22:45, Stéphane Ducasse stephane.duca...@inria.fr wrote:

 
 What do you mean by up to date? For 3.0 #development is current.
 
 I want to try to unload fuel and reload it. I guess that it will be easy 
 since you maintain it.
 I want to do that to many parts (all) of the system. 
 
 Is there an up to date version of ConfigurationOfFuel?
 




Re: [Pharo-dev] vmLatest zeroconf problem

2013-11-11 Thread Max Leske
Might be related to the maintenance at INRIA.


On 11.11.2013, at 09:07, p...@highoctane.be wrote:

 Now get.pharo.org looks like dead.



Re: [Pharo-dev] vmLatest zeroconf problem

2013-11-11 Thread Max Leske
Does the same happen with bash? The scripts were written for bash, not sh, so 
there might be slight differences in execution…


On 10.11.2013, at 22:06, Tudor Girba tu...@tudorgirba.com wrote:

 I seem to get a problem with the latest zero conf scripts when downloading 
 only the latest VM. 
 
 I can reproduce the problem on a Mac like this:
 
 If I do:
 curl -L get.pharo.org/30+vmLatest | sh
 ./pharo-ui
 == the dialog opens fine
 
 But, if I do:
 curl -L get.pharo.org/vmLatest | sh
 ./pharo-ui
 == ERROR: ./pharo-ui: line 11: -n: command not found
 
 
 Cheers,
 Doru
 
 -- 
 www.tudorgirba.com
 
 Every thing has its own flow



[Pharo-dev] Fwd: [ci-announces] CI shutdown on the 11th of November

2013-11-11 Thread Max Leske
files.pharo.org and get.pharo.org will remain DOWN for the rest of the day.

Begin forwarded message:

 From: Emmanuel Jeanvoine emmanuel.jeanvo...@inria.fr
 Subject: Re: [ci-announces] CI shutdown on the 11th of November
 Date: 9. November 2013 09:00:31 MEZ
 To: ci-announ...@inria.fr
 Reply-To: Emmanuel Jeanvoine emmanuel.jeanvo...@inria.fr
 
 On Thu, 07 Nov 2013, Emmanuel Jeanvoine wrote:
 
 Dear users,
 
 The 11th of November, the IT department will stop the national IT 
 services. As a consequence, the CI service will be stopped.
 
 In order to prevent any trouble, we strongly advice users to perform 
 the following steps before the 11th of November (Sunday evening at the 
 very latest):
 - stop the Jenkins instance of your project (see 
 https://ci.inria.fr/project/PROJECTNAME/show#ci) 
 - stop all the slaves related to your project (directly with a clean 
 shutdown in the slave or from 
 https://ci.inria.fr/project/PROJECTNAME/show#slaves)  
 
 By the way, if you notice unused slaves in your project, you are 
 strongly encouraged to removed them (delete button on 
 https://ci.inria.fr/project/PROJECTNAME/show#slaves, or destroy 
 button directly on the CloudStack interface). Stopping the unused 
 slaves is not enough to free the related resources.
 
 Monday in the morning, the remaining running slaves will be stopped. 
 After the maintenance, the Jenkins instances and the slaves will be 
 restarted.
 
 Thus we hope that the service will be fully available on Tuesday in 
 the morning. Anyway, since it is an heavy operation (major changes on 
 the network of the datacenter) issues might occur, so we will 
 communicate if communication means are available ;).
 
 Thank you for your understanding,
 Emmanuel
 
 
 This is a reminder, you still have the opportunity to shutdown your 
 slaves and jenkins instances before tomorrow evening. This might be 
 useful to prevent slaves and jenkins corruption.
 
 Regards,
 Emmanuel



Re: [Pharo-dev] Bugs and files sites down?

2013-11-11 Thread Max Leske
I just forwarded the INRIA announcement to the list: due to maintenance 
files.pharo.org and get.pharo.org will remain down for the day.

Max


On 11.11.2013, at 13:36, Pablo Estefó pest...@gmail.com wrote:

 Hi guys,
 
 We are trying to start the Pharo Sprint here at DCC UChile but the sites 
 files.pharo.org / bugs.pharo.org seems to be down.
 
 Cheers,
 
 Pablo




Re: [Pharo-dev] Bugs and files sites down?

2013-11-11 Thread Max Leske
pharo.fogbugz.com is still online though.

On 11.11.2013, at 13:47, Max Leske maxle...@gmail.com wrote:

 I just forwarded the INRIA announcement to the list: due to maintenance 
 files.pharo.org and get.pharo.org will remain down for the day.
 
 Max
 
 
 On 11.11.2013, at 13:36, Pablo Estefó pest...@gmail.com wrote:
 
 Hi guys,
 
 We are trying to start the Pharo Sprint here at DCC UChile but the sites 
 files.pharo.org / bugs.pharo.org seems to be down.
 
 Cheers,
 
 Pablo
 




Re: [Pharo-dev] Unexpected block variable change of value

2013-11-11 Thread Max Leske
Not sure if it’s related to your issue but I’ve been seeing swapped temporary 
variables in the debugger. The value used for execution is correct but in the 
view two variables will have the value of the other.
Are you sure that the value *effectively* changes or could it be a 
visualization problem?

Max

On 11.11.2013, at 17:29, b...@openinworld.com wrote:

 I'm not sure if I'm missing something, but there seems some strange behavior 
 that I don't understand.  The value of a block variable changes when stepping 
 over a method that acts on that variable.  I encountered this in Spec, but 
 that seems co-incidental to the behaviour. 
 SETUP
 1. The attached My-Spec-Tutorial-BenComan.1.mcz (i.e. Bahman's tutorial) 
 was loaded into build #30564.
 
 2. A breakpoint was inserted after the first e generateArguments in...
 SpecRowLayoutprivateAsArray
   | result shouldCheckSplitters |
   result := OrderedCollection new.
   shouldCheckSplitters := false. (self commands reject: [:e | e 
 isSplitter ]) do: [:e |
   ...lots..hidden.for..conciseness
   e generateArguments.
   self haltOnce. --
   e asSpecElements do: [:el |
   result add: el ]].
 
 3. The following was evaluated...
   Halt enableHaltOnce.
   MyFirstWindow new openWithSpec: #defaultSpec.
 
 
 OBSERVATION
 1. When the debugger opened at the breakpoint
 e = a SpecLayoutAdd
 
 2. But after stepping over #asSpecElements
 e = an OrderedCollection()
 
 So how did the value of 'e' change?
 
 Where...
 SpecLayoutAdd(SpecLayoutSend)asSpecElements
   ^ {self selector.}, self arguments
 
 SpecLayoutAdd(SpecLayoutSend)selector
   ^ selector
 
 SpecLayoutAdd(SpecLayoutSend)arguments
   ^ arguments
 
 
 This was on Windows 7.  Since files.pharo.org is offline, I wasn't able to 
 try a newer VM. My current was...
 
 NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.18 uuid: 
 a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013
 NBCogit NativeBoost-CogPlugin-EstebanLorenzano.18 uuid: 
 a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013
 git://gitorious.org/cogvm/blessed.git Commit: 
 412abef33cbed05cf1d75329e451d71c0c6aa5a7 Date: 2013-03-13 17:48:50 +0100 By: 
 Esteban Lorenzano esteba...@gmail.com Jenkins build #14535
 
 Win32 built on Mar 13 2013 18:49:42 Compiler: 4.6.2
 VMMaker versionString git://gitorious.org/cogvm/blessed.git Commit: 
 412abef33cbed05cf1d75329e451d71c0c6aa5a7 Date: 2013-03-13 17:48:50 +0100 By: 
 Esteban Lorenzano esteba...@gmail.com Jenkins build #14535
 NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.18 uuid: 
 a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013
 NBCogit NativeBoost-CogPlugin-EstebanLorenzano.18 uuid: 
 a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013
 
 cheers -ben
 
 My-Spec-Tutorial-BenComan.1.mcz




Re: [Pharo-dev] FileSystem memory bug?

2013-11-08 Thread Max Leske

On 08.11.2013, at 13:59, Sven Van Caekenberghe s...@stfx.eu wrote:

 Hi Martin,
 
 I would guess that the stream created by the memory filesystem are binary, 
 not character, as STON expects.

Good point, although currently ascii mode is still default I think.
Try sending #ascii to the stream. That might help.

 
 Sven
 
 On 08 Nov 2013, at 13:55, Martin Dias tinchod...@gmail.com wrote:
 
 Hi,
 
 I'm working in latest Pharo (30577) with STON (bleeding edge) and I get 
 MNU:SmallIntegerisSeparator when I evaluate the code below. Is my code 
 wrong? The idea is to make my test suite work in the memory file system.
 
 | fileSystem |
 fileSystem := FileSystem memory.
 
 (fileSystem / 'file.txt') ensureCreateFile.
 
 STON writer
  on: (fileSystem / 'file.txt') writeStream;
  nextPut: 'hi'.
  
 STON reader
  on: (fileSystem / 'file.txt') readStream;
  next.
 
 Thanks in advance.
 
 Martín
 
 




Re: [Pharo-dev] No decompile string at all, bad idea?

2013-11-06 Thread Max Leske

On 06.11.2013, at 08:57, Marcus Denker marcus.den...@inria.fr wrote:

 
 On 06 Nov 2013, at 08:53, Max Leske maxle...@gmail.com wrote:
 
 
 On 06.11.2013, at 08:05, Marcus Denker marcus.den...@inria.fr wrote:
 
 
 On 05 Nov 2013, at 20:37, Mariano Martinez Peck marianop...@gmail.com 
 wrote:
 
 Hi. From what I understand you removed the old Compiler but yet Opal does 
 not support compiling. Also, #sourceCode was changed etc...
 That means that there is no way to see the decompiled string of a method? 
 
 Yes.
 
 Which means I cannot deploy and image without sources and then 
 browse/debug/inspect/write pharoDebug.log  etc because we don't have even 
 the decompile string???  
 
 Exactly. But this is just temporary, .sources and .changes will go away in 
 Pharo4 and there will be just a .pharo4 image file.
 
 By “temporary” do you mean decompilation will come back?
 
 No, we will have a high-level representation of Methods that replace (from 
 the standpoint of reflection) the incomplete bytecode representation,

Ok, good to know.

 
 
 Serializing compiled methods is not fun either since we cannot decompile 
 it after...
 
 
 You can embedd the source into the method before serialising.
 
 That means storing redundant information though (if the user is only 
 interested in functionality) and that will increase file size, and 
 serialization/materalzation time. So it’s not an ideal situation.
 
 The thing is that we can either not move or move step by step taking 
 (sometimes) into account that things are sub-optimal for a little while.

I agree that that’s sometimes necessary.

 
 You can envision the current implementation as a peak on a map: it’s a very 
 good local optimum. But *Much* better is possible. Maybne a local metaphor: 
 We are in the Gurten now, you can
 not reach the Eiger without going down for a while.

Haha :) nice!

That means we’ll have to figure something out for Fuel to work with not 
installed compiled methods in 3.0. Thanks for the explanation.

 
   Marcus



Re: [Pharo-dev] Bug? AdditionalMethodState suddenly stores Associations

2013-11-06 Thread Max Leske
https://pharo.fogbugz.com/f/cases/12077/MNU-in-AdditionalMethodState-analogousCodeTo


On 06.11.2013, at 08:53, Max Leske maxle...@gmail.com wrote:

 Thanks Marcus. I’ll open a bug report.
 
 On 06.11.2013, at 08:14, Marcus Denker marcus.den...@inria.fr wrote:
 
 
 On 05 Nov 2013, at 19:48, Max Leske maxle...@gmail.com wrote:
 
 I discovered that AdditionalMethodState now (sometimes) stores 
 Associations, not only Pragmas and Messages. That seems to work fine so 
 fare but leads to an exception if #analogousCodeTo: is sent to a state 
 which stores an Association.
 
 I think this is the case when the method stored general properties 
 (non-source visible). 
 
 see propertyValueAt:put:
 
 Can someone please confirm that this is a bug?
 
 
 
 I guess the bug is that analogousCodeTo: should handle the properties 
 correctly. I think just ignoring them would be fine, as they
 are not part of code, but meta.
 
  Marcus
 




[Pharo-dev] HDTestReport improvements: please integrate

2013-11-06 Thread Max Leske
I’ve made a few minor improvements to HDTestReport with the following effects:

- progress log will now print end of suite and the stream will be properly 
closed
- progress log will print the start of the case *before* the case starts (at 
the moment that happens after the case has run. The problem is of course that 
if the VM crashes during that test you can not find out which test caused the 
crash)

I’d very much appreciate it if someone could install these changes on Jenkins 
because I need them to debug the VM SegFaults that appear during the Fuel tests.

Cheers,
Max



HDTestReport.MaxLeske.cs
Description: Binary data


Re: [Pharo-dev] HDTestReport improvements: please integrate

2013-11-06 Thread Max Leske
https://pharo.fogbugz.com/f/cases/12079/HDTestReport-improvements

Slice:
Name: SLICE-Issue-12079-HDTestReport-improvements-MaxLeske.1
Author: MaxLeske
Time: 6 November 2013, 2:07:20.708816 pm
UUID: 16baecc6-cbfc-4309-a6fc-908bc542e68c
Ancestors: 
Dependencies: HudsonBuildTools20-MaxLeske.52

* progress log will now print end of suite and the stream will be properly 
closed
* progress log will print the start of the case *before* the case starts (at 
the moment that happens after the case has run. The problem is of course that 
if the VM crashes during that test you can not find out which test caused the 
crash)


On 06.11.2013, at 13:46, Camillo Bruni camillobr...@gmail.com wrote:

 could you open an issue on fogbugz and propose a slice?
 
 On 2013-11-06, at 11:17, Max Leske maxle...@gmail.com wrote:
 
 I’ve made a few minor improvements to HDTestReport with the following 
 effects:
 
 - progress log will now print end of suite and the stream will be properly 
 closed
 - progress log will print the start of the case *before* the case starts (at 
 the moment that happens after the case has run. The problem is of course 
 that if the VM crashes during that test you can not find out which test 
 caused the crash)
 
 I’d very much appreciate it if someone could install these changes on 
 Jenkins because I need them to debug the VM SegFaults that appear during the 
 Fuel tests.
 
 Cheers,
 Max
 
 HDTestReport.MaxLeske.cs
 




Re: [Pharo-dev] [Edu] 3-day project with high school students

2013-11-06 Thread Max Leske
PhaROS might be interesting: controlling robots with Pharo.

On 06.11.2013, at 12:37, roberto.mine...@usi.ch wrote:

 Hi,
 
 I would like to hear an opinion from you. I need to organize a 3-day project 
 with high-school students. In short they will come to our University and I am 
 the responsible to guide them to do “something” to introduce them to 
 programming.
 
 The assumption is that they have zero background about programming. In this 
 mailing list I’ve read a couple of previous discussions about how to start to 
 use Pharo and ST for educational purposes, but I’d love to collect additional 
 opinions.
 
 Visual programming is one of the thing that came to my mind. I though about 
 Phratch. Michele suggested me to look also at Etoys (squeakland.org) and I 
 will start to look at thesee two tools in the next days.
 
 Any opinion, proposal, tool, article, suggestion, hint on the topic is really 
 welcome.
 
 Thanks in advance,
 Roberto
 
 




[Pharo-dev] Bug? AdditionalMethodState suddenly stores Associations

2013-11-05 Thread Max Leske
I discovered that AdditionalMethodState now (sometimes) stores Associations, 
not only Pragmas and Messages. That seems to work fine so fare but leads to an 
exception if #analogousCodeTo: is sent to a state which stores an Association.

Can someone please confirm that this is a bug?

Cheers,
Max


[Pharo-dev] builds

2013-11-05 Thread Max Leske
I’ve temporarily disabled the Fuel builds. Martin and I discovered VM crashes 
related to (maybe) garbage collection during our test runs. So right now a lot 
of builds are crashing. We’ll keep investigating so as to reenable the builds.

Max


Re: [Pharo-dev] No decompile string at all, bad idea?

2013-11-05 Thread Max Leske

On 06.11.2013, at 08:05, Marcus Denker marcus.den...@inria.fr wrote:

 
 On 05 Nov 2013, at 20:37, Mariano Martinez Peck marianop...@gmail.com wrote:
 
 Hi. From what I understand you removed the old Compiler but yet Opal does 
 not support compiling. Also, #sourceCode was changed etc...
 That means that there is no way to see the decompiled string of a method? 
 
 Yes.
 
 Which means I cannot deploy and image without sources and then 
 browse/debug/inspect/write pharoDebug.log  etc because we don't have even 
 the decompile string???  
 
 Exactly. But this is just temporary, .sources and .changes will go away in 
 Pharo4 and there will be just a .pharo4 image file.

By “temporary” do you mean decompilation will come back?

 
 Serializing compiled methods is not fun either since we cannot decompile it 
 after...
 
 
 You can embedd the source into the method before serialising.

That means storing redundant information though (if the user is only interested 
in functionality) and that will increase file size, and 
serialization/materalzation time. So it’s not an ideal situation.

 
   Marcus
 
 
 
 




Re: [Pharo-dev] Bug? AdditionalMethodState suddenly stores Associations

2013-11-05 Thread Max Leske
Thanks Marcus. I’ll open a bug report.

On 06.11.2013, at 08:14, Marcus Denker marcus.den...@inria.fr wrote:

 
 On 05 Nov 2013, at 19:48, Max Leske maxle...@gmail.com wrote:
 
 I discovered that AdditionalMethodState now (sometimes) stores Associations, 
 not only Pragmas and Messages. That seems to work fine so fare but leads to 
 an exception if #analogousCodeTo: is sent to a state which stores an 
 Association.
 
 I think this is the case when the method stored general properties 
 (non-source visible). 
 
 see propertyValueAt:put:
 
 Can someone please confirm that this is a bug?
 
 
 
 I guess the bug is that analogousCodeTo: should handle the properties 
 correctly. I think just ignoring them would be fine, as they
 are not part of code, but meta.
 
   Marcus




Re: [Pharo-dev] Github and Pharo

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

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

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



Re: [Pharo-dev] Fuel: fix for Squeak trunk

2013-11-03 Thread Max Leske
Good idea. What would we put there? I can’t think of anything else than 
globals… If globals is the only thing then I’m not sure that it’s worth the 
effort.

Max


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

 I would love a quick and easy refactor in which we add a FLSmalltalkPlatform 
 with some utility methods such as #globals. Then concrete subclasses like 
 FLPharoPlatform which implements #globals in our current way. That refactor 
 would be quite easy and useful. I don't want to add Grease or whatever 
 layer.. but just very concrete examples like this one.
 Thoughts?
 
 
 On Sat, Nov 2, 2013 at 12:46 PM, Max Leske maxle...@gmail.com wrote:
 Thanks Nicolas, we’ll take a look at it.
 
 Max
 
 
 On 02.11.2013, at 14:43, Nicolas Cellier nicolas.cellier.aka.n...@gmail.com 
 wrote:
 
 I've opened https://code.google.com/p/fuel/issues/detail?id=204 with an 
 attachment
 
 Also note 
 https://pharo.fogbugz.com/f/cases/12052/Fuel-could-store-LargeNegativeInteger-up-to-32bits-magnitude
 
 
 2013/11/2 Max Leske maxle...@gmail.com
 So far we don’t have a public inbox and I’m not too familiar with STHub and 
 read/write permissions. Concerning your suggestion from the other thread a 
 public inbox would certainly make sense though.
 I’ll let you know what we can come up with (STHub seems to be down right now 
 so I can’t even give you access right now. But you can send me your fix 
 through mail).
 
 Max
 
 On 02.11.2013, at 09:46, Nicolas Cellier 
 nicolas.cellier.aka.n...@gmail.com wrote:
 
 Thanks, and is there a public .mcz inbox, or does it require special rights?
 
 
 2013/11/2 Max Leske maxle...@gmail.com
 The Fuel bug tracker is hosted by Google: https://code.google.com/p/fuel/
 
 On 01.11.2013, at 22:42, Nicolas Cellier 
 nicolas.cellier.aka.n...@gmail.com wrote:
 
  I have an easy fix for Fuel on Squeak trunk.
  It concerns the FuelCompatibility layer, so I hesitate to publish on 
  Pharo fogbugz...
  Is there a dedicated bug tracker?
  What is the preferred procedure?
 
  Nicolas
 
 
 
 
 
 
 
 
 
 -- 
 Mariano
 http://marianopeck.wordpress.com



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

2013-11-03 Thread Max Leske
Did #hackBits: come with Fuel? It’s not an extension method…


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

 Indeed. That's why I want to move it to a separate class. 
 
 
 On Fri, Nov 1, 2013 at 5:18 PM, Max Leske maxle...@gmail.com wrote:
 Wow… Form is mindnumbing…
 
 
 On 30.10.2013, at 23:00, Mariano Martinez Peck marianop...@gmail.com wrote:
 
 hehehe sorry, it was #hackBits: :)
 
 
 On Wed, Oct 30, 2013 at 6:52 PM, Max Leske maxle...@gmail.com wrote:
 Where did you find that method? I couldn’t find any implementors or 
 references…
 
 On 30.10.2013, at 21:42, Mariano Martinez Peck marianop...@gmail.com wrote:
 
 BTWit is time to move the hashBits: to a more general classbut the 
 question is where? 
 
 
 On Wed, Oct 30, 2013 at 6:21 PM, Stéphane Ducasse 
 stephane.duca...@inria.fr wrote:
 Fuel was using BitBlt current and I change that to BitBlt
 
 Stef
 
 On Oct 29, 2013, at 10:55 AM, Max Leske maxle...@gmail.com wrote:
 
  Stef, what exactly is the influence on Fuel? I looked at the changes of 
  your slice and couldn’t find anything…
 
  Max
 
 
  On 25.10.2013, at 16:26, Stéphane Ducasse stephane.duca...@inria.fr 
  wrote:
 
  Hi
 
  I just pushed a change cleaning some strange usage.
  BitBlt was sometimes invoked via BitBlt current (which just returned the 
  BitBlt class).
  Apparently in Squeak they removed it too.
 
  Now it touches Fuel so Fuel guys can you merge on your side too?
 
   https://pharo.fogbugz.com/f/cases/12009/BitBlt-current-BitBlt
 
  Stef
 
 
 
 
 
 
 
 -- 
 Mariano
 http://marianopeck.wordpress.com
 
 
 
 
 -- 
 Mariano
 http://marianopeck.wordpress.com
 
 
 
 
 -- 
 Mariano
 http://marianopeck.wordpress.com



Re: [Pharo-dev] Update Fuel documentation

2013-11-02 Thread Max Leske
Thanks Nicolas. We’ll update the docs and fix the configuration.

Has 4.5 been released? We had decided to wait with support for 4.5 until it was 
released to prevent repetitive work. If 4.5 has indeed been released we’ll of 
course add support for 4.5.

Cheers,
Max


On 01.11.2013, at 21:37, Nicolas Cellier nicolas.cellier.aka.n...@gmail.com 
wrote:

 This page 
 http://rmod.lille.inria.fr/web/pier/software/Fuel/Version1.9/Documentation/Installation
  has obsolete information, at least for Squeak installation.
 
 This is because ConfigurationOfFuel-MaxLeske.178 still points to old 
 repository http://ss3.gemstone.com/ss/Fuel.html which has been drained...
 ConfigurationOfFuel-MartinDias.209 should be a better starting point.
 
 In latest Squeak trunk there is another problem: lack of squeak4.5.x support 
 both in ConfigurationOfFuel and 
 MetacelloSqueakPlatformdefaultPlatformAttributes.
 But it's another problem, not related to documentation



Re: [Pharo-dev] Fuel: fix for Squeak trunk

2013-11-02 Thread Max Leske
The Fuel bug tracker is hosted by Google: https://code.google.com/p/fuel/

On 01.11.2013, at 22:42, Nicolas Cellier nicolas.cellier.aka.n...@gmail.com 
wrote:

 I have an easy fix for Fuel on Squeak trunk.
 It concerns the FuelCompatibility layer, so I hesitate to publish on Pharo 
 fogbugz...
 Is there a dedicated bug tracker?
 What is the preferred procedure?
 
 Nicolas




Re: [Pharo-dev] Fuel: fix for Squeak trunk

2013-11-02 Thread Max Leske
So far we don’t have a public inbox and I’m not too familiar with STHub and 
read/write permissions. Concerning your suggestion from the other thread a 
public inbox would certainly make sense though.
I’ll let you know what we can come up with (STHub seems to be down right now so 
I can’t even give you access right now. But you can send me your fix through 
mail).

Max

On 02.11.2013, at 09:46, Nicolas Cellier nicolas.cellier.aka.n...@gmail.com 
wrote:

 Thanks, and is there a public .mcz inbox, or does it require special rights?
 
 
 2013/11/2 Max Leske maxle...@gmail.com
 The Fuel bug tracker is hosted by Google: https://code.google.com/p/fuel/
 
 On 01.11.2013, at 22:42, Nicolas Cellier nicolas.cellier.aka.n...@gmail.com 
 wrote:
 
  I have an easy fix for Fuel on Squeak trunk.
  It concerns the FuelCompatibility layer, so I hesitate to publish on Pharo 
  fogbugz...
  Is there a dedicated bug tracker?
  What is the preferred procedure?
 
  Nicolas
 
 
 



Re: [Pharo-dev] Fuel: fix for Squeak trunk

2013-11-02 Thread Max Leske
Thanks Nicolas, we’ll take a look at it.

Max


On 02.11.2013, at 14:43, Nicolas Cellier nicolas.cellier.aka.n...@gmail.com 
wrote:

 I've opened https://code.google.com/p/fuel/issues/detail?id=204 with an 
 attachment
 
 Also note 
 https://pharo.fogbugz.com/f/cases/12052/Fuel-could-store-LargeNegativeInteger-up-to-32bits-magnitude
 
 
 2013/11/2 Max Leske maxle...@gmail.com
 So far we don’t have a public inbox and I’m not too familiar with STHub and 
 read/write permissions. Concerning your suggestion from the other thread a 
 public inbox would certainly make sense though.
 I’ll let you know what we can come up with (STHub seems to be down right now 
 so I can’t even give you access right now. But you can send me your fix 
 through mail).
 
 Max
 
 On 02.11.2013, at 09:46, Nicolas Cellier nicolas.cellier.aka.n...@gmail.com 
 wrote:
 
 Thanks, and is there a public .mcz inbox, or does it require special rights?
 
 
 2013/11/2 Max Leske maxle...@gmail.com
 The Fuel bug tracker is hosted by Google: https://code.google.com/p/fuel/
 
 On 01.11.2013, at 22:42, Nicolas Cellier 
 nicolas.cellier.aka.n...@gmail.com wrote:
 
  I have an easy fix for Fuel on Squeak trunk.
  It concerns the FuelCompatibility layer, so I hesitate to publish on Pharo 
  fogbugz...
  Is there a dedicated bug tracker?
  What is the preferred procedure?
 
  Nicolas
 
 
 
 
 



Re: [Pharo-dev] Proposal for a Topic for the bachelor/master list [safe-image for teaching]

2013-11-01 Thread Max Leske
I think that’s a good idea. Obviously that’s something that none of us 
developers want in the system but it would be good to have it from a 
promotional point of view I guess. Could applications like Dr. Geo benefit from 
such an environment?

Max


On 01.11.2013, at 19:56, Gisela Decuzzi giseladecu...@gmail.com wrote:

 Hi, I don't know where to send the proposal and I think that the list would 
 be a good place to talk about it.
 The main idea is to have a safe image, or a way to block or restrict the 
 modificable parts in the system, in order to avoid mistakes during the 
 learning.
 
 It could include protected packages, reduced browsers showing by default user 
 packages, configurable rules (by example: you can not create a class with 
 empty category, you can not create a class with the same name that a known 
 one).
 Maybe we can have a way to configure or to ask for permission to modificate 
 some parts of the system.
 Also, some filters during debugging, to avoid protected code.
 An easy way to obtain that image
 
 The idea is to reduce the common errors that we make when we start 
 programming also to help teachers.
 
 
 




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

2013-11-01 Thread Max Leske
Wow… Form is mindnumbing…


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

 hehehe sorry, it was #hackBits: :)
 
 
 On Wed, Oct 30, 2013 at 6:52 PM, Max Leske maxle...@gmail.com wrote:
 Where did you find that method? I couldn’t find any implementors or 
 references…
 
 On 30.10.2013, at 21:42, Mariano Martinez Peck marianop...@gmail.com wrote:
 
 BTWit is time to move the hashBits: to a more general classbut the 
 question is where? 
 
 
 On Wed, Oct 30, 2013 at 6:21 PM, Stéphane Ducasse 
 stephane.duca...@inria.fr wrote:
 Fuel was using BitBlt current and I change that to BitBlt
 
 Stef
 
 On Oct 29, 2013, at 10:55 AM, Max Leske maxle...@gmail.com wrote:
 
  Stef, what exactly is the influence on Fuel? I looked at the changes of 
  your slice and couldn’t find anything…
 
  Max
 
 
  On 25.10.2013, at 16:26, Stéphane Ducasse stephane.duca...@inria.fr 
  wrote:
 
  Hi
 
  I just pushed a change cleaning some strange usage.
  BitBlt was sometimes invoked via BitBlt current (which just returned the 
  BitBlt class).
  Apparently in Squeak they removed it too.
 
  Now it touches Fuel so Fuel guys can you merge on your side too?
 
   https://pharo.fogbugz.com/f/cases/12009/BitBlt-current-BitBlt
 
  Stef
 
 
 
 
 
 
 
 -- 
 Mariano
 http://marianopeck.wordpress.com
 
 
 
 
 -- 
 Mariano
 http://marianopeck.wordpress.com



Re: [Pharo-dev] 11635: Race condition in SequenceableCollectionshuffle

2013-10-30 Thread Max Leske
Name: 
SLICE-Issue-11635-Race-condition-in-SequenceableCollectionshuffle-MaxLeske.2
Author: MaxLeske
Time: 30 October 2013, 1:41:57.198092 pm
UUID: c3d51645-7e81-4997-b74c-545bf7ef60b0
Ancestors: 
Dependencies: Collections-Abstract-MaxLeske.231, 
Collections-Unordered-MaxLeske.175

made changes as detailed on the mailing list

* shuffle
^ self shuffleBy: Random new
* shuffled
^ self copy shuffle
* removed #shuffledBy:
* Matrix uses #shuffleBy:  (on an explicit copy) instead of #shuffledBy:


On 01.10.2013, at 17:06, Henrik Johansen henrik.s.johan...@veloxit.no wrote:

 
 On Sep 28, 2013, at 10:59 , Max Leske maxle...@gmail.com wrote:
 
 Thanks for the feedback guys.
 
 Based on the discussion I propose a different set of changes:
 
 1.
 shuffle
  ^ self shuffleBy: Random new
 
 2.
 shuffled
  ^ self copy shuffle
 
 3. remove #shuffledBy: (if you're specific enough to use a custom Random 
 instance you can also create a copy of the collection yourself if you want 
 to)
 
 
 I leave the matter of renaming the methods for further discussion. 
 Personally I'm for more intention revealing selectors; I quite like #shuffle 
 and #shuffleInPlace. If we can agree on a different naming scheme we should 
 then apply it to other methods aswell of course (e.g. #sort, #sortInPlace).
 
 Also open for discussion is the use of CollectionrandomForPicking and 
 CollectionmutexForPicking in other methods (such as #atRandom). I think it 
 shouldn't be too big a problem to make those methods use individual Random 
 instances and to remove the two class variables from Collection.
 
 Cheers,
 Max
 
 +1 from me on all three suggestions, as you might guess. :)
 
 As for #atRandom using Random new, the performance hit and seed quality would 
 be much greater concerns, as the Random instance would only be used once per 
 invocation.
 At this point in time there's no good alternatives to the current approach, 
 but renaming the mutex/shared variable to reflect its singular use would be 
 one possible improvement, I guess.
 
 Cheers,
 Henry



[Pharo-dev] Changing non-copying selectors to #...InPlace

2013-10-30 Thread Max Leske
To continue the discussion on this topic (stemming from issue 11635) I’m 
starting a new thread. Please share your thoughts.

Form the other thread:

 Personally I'm for more intention revealing selectors; I quite like #shuffled 
 and #shuffleInPlace. If we can agree on a different naming scheme we should 
 then apply it to other methods aswell of course (e.g. #sorted, #sortInPlace).

My proposition is to keep the selectors named #…d (#shuffled, #sorted, etc.), 
which operate on a copy, and rename the others (#shuffle, #sort, etc…) to 
#…InPlace (#shuffleInPlace, #sortInPlace, etc.). The rational behind this is 
that (to my mind) the current scheme is not intention revealing (e.g. #shuffle 
vs. #shuffled). Which is especially problematic for newcomers.

Max


[Pharo-dev] Preventing wrong use of Collection#randomForPicking

2013-10-30 Thread Max Leske
To continue the discussion on this topic (stemming from issue 11635) I’m 
starting a new thread. Please share your thoughts.

From the other thread:

 Also open for discussion is the use of CollectionrandomForPicking and 
 CollectionmutexForPicking in other methods (such as #atRandom). I think it 
 shouldn't be too big a problem to make those methods use individual Random 
 instances and to remove the two class variables from Collection.

#randomForPicking answers a Random stored in a class variable. Access to this 
variable is protected by a Mutext stored in a class variable 
(#mutexForPicking). The problem, as revealed by issue 11635, is of course that 
you have to know that you may only use that Random object if you also protect 
access to it with the class side Mutex. Otherwise race conditions can occur. 
#atRandom is one prominent user of #randomForPicking and #mutexForPicking.

Henrik’s thoughts:

 As for #atRandom using Random new, the performance hit and seed quality would 
 be much greater concerns, as the Random instance would only be used once per 
 invocation.
 At this point in time there's no good alternatives to the current approach, 
 but renaming the mutex/shared variable to reflect its singular use would be 
 one possible improvement, I guess.

So one possibility would be rename these methods, for example to #atRandomMutex 
and #atRandomRandom (no, I haven’t given much thought to the names :) ).

Max


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

2013-10-30 Thread Max Leske
Where did you find that method? I couldn’t find any implementors or references…

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

 BTWit is time to move the hashBits: to a more general classbut the 
 question is where? 
 
 
 On Wed, Oct 30, 2013 at 6:21 PM, Stéphane Ducasse stephane.duca...@inria.fr 
 wrote:
 Fuel was using BitBlt current and I change that to BitBlt
 
 Stef
 
 On Oct 29, 2013, at 10:55 AM, Max Leske maxle...@gmail.com wrote:
 
  Stef, what exactly is the influence on Fuel? I looked at the changes of 
  your slice and couldn’t find anything…
 
  Max
 
 
  On 25.10.2013, at 16:26, Stéphane Ducasse stephane.duca...@inria.fr wrote:
 
  Hi
 
  I just pushed a change cleaning some strange usage.
  BitBlt was sometimes invoked via BitBlt current (which just returned the 
  BitBlt class).
  Apparently in Squeak they removed it too.
 
  Now it touches Fuel so Fuel guys can you merge on your side too?
 
   https://pharo.fogbugz.com/f/cases/12009/BitBlt-current-BitBlt
 
  Stef
 
 
 
 
 
 
 
 -- 
 Mariano
 http://marianopeck.wordpress.com



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

2013-10-29 Thread Max Leske
Stef, what exactly is the influence on Fuel? I looked at the changes of your 
slice and couldn’t find anything…

Max


On 25.10.2013, at 16:26, Stéphane Ducasse stephane.duca...@inria.fr wrote:

 Hi 
 
 I just pushed a change cleaning some strange usage.
 BitBlt was sometimes invoked via BitBlt current (which just returned the 
 BitBlt class).
 Apparently in Squeak they removed it too.
 
 Now it touches Fuel so Fuel guys can you merge on your side too?
 
   https://pharo.fogbugz.com/f/cases/12009/BitBlt-current-BitBlt
 
 Stef




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

2013-10-29 Thread Max Leske
Thanks Mariano, I’ll look at that.

On 29.10.2013, at 15:39, Mariano Martinez Peck marianop...@gmail.com wrote:

 Max, we use a primitive from BitBtl to perform writing of word-like instances 
 (Bitmaps etc). It makes writing word objects way faster.
 Check the method #copyWordObjectToBuffer: aWordObject  and its senders.
 
 Cheers,
  
 
 
 On Tue, Oct 29, 2013 at 6:55 AM, Max Leske maxle...@gmail.com wrote:
 Stef, what exactly is the influence on Fuel? I looked at the changes of your 
 slice and couldn’t find anything…
 
 Max
 
 
 On 25.10.2013, at 16:26, Stéphane Ducasse stephane.duca...@inria.fr wrote:
 
  Hi
 
  I just pushed a change cleaning some strange usage.
  BitBlt was sometimes invoked via BitBlt current (which just returned the 
  BitBlt class).
  Apparently in Squeak they removed it too.
 
  Now it touches Fuel so Fuel guys can you merge on your side too?
 
https://pharo.fogbugz.com/f/cases/12009/BitBlt-current-BitBlt
 
  Stef
 
 
 
 
 
 -- 
 Mariano
 http://marianopeck.wordpress.com



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

2013-10-29 Thread Max Leske
Bleeding edge only:

Name: Fuel-MaxLeske.787
Author: MaxLeske
Time: 29 October 2013, 11:41:05.948727 pm
UUID: 2199a684-70e6-4dee-b3f1-ee389d959aed
Ancestors: Fuel-MarianoMartinezPeck.775, Fuel-MaxLeske.786

merging tips from 3.0 development and fuel repo


On 29.10.2013, at 19:56, Max Leske maxle...@gmail.com wrote:

 Thanks Mariano, I’ll look at that.
 
 On 29.10.2013, at 15:39, Mariano Martinez Peck marianop...@gmail.com wrote:
 
 Max, we use a primitive from BitBtl to perform writing of word-like 
 instances (Bitmaps etc). It makes writing word objects way faster.
 Check the method #copyWordObjectToBuffer: aWordObject  and its senders.
 
 Cheers,
  
 
 
 On Tue, Oct 29, 2013 at 6:55 AM, Max Leske maxle...@gmail.com wrote:
 Stef, what exactly is the influence on Fuel? I looked at the changes of your 
 slice and couldn’t find anything…
 
 Max
 
 
 On 25.10.2013, at 16:26, Stéphane Ducasse stephane.duca...@inria.fr wrote:
 
  Hi
 
  I just pushed a change cleaning some strange usage.
  BitBlt was sometimes invoked via BitBlt current (which just returned the 
  BitBlt class).
  Apparently in Squeak they removed it too.
 
  Now it touches Fuel so Fuel guys can you merge on your side too?
 
https://pharo.fogbugz.com/f/cases/12009/BitBlt-current-BitBlt
 
  Stef
 
 
 
 
 
 -- 
 Mariano
 http://marianopeck.wordpress.com
 



Re: [Pharo-dev] [Fuel] How to tell Fuel *not* to encode references?

2013-10-28 Thread Max Leske
In my opinion the #fuelAccept: for the meta description object should be 
overridden and there the behaviour for problematic references should be defined.

Roberto, what references does your meta object hold on to?

Max


On 28.10.2013, at 22:16, Martin Dias tinchod...@gmail.com wrote:

 
 
 
 On Mon, Oct 28, 2013 at 5:13 PM, roberto.mine...@usi.ch 
 roberto.mine...@usi.ch wrote:
 The idea is that I have an object (a session) which has meta data (time, 
 duration, author) and some other object inside.
 
 I want that Fuel serializes just that object and not pointes to other object, 
 globals and what not.
 
 This causes me a lot of troubles, moreover it makes the fuel file bigger than 
 the optimum…
 
 Still there is something that I don't understand in your problem. If you just 
 prune the graph, what your objects represent (conceptually) can be lost. Did 
 you pick one of your problematic session objects are explored it until find 
 how the unwanted block closures are referenced? I mean, fuel doesn't invent 
 the unwanted closures magically, you are saying to fuel to serialize the 
 graph with the unwanted objects already there. 
  
 
 Cheers,
 R
 
 
 On Oct 28, 2013, at 4:57 PM, Martin Dias tinchod...@gmail.com wrote:
 
 
 
 
  On Mon, Oct 28, 2013 at 4:47 PM, roberto.mine...@usi.ch 
  roberto.mine...@usi.ch wrote:
  Thanks,
 
  On Oct 28, 2013, at 4:36 PM, Martin Dias tinchod...@gmail.com wrote:
 
   Currently there is no such option.
 
  Maybe it is something which is needed, what do you think?
 
  The idea is that, if you serialize:
 
  a - b - c
 
  fuel actually would encode:
 
  a - b - nil
 
 
  that?
 
 
 
 
 



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

2013-10-25 Thread Max Leske
On it!

On 25.10.2013, at 16:26, Stéphane Ducasse stephane.duca...@inria.fr wrote:

 Hi 
 
 I just pushed a change cleaning some strange usage.
 BitBlt was sometimes invoked via BitBlt current (which just returned the 
 BitBlt class).
 Apparently in Squeak they removed it too.
 
 Now it touches Fuel so Fuel guys can you merge on your side too?
 
   https://pharo.fogbugz.com/f/cases/12009/BitBlt-current-BitBlt
 
 Stef




Re: [Pharo-dev] [OT] Git Internals PDF

2013-10-10 Thread Max Leske
Thanks Torsten, nice of you to think of us!

On 10.10.2013, at 17:14, Torsten Bergmann asta...@gmx.de wrote:

 A PDF by Scott Chacon about how the Git source code control system stores 
 files and revisions.
 
  https://github.com/pluralsight/git-internals-pdf/releases
 
 Maybe thats interesting for the people working on Pharo  Git  
 




Re: [Pharo-dev] Please contributors fill up this form...

2013-10-09 Thread Max Leske
PharoContributor new
name: 'Max Leske'
email: 'maxle...@gmail.com'
description: 'Master student at University of Bern, interested in 
software development and language design. Author and maintainer of 
FileSystem-Git, contributor to Fuel. Works for Netstyle.ch and Cmsbox where he 
uses Pharo for almost everything.'

On 09.10.2013, at 13:34, Stéphane Ducasse stephane.duca...@inria.fr wrote:

 Hi guys
 
 I would like to get 
   contributors.pharo.org a bit more representative of Pharo.
 
 We should have Previous contributors and enhance the current list.
 Can you please reply to this mail
 
   PharoContributor new
   name: 'Esteban Lorenzano';
   id: 'estebanlm';
   email: 'esteba...@gmail.com';
   website: 'http://smallworks.eu';
   description: 'Pharo core team. Contributor of several projects, 
 including Kernel, DBXTalk, Voyage, Mars, etc. Also I work on the VM.';
   image: 
 'http://www.gravatar.com/avatar/193af464509ae8fbcc04abad70b72fc0?s=120';
   yourself
 
 
 Stef




Re: [Pharo-dev] [Issue Tracker] 129 issues tagged 3.0

2013-10-08 Thread Max Leske

On 08.10.2013, at 10:51, Marcus Denker marcus.den...@inria.fr wrote:

 Hello,
 
 There are 129 issues that need to be fixed before we can even think about 
 releasing Pharo3:
 
   https://pharo.fogbugz.com/f/filters/37/3-0-Work-Needed
 
 There are two options:
 
 1) fix all of them. (unrealistic)
 2) decided if all of them are real show stoppers, lower it and fix this 
 hopefully smaller number actively.
 
 I know people don't like this option 2), but I do not see any realistic 
 alternative.

2) is the way to go. There will be another, better version of Pharo in the 
future where those bugs can be fixed. Having a release plan and not adhering to 
it doesn't cater to anything.

 
   Marcus




Re: [Pharo-dev] 11635: Race condition in SequenceableCollectionshuffle

2013-10-01 Thread Max Leske
bump...


 Thanks for the feedback guys.
 
 Based on the discussion I propose a different set of changes:
 
 1.
 shuffle
   ^ self shuffleBy: Random new
 
 2.
 shuffled
   ^ self copy shuffle
 
 3. remove #shuffledBy: (if you're specific enough to use a custom Random 
 instance you can also create a copy of the collection yourself if you want to)
 
 
 I leave the matter of renaming the methods for further discussion. Personally 
 I'm for more intention revealing selectors; I quite like #shuffle and 
 #shuffleInPlace. If we can agree on a different naming scheme we should then 
 apply it to other methods aswell of course (e.g. #sort, #sortInPlace).
 
 Also open for discussion is the use of CollectionrandomForPicking and 
 CollectionmutexForPicking in other methods (such as #atRandom). I think it 
 shouldn't be too big a problem to make those methods use individual Random 
 instances and to remove the two class variables from Collection.
 
 Cheers,
 Max
 
 
 On 24.09.2013, at 02:33, b...@openinworld.com wrote:
 
 Nicolas Cellier wrote:
 
 The reason why I don't like the explicit copy, is because this is the
 default behaviour.
 In place mutation is an (evil) exception.
 I'm personnally fine with current conventions:
 - sort, shuffle, reverse, replace: are imperative, thus you are telling
 collection, sort yourself !
 - sorted clearly sounds as a sorted copy for me.
 If ever a change was to be made, I would much prefer this to happen on
 opposite naming, sort - inPlaceSort, or sortYourself :)
 It's like telling the programmer, hey - a stateful mutation is really what
 you want, is it?
   
 
 Conventions should encourage good programming practice.  Although it makes 
 perfect sense on hearing it, I was explicitly not aware of the convention 
 between 'sort' and 'sorted'.  For me, the small difference in letters used 
 between the two doesn't provide a wide enough distinction.  Also, regarding 
 not mutating state, I guess I knew that in the back of my head, but it has 
 not generally been an explicit concern of mine while programming.  
 Convention should encourage good programming.  So I like the suggestion of 
 inPlaceSort  sortYourself.  As well as being more intention revealing, the 
 less desirable methods are made less attractive by using a longer name. 
 Perhaps another naming convention could be mutatedSort, or mutSort as a hint 
 that the programmer should consider using these in conjunction with mutexes, 
 or at own risk.
 
 cheers -ben
 
 
 
 2013/9/23 Stéphane Ducasse stephane.duca...@inria.fr
 
   
 +1
 Now I understand the point of max with the name sort/sorted because this
 is not explicit to me too :)
 I laways have to think.
 
 On Sep 23, 2013, at 6:28 PM, Nicolas Cellier 
 nicolas.cellier.aka.n...@gmail.com wrote:
 
 100% agree.
 Do it right  do it fast.
 We must not turn usage of the library into something fragile for the sake
 of speed.
 We already make the code itself fragile more often than not in term of
 complexity (harder to understand/test/change).
 
 Especially, introduction of shared mutable states (global, class vars,
 singleton or any other form) should ring an alarm in reviewers head
 (This is some very old Squeak code in this case, so Squeakers are to
 blame, but we're all in same bath).
 
 
 
 2013/9/23 Henrik Johansen henrik.s.johan...@veloxit.no
 
 
 On Sep 23, 2013, at 3:33 , Max Leske maxle...@gmail.com wrote:
 
   
 If a user is going to modify the same object concurrently, he/she
   
 takes care of mutual exclusion.
   
 Agreed. BUT: the Random object used by these methods is the same one
 
 that is used by #atRandom for instance, hence the race condition. There is
 no way anyone can safely use these methods without the mutex, single
 threaded or not. Calls to methods using that same Random object can be all
 over the place and also in the base system.
 
 
 It seems to me an existing Random instance is used in this case mostly*
 for performance.
 One could argue that since the Random in this case is used for a bulk
 operation, for which the object creation cost is largely amortized for
 collection sizes  20, it's acceptable to instead use Random new by
 default, which wouldn't suffer from the same race conditions.
 While still slower than a mutex-protected version for single-threaded
 code, it would also scale correctly if the users (and vm) are actually
 multi-threaded.
 
 [#(1 2  3 4 5 6 7 8 9 10 11 12) shuffle] bench '208,000 per second.'
  '222,000 per second.' '223,000 per second.'
 [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffleWithMutex] bench '188,000 per
 second.'  '186,000 per second.''184,000 per second.'
 [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffleNewRandom] bench '167,000 per
 second.' '166,000 per second.'  '167,000 per second.'
 
 Cheers,
 Henry
 
 * Low seed entropy is another issue, but if purely random shuffling is a
 critical requirement, one shouldn't use the default Random generator
 anyways...
 
 
 
   
 
 
   
 
 


Re: [Pharo-dev] 11635: Race condition in SequenceableCollectionshuffle

2013-09-28 Thread Max Leske
Thanks for the feedback guys.

Based on the discussion I propose a different set of changes:

1.
shuffle
^ self shuffleBy: Random new

2.
shuffled
^ self copy shuffle

3. remove #shuffledBy: (if you're specific enough to use a custom Random 
instance you can also create a copy of the collection yourself if you want to)


I leave the matter of renaming the methods for further discussion. Personally 
I'm for more intention revealing selectors; I quite like #shuffle and 
#shuffleInPlace. If we can agree on a different naming scheme we should then 
apply it to other methods aswell of course (e.g. #sort, #sortInPlace).

Also open for discussion is the use of CollectionrandomForPicking and 
CollectionmutexForPicking in other methods (such as #atRandom). I think it 
shouldn't be too big a problem to make those methods use individual Random 
instances and to remove the two class variables from Collection.

Cheers,
Max


On 24.09.2013, at 02:33, b...@openinworld.com wrote:

 Nicolas Cellier wrote:
 
 The reason why I don't like the explicit copy, is because this is the
 default behaviour.
 In place mutation is an (evil) exception.
 I'm personnally fine with current conventions:
 - sort, shuffle, reverse, replace: are imperative, thus you are telling
 collection, sort yourself !
 - sorted clearly sounds as a sorted copy for me.
 If ever a change was to be made, I would much prefer this to happen on
 opposite naming, sort - inPlaceSort, or sortYourself :)
 It's like telling the programmer, hey - a stateful mutation is really what
 you want, is it?
   
 
 Conventions should encourage good programming practice.  Although it makes 
 perfect sense on hearing it, I was explicitly not aware of the convention 
 between 'sort' and 'sorted'.  For me, the small difference in letters used 
 between the two doesn't provide a wide enough distinction.  Also, regarding 
 not mutating state, I guess I knew that in the back of my head, but it has 
 not generally been an explicit concern of mine while programming.  Convention 
 should encourage good programming.  So I like the suggestion of inPlaceSort  
 sortYourself.  As well as being more intention revealing, the less desirable 
 methods are made less attractive by using a longer name. Perhaps another 
 naming convention could be mutatedSort, or mutSort as a hint that the 
 programmer should consider using these in conjunction with mutexes, or at own 
 risk.
 
 cheers -ben
 
 
 
 
 2013/9/23 Stéphane Ducasse stephane.duca...@inria.fr
 
   
 +1
 Now I understand the point of max with the name sort/sorted because this
 is not explicit to me too :)
 I laways have to think.
 
 On Sep 23, 2013, at 6:28 PM, Nicolas Cellier 
 nicolas.cellier.aka.n...@gmail.com wrote:
 
 100% agree.
 Do it right  do it fast.
 We must not turn usage of the library into something fragile for the sake
 of speed.
 We already make the code itself fragile more often than not in term of
 complexity (harder to understand/test/change).
 
 Especially, introduction of shared mutable states (global, class vars,
 singleton or any other form) should ring an alarm in reviewers head
 (This is some very old Squeak code in this case, so Squeakers are to
 blame, but we're all in same bath).
 
 
 
 2013/9/23 Henrik Johansen henrik.s.johan...@veloxit.no
 
 
 On Sep 23, 2013, at 3:33 , Max Leske maxle...@gmail.com wrote:
 
   
 If a user is going to modify the same object concurrently, he/she
   
 takes care of mutual exclusion.
   
 Agreed. BUT: the Random object used by these methods is the same one
 
 that is used by #atRandom for instance, hence the race condition. There is
 no way anyone can safely use these methods without the mutex, single
 threaded or not. Calls to methods using that same Random object can be all
 over the place and also in the base system.
 
 
 It seems to me an existing Random instance is used in this case mostly*
 for performance.
 One could argue that since the Random in this case is used for a bulk
 operation, for which the object creation cost is largely amortized for
 collection sizes  20, it's acceptable to instead use Random new by
 default, which wouldn't suffer from the same race conditions.
 While still slower than a mutex-protected version for single-threaded
 code, it would also scale correctly if the users (and vm) are actually
 multi-threaded.
 
 [#(1 2  3 4 5 6 7 8 9 10 11 12) shuffle] bench '208,000 per second.'
  '222,000 per second.' '223,000 per second.'
 [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffleWithMutex] bench '188,000 per
 second.'  '186,000 per second.''184,000 per second.'
 [#(1 2 3 4 5 6 7 8 9 10 11 12) shuffleNewRandom] bench '167,000 per
 second.' '166,000 per second.'  '167,000 per second.'
 
 Cheers,
 Henry
 
 * Low seed entropy is another issue, but if purely random shuffling is a
 critical requirement, one shouldn't use the default Random generator
 anyways...
 
 
 
   
 
 
   
 



Re: [Pharo-dev] 11635: Race condition in SequenceableCollectionshuffle

2013-09-28 Thread Max Leske

On 23.09.2013, at 15:46, Frank Shearar frank.shea...@gmail.com wrote:

 On 23 September 2013 14:34, Max Leske maxle...@gmail.com wrote:
 
 On 23.09.2013, at 15:20, Frank Shearar frank.shea...@gmail.com wrote:
 
 On 23 September 2013 14:17, Nicolas Cellier
 nicolas.cellier.aka.n...@gmail.com wrote:
 Here is my 100% personal opinion:
 
 I don't like the copyShuffle.
 To me, the rules are quite clear:
 sort shuffle reverse etc... - perform modification in place
 sorted shuffled reversed etc... - answer a copy
 I hope the methods comments are clear. Does PBE tells about these
 conventions? It would be a good thing.
 
 And I don't like to have mutexes in base library, the less we have, the
 better.
 If a user is going to modify the same object concurrently, he/she takes 
 care
 of mutual exclusion.
 
 Especially since locks don't compose. If you _really_ cared about
 accessing something concurrently, you'd share immutable data
 structures.
 
 I don't quite follow. Could you elaborate?
 
 Hopefully it's uncontroversial to assert that locks don't compose.
 
 If you only ever have one thread of execution, you don't have any
 concurrency issues, and locks serve no purpose.
 
 If you do have multiple threads of execution, then you have a few
 choices for sharing data:
 * you can use a lock around mutable data (but lock-using blocks of
 code don't compose, so you end up with loads of bugs or deadlocks or
 nests of locks, or all of the above)
 * you can share a _copy_ of data.
 
 In the latter case, you can share an actual copy, or share a pointer
 to a structure that can't change. If it can't change, you can't have a
 reader accidentally reading something from a structure halfway through
 the writer writing to it.
 
 Sharing some immutable chunk of state lets you save the memory taken
 up by a copy, but also prevents all the race condition things you
 usually get with shared mutable state.
 
 frank

Thanks Frank, I get it now. And I agree.


 
 
 frank
 
 2013/9/23 Max Leske maxle...@gmail.com
 
 Sven suggested posting this on the list for discussion, so here you go:
 
 Maybe this should be discussed on the list, your are going to break API.
 
 Note that there is also #sort and #sorted with similar copy behavior.
 
 Also, I am not sure that basic operations should use mutexes to protect
 themselves by default: there is a cost when you are a single threaded 
 user.
 Even in Java there are synchronized and non-synchronized versions of
 collections. IMHO, the protection should happen in your app, and basic
 collections do not have to be thread safe.
 
 Sven
 
 #shuffle does not use CollectionmutexForPicking as other users of
 #randomForPicking demonstrate. This can lead to race conditions (found in
 our application).
 
 In addition, there are now #shuffle, #shuffled, #shuffleBy: and
 #shuffledBy: where #shuffled and #shuffledBy: shuffle a copy and answers
 that. This is very confusing.
 
 I propose a fix where #shuffled and #shuffledBy: are renamed to
 #copyShuffle and #copyShuffledBy: and moved to the copying protocol.
 #shuffle and #copyShuffle will use the mutex to prevent race conditions.
 
 
 
 
 
 




Re: [Pharo-dev] Use pharo users mailing list

2013-09-23 Thread Max Leske
I like that idea. At least some of the questions on the users list are not even 
Pharo specific but regard Smalltalk in general. Those need not be answered by 
us but can be answered by anyone with a Smalltalk background, be it VW, VA, 
Squeak…

On the other hand (I'm not sure about this, since I don't read the users list) 
there might be topics like job offers / searches, or more general discussions 
on that list and moving to SO would kill those (one could argue that such 
topics would be more suitable on pharo-dev…) since SO is strictly question and 
answer orientated.

Another argument for closing the users list: Marcus wouldn't have to save two 
lists the next time the servers go down :)

Cheers,
Max

On 23.09.2013, at 08:48, kilon theki...@yahoo.co.uk wrote:

 
 Here is a radical suggestion you probably don't want to hear. 
 
 Close down Pharo users mailing list, redirect everyone to stackoverflow. 
 
 Consider stackoverflow is THE forum for coding, I cant think of a better
 place to ask questions for smalltalk and pharo , rarely questions left
 unanswered there and I wont even start to discuss how cool of a website it
 is. 
 
 Oh and a minor bonus is a huge advertisement for pharo. 
 
 But then take my idea with a grain of salt, I don't like mailing lists :)
 Thank god for forum.world.st :D
 
 
 Norbert Hartl wrote
 We should use the pharo users mailing list more often. Imagine there are
 people only subscribed to the users list. They can't see a lot of
 interesting posts and the users list does not appear to be very lively. At
 least half of the posts here in the last days I would like to see on the
 users list. 
 So if your post is not really about the development of pharo or is not a
 problem with pharo core (external package discussions belong IMHO to the
 users list as well) then consider to post to the users list. Everyone you
 like to reach is subscribed there, too. 
 
 Norbert
 
 
 
 
 
 --
 View this message in context: 
 http://forum.world.st/Use-pharo-users-mailing-list-tp4709698p4709702.html
 Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
 




[Pharo-dev] 11635: Race condition in SequenceableCollectionshuffle

2013-09-23 Thread Max Leske
Sven suggested posting this on the list for discussion, so here you go:

 Maybe this should be discussed on the list, your are going to break API.
 
 Note that there is also #sort and #sorted with similar copy behavior.
 
 Also, I am not sure that basic operations should use mutexes to protect 
 themselves by default: there is a cost when you are a single threaded user. 
 Even in Java there are synchronized and non-synchronized versions of 
 collections. IMHO, the protection should happen in your app, and basic 
 collections do not have to be thread safe.
 
 Sven
 
 #shuffle does not use CollectionmutexForPicking as other users of 
 #randomForPicking demonstrate. This can lead to race conditions (found in 
 our application).
 
 In addition, there are now #shuffle, #shuffled, #shuffleBy: and #shuffledBy: 
 where #shuffled and #shuffledBy: shuffle a copy and answers that. This is 
 very confusing.
 
 I propose a fix where #shuffled and #shuffledBy: are renamed to #copyShuffle 
 and #copyShuffledBy: and moved to the copying protocol. #shuffle and 
 #copyShuffle will use the mutex to prevent race conditions.


Re: [Pharo-dev] SHA1 changed ??

2013-09-23 Thread Max Leske
Hi

Sorry, I was on holidays and didn't see this.


On 23.09.2013, at 20:45, Sven Van Caekenberghe s...@stfx.eu wrote:

 https://pharo.fogbugz.com/f/cases/11664/SHA1-hashStream-should-return-a-ByteArray-of-size-20
 
 with slice
 
 On 13 Sep 2013, at 15:38, Sven Van Caekenberghe s...@stfx.eu wrote:
 
 Bump.
 
 Max ?
 
 On 30 Aug 2013, at 13:52, Sven Van Caekenberghe s...@stfx.eu wrote:
 
 On 30 Aug 2013, at 13:39, Marcus Denker marcus.den...@inria.fr wrote:
 
 On Aug 30, 2013, at 1:35 PM, Esteban Lorenzano esteba...@gmail.com wrote:
 
 I'm not aware of such a change... 
 this is probably an error/side effect of something else.  
 
 This is a side effect of the merging of the two nearly identical but 
 duplicated SHA1 implementations in the image…

Yes that's true. Those two classes were nearly identical. I resolved 
differences by using the latest method versions of differing methods. Therefore 
it might well be that I changed that method to the way it is today because the 
current version is the one with the younger timestamp (I think the changes all 
came from Stef).

Cheers,
Max

 
 https://pharo.fogbugz.com/f/cases/5469/SHA1-duplicated-implementations
 
 I want to wait for Max to respond/explain.
 
 But according to http://en.wikipedia.org/wiki/Sha1
 
 SHA-1 produces a 160-bit (20-byte) hash value. A SHA-1 hash value is 
 typically expressed as a hexadecimal number, 40 digits long. 
 
 The previous contract of returning a ByteArray of size 20 is more correct 
 than an Integer, although both are mathematically equivalent. It is also 
 very easy to send #hex to a ByteArray to get the most common human 
 representation of such a hash.
 
 Esteban
 
 On Aug 29, 2013, at 3:05 PM, Sven Van Caekenberghe s...@stfx.eu wrote:
 
 Max,
 
 Why was the contract of SHA1hashStream: changed ?
 
 It used to return a ByteArray like other HashFunction subclasses, now it 
 returns an Integer. I see that you also changed the tests with this 
 assumption.
 
 MD5 hashMessage: 'foo'. 
 
  #[172 189 24 219 76 194 248 92 237 239 101 79 204 196 164 216]
 
 SHA1 hashMessage: 'foo'. 
 
  68123873083688143418383284816464454849230703155
 
 It broke Zinc-WebSockets in 3.0 and now I will have to do an ugly hack 
 to make the code work on multiple Pharo versions.
 
 Can you please explain ?
 
 Sven
 
 
 
 
 
 
 




Re: [Pharo-dev] Fuel API bug

2013-08-04 Thread Max Leske
Done.

Name: ConfigurationOfFuel-MaxLeske.207
Author: MaxLeske
Time: 4 August 2013, 4:49:17.037 pm
UUID: 5cc59075-e365-4a58-a20b-22e40b2b70c9
Ancestors: ConfigurationOfFuel-MartinDias.206

* created new version 1.9.2 for development
* pointed development to 1.9.2
* includes changes Camillo wanted to introduce into 1.9.1 (DateAndTime fix)


On 04.08.2013, at 16:35, Max Leske maxle...@gmail.com wrote:

 Yeah, no problem. I'll get on it right away.
 
 Max
 
 On 04.08.2013, at 16:10, Stéphane Ducasse stephane.duca...@inria.fr wrote:
 
 Hi guys
 
 can you rename this method?
 
 on: aCollectionOrStream do: aBlock
  Evaluates a block with a new stream based on the collection or stream. 
 Answers the result of the block evaluation. Follows the style of 
 FileStreamfileNamed:do:.
  | aStream |
  aStream := self on: aCollectionOrStream.
  [ ^ aBlock value: aStream ] ensure: [ aStream close ]
 
 
 Please do not use on:do: for something that is not about exception (and 
 announcements).
 
 It is too confusing and refactor after.
 
 Stef
 




Re: [Pharo-dev] New PharoVM built

2013-08-01 Thread Max Leske
I'm using the US international layout. 
Not working: 
- delete button
- diaeresis (for umlauts); option + u (+ any character that accepts diaeresis)
- probably more (didn't go through more)


On 01.08.2013, at 11:47, Igor Stasenko siguc...@gmail.com wrote:

 On 1 August 2013 10:27, p...@highoctane.be p...@highoctane.be wrote:
 Keyboard: Belgian french
 
 Key combination that doesn't work: hit the caret key... hit fn-Backspace...
 both things pretty standard.
 
 ah, i think its same as for me, when i found my Delete key stop working.
 
 Phil
 On Thu, Aug 1, 2013 at 9:14 AM, Esteban Lorenzano esteba...@gmail.com
 wrote:
 
 still works for me... looks like a keyboard distribution problem, we'll
 check (bah, Guille will do it :) soon :)
 
 can you send which keyboard layour do you use?
 
 and exactly which key combinations are you trying?
 
 thanks,
 Esteban
 
 On Aug 1, 2013, at 12:01 AM, p...@highoctane.be wrote:
 
 Same for me with the backspace.
 
 Caret impossible to type ( ^ ... needless to say, bad...)
 
 Umlauts  and ~ not working either.
 
 Smalltalk vm version 'NBCoInterpreter
 NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
 acc98e51-2fba-4841-a965-2975997bba66 Jul 19 2013
 NBCogit NativeBoost-CogPlugin-GuillermoPolito.19 uuid:
 acc98e51-2fba-4841-a965-2975997bba66 Jul 19 2013
 git://gitorious.org/cogvm/blessed.git Commit:
 746b609f0323a8db5de2f1aa36f3eed07e312dfe Date: 2013-07-19 13:54:47 +0200 By:
 Esteban Lorenzano esteba...@gmail.com Jenkins build #14619
 '
 
 
 erfeklfefeefe⌦⌦ferfe
 
 The things with xes is what I get from copy/pasting the string.
 
 'aze⌦⌦⌦uiop' asByteArray #[0 0 0 97 0 0 0 122 0 0 0 101 0 0 35 38 0 0 35
 38 0 0 35 38 0 0 0 117 0 0 0 105 0 0 0 111 0 0 0 112]
 
 
 
 Phil
 
 
 
 On Wed, Jul 31, 2013 at 10:49 PM, Max Leske maxle...@gmail.com wrote:
 
 I'm seeing the same with latest 3.0. The problem starts occuring as of
 build 165. 164 is still ok.
 
 
 On 31.07.2013, at 18:31, Igor Stasenko siguc...@gmail.com wrote:
 On 31 July 2013 17:55, Max Leske maxle...@gmail.com wrote:
 
 On 31.07.2013, at 17:44, Esteban Lorenzano esteba...@gmail.com
 wrote:
 
 works for me. In which platform are you testing?
 
 OS X 10.8.4, 64 bit, Pharo 1.3
 
 can you try it in 3.0 image?
 
 
 
 On Jul 31, 2013, at 5:32 PM, Max Leske maxle...@gmail.com wrote:
 
 There seems to be an issue relating to the keyboard. I can't type
 any umlauts (option + u) and the delete button produces a question 
 mark.
 
 Max
 
 On 31.07.2013, at 16:59, Max Leske maxle...@gmail.com wrote:
 
 Will do. Thanks!
 
 
 On 31.07.2013, at 16:46, Esteban Lorenzano esteba...@gmail.com
 wrote:
 
 Hi,
 
 I builded new versions of the vm, integrating latest changes from
 Eliot.
 This integration should fix some issues, between them the annoying
 SmallInteger problem.
 
 You can find it here:
 
 wget -O- get.pharo.org/20+vmLatest
 
 or directly here:
 
 http://files.pharo.org/vm/pharo/
 
 (choose the one that fits the best for you, always the latest)
 
 can you download and check?
 
 thanks,
 Esteban
 
 
 
 
 
 
 
 
 
 
 
 
 
 --
 Best regards,
 Igor Stasenko.
 
 
 
 
 
 
 
 
 
 -- 
 Best regards,
 Igor Stasenko.
 




Re: [Pharo-dev] New PharoVM built

2013-07-31 Thread Max Leske
Will do. Thanks!


On 31.07.2013, at 16:46, Esteban Lorenzano esteba...@gmail.com wrote:

 Hi,
 
 I builded new versions of the vm, integrating latest changes from Eliot. 
 This integration should fix some issues, between them the annoying 
 SmallInteger problem. 
 
 You can find it here: 
 
 wget -O- get.pharo.org/20+vmLatest
 
 or directly here: 
 
 http://files.pharo.org/vm/pharo/
 
 (choose the one that fits the best for you, always the latest)
 
 can you download and check?
 
 thanks,
 Esteban
 
 
 




Re: [Pharo-dev] New PharoVM built

2013-07-31 Thread Max Leske
There seems to be an issue relating to the keyboard. I can't type any umlauts 
(option + u) and the delete button produces a question mark.

Max

On 31.07.2013, at 16:59, Max Leske maxle...@gmail.com wrote:

 Will do. Thanks!
 
 
 On 31.07.2013, at 16:46, Esteban Lorenzano esteba...@gmail.com wrote:
 
 Hi,
 
 I builded new versions of the vm, integrating latest changes from Eliot. 
 This integration should fix some issues, between them the annoying 
 SmallInteger problem. 
 
 You can find it here: 
 
 wget -O- get.pharo.org/20+vmLatest
 
 or directly here: 
 
 http://files.pharo.org/vm/pharo/
 
 (choose the one that fits the best for you, always the latest)
 
 can you download and check?
 
 thanks,
 Esteban
 
 
 
 




[Pharo-dev] rackincloude seaside hosting

2013-07-30 Thread Max Leske
rackincloud.com offers seaside hosting. I find that really cool but there's 
absolutely no information on who they are and how much hosting costs. Can 
anyone shed some light please?

Cheers,
Max


Re: [Pharo-dev] About abuse of inheritance

2013-07-19 Thread Max Leske
Great answer Igor!

I'm curious about Doru's response :)


On 19.07.2013, at 17:31, Igor Stasenko siguc...@gmail.com wrote:

 So, on your place, if you really need a lot of classes with announcer
 capabilities, you can do it like that:
 
 Object subclass: #ObjectWithAnnouncer
 instvars: 'announcer'
 
 then may implement same protocol as in Announcer in it, which will
 simply delegate to announcer ivar.
 And i bet, you don't want to expose full Announcer protocol there,
 while probably you may want to implement some convenience protocols,
 which Announcer lacking.
 
 So, at the end by subclassing from ObjectWithAnnouncer you will be
 reusing its capabilities in each and every subclass of it, but by
 delegating real job, you are free from worrying about dealing with
 implementation detail and exposing unwanted state/protocols to its
 users.
 
 Another aspect of it, is when i see:
 
 ObjectWithAnnouncer subclass: #MyDomainObject
 
 it tells me, aha.. so some (at least this one) of his domain objects
 having announcers,
 and the valid protocols is defined in ObjectWithAnnouncer.
 
 but when i see
 
 Announcer subclass: #MyDomainObject
 
 i starting to be uncertain: is Announcer private there or public?
 can i send messages like #basicSubscribe: to your domain object and expect 
 that
 it will be handled correctly? Or do i allowed to subscribe directly at
 all, because maybe
 domain object has some specific protocol(s) and ways to do that..
 Every such question and uncertainty for coder means more time, more
 errors, and less productivity.
 
 
 -- 
 Best regards,
 Igor Stasenko.
 




Re: [Pharo-dev] should:raise:description:

2013-07-10 Thread Max Leske

On 09.07.2013, at 23:28, Camillo Bruni camillobr...@gmail.com wrote:

 
 On 2013-07-09, at 21:23, Frank Shearar frank.shea...@gmail.com wrote:
 
 On 9 July 2013 19:45, Camillo Bruni camillobr...@gmail.com wrote:
 I continue my rant with should:raise:description:
 
 a) self should: [ Error signal: 'error message' ] raise: Halt description: 
 'message'.
 b) self should: [ 1 + 2 ] raise: Halt description: 
 'message'.
 
 In the first case you do not get the 'message' but 'error message'.
 In the second case you get the 'message'.
 
 Does the description make sense in this case?
 1. if you signal Halt everything is fine
 2. Every other case is a failure
 3. In case a) an internal failure happens so the test fails anyway, fine, 
 but no description
 4. A strange? case where the tests actually DO pass but we nevertheless 
 want to print a description.
 
 Can anybody give me a convincing case for 4?
 
 Sorry, after this I will stop :D
 
 In case (a) I would actually expect to see something like: message.
 Unexpected Error raised: 'error message'.
 
 In case (b) I'd want to see message: no Halt raised
 
 I can't think of why you would want a description for a success case,
 so #4 just seems weird!
 
 exactly! :) I agree on that ;). Now the question is on how to properly fix 
 this
 for debugging. Since you actually want to debug on the unexpected Exception 
 in 
 case a)... 


YE!! That's about the thing I hate the most about SUnit: if a testrun fails 
because #should: fails, the signaler context is gone. That's SO ANNYOING!

 
 I'll check my magic box..




Re: [Pharo-dev] Issue-5468: Extract CRC code - NativeBoost?

2013-07-09 Thread Max Leske

On 09.07.2013, at 09:06, Stéphane Ducasse stephane.duca...@inria.fr wrote:

 Max I added you to the Pharo team.

Great, thanks.

 So now you should be able to commit to the inbox (soon it should be fixed).
 Then I tried to merge (I read the beginning ogf the article and this is a 
 nice article) but 
 I could not because Fuel-marcus766 is not found. May be my image is not 
 recent enough.

Fuel-MarcusDenker.766 is the default Fuel version in the latest 3.0 (curl 
get.pharo.org/30 | bash). I did all my work in there.

 I should probably add a repository but I could not find it.
 
 
 As promised (a very long while ago) I moved all the checksum code to a 
 dedicated hiearchy (see https://pharo.fogbugz.com/default.asp?5468). The 
 thing I'm most proud of is the CRC class which implements Ross Williams's 
 RockSoft parameterized CRC caculation model (http://www.ross.net/crc/).
 
 Currently there are still two plugin primitives (used by the Compression 
 package) which I simply moved to the new Checksum hierarchy. When I 
 originally wrote the CRC class I wasn't aware of NativeBoost. Today I saw 
 that there are two methods NativeBoost offers for crc32 calculations. I 
 don't have time to look in to that but I just wanted to put the idea out 
 there that with the checksum code now all in one place, we might be able to 
 perform all checksum calculations through NB (and get rid of the ZipPlugin 
 :) ).
 
 Any thoughts?
 
 Cheers,
 Max
 
 




Re: [Pharo-dev] the return of the strange methods

2013-07-09 Thread Max Leske

On 09.07.2013, at 17:42, Clément Bera bera.clem...@gmail.com wrote:

 They may be useful. Imagine you are too lazy to create a subclass of Error, 
 but not lazy enough to create a test and copy paste a String. 
 Then you write in your method: 
 self error: 'some strange error happened'
 And you can test it:
 self shouldnt: [ some strange code ] raise: Error whoseDescriptionIncludes: 
 'some strange error happened' description: 'the strange error did not happen 
 ! That's strange'
 
 Seriously, as you saw these methods are used only in their tests. I guess you 
 can remove them. Open fogz bug ?

+1

 
 
 2013/7/9 Frank Shearar frank.shea...@gmail.com
 On 9 July 2013 16:24, Camillo Bruni camillobr...@gmail.com wrote:
  Survey: who uses the following methods? and if yes why?
 
  - shouldnt: aBlock raise: anExceptionalEvent 
  whoseDescriptionDoesNotInclude: subString description: aString
  - shouldnt: aBlock raise: anExceptionalEvent whoseDescriptionIncludes:  
   subString description: aString
 
  I honestly cannot wrap my head around these two methods.
 
 They show that the code in the block raises an _informative_
 exception. So you get a FileNotFound exception... but what was the
 missing file? I don't know! Noone bothered to mention it!
 
 frank
 
 



[Pharo-dev] Issue-5468: Extract CRC code - NativeBoost?

2013-07-08 Thread Max Leske
As promised (a very long while ago) I moved all the checksum code to a 
dedicated hiearchy (see https://pharo.fogbugz.com/default.asp?5468). The thing 
I'm most proud of is the CRC class which implements Ross Williams's RockSoft 
parameterized CRC caculation model (http://www.ross.net/crc/).

Currently there are still two plugin primitives (used by the Compression 
package) which I simply moved to the new Checksum hierarchy. When I originally 
wrote the CRC class I wasn't aware of NativeBoost. Today I saw that there are 
two methods NativeBoost offers for crc32 calculations. I don't have time to 
look in to that but I just wanted to put the idea out there that with the 
checksum code now all in one place, we might be able to perform all checksum 
calculations through NB (and get rid of the ZipPlugin :) ).

Any thoughts?

Cheers,
Max


Re: [Pharo-dev] Possible PharoVM bug (wrong object on stack top)

2013-07-04 Thread Max Leske
I've opened a new issue for this bug: 
https://pharo.fogbugz.com/default.asp?11130
It has a couple of methods attached (together with their byte codes) that 
exhibited the problem.

Cheers,
Max


On 27.06.2013, at 20:44, Igor Stasenko siguc...@gmail.com wrote:

 What i find fun with this bug, that it is one that is just annoying
 (you just get a DNU, then you restart and it works).
 Comparing to hard VM crash we experienced before... :)
 
 On 27 June 2013 20:23, p...@highoctane.be p...@highoctane.be wrote:
 I do have that issue often when loading my devstack configuration on Pharo
 2.0 (as in http://www.smalltalkhub.com/#!/~philippeback/HOWebStack)
 
 Doing everything again fixes the problem but fingers crossed are required.
 
 It is a really annoying bug indeed.
 
 Phil
 
 
 
 ---
 Philippe Back
 Dramatic Performance Improvements
 Mob: +32(0) 478 650 140 | Fax: +32 (0) 70 408 027
 Mail:p...@highoctane.be | Web: http://philippeback.eu
 Blog: http://philippeback.be | Twitter: @philippeback
 Youtube: http://www.youtube.com/user/philippeback/videos
 
 High Octane SPRL
 rue cour Boisacq 101 | 1301 Bierges | Belgium
 
 Featured on the Software Process and Measurement Cast
 http://spamcast.libsyn.com
 Sparx Systems Enterprise Architect and Ability Engineering EADocX Value
 Added Reseller
 
 
 
 
 On Thu, Jun 27, 2013 at 3:22 PM, Igor Stasenko siguc...@gmail.com wrote:
 
 On 27 June 2013 14:13, Max Leske maxle...@gmail.com wrote:
 Hi
 
 I've been seeing a particular bug that I can only see when using the
 PharoVM and I was wondering if anybody else has been having the same issue.
 
 Under certain condition, a debugger will open displaying SmallInteger
 does not understand some message. The stack top contains an integer
 (something of the form 138402, not sure how many digits), which explains 
 the
 message. However, the situation actually looks like this:
 
htmil anchor
id: 'foo';
…
 
 In this example, the error would be SmallInteger does not understand
 #id:. So the stack top contains an integer instead of the receiver.
 Restarting the execution of the method and proceeding fixes the problem.
 I think I've seen that (using seaside), a new session will trigger the bug
 again.
 
 Apart from Seaside, I've also seen the same problem when loading Roberto
 Minelli's DevFlow into a Pharo 2.0 image. The debugger will open on a
 Metacello method.
 
 VM: latest PharoVM
 image: latest 2.0
 try this config: http://smalltalkhub.com/#!/~RobertoMinelli/DevFlow with
 ConfigurationOfDevFlow loadDevelopment
 
 
 Has anybody else encountered this?
 
 yes, couple months ago we had this issue.
 It looks like it doesn't likes some bytecode sequence (which causing
 this)..
 and this sequence is not appears that often.
 
 If i remember Esteban said that changing compiler optimizations flags
 fixed it..
 but perhaps not on platform , you running on?
 
 Cheers,
 Max
 
 
 
 --
 Best regards,
 Igor Stasenko.
 
 
 
 
 
 -- 
 Best regards,
 Igor Stasenko.
 




Re: [Pharo-dev] Abbreviations

2013-07-04 Thread Max Leske
I agree wholeheartedly! I still believe in (mostly) self documenting code and 
that cannot be achieved by using abbreviations.

Max

On 04.07.2013, at 12:52, Torsten Bergmann asta...@gmx.de wrote:

 Usually I thought only the C/C++ people fell in love with abbreviations - but 
 now its our own community:
 
 in Pharo 3.0 one can write:
 
Smalltalk os env
 
 or would it be better to use:
 
Smalltalk operatingSystem environment
 
 in the future?
 
 So is the current
 
Smalltalk vm
 
 better than
 
Smalltalk virtualMachine
 
 I know: even a newcomer should know what OS means. At least 
 Smalltalkers/Java people should
 know they need a VM. But nonetheless I think a common goal would be to keep 
 Pharo code and method selectors readable and avoid abbreviations when 
 possible.
 
 Also there are Pharo methods like #getEnv: instead of 
 #getEnvironmentVariable: 
 (interesting that they wrap the native C/C++ API GetEnvironmentVariableA
 which does not use abbreviations)
 
 Should we care (with an issue) and use the more readable forms in
 the future and deprecated the abbreviation forms? 
 
 Or will we keep abbreviations for the lazy and easier typing?
 
 If you comment please think about the goal to get readable code, the goal to
 get more newcomers into programming and your own first steps with Smalltalk 
 and IT ...
 
 
 
 
 




Re: [Pharo-dev] Abbreviations

2013-07-04 Thread Max Leske

On 04.07.2013, at 13:09, Henrik Johansen henrik.s.johan...@veloxit.no wrote:

 
 On Jul 4, 2013, at 12:52 , Torsten Bergmann wrote:
 
 Usually I thought only the C/C++ people fell in love with abbreviations - 
 but 
 now its our own community:
 
 in Pharo 3.0 one can write:
 
   Smalltalk os env
 
 or would it be better to use:
 
   Smalltalk operatingSystem environment
 
 in the future?
 
 So is the current
 
   Smalltalk vm
 
 better than
 
   Smalltalk virtualMachine
 
 I know: even a newcomer should know what OS means. At least 
 Smalltalkers/Java people should
 know they need a VM. But nonetheless I think a common goal would be to 
 keep 
 Pharo code and method selectors readable and avoid abbreviations when 
 possible.
 
 Also there are Pharo methods like #getEnv: instead of 
 #getEnvironmentVariable: 
 (interesting that they wrap the native C/C++ API GetEnvironmentVariableA
 which does not use abbreviations)
 
 Should we care (with an issue) and use the more readable forms in
 the future and deprecated the abbreviation forms? 
 
 Or will we keep abbreviations for the lazy and easier typing?
 
 If you comment please think about the goal to get readable code, the goal to
 get more newcomers into programming and your own first steps with Smalltalk 
 and IT ...
 
 My 2c: 
 Acronyms work fine, also in method names. (os, vm)
 As a basic rule require to spell out ante meridiem, light amplification by 
 stimulated emission of radiation, radio detection and ranging, compact disk, 
 and their likes, seems a bit … zealous.

Agreed. There are conventional terms that can (and maybe should) be 
abbreviated. But in general I'm against abbreviations.

 
 Simple abbreviations, like env, rather than using the full word, I have much 
 less empathy for.
 
 Cheers,
 Henry




Re: [Pharo-dev] anonymous issue report

2013-07-02 Thread Max Leske
I didn't report it but here's a usecase:

suppose you have a collection of objects and they might include nil. Now, if 
you want to do this:

myCollection do: [ :element | element class allSubclassesDo: #value ] ]

then you'll get an exception when element is nil.


superclass == nil
On 02.07.2013, at 14:23, Camillo Bruni camillobr...@gmail.com wrote:

 Who reported UndefinedObject should implement #allSuperclassesDo: ?
 Could you please give an example on how to reproduce this?
 




[Pharo-dev] Possible PharoVM bug (wrong object on stack top)

2013-06-27 Thread Max Leske
Hi

I've been seeing a particular bug that I can only see when using the PharoVM 
and I was wondering if anybody else has been having the same issue.

Under certain condition, a debugger will open displaying SmallInteger does not 
understand some message. The stack top contains an integer (something of the 
form 138402, not sure how many digits), which explains the message. However, 
the situation actually looks like this:

htmil anchor
id: 'foo';
…

In this example, the error would be SmallInteger does not understand #id:. So 
the stack top contains an integer instead of the receiver.
Restarting the execution of the method and proceeding fixes the problem. I 
think I've seen that (using seaside), a new session will trigger the bug again.

Apart from Seaside, I've also seen the same problem when loading Roberto 
Minelli's DevFlow into a Pharo 2.0 image. The debugger will open on a Metacello 
method.

VM: latest PharoVM
image: latest 2.0
try this config: http://smalltalkhub.com/#!/~RobertoMinelli/DevFlow with 
ConfigurationOfDevFlow loadDevelopment


Has anybody else encountered this?

Cheers,
Max


Re: [Pharo-dev] Possible PharoVM bug (wrong object on stack top)

2013-06-27 Thread Max Leske
Thanks guys. 

So Esteban, do you need more cases? I can provide some if you want me to.

Cheers,
Max


On 27.06.2013, at 15:34, Esteban Lorenzano esteba...@gmail.com wrote:

 
 On Jun 27, 2013, at 3:22 PM, Igor Stasenko siguc...@gmail.com wrote:
 
 On 27 June 2013 14:13, Max Leske maxle...@gmail.com wrote:
 Hi
 
 I've been seeing a particular bug that I can only see when using the 
 PharoVM and I was wondering if anybody else has been having the same issue.
 
 Under certain condition, a debugger will open displaying SmallInteger does 
 not understand some message. The stack top contains an integer 
 (something of the form 138402, not sure how many digits), which explains 
 the message. However, the situation actually looks like this:
 
   htmil anchor
   id: 'foo';
   …
 
 In this example, the error would be SmallInteger does not understand 
 #id:. So the stack top contains an integer instead of the receiver.
 Restarting the execution of the method and proceeding fixes the problem. I 
 think I've seen that (using seaside), a new session will trigger the bug 
 again.
 
 Apart from Seaside, I've also seen the same problem when loading Roberto 
 Minelli's DevFlow into a Pharo 2.0 image. The debugger will open on a 
 Metacello method.
 
 VM: latest PharoVM
 image: latest 2.0
 try this config: http://smalltalkhub.com/#!/~RobertoMinelli/DevFlow with 
 ConfigurationOfDevFlow loadDevelopment
 
 
 Has anybody else encountered this?
 
 yes, couple months ago we had this issue.
 It looks like it doesn't likes some bytecode sequence (which causing this)..
 and this sequence is not appears that often.
 
 If i remember Esteban said that changing compiler optimizations flags
 fixed it..
 but perhaps not on platform , you running on?
 
 no, I didn't said that :)
 
 I still don't know how to fix this... I can workaround the problem, but the 
 real problem is still there. 
 
 see: https://pharo.fogbugz.com/f/cases/10395
 
 for an explanation on how to workaround the issue.
 
 cheers,
 Esteban 
 
 
 Cheers,
 Max
 
 
 
 -- 
 Best regards,
 Igor Stasenko.
 
 
 




Re: [Pharo-dev] Possible PharoVM bug (wrong object on stack top)

2013-06-27 Thread Max Leske
OK. I'll collect some cases and post them on the FogBugz issue.


On 27.06.2013, at 16:06, Guillermo Polito guillermopol...@gmail.com wrote:

 It would be good to have a simple way to reproduce it and make a test for it. 
 I tried that last week but I wasn't able to reproduce it :(.
 
 In any case, the problem is with the JIT. On a StackVM we don't have the 
 problem.
 
 
 On Thu, Jun 27, 2013 at 4:00 PM, Max Leske maxle...@gmail.com wrote:
 Thanks guys.
 
 So Esteban, do you need more cases? I can provide some if you want me to.
 
 Cheers,
 Max
 
 
 On 27.06.2013, at 15:34, Esteban Lorenzano esteba...@gmail.com wrote:
 
 
  On Jun 27, 2013, at 3:22 PM, Igor Stasenko siguc...@gmail.com wrote:
 
  On 27 June 2013 14:13, Max Leske maxle...@gmail.com wrote:
  Hi
 
  I've been seeing a particular bug that I can only see when using the 
  PharoVM and I was wondering if anybody else has been having the same 
  issue.
 
  Under certain condition, a debugger will open displaying SmallInteger 
  does not understand some message. The stack top contains an integer 
  (something of the form 138402, not sure how many digits), which explains 
  the message. However, the situation actually looks like this:
 
htmil anchor
id: 'foo';
…
 
  In this example, the error would be SmallInteger does not understand 
  #id:. So the stack top contains an integer instead of the receiver.
  Restarting the execution of the method and proceeding fixes the problem. 
  I think I've seen that (using seaside), a new session will trigger the 
  bug again.
 
  Apart from Seaside, I've also seen the same problem when loading Roberto 
  Minelli's DevFlow into a Pharo 2.0 image. The debugger will open on a 
  Metacello method.
 
  VM: latest PharoVM
  image: latest 2.0
  try this config: http://smalltalkhub.com/#!/~RobertoMinelli/DevFlow with 
  ConfigurationOfDevFlow loadDevelopment
 
 
  Has anybody else encountered this?
 
  yes, couple months ago we had this issue.
  It looks like it doesn't likes some bytecode sequence (which causing 
  this)..
  and this sequence is not appears that often.
 
  If i remember Esteban said that changing compiler optimizations flags
  fixed it..
  but perhaps not on platform , you running on?
 
  no, I didn't said that :)
 
  I still don't know how to fix this... I can workaround the problem, but the 
  real problem is still there.
 
  see: https://pharo.fogbugz.com/f/cases/10395
 
  for an explanation on how to workaround the issue.
 
  cheers,
  Esteban
 
 
  Cheers,
  Max
 
 
 
  --
  Best regards,
  Igor Stasenko.
 
 
 
 
 
 



[Pharo-dev] Pharo 2.0: Review for Fuel fix integration required

2013-06-20 Thread Max Leske
Hi guys

I created a new Fuel version that includes an important fix (in my opinion). 
That fix should be integrated into Pharo 2.0 (in my opinion); here's the 
integration request: https://pharo.fogbugz.com/default.asp?10730

Summary of the change:
Changes in the serialized graph during serialization do no longer affect 
serialization, i.e. the graph serialized it the graph as encountered during 
analysis.
This fix is important for the Fuel out stack feature in Pharo2.0 because of 
contexts that can reference processes (e.g. with Seaside).

Since Marcus does not have the capacity to review everything in the inbox, I 
need one or two poeple to look at the request and green light it.

Side note: we need more people to review changes. Simply assigning everything 
to Marcus doesn't seem to solve this problem :)

Thanks for your time.

Cheers,
Max



[Pharo-dev] Fwd: Vm-dev Digest, Vol 83, Issue 46

2013-06-01 Thread Max Leske


Begin forwarded message:

 On Fri, May 31, 2013 at 1:11 PM, Eliot Miranda eliot.mira...@gmail.comwrote:
 
 
 
 On Fri, May 31, 2013 at 12:54 AM, Max Leske maxle...@gmail.com wrote:
 
 
 Bump.
 
 Doesn't anybody feel that corrupt blocks are a problem? IMHO that's
 something that should *never* happen.
 
 
 But what's happening here is that the Fuel serializer is allowing the
 serialization of blocks without serializing their outer context and method,
 and later the reconstruction of blocks against the *wrong* version of a
 method.  This is a Fuel bug.  IMO the right solution is for Fuel to
 serialize the method of the block, and on reconstruction replace the
 reconstructed method with the method in the system iff the reconstructed
 method is the same as that in the system, but substitute the recinstructed
 method if it differs from the system's version (or of course if the
 system;s version is missing).  this mimics the system's behaviour with
 unbound methods, where e.g. a block holds onto a method and the code of a
 class is recompiled, resulting iun that block holding onto an unbound
 method.
 
 
 Sorry, without serializing their outer context and method is wrong;
 without serializing their method



Re: [Pharo-dev] Release Artefact 1.0, the PDF framework

2013-05-31 Thread Max Leske
Awesome guys! I'll have to take a look soon.

Max


On 31.05.2013, at 16:00, Damien Cassou damien.cas...@gmail.com wrote:

 Images are automatically built by a continuous integration job:
 https://ci.inria.fr/pharo-contribution/job/Artefact/.
 
 On Fri, May 31, 2013 at 3:30 PM, Guillaume Larcheveque
 guillaume.larcheve...@gmail.com wrote:
 We are proud to announce that Artefact is available in 1.0 version.
 
 You can download it from: http://smalltalkhub.com/#!/~RMoD/Artefact
 
 Artefact is a framework to generate PDF documents. It is fully written in
 Smalltalk and doesn't require any native library. Artefact is light,
 platform independant and offer to users a high level of abstraction in order
 to easily creating PDF documents.
 
 * completely written in Smalltalk (and only Smalltalk),
 * complete freedom about the order of creation for pages, elements... (no
 need to follow the document order)
 * multi format and orientation for pages
 * page composition based on reusables PDF elements,
 * extensibility by offering a composition standard to create your own high
 level elements
 * styleSheet that can be reused in many documents and avoid wasting time
 and place with duplication
 * image support with the JPEG format
 * pre-defined high level elements like datagrid
 * support PDF compression to produce compact files
 
 A basic documentation is available in the help browser. Many examples are
 implemented in the PDFDemos class.
 
 --
 Olivier Auverlot and Guillaume Larcheveque
 
 
 
 
 --
 Damien Cassou
 http://damiencassou.seasidehosting.st
 
 Success is the ability to go from one failure to another without
 losing enthusiasm.
 Winston Churchill
 




Re: [Pharo-dev] [ANN]: ValidationRevisited (alpha)

2013-05-30 Thread Max Leske
I love the music you used in your screencast :D Sounds a bit like a telephone 
waiting line


On 30.05.2013, at 08:52, stephane ducasse stephane.duca...@free.fr wrote:

 I started to read the chapter to understand.
 
 Stef
 
 
 stephane ducasse wrote
 show us how you specify that?
 
 It's a simple Spec UI, receiving announcements from the domain object.
 Whenever the model changes, the UI receives:
   modelChanged: anAnnouncement
 
  failureList items: model validate failures.
 
 #validate is the main entry point for the framework. You can call this on
 any domain object and the validation rules will be run. Under the hood are
 specialized SUnit classes. Here (on Nabble) is a screenshot of the validator
 class, a specialized TestCase which holds the rules for the object in the
 screencast:
 http://forum.world.st/file/n4690694/Screen_Shot_2013-05-29_at_5.37.12_PM.png
  
 
 The really cool thing which is not shown in the video is that the failures
 are real objects which hold the domain object, the property that failed
 (called an 'aspect'), and the description shown in the UI. So you could do a
 lot more than show the description...
 
 
 
 -
 Cheers,
 Sean
 --
 View this message in context: 
 http://forum.world.st/ANN-ValidationRevisited-alpha-tp4690680p4690694.html
 Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
 
 
 




[Pharo-dev] Fwd: [Pharo-fuel] Corrupt BlockClosure

2013-05-24 Thread Max Leske


Begin forwarded message:

 From: roberto.mine...@usi.ch roberto.mine...@usi.ch
 Subject: Re: [Pharo-fuel] [Pharo-dev] Corrupt BlockClosure
 Date: 24. Mai 2013 08:10:19 MESZ
 To: The Fuel Project pharo-f...@lists.gforge.inria.fr
 Reply-To: The Fuel Project pharo-f...@lists.gforge.inria.fr
 
 Hi,
 
 Thanks all of you for interest ;)
 
 On May 24, 2013, at 7:15 AM, Max Leske maxle...@gmail.com
 wrote:
 
 I played around with reverting the method and serializing but that doesn't 
 change anything (the existing BlockClosure is obviously not modified).
 Then I thought that maybe the method was changed during a running DFSession 
 but still couldn't reproduce.
 
 Me neither!!
 
 
 @Roberto
 Can you tell us anything about what you did befor / during / after running 
 your session?
 
 Nope. Unfortunately I've a couple of broken sessions I cannot serialize 
 because of that bug.. But all of them refers sooner or later to the 
 DFSession#numberOfMethodCalls method. Dunno why.
 
 @Roberto
 Is it possible to reproduce the stack with a new session? Or did this only 
 happen once?
 
 I have no clue how to reproduce, but it did not happen only once. As I said, 
 there are 3/4 sessions I couldn't export due to this SubscriptOutOfBounds.
 
 Cheers,
 Roby
 
 
 
 
 On 24.05.2013, at 06:44, Max Leske maxle...@gmail.com wrote:
 
 
 On 23.05.2013, at 22:58, Camille Teruel camille.ter...@gmail.com wrote:
 
 Hi,
 
 This is indeed strange, the BlockClosure has an incorrect startpc (31 
 instead of 43). You can fix it with: 
 theBlock instVar: 2 put: 43. 
 The wrong startpc corresponds to the beginning of the block in the 
 previous version of the method (DFSession#numberOfMethodCalls), but I 
 don't know why.
 
 Would it help to recompile the method?
 
 I don't know fuel enough but could it be because the method of the block 
 changed between serialization and materialization?
 
 No, there was never a materialization of that session.
 
 
 Camille 
 
 On 23 mai 2013, at 21:02, Max Leske wrote:
 
 Hi Marcus
 
 Roberto sent this mail to the Fuel-dev list. When we looked at the 
 problem we noticed that serialization fails because of a corrupt 
 BlockClosure. Since that's not really our territorry Mariano suggested to 
 forward this to you.
 
 The image with the corrupt BlockClosure is available here: 
 https://dl.dropboxusercontent.com/u/6281855/DFlow-SubscriptOutOfBounds.zip.
 To see the stack, right click on the only entry in the right window and 
 click export session. You'll find the corrupt BlockClosure at 
 BlockClosurefuelAccept:
 
 @Roberto
 Is it possible to reproduce the stack with a new session? Or did this 
 only happen once?
 
 
 Cheers,
 Max
 
 
 Begin forwarded message:
 
 From: Mariano Martinez Peck marianop...@gmail.com
 Subject: Re: [Pharo-fuel] [Fuel] SubscriptOutOfBounds: 27
 Date: 23. Mai 2013 14:23:45 MESZ
 To: The Fuel Project pharo-f...@lists.gforge.inria.fr
 Reply-To: The Fuel Project pharo-f...@lists.gforge.inria.fr
 
 Indeed, it would be nice if you can known which CompiledMethod and 
 blockclosure are having the problem. Not only the source code but the 
 real bytecodes.
 Also, can you isolate and just try to serialize them alone and reproduce 
 the problem? In other words, a reproducible test case? :)
 Thanks!
 
 
 On Thu, May 23, 2013 at 8:41 AM, Max Leske maxle...@gmail.com wrote:
 What's the compiled method? Is it a special one? Which selector in which 
 class?
 
 Max
 
 On 23.05.2013, at 12:45, roberto.mine...@usi.ch 
 roberto.mine...@usi.ch wrote:
 
 Hi,
 
 While using Fuel in a 2.0 image to serialize some objects (including 
 CompiledMethods) I'm getting this error: SubscriptOutOfBounds: 27.
 
 I spent hours in the debugger before writing this email, but I'm not 
 able to figure out why this is happening. I attach the full stack of 
 the error (STACK#1).
 
 I understood that it has something to do with a particular 
 CompiledMethod in my image and/or a BlockClosure which for some reason 
 cannot be printed (i.e., the printString returns error in printString: 
 evaluate self printString to debug) and when I try to printString to 
 debug I got the STACK#2 which in turn does not bring me to any possible 
 solution.
 
 Hope some of you will have an intuition on that or at least tell me 
 where to look or how to script a possible workaround.
 
 Thanks in advance,
 Roby
 
 
 # STACK#1 
 ###
 ###
 CompiledMethod(Object)errorSubscriptBounds:
 CompiledMethod(Object)at:
 InstructionStreaminterpretNextInstructionFor:
 CompiledMethodabstractBytecodeMessageAt: in Block: 
 [(InstructionStream new method: self pc: pc)...
 BlockClosureon:do:
 CompiledMethodabstractBytecodeMessageAt:
 BlockClosureblockCreationBytecodeMessage
 BlockClosureendPC

Re: [Pharo-dev] Corrupt BlockClosure

2013-05-23 Thread Max Leske

On 23.05.2013, at 22:58, Camille Teruel camille.ter...@gmail.com wrote:

 Hi,
 
 This is indeed strange, the BlockClosure has an incorrect startpc (31 instead 
 of 43). You can fix it with: 
 theBlock instVar: 2 put: 43. 
 The wrong startpc corresponds to the beginning of the block in the previous 
 version of the method (DFSession#numberOfMethodCalls), but I don't know why.

Would it help to recompile the method?

 I don't know fuel enough but could it be because the method of the block 
 changed between serialization and materialization?

No, there was never a materialization of that session.

 
 Camille 
 
 On 23 mai 2013, at 21:02, Max Leske wrote:
 
 Hi Marcus
 
 Roberto sent this mail to the Fuel-dev list. When we looked at the problem 
 we noticed that serialization fails because of a corrupt BlockClosure. Since 
 that's not really our territorry Mariano suggested to forward this to you.
 
 The image with the corrupt BlockClosure is available here: 
 https://dl.dropboxusercontent.com/u/6281855/DFlow-SubscriptOutOfBounds.zip.
 To see the stack, right click on the only entry in the right window and 
 click export session. You'll find the corrupt BlockClosure at 
 BlockClosurefuelAccept:
 
 @Roberto
 Is it possible to reproduce the stack with a new session? Or did this only 
 happen once?
 
 
 Cheers,
 Max
 
 
 Begin forwarded message:
 
 From: Mariano Martinez Peck marianop...@gmail.com
 Subject: Re: [Pharo-fuel] [Fuel] SubscriptOutOfBounds: 27
 Date: 23. Mai 2013 14:23:45 MESZ
 To: The Fuel Project pharo-f...@lists.gforge.inria.fr
 Reply-To: The Fuel Project pharo-f...@lists.gforge.inria.fr
 
 Indeed, it would be nice if you can known which CompiledMethod and 
 blockclosure are having the problem. Not only the source code but the real 
 bytecodes.
 Also, can you isolate and just try to serialize them alone and reproduce 
 the problem? In other words, a reproducible test case? :)
 Thanks!
 
 
 On Thu, May 23, 2013 at 8:41 AM, Max Leske maxle...@gmail.com wrote:
 What's the compiled method? Is it a special one? Which selector in which 
 class?
 
 Max
 
 On 23.05.2013, at 12:45, roberto.mine...@usi.ch roberto.mine...@usi.ch 
 wrote:
 
  Hi,
 
  While using Fuel in a 2.0 image to serialize some objects (including 
  CompiledMethods) I'm getting this error: SubscriptOutOfBounds: 27.
 
  I spent hours in the debugger before writing this email, but I'm not able 
  to figure out why this is happening. I attach the full stack of the error 
  (STACK#1).
 
  I understood that it has something to do with a particular CompiledMethod 
  in my image and/or a BlockClosure which for some reason cannot be printed 
  (i.e., the printString returns error in printString: evaluate self 
  printString to debug) and when I try to printString to debug I got the 
  STACK#2 which in turn does not bring me to any possible solution.
 
  Hope some of you will have an intuition on that or at least tell me where 
  to look or how to script a possible workaround.
 
  Thanks in advance,
  Roby
 
  
  # STACK#1 
  ###
  ###
  CompiledMethod(Object)errorSubscriptBounds:
  CompiledMethod(Object)at:
  InstructionStreaminterpretNextInstructionFor:
  CompiledMethodabstractBytecodeMessageAt: in Block: [(InstructionStream 
  new method: self pc: pc)...
  BlockClosureon:do:
  CompiledMethodabstractBytecodeMessageAt:
  BlockClosureblockCreationBytecodeMessage
  BlockClosureendPC
  BlockClosureabstractBytecodeMessagesDo:
  BlockClosureisClean
  BlockClosureshouldBeSubstitutedByCleanCopy
  BlockClosurefuelAccept:
  FLFullGeneralMapper(FLLightGeneralMapper)mapAndTrace:
  FLFullGlobalMappermapAndTrace: in Block: [(anObject class == 
  CompiledMethod...
  FLLargeIdentityDictionaryat:ifAbsent:
  FLFullGlobalMappermapAndTrace:
  FLPluggableSubstitutionMappermapAndTrace:
  FLPluggableSubstitutionMappermapAndTrace:
  FLAnalysismapAndTrace:
  FLAnalysisrun
  FLAnalyzersetDefaultAnalysis in Block: [:anObject | (FLAnalysis...
  FLAnalyzeranalysisFor:
  FLSerializationanalysisStep
  FLSerializationrun
  DFSerializer(FLSerializer)setDefaultSerialization in Block: [:anObject 
  :anEncoder | (FLSerialization...
  DFSerializer(FLSerializer)serialize:on: in Block: [:anEncoder | ...
  FLEncoder classon:globalEnvironment:do: in Block: [aBlock value: 
  anEncoder]
  BlockClosureensure:
  FLEncoder classon:globalEnvironment:do:
  DFSerializer(FLSerializer)serialize:on:
 
 
  
  # STACK#2 
  ###
  
  Decompiler(Object)error

Re: [Pharo-dev] Corrupt BlockClosure

2013-05-23 Thread Max Leske
I played around with reverting the method and serializing but that doesn't 
change anything (the existing BlockClosure is obviously not modified).
Then I thought that maybe the method was changed during a running DFSession but 
still couldn't reproduce.

@Roberto
Can you tell us anything about what you did befor / during / after running your 
session?


On 24.05.2013, at 06:44, Max Leske maxle...@gmail.com wrote:

 
 On 23.05.2013, at 22:58, Camille Teruel camille.ter...@gmail.com wrote:
 
 Hi,
 
 This is indeed strange, the BlockClosure has an incorrect startpc (31 
 instead of 43). You can fix it with: 
 theBlock instVar: 2 put: 43. 
 The wrong startpc corresponds to the beginning of the block in the previous 
 version of the method (DFSession#numberOfMethodCalls), but I don't know 
 why.
 
 Would it help to recompile the method?
 
 I don't know fuel enough but could it be because the method of the block 
 changed between serialization and materialization?
 
 No, there was never a materialization of that session.
 
 
 Camille 
 
 On 23 mai 2013, at 21:02, Max Leske wrote:
 
 Hi Marcus
 
 Roberto sent this mail to the Fuel-dev list. When we looked at the problem 
 we noticed that serialization fails because of a corrupt BlockClosure. 
 Since that's not really our territorry Mariano suggested to forward this to 
 you.
 
 The image with the corrupt BlockClosure is available here: 
 https://dl.dropboxusercontent.com/u/6281855/DFlow-SubscriptOutOfBounds.zip.
 To see the stack, right click on the only entry in the right window and 
 click export session. You'll find the corrupt BlockClosure at 
 BlockClosurefuelAccept:
 
 @Roberto
 Is it possible to reproduce the stack with a new session? Or did this only 
 happen once?
 
 
 Cheers,
 Max
 
 
 Begin forwarded message:
 
 From: Mariano Martinez Peck marianop...@gmail.com
 Subject: Re: [Pharo-fuel] [Fuel] SubscriptOutOfBounds: 27
 Date: 23. Mai 2013 14:23:45 MESZ
 To: The Fuel Project pharo-f...@lists.gforge.inria.fr
 Reply-To: The Fuel Project pharo-f...@lists.gforge.inria.fr
 
 Indeed, it would be nice if you can known which CompiledMethod and 
 blockclosure are having the problem. Not only the source code but the real 
 bytecodes.
 Also, can you isolate and just try to serialize them alone and reproduce 
 the problem? In other words, a reproducible test case? :)
 Thanks!
 
 
 On Thu, May 23, 2013 at 8:41 AM, Max Leske maxle...@gmail.com wrote:
 What's the compiled method? Is it a special one? Which selector in which 
 class?
 
 Max
 
 On 23.05.2013, at 12:45, roberto.mine...@usi.ch roberto.mine...@usi.ch 
 wrote:
 
  Hi,
 
  While using Fuel in a 2.0 image to serialize some objects (including 
  CompiledMethods) I'm getting this error: SubscriptOutOfBounds: 27.
 
  I spent hours in the debugger before writing this email, but I'm not 
  able to figure out why this is happening. I attach the full stack of the 
  error (STACK#1).
 
  I understood that it has something to do with a particular 
  CompiledMethod in my image and/or a BlockClosure which for some reason 
  cannot be printed (i.e., the printString returns error in printString: 
  evaluate self printString to debug) and when I try to printString to 
  debug I got the STACK#2 which in turn does not bring me to any possible 
  solution.
 
  Hope some of you will have an intuition on that or at least tell me 
  where to look or how to script a possible workaround.
 
  Thanks in advance,
  Roby
 
  
  # STACK#1 
  ###
  ###
  CompiledMethod(Object)errorSubscriptBounds:
  CompiledMethod(Object)at:
  InstructionStreaminterpretNextInstructionFor:
  CompiledMethodabstractBytecodeMessageAt: in Block: [(InstructionStream 
  new method: self pc: pc)...
  BlockClosureon:do:
  CompiledMethodabstractBytecodeMessageAt:
  BlockClosureblockCreationBytecodeMessage
  BlockClosureendPC
  BlockClosureabstractBytecodeMessagesDo:
  BlockClosureisClean
  BlockClosureshouldBeSubstitutedByCleanCopy
  BlockClosurefuelAccept:
  FLFullGeneralMapper(FLLightGeneralMapper)mapAndTrace:
  FLFullGlobalMappermapAndTrace: in Block: [(anObject class == 
  CompiledMethod...
  FLLargeIdentityDictionaryat:ifAbsent:
  FLFullGlobalMappermapAndTrace:
  FLPluggableSubstitutionMappermapAndTrace:
  FLPluggableSubstitutionMappermapAndTrace:
  FLAnalysismapAndTrace:
  FLAnalysisrun
  FLAnalyzersetDefaultAnalysis in Block: [:anObject | (FLAnalysis...
  FLAnalyzeranalysisFor:
  FLSerializationanalysisStep
  FLSerializationrun
  DFSerializer(FLSerializer)setDefaultSerialization in Block: [:anObject 
  :anEncoder | (FLSerialization...
  DFSerializer(FLSerializer)serialize:on: in Block: [:anEncoder | ...
  FLEncoder classon:globalEnvironment:do: in Block: [aBlock value: 
  anEncoder

Re: [Pharo-dev] Messy Configurations

2013-05-22 Thread Max Leske
+100!

On 22.05.2013, at 17:53, Camillo Bruni camillobr...@gmail.com wrote:

 I recently spent some time to revise how to write Metacello Configurations.
 
 Observation:
 
 - many configurations are quite a mess
 - many configurations duplicate code internally
 - many configurations have archived development versions
 
 
 For Pharo 3.0 I made a new Configuration template which improves and 
 documents 
 these observed points in quite some detail. Simply load a new 3.0 image and
 create a new configuration from the monticello working copy browser.
 
 Solution:
 =
 - specify external projects in separate, reusable methods 
 - only have ONE development version you regularly update
 - do not use version numbers for the development version
 - only make a version number when you release something stable AKA not 
 #development
 - name the baseline after the first version that introduces it
 
 
 
 What do you think?




Re: [Pharo-dev] (Identity)Dictionary benchmarks

2013-05-21 Thread Max Leske

On 21.05.2013, at 10:14, Sven Van Caekenberghe s...@stfx.eu wrote:

 
 On 21 May 2013, at 09:59, Max Leske maxle...@gmail.com wrote:
 
 3. SmallIntegeridentityHash is really slow. Using SmallInteger as keys in 
 IdentityDictionary is significantly slower than using them in a regular 
 Dictionary because the identity check is done via #identityHash (#hash 
 simply answers self).
 
 Yeah, SmallInteger#hashMultiply looks weird and complicated. Probably some 
 attempt at distributing keys better.

That's exactly what I gathered from the issues I looked through on FogBugz.

 
 But like you say: if #hash can return self, why would #identityHash not do 
 the same ?
 
 But I am no hashing expert...




Re: [Pharo-dev] WhatsUp from: 2013-05-20 until: 2013-05-31

2013-05-21 Thread Max Leske

On 21.05.2013, at 10:01, Sven Van Caekenberghe s...@stfx.eu wrote:

 Max,
 
 On 21 May 2013, at 09:43, Max Leske maxle...@gmail.com wrote:
 
 Not sure if this is related, but my FileSystem-Git build for 2.0 broke this 
 morning with a Zn stack trace (bad gateway): 
 https://ci.inria.fr/pharo-contribution/job/FileSystem-Git/PHARO=20,VERSION=development,VM=vm/53/
 
 Assuming you are loading Zn's #bleedingEdge, could you send me the URL you 
 try to access and that fails ?

Hm, doesn't seem to be bleeding edge (although is 2.0 dev). The test is fine on 
my local machine, so perhaps there's something wrong at inria?

Here's the incantation:
ZnClient new
url: aUrl asZnUrl / 'info' / 'refs';
queryAt: 'service' put: 'git-upload-pack';
username: 'admin' password: 'admin';
enforceHttpSuccess: true;
streaming: true;
get;
yourself

with url: 'https://git.gitorious.org/gitorious/mainline.git'

Thanks Sven.

 
 I mean a standalone version of what is happening here
 
 ZnClientget
 GitDumbHTTPProtocol classinitialRequestTo:
 GitDumbHTTPProtocol classconnectTo:
 GitAbstractProtocol classurl:
 GitSmartHTTPProtocolTest(GitAbstractProtocolTest)newProtocol
 GitSmartHTTPProtocolTest(GitAbstractProtocolTest)testTags
 GitSmartHTTPProtocolTest(TestCase)performTest
 
 If that is possible without giving out credentials.
 
 Sven
 
 Max
 
 On 21.05.2013, at 09:38, Sven Van Caekenberghe s...@stfx.eu wrote:
 
 
 On 21 May 2013, at 09:30, Damien Cassou damien.cas...@gmail.com wrote:
 
 - continue working on the configuration (it looks like Zinc has a bug with 
 its handling of PUT requests)
 
 Hi Damien, please elaborate, maybe I can help.
 
 Sven
 
 
 --
 Sven Van Caekenberghe
 Proudly supporting Pharo
 http://pharo.org
 http://association.pharo.org
 http://consortium.pharo.org
 
 
 
 
 
 
 
 
 




Re: [Pharo-dev] [Pharo-fuel] (Identity)Dictionary benchmarks

2013-05-21 Thread Max Leske

On 21.05.2013, at 10:58, Camillo Bruni camillobr...@gmail.com wrote:

 my random pessimistic comments
 
 a) your benchmarking script sucks! = use SMARK!! 
 http://smalltalkhub.com/#!/~StefanMarr/SMark

We're fully aware of that :)

 b) check my master thesis for a more thorough testing of dictionary, 
 including a cleaner implementation that defaults to something like a small 
 dictionary without a special class: 
 http://scg.unibe.ch/archive/masters/Brun11a.pdf
 
 the optimistic version:
 
 
 On 2013-05-21, at 09:47, Max Leske m.le...@netstyle.ch wrote:
 
 My coworker performed some interesting benchmarks on the various dictionary 
 types in Pharo. If you look at the attachments you'll see four things:
 1. SmallDictionary and SmallIdentityDictionary are totally useless when it 
 comes to performance. Unless their existence is somehow justified by saving 
 space (which might be important for embedded systems) I don't see why we 
 should keep them around.
 
 yes their usage is not always justified, but be careful what you measure: as 
 far as I see you only measure addition, no? (sorry again, but that benchmark 
 brutally sucks, it's so damn hard to read... :P). Iteration and retrieval 
 have to measure as well, also how the dictionaries behave under key hash 
 collisions (though I am definitely not defending the small dicts.. :).
 
 2. The special Fuel collections for large numbers of elements could be a 
 valuable addition to the basic collections
 
 THere is the pluggable key dictionary for that reason already, no? The main 
 problem is the limited hashes which results in quite some hash collisions for 
 very large dictionaries.
 
 3. SmallIntegeridentityHash is really slow. Using SmallInteger as keys in 
 IdentityDictionary is significantly slower than using them in a regular 
 Dictionary because the identity check is done via #identityHash (#hash 
 simply answers self).
 
 that is really strange :/
 
 4. Arrays are cool :)
 
 Should I open issues on FogBugz for any of these points? Especially point 3 
 bothers me because I feel that using a primitive type should be fast under 
 all circumstances.
 
 You'll find below the benchmark data (collected in 1.4, verified in 2.0) and 
 the code to run it.
 
 Cheers,
 Max
 
 
 performance.xlsx
 
 
 performance.xls
 
 
 
 
 
 --
 
 ( comments are variations)
 
 sizes := #( 10 20 30 40 50 60 70 80 90 100 120 130 140 150 160 170 180 190 
 200 300 400 500 600 700 800 900 1000 ).
 sizes := #( 10 20 30 40 50 60 70 80 90 100 120 130 140 150 160 170 180 190 
 200 300 400 500 600 700 800 900 1000 1500 2000 2500 3000 3500 4000 4500 
 5000 6000 7000 8000 9000 1 ).
 batches := sizes collect: [ :size | size -  ((1000 / size) asFloat // 
 10) ].
 batches := sizes collect: [ :size | size - 1 ].
 alphabet := Character alphabet.
 
 batches do: [ :a | Transcript tab; show: a key asString ]. Transcript cr.
 batches do: [ :a | Transcript tab; show: a value asString ]. Transcript cr.
 { Dictionary. SmallDictionary. IdentityDictionary. 
 SmallIdentityDictionary. FLLargeIdentityDictionary } 
 { Dictionary. IdentityDictionary. FLLargeIdentityDictionary } 
 { Array }
 do: [ :class | 
 Smalltalk garbageCollect.
 Transcript show: class name.
 batches
 do: [ :a |
 | struct strings iterations |
 strings := (1 to: a key) collect: [ :i | i 
 asString ].
 strings := (1 to: a key) collect: [ :i |
 String streamContents: [ :s |
 20 atRandom timesRepeat: [ s 
 nextPut: alphabet atRandom ] ] ].
 struct := class new.
 struct := (class = FLLargeIdentityDictionary
 ifTrue: [ class new ]
 ifFalse: [ class new: a key ]).
  Transcript tab; show: ([ 
 a value timesRepeat: [ 
 1 to: a key do: [ :i | struct 
 at: (strings at: i) i put: i ] ] ] timeToRun).
 strings := nil ]
 displayingProgress: class name asString.
 Transcript cr. ]
 displayingProgress: 'Processing ...'
 
 
 ___
 Pharo-fuel mailing list
 pharo-f...@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-fuel
 
 
 ___
 Pharo-fuel mailing list
 pharo-f...@lists.gforge.inria.fr
 http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-fuel




Re: [Pharo-dev] About the Mailinglist debacle...

2013-05-15 Thread Max Leske
Thanks for the effort Markus!


On 15.05.2013, at 19:52, Marcus Denker marcus.den...@inria.fr wrote:

 Hello,
 
 So now that everything is working… sorry for the mess.
 
 We should have left the gforge infrastructure the last time we had a 
 multi-day problem,
 not wait till we get it again.
 
 I think this will be my new principle: second real problem - I leave. No 
 discussions.
 We already saw with the jenkins story just how deadly bad infrastructure is.
 
 So what happened was that last Tuesday, the lists (all lists of gforge) 
 stopped delivering.
 Why is not clear, seemingly it was not gforge itself but the upstream servers 
  did
 not deliver. Whatever.
 What is clear is that it was completely unclear how long this would take, and 
 that we
 needed a solution after nearly a week of waiting.
 
 So we decided to move the lists. Of course with the old lists down, this was 
 harder than
 normal (even involved parsing the html to get the subscribers…) but that is 
 not important.
 
 Now the problem its hat Mailman does not distinguish between people that 
 unsubscribe,
 and those turning off delivery. So there where just a lot of people listed 
 with nomail (U),
 
 What to do? It was clear that we can't just subscribe lots of people to a 
 list that they *actively*
 unsubscribed. So the only option was to skip those by
   - unsubscribing them from the old list
   - then get the list of subscribers
   - put that in the new list.
 
 The only people that will see a bad effect are those using e.g nabble to read 
 the list. But those
 would see the new mails, too. The only problem they have is if the want to 
 send. So not *that* of
 a big deal.
 
 It seems that we got quite some false positive subscribers anyway in the form 
 of people who filtered
 the mails and then with the new list the filter did not work and they 
 suddenly saw mails of a long forgotten
 list. We even had the case of people who where nomail (U), yet they did get 
 mails delivered. How
 that can possibly work, I have  no clue *at all*.
 
 What else is missing (and on my TODO since Sunday/Monday, sorry for not yet 
 acting on it):
 
   - lists.pharo.org has an empty page and needs to point to the list of 
 the lists inttead
   - the archive needs to be moved from the old jenkins.
   - the (incomplete) archive of the new lists is not working since I put 
 it as public.
 
 So… maybe it would have been better to just wait until gforge works again and 
 then move… but
 it was just far too long already and not clear when it would be working again.
 
   Marcus




<    3   4   5   6   7   8