Issue #10214 has been updated by Nobuyoshi Nakada. Status changed from Open to Feedback You can do ~~~C ID2SYM(rb_intern("name")) == sym ~~~ `rb_intern` creates a permanent ID which never changes. ---------------------------------------- Feature #10214: new functions for compare of symbols in C API https://bugs.ruby-lang.org/issues/10214#change-48715 * Author: Hans Mackowiak * Status: Feedback * Priority: Normal * Assignee: * Category: core * Target version: ---------------------------------------- currently i often use Symbols as enums in my bindings, have something like this with comparing symbols by their ID ~~~ if(SYMBOL_P(sym)) { if(rb_intern("name") == SYM2ID(sym)) return ENUM_NAME; } ~~~ now with dynamic symbols and other ones, its problematic because with that i always foce a dynamic symbol to become static or pinned (that what SYM2ID does) so imo there need to be better ways to comare is an ID and a VALUE-sym or two VALUE-syms and check if they have the same content (hm because comparing two VALUE with == might/does not work) -- https://bugs.ruby-lang.org/