Thread overview
pipedmd -msmode Should be the default
Dec 05, 2014
sdvcn
Dec 05, 2014
sdvcn
Dec 07, 2014
sdvcn
Dec 07, 2014
Rainer Schuetze
Dec 07, 2014
sdvcn
Dec 12, 2014
Rainer Schuetze
December 05, 2014
Certain probability utf-8 errors.

pipedmd.d

if(!linkerFound)
{
    if (output.startsWith("OPTLINK (R)"))
        linkerFound = true;
    else if(output.countUntil("error LNK") >= 0 || output.countUntil("warning LNK") >= 0) // <-- utf-8 error
        linkerFound = msMode = true;
}

my chinese os,link info "错误 LNK" or "警告 LNK"


config.d

if(performLink && Package.GetGlobalOptions().demangleError)
	cmd = "\"$(VisualDInstallDir)pipedmd.exe\" " ~ cmd; // <-- no set msmode

I can not find where to set "msmode"
December 05, 2014
On Friday, 5 December 2014 at 10:04:43 UTC, sdvcn wrote:
> Certain probability utf-8 errors.
>
> pipedmd.d
>
> if(!linkerFound)
> {
>     if (output.startsWith("OPTLINK (R)"))
>         linkerFound = true;
>     else if(output.countUntil("error LNK") >= 0 || output.countUntil("warning LNK") >= 0) // <-- utf-8 error
>         linkerFound = msMode = true;
> }
>
> my chinese os,link info "错误 LNK" or "警告 LNK"
>
>
> config.d
>
> if(performLink && Package.GetGlobalOptions().demangleError)
> 	cmd = "\"$(VisualDInstallDir)pipedmd.exe\" " ~ cmd; // <-- no set msmode
>
> I can not find where to set "msmode"

win32:(OPTLINK (R) for Win32  Release 8.00.15)
not set "Demangle names in link errors" Unable to import lib path .
if set "Demangle names in link errors". Can be compiled

x64:(Microsoft (R) Incremental Linker Version 12.00.30324.0)
not set "Demangle names in link errors" .Can be compiled

if set "Demangle names in link errors". Certain probability utf-8 errors.

std.utf.UTFException@m:\s\d\rainers\phobos\std\utf.d(1109): Invalid UTF-8 sequence (at index 1)
----------------


December 07, 2014
On Friday, 5 December 2014 at 10:15:03 UTC, sdvcn wrote:
> On Friday, 5 December 2014 at 10:04:43 UTC, sdvcn wrote:
>> Certain probability utf-8 errors.
>>
>> pipedmd.d
>>
>> if(!linkerFound)
>> {
>>    if (output.startsWith("OPTLINK (R)"))
>>        linkerFound = true;
>>    else if(output.countUntil("error LNK") >= 0 || output.countUntil("warning LNK") >= 0) // <-- utf-8 error
>>        linkerFound = msMode = true;
>> }
>>
>> my chinese os,link info "错误 LNK" or "警告 LNK"
>>
>>
>> config.d
>>
>> if(performLink && Package.GetGlobalOptions().demangleError)
>> 	cmd = "\"$(VisualDInstallDir)pipedmd.exe\" " ~ cmd; // <-- no set msmode
>>
>> I can not find where to set "msmode"
>
> win32:(OPTLINK (R) for Win32  Release 8.00.15)
> not set "Demangle names in link errors" Unable to import lib path .
> if set "Demangle names in link errors". Can be compiled
>
> x64:(Microsoft (R) Incremental Linker Version 12.00.30324.0)
> not set "Demangle names in link errors" .Can be compiled
>
> if set "Demangle names in link errors". Certain probability utf-8 errors.
>
> std.utf.UTFException@m:\s\d\rainers\phobos\std\utf.d(1109): Invalid UTF-8 sequence (at index 1)
> ----------------

Please ignore this error report

my Solutions:
Not choose "Demangle names in link error"
Not choose "Monitor OPTLINK dependencies"

Modify "sc.ini"
[Environment64]
VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 12.0\vc\
WindowsSdkDir=C:\Program Files (x86)\Windows Kits\8.1\
LINKCMD=%VCINSTALLDIR%\bin\link.exe

Not choose x64 page "override linker settings from dmd configuration in sc.ini."



December 07, 2014

On 07.12.2014 04:06, sdvcn wrote:
> On Friday, 5 December 2014 at 10:15:03 UTC, sdvcn wrote:
>> On Friday, 5 December 2014 at 10:04:43 UTC, sdvcn wrote:
>>> Certain probability utf-8 errors.
>>>
>>> pipedmd.d
>>>
>>> if(!linkerFound)
>>> {
>>>    if (output.startsWith("OPTLINK (R)"))
>>>        linkerFound = true;
>>>    else if(output.countUntil("error LNK") >= 0 ||
>>> output.countUntil("warning LNK") >= 0) // <-- utf-8 error
>>>        linkerFound = msMode = true;
>>> }
>>>
>>> my chinese os,link info "错误 LNK" or "警告 LNK"
>>>
>>>
>>> config.d
>>>
>>> if(performLink && Package.GetGlobalOptions().demangleError)
>>>     cmd = "\"$(VisualDInstallDir)pipedmd.exe\" " ~ cmd; // <-- no set
>>> msmode
>>>
>>> I can not find where to set "msmode"
>>
>> win32:(OPTLINK (R) for Win32  Release 8.00.15)
>> not set "Demangle names in link errors" Unable to import lib path .
>> if set "Demangle names in link errors". Can be compiled
>>
>> x64:(Microsoft (R) Incremental Linker Version 12.00.30324.0)
>> not set "Demangle names in link errors" .Can be compiled
>>
>> if set "Demangle names in link errors". Certain probability utf-8 errors.
>>
>> std.utf.UTFException@m:\s\d\rainers\phobos\std\utf.d(1109): Invalid
>> UTF-8 sequence (at index 1)
>> ----------------
>
> Please ignore this error report
>
> my Solutions:
> Not choose "Demangle names in link error"
> Not choose "Monitor OPTLINK dependencies"
>
> Modify "sc.ini"
> [Environment64]
> VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 12.0\vc\
> WindowsSdkDir=C:\Program Files (x86)\Windows Kits\8.1\
> LINKCMD=%VCINSTALLDIR%\bin\link.exe
>
> Not choose x64 page "override linker settings from dmd configuration in
> sc.ini."
>
>
>

I guess the error might still be valid. dmd emits compressed symbols for Win32 that interfere with utf8. I guess parsing the output must be better aware of non-UTF8 sequences.

Do you have a small test program that exhibits the problem?
December 07, 2014
On Sunday, 7 December 2014 at 10:46:25 UTC, Rainer Schuetze wrote:
>
>
> On 07.12.2014 04:06, sdvcn wrote:
>> On Friday, 5 December 2014 at 10:15:03 UTC, sdvcn wrote:
>>> On Friday, 5 December 2014 at 10:04:43 UTC, sdvcn wrote:
>>>> Certain probability utf-8 errors.
>>>>
>>>> pipedmd.d
>>>>
>>>> if(!linkerFound)
>>>> {
>>>>   if (output.startsWith("OPTLINK (R)"))
>>>>       linkerFound = true;
>>>>   else if(output.countUntil("error LNK") >= 0 ||
>>>> output.countUntil("warning LNK") >= 0) // <-- utf-8 error
>>>>       linkerFound = msMode = true;
>>>> }
>>>>
>>>> my chinese os,link info "错误 LNK" or "警告 LNK"
>>>>
>>>>
>>>> config.d
>>>>
>>>> if(performLink && Package.GetGlobalOptions().demangleError)
>>>>    cmd = "\"$(VisualDInstallDir)pipedmd.exe\" " ~ cmd; // <-- no set
>>>> msmode
>>>>
>>>> I can not find where to set "msmode"
>>>
>>> win32:(OPTLINK (R) for Win32  Release 8.00.15)
>>> not set "Demangle names in link errors" Unable to import lib path .
>>> if set "Demangle names in link errors". Can be compiled
>>>
>>> x64:(Microsoft (R) Incremental Linker Version 12.00.30324.0)
>>> not set "Demangle names in link errors" .Can be compiled
>>>
>>> if set "Demangle names in link errors". Certain probability utf-8 errors.
>>>
>>> std.utf.UTFException@m:\s\d\rainers\phobos\std\utf.d(1109): Invalid
>>> UTF-8 sequence (at index 1)
>>> ----------------
>>
>> Please ignore this error report
>>
>> my Solutions:
>> Not choose "Demangle names in link error"
>> Not choose "Monitor OPTLINK dependencies"
>>
>> Modify "sc.ini"
>> [Environment64]
>> VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 12.0\vc\
>> WindowsSdkDir=C:\Program Files (x86)\Windows Kits\8.1\
>> LINKCMD=%VCINSTALLDIR%\bin\link.exe
>>
>> Not choose x64 page "override linker settings from dmd configuration in
>> sc.ini."
>>
>>
>>
>
> I guess the error might still be valid. dmd emits compressed symbols for Win32 that interfere with utf8. I guess parsing the output must be better aware of non-UTF8 sequences.
>
> Do you have a small test program that exhibits the problem?

