From: ko1@... Date: 2020-07-17T04:19:22+00:00 Subject: [ruby-core:99199] [Ruby master Feature#13381] [PATCH] Expose rb_fstring and its family to C extensions Issue #13381 has been updated by ko1 (Koichi Sasada). Nobu and I discussed the name, we want to choose `rb_str_pool` terminology. * `rb_str_pool` prefix * `rb_str_pool(VALUE)` * `rb_str_pool_buff(const char *ptr, long len)` * `rb_str_pool_cstr(const char *ptr)` * `rb_enc_str_pool_buff(const char *ptr, long len, rb_encoding *enc)` * `rb_enc_str_pool_cstr(const char *ptr, rb_encoding *enc)` * FYI: `rb_str_new` series: * `rb_str_new(const char *ptr, long len)` * `rb_str_new_cstr(const char *ptr)` * `rb_enc_str_new(const char *ptr, long len, rb_encoding *enc)` * `rb_enc_str_new_cstr(const char *ptr, rb_encoding *enc)` If there is no comments, we will merge it soon. ---------------------------------------- Feature #13381: [PATCH] Expose rb_fstring and its family to C extensions https://bugs.ruby-lang.org/issues/13381#change-86578 * Author: eagletmt (Kohei Suzuki) * Status: Assigned * Priority: Normal ---------------------------------------- https://github.com/ruby/ruby/pull/1559 Currently, C extensions cannot use fstrings. I'd like to use `rb_fstring_cstr` instead of `rb_str_new_cstr` for static strings in C extensions to avoid excess allocation. I think there's several use cases. - https://github.com/k0kubun/hamlit/blob/v2.8.0/ext/hamlit/hamlit.c#L508-L512 - https://bitbucket.org/ged/ruby-pg/src/e5eb92cca97abc0c6fc168acfad993c2ad314589/ext/pg_connection.c?at=v0.20.0&fileviewer=file-view-default#pg_connection.c-3679 - https://bitbucket.org/ged/ruby-pg/src/e5eb92cca97abc0c6fc168acfad993c2ad314589/ext/pg_copy_coder.c?at=v0.20.0&fileviewer=file-view-default#pg_copy_coder.c-38 -- https://bugs.ruby-lang.org/ Unsubscribe: