Issue #18576 has been updated by Eregon (Benoit Daloze).
Also given the efforts of @byroot in
https://bugs.ruby-lang.org/issues/18576#note-21 and
the offer from @matz in
https://bugs.ruby-lang.org/issues/18576#note-19, I'd like to
do exactly what matz said:
If you (or someone) estimate the compatibility issue
is minimal, and want to experiment to see if it's true during pre-release, I'd say
go.
I estimate it to be minimal.
We can know from the experiment if it's true or not, there are more than 11 months
before 3.4, so plenty of time to discover any potential issue with it.
----------------------------------------
Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
https://bugs.ruby-lang.org/issues/18576#change-106185
* Author: byroot (Jean Boussier)
* Status: Open
* Priority: Normal
* Target version: 3.4
----------------------------------------
### Context
I'm now used to it, but something that confused me for years was errors such as:
```ruby
> "fée" + "\xFF".b
(irb):3:in `+': incompatible character encodings: UTF-8 and ASCII-8BIT
(Encoding::CompatibilityError)
```
When you aren't that familiar with Ruby, it's really not evident that `ASCII-8BIT`
basically means "no encoding" or "binary".
And even when you know it, if you don't read carefully it's very easily confused
with `US-ASCII`.
The `Encoding::BINARY` alias is much more telling IMHO.
### Proposal
Since `Encoding::ASCII_8BIT` has been aliased as `Encoding::BINARY` for years, I think
renaming it to `BINARY` and then making asking `ASCII_8BIT` the alias would significantly
improve usability without backward compatibility concerns.
The only concern I could see would be the consistency with a handful of C API functions:
- `rb_encoding *rb_ascii8bit_encoding(void)`
- `int rb_ascii8bit_encindex(void)`
- `VALUE rb_io_ascii8bit_binmode(VALUE io)`
But that's for much more advanced users, so I don't think it's much of a
concern.
--
https://bugs.ruby-lang.org/