> |Why there is a need for a distinction between "local" and "dynamic"
> |variables?... couldn't they all be "dynamic"? what would be the impact?
> No need.  "dynamic" is a term used by Ruby internal
> Internal distinction is to tune up performance.

Recently declared "dynamic" variables are faster than early dynamics,
but "local" (outermost) are faster. It seems strange... Especially the
idea of a linked list of variables. I tried a benchmark:

q1=1
(1..10).each{|i|
  c1=c2=c3=c4=c5=v1=v2=v3=v4=v5=1
  z1=z2=z3=z4=z5=x1=x2=x3=x4=x5=1
  (1..5000).each{|j|
#    z1+=1; z1+=1; z1+=1; z1+=1; z1+=1
#    v5+=1; v5+=1; v5+=1; v5+=1; v5+=1
     q1+=1; q1+=1; q1+=1; q1+=1; q1+=1
  }
}

v5: early dynamic: 4.0 sec
z1: late dynamic:  3.0 sec
q1: local:         2.7 sec

here the effect is widely exaggerated; real situations wouldn't show so
much of a difference. What I'm curious about is, if this is the
improvement, then what was the original situation?

matju