Thread overview | ||||||
---|---|---|---|---|---|---|
|
April 06, 2015 fromStringz problem with gdc | ||||
---|---|---|---|---|
| ||||
Hello everyone, I have a problem with the fromStringz function (std.string.fromStringz) when I try to compile with the GDC compiler (it works fine with DMD). Here is a minimal code to see the error: import std.stdio, std.string, std.c.stdlib; int main () { char* s; s = cast(char*) malloc(2); s[0] = 'a'; s[1] = '\0'; writeln(fromStringz(s)); return 0; } Compiling with DMD (works fine): $ dmd testfsz.d Compiling with GDC: $ gdc testfsz.d -o testfsz testfsz.d:8: error: undefined identifier fromStringz It does the same thing on a friend's computer. I'm using GCC 4.9.1 on Kubuntu 14.10. Any idea where this comes from? Thanks in advance for your help! |
April 06, 2015 Re: fromStringz problem with gdc | ||||
---|---|---|---|---|
| ||||
Posted in reply to chardetm | On Monday, 6 April 2015 at 17:47:27 UTC, chardetm wrote:
> Hello everyone,
>
> I have a problem with the fromStringz function (std.string.fromStringz) when I try to compile with the GDC compiler (it works fine with DMD).
>
> Here is a minimal code to see the error:
>
>
> import std.stdio, std.string, std.c.stdlib;
>
> int main () {
> char* s;
> s = cast(char*) malloc(2);
> s[0] = 'a';
> s[1] = '\0';
> writeln(fromStringz(s));
> return 0;
> }
>
>
> Compiling with DMD (works fine):
> $ dmd testfsz.d
>
> Compiling with GDC:
> $ gdc testfsz.d -o testfsz
> testfsz.d:8: error: undefined identifier fromStringz
>
> It does the same thing on a friend's computer. I'm using GCC 4.9.1 on Kubuntu 14.10.
> Any idea where this comes from? Thanks in advance for your help!
fromStringz (in std.string) was introduced in D 2.066, gdc-4.9 was shipped when 2.065 was released.
Iain.
|
April 06, 2015 Re: fromStringz problem with gdc | ||||
---|---|---|---|---|
| ||||
Posted in reply to Iain Buclaw | On Monday, 6 April 2015 at 17:55:42 UTC, Iain Buclaw wrote:
> On Monday, 6 April 2015 at 17:47:27 UTC, chardetm wrote:
>> Hello everyone,
>>
>> I have a problem with the fromStringz function (std.string.fromStringz) when I try to compile with the GDC compiler (it works fine with DMD).
>>
>> Here is a minimal code to see the error:
>>
>>
>> import std.stdio, std.string, std.c.stdlib;
>>
>> int main () {
>> char* s;
>> s = cast(char*) malloc(2);
>> s[0] = 'a';
>> s[1] = '\0';
>> writeln(fromStringz(s));
>> return 0;
>> }
>>
>>
>> Compiling with DMD (works fine):
>> $ dmd testfsz.d
>>
>> Compiling with GDC:
>> $ gdc testfsz.d -o testfsz
>> testfsz.d:8: error: undefined identifier fromStringz
>>
>> It does the same thing on a friend's computer. I'm using GCC 4.9.1 on Kubuntu 14.10.
>> Any idea where this comes from? Thanks in advance for your help!
>
> fromStringz (in std.string) was introduced in D 2.066, gdc-4.9 was shipped when 2.065 was released.
>
> Iain.
Thanks! I will make my own version and use conditional compilation to import it or not in that case...
|
April 06, 2015 Re: fromStringz problem with gdc | ||||
---|---|---|---|---|
| ||||
Posted in reply to chardetm | On Monday, 6 April 2015 at 18:31:13 UTC, chardetm wrote:
> On Monday, 6 April 2015 at 17:55:42 UTC, Iain Buclaw wrote:
>> On Monday, 6 April 2015 at 17:47:27 UTC, chardetm wrote:
>>> Hello everyone,
>>>
>>> I have a problem with the fromStringz function (std.string.fromStringz) when I try to compile with the GDC compiler (it works fine with DMD).
>>>
>>> Here is a minimal code to see the error:
>>>
>>>
>>> import std.stdio, std.string, std.c.stdlib;
>>>
>>> int main () {
>>> char* s;
>>> s = cast(char*) malloc(2);
>>> s[0] = 'a';
>>> s[1] = '\0';
>>> writeln(fromStringz(s));
>>> return 0;
>>> }
>>>
>>>
>>> Compiling with DMD (works fine):
>>> $ dmd testfsz.d
>>>
>>> Compiling with GDC:
>>> $ gdc testfsz.d -o testfsz
>>> testfsz.d:8: error: undefined identifier fromStringz
>>>
>>> It does the same thing on a friend's computer. I'm using GCC 4.9.1 on Kubuntu 14.10.
>>> Any idea where this comes from? Thanks in advance for your help!
>>
>> fromStringz (in std.string) was introduced in D 2.066, gdc-4.9 was shipped when 2.065 was released.
>>
>> Iain.
>
> Thanks! I will make my own version and use conditional compilation to import it or not in that case...
Looks like the function itself is very short:
inout(char)[] fromStringz(inout(char)* cString) @system pure {
import core.stdc.string : strlen;
return cString ? cString[0 .. strlen(cString)] : null;
}
|
Copyright © 1999-2021 by the D Language Foundation