Oops, forgot reply all.
On 26 Sep 2007, at 23:53 , Adrian Kuhn wrote:
> On 26 Sep 2007, at 18:30 , Tudor Girba wrote:
>> As for Meta and Hapax, Adrian said that he reserves the right to
>> license them and that we should discuss about it after we get the
>> agreement with the Unibe. But, in a follow up mail he changed his
>> mind and said that "if we come to some nice agreement with Univ its
>> okay to license these two bundles under BSD". I must admit that I am
>> a bit confused, but perhaps this was just another misunderstanding :)
> It is the same I wrote in my mail back then
>> All these are issues I'd like to be addresses and taken into account
>> when officially (re)licensing Moose now. Personally I would prefer to
>> have a license that allows us to be more specific about what we
>> consider to be fair use. But I am not strictly against BSD as well,
>> it would be even okay for me to license Meta as such if we find to
>> some agreement that ensures fairness for all involved parties
> and that still applies.
On 26 Sep 2007, at 16:33 , Orla Greevy wrote:
>>> In my opinion we should aim to be as flexible as the Java world
>>> e.g. Checkstyle, tomcat, etc.
>> I do not understand.
> In the case of the above mentioned tools, they can be used by
> anyone in any context, i.e. commerical or non commerical.
Which are usually under GPL or compatible. GPL has the nice property
that any non-commercial contributer can be sure no one will ever
commercialize his contributions; but still any commercial user can
use it or sell services on top of it, and in case of LGPL even build
products on top of it. My concern as researcher is that BSD does
fully satisfy the interest of non-commercial contributers in the same
way. Maybe that got lost in all the rant with Doru.
I saw that you removed Collection>>separatedBy: from CodeFoo. I
thought this was a nice method, and I looked for other similar
methods to use, but I cannot seem to find the right one.
What am I missing?
"Value is always contextual."
I am a new mooser, I am working on a Smalltalk project with VisualWorks. I am trying to write a unit test but I have a problem: I have not possibility to run and to step my test because I don't have the tools for it. Nevertheless, I have loaded the package StefFoo, my test class inherites from SUnit.TestCase.
What did I forget to run my tests?
Hey Stef, dear Moosers,
there is a new implementation of lazy (or dynamic, as I call them
now) inst vars for Moose. The new implementation is not based an wide
classes, but on anonymous subclasses, and includes very strict sanity
checks to guarantee type safety and Smalltalk's language model.
You may only extend a base class with an inst var, iff
name isSymbol not.
name allSatisfy: #isLetter.
(case allInstVarNames includes: name) not.
class canUnderstand: name asSymbol.
class canUnderstand: (name copyWith: $:) asSymbol.
and you must implement the accessors in the class as follows
class >> foo
^self dynamicInstVarNamed: 'foo'
class >> foo: value
self dynamicInstVarNamed: 'foo' put: value
with this setup, we can guarantee that no tool is broken, neither the
browser, nor inspector and debugger or senders- and implementors-of.
Except for the first write access, access time on an dynamic instance
variable is guaranteed to be the same as for "normal" instance
Please refer to DynamicInstVars and DynamicInstVarsTest on SCG Store,
for a first draft implementation.
You are right.
On 3 Sep 2007, at 10:24 , Oscar Nierstrasz wrote:
> Aren't these emails supposed to be going to the moose-dev list?
> They are all being sent to scg-staff now.
> On Sep 3, 2007, at 10:10, Bergel, Alexandre wrote:
>>> Why touch the compiler, when two simple methods in Object can do
>>> the same?
>> If WideClass is just an optimisation, then I should write my code
>> as if this mechanism is not present. Moreover, using a kind of
>> annotation mechanism will make legacy code to benefit from WideClass.
>>> Also, when lazy inst vars are part of the class def, again we run
>>> into the limitation that they can not be a package extension.
>>> This is one of the needs we do have in Moose.
>> As far as I understand, an ideal implementation of WC will have to
>> be in the VM. And this, for the same reason that lazy evaluation
>> in Haskel is implemented in the VM.
>> Alexandre Bergel http://www.bergel.eu
As ESUG was so inspiring, I could not resist some VW hacking on the
If you browse to WideClass and WideClassTest on SCG Store, there is a
simple implementation of wide classes. As we have tons of empty inst
vars in moose models, that might help us to save some megas on large
How to use it?
Sending #wide:put: to any object will install an instance var and
accessors on the receiver instance.
o := Object new.
o wide: #foo put: 4.
and even better, if you implement #foo and #foo: as follows
foo: arg self wide: #foo put: arg
upon first execution of #foo: the foo inst var is installed and both
methods get properly overriden with simple accessors. There is no DNU
Hope you have some fun playing around with it!
As I mentioned during the moose workshop we would like to get your
evaluation of our ideas.
I would really like if you could perform the experiment described at: