Re: From the D Blog: Driving with D
On Saturday, 17 July 2021 at 00:56:24 UTC, zjh wrote: On Tuesday, 1 June 2021 at 11:57:34 UTC, Mike Parker wrote: Dylan Graham writes about his experience using D in a I have translate this article into `chinese`: [用d开车](https://fqbqrr.blog.csdn.net/article/details/118571177) Thank you so much! :)
Re: From the D Blog: Driving with D
On Tuesday, 1 June 2021 at 11:57:34 UTC, Mike Parker wrote: Dylan Graham writes about his experience using D in a I have translate this article into `chinese`: [用d开车](https://fqbqrr.blog.csdn.net/article/details/118571177)
Re: From the D Blog: Driving with D
On Tuesday, 1 June 2021 at 11:57:34 UTC, Mike Parker wrote: Dylan Graham writes about his experience using D in a microcontroller project and why he chose it. Does anyone know of any similar projects using D? I don't. This may well be the first time it's been employed in this specific manner. Golem has translated the article into German and republished it: https://www.golem.de/news/programmiersprachen-durchstarten-mit-d-2107-157716.html
Re: From the D Blog: Driving with D
On Tuesday, 8 June 2021 at 11:35:39 UTC, Iain Buclaw wrote: Testing backports of both now ([here](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100935) and [here](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100964)). Thanks!
Re: From the D Blog: Driving with D
On Tuesday, 8 June 2021 at 09:08:20 UTC, Max Samukha wrote: On Monday, 7 June 2021 at 10:38:08 UTC, Max Samukha wrote: Would be great if you did. Not a blocker, though. However, this is a major pain: ```d struct FP { } alias parse = () { FP[] parts; parts ~= FP(); return parts; }; immutable s = parse(); extern(C) int main() { return 0; } ``` avr-gdc -fno-druntime ctfe.d ctfe.d:3:1: error: 'object.TypeInfo' cannot be used with '-fno-rtti' 3 | struct FP { | ^ ctfe.d:3:1: error: 'object.TypeInfo' could not be found, but is implicitly used 3 | struct FP { | ^ d21: internal compiler error: Segmentation fault 0x178ae29 internal_error(char const*, ...) Thanks, that seems to be [this issue](https://issues.dlang.org/show_bug.cgi?id=19234). Testing backports of both now ([here](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100935) and [here](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100964)).
Re: From the D Blog: Driving with D
On Monday, 7 June 2021 at 10:38:08 UTC, Max Samukha wrote: Would be great if you did. Not a blocker, though. However, this is a major pain: ```d struct FP { } alias parse = () { FP[] parts; parts ~= FP(); return parts; }; immutable s = parse(); extern(C) int main() { return 0; } ``` avr-gdc -fno-druntime ctfe.d ctfe.d:3:1: error: 'object.TypeInfo' cannot be used with '-fno-rtti' 3 | struct FP { | ^ ctfe.d:3:1: error: 'object.TypeInfo' could not be found, but is implicitly used 3 | struct FP { | ^ d21: internal compiler error: Segmentation fault 0x178ae29 internal_error(char const*, ...)
Re: From the D Blog: Driving with D
On Sunday, 6 June 2021 at 22:39:34 UTC, Johan Engelen wrote: it's fun Hell Yeah! )
Re: From the D Blog: Driving with D
On Sunday, 6 June 2021 at 21:18:01 UTC, Iain Buclaw wrote: That sounds a lot like this issue: https://issues.dlang.org/show_bug.cgi?id=17857 Most certainly. Can backport that for GCC-11. Would be great if you did. Not a blocker, though.
Re: From the D Blog: Driving with D
On Friday, 4 June 2021 at 21:47:21 UTC, Iain Buclaw wrote: On Friday, 4 June 2021 at 21:28:00 UTC, Max Samukha wrote: This doesn't [work]: ubyte[] slice; foreach (ubyte i; slice) { } Invalid bitcast %17 = bitcast i16 %15 to i32 I guess the cause is the same - slice.length.sizeof == 4, while slice.sizeof == 4, slice.ptr.sizeof == 2, and size_t.sizeof == 2. You should have better luck using gdc on avr. https://explore.dgnu.org/z/bos5ee Hi Max, GDC and LDC are both happy to support many platforms (it's fun), so keep filing bug reports in our bug trackers! (LDC's bug tracker is on Github, please also mention the triple you are using) cheers, Johan
Re: From the D Blog: Driving with D
On Sunday, 6 June 2021 at 20:11:04 UTC, Max Samukha wrote: On Sunday, 6 June 2021 at 18:57:06 UTC, Max Samukha wrote: 2) 'align' is mishandled GCC's bugzilla won't let me register. You'd have to use a non-gmail account IIRC, not sure if there's any others that are in the "typically spam" blacklist. align(4) struct S { ubyte[4] bytes; } static assert (S.alignof == 4); // fail, S.alignof == 1 It's not specific to AVR. Worked around by placing 'align' inside the struct. That sounds a lot like this issue: https://issues.dlang.org/show_bug.cgi?id=17857 Can backport that for GCC-11.
Re: From the D Blog: Driving with D
On Sunday, 6 June 2021 at 18:57:06 UTC, Max Samukha wrote: 2) 'align' is mishandled GCC's bugzilla won't let me register. align(4) struct S { ubyte[4] bytes; } static assert (S.alignof == 4); // fail, S.alignof == 1 It's not specific to AVR. Worked around by placing 'align' inside the struct.
Re: From the D Blog: Driving with D
On Friday, 4 June 2021 at 21:47:21 UTC, Iain Buclaw wrote: You should have better luck using gdc on avr. https://explore.dgnu.org/z/bos5ee Trying that, thank you. For now, two issues with GDC 11, which I hope to work around: 1) compiler complains about typeinfos of structs used in CTFE only, 2) 'align' is mishandled
Re: From the D Blog: Driving with D
On Thursday, 3 June 2021 at 09:14:52 UTC, Piotrek wrote: On Tuesday, 1 June 2021 at 11:57:34 UTC, Mike Parker wrote: Dylan Graham writes about his experience using D in a microcontroller project and why he chose it. Does anyone know of any similar projects using D? I don't. This may well be the first time it's been employed in this specific manner. At first, when I saw the title, I thought Ali applied some D code to a Mercedes ECU;) But the story is really heartening to me. A great initiative. Congratulations :) Cheers, Piotrek Sorry to disappointment haha. My current project is an ECU, so stay tuned for that!
Re: From the D Blog: Driving with D
On Friday, 4 June 2021 at 21:28:00 UTC, Max Samukha wrote: On Friday, 4 June 2021 at 15:48:50 UTC, rikki cattermole wrote: Does this form of foreach work? foreach(i; 0 .. 10) That does work. This doesn't: ubyte[] slice; foreach (ubyte i; slice) { } Invalid bitcast %17 = bitcast i16 %15 to i32 I guess the cause is the same - slice.length.sizeof == 4, while slice.sizeof == 4, slice.ptr.sizeof == 2, and size_t.sizeof == 2. You should have better luck using gdc on avr. https://explore.dgnu.org/z/bos5ee
Re: From the D Blog: Driving with D
On Friday, 4 June 2021 at 15:48:50 UTC, rikki cattermole wrote: Does this form of foreach work? foreach(i; 0 .. 10) That does work. This doesn't: ubyte[] slice; foreach (ubyte i; slice) { } Invalid bitcast %17 = bitcast i16 %15 to i32 I guess the cause is the same - slice.length.sizeof == 4, while slice.sizeof == 4, slice.ptr.sizeof == 2, and size_t.sizeof == 2.
Re: From the D Blog: Driving with D
On 04/06/2021 8:50 PM, Max Samukha wrote: On Tuesday, 1 June 2021 at 11:57:34 UTC, Mike Parker wrote: Dylan Graham writes about his experience using D in a microcontroller project and why he chose it. Does anyone know of any similar projects using D? I don't. This may well be the first time it's been employed in this specific manner. The blog: https://dlang.org/blog/2021/06/01/driving-with-d/ Reddit: https://www.reddit.com/r/programming/comments/nps6k5/driving_with_dlang/ FWIW, I tried D in a simple project using an atmega32a. It almost worked (thanks to Webfreak and LDC people), but there were a couple of issues: 1. No support for ISRs. I had to implement thunks in C calling D. 2. No slices, because 'length' is typed as 32-bit. Worked around by accessing the array's elements via .ptr. 3. No foreach (as a consequence of 2, I guess) Does this form of foreach work? foreach(i; 0 .. 10)
Re: From the D Blog: Driving with D
On Tuesday, 1 June 2021 at 11:57:34 UTC, Mike Parker wrote: Dylan Graham writes about his experience using D in a microcontroller project and why he chose it. Does anyone know of any similar projects using D? I don't. This may well be the first time it's been employed in this specific manner. The blog: https://dlang.org/blog/2021/06/01/driving-with-d/ Reddit: https://www.reddit.com/r/programming/comments/nps6k5/driving_with_dlang/ FWIW, I tried D in a simple project using an atmega32a. It almost worked (thanks to Webfreak and LDC people), but there were a couple of issues: 1. No support for ISRs. I had to implement thunks in C calling D. 2. No slices, because 'length' is typed as 32-bit. Worked around by accessing the array's elements via .ptr. 3. No foreach (as a consequence of 2, I guess) 4. Integer promotion errors/warnings are very annoying when the primary integer type is byte. 5. A memory corruption bug (probably due to clobbered registers/corrupted stack/a stupid mistake of mine), which made me switch back to C++ for now.
Re: From the D Blog: Driving with D
On Tuesday, 1 June 2021 at 11:57:34 UTC, Mike Parker wrote: Dylan Graham writes about his experience using D in a microcontroller project and why he chose it. Does anyone know of any similar projects using D? I don't. This may well be the first time it's been employed in this specific manner. At first, when I saw the title, I thought Ali applied some D code to a Mercedes ECU;) But the story is really heartening to me. A great initiative. Congratulations :) Cheers, Piotrek
Re: From the D Blog: Driving with D
Very cool
Re: From the D Blog: Driving with D
On Tuesday, 1 June 2021 at 14:46:06 UTC, Steven Schveighoffer wrote: On 6/1/21 7:57 AM, Mike Parker wrote: Dylan Graham writes about his experience using D in a microcontroller project and why he chose it. Does anyone know of any similar projects using D? I don't. This may well be the first time it's been employed in this specific manner. The blog: https://dlang.org/blog/2021/06/01/driving-with-d/ Reddit: https://www.reddit.com/r/programming/comments/nps6k5/driving_with_dlang/ FYI on hackernews as well, there are some questions for the author. Nice article! Succinctly identifies a lot of the reasons why D is awesome. -Steve Thank you! :) https://news.ycombinator.com/item?id=27354761 Wow, that's overwhelming.
Re: From the D Blog: Driving with D
On 6/1/21 7:57 AM, Mike Parker wrote: Dylan Graham writes about his experience using D in a microcontroller project and why he chose it. Does anyone know of any similar projects using D? I don't. This may well be the first time it's been employed in this specific manner. The blog: https://dlang.org/blog/2021/06/01/driving-with-d/ Reddit: https://www.reddit.com/r/programming/comments/nps6k5/driving_with_dlang/ FYI on hackernews as well, there are some questions for the author. Nice article! Succinctly identifies a lot of the reasons why D is awesome. -Steve
From the D Blog: Driving with D
Dylan Graham writes about his experience using D in a microcontroller project and why he chose it. Does anyone know of any similar projects using D? I don't. This may well be the first time it's been employed in this specific manner. The blog: https://dlang.org/blog/2021/06/01/driving-with-d/ Reddit: https://www.reddit.com/r/programming/comments/nps6k5/driving_with_dlang/