[Pharo-project] Smalltalks 2012 invitation and registration

2012-08-03 Thread Andres Valloud
Hello! You're invited to come over to the wonderful Argentine patagonia to participate in Smalltalks 2012. This year we will host the conference at a new venue for us: Puerto Madryn. We're very pleased to see different sections of the Argentine Smalltalk community represented every year.

[Pharo-project] Call for Submission on Special issue on Advances in Dynamic Languages

2012-02-20 Thread Andres Valloud
Special issue on Advances in Dynamic Languages Special issue of Elsevier's Science of Computer Programming (SCICO) Context --- Over recent years we have seen an increased interest in dynamic

Re: [Pharo-project] string hash collisions?

2012-01-01 Thread Andres Valloud
Part of why those attacks are so easy is that the factor for the multiplicative hash function is very poor (i.e.: 33, 31, etc). There is nothing spectacular about this reasoning, those cool looking factors chosen using the digital (finger) method should have been stamped out a long time ago.

Re: [Pharo-project] Destiny of changed:/update:

2011-12-27 Thread Andres Valloud
He might imply any finalization process that runs on the weak collection after the objects are collected must be thread safe, which seems reasonable. You may get away with free atomic finalization if you have a finalization queue... but not always. For example, what happens if the

Re: [Pharo-project] Destiny of changed:/update:

2011-12-27 Thread Andres Valloud
down the whole thing], then it will continue finalizing [other objects]. On 12/27/11 3:47 , Andres Valloud wrote: He might imply any finalization process that runs on the weak collection after the objects are collected must be thread safe, which seems reasonable. You may get away with free

Re: [Pharo-project] Destiny of changed:/update:

2011-12-27 Thread Andres Valloud
@lists.gforge.inria.fr; andres.vall...@gmail.com Subject: Re: [Pharo-project] Destiny of changed:/update: On Mon, 26 Dec 2011, Andres Valloud wrote: That's not how ephemerons work, and they also get finalized. Both of you may be right... Well, yes, with ephemerons you can implement a finalization mechanism

Re: [Pharo-project] Destiny of changed:/update:

2011-12-26 Thread Andres Valloud
That's not how ephemerons work, and they also get finalized. Both of you may be right... On 12/26/11 16:49 , Levente Uzonyi wrote: On Mon, 26 Dec 2011, Schwab,Wilhelm K wrote: Levente, Not meaning to be confrontational, but finalization does not happen in any type of collection. It

Re: [Pharo-project] IdentitySet but using #hash rather than #identityHash ?

2011-12-25 Thread Andres Valloud
I betcha the performance problem is because the collision trains end up hitting each other. In this case you likely won't be able to avoid collisions. So, instead of the regular hashed collections that use open addressing linear probing, use a hashed collection that stores objects in hash

[Pharo-project] Smalltalks 2011 --- Call for papers

2011-06-21 Thread Andres Valloud
CALL FOR PAPERS SMALLTALKS 2011 5th International Conference on Smalltalk Technologies Research Track: Call for Papers November 3th - 5th, 2011 Important dates: Submission (Hard Deadline): August 22th, 2011 (Argentinian time: UTC/GMT -3 hours). Notification of acceptance: September 23th,

Re: [Pharo-project] Integer#factorial

2011-06-18 Thread Andres Valloud
But unfortunately we do not have tail recursion (that I know)... On 6/16/11 10:46 , Lorenzo Schiavina wrote: IMHO factorial is a good OO example because you have not the usual limitation of traditional languages and you can understand the OOP power. Try, for example 1000 factorial in ST and in

Re: [Pharo-project] [Ann] Ephemerons for Cog

2011-05-25 Thread Andres Valloud
In VisualWorks, the place where objects that are likely never garbage live is called perm space. You get a GC speedup roughly proportional to the fraction of the image that is perm space (because you don't have to scan it or mark it), as long as the GC is not global (i.e.: when you also want

Re: [Pharo-project] Set with nil

2011-05-21 Thread Andres Valloud
Why this defensive approach to code that adds duplicate entries to a menu? Why not avoid the duplicated entries from being added to begin with? On 5/20/11 2:58 , Bernat Romagosa wrote: You may want the collection from which you build a menu to be a Set because you don't want to have repeated

Re: [Pharo-project] The Cult of Done Manifesto

2011-05-20 Thread Andres Valloud
Statements like just pretend you know what you're doing should raise red flags because it leads to doing anything at all, even it is bad, is good. One might as well forget trying to know in favor of pretending to know, because doing something (anything) makes you right. But of course, no

Re: [Pharo-project] VW's ObjectRegistry similar in Pharo?

2011-05-20 Thread Andres Valloud
I think you want the add: that returns true/false depending on whether the object was there or not. In that way, you can just say add: and forget about includes:. On 5/19/11 15:34 , Mariano Martinez Peck wrote: Hi guys. We are doing graph traversal (for Fuel) and we would love a collection

Re: [Pharo-project] The Cult of Done Manifesto

2011-05-20 Thread Andres Valloud
Agreed. There is a big difference between do something and do it right. But at same time, sometimes, you have to do something first and only then you will know how to do it right. Software development is iterative process. I support the idea of putting effort into doing things, as opposed to

Re: [Pharo-project] System time

2011-05-02 Thread Andres Valloud
are going to get problems like those you get with QueryPerformanceCounter(). Trace through the documentation on the function QueryPerformanceCounter(), the boot switch /usepmtimer, and something called HPET. On 5/2/11 0:49 , Mariano Martinez Peck wrote: On Mon, May 2, 2011 at 12:56 AM, Andres

Re: [Pharo-project] System time

2011-05-02 Thread Andres Valloud
specs mention all sorts of problems when one uses QueryPerformanceCounter(). This is typical MSDN, unfortunately. On 5/2/11 3:56 , Henrik Sperre Johansen wrote: On 02.05.2011 00:56, Andres Valloud wrote: Does the Windows VM depend on QueryPerformanceCounter()? The Cog VM (which it seemed Jimmie

Re: [Pharo-project] System time

2011-05-02 Thread Andres Valloud
The way I read it, each _call_ to timeGetTime should be accurate to within 5 milliseconds. The docs say 5ms or more, depending on the machine, and there is no indication of what affects the precision on the machine. But even if that's irrelevant, your argument assumes nobody else in the

Re: [Pharo-project] System time

2011-05-01 Thread Andres Valloud
Does the Windows VM depend on QueryPerformanceCounter()? On 5/1/11 16:53 , Alexandre Bergel wrote: Strange. I cannot produce this problem on OSX. Alexandre On 30 Apr 2011, at 22:15, Jimmie Houchin wrote: Hello, My OS for this application is Windows. On a freshly opened image, the image

Re: [Pharo-project] I am the only one who finds #assert:equals: oppostite to expected?

2011-04-30 Thread Andres Valloud
I use temporary value names such as expectedAnswer and actualValue. Then I feel there's no confusion. On 4/30/11 7:20 , Mariano Martinez Peck wrote: Hi guys. I always code my tests something like this: testBlah | universalAnswer | universalAnswer := 30. universalAnswer :=

Re: [Pharo-project] I am the only one who finds #assert:equals: oppostite to expected?

2011-04-30 Thread Andres Valloud
When the expected answer is not a literal, then the order is not so important. Usually, complex tests have expected answers that are not literals, and you end up with a method along the lines of expectedAnswer := self doItOneWay. actualAnswer := self doItTheOtherWay. self assert:

Re: [Pharo-project] Preallocation behavior

2011-04-28 Thread Andres Valloud
Maybe in the last case you also need to send nextPut: instead of nextPutAll:... On 4/27/11 23:35 , jannik.laval wrote: Hi all, I am playing with MessageTally, and I have a strange result with prealocation. Here is my example. I am working on a PharoCore1.3, with a VM4.2.5 First of all, I spy

Re: [Pharo-project] Preallocation behavior

2011-04-28 Thread Andres Valloud
As a side comment, I do not know if an atAllPut: method I wrote back in about 2000 or so is still in the image... but if it is not, keep in mind that you can use something like replaceFrom:to:with:startingAt: using the receiver as the source of data, duplicating the amount of data copied each

Re: [Pharo-project] Preallocation behavior

2011-04-28 Thread Andres Valloud
Johansen wrote: On 28.04.2011 09:30, Andres Valloud wrote: As a side comment, I do not know if an atAllPut: method I wrote back in about 2000 or so is still in the image... but if it is not, keep in mind that you can use something like replaceFrom:to:with:startingAt: using the receiver as the source

Re: [Pharo-project] Fwd: [Vm-dev] Re: out of memory - cog on windows

2011-04-23 Thread Andres Valloud
(!pageBase); I don't know gcc compilation flag for address space 2G for 32b apps on 64 bits ? ((MS) /LARGEADDRESSEPACE gcc equivalent ?) Do you know it ? Andres Valloud avall...@smalltalk.comcastbiz.net a écrit dans le message de news: 4db247e5.7020...@smalltalk.comcastbiz.net... Does that mean

Re: [Pharo-project] Fwd: [Vm-dev] Re: out of memory - cog on windows

2011-04-23 Thread Andres Valloud
?) Do you know it ? No idea :) Andres Valloud avall...@smalltalk.comcastbiz.net a écrit dans le message de news: 4db247e5.7020...@smalltalk.comcastbiz.net... Does that mean that, even if your app uses 128mb of RAM, the VM will allocate 512mb of memory regardless? It seems a bit strange

Re: [Pharo-project] Fwd: [Vm-dev] Re: out of memory - cog on windows

2011-04-23 Thread Andres Valloud
configurations, that won't happen unless you change how Windows boots. Under some versions, 4gb is just not possible. See here: http://msdn.microsoft.com/en-us/library/aa366778%28v=VS.85%29.aspx On 4/23/11 15:40 , Igor Stasenko wrote: On 23 April 2011 21:48, Andres Valloud avall

Re: [Pharo-project] Fwd: [Vm-dev] Re: out of memory - cog on windows

2011-04-23 Thread Andres Valloud
/bb613473%28v=VS.85%29.aspx Maybe more fundamental changes are needed, such as the ability to change the image's memory footprint dynamically. On 4/23/11 17:34 , Andres Valloud wrote: You can determine the switches better than me... for us, it was /LARGEADDRESSAWARE, also a linker switch: http

Re: [Pharo-project] out of memory - cog on windows

2011-04-22 Thread Andres Valloud
the HowToBuild note in the vm sources. On Unix, the build tools are here you just need to download the vm sources (see the url in previous documents) and run make. For Mac, I don't have a Mac I don't know Regards, Alain Andres Valloud avall...@smalltalk.comcastbiz.net a écrit dans le message de news

Re: [Pharo-project] Fwd: [Vm-dev] Re: out of memory - cog on windows

2011-04-22 Thread Andres Valloud
Does that mean that, even if your app uses 128mb of RAM, the VM will allocate 512mb of memory regardless? It seems a bit strange that just 1gb worth of allocations would cause problems. What about the load address of the VM and the way the memory chunk is allocated? Has the 32 bit VM been

Re: [Pharo-project] out of memory - cog on windows

2011-04-21 Thread Andres Valloud
Yeah, not all operating systems and application environments are the same. What happens when you let a 512mb image loose in an environment where you have 10 images running on a 4gb machine? Ouch. What happens when you let a 2gb image loose in a 1gb machine and you get an infinite recursion

Re: [Pharo-project] Unexpected behavior of roundTo:

2011-04-09 Thread Andres Valloud
At the end of the day, we still insist on expecting there won't be loss of information just because we wrote a decimal print string for a binary floating point number. One can get offended or irritated all one wants, but the reality of the situation won't change. I think the real solution to

Re: [Pharo-project] Unexpected behavior of roundTo:

2011-04-09 Thread Andres Valloud
On 4/9/11 0:28 , Marcus Denker wrote: On Apr 9, 2011, at 9:09 AM, Andres Valloud wrote: I think the real solution to these problems is to implement decimal floating point as per IEEE-754/2008. \\ The MPFR lib seems to me (as far as I understand) is inspired by IEEE 754 quote from

Re: [Pharo-project] test crashing the cog vm

2011-03-26 Thread Andres Valloud
Immutability may or may not be paid attention to by oneWayBecome:. You can verify the class format, just to have someone in the image change the class of an object. What should you do when you do a become: of a compiled method? What happens when you get the VM to verify and JIT all the

Re: [Pharo-project] Azul Pauseless GC

2011-02-28 Thread Andres Valloud
Is VisualWorks' GC documented somewhere? What kind of documentation do you mean? However, you might want to read the VEE'05 paper directly, the GC they use is 'nothing-like' a typical incremental GC. The read-barrier is the key here, and that is a rather exotic approach due to its constant

Re: [Pharo-project] Azul Pauseless GC

2011-02-28 Thread Andres Valloud
What kind of documentation do you mean? A paper about the GC algorithm, the name of the algorithm? There are some docs that state what happens, the docs come with the VM sources. But, basically, when the IGC is marking, then writes into marked objects mark objects. This allows mark stack

Re: [Pharo-project] Azul Pauseless GC

2011-02-27 Thread Andres Valloud
FWIW, the pauseless feature of the algorithm sounds very close (if not exactly) like VisualWorks' incremental GC, modulo the multithreading. On 2/26/11 9:46 , Stéphane Ducasse wrote: Thanks damien for the link :) Begin forwarded message: Nice explanation of the Azul Pauseless GC (easier

Re: [Pharo-project] linux build stability

2011-02-01 Thread Andres Valloud
In case it helps, I've seen GCC produce different code for function A when I change function B. This can happen even if function B is not in the (reasonably close) execution path of function A. However, the differences I've seen are along the lines of e.g.: using %r10 instead of %r9, or

Re: [Pharo-project] [squeak-dev] Re: new Cog VMs

2011-01-17 Thread Andres Valloud
Or the signal handler functions do not comply with the relevant specifications, e.g.: signal handlers that do not preserve the value of errno, signal handlers that use a function not in the list of approved safe functions you can call from a signal handler as per the Single

Re: [Pharo-project] [squeak-dev] Re: new Cog VMs

2011-01-10 Thread Andres Valloud
Indeed, quite right. I happened to add a flag to turn off the heartbeat so I could debug the crash Matthew was seeing in starting up Squeak4.2-10856-beta.image (since single-stepping through machine code always gets interrupted by the heartbeat, it being an interval timer) and lo and behold the

Re: [Pharo-project] new Cog VMs

2011-01-02 Thread Andres Valloud
That sounds familiar... are there bitfields next to a memory allocation zone boundary? GCC will issue read instructions that read off the bitfield (documented in the manual --- can't really complain), so you can get a segfault reading a bitfield if GCC emits instructions at compile time that

[Pharo-project] Smalltalks 2010 slides and videos now available

2010-12-15 Thread Andres Valloud
Hello, the FAST foundation is happy to announce that the videos and slides from Smalltalks 2010 are now available at http://www.fast.org.ar. Enjoy!

Re: [Pharo-project] Cannot assign a parameter

2010-11-28 Thread Andres Valloud
Wouldn't debugging be harder if arguments could be assigned to? Where would you keep the original argument? If you did that, wouldn't it be more costly to run methods? On 11/28/10 6:36 , Adrian Lienhard wrote: Its an artificial restriction. Method arguments are just like temps, i.e., the

Re: [Pharo-project] Smalltalks 2010

2010-11-26 Thread Andres Valloud
The sessions were recorded, and will become available when we're done going over the video. Stay tuned :). On 11/10/10 2:07 , Torsten Bergmann wrote: Will Smalltalks 2010 in Argentina be recorded to provide the sessions on the web later or streamed to the web similar to ESUG? Thx T.

Re: [Pharo-project] [OffTopoc] Symbol understands value: nice hehehehehhe

2010-10-30 Thread Andres Valloud
Keep in mind that finding senders will be more difficult, and that you may or may not find the code you're looking for later if it is non-standard (e.g.: with the rewrite tool, you will have to search potentially many times to find all occurrences of a certain piece of code). Finally, with

Re: [Pharo-project] [OffTopoc] Symbol understands value: nice hehehehehhe

2010-10-30 Thread Andres Valloud
Mariano, On 10/30/10 13:14 , Mariano Martinez Peck wrote: 100% agree. It was just funny for me, how could I do that, just implementing Synbol value: Just something curious and funny. Not to really use it. I agree with this, polymorphism is awesome. For instance, something I did with

Re: [Pharo-project] [OffTopoc] Symbol understands value: nice hehehehehhe

2010-10-30 Thread Andres Valloud
: - in Mondrian, we use moValue: - in Glamour, we use glamourValue: Using dedicated extensions enable us to control the kinds of semantics we want in the scripting. For example, the glamourValue: is different from moValue:. Cheers, Doru On 30 Oct 2010, at 22:56, Andres Valloud wrote: Mariano, On 10/30/10

[Pharo-project] Fwd: Re: [squeak-dev] How weak finalization affects the performance

2010-10-26 Thread Andres Valloud
Original Message Subject: Re: [squeak-dev] How weak finalization affects the performance Date: Tue, 26 Oct 2010 03:30:13 -0400 From: Andres Valloud avall...@smalltalk.comcastbiz.net Reply-To: andres.vall...@gmail.com andres.vall...@gmail.com, The general-purpose Squeak

Re: [Pharo-project] A Mentoring Course on Smalltalk Code License

2010-10-01 Thread Andres Valloud
I am not sure the code in the book needs a license. After all, eventually you will get the distribution for the source code in question and then you will (should) have an MIT license... does that make sense? On 9/30/10 19:23 , Sean P. DeNigris wrote: Andres Valloud-4 wrote: Well, since

Re: [Pharo-project] A Mentoring Course on Smalltalk Code License

2010-09-26 Thread Andres Valloud
Well, since this discussion is public now :)... exactly what seems to be the problem? The book talks about code that is often in the public Store repository. Is the problem that the code in the public Store repository doesn't have an MIT license? Or is the problem that the book that talks

[Pharo-project] Smalltalks 2010 --- Registration and invitation

