Skip to content

Instantly share code, notes, and snippets.

@sorah
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sorah/9265008 to your computer and use it in GitHub Desktop.
Save sorah/9265008 to your computer and use it in GitHub Desktop.

Commits around degrade in rails/rails#14188 https://bugs.ruby-lang.org/issues/9223


  • r44137: Change to use rb_hash_new. Extra states won't be copied after this change.
  • r44247: Add constant to switch behavior. Prepare to show warnings. (HASH_REJECT_COPY_MISC_ATTRIBUTES)
  • r44250: Fix constant name differs in ifdef, which introduced at previous commit (r44247) (HASH_REJECT_COPY_MISC_ATTRIBUTES)
  • r44262: Show warnings when --verbose is enabled. (HASH_REJECT_COPY_MISC_ATTRIBUTES)
  • r44263: Revert to 2.0.0 behavior (copy misc attributes) by set HASH_REJECT_COPY_MISC_ATTRIBUTES to 1.
  • (Ruby 2.1.0 release branch has born)
  • r44358: Changing constant name (MISC_ATTRIBUTES to EXTRA_STATES; HASH_REJECT_COPY_EXTRA_STATES). Old constant name in ifdef condition was not fixed in this commit; Always use rb_hash_new, so extra states won't be copied.
  • r44360: Removing excess parenthesis. (HASH_REJECT_COPY_EXTRA_STATES)
  • r44370: Fixing old constant name in ifdef condition, which introduced at r44358. (HASH_REJECT_COPY_EXTRA_STATES) This hasn't been backported to 2.1.1
  • r44438: Switch to new behavior (don't copy extra states) by setting HASH_REJECT_COPY_EXTRA_STATES to 1. This is not backported to 2.1 and shouldn't be backported. (This commit is for 2.2.0dev)
  • r44439: Removing dead codes made by r44438.

  • r44137: rb_hash_new を利用するように変更
  • r44247: 警告を出力するための準備と、属性コピーをしないようにした (HASH_REJECT_COPY_MISC_ATTRIBUTES)
  • r44250: r44247 で ifdef と define の定数名違いを修正 (HASH_REJECT_COPY_MISC_ATTRIBUTES)
  • r44262: 警告を表示するように、どの属性がコピーされなかったか、というのも表示するように。また、警告は ruby --verbose 時のみ表示するように (HASH_REJECT_COPY_MISC_ATTRIBUTES)
  • r44263: HASH_REJECT_COPY_MISC_ATTRIBUTES を 1 にして警告付きで従来通りの挙動に。
  • (Ruby 2.1.0 ブランチが切られる)
  • r44358: MISC_ATTRIBUTES から追加の状態という言葉へ定数名を変更。 (HASH_REJECT_COPY_EXTRA_STATES) ここで一箇所、警告とは別で rb_hash_new を呼ぶか従来通りの挙動にするかという ifdef で定数名の変更漏れが発生。 (0=rb_hash_new, 1=従来通り)
  • r44360: 無駄な()を消しています。 (HASH_REJECT_COPY_EXTRA_STATES)
  • r44370: r44358 で発生した定数名の変更漏れを修正しています。 (HASH_REJECT_COPY_EXTRA_STATESA) おそらくこれがバックポート漏れ
  • r44438: 属性コピーを再びやめています。これはおそらく 2.2.0dev なので 2.1 バックポートされません。
  • r44439: 定数と ifdef、警告を消しています。

ref: https://github.com/ruby/ruby/commits/v2_1_1/hash.c

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment