From: "ioquatix (Samuel Williams)" Date: 2022-07-26T22:14:35+00:00 Subject: [ruby-core:109331] [Ruby master Bug#18810] Make `Kernel#p` interruptable. Issue #18810 has been updated by ioquatix (Samuel Williams). > My concern is that inserting p(...) changes a program behavior unintentionally (except that the p writes something to stdout, of course). There are so many ways it can do this. If the fiber scheduler is active it is a totally different code path. What about bufferred output (common on stdout). What you really want is a blocking write to stderr, e.g. `fprintf(stderr, ...)`. This has very few side effects. ---------------------------------------- Bug #18810: Make `Kernel#p` interruptable. https://bugs.ruby-lang.org/issues/18810#change-98475 * Author: ioquatix (Samuel Williams) * Status: Open * Priority: Normal * Assignee: ioquatix (Samuel Williams) * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN ---------------------------------------- While figuring out https://bugs.ruby-lang.org/issues/18465 I found a test which fails when `rb_io_flush` becomes blocking.: https://github.com/ruby/ruby/commit/fe6b2e20e9f17ed2c2900aa72994e075ffdc7124 It seems unusual to me that `Kernel#p` is uninterruptible (unique among all Ruby methods). I'd like to make `Kernel#p` interruptible. -- https://bugs.ruby-lang.org/ Unsubscribe: