[#97536] [Ruby master Bug#16694] JIT vs hardened GCC with PCH — v.ondruch@...
Issue #16694 has been reported by vo.x (Vit Ondruch).
11 messages
2020/03/18
[ruby-core:97469] [Ruby master Bug#16406] `(lambda_proc << normal_proc).lambda?` should return false
From:
naruse@...
Date:
2020-03-13 12:23:51 UTC
List:
ruby-core #97469
Issue #16406 has been updated by naruse (Yui NARUSE).
Backport changed from 2.5: DONTNEED, 2.6: REQUIRED, 2.7: REQUIRED to 2.5: DONTNEED, 2.6: REQUIRED, 2.7: DONE
ruby_2_7 52bb32d6b71365cb24273de3eed5a712206815f3 [Backport #16406].
----------------------------------------
Bug #16406: `(lambda_proc << normal_proc).lambda?` should return false
https://bugs.ruby-lang.org/issues/16406#change-84616
* Author: alanwu (Alan Wu)
* Status: Closed
* Priority: Normal
* Assignee: alanwu (Alan Wu)
* Target version: 2.8
* ruby -v: ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]
* Backport: 2.5: DONTNEED, 2.6: REQUIRED, 2.7: DONE
----------------------------------------
Consider:
```ruby
plus = proc { |a, b| a + b }
mult_two = ->(x) { x * 2 }
composed = mult_two << plus
p [composed. lambda?, composed.call([1, 2])]
```
I think this ought to print `[false, 6]` instead of `[true, 6]`, as the call `composed.call([1, 2])` is clearly not using lambda semantics.
Since `composed = f << g` calls `g` first, I think it makes sense to report `#lambda?` base on whether `g` has lambda semantics.
I have a pull request at https://github.com/ruby/ruby/pull/2729 to make this change.
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>