On Fri, 16 Jul 2004 10:47:15 +0900, Xiangyu  Yang
<xiangyu.yang / gmail.com> wrote:
> gabriele renzi wrote:
> > If you're working with hardware check out
> > http://www.aracnet.com/~ptkwt/ruby_stuff/RHDL/
> > Ruby Hardware Description Language :)
> An interest thing.
> 
> In your RHDL you have to use .assign or .<< to do signal assignment,
> annoying thing also in my code for HW CPU model.
> 
> In ruby, the "=" will assign other *object* to a *variable*, and can't
> (and shouldn't) be overrided. There are no simple way to modify the
> state of an *object* referenced by a *variable*. Using .assign or
> overriding other operators to do this job are both ugly. I notice that
> someone suggested ":=" operator which can be overrided. I dream of it
> all the days :). If I have ":=", I'm sure that my CPU model will save
> at least half of the current lines and the program will be much more
> natural and clearer.
> 
> In short, when you use ruby to model some objects, the ability to
> assign/modify the *object* state/value in simple expression way is very
> useful. It provides the possibility of running ruby code *directly* to
> model other worlds.

Right. But not all object states or values can be changed that way,
and there is no meaningful default operation for such a behaviour.
Thus, it makes more sense to use the appropriate #<< or #assign
mechanism.

-austin
-- 
Austin Ziegler * halostatue / gmail.com
               * Alternate: austin / halostatue.ca