Thread overview
[Issue 9725] New: std.string.format does wasteful UTF decoding
Mar 15, 2013
Vladimir Panteleev
Mar 15, 2013
Vladimir Panteleev
Mar 15, 2013
Vladimir Panteleev
Mar 15, 2013
Vladimir Panteleev
Jul 13, 2013
Kenji Hara
March 15, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9725

           Summary: std.string.format does wasteful UTF decoding
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: performance
          Severity: normal
          Priority: P3
         Component: Phobos
        AssignedTo: nobody@puremagic.com
        ReportedBy: thecybershadow@gmail.com


--- Comment #0 from Vladimir Panteleev <thecybershadow@gmail.com> 2013-03-15 06:14:17 EET ---
import std.string; void main() { format("\xFF"); }

This program throws, indicating that the "format" function performs UTF-8 decoding.

This is a pointless waste of cycles. All format specifiers are in the lower-ASCII range, and both the input and output are UTF-8. Should the format specifier syntax require reading exactly one Unicode character, it should do so when required, rather than reading the entire string one dchar at a time, then encoding the results back into an UTF-8 string.

It is worth noting that writefln does not have the same issue.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
March 15, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9725



--- Comment #1 from Vladimir Panteleev <thecybershadow@gmail.com> 2013-03-15 06:20:54 EET ---
Actually, it looks like a bug in a static if in Appender.put(). Looking into
it.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
March 15, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9725



--- Comment #2 from Vladimir Panteleev <thecybershadow@gmail.com> 2013-03-15 06:35:24 EET ---
Looks like the fix to issue 5663 wasn't complete, because
const(immutable(char)) is immutable(char), not const(char).

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
March 15, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9725


Vladimir Panteleev <thecybershadow@gmail.com> changed:

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


--- Comment #3 from Vladimir Panteleev <thecybershadow@gmail.com> 2013-03-15 06:41:28 EET ---
https://github.com/D-Programming-Language/phobos/pull/1209

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
March 17, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9725



--- Comment #4 from github-bugzilla@puremagic.com 2013-03-17 02:40:19 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/0b1f86119a1bb0776bd15bd843286cf1c920d264
std.array: Fix inefficient appending of const(char)[] (Issue 9725)

https://github.com/D-Programming-Language/phobos/commit/f4ddfec8d6645231a6a9b6869c25e0f1ba4f5a3f Merge pull request #1209 from CyberShadow/fix9725

std.array: Fix inefficient appending of const(char)[] (Issue 9725)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
July 13, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9725


Kenji Hara <k.hara.pg@gmail.com> changed:

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


--- Comment #5 from Kenji Hara <k.hara.pg@gmail.com> 2013-07-13 06:48:25 PDT ---
Fixed in 2.063.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------