[#86984] Attempted roadmap of future instance variables.... — "David A. Black" <dblack@...>

Hi --

81 messages 2003/12/02
[#86998] Re: Attempted roadmap of future instance variables.... — Steve Tuckner <STUCKNER@...> 2003/12/02

So what is the relationship between @_ vars and @vars that are defined in a

[#87001] Re: Attempted roadmap of future instance variables.... — "David A. Black" <dblack@...> 2003/12/02

Hi --

[#87006] Re: Attempted roadmap of future instance variables.... — Steve Tuckner <STUCKNER@...> 2003/12/02

Maybe I am being dense, so bear with me...

[#87011] Re: Attempted roadmap of future instance variables.... — Lyle Johnson <lyle@...> 2003/12/02

Steve Tuckner wrote:

[#87013] Re: Attempted roadmap of future instance variables.... — Steve Tuckner <STUCKNER@...> 2003/12/02

OK so the jist of it is that @_var variables are stored with the class of

[#87095] Re: Attempted roadmap of future instance variables.... — "Robert Klemme" <bob.news@...> 2003/12/03

[#87098] Re: Attempted roadmap of future instance variables.... — "David A. Black" <dblack@...> 2003/12/03

Hi --

[#87102] Re: Attempted roadmap of future instance variables.... — ts <decoux@...> 2003/12/03

>>>>> "D" == David A Black <dblack@wobblini.net> writes:

[#87244] Re: Attempted roadmap of future instance variables.... — "Christoph" <chr_mail@...> 2003/12/05

ts wrote:

[#87275] Re: Attempted roadmap of future instance variables.... — ts <decoux@...> 2003/12/05

>>>>> "C" == Christoph <chr_mail@gmx.net> writes:

[#87286] Re: Attempted roadmap of future instance variables.... — "Christoph" <chr_mail@...> 2003/12/05

ts wrote:

[#87290] Re: Attempted roadmap of future instance variables.... — "David A. Black" <dblack@...> 2003/12/05

Hi --

[#87308] Re: Attempted roadmap of future instance variables.... — Austin Ziegler <austin@...> 2003/12/05

On Fri, 5 Dec 2003 22:56:41 +0900, David A. Black wrote:

[#87310] Re: Attempted roadmap of future instance variables.... — "Christoph" <chr_mail@...> 2003/12/05

Austin Ziegler wrote:

[#87314] Re: Attempted roadmap of future instance variables.... — "T. Onoma" <transami@...> 2003/12/05

On Friday 05 December 2003 05:40 pm, Christoph wrote:

[#87318] Re: Attempted roadmap of future instance variables.... — matz@... (Yukihiro Matsumoto) 2003/12/05

Hi,

[#87335] Re: Attempted roadmap of future instance variables.... — Nathaniel Talbott <nathaniel@...> 2003/12/05

On Dec 5, 2003, at 12:15, Yukihiro Matsumoto wrote:

[#87320] Re: Attempted roadmap of future instance variables.... — Austin Ziegler <austin@...> 2003/12/05

On Sat, 6 Dec 2003 01:40:42 +0900, Christoph wrote:

[#87322] Re: Attempted roadmap of future instance variables.... — "T. Onoma" <transami@...> 2003/12/05

On Friday 05 December 2003 06:41 pm, Austin Ziegler wrote:

[#87066] What's the best way to create methods dealing with an object of a certain class? — Leif K-Brooks <eurleif@...>

I want to add a method to be run on Strings. Currently, I'm just adding

14 messages 2003/12/03
[#87072] Re: What's the best way to create methods dealing with an object of a certain class? — Lyle Johnson <lyle@...> 2003/12/03

Leif K-Brooks wrote:

[#87083] Some Regexp — orlovdn@... (Dmitry N Orlov)

I want to get array from file like this:

20 messages 2003/12/03

[#87203] sorting — vanjac12@... (Van Jacques)

I'm not sure where to post about this problem, so

18 messages 2003/12/04

[#87233] Generalized break? — Hal Fulton <hal9000@...>

I hate to bring up possible language changes, since there is

14 messages 2003/12/04

[#87255] WeakRef and Object#hash — Samuel Tesla <samuel@...>

I'm trying to implement a weak key hash to use for generic objects.

37 messages 2003/12/05
[#87259] Dumb question to which I ought to know the answer by now — "Mark J. Reed" <markjreed@...> 2003/12/05

Is there an assignment version of Hash#values_at, so I can assign

[#87266] Re: Dumb question to which I ought to know the answer by now — Austin Ziegler <austin@...> 2003/12/05

On Fri, 5 Dec 2003 12:42:05 +0900, Mark J. Reed wrote:

[#87333] Re: Attempted roadmap of future instance variables.... — "Weirich, James" <James.Weirich@...>

From: David A. Black [mailto:dblack@wobblini.net]

18 messages 2003/12/05
[#87337] Re: Attempted roadmap of future instance variables.... — Chris Thomas <chris@...> 2003/12/05

[#87402] Re: Attempted roadmap of future instance variables.... — matz@... (Yukihiro Matsumoto) 2003/12/06

Hi,

[#87382] Idea: Linux PIM in Ruby — Hal Fulton <hal9000@...>

On my wishlist of top 20 things I'd like to do: A PIM for Linux.

30 messages 2003/12/06
[#87407] Re: Idea: Linux PIM in Ruby — Lyle Johnson <lyle@...> 2003/12/06

Hal Fulton wrote:

[#87409] rbbr-0.5.0 — Masao Mutoh <mutoh@...>

Hi,

18 messages 2003/12/06

[#87430] Ideas for replacing $0==__FILE__ — Hal Fulton <hal9000@...>

I've accepted now that my "generalized break" was a bad idea. In

26 messages 2003/12/06
[#87720] Re: Ideas for replacing $0==__FILE__ — Eric Hodel <drbrain@...7.net> 2003/12/10

Hal Fulton (hal9000@hypermetrics.com) wrote:

[#87723] Re: Ideas for replacing $0==__FILE__ — Hal Fulton <hal9000@...> 2003/12/10

Eric Hodel wrote:

[#87726] Re: Ideas for replacing $0==__FILE__ — Eric Hodel <drbrain@...7.net> 2003/12/10

Hal Fulton (hal9000@hypermetrics.com) wrote:

[#87459] Trying to create a Ruby daemon — Samuel Kvarnbrink <samuel.kvarnbrink@...>

Hi,

11 messages 2003/12/07

[#87553] format money — saggmannen@... (saggmannen)

Hello, is there a way to format "Money"-style floats in ruby. E.g:

25 messages 2003/12/08

[#87587] Adjusting the Scope of Blocks — Mark Cox <mark_cox@...>

Hi,

22 messages 2003/12/09
[#87606] Re: Adjusting the Scope of Blocks — "Robert Klemme" <bob.news@...> 2003/12/09

[#87620] Re: Adjusting the Scope of Blocks — "David A. Black" <dblack@...> 2003/12/09

Hi --

[#87626] ANN: REXML 2.7.2 — ser@... (Sean Russell)

Hi,

18 messages 2003/12/09

[#87638] Inheriting variables, super, and "not super"? — Hugh Sasse Staff Elec Eng <hgs@...>

Is there a way in a method to say

11 messages 2003/12/09

[#87706] Docs for Socket, OpenSSL, etc — "James F. Hranicky" <jfh@...>

Are there any plans to add docs for modules like Socket and OpenSSL, etc to

23 messages 2003/12/10
[#87766] Re: Docs for Socket, OpenSSL, etc — Simon Strandgaard <neoneye@...> 2003/12/11

On Wed, 10 Dec 2003 23:20:21 +0900, James F. Hranicky wrote:

[#87769] Re: Docs for Socket, OpenSSL, etc — "James F. Hranicky" <jfh@...> 2003/12/11

On Thu, 11 Dec 2003 20:57:00 +0900

[#87780] Re: Docs for Socket, OpenSSL, etc — Dave Thomas <dave@...> 2003/12/11

[#87781] Re: Docs for Socket, OpenSSL, etc — "James F. Hranicky" <jfh@...> 2003/12/11

On Fri, 12 Dec 2003 00:07:28 +0900

[#87775] prog for g.c.d. of 2 integers — vanjac12@... (Van Jacques)

Topics from mathematics make good practice programs, IMO.

13 messages 2003/12/11

[#87783] problems with racc: $end token — "Luke A. Kanies" <luke@...>

Hello,

14 messages 2003/12/11
[#87789] Re: problems with racc: $end token — Jim Freeze <jim@...> 2003/12/11

On Friday, 12 December 2003 at 0:42:30 +0900, Luke A. Kanies wrote:

[#87819] Ruby-Talk Subject Matters — "T. Onoma" <transami@...>

Out of curiosity, how do others feel about "suggestive" threads? Do you feel

15 messages 2003/12/11

[#87856] Simple issue giving problems — Brad <coish@...>

Hello all,

17 messages 2003/12/11

[#88031] inplace assignment — "T. Onoma" <transami@...>

is there anyway, anyway at all, ugly hacks accepted, of doing inplace

40 messages 2003/12/14
[#88032] Re: inplace assignment — Hal Fulton <hal9000@...> 2003/12/14

T. Onoma wrote:

[#88034] Re: inplace assignment — "T. Onoma" <transami@...> 2003/12/14

On Sunday 14 December 2003 05:51 am, Hal Fulton wrote:

[#88037] Re: inplace assignment — Hal Fulton <hal9000@...> 2003/12/14

T. Onoma wrote:

[#88041] Re: inplace assignment — "T. Onoma" <transami@...> 2003/12/14

On Sunday 14 December 2003 07:49 am, Hal Fulton wrote:

[#88056] Re: inplace assignment — "David A. Black" <dblack@...> 2003/12/14

On Sun, 14 Dec 2003, T. Onoma wrote:

[#88059] Re: inplace assignment — "T. Onoma" <transami@...> 2003/12/14

On Sunday 14 December 2003 03:59 pm, David A. Black wrote:

[#88064] Re: inplace assignment — "David A. Black" <dblack@...> 2003/12/14

On Mon, 15 Dec 2003, T. Onoma wrote:

[#88077] All there is to know about Duck Typing (was: inplace assignment) — "T. Onoma" <transami@...> 2003/12/14

Alright, a number of things related to Duck Tpying have been popping up and I

[#88081] Re: All there is to know about Duck Typing (was: inplace assignment) — "David Naseby" <david.naseby@...> 2003/12/14

> -----Original Message-----

[#88147] extremely strange segfault — "Luke A. Kanies" <luke@...>

Hi all,

14 messages 2003/12/15

[#88150] UnboundMethods Useless? — "T. Onoma" <transami@...>

Urrrr.....

34 messages 2003/12/15
[#88239] Re: UnboundMethods Useless? — Dan Doel <djd15@...> 2003/12/16

You can do stuff like this:

[#88309] Re: UnboundMethods Useless? — "T. Onoma" <transami@...> 2003/12/17

On Tuesday 16 December 2003 08:54 pm, Dan Doel wrote:

[#88322] Re: UnboundMethods Useless? — Chad Fowler <chad@...> 2003/12/17

On Wed, 17 Dec 2003, T. Onoma wrote:

[#88323] Re: UnboundMethods Useless? — ts <decoux@...> 2003/12/17

>>>>> "C" == Chad Fowler <chad@chadfowler.com> writes:

[#88327] Re: UnboundMethods Useless? — "T. Onoma" <transami@...> 2003/12/17

On Wednesday 17 December 2003 01:21 pm, ts wrote:

[#88328] Re: UnboundMethods Useless? — ts <decoux@...> 2003/12/17

>>>>> "T" == T Onoma <transami@runbox.com> writes:

[#88332] Re: UnboundMethods Useless? — "T. Onoma" <transami@...> 2003/12/17

On Wednesday 17 December 2003 01:59 pm, ts wrote:

[#88333] Re: UnboundMethods Useless? — "David A. Black" <dblack@...> 2003/12/17

On Wed, 17 Dec 2003, T. Onoma wrote:

[#88336] Re: UnboundMethods Useless? — Peter <Peter.Vanbroekhoven@...> 2003/12/17

> I don't know what you mean by (ir)reversible, but the point is that

[#88337] Re: UnboundMethods Useless? — ts <decoux@...> 2003/12/17

>>>>> "P" == Peter <Peter.Vanbroekhoven@cs.kuleuven.ac.be> writes:

[#88159] Re: Extracting multiple lines from a file — "Berger, Daniel" <djberge@...>

> -----Original Message-----

18 messages 2003/12/15
[#88161] Re: Extracting multiple lines from a file — "Ron Coutts" <rcoutts@...> 2003/12/15

[#88166] Re: Extracting multiple lines from a file — "Mark J. Reed" <markjreed@...> 2003/12/15

On Tue, Dec 16, 2003 at 07:16:23AM +0900, Ron Coutts wrote:

[#88199] Re: Extracting multiple lines from a file — Derek Lewis <lewisd@...00f.net> 2003/12/16

On Tue, 16 Dec 2003, Mark J. Reed wrote:

[#88172] Copying methods from one class to another — "T. Onoma" <transami@...>

Is there any way to copy a method from one class to another?

22 messages 2003/12/16
[#88174] Re: Copying methods from one class to another — Jamis Buck <jgb3@...> 2003/12/16

T. Onoma wrote:

[#88183] Re: Copying methods from one class to another — "T. Onoma" <transami@...> 2003/12/16

On Tuesday 16 December 2003 05:23 am, Jamis Buck wrote:

[#88189] Re: Copying methods from one class to another — "David A. Black" <dblack@...> 2003/12/16

On Tue, 16 Dec 2003, T. Onoma wrote:

[#88191] Re: Copying methods from one class to another — "T. Onoma" <transami@...> 2003/12/16

On Tuesday 16 December 2003 02:51 pm, David A. Black wrote:

[#88195] Re: Copying methods from one class to another — Hacksaw <hacksaw@...> 2003/12/16

Sorry to step into the middle of a conversation, but what does this mean:

[#88211] Newbie questions — jfrapper@... (Jim Frapper)

I was wondering what the equivalent tools were to perldoc(ri is not)

44 messages 2003/12/16
[#88259] Re: Newbie questions — Chad Fowler <chad@...> 2003/12/16

On Wed, 17 Dec 2003, Jim Frapper wrote:

[#88266] Re: Newbie questions — Gavin Sinclair <gsinclair@...> 2003/12/16

On Wednesday, December 17, 2003, 8:10:19 AM, Chad wrote:

[#88270] Re: Newbie questions — Daniel Carrera <dcarrera@...> 2003/12/16

>

[#88271] Re: Newbie questions — "Luke A. Kanies" <luke@...> 2003/12/16

On Wed, 17 Dec 2003, Daniel Carrera wrote:

[#88272] Re: Newbie questions — Daniel Carrera <dcarrera@...> 2003/12/16

On Wed, Dec 17, 2003 at 07:07:45AM +0900, Luke A. Kanies wrote:

[#88280] Re: Newbie questions — "Luke A. Kanies" <luke@...> 2003/12/16

On Wed, 17 Dec 2003, Daniel Carrera wrote:

[#88370] Re: Newbie questions — Derek Lewis <lewisd@...00f.net> 2003/12/17

[#88220] Re: Newbie questions — "Berger, Daniel" <djberge@...>

> -----Original Message-----

31 messages 2003/12/16
[#88224] Re: Newbie questions — Hal Fulton <hal9000@...> 2003/12/16

Berger, Daniel wrote:

[#88227] Re: Newbie questions — Thomas Adam <thomas_adam16@...> 2003/12/16

--- Hal Fulton <hal9000@hypermetrics.com> wrote:

[#88228] Re: Newbie questions — Hal Fulton <hal9000@...> 2003/12/16

Thomas Adam wrote:

[#88289] Very odd IO problem — Brad <coish@...>

All:

18 messages 2003/12/17

[#88414] Yukihiro - Please ensure backwards compatibility — jobeicus@... (Joseph Benik)

having recently migrated one of my machines from a 1.6 flavor to the

14 messages 2003/12/18

[#88494] How to return more than one result from a method? — Tim Hunter <cyclists@...>

I'm trying to code a method that has two result values. The values are

14 messages 2003/12/19

[#88581] replacing two EOL chars by one — xah@... (Xah Lee)

i have a bunch of java files that has spaced-out formatting that i

23 messages 2003/12/20

[#88643] Ruby 1.8.1 preview4 — matz@... (Yukihiro Matsumoto)

Hi,

32 messages 2003/12/22

[#88731] RubyGems and dependencies — sera@... (Francis Hwang)

Two RubyGems questions about dependencies:

16 messages 2003/12/23

[#88781] TkText freezes — quillion <me@...>

Hello all,

21 messages 2003/12/24

[#88814] ruby 1.8.1 — matz@... (Yukihiro Matsumoto)

Merry Christmas,

25 messages 2003/12/24

[#88936] Inconsistent value of uninitialized variable — Gavin Sinclair <gsinclair@...>

The following statement, free of all context, generates an error:

10 messages 2003/12/28

[#88954] An addition to Array (or Enumerable)? — Harry Ohlsen <harryo@...>

Yesterday, I wanted to get the output from "ls -l some_file" and pull out just the file size and the file name. As I start writing this, I realise, of course, that I'd have been better off just using the File#size method, but I still think the issue I hit is interesting.

12 messages 2003/12/28

[#89015] ruby-dev summary 22273-22434 — "Takaaki Tateishi" <ttate@...>

Hello,

16 messages 2003/12/30
[#89016] Re: ruby-dev summary 22273-22434 — Austin Ziegler <austin@...> 2003/12/30

On Wed, 31 Dec 2003 00:45:11 +0900, Takaaki Tateishi wrote:

Re: Underpinnings of Method Wrapping

From: Peter <Peter.Vanbroekhoven@...>
Date: 2003-12-12 03:40:37 UTC
List: ruby-talk #87882
> They do make sense, very good sense. And you make a good point. The problem is
> that each class is linked to the next, not each method. So overcoming the
> inefficiencies of picture #1 may prove a bit difficult. If no other way to
> circumvent presents itself, and assuming it is a signifficant performance
> loss, it may mean that the way inheritence currently works in Ruby needs to
> be improved to allow greater granularity, and thus work on a method by method
> basis rather than class by class.

I know. In a compiled language, the overhead of searching for the class or
superclass with the appropriate method is at compile-time, while in Ruby
you need to do the search at run-time because of its dynamism. I don't
know how much the Ruby interpreter optimizes or can omtimize. Only it
seemed to get worse when wraps were done by adding singleton classes, but
that depends on how popular wraps will be. And whether the 90-10 rule
applies to wraps as well.

> Clearly I have ;-) But please, no cracks on the spelling. I dispise it. And if
> I had my way, id prbly typ lk ths.

No cracks, promised. They were just congrats :-)

> Exactly! That's exactly what I've been trying to convey. And is also exactly
> what tuned me on to my def syntax. (Guess I don't explain myself very well.
> Oh well.) Nonetheless, I'm glad you have envisoned this way of looking at it.
> It really made wraps make sense to me. And I see what you're saying about
> super. So, like subclasses, wrap should be perisistent, and it takes an
> explict undef to flush them, as they can always be cricumvented by not using
> super, but the may be gained back.

OK, but my impression was that you wanted those singletons to be
"implicit", that the singleton classes would make up the implementation
and wouldn't show up explicitly.

  class Test
    def m1
      ...
    end
    def m2
      ...
    end
  end

  wrapper TestWrap
    def m1
      ...
      super
      ...
    end
    def m2
      ... # no super
    end
  end

  class Test
    wrap TestWrap
  end

If we have a situation like this, a wrap is always defined in a wrapper
class. Redefining a wrap happens in the wrapper class. The wrapper is
explicitly like a subclass (explicit to the programmer that is), and so we
really can use the same syntax as we've always done in Ruby. Redefining
the primary method happens in Test, redefining a wrap happens in TestWrap.
So to the programmer it is no different from using subclassing, except
that anyone using Test unknowingly also uses TestWrap. That's what I
meant. Doesn't that kinda solve the syntax problem? A wrapper could still
refrain from calling super, but that is its constitutional right (we
should create a constitution for wraps). But everything is explicit (since
subclassing is explicit, and redefining methods is), and it is consistent
with current Ruby. That's what I was hoping to tell you.

Oh, and we could give a wrapper (say it gets Wrapper as class, like a
class has Class as class and a module has Module as class) a callback
method "wrappee_changed" that is called when the class (or wrapper) that
is wrapped changes such that it can take the right decision. We can give
Wrapper a private method set_flush(boolean) that sets default behavior of
"wrappee_changed", but you can redefine it and choose your own behavior.
That is possible if the layers are explicitly offered to the programmer.

But I get the impression that I had the wrong impression and that you
already thought of all of this...

And to go a bit further, I think with inner wraps (as in the ones that get
flushed when the primary methods is redefined) the "unknowingly" aspect is
less useful. There's the primary method, then the inner wraps, and then
the outer wraps, and I get the feeling that the outermost inner wrap is
what is seen on the outside, and the outer wraps are invisible. And then
inner wraps is much like subclassing since the collection of inner wraps
and primary method really make up the whole of the method.

And besides this distinction between inner and outer wraps, there is also
the kind of wrap that is used for chaining hooks, like method_missing,
inherited, method_added, ... but that feels like a different kind of
application of wraps altogether. It feels more method based and making a
complete layer for it seems overkill.

> >   class A {}
> >   class B {}
> >
> >   aspect BiDirLinkAB {
> >
> >     private A B.linkToA = null;
> >     // a link to B in class A, but class A can't see 'linkToA'
> >     private B A.linkToB = null;
> >     // a link to A in class B, but class B can't see 'linkToB'
> >
> >     public void A.linkTo(B obj) {
> >       if (linkToB) linkToB.linkToA = null;
> >       // Note that although this method goes into class A, it can access
> >       // linkToA in class B
> >       linkToB = obj;
> >       if (obj.linkToA) obj.linkToA.linkToB = null;
> >       obj.linkToA = this;
> >     }
> >
> >     public void B.linkTo(A obj) {
> >       // analogous
> >     }
> >
> >     public B A.getLinkToB() {
> >       return linkToB;
> >     }
> >
> >     public A B.getLinkToA() {
> >       return linkToA;
> >     }
> >
> >   }
> >
> > There's no wrapping, but it's cross-cutting since you have one entity (the
> > aspect) containing the code for maintaining data in two separate classes.
>
> Sorry, my java skills stink. As best I can make out, you're talking about a
> variable or method(?) particular to a class, but not visible to the class,
> but rather to the aspect that defines it. Sort of like a hash with an implied
> self.class for an index.
>
>   @@private_to_aspect[self.class]
>
> If that about right?

I suck at AspectJ lingo too. Java should still be doable. I just used
AspectJ lingo (or my version of it) because that is existing syntax, in
Ruby it would be speculative. But I don't really know what you mean with
the hash. My first idea would be to say that it is like a hash indexed by
the objects that are linked.

Wait, let me put it this way. Without aspects, a bidirectional link would
look like this:

  class A
    def link2B=(objB)
      @link2B = objB
      # and other stuff to keep the links consistent
    end
  end

  class B
    def link2A=(objA)
      @link2A = objA
      #  and other stuff to keep the links consistent
    end
  end

Maintaining those links (i.e., if object1 points to object2, then object2
should also point to object1) is a cross-cutting concern (it involves data
in two classes), we would like to make it an aspect. Then the aspect could
declare @link2B and @link2A to be private to the aspect, such that both
link2B= and @link2A can access them because they belong to the aspect, but
other methods in class A and B can't. The only way to move @link2B and
@link2A to the module containing the aspect methods, would be by
introducing two hashes @@link2A and @@link2B that respectively map object
of class B to objects of class B and vice versa.

> I think its b/c persistence is a sticking point at the moment. Perhaps we
> should give some focus to this matter once again, starting with a review of
> what we've figured out about it thus far. Think I'll add some subsection note
> pages to the wiki page, this issue will be the first. Work for you?

OK. But first I'd want your opinion on what I mentioned above about
introducing wrappers next to modules and classes. Wrappers would inherit
from modules just like classes BTW.

But I'll work it out and append it to the examples I currently have. I'll
see how far I get by tomorrow evening, if it's in a decent state, I'll
send it to you. Otherwise it's for after the weekend. I'm currently using
the RD format (and using the cool rubygarden wiki CSS in the generated
html :-)

> Thanks. Is interesting, but does seem like a difficult undertaking. I can see
> why it is still research.

Yes, it is easy to see why wrapping has catched on already unlike the
things about optimization. But I think general code weaving holds some
relation to code generation.

It's bed time for /me now.

Peter

PS: I wanted to do something like this today, to provide for the future
addition of indicators, but it didn't work:

  class Test

    def test
      instance_methods(true).each do |m, i = ''|
        if i =~ /silly_indicator/
          ...
        end
      end
    end

  end

Apparently blocks can't have default values for arguments...


In This Thread