2010-09-24 Thread Andres Valloud
INGLES The Fundación Argentina de Smalltalk (FAST) invites you to the 4th Smalltalk Conference of Argentina, to be held on November 11, 12 and 13, 2010 at the Concepción del Uruguay site of the Universidad Tecnológica Nacional. Everyone, including teachers, students, researchers,

[Pharo-project] Smalltalks 2010 Research Track: Call for Papers

2010-07-23 Thread Andres Valloud
** PLEASE EXCUSE US IF YOU RECEIVE MULTIPLE COPIES ** CALL FOR PAPERS SMALLTALKS 2010 4th Argentinian Smalltalk Conference Research Track: Call for Papers November 11th – 13th, 2010 Important dates: Submission (Hard Deadline): September 7th, 2010 (Argentinian time: UTC/GMT -3 hours).

Re: [Pharo-project] Symbol #asClass ?

2010-07-23 Thread Andres Valloud
I don't know if others already voiced this concern, but what happens when the symbol does not resolve unambiguously if there are classes with the same leaf name in different namespaces? On 7/22/10 6:13 , Philippe Marschall wrote: Hi VAST has an #asClass method on Symbol that does more or

Re: [Pharo-project] Hash values

2010-06-02 Thread Andres Valloud
I still think leaving identityHash alone and using scaledIdentityHash to multiply by 2^18 is better for backwards compatibility. However, I do not know how much of a problem changing identityHash will cause for existing code. Something that has always bugged me about changing identityHash is

[Pharo-project] IDE speedup

2009-11-01 Thread Andres Valloud
Hello, While working on hashing, I wrote this bit of new code to speed up some of the tools. I hope I didn't make a mistake... it seems to me it should work fine. Enjoy! Andres. 'From Pharo1.0rc1 of 19 October 2009 [Latest update: #10491] on 1 November 2009 at 4:30:53 pm'! Change Set:

Re: [Pharo-project] IDE speedup

2009-11-01 Thread Andres Valloud
Wonderful --- happy to help! Lukas Renggli wrote: Great. I included your changes in OB. It doesn't seem to break any tests. Lukas 2009/11/2 Andres Valloud avall...@smalltalk.comcastbiz.net: Hello, While working on hashing, I wrote this bit of new code to speed up some of the tools

Re: [Pharo-project] dictionary value is an array?

2009-10-31 Thread Andres Valloud
Watch out, because code like this may or may not work: someDictionary keys do: [:each | each isNotInteresting ifTrue: [someDictionary removeKey: each]] Thus, I think keys should answer a new collection. If the intent is to iterate over the keys, then I'd send the message directly to the

Re: [Pharo-project] Hashed collection improvements: Some code

2009-10-31 Thread Andres Valloud
Ok, I can prepare the checkpointed changesets for Martin's changes then. Stéphane Ducasse wrote: Ok since there were some other discussions I think that andres and martin got a consensus on the solution (I had the impression that the one of martin was prefered). So as soon as the code is

Re: [Pharo-project] Hashed collection improvements: Some code

2009-10-29 Thread Andres Valloud
Nicolas, Would you like Martin's approach better if the selector was #basicIdentityHash instead of #primIdentityHash? Is it a matter of naming only, or is there something else? Andres. Nicolas Cellier wrote: After-thoughts: my opinion is: Martin solution is more pragmatical : it is

Re: [Pharo-project] Hashed collection improvements: Some code

2009-10-29 Thread Andres Valloud
(note that I mentioned Magma just for the sake of illustration for my argument... I do not know whether either approach will affect it) Nicolas Cellier wrote: 2009/10/28 Stéphane Ducasse stephane.duca...@inria.fr: Martin are these changes related to the graphs you sent? I will have a

Re: [Pharo-project] Hashed collection changes, the performance graphs

2009-10-28 Thread Andres Valloud
Stephane et al, Martin and I discussed this yesterday night at the PDX Smalltalk user group meeting. Mostly we agree, with perhaps one small exception. In order to make hashed collections simpler and identity hash handling more straightforward, hashed collections should get a small integer

Re: [Pharo-project] (a = b) = (a hash = b hash)

2009-10-26 Thread Andres Valloud
Nicolas, Where is the balance between expensive hash and expensive collisions ? The cost of collisions is - perform hash and = on each successive keys untill hash is different or = is true Omitting a single byte in a ByteString leads to 256 possible collisions... So with this POV, it is

[Pharo-project] Some bugs I ran into while working on hashing

2009-10-25 Thread Andres Valloud
Hello, are these problems known? I am using the latest RC build. * Create changeset X. Touch method Foobar. Create changeset Y. Touch method Foobar again. Fileout changeset X. The fileout has the code for changeset Y. * Delete the first ! in a changeset with a preamble. Try to load it

Re: [Pharo-project] HashTable vs Dictionary

2009-10-25 Thread Andres Valloud
Quick tests show using #hash instead of #scaledIdentityHash makes the system dictionary need 30% more time to retrieve all its keys. I didn't try adding. The system dictionary size was about 3500. Lukas Renggli wrote: Yeah, that could be a problem. Strangely SystemDictionary is a subclass

Re: [Pharo-project] hashing collections

2009-10-25 Thread Andres Valloud
Watch out for cancellation effects... if the collections are sequenceable and the hash values of their contents are not well distributed, you may end up with performance issues because the hash values cancel each other because the hash function commutes. Consider for example the hash value of

Re: [Pharo-project] (a = b) = (a hash = b hash)

2009-10-24 Thread Andres Valloud
I'd rather make the interval not equal to the array, at least with the message #=. Probably that can't be done safely. If that's the case, I'd say the best approach is to leave it broken but documented in terms of some collections may compare 'reasonably', however, since equality in those

Re: [Pharo-project] (a = b) = (a hash = b hash)

2009-10-24 Thread Andres Valloud
(furthermore, changing Intervalhash to match that of Array in cases like (1 to: SmallInteger minVal) is bound to cause unacceptable performance penalties) Andres Valloud wrote: I'd rather make the interval not equal to the array, at least with the message #=. Probably that can't be done

Re: [Pharo-project] Hashed collection improvements: Some code

2009-10-24 Thread Andres Valloud
Wonderful! I think I can contribute a different kind of brain surgery, I'll try to hack that together in a bit. Martin McClure wrote: OK, here's a filein that improves Pharo hashed collection performance quite a bit. Large collections are much faster, and small ones are pretty much the

Re: [Pharo-project] (a = b) = (a hash = b hash)

2009-10-24 Thread Andres Valloud
Nicolas, Yes, large Array hash has severe performance penalty anyway. Maybe we shall not hash each and every element. I disagree. The issue is that if hashing a very large array (or string) becomes a performance problem, then we should engineer applications so that we hash the metadata

Re: [Pharo-project] Perfect hash [was: Re: HashTable vs Dictionary]

2009-10-22 Thread Andres Valloud
Igor et al, Let me simplify the goal of perfect hashing: - suppose you having N unique integer numbers, without strictly specified range (any number could lie in range 0..infinity). - now we need to find a function such that, for each element 'x' in the above finite set, following conditions

Re: [Pharo-project] HashTable vs Dictionary

2009-10-22 Thread Andres Valloud
The nice way of doing this would be to have a layer of indirection so that the storage strategy decides how to use the hashed storage. However, compared to the current Set/Dictionary implementation, that may be a bit slower. It would not be a terrific idea to have multiple subclasses of

Re: [Pharo-project] Perfect hash [was: Re: HashTable vs Dictionary]

2009-10-22 Thread Andres Valloud
... Andres. Martin McClure wrote: Andres Valloud wrote: I thought I'd point out a subtle potential problem. Assume N = 1000, f(x_j) = j-1, and so k = 1 because 0 = f(x_j) N because 0 j = 1000. Now, store x_{7i} in a Set, for all i such that 1 = 7i = 1000. Clearly, f(x) is a perfect hash

Re: [Pharo-project] HashTable vs Dictionary

2009-10-21 Thread Andres Valloud
Igor et al, That's why each of implementations (Dictionary and HashTable) having own niche. For small sizes, dictionaries in their current state is best. For bigger sizes, one could choose to use HashTable, or any other implementation, which may fit better. As long as this refers to

Re: [Pharo-project] HashTable vs Dictionary

2009-10-20 Thread Andres Valloud
In general terms, open addressing with linear probing should tie or beat chaining. For this to happen, the hash function used must be of high quality. If chaining is beating open addressing with linear probing, I'd strongly suspect that the hash function used is producing significant

Re: [Pharo-project] HashTable vs Dictionary

2009-10-20 Thread Andres Valloud
Martin, You are, of course, correct. Well yes, thank you :), but it also helps when good, qualified people go over one's assertions to make sure they're not wrong. -- First, the identity-based collections. The current IdentitySet and IdentityDictionary implementations do

Re: [Pharo-project] Stef's name in LaTeX

2009-09-27 Thread Andres Valloud
Hmmm... just off the top of my head, I think that would be Dr.~St\'ephane Ducasse The ~ is there to tell LaTeX that yes, there's a period, but it's not an end of sentence period, so don't treat the separation between the period and the S as a flexible space. Andres. Schwab,Wilhelm K wrote:

[Pharo-project] [ANN] Smalltalks 2009 / FAST website

2009-09-18 Thread Andres Valloud
Greetings, The Fundación Argentina de Smalltalk, FAST :), is pleased to announce the Smalltalks 2009 website. The address is http://www.fast.org.ar Enjoy! Andres. ___ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr

Re: [Pharo-project] Morph extension

2009-09-16 Thread Andres Valloud
OOoohhh... I remember doing similar hacks in Squeak... it's been quite a while since I was familiar with the code, but I thought I'd mention this in case it helps. Today, I get the impression that, more than properties, what morphs need are policy objects. In that way, acting as a response

[Pharo-project] [ANN] Smalltalks 2009 - Third Smalltalk Conference of Argentina

2009-08-22 Thread Andres Valloud
Argentina's third Smalltalk conference, Smalltalks 2009, will be held from November 19th through November 21rd at the Facultad de Ciencias Exactas y Naturales (FCEyN), Universidad de Buenos Aires (UBA). All those connected with Smalltalk, be it faculty, students, researchers, developers or

Re: [Pharo-project] [ANN] Fundamentals volume 1

2009-08-15 Thread Andres Valloud
Yes, I plan to take some with me :). Andres. Henrik Sperre Johansen wrote: On 15.08.2009 04:29, Andres Valloud wrote: Hello, I just published the 400 page book Fundamentals of Smalltalk Programming Technique, volume 1. To some extent it's fitting that I am publishing another book

[Pharo-project] [ANN] Fundamentals volume 1

2009-08-14 Thread Andres Valloud
Hello, I just published the 400 page book Fundamentals of Smalltalk Programming Technique, volume 1. To some extent it's fitting that I am publishing another book this time of the year. I started writing the Mentoring Course book (of which the Hash book was chapter 7) almost 4 years ago. The

Re: [Pharo-project] [ANN] Fundamentals volume 1

2009-08-14 Thread Andres Valloud
The content is pretty much dialect agnostic. It does reference VisualWorks every so often, but only for the sake of illustration. Henry Lenzi wrote: On Fri, Aug 14, 2009 at 11:29 PM, Andres Valloudavall...@smalltalk.comcastbiz.net wrote: Hello, I just published the 400 page book

Re: [Pharo-project] Extending # to compare all numbers

2009-08-12 Thread Andres Valloud
Just briefly... I'd keep the base numbers simple while leaving the door open for optional, loadable packages to extend comparisons as necessary. IMO, matching the capabilities of C (integers, floating point) plus fractions should be sufficient for a base system. If not, there is the risk of

Re: [Pharo-project] optimizing select:thenCollect:

2009-07-16 Thread Andres Valloud
I'd favor removing such methods. The allocation optimization can be implemented better whenever it's needed, and IME it doesn't happen that often. Stéphane Ducasse wrote: so in that case I would be in favor to remove them because this does not help and just bloat the image. On Jul 16,

Re: [Pharo-project] Issue 940: (13/10) = 1.3 returns false

2009-07-09 Thread Andres Valloud
Stephane, Computer float numbers are NOT math float numbers. Let us accept it. I agree with your sentiment. At the risk of being overly precise, I'd state that computer float numbers are not our everyday decimal numbers. I'd avoid the reference to math because computer floating point

Re: [Pharo-project] Issue 940: (13/10) = 1.3 returns false

2009-07-09 Thread Andres Valloud
Regarding the == instead of =, the only thing I can think of is identity checking of small integers, where in VW you get some improvement by using == instead of =. IIRC, I measured 25% faster in a loop that just did == as opposed to =. But, of course, using that kind of code is asking for

Re: [Pharo-project] NaN thoughts (Was: Re: Issue 940: (13/10) = 1.3 returns false)

2009-07-08 Thread Andres Valloud
Would NaN be polymorphic with floats? Igor Stasenko wrote: Btw, Nicolas, in some past, i have proposed to exclude NaN from Float(s) at all by making: NaN is a singleton instance of class NotANumber and change all VM floating point primitives to return such singleton in case if computation

Re: [Pharo-project] NaN thoughts (Was: Re: Issue 940: (13/10) = 1.3 returns false)

2009-07-08 Thread Andres Valloud
Well, but on the other hand, what happens when you do things like 1.0 + NaN or NaN + 1.0? It should work... Igor Stasenko wrote: 2009/7/8 Andres Valloud avall...@smalltalk.comcastbiz.net: Would NaN be polymorphic with floats? Do you mean , be a part of Number/Float class hierarchy

Re: [Pharo-project] NaN thoughts (Was: Re: Issue 940: (13/10) = 1.3 returns false)

