Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[EVALUATION] - E03e - The Ruby Object Model (Summary)

5 views
Skip to first unread message

Ilias Lazaridis

unread,
Apr 21, 2005, 8:34:21 AM4/21/05
to
[EVALUATION] - E03d - The Ruby Object Model (End Game)
http://groups-beta.google.com/group/comp.lang.ruby/msg/ea9da543dc256b42

-

The above thread has led to this code:

class Class
def Meta()
@Meta ||= (class<<self;self;end)
end
end

which is modified here to:

class Object
def sso()
@sso ||= (class<<self;self;end) # see code below
end
end

simplified:
def sso()
unless @sso
@sso = (class<<self; self; end) #
end
@sso
end

-

sso = Specializing Singleton Object

-

The sso contains definitions (methods, attributes, constants) which
specialize the behaviour of its carrying object.

The "sso" of a "class object" is used to specialize the behaviour of the
class (against Class).

-

The sso's are essentially internal implementation details, although they
are accessible (see code above).

The sso's are _not_ part of the Ruby Object Model (e.g. inheritance
hierarchy).

-
-
-

As stated before, the following documentation is false:

cmd:> ri Class

"Classes, modules, and objects are interrelated. In the diagram that
follows, the arrows represent inheritance, and the parentheses
meta-classes. All metaclasses are instances of the class `Class'."

+------------------+
| |
Object---->(Object) |
^ ^ ^ ^ |
| | | | |
| | +-----+ +---------+ |
| | | | |
| +-----------+ | |
| | | | |
+------+ | Module--->(Module) |
| | ^ ^ |
OtherClass-->(OtherClass) | | |
| | |
Class---->(Class) |
^ |
| |
+----------------+

-

a) The term "meta-classes" is false.
Correction: "specializing-singleton-objects"

b) vertical arrows do not represent inheritance
e.g.: Object---->(Object)
Correction: Object-----(Object)

c) the classes in "()" do not belong to the object model
Correction: remove (showcase sso in seperate topic)

-
-
-

My final questions are basicly:

* Ruby is OO. Why is the sso not directly accessible?

* Who has written the "ri Class" documentation?

* Can I expect an apology for this false documentation?

-
-
-

http://lazaridis.com/case/lang/ruby

.

--
http://lazaridis.com

Austin Ziegler

unread,
Apr 21, 2005, 9:29:17 AM4/21/05
to
[Fair warning to those who plan on emailing me regarding this
response. I'll be ignoring you. I am posting this to make sure that
there is a public refutation to Ilias's incorrect statements below.
-a]

On 4/21/05, Ilias Lazaridis <il...@lazaridis.com> wrote:
> As stated before, the following documentation is false:

Stated incorrectly. The documentation is, in fact, correct. It
doesn't mesh with UML, perhaps, and it doesn't mesh with your
limited capacity for understanding, but that doesn't make it
incorrect.

Metaclass -- singleton class, virtual class, or whatever you wish to
call it -- is something that doesn't mesh well with standard object
notations. You are the first person that I've seen in three and a
half years to suggest that they don't understand this documentation
once they've started playing with the capabilities of Ruby and
understanding the practical means by which the object model is
supported in the language. As others have pointed out -- with lots
of supporting code -- it is not the documentation which is wrong
here.

[...]

> a) The term "meta-classes" is false.
> Correction: "specializing-singleton-objects"

It is not false. It is, perhaps, over used in a variety of terms. It
is "meta" in terms of Ruby objects. Your term may be more useful in
the future, but I have my doubts. As Class is an Object, a MetaClass
is a MetaObject ;)

> b) vertical arrows do not represent inheritance
> e.g.: Object----> (Object)
> Correction: Object-----(Object)

Those are horizontal, not vertical. It is also one of those things
that, as others have pointed out, is not *quite* as *you* understand
it. Metaobjects don't show up in the public inheritance hierarchy,
but that makes them no less real.

> c) the classes in "()" do not belong to the object model
> Correction: remove (showcase sso in seperate topic)

This is incorrect. The metaobjects/metaclasses shown in the diagrams
are essential, if not normally visible, parts of the Ruby Object
Model. I do not believe that this is just an implementation detail,
as it is exposed to the language for use.

> My final questions are basicly:
> * Ruby is OO. Why is the sso not directly accessible?

The metaobjects/metaclasses are not directly accessible because Matz
has chosen not to make them directly accessible. There is an RCR
which recommends the creation of a method to make this easily and
directly accessible because Ruby developers have discovered the
value and utility that these metaobjects have. There is significant
disagreement on the name of what this method should be. However, as
Why the Lucky Stiff has demonstrated, it's a no-brainer for users to
develop this single method themselves -- and he's even written it
for them to copy or use as they please.

> * Who has written the "ri Class" documentation?

Matz wrote the essentials. I don't think that anyone knows the Ruby
object model better than he.

> * Can I expect an apology for this false documentation?

Given that the docuemntation isn't false, no. Of course, even if you
*were* correct and the documentation was false, I suspect that you'd
get an apology only if hell is endothermic. And, as we all know,
it's exothermic. (Either that, or you'll get your apology after all
atomic motion has stopped because.)

-austin
--
Austin Ziegler * halos...@gmail.com
* Alternate: aus...@halostatue.ca

James Edward Gray II

unread,
Apr 21, 2005, 9:38:19 AM4/21/05
to
On Apr 21, 2005, at 7:39 AM, Ilias Lazaridis wrote:

> b) vertical arrows do not represent inheritance
> e.g.: Object---->(Object)
> Correction: Object-----(Object)

Pretty sure you mean "horizontal arrows" not "vertical arrows".

> My final questions are basicly:
>
> * Ruby is OO. Why is the sso not directly accessible?

You've posted code in this message showing how to access an "sso".

James Edward Gray II

Ilias Lazaridis

unread,
Apr 21, 2005, 9:57:13 AM4/21/05
to
James Edward Gray II wrote:
> On Apr 21, 2005, at 7:39 AM, Ilias Lazaridis wrote:
>
>> b) vertical arrows do not represent inheritance
>> e.g.: Object---->(Object)
>> Correction: Object-----(Object)
>
> Pretty sure you mean "horizontal arrows" not "vertical arrows".

yes, of course.

my apologies.

>> My final questions are basicly:
>>
>> * Ruby is OO. Why is the sso not directly accessible?
>
> You've posted code in this message showing how to access an "sso".

which is an indirection.

My question contains "directly".

[please no more harisplitting]

> James Edward Gray II

.

--
http://lazaridis.com

Trans

unread,
Apr 21, 2005, 10:03:57 AM4/21/05
to
So it's "sso" now, ey? A small step to "sos", and then on to "sob" ;-)

Henrik Horneber

unread,
Apr 21, 2005, 10:15:48 AM4/21/05
to

>>> My final questions are basicly:
>>>
>>> * Ruby is OO. Why is the sso not directly accessible?
>>
>>
>> You've posted code in this message showing how to access an "sso".
>
>
> which is an indirection.
>
> My question contains "directly".
>
> [please no more harisplitting]
>


Strange, first you complain about somebody else not following your
question word-by-word, and next sentence you complain about
hairsplitting. Pot. Kettle. Black. And just in case you don't know that
phrase, the german equivalent'd be "Wer im Glashaus sitzt, sollte keine
Steine werfen." (Your website is registered in Germany and your
snail-mail address is german).

So, to come back to topic, maybe you should define "directly" first?

You can access your so called "sso"s from within Ruby, without
resorting to third party libraries or low level C code. That is
"direct", in my book at least.Just because you don't like the syntax
_how_ you can access them doens't mean they're not readily accessible,
as numerous posters before have answered already. And you even got a
"direct" answer to your question, from Austin Ziegler

---8<-----


The metaobjects/metaclasses are not directly accessible because Matz
has chosen not to make them directly accessible. There is an RCR
which recommends the creation of a method to make this easily and
directly accessible because Ruby developers have discovered the
value and utility that these metaobjects have. There is significant
disagreement on the name of what this method should be. However, as
Why the Lucky Stiff has demonstrated, it's a no-brainer for users to
develop this single method themselves -- and he's even written it
for them to copy or use as they please.

---8<-----

So. There. Respect somebody investing time to answer by at least reading
the answers.


Ilias Lazaridis

unread,
Apr 21, 2005, 10:28:42 AM4/21/05
to
Henrik Horneber wrote:
>>>> My final questions are basicly:
>>>> * Ruby is OO. Why is the sso not directly accessible?
>>>
>>> You've posted code in this message showing how to access an "sso".
>>
>> which is an indirection.
>>
>> My question contains "directly".
>>
>> [please no more harisplitting]
>
> Strange, first you complain about somebody else not following your
[...] - (even more hairsplitting)

I hope the responsible person has more courage.

.

--
http://lazaridis.com

Tanner Burson

unread,
Apr 21, 2005, 10:35:39 AM4/21/05
to
> [...] - (even more hairsplitting)
>
> I hope the responsible person has more courage.
>

Since you are no longer contributing to this thread, and have been
given the answers you requested. This thread is closed, please
refrain from posting further in it.

[thread closed]
--
===Tanner Burson===
tanner...@gmail.com
http://tannerburson.com <---Might even work one day...

Ilias Lazaridis

unread,
Apr 21, 2005, 10:40:22 AM4/21/05
to
Austin Ziegler wrote:
> [Fair warning to those who plan on emailing me regarding this
> response. I'll be ignoring you. I am posting this to make sure that
> there is a public refutation to Ilias's incorrect statements below.
> -a]
>
> On 4/21/05, Ilias Lazaridis <il...@lazaridis.com> wrote:
>
>>As stated before, the following documentation is false:
>
> Stated incorrectly. The documentation is, in fact, correct. It
[...] - (babbling, justifying, talkaround)

the documentation is false.

see below.

>>a) The term "meta-classes" is false.
>>Correction: "specializing-singleton-objects"
>
> It is not false.

[...] - (babbling, justifying, talkaround)

"meta-classes" is completely false.

possibly you believe this one more:

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/40537

>>b) vertical arrows do not represent inheritance
>>e.g.: Object----> (Object)
>>Correction: Object-----(Object)
>
> Those are horizontal, not vertical.

ok, my mistake.

I apologize.

> It is also one of those things

[...] - (babbling)

please focus.

ri Class states: "the arrows represent inheritance"

but: the _horizontal_ arrows do _not_ represent inheritance.

this is a simple, clear and undoubtable error.

>>c) the classes in "()" do not belong to the object model
>>Correction: remove (showcase sso in seperate topic)
>
> This is incorrect. The metaobjects/metaclasses shown in the diagrams
> are essential, if not normally visible, parts of the Ruby Object
> Model.

This is false, see below

> I do not believe that this is just an implementation detail,
> as it is exposed to the language for use.

what you believe is irrelevant.

reality counts.

and (especially for you) possibly this here:

http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/40548

>>My final questions are basicly:
>>* Ruby is OO. Why is the sso not directly accessible?
>
> The metaobjects/metaclasses are not directly accessible because Matz
> has chosen not to make them directly accessible.

[...]

I see.

>>* Who has written the "ri Class" documentation?
>
> Matz wrote the essentials.

what do you mean by "essentials"?

Is Mr. Matsumoto the author of the "ri Class" content or not?

> I don't think that anyone knows the Ruby
> object model better than he.

"knowing" means not in the same time "ability to communicate".

>>* Can I expect an apology for this false documentation?
>
> Given that the docuemntation isn't false, no.

[...] - (babbling)

This question target's the responsible person.

.

--
http://lazaridis.com

Tanner Burson

unread,
Apr 21, 2005, 10:55:36 AM4/21/05
to
On 4/21/05, Ilias Lazaridis <il...@lazaridis.com> wrote:
> Austin Ziegler wrote:
> > [Fair warning to those who plan on emailing me regarding this
> > response. I'll be ignoring you. I am posting this to make sure that
> > there is a public refutation to Ilias's incorrect statements below.
> > -a]
> >
> > On 4/21/05, Ilias Lazaridis <il...@lazaridis.com> wrote:
> >
> >>As stated before, the following documentation is false:
> >
> > Stated incorrectly. The documentation is, in fact, correct. It
> [...] - (babbling, justifying, talkaround)
>
> the documentation is false.
>
> see below.
[...] - (repeating questions already answered)

>
> >>b) vertical arrows do not represent inheritance
> >>e.g.: Object----> (Object)
> >>Correction: Object-----(Object)
> >
> > Those are horizontal, not vertical.
>
> ok, my mistake.
>
> I apologize.

[...] - (repeating questions already answered)


>
> > I do not believe that this is just an implementation detail,
> > as it is exposed to the language for use.
>
> what you believe is irrelevant.
>
> reality counts.
>

what you believe to be reality is irrelevant.
the opinions of those actually using the language on a daily basis for
real applications, counts.
the opinions of those glancing across the language without attempting
to use it, is rrelevant.


>
> >>* Who has written the "ri Class" documentation?
> >
> > Matz wrote the essentials.
>
> what do you mean by "essentials"?

Possibly this will help?
http://dictionary.reference.com/search?q=essentials


>
> Is Mr. Matsumoto the author of the "ri Class" content or not?
>
> > I don't think that anyone knows the Ruby
> > object model better than he.
>
> "knowing" means not in the same time "ability to communicate".
>

have you attempted communication with him? if so please provide
transcripts or links of this.

> >>* Can I expect an apology for this false documentation?
> >
> > Given that the docuemntation isn't false, no.
> [...] - (babbling)
>
> This question target's the responsible person.
>

responsible for what? providing documentation you are incapable of
understanding?

> ..
>
> --
> http://lazaridis.com

Lyndon Samson

unread,
Apr 21, 2005, 11:17:28 AM4/21/05
to
On 4/22/05, Tanner Burson <tanner...@gmail.com> wrote:
> > [...] - (even more hairsplitting)
> >
> > I hope the responsible person has more courage.
> >
>
> Since you are no longer contributing to this thread, and have been
> given the answers you requested. This thread is closed, please
> refrain from posting further in it.
>

Crikey, I woke up one morning and ruby-talk was a dictatorship...

:-)

--
Into RFID? www.rfidnewsupdate.com Simple, fast, news.

Alan Garrison

unread,
Apr 21, 2005, 11:24:50 AM4/21/05
to
Lyndon Samson wrote:

>Crikey, I woke up one morning and ruby-talk was a dictatorship...
>
>:-)
>
>
>

"I didn't know we had a king. I thought we were an autonomous collective."

The various Ilias threads are funnier if you envision the "Argument
Sketch" from Flying Circus while reading them...

--
Alan Garrison
Cronosys, LLC <http://www.cronosys.com>
Phone: 216-221-4600 ext 308


Yukihiro Matsumoto

unread,
Apr 21, 2005, 11:46:27 AM4/21/05
to
Hi,

In message "Re: [EVALUATION] - E03e - The Ruby Object Model (Summary)"


on Thu, 21 Apr 2005 23:29:31 +0900, Ilias Lazaridis <il...@lazaridis.com> writes:

|I hope the responsible person has more courage.

I may be the responsible person.

I assume your question is why there's no method to obtain singleton
class (per object hidden class), right? That's because I see no real
"need" for it.

Besides seeing no real need, such method is highly connected to the
current implementation. Future Ruby (or different implementation of
Ruby interpreter) may want to choose other strategy, for example,
creating a temporary class-like object to manipulate singleton
methods, then update internal object structure according to that
class-like object. Under the implementation like this, a method to
obtain singleton class has no meaning.

Anyway, for your information, David Alan Black is in the process of
persuading me to add such a method.

matz.


Ilias Lazaridis

unread,
Apr 21, 2005, 12:00:17 PM4/21/05
to

ISBO = Instance Specific Behaviour Object

dvto = Dedicated Virtual Table Object

dvco = Dedicated Virtual Class Object

dvc = Dedicated Virtual Class

...


.

--
http://lazaridis.com

Tanner Burson

unread,
Apr 21, 2005, 11:56:03 AM4/21/05
to
On 4/21/05, Ilias Lazaridis <il...@lazaridis.com> wrote:

introduction of more confusing non-standard acronyms for your
understanding will do nothing but confuse the issue at hand.

please remain on-topic and discontinue this line of off-topic communication.

have you also decided not to reply to my above comments?
this is considered rude, and should be stopped. again, i must insist
this thread is closed and you should refrain from further off-topic
discussions in it.

Ilias Lazaridis

unread,
Apr 21, 2005, 12:16:46 PM4/21/05
to
Yukihiro Matsumoto wrote:
> Hi,
>
> In message "Re: [EVALUATION] - E03e - The Ruby Object Model (Summary)"
> on Thu, 21 Apr 2005 23:29:31 +0900, Ilias Lazaridis <il...@lazaridis.com> writes:
>
> |I hope the responsible person has more courage.
>
> I may be the responsible person.

"may be" is not an answer that I would expect from an PL designer.

> I assume your question is why there's no method to obtain singleton
> class (per object hidden class), right?

You find my 3 questions within the original message of this thread.

Could you please have the courtesy to reply there?

> That's because I see no real "need" for it.

I see.

> Besides seeing no real need, such method is highly connected to the
> current implementation. Future Ruby (or different implementation of
> Ruby interpreter) may want to choose other strategy, for example,
> creating a temporary class-like object to manipulate singleton
> methods, then update internal object structure according to that
> class-like object. Under the implementation like this, a method to
> obtain singleton class has no meaning.

There's something that irritates me with all this.

But I'm not sure what.

> Anyway, for your information, David Alan Black is in the process of
> persuading me to add such a method.

I don't know "David Alan Black".

But: not he should 'pursuade' you to add such a method.

Rationality should do.

> matz.

.

--
http://lazaridis.com

Yukihiro Matsumoto

unread,
Apr 21, 2005, 12:23:18 PM4/21/05
to

In message "Re: [EVALUATION] - E03e - The Ruby Object Model (Summary)"
on Fri, 22 Apr 2005 01:04:56 +0900, Ilias Lazaridis <il...@lazaridis.com> writes:

|You find my 3 questions within the original message of this thread.
|Could you please have the courtesy to reply there?

> * Who has written the "ri Class" documentation?

I wrote the original figure. The documentation is not by me, but by
the English doc team members.

> * Can I expect an apology for this false documentation?

I'm not sure how much useful an apology can be, but you can. I feel
sorry that you've misunderstood.

|I don't know "David Alan Black".
|
|But: not he should 'pursuade' you to add such a method.
|
|Rationality should do.

You don't have to worry about him to force me to add it without
rationality.

matz.


Ilias Lazaridis

unread,
Apr 21, 2005, 12:43:35 PM4/21/05
to

dsc = dedicated singleton class

sco = singleton class object

asco = attached singleton class object

"singleton instance" = the one and only instance
"singleton method" = a method, exclusively for one instance
"singleton class" = a class, exclusively for one instance

=>

sco = Singleton class object

sc = Singleton class

s = singleton

=> <object>.singleton

=> <object>.singletonClass

obj.class
obj.class_singleton
obj.singleton_class

> introduction of more confusing non-standard acronyms for your
> understanding will do nothing but confuse the issue at hand.

???

> please remain on-topic and discontinue this line of off-topic communication.

what ???

> have you also decided not to reply to my above comments?
> this is considered rude, and should be stopped. again, i must insist
> this thread is closed and you should refrain from further off-topic
> discussions in it.

please.

get serious.

.

--
http://lazaridis.com

Ilias Lazaridis

unread,
Apr 21, 2005, 12:56:07 PM4/21/05
to
Yukihiro Matsumoto wrote:
> In message "Re: [EVALUATION] - E03e - The Ruby Object Model (Summary)"
> on Fri, 22 Apr 2005 01:04:56 +0900, Ilias Lazaridis <il...@lazaridis.com> writes:
>
> |You find my 3 questions within the original message of this thread.
> |Could you please have the courtesy to reply there?
>
>>* Who has written the "ri Class" documentation?
>
> I wrote the original figure. The documentation is not by me, but by
> the English doc team members.

where can I find a list of the english doc team members?

I would like to know who is responsible for this text.

>>* Can I expect an apology for this false documentation?
>
> I'm not sure how much useful an apology can be, but you can.

you are not the direct responsible (although you should have verified
this critical documentation part).

> I feel sorry that you've misunderstood.

If you really feel sorry, than you should possibly reply to my initial
message and comment what i've worked-out within the last 2 weeks.

As you see, the community has problems to accept a very simple fact:

the "ri Class" documentation is defective.

> |I don't know "David Alan Black".
> |
> |But: not he should 'pursuade' you to add such a method.
> |
> |Rationality should do.
>
> You don't have to worry about him to force me to add it without
> rationality.

I don't worry about this.

You should trust your userbase.

And let them decide the power which they will use (or abuse).

Bill Atkins

unread,
Apr 21, 2005, 12:57:26 PM4/21/05
to
Enough! The documentation is not wrong and posting all of these threads
isn't productive for anyone - nor is blaming matz for your own incompetence

Yukihiro Matsumoto

unread,
Apr 21, 2005, 1:07:14 PM4/21/05
to
Hi,

In message "Re: [EVALUATION] - E03e - The Ruby Object Model (Summary)"

on Fri, 22 Apr 2005 01:44:32 +0900, Ilias Lazaridis <il...@lazaridis.com> writes:

|> I feel sorry that you've misunderstood.
|
|If you really feel sorry, than you should possibly reply to my initial
|message and comment what i've worked-out within the last 2 weeks.

I don't think I could read through all of your post and reply _before_
feeling sorry. And I will add a word "vertical" before "arrow" for
the next check in, anyway.

matz.

Lyndon Samson

unread,
Apr 21, 2005, 1:36:30 PM4/21/05
to
On 4/22/05, Yukihiro Matsumoto <ma...@ruby-lang.org> wrote:
> Besides seeing no real need, such method is highly connected to the
> current implementation. Future Ruby (or different implementation of

I wonder how JRuby implements it? Any takers for a code-walk?

Jonas Hartmann

unread,
Apr 21, 2005, 4:00:07 PM4/21/05
to
> My final questions are basicly:
> * Can I expect an apology for this false documentation?
Apology? Read the ruby license again. Hint: you did not buy "ruby".

My suggestion: if you don't like certain parts of the documentation,
discuss the "mistakes", on this group in a friendly way and at the end
rewrite the documentation parts you did not like based on the
discussion's conclusions - after that offer the author of the
documentation to exchange the parts you found mistakes in with your
corrected version.

newbish greetings
Jonas


Edgardo Hames

unread,
Apr 21, 2005, 4:01:24 PM4/21/05
to
On 4/21/05, Ilias Lazaridis <il...@lazaridis.com> wrote:
> [EVALUATION] - E03d - The Ruby Object Model (End Game)
> http://groups-beta.google.com/group/comp.lang.ruby/msg/ea9da543dc256b42
>
> My final questions are basicly:
>
> * Can I expect an apology for this false documentation?
>

The heck, no. Can we expect an apologoy from you for being such an asshole?

Has anybody ever suggested you writing your own language, its Object
Model and the so much desired correct documentation?

Regards,
Ed
--
Encontrá a "Tu psicópata favorito" http://tuxmaniac.blogspot.com
"Tener una amiga en Ginebra es como tener quinotos en almibar o uvas en ron."

csaba

unread,
Apr 21, 2005, 5:05:05 PM4/21/05
to

Ilias Lazaridis wrote:

> Austin Ziegler wrote:
> "meta-classes" is completely false.
>
> possibly you believe this one more:
>
> http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/40537
[snip]

> > I do not believe that this is just an implementation detail,
> > as it is exposed to the language for use.
>
> what you believe is irrelevant.
>
> reality counts.
>
> and (especially for you) possibly this here:
>
> http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/40548

Guys, Ilias does have a point.

If we insist on that metaclasses as we have now are just an accidental
implementation of the singleton feature -- and the authoritive one,
Matz seems to do so -- then we can conclude that they cannot be part of
the Ruby object model, where Ruby is an abstract entity, Ruby, as such,
the language.

So then I accept that he doesn't accept the "ri Class" diagram. Even if
that's correct if we understood Ruby as its realized by the canonical
implementation today.

However, if we decide to mean Ruby as the abstract language, then maybe
it just doesn't make sense to plea for a *class* diagram -- if we ditch
metaclasses, Ruby's OO ceases to be purely class based. It still makes
sense to ask for some kind of figure representing inheritance.

I don't know UML, is it capable of representing classless (or not fully
class based) OO?

If not, then the answer to Ilias' question: "either mean Ruby as the
current implementation defines it, or don't ask for an UML diagram
'cause can't be made one."

Csaba

Carlos

unread,
Apr 21, 2005, 5:14:08 PM4/21/05
to
[Yukihiro Matsumoto <ma...@ruby-lang.org>, 2005-04-21 17.46 CEST]

> Besides seeing no real need, such method is highly connected to the
> current implementation. Future Ruby (or different implementation of
> Ruby interpreter) may want to choose other strategy, for example,
> creating a temporary class-like object to manipulate singleton
> methods, then update internal object structure according to that
> class-like object. Under the implementation like this, a method to
> obtain singleton class has no meaning.

I think, in a 90% the singleton class is used for:

* define methods for the object
* attr
* private
* alias_method
* undef and undef_method

Maybe if you provide a way to do the last four from inside instance_eval,
people would forget the singleton class...

David A. Black

unread,
Apr 21, 2005, 5:25:23 PM4/21/05
to
Hi --

On Fri, 22 Apr 2005, Yukihiro Matsumoto wrote:

> Hi,
>
> In message "Re: [EVALUATION] - E03e - The Ruby Object Model (Summary)"
> on Thu, 21 Apr 2005 23:29:31 +0900, Ilias Lazaridis <il...@lazaridis.com> writes:
>
> |I hope the responsible person has more courage.
>
> I may be the responsible person.
>
> I assume your question is why there's no method to obtain singleton
> class (per object hidden class), right? That's because I see no real
> "need" for it.
>
> Besides seeing no real need, such method is highly connected to the
> current implementation. Future Ruby (or different implementation of
> Ruby interpreter) may want to choose other strategy, for example,
> creating a temporary class-like object to manipulate singleton
> methods, then update internal object structure according to that
> class-like object. Under the implementation like this, a method to
> obtain singleton class has no meaning.

What would: (class << obj; self; end) give you if there's no
singleton class?


David

--
David A. Black
dbl...@wobblini.net


Jon A. Lambert

unread,
Apr 21, 2005, 5:59:36 PM4/21/05
to
Ilias Lazaridis wrote:
>
> the "ri Class" documentation is defective.
>

This model is defective:
http://lazaridis.com/case/lang/ruby/TheRubyObjectModel.png

The U in UML is also deceptive and incorrect. Please notify those
responsible for
UML and aforementioned model and correct.

[SIG_HUP]
disconnected.

Yukihiro Matsumoto

unread,
Apr 21, 2005, 7:26:58 PM4/21/05
to
Hi,

In message "Re: [EVALUATION] - E03e - The Ruby Object Model (Summary)"

on Fri, 22 Apr 2005 06:25:23 +0900, "David A. Black" <dbl...@wobblini.net> writes:

|> Besides seeing no real need, such method is highly connected to the
|> current implementation. Future Ruby (or different implementation of
|> Ruby interpreter) may want to choose other strategy, for example,
|> creating a temporary class-like object to manipulate singleton
|> methods, then update internal object structure according to that
|> class-like object. Under the implementation like this, a method to
|> obtain singleton class has no meaning.
|
|What would: (class << obj; self; end) give you if there's no
|singleton class?

In that case, it would give you a (perhaps one-time only) class-like
object described above.

matz.


Jon A. Lambert

unread,
Apr 21, 2005, 7:42:56 PM4/21/05
to
> On 21 Apr 2005, at 14:59, Jon A. Lambert wrote:
>
> [some stuff]
>
> Please stop responding to Ilias, he is crazy. If you stop talking to
> him, he will go away.
>
> If you don't believe me, check out this:
>
> http://www.tfeb.org/lisp/mad-people.html
>
> Especially:
>
> > Ilias is currently (17-Sep-2002) being almost entirely ignored and is
> > crying alone to himself, while trying to join in various threads.
> > With luck if this continues he will get bored and wander off to annoy
> > people in some other newsgroup. He is one of the most malignant
> > posters to cll in recent history - between 27-Aug-2002 and
> > 24-Sep-2002 threads begin by him were about 1/4 of the articles in
> > cll.
>
> Again, this man is insane, so please, please, please refrain from
> replying to his posts, or in threads he starts.
>
> If you would, please join us is fighting this problem. For more
> details, see:
>
> http://www.zenspider.com/Languages/Ruby/IliasIsCrazy.html
>
> Thank you!
>
> --
> Eric Hodel - drb...@segment7.net - http://segment7.net
> FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04

Please remove me from the "Ilias warning" mailing list.

--
J. Lambert

David A. Black

unread,
Apr 21, 2005, 8:04:16 PM4/21/05
to
Hi --

On Fri, 22 Apr 2005, Yukihiro Matsumoto wrote:

So....

x = class << obj; self; end
y = class << obj; self; end

x and y would be two class-like objects, instead of one class? Also,
what exactly is a class-like object?

Maybe there should be singleton modules instead of singleton
classes.... (That would also solve the problem of "singleton class"
having two meanings.)

Saynatkari

unread,
Apr 21, 2005, 8:10:28 PM4/21/05
to
[snip] incoherent babbling

cannot review request right now
input overflow
-
irrelevant

>J. Lambert

E

--
template<typename duck>
void quack(duck& d) { d.quack(); }

Yukihiro Matsumoto

unread,
Apr 21, 2005, 8:20:14 PM4/21/05
to
Hi,

In message "Re: [EVALUATION] - E03e - The Ruby Object Model (Summary)"

on Fri, 22 Apr 2005 09:04:16 +0900, "David A. Black" <dbl...@wobblini.net> writes:

|> |What would: (class << obj; self; end) give you if there's no
|> |singleton class?
|>
|> In that case, it would give you a (perhaps one-time only) class-like
|> object described above.
|
|So....
|
| x = class << obj; self; end
| y = class << obj; self; end
|
|x and y would be two class-like objects, instead of one class? Also,
|what exactly is a class-like object?

Perhaps. And the latter question is hard to answer, since it still is
a vague idea. I just don't want to deny the possibility of different
implementation.

|Maybe there should be singleton modules instead of singleton
|classes.... (That would also solve the problem of "singleton class"
|having two meanings.)

I'm not sure why singleton modules are better than singleton classes.

matz.


Florian Groß

unread,
Apr 21, 2005, 8:25:55 PM4/21/05
to
Yukihiro Matsumoto wrote:

> |Maybe there should be singleton modules instead of singleton
> |classes.... (That would also solve the problem of "singleton class"
> |having two meanings.)
>
> I'm not sure why singleton modules are better than singleton classes.

Hm, Modules can not be instantiated (so it would be one less special
case) and the ability of including modules in other objects might be nice.

David A. Black

unread,
Apr 21, 2005, 8:32:08 PM4/21/05
to
Hi --

On Fri, 22 Apr 2005, Yukihiro Matsumoto wrote:

I didn't express that thought very clearly. I was thinking: modules
are already a sort of "class-like" (but non-instantiable) object. But
it's probably not relevant, since I think what you're talking about is
implementations that avoid the whole container-creation process.

David A. Black

unread,
Apr 21, 2005, 8:39:24 PM4/21/05
to
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.

Yukihiro Matsumoto

unread,
Apr 21, 2005, 8:39:20 PM4/21/05
to
Hi,

In message "Re: [EVALUATION] - E03e - The Ruby Object Model (Summary)"

on Fri, 22 Apr 2005 09:32:08 +0900, "David A. Black" <dbl...@wobblini.net> writes:

|> I'm not sure why singleton modules are better than singleton classes.
|
|I didn't express that thought very clearly. I was thinking: modules
|are already a sort of "class-like" (but non-instantiable) object. But
|it's probably not relevant, since I think what you're talking about is
|implementations that avoid the whole container-creation process.

Yep, singleton class is a long lived object under the current
implementation. The temporal class-like object can reduce number of
live objects. Note that I'm not yet sure if it's a good idea or not.
I just don't want to deny the idea before knowing it's bad.

matz.


David A. Black

unread,
Apr 21, 2005, 8:44:39 PM4/21/05
to
Hi --

On Fri, 22 Apr 2005, Yukihiro Matsumoto wrote:

Maybe the best thing (easy for me to talk about since I don't have to
implement it :-) would be a kind of "class interface" to the object's
singleton methods. If you did:

def obj.new_method
end

no Class would be created. But if you wanted to do other things, you
could still do:

class << obj
include SomeModule
@var = 1
end

etc. "self" in that scope could be a different thing each time (sort
of like Object#method).

Jon A. Lambert

unread,
Apr 21, 2005, 8:49:53 PM4/21/05
to
Saynatkari wrote:
> [snip] incoherent babbling
>
> cannot review request right now
> input overflow
> -
> irrelevant
>

ROTFL. Now I'm going to have to start an Eero warning list.

Now I was just wondering what sort of medication one had to be on to draw an
infinitely recursive object model based on an error condition. Thank
goodness Class#superclass doesn't return -1 on error, otherwise we'd all be
shocked to find out Object inherited from an instance of Fixnum. ;-)

--
J Lambert

Jon A. Lambert

unread,
Apr 21, 2005, 9:57:09 PM4/21/05
to
>> Please remove me from the "Ilias warning" mailing list.
>
> There is no list, and you are being rude for replying to a private email
> in public.

>
> --
> Eric Hodel - drb...@segment7.net - http://segment7.net
> FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04

Once again I am not interested in receiving any more solicitations via email
from your organization so please remove me from your mailing list. It's
rude to send unsolicitated spam email. It's rude to send mime email
attachments. It's rude to not respect reply-to settings. A lot of things
are rude not the least of which is to send email warnings to anyone who
happens to respond to some poster on a mail list who happens to be on some
organization's warning list or black list. So unless you have a response to
the actual content of my post on ruby-talk ML THEN DONT SEND ME ANY MORE
EMAIL. I am simply not interested and will respond to it ON THE LIST..

Thank You

--
J. Lambert

Bill Atkins

unread,
Apr 21, 2005, 10:07:15 PM4/21/05
to
+1, and +1 on the -1/Fixnum example.

Jon A. Lambert

unread,
Apr 21, 2005, 10:21:27 PM4/21/05
to
> There is no list, and you are being rude for replying to a private email
> in public.
>
> --
> Eric Hodel - drb...@segment7.net - http://segment7.net
> FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04

Once again I am not interested in receiving any more solicitations via email

from your organization so please remove me from your mailing list. It's
rude to send unsolicitated spam email. It's rude to send mime email
attachments. It's rude to not respect reply-to settings. A lot of things
are rude not the least of which is to send email warnings to anyone who
happens to respond to some poster on a mail list who happens to be on some
organization's warning list or black list. So unless you have a response to

the content of my post on ruby-ML THEN DONT SEND ME ANY MORE FREAKING EMAIL.

Steven Jenkins

unread,
Apr 22, 2005, 12:15:25 AM4/22/05
to
Jon A. Lambert wrote:
> DONT SEND ME ANY MORE FREAKING EMAIL. I am simply not interested and
> will respond to it ON THE LIST..

Thanks for the heads up.

*plonk*


Ilias Lazaridis

unread,
Apr 22, 2005, 1:02:29 AM4/22/05
to
Ilias Lazaridis wrote:
[...]
>>>> sso = Specializing Singleton Object
>>>
>>>
>>> ISBO = Instance Specific Behaviour Object
>>>
>>> dvto = Dedicated Virtual Table Object
>>>
>>> dvco = Dedicated Virtual Class Object
>>>
>>> dvc = Dedicated Virtual Class
>
>
> dsc = dedicated singleton class
>
> sco = singleton class object
>
> asco = attached singleton class object
>
> "singleton instance" = the one and only instance
> "singleton method" = a method, exclusively for one instance
> "singleton class" = a class, exclusively for one instance


> =>
>
> sco = Singleton class object
>
> sc = Singleton class
>
> s = singleton
>
> => <object>.singleton
>
> => <object>.singletonClass
>
> obj.class
> obj.class_singleton
> obj.singleton_class

obj.exclusive_singleton_class

abstracted (not specifying a class):

obj.exclusive_behaviour_carrier

obj.ebc

-

obj.exclusive_class
obj.exclass

.


--
http://lazaridis.com

Ilias Lazaridis

unread,
Apr 22, 2005, 1:33:31 AM4/22/05
to
Yukihiro Matsumoto wrote:
> Hi,
>
> In message "Re: [EVALUATION] - E03e - The Ruby Object Model (Summary)"
> on Fri, 22 Apr 2005 01:44:32 +0900, Ilias Lazaridis <il...@lazaridis.com> writes:
>
> |> I feel sorry that you've misunderstood.
> |
> |If you really feel sorry, than you should possibly reply to my initial
> |message and comment what i've worked-out within the last 2 weeks.
>
> I don't think I could read through all of your post and reply _before_
> feeling sorry.

Feeling sorry for 'you've missunderstood' is irrelevant.

I ask you for an apology, from an analyst to an analyst.

An apology for _defective_ core documentation.

-

I ask you to read _one_ message.

The initial message of this thread.

Please answer concisely and completely within the full context, thus
readers get the complete picture of this issue.

> And I will add a word "vertical" before "arrow" for
> the next check in, anyway.
>
> matz.

This is not enouth.

As the _direct_ responsible for the defective "ri Class" documentation,
you should have the courtesy, courage and integrity to reply directly to
my initial message.

-

You owe this.

-

To the community.

To my persons reputation.

To your persons reputation.

An most of all: to the reputation of the name "Matsumoto" that you carry.

-

[REQUOTE]
>>> I wrote the original figure. The documentation is not by me, but by
>>> the English doc team members.
>>
>> where can I find a list of the english doc team members?
>>
>> I would like to know who is responsible for this text.
[REQUOTE]

ruby source-code, file "object.c"

"
void
Init_Object()
{
VALUE metaclass;

rb_cObject = boot_defclass("Object", 0);
rb_cModule = boot_defclass("Module", rb_cObject);
rb_cClass = boot_defclass("Class", rb_cModule);

metaclass = rb_make_metaclass(rb_cObject, rb_cClass);
metaclass = rb_make_metaclass(rb_cModule, metaclass);
metaclass = rb_make_metaclass(rb_cClass, metaclass);
"

vs.

"In Ruby, the Class class is the class of all classes, no metaclass."

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/40537

.

--
http://lazaridis.com

Ilias Lazaridis

unread,
Apr 22, 2005, 1:57:49 AM4/22/05
to
csaba wrote:
> Ilias Lazaridis wrote:
>
>>Austin Ziegler wrote:
>>"meta-classes" is completely false.
>>
>>possibly you believe this one more:
>>
>>http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/40537
>
> [snip]
>
>>>I do not believe that this is just an implementation detail,
>>>as it is exposed to the language for use.
>>
>>what you believe is irrelevant.
>>
>>reality counts.
>>
>>and (especially for you) possibly this here:
>>
>>http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/40548
>
> Guys, Ilias does have a point.

I have 3 points.

marked as a) b) c) in the original message.

but at this point, nearly no one of this community has an intrest if I
have "a point".

Most know: I am right.

But the "weak puppet" species is incapable to admit a failure within
'their' language system.

This is the point where the "spiritual leaders" of the community intervene.

But it looks that they too don't have the courage to admit their failures.

Possibly this is the fault of the community, which treats the designers
sometimes like God.

-

Language Designers are humans, not God's.

> If we insist on that metaclasses as we have now are just an accidental
> implementation of the singleton feature -- and the authoritive one,
> Matz seems to do so -- then we can conclude that they cannot be part of
> the Ruby object model, where Ruby is an abstract entity, Ruby, as such,
> the language.
>
> So then I accept that he doesn't accept the "ri Class" diagram. Even if
> that's correct if we understood Ruby as its realized by the canonical
> implementation today.
>
> However, if we decide to mean Ruby as the abstract language, then maybe
> it just doesn't make sense to plea for a *class* diagram -- if we ditch
> metaclasses, Ruby's OO ceases to be purely class based.

Ruby's OO is not purely class based.

"Everything is an Object" is invalid, too.

Cause if you have objects, accessible via an special notation, which can
be "changed in future version", then you have no OO.

> It still makes
> sense to ask for some kind of figure representing inheritance.
>
> I don't know UML, is it capable of representing classless (or not fully
> class based) OO?

To my understanding, classless is nothing special.

Just an Object which carries the (dynamic) Class Specification.

You can draw a box, with a stereotyp "classless" or "dynamic".

[a small research should provide the valid standard for this]

> If not, then the answer to Ilias' question: "either mean Ruby as the
> current implementation defines it, or don't ask for an UML diagram
> 'cause can't be made one."

The inconsistence starts within the ruby sources.

Concise Terminology is the starting point.

_Clean_ and _transparent_ OO the fundament.

_Respect_ to the analytic individuum the essence of all progress.

-

But it looks I cannot find all this within Ruby.

.

--
http://lazaridis.com

Lyndon Samson

unread,
Apr 22, 2005, 2:05:23 AM4/22/05
to
On 4/22/05, Ilias Lazaridis <il...@lazaridis.com> wrote:
>
> You owe this.
>

His only obligation is his personal commitment to the language. He
could stop working on it tomorrow if he felt like it.

Technically he's providing his time and effort on a volunteer basis,
you wouln't complain to Mother Teresa if her rice was overcooked would
you?

You need to be a bit more diplomatic with your interactions, otherwise
you will ( have ) rub people the wrong way and hence not achieve your
goals.

Jon A. Lambert

unread,
Apr 22, 2005, 2:14:29 AM4/22/05
to

-1, it's bad form to splice a poster mid sentence and thereby quote them out
of context.

The corrected quote is:


"So unless you have a response to the content of my post on ruby-ML THEN

DONT SEND ME ANY MORE FREAKING EMAIL."

I, of course, do accept and respond to personal email regaring the "content"
of my posts in a polite and discrete way. Although maybe not in a timely
fashion.

> *plonk*

+2, for using the time worn and international recognized sybolic for: a)
dealing with trolls, b) indicating no further discussion will be
forthcoming, and c) expressing one's frustraton and displeasure to the
group.

Of course being a ruby forum, maybe 'tis better updated and expressed as....

*nil*

Err, even better how about doing it with a nice friendly smile?

*nil* :-)

--
J. Lambert

Jon A. Lambert

unread,
Apr 22, 2005, 2:32:54 AM4/22/05
to
Ilias Lazaridis wrote:
> But the "weak puppet" species is incapable to admit a failure within
> 'their' language system.
>
> This is the point where the "spiritual leaders" of the community
> intervene.
> But it looks that they too don't have the courage to admit their
> failures.
> Possibly this is the fault of the community, which treats the
> designers sometimes like God.
>
> Language Designers are humans, not God's.
>

I too was attacked and savagely beaten by a language designer in my youth.
I kept it inside for many years and didn't even realize it until it was
brought out in hypnotherapy 7 years ago. Sadly by that time the language
designer was deceased and I could not confront her. Not that it would have
mattered much anyway, she being an Admiral and protected by the military
industrial complex. You are far luckier being able to confront the abusive
LD amost directly through the internet. I just wanted to let you know that
YOU ARE NOT ALONE. Thank you for bravely standing up and sharing. Maybe
others like us who have been abused by LD's can finally come out of hiding
and get the recognition and support we need. As for how I conquered my
codependent behavior and COBOL addiction... NO I didn't just replace it with
Ruby...don't be ridiculous. I found Jesus. Well Jesus and Ruby. That may
not work for you. But good luck. I'm pulling for you.

:-)


Ilias Lazaridis

unread,
Apr 22, 2005, 3:22:39 AM4/22/05
to
Lyndon Samson wrote:
[...]

please let Mr. Matsumoto speak for himself in this issue.

.

--
http://lazaridis.com

Ilias Lazaridis

unread,
Apr 22, 2005, 3:38:18 AM4/22/05
to
Jonas Hartmann wrote:
>> My final questions are basicly:
>> * Can I expect an apology for this false documentation?
>
> Apology? Read the ruby license again. Hint: you did not buy "ruby".

It's a matter of degnity.

Mr. Matsumoto knows what I am talking about.

> My suggestion:
[...] (process)

.

--
http://lazaridis.com

Yukihiro Matsumoto

unread,
Apr 22, 2005, 3:26:08 AM4/22/05
to
Hi,

In message "Re: [EVALUATION] - E03e - The Ruby Object Model (Summary)"

on Fri, 22 Apr 2005 14:24:35 +0900, Ilias Lazaridis <il...@lazaridis.com> writes:

|ruby source-code, file "object.c"


|
|vs.
|
|"In Ruby, the Class class is the class of all classes, no metaclass."
|
|http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/40537

The figure in "object.c" describes internal structure. Each object
can have its per-object hidden class-like object, which we call
singleton class. But you don't have to implement Ruby like that.
It's just for _my_ implementation.

On the other hand [ruby-talk:40537] describes the language model, or
specification, which does not necessarily have metaclass. Classes are
no different from other objects. They have singleton methods just
like other objects. We often call singleton methods of classes as
"class methods" by tradition inherited from other languages.

If someone come up with better Class description, I'd love to update
the document.

matz.


Ilias Lazaridis

unread,
Apr 22, 2005, 3:44:39 AM4/22/05
to
Ilias Lazaridis wrote:
> Jonas Hartmann wrote:
>
>>> My final questions are basicly:
>>> * Can I expect an apology for this false documentation?
>>
>> Apology? Read the ruby license again. Hint: you did not buy "ruby".
>
> It's a matter of degnity.

dignity.

> Mr. Matsumoto knows what I am talking about.
>
>> My suggestion:
>
> [...] (process)
>
> .
>

.

--
http://lazaridis.com

Bill Atkins

unread,
Apr 22, 2005, 3:36:57 AM4/22/05
to
Guys, for real, let's ignore this guy.

Please.

No more responses, just let him be.

On 4/22/05, Ilias Lazaridis <il...@lazaridis.com> wrote:
>

> ..
>
> --
> http://lazaridis.com
>
>


--
Bill Atkins

Nikolai Weibull

unread,
Apr 22, 2005, 3:44:15 AM4/22/05
to
Ilias Lazaridis, April 22:

> Feeling sorry for 'you've missunderstood' is irrelevant.
>
> I ask you for an apology, from an analyst to an analyst.
>
> An apology for _defective_ core documentation.

Man, it's time for you to realize when to SHUT THE FUCK UP!

We will not have you bashing people who provide you with free
programming languages with free documentation, whether the documentation
or the programming language agrees with you or not, so SHUT THE FUCK UP!

You have made your point. We all know that you think the documenation
for Class is wrong. We all know this. It's been painfully iterated by
you over several threads these past few weeks. Many smart and helpful
people have tried to explain, in great detail, precisely what is wrong
with your understanding of the issue, so as to make it possible for you
to move on beyond "ri Class" in your "evaluation". You haven't. Now
it's time for you to SHUT THE FUCK UP!

Please realize that you will not get an apology. You are the one who
should issue an apology for wasting people's time with your badly
thought through, badly written, and badly mannered postings. And when
you have, it's time for you to SHUT THE FUCK UP!

Everyone knows you are a deterrent. To most, this means that they'll
simply ignore anything that relates to you on this list. Still, some
people on this list are so nice that they continue to communicate with
you, even though they've been burned in the past. Don't you dare be
rude to those individuals. Instead, do dare to SHUT THE FUCK UP!

I'm sure that the people you are attacking in your threads can defend
themselves and don't need me to do their fighting for them. I'm also
sure that any time they waste on you is time that they won't have to
help other people on this list. There are lots of people on this list
with real problems and we won't let your juvenile behavior detract from
their available help any more, so SHUT THE FUCK UP!

In conclusion, Ilias, you really need to SHUT THE FUCK UP!,
nikolai

--
Nikolai Weibull: now available free of charge at http://bitwi.se/!
Born in Chicago, IL USA; currently residing in Gothenburg, Sweden.
main(){printf(&linux["\021%six\012\0"],(linux)["have"]+"fun"-97);}


Ilias Lazaridis

unread,
Apr 22, 2005, 4:04:48 AM4/22/05
to
Yukihiro Matsumoto wrote:
[...] - (selective answering, with incoherent quotes)

Your answering behaviour is ungentle.

Against me and against readers (current and future archive readers).

I cannot believe that you simply ignore the essential part of my message.

I've recreated the message which you have essentialy ignored:

-
-
-

-


This is not enouth.

-

You owe this.

-

To the community.

To my persons reputation.

To your persons reputation.

-

[REQUOTE]

[REQUOTE]

ruby source-code, file "object.c"

"
void
Init_Object()
{
VALUE metaclass;

vs.

"In Ruby, the Class class is the class of all classes, no metaclass."

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/40537

.

--
http://lazaridis.com

Ilias Lazaridis

unread,
Apr 22, 2005, 4:10:29 AM4/22/05
to

thank's a lot.

.

--
http://lazaridis.com

Lyndon Samson

unread,
Apr 22, 2005, 4:29:25 AM4/22/05
to
On 4/22/05, Ilias Lazaridis <il...@lazaridis.com> wrote:
> Lyndon Samson wrote:
> [...]
>
> please let Mr. Matsumoto speak for himself in this issue.
>

Ok but are you not a little curious as to why you seem to be
antagonising so many people? Even if you are 'in the right', wouldn't
life be better if you could get your answers without annoying people?

Surely some reflection is called for. An open mind is essential for
progress in life.


> ..
>
> --
> http://lazaridis.com

Jon A. Lambert

unread,
Apr 22, 2005, 4:32:52 AM4/22/05
to
Ilias Lazaridis wrote:
> Yukihiro Matsumoto wrote:
> [...] - (selective answering, with incoherent quotes)
>
> Your answering behaviour is ungentle.
>
> Against me and against readers (current and future archive readers).

No you are really on the wrong track. After some research, and at great
personal risk I might add, I managed to obtain a photo of the responsible
parties in action.

/\_/\
| ..|
| `> ChunkyBacon!
| O | / /\/\
| | |..|
| | Chunky <' |
| | Bacon! |0 |

=begin
Class Documentation - A class is much like chunky bacon more than
an Object. Sort of like meta-chunky bacon, and by meta I mean the
peppered kind, not Canadian bacon (which we all know is really just
ham). And besides it's not really chunky at all.
=end

--
J. Lambert

Dick Davies

unread,
Apr 22, 2005, 4:45:21 AM4/22/05
to
* Edgardo Hames <eha...@gmail.com> [0401 21:01]:
> On 4/21/05, Ilias Lazaridis <il...@lazaridis.com> wrote:
> > [EVALUATION] - E03d - The Ruby Object Model (End Game)
> > http://groups-beta.google.com/group/comp.lang.ruby/msg/ea9da543dc256b42

> >
> > My final questions are basicly:
> >
> > * Can I expect an apology for this false documentation?
> >
>
> The heck, no. Can we expect an apologoy from you for being such an asshole?

No, because he's a troll. ffs guys, three or four times now he's said 'my
evaluation is over' and people have chipped in with 'one more thing'.

Let it die.

--
'Oh, wait you're serious. Let me laugh even harder.'
-- Bender
Rasputin :: Jack of All Trades - Master of Nuns


Aleksi

unread,
Apr 22, 2005, 5:45:31 AM4/22/05
to
I believe in co-existence. I don't think people should be silenced to
death unless they're really just creating disorder. Lazaridis might be
borderline case but it's hard to deny there's no point in his real
question about classes, superclasses, metaclasses, Class etc. It's very
easy to say he's not behaving nice in accusations, netiquette and so on.

I dislike Ilias' but I dislike equally as much people who act improperly
or are rude for Mr. Lazaridis. Neither party are getting things better.

My advice is this.

1) Think three times (before you write, after you've written your reply
and once more before you send it after half an hour break) before you
write anything to these threads.

2) Determine if you're contributing to the mailing list signal/noise
-ratio in positive way. If not, don't send. If you need to make yourself
feel better by being rude verbally write the piece, send it to /dev/null
and feel better. Don't waste bandwidth.

First point should lessen the traffic to a small portion. Second point
should lead to either silence or to normal appreciating discussion, all
minds fresh and happy.

If majority finds there's nothing to discuss with Lazaridis he will end
up in silence and, from experience in other news groups, go away. If
even few people want to discuss with him, there's no right for the
others disrupt or they're behaving just like they claim Lazaridis'
doing. So they should go away.

I'll write one more in this thread. That's directly to Ilias written in
his style but since he has claimed he's not reading his personal mail
I'll put it to the list. In it I try to say to him what's wrong in his
writings. To make it worthwhile for the rest the mail could be amusing
as ewll. Can't say if I succeeded but at least I tried.

This is major turning point. Shall major ruby mailing list continue to
be friendly to each other (and everybody) or shall we start to convert
towards common cyberspace style.

- Aleksi

