[#4766] Wiki — "Glen Stampoultzis" <trinexus@...>

21 messages 2000/09/04
[#4768] RE: Wiki — "NAKAMURA, Hiroshi" <nahi@...> 2000/09/04

Hi, Glen,

[#4783] Re: Wiki — Masatoshi SEKI <m_seki@...> 2000/09/04

[#4785] Re: Wiki — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/09/05

Howdy,

[#4883] Re-binding a block — Dave Thomas <Dave@...>

16 messages 2000/09/12

[#4930] Perl 6 rumblings -- RFC 225 (v1) Data: Superpositions — Conrad Schneiker <schneik@...>

Hi,

11 messages 2000/09/15

[#4936] Ruby Book Eng. translation editor's questions — Jon Babcock <jon@...>

20 messages 2000/09/16

[#5045] Proposal: Add constants to Math — Robert Feldt <feldt@...>

15 messages 2000/09/21

[#5077] Crazy idea? infix method calls — hal9000@...

This is a generalization of the "in" operator idea which I

17 messages 2000/09/22

[#5157] Compile Problem with 1.6.1 — Scott Billings <aerogems@...>

When I try to compile Ruby 1.6.1, I get the following error:

15 messages 2000/09/27

[ruby-talk:4881] Re: FEATURE REQUEST: Fixnum bitfields

From: matz@... (Yukihiro Matsumoto)
Date: 2000-09-12 03:33:06 UTC
List: ruby-talk #4881
Hi,

In message "[ruby-talk:4872] Re: FEATURE REQUEST: Fixnum bitfields"
    on 00/09/12, Dave Thomas <Dave@thomases.com> writes:

|> |I just realized that the '[]=' is not implimented for Fixnum and Bignum.
|> |Add that to my feature request. :)
|> 
|> I don't think it's possible, since Numbers are immutable.
|> There's no way to change a value in a variable by invoking a method.
|
|Is it a different operation than (say) Fixnum#<< or Fixnum#+ ?
|Wouldn't it just return a new Fixnum?

Fixnum#+ returns new fixnum.  But you probably want

  foo = 0xff
  foo[1,1] = 0

make the value of foo to be 0xfe.  To archive this, there are two
options:

  (a) change the value of the object referenced from the variable foo,
      which is impossible for immutable.

  (b) change the value of the variable foo, which is impossible for
      current Ruby behavior.  Method invocation does not affect the
      value of the variable, altough it may change the state of the
      object.

Then, possible solutions are:

  (1) use mutable object, e.g. BitVector like Andy mentioned in
      [ruby-talk:4858].

  (2) define String#| etc. to treat string as bitstring.  in addition,
      String and Integer should be interexchangable.

  (3) avoid using []=.  define new bit operations to Integer.  for
      example:

        foo = 0xfffffffffffffff
        foo = foo.vec(36,4,DATA_SEGMENT)

  (4) or other better ideas I can't think of right now.

Personally, I prefer (1).

							matz.


In This Thread