特性 #16131:移除 $SAFE、污点和信任 - Ruby

主要观点:

  • 关联了多个 Bug 和 Feature,包括Feature #15998Feature #8468Bug #9588等,这些关联已添加。
  • 提议移除$SAFE和污点跟踪,提出了不同 Ruby 版本的移除时间表:2.7 移除污点跟踪/机制,设置/访问$SAFE有非详细警告,taint/trust/untaint/untrust变为无操作并在调用时有详细警告;3.0 设置/访问$SAFE无警告,它变为普通全局变量,taint/trust/untaint/untrust在调用时有非详细警告;3.2 taint/trust/untaint/untrust在调用时有非详细警告;3.3 移除taint/trust/untaint/untrust
  • 延迟移除taint/trust/untaint/untrust方法的原因是大多数 gem 要支持所有当前支持的 Ruby 版本,过早移除可能使这更困难。
  • 对于tainted?trusted?,建议在 2.7 有非详细警告并在 3.0 移除,同时继续支持污点跟踪的某些状态。
  • 已添加相关拉取请求,处理$SAFE相关的警告和操作,如移除对$SAFE的使用等,部分已合并,部分仍在处理中,存在测试失败等情况,需与上游协商处理。

关键信息:

  • 不同 Ruby 版本关于$SAFE和污点相关操作的移除计划和状态。
  • 涉及的多个 Bug 和 Feature 及其关联情况。
  • tainted?trusted?的处理建议。
  • 相关拉取请求的处理过程和状态。

重要细节:

  • 如在不同 Ruby 版本中$SAFE相关操作的具体变化,如 2.7 中设置/访问$SAFE的警告等。
  • 各个库在处理$SAFE相关变化时的情况,如 rake 已合并等。
  • 测试失败的情况及相关处理,如对 test/ruby/test_require.rb 测试的处理等。
阅读 24
0 条评论