Thread overview
[Issue 17358] [REG 2.074.0] std.stdio.File.lockingTextWriter.put no longer accepts chains of characters
Apr 28, 2017
Jack Stouffer
Apr 28, 2017
Jack Stouffer
Apr 28, 2017
Jack Stouffer
Apr 28, 2017
Jack Stouffer
Apr 29, 2017
Jack Stouffer
May 26, 2019
Dlang Bot
May 26, 2019
Dlang Bot
April 28, 2017
https://issues.dlang.org/show_bug.cgi?id=17358

Jack Stouffer <jack@jackstouffer.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Hardware|x86                         |All
                 OS|Mac OS X                    |All

--
April 28, 2017
https://issues.dlang.org/show_bug.cgi?id=17358

Jack Stouffer <jack@jackstouffer.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|enhancement                 |regression

--
April 28, 2017
https://issues.dlang.org/show_bug.cgi?id=17358

--- Comment #1 from Jack Stouffer <jack@jackstouffer.com> ---
possibly introduced in https://github.com/dlang/phobos/pull/5229

--
April 28, 2017
https://issues.dlang.org/show_bug.cgi?id=17358

hsteoh@quickfur.ath.cx changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hsteoh@quickfur.ath.cx

--- Comment #2 from hsteoh@quickfur.ath.cx ---
`ElementType!(typeof(chain(s, "\n")))` returns `uint`. That's the problem. Now,
why ElementType should return `uint` is a different story... gonna investigate
now.

--
April 28, 2017
https://issues.dlang.org/show_bug.cgi?id=17358

--- Comment #3 from Jack Stouffer <jack@jackstouffer.com> ---
(In reply to hsteoh from comment #2)
> `ElementType!(typeof(chain(s, "\n")))` returns `uint`. That's the problem.
> Now, why ElementType should return `uint` is a different story... gonna
> investigate now.

https://issues.dlang.org/show_bug.cgi?id=17141

--
April 29, 2017
https://issues.dlang.org/show_bug.cgi?id=17358

Jack Stouffer <jack@jackstouffer.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Depends on|                            |17141

--
April 30, 2017
https://issues.dlang.org/show_bug.cgi?id=17358

Steven Schveighoffer <schveiguy@yahoo.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |schveiguy@yahoo.com

--- Comment #4 from Steven Schveighoffer <schveiguy@yahoo.com> ---
Yes, the bug that the PR fixed was to prevent lockingTextWriter.put from taking an arbitrary byte, ubyte, short, ushort, int, or uint range and integer promoting the elements to dchar. It was decided to allow ubyte[] specifically (and write it directly as an array of ubytes), because of the inability to use byChunk and lockingBinaryWriter to achieve a direct copy of a file.

IMO, the whole system is really messed up. It doesn't make sense to accept a range of arbitrary bytes to a text writer, but lockingBinaryWriter changes the stream from a text to binary (Which means something for Windows newlines).

I'm not sure of a "correct" way to fix this regression (which really is erroneous behavior which happened not to blow up). If the identified CommonType bug is fixed, we still are dealing with integer promoting chars to dchars inside chain, which isn't right either.

--
May 26, 2019
https://issues.dlang.org/show_bug.cgi?id=17358

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #5 from Dlang Bot <dlang-bot@dlang.rocks> ---
@SSoulaimane updated dlang/dmd pull request #9889 "Fix issues 17141, 17358 - Ternary operator converts characters to integers" fixing this issue:

- Fix issues 17141, 17358 - Ternary operator converts characters to integers

https://github.com/dlang/dmd/pull/9889

--
May 26, 2019
https://issues.dlang.org/show_bug.cgi?id=17358
Issue 17358 depends on issue 17141, which changed state.

Issue 17141 Summary: Type Inference Incorrectly Converts Characters to Integers https://issues.dlang.org/show_bug.cgi?id=17141

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--
May 26, 2019
https://issues.dlang.org/show_bug.cgi?id=17358

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #6 from Dlang Bot <dlang-bot@dlang.rocks> ---
dlang/dmd pull request #9889 "Fix issues 17141, 17358 - Ternary operator converts characters to integers" was merged into master:

- 8826be69875448bfb18ecb887e89567e75a1b48f by سليمان السهمي  (Suleyman Sahmi):
  Fix issues 17141, 17358 - Ternary operator converts characters to integers

https://github.com/dlang/dmd/pull/9889

--