Ilias Lazaridis

unread,
Apr 22, 2005, 5:59:06 AM4/22/05
to
Lyndon Samson wrote:
> On 4/22/05, Ilias Lazaridis <il...@lazaridis.com> wrote:
>
>>Lyndon Samson wrote:
>>[...]
>>
>>please let Mr. Matsumoto speak for himself in this issue.
>
> Ok but are you not a little curious as to why you seem to be
> antagonising so many people? Even if you are 'in the right', wouldn't
> life be better if you could get your answers without annoying people?
>
> Surely some reflection is called for. An open mind is essential for
> progress in life.

amen.

.

--
http://lazaridis.com

Aleksi

unread,
Apr 22, 2005, 5:45:46 AM4/22/05
to
Ilias Lazaridis wrote:
> [...] - (selective answering, with incoherent quotes)
>
> Your answering behaviour is ungentle.

your behaviour is not polite. please stick to the point and let the
behaviour issues stay away.

> I cannot believe that you simply ignore the essential part of my message.

your message can't be understood since it is too long. please be concise
and say what's your essential question. everything else is rude.

believing is irrelevant. what you believe is completely irrelevant.
reality matters.

-

what's real matters.

you are make yourself irrelevant by believing, and not focusing only at
essentials.

> Feeling sorry for 'you've missunderstood' is irrelevant.

feeling irrelevancy for feeling sorry of misunderstandings irrelevancy
is irrelevant. please be concise and bring front the question.

> I ask you for an apology, from an analyst to an analyst.
> An apology for _defective_ core documentation.

there's no documentation. there can't be core documentation. there can't
be defect in core documentation. analyst doesn't see he's diverting again.

asking for an apology for is ignoring the essential part of your
message. i cannot believe that you simply ignore the essential part of
your message.

-

aa == from Analyst to Analyst

documentation == text aa

a could be you

just be concise and complete to convey the message in the middst of
these letters.

> I ask you to read _one_ message.

I ask you to write _one_ message.

-

no more

> The initial message of this thread.

only the initial message of this thread. your messages after that have
been competely non-concise while simultaneously lacking the full context
thus no one gets the complete picture of this nonissue.

> I would like to know who is responsible for this text.

you can't afford asking irrelevant questions while the nonissue is still
unanswered. by working against your own terms the responsible of the
reputation of the name "Lazaridis" makes his duty for the reputation.

.

Ilias Lazaridis

unread,
Apr 22, 2005, 6:03:54 AM4/22/05
to
Aleksi wrote:
[...]

sorry, no time for such games.

.

--
http://lazaridis.com

Ilias Lazaridis

unread,
Apr 22, 2005, 6:27:03 AM4/22/05
to