2009-07-08 Thread Andres Valloud
FWIW... VW has two choices... a) fail the primitives when the answer is INF or NaN, or b) return whatever the FPU says. Also, NaN and INF are regular instances of Float and Double... Reinout Heeck wrote: On Jul 8, 2009, at 12:53 PM, Andres Valloud wrote: Well, but on the other hand

Re: [Pharo-project] NaN thoughts (Was: Re: Issue 940: (13/10) = 1.3 returns false)

2009-07-08 Thread Andres Valloud
would you do? Nicolas Cellier wrote: 2009/7/8 Andres Valloud avall...@smalltalk.comcastbiz.net: FWIW... VW has two choices... a) fail the primitives when the answer is INF or NaN, or b) return whatever the FPU says. Also, NaN and INF are regular instances of Float and Double... What

Re: [Pharo-project] Issue 940: (13/10) = 1.3 returns false

2009-07-08 Thread Andres Valloud
What do we mean when we write 1.3 in a computer language, most of the time? Again, looking at VW just because I'm most familiar with it these days, doubles (what Squeak calls floats) are written as 1.3d. Floats (single precision IEEE-754) are written 1.3, but can also be written 1.3e. Hernan

Re: [Pharo-project] Issue 940: (13/10) = 1.3 returns false

2009-07-08 Thread Andres Valloud
Fortunately, there's a standard for floating point arithmetic... hopefully we'll get hardware support for decimal floating point some day --- although I can see how somebody might complain because 12765275237652375367328763862.34876387628726872368276823 got rounded to

Re: [Pharo-project] Issue 940: (13/10) = 1.3 returns false

2009-07-08 Thread Andres Valloud
David Goehrig wrote: IEEE754 run contrary to all of my 18 years of sudying math and using rational numbers. I find that a bit difficult to accept because numerical analysis courses in colleges and universities describe floating point arithmetic as a basis for the material. Really: without

Re: [Pharo-project] Issue 940: (13/10) = 1.3 returns false

2009-07-08 Thread Andres Valloud
This kind of approach will introduce discontinuity problems when the FPU is asked to calculate sin(x) when x is close to zero... IME, most platforms offer a different answer to that kind of stuff. IIRC, SGI was the only platform I found with natural tan(x) behavior. If you introduce better

Re: [Pharo-project] Issue 940: (13/10) = 1.3 returns false

2009-07-07 Thread Andres Valloud
Hernan, floating point values are fractions of the form +/- m * 2^k for positive integers m of up to a certain number of bits. Your example requires 13/10 = m * 2^k which is not possible. In slow motion... 2^k = 13/10m To get rid of 13, m must be 13*n... 2^k = 1/10n Now, 1/10 = 1/5 *

Re: [Pharo-project] Issue 940: (13/10) = 1.3 returns false

2009-07-07 Thread Andres Valloud
VisualWorks introduced LimitedPrecisionRealasFraction. That message returns the actual floating point value represented by the receiver. Of course, I messed up and forgot * self sign... but that's the idea (and it's fixed for 7.7). So, in reality, you should compare 13/10 = 1.3 asFraction

Re: [Pharo-project] Issue 940: (13/10) = 1.3 returns false

2009-07-07 Thread Andres Valloud
are fractions, then r1 ~= r2 but r1 = f and r2 = f. And those do exist... Andres. Stéphane Ducasse wrote: so andres what will be the value of (13/10) = 1.3 in VW7.7 On Jul 7, 2009, at 11:18 PM, Andres Valloud wrote: VisualWorks introduced LimitedPrecisionRealasFraction

Re: [Pharo-project] Issue 940: (13/10) = 1.3 returns false

2009-07-07 Thread Andres Valloud
Nicolas 2009/7/7 Andres Valloud avall...@smalltalk.comcastbiz.net: VisualWorks introduced LimitedPrecisionRealasFraction. That message returns the actual floating point value represented by the receiver. Of course, I messed up and forgot * self sign... but that's the idea (and it's fixed

Re: [Pharo-project] Issue 940: (13/10) = 1.3 returns false

2009-07-07 Thread Andres Valloud
Il y a même une infinité de Fractions r telles que f-0.5*ulp r f+0.5ulp Yes... find two with small integer numerators and denominators... bonus points if you find fractions with small smallIntegers, too. Anyway, Andres, tell me what how you can bear this VW behaviour I exposed to

Re: [Pharo-project] Issue 940: (13/10) = 1.3 returns false

2009-07-07 Thread Andres Valloud
The VW tests use something along the lines of self assert: aResult isWithin: anInteger ulpsFrom: anExpectedValue Igor Stasenko wrote: As a compromise, i propose adding: FloatisAlmostZero ^ self abs Epsilon And write tests like: (13/10) = 1.3 in form: ((13/10) - 1.3) isAlmostZero

  1   2   >