Default processing Converted utf8 string not?

windows Console Output ASCII or MBS. Under no circumstances are converted into utf8.
December 12, 2014

On 08.12.2014 00:52, sdvcn wrote:
> On Sunday, 7 December 2014 at 10:46:25 UTC, Rainer Schuetze wrote:
>>
>>
>> On 07.12.2014 04:06, sdvcn wrote:
>>> On Friday, 5 December 2014 at 10:15:03 UTC, sdvcn wrote:
>>>> On Friday, 5 December 2014 at 10:04:43 UTC, sdvcn wrote:
>>>>> Certain probability utf-8 errors.
>>>>>
>>>>> pipedmd.d
>>>>>
>>>>> if(!linkerFound)
>>>>> {
>>>>>   if (output.startsWith("OPTLINK (R)"))
>>>>>       linkerFound = true;
>>>>>   else if(output.countUntil("error LNK") >= 0 ||
>>>>> output.countUntil("warning LNK") >= 0) // <-- utf-8 error
>>>>>       linkerFound = msMode = true;
>>>>> }
>>>>>
>>>>> my chinese os,link info "错误 LNK" or "警告 LNK"
>>>>>
>>>>>
>>>>> config.d
>>>>>
>>>>> if(performLink && Package.GetGlobalOptions().demangleError)
>>>>>    cmd = "\"$(VisualDInstallDir)pipedmd.exe\" " ~ cmd; // <-- no set
>>>>> msmode
>>>>>
>>>>> I can not find where to set "msmode"
>>>>
>>>> win32:(OPTLINK (R) for Win32  Release 8.00.15)
>>>> not set "Demangle names in link errors" Unable to import lib path .
>>>> if set "Demangle names in link errors". Can be compiled
>>>>
>>>> x64:(Microsoft (R) Incremental Linker Version 12.00.30324.0)
>>>> not set "Demangle names in link errors" .Can be compiled
>>>>
>>>> if set "Demangle names in link errors". Certain probability utf-8
>>>> errors.
>>>>
>>>> std.utf.UTFException@m:\s\d\rainers\phobos\std\utf.d(1109): Invalid
>>>> UTF-8 sequence (at index 1)
>>>> ----------------
>>>
>>> Please ignore this error report
>>>
>>> my Solutions:
>>> Not choose "Demangle names in link error"
>>> Not choose "Monitor OPTLINK dependencies"
>>>
>>> Modify "sc.ini"
>>> [Environment64]
>>> VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 12.0\vc\
>>> WindowsSdkDir=C:\Program Files (x86)\Windows Kits\8.1\
>>> LINKCMD=%VCINSTALLDIR%\bin\link.exe
>>>
>>> Not choose x64 page "override linker settings from dmd configuration in
>>> sc.ini."
>>>
>>>
>>>
>>
>> I guess the error might still be valid. dmd emits compressed symbols
>> for Win32 that interfere with utf8. I guess parsing the output must be
>> better aware of non-UTF8 sequences.
>>
>> Do you have a small test program that exhibits the problem?
>
> Default processing Converted utf8 string not?
>
> windows Console Output ASCII or MBS. Under no circumstances are
> converted into utf8.

D identifiers are UTF8 encoded. The compression done for Win32 uses the same byte range as UTF8 (>= 0x80) to encode repeated name segments. Combining both produces an undecipherable mess.

The linker just spits that out, the decompression/demangling should be aware of these possibly invalid encodings.