Feature #8906
closed
Added by ko1 (Koichi Sasada) over 11 years ago.
Updated about 11 years ago.
Description
Now, Integer and Float objects are frozen objects.
How about to freeze Symbol objects, too?
I think Symbol is friend of Integer.
Current behavior:
p :foo.frozen? #=> false
:foo.instance_variable_set(:@foo, 1)
p :foo.instance_variable_get(:@foo) #=> 1
Background of this proposal:
Now, I'm working on "GC-able Symbols" feature.
Freezing symbols make this feature easier.
for example:
(1) set an instance variable @iv for symbol s
(2) collect s
(3) generate s
(4) what value of @iv for s returns?
Symbol is a symbol is a symbol. It's not a string, nor an integer.
Besides that, I agree with making symbols frozen.
Matz.
+1. Anything that can't be extended and whose regular state can't be mutated (not counting user-provided instance vars and such) should be frozen.
Cool, I love frozen stuff!
- Status changed from Open to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r42974.
Koichi, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
- include/ruby/ruby.h: make Symbol objects frozen.
[Feature #8906]
I want to freeze this good day, too.
- test/ruby/test_eval.rb: catch up this change.
- test/ruby/test_symbol.rb: add a test to check frozen symbols.
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0