Re: Interfacing D with C: Arrays and Functions (Arrays Part 2)

2020-04-29 Thread Walter Bright via Digitalmars-d-announce

On 4/28/2020 9:12 AM, Seb wrote:

// Internal Compiler Error: type int[] cannot be mapped to C++

There have been multiple attempts to fix this, the latest one is 
https://github.com/dlang/dmd/pull/8120.
Now, that dmd comes with the (experimental) -H flag for C++ header generation, 
maybe there's more interest in making D arrays/strings work seamlessly between D 
and C++?


They're never going to work seamlessly between D and C++ because C++ does not 
have a standard compatible type for it. We discussed this at length at DConf 2019.


Re: Interfacing D with C: Arrays and Functions (Arrays Part 2)

2020-04-28 Thread Steven Schveighoffer via Digitalmars-d-announce

On 4/28/20 10:45 AM, Mike Parker wrote:
I've finally gotten around to publishing the next article in my D and C 
series on the D blog. This is the second post about arrays, focusing on 
properly declaring in D functions from C that accept array parameters.


The blog:
https://dlang.org/blog/2020/04/28/interfacing-d-with-c-arrays-and-functions-arrays-part-two/ 



Reddit:
https://www.reddit.com/r/programming/comments/g9o3wi/interfacing_d_with_c_arrays_and_functions_arrays/ 



HN:
https://news.ycombinator.com/item?id=23007409


Nice! I was ready to respond with what turns out to be the punchline 
here -- using ref ;)


That little bit of sorcery is an excellent trick that can make a world 
of difference when it comes to compiler-enforced correctness.


-Steve


Re: Interfacing D with C: Arrays and Functions (Arrays Part 2)

2020-04-28 Thread Seb via Digitalmars-d-announce

On Tuesday, 28 April 2020 at 14:45:37 UTC, Mike Parker wrote:
I've finally gotten around to publishing the next article in my 
D and C series on the D blog. This is the second post about 
arrays, focusing on properly declaring in D functions from C 
that accept array parameters.


The blog:
https://dlang.org/blog/2020/04/28/interfacing-d-with-c-arrays-and-functions-arrays-part-two/

Reddit:
https://www.reddit.com/r/programming/comments/g9o3wi/interfacing_d_with_c_arrays_and_functions_arrays/

HN:
https://news.ycombinator.com/item?id=23007409


Great article as always!
Maybe this article and conversation revives the interest in a 
very much related area: array mangling still doesn't work for 
extern(C++).

Example:

---
extern(C++) void foo(int[] arr);
void main()
{
   foo([1, 2]);
}
---

// Internal Compiler Error: type int[] cannot be mapped to C++

There have been multiple attempts to fix this, the latest one is 
https://github.com/dlang/dmd/pull/8120.
Now, that dmd comes with the (experimental) -H flag for C++ 
header generation, maybe there's more interest in making D 
arrays/strings work seamlessly between D and C++?


Re: Interfacing D with C: Arrays and Functions (Arrays Part 2)

2020-04-28 Thread Mike Parker via Digitalmars-d-announce

On Tuesday, 28 April 2020 at 15:26:49 UTC, David Gileadi wrote:


Another great article!

Nit: in the following paragraph, did you really mean to say 
*are*?


But again, even D’s safety features are 100% foolproof when 
calling C functions from D.


Thanks and thanks!


Re: Interfacing D with C: Arrays and Functions (Arrays Part 2)

2020-04-28 Thread David Gileadi via Digitalmars-d-announce

On 4/28/20 7:45 AM, Mike Parker wrote:
I've finally gotten around to publishing the next article in my D and C 
series on the D blog. This is the second post about arrays, focusing on 
properly declaring in D functions from C that accept array parameters.


The blog:
https://dlang.org/blog/2020/04/28/interfacing-d-with-c-arrays-and-functions-arrays-part-two/ 


..

Another great article!

Nit: in the following paragraph, did you really mean to say *are*?


But again, even D’s safety features are 100% foolproof when calling C functions 
from D.


Interfacing D with C: Arrays and Functions (Arrays Part 2)

2020-04-28 Thread Mike Parker via Digitalmars-d-announce
I've finally gotten around to publishing the next article in my D 
and C series on the D blog. This is the second post about arrays, 
focusing on properly declaring in D functions from C that accept 
array parameters.


The blog:
https://dlang.org/blog/2020/04/28/interfacing-d-with-c-arrays-and-functions-arrays-part-two/

Reddit:
https://www.reddit.com/r/programming/comments/g9o3wi/interfacing_d_with_c_arrays_and_functions_arrays/

HN:
https://news.ycombinator.com/item?id=23007409