obj.xclass

x class (x=not known yet what it is)

obj.xclass

.

--
http://lazaridis.com

Lyndon Samson

unread,
Apr 22, 2005, 6:39:51 AM4/22/05
to

Well, IANAP but a sane person, such as myself, views your persistent
denial of any sort of fault as an indicator of some sort of
personality defect. You never acknowledge any wrongdoing, are you the
perfect person?

Maybe the conspiracy theory is true, you are in no way interested in
adding to the collective wisdom, its all about the pagerank, can we
expect to see Google ads on your site soon?

How disapointing to think you may actually be a Troll, snickering away
in your dark room somewhere. The only other individual remotely like
you I've met on the internet was a person posting to aus.tv who though
he was the real life Trueman, from the Trueman show.

Thats my opinion and I'm sticking to it until you change your tone and
consider someone apart from yourself and your own desires and wants.

Ilias Lazaridis

unread,
Apr 22, 2005, 7:07:20 AM4/22/05
to
Lyndon Samson wrote:
> On 4/22/05, Ilias Lazaridis <il...@lazaridis.com> wrote:
>>Lyndon Samson wrote:
>>>On 4/22/05, Ilias Lazaridis <il...@lazaridis.com> wrote:
>>>>Lyndon Samson wrote:
>>>>[...]
>>>>
>>>>please let Mr. Matsumoto speak for himself in this issue.
>>>
>>>Ok but are you not a little curious as to why you seem to be
>>>antagonising so many people? Even if you are 'in the right', wouldn't
>>>life be better if you could get your answers without annoying people?
>>>
>>>Surely some reflection is called for. An open mind is essential for
>>>progress in life.
>>
>>amen.
>
> Well, IANAP but a sane person, such as myself, views your persistent
> denial of any sort of fault as an indicator of some sort of
> personality defect. You never acknowledge any wrongdoing, are you the
> perfect person?

your finding is false, Mr. Cyberdoctor.

[just review this thread]

> Maybe the conspiracy theory is true, you are in no way interested in
> adding to the collective wisdom, its all about the pagerank, can we
> expect to see Google ads on your site soon?

What's wrong about this?

I mean, I've currently no incomings, thus I thought to add advertisments
in this section:

http://lazaridis.com/case/index.html

as it's anyway full of product comparisons.

but this would take the attention of the readers.

> How disapointing to think you may actually be a Troll, snickering away
> in your dark room somewhere. The only other individual remotely like
> you I've met on the internet was a person posting to aus.tv who though
> he was the real life Trueman, from the Trueman show.

think.

> Thats my opinion and I'm sticking to it until you change your tone and
> consider someone apart from yourself and your own desires and wants.

think before you talk.

http://lazaridis.com/case/ide/index.html

.

--
http://lazaridis.com

Ilias Lazaridis

unread,
Apr 22, 2005, 7:21:56 AM4/22/05
to
Ilias Lazaridis wrote:
> [EVALUATION] - E03d - The Ruby Object Model (End Game)
> http://groups-beta.google.com/group/comp.lang.ruby/msg/ea9da543dc256b42
>
> -
>
> The above thread has led to this code:
>
> class Class
> def Meta()
> @Meta ||= (class<<self;self;end)
> end
> end
>
> which is modified here to:
>
> class Object
> def sso()
> @sso ||= (class<<self;self;end) # see code below
> end
> end
>
> simplified:
> def sso()
> unless @sso
> @sso = (class<<self; self; end) #
> end
> @sso
> end
>
> -

>
> sso = Specializing Singleton Object
>
> -
>
> The sso contains definitions (methods, attributes, constants) which
> specialize the behaviour of its carrying object.
>
> The "sso" of a "class object" is used to specialize the behaviour of the
> class (against Class).
>
> -
>
> The sso's are essentially internal implementation details, although they
> are accessible (see code above).
>
> The sso's are _not_ part of the Ruby Object Model (e.g. inheritance
> hierarchy).

> -
> -
> -
>
> As stated before, the following documentation is false:
>
> cmd:> ri Class
>
> "Classes, modules, and objects are interrelated. In the diagram that
> follows, the arrows represent inheritance, and the parentheses
> meta-classes. All metaclasses are instances of the class `Class'."
>
> +------------------+
> | |
> Object---->(Object) |
> ^ ^ ^ ^ |
> | | | | |
> | | +-----+ +---------+ |
> | | | | |
> | +-----------+ | |
> | | | | |
> +------+ | Module--->(Module) |
> | | ^ ^ |
> OtherClass-->(OtherClass) | | |
> | | |
> Class---->(Class) |
> ^ |
> | |
> +----------------+
>
> -
>
> a) The term "meta-classes" is false.

confirmed by: Mr. Matsumoto:

"In Ruby, the Class class is the class of all classes, no metaclass."

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/40537

-

confirmed by: the general-validity term "metaclass".

[Mr. Matsumoto was unwilling to answer directly to the root-message]

> Correction: "specializing-singleton-objects"

or possibly: xclass = eXclusive-class

or singleton class.

but _not_ metaclass.

this is _false_ and completely _missleading_.

> b) vertical arrows do not represent inheritance
> e.g.: Object---->(Object)
> Correction: Object-----(Object)

confirmed by Mr. Matsumoto within this thread:

"And I will add a word "vertical" before "arrow" for
the next check in, anyway."

[Mr. Matsumoto was unwilling to answer directly to the root-message]

> c) the classes in "()" do not belong to the object model
> Correction: remove (showcase sso in seperate topic)

No confirmation.

Seeing the egoism-loaded community, it should take around 1 to 3 further
years to clarify this issue.

> My final questions are basicly:
>

> * Ruby is OO. Why is the sso not directly accessible?

"considered abuse" by the language designer Mr. Matsumoto

http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/40548

Of course this is irrational, as there is a "singleton-class-notation"
available, which makes the object accessible anyway.

class << <object>

No need to refuse a convenience method.

Except: Rubyist are sheeps, which must be protected from doing damage.

> * Who has written the "ri Class" documentation?

from within this thread:

Mr. Matsumoto has drawn the diagramm.

Mr. Matsumoto has provided the confusion with the term "metaclass", most
possibly as he was/is confused/unclear about the theory/implementation:

ruby source-code, file "object.c"

"
void
Init_Object()
{
VALUE metaclass;

rb_cObject = boot_defclass("Object", 0);
rb_cModule = boot_defclass("Module", rb_cObject);
rb_cClass = boot_defclass("Class", rb_cModule);

metaclass = rb_make_metaclass(rb_cObject, rb_cClass);
metaclass = rb_make_metaclass(rb_cModule, metaclass);
metaclass = rb_make_metaclass(rb_cClass, metaclass);
"

vs.

"In Ruby, the Class class is the class of all classes, no metaclass."

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/40537

.

> * Can I expect an apology for this false documentation?

It looks like this community lacks any strong personalities.

I can neither expect an apology from the responsile person, Mr.
Matsumoto, nor an open, egoism-free analysis of the problem domain from
the community.

-
Many people from the community are not ashamed to used the discussion
i've initialized to understand (partly within other threads), without
saying: "hey, thank you for raising this issue. this is positive for
ruby's evolution"

> http://lazaridis.com/case/lang/ruby

time to close this thread.

_such_ a waste of time.

.

--
http://lazaridis.com

Nikolai Weibull

unread,
Apr 22, 2005, 7:59:01 AM4/22/05
to
Ilias Lazaridis, April 22:

> time to close this thread.

> _such_ a waste of time.

So very, very true,

Austin Ziegler

unread,
Apr 22, 2005, 8:35:39 AM4/22/05
to
On 4/22/05, Ilias Lazaridis <il...@lazaridis.com> wrote:
> Most know: I am right.

You misspelled "wrong." "Ignorant" is another good alternate
spelling for the word you meant. As are "asinine", "arrogant", and
even "obstinately, willfully, stupid."

You've been shown -- both practically and theoretically -- why
you're wrong. By almost a dozen people, including the language
designer.

Your pretensions don't change reality.

-austin
--
Austin Ziegler * halos...@gmail.com
* Alternate: aus...@halostatue.ca

Ilias Lazaridis

unread,
Apr 22, 2005, 9:04:45 AM4/22/05
to
Austin Ziegler wrote:
> On 4/22/05, Ilias Lazaridis <il...@lazaridis.com> wrote:
>
>>Most know: I am right.
>
> You misspelled "wrong." "Ignorant" is another good alternate
> spelling for the word you meant. As are "asinine", "arrogant", and
> even "obstinately, willfully, stupid."
>
> You've been shown -- both practically and theoretically -- why
> you're wrong. By almost a dozen people, including the language
> designer.
>
> Your pretensions don't change reality.

Reality is:

point b) was _directly_ confirmed by the language designer.

point a) is _indirectly_ confirmed.

point c) needs no confirmation, it is a logical conclusion.

-

so, please stop you endless babbling and accept that I'm right.

Try it: "Ilias Lazaridis is right".

It's not so difficult, even for you.

The first step is: "Ilias Lazaridis is right, at least with point b)"

go on.

> -austin

.

--
http://lazaridis.com

Bill Guindon

unread,
Apr 22, 2005, 9:53:13 AM4/22/05
to

"How many fingers am I holding up, Winston?"

http://www.orwelltoday.com/brainwashing.shtml

--
Bill Guindon (aka aGorilla)

Ilias Lazaridis

unread,
Apr 22, 2005, 11:08:19 AM4/22/05
to

another babbler.

the other one provides at least original babbling.

.

--
http://lazaridis.com

Nikolai Weibull

unread,
Apr 22, 2005, 11:05:57 AM4/22/05
to
Ilias Lazaridis, April 22:

> Try it: "Ilias Lazaridis is right".

Man, I'm giving it my best, but it keeps on coming out as "Ilias
Laziridis is wrong", "Ilias Laziridis is wrong",

Ilias Lazaridis

unread,
Apr 22, 2005, 11:23:02 AM4/22/05
to
Nikolai Weibull wrote:
> Ilias Lazaridis, April 22:
>
>>Try it: "Ilias Lazaridis is right".
>
> Man, I'm giving it my best, but it keeps on coming out as "Ilias
> Laziridis is wrong", "Ilias Laziridis is wrong",
> nikolai

come on, try the simple one (confirmed by the language designer):

"Ilias Lazaridis is right, at least with point b)"

Or are you another one weak puppet?

.

--
http://lazaridis.com

Ilias Lazaridis

unread,
Apr 22, 2005, 12:01:38 PM4/22/05
to

Customizes Object

obj.customizing_class

obj.cclass

obj.custom

.

--
http://lazaridis.com

Robert McGovern

unread,
Apr 22, 2005, 12:00:15 PM4/22/05
to
I thought you wanted to close the thread?

Rob

On 4/22/05, Ilias Lazaridis <il...@lazaridis.com> wrote:

Ilias Lazaridis

unread,
Apr 22, 2005, 12:29:56 PM4/22/05
to
Robert McGovern wrote:
> I thought you wanted to close the thread?

I cannot.

I've still on task active:

finding a concise name.

> Rob
>
> On 4/22/05, Ilias Lazaridis <il...@lazaridis.com> wrote:
>
>>Customizes Object
>>
>>obj.customizing_class
>>
>>obj.cclass
>>
>>obj.custom

.

--
http://lazaridis.com

Luc Heinrich

unread,
Apr 22, 2005, 12:57:19 PM4/22/05
to
Ilias Lazaridis <il...@lazaridis.com> wrote:

> time to close this thread.

Champagne !!! :)

--
Luc Heinrich - luc...@mac.com

Lyndon Samson

unread,
Apr 22, 2005, 1:09:59 PM4/22/05
to
On 4/23/05, Luc Heinrich <luc...@mac.com> wrote:
> Ilias Lazaridis <il...@lazaridis.com> wrote:
>
> > time to close this thread.
>
> Champagne !!! :)
>

I think Mick Jagger and David Bowie are almost ready to kick off...


> --
> Luc Heinrich - luc...@mac.com
>
>

Glenn Smith

unread,
Apr 22, 2005, 3:14:47 PM4/22/05
to
Sorry, I think I have just core dumped with laughter at this thread.

Here is my one and only post to Ilias (so don't flame me!).

Ilias, when you've developed your own programming language, and have
found the perfection you so dearly crave, give us a call will you? In
the mean time, please don't be rude to Matz. After all, he gives Ruby
to the community freely, be thankful for that. And be thankful to the
friendly people on this list who give their time and patience to
newbies like me. Don't waste any more of their time.

Other than that, I'm with Nikolai :o)))


--

All the best
Glenn
Aylesbury, UK

Ilias Lazaridis

unread,
Apr 23, 2005, 5:56:15 AM4/23/05
to
Glenn Smith wrote:
> Sorry, I think I have just core dumped with laughter at this thread.
>
> Here is my one and only post to Ilias (so don't flame me!).
>
> Ilias, when you've developed your own programming language, and have
> found the perfection you so dearly crave, give us a call will you? In
> the mean time, please don't be rude to Matz.

He is 'rude'.

To me.

To the community.

To himself.

And most of all: To the name he carries.

> After all, he gives Ruby
> to the community freely, be thankful for that. And be thankful to the
> friendly people on this list who give their time and patience to
> newbies like me.

I am thankfull to anyone who provides concise information within the
given context.

> Don't waste any more of their time.

They waste it themselves.

> Other than that, I'm with Nikolai :o)))

.

--
http://lazaridis.com

Jon A. Lambert

unread,
Apr 23, 2005, 5:57:06 AM4/23/05
to
Ilias Lazaridis wrote:
> Robert McGovern wrote:
>> I thought you wanted to close the thread?
>
> I cannot.
>
> I've still on task active:
>
> finding a concise name.
>

I find greek letters and fruit useful to move on beyond recursive analysis
paralysis.

banana

On the other hand, should you eventually discover the "true" name of an
object, you can wield great power over that object.

banana.sit
banana.roll_over
banana.play_dead

--
J. Lambert

Ilias Lazaridis

unread,
Apr 23, 2005, 6:12:01 AM4/23/05
to
Ilias Lazaridis wrote:
> Ilias Lazaridis wrote:
>> Ilias Lazaridis wrote:
>>> Ilias Lazaridis wrote:
>>> [...]
>>>
>>>>>>> sso = Specializing Singleton Object

specializing: possibly confronting with existent OO terminology

>>>>>> ISBO = Instance Specific Behaviour Object

behaviour: not only (structure is modified,too)

>>>>>> dvto = Dedicated Virtual Table Object
>>>>>> dvco = Dedicated Virtual Class Object
>>>>>> dvc = Dedicated Virtual Class

Virtual

>>>> dsc = dedicated singleton class
>>>>
>>>> sco = singleton class object

"singleton class" => rejected [has specific meaning]

>>>> asco = attached singleton class object
>>>>
>>>> "singleton instance" = the one and only instance
>>>> "singleton method" = a method, exclusively for one instance
>>>> "singleton class" = a class, exclusively for one instance

conflicting with existent definitin: "class which can have only one
instance".

>>> obj.exclusive_singleton_class


>>> obj.exclusive_class
>>> obj.exclass
>> obj.xclass
>> x class (x=not known yet what it is)
>> obj.xclass

=> xclass

term accepted.

Ilias Lazaridis

unread,
Apr 23, 2005, 6:21:40 AM4/23/05
to
Jon A. Lambert wrote:
> Ilias Lazaridis wrote:
>
>> Robert McGovern wrote:
>>
>>> I thought you wanted to close the thread?
>>
>> I cannot.
>>
>> I've still on task active:
>>
>> finding a concise name.
>
> I find greek letters and fruit useful to move on beyond recursive
> analysis paralysis.

I do not.

=> exclusive_class or xclass

thread closed.

.

--
http://lazaridis.com

Lyndon Samson

unread,
Apr 23, 2005, 7:38:12 AM4/23/05
to

I apologise to the gentler readers of this list for contributing to
the lunacy but...

<HomerSimpson>
thread goes open
thread goes closed
thread goes open
thread goes closed
thread goes open
...
</HomerSimpson>


>
> ..
>
> --
> http://lazaridis.com

0 new messages