Re: From the D Blog: Driving with D

2021-07-17 Thread Dylan Graham via Digitalmars-d-announce

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

2021-07-16 Thread zjh via Digitalmars-d-announce

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

2021-07-16 Thread Dylan Graham via Digitalmars-d-announce

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

2021-06-08 Thread Max Samukha via Digitalmars-d-announce

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

2021-06-08 Thread Iain Buclaw via Digitalmars-d-announce

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

2021-06-08 Thread Max Samukha via Digitalmars-d-announce

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

2021-06-07 Thread Max Samukha via Digitalmars-d-announce

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

2021-06-07 Thread Max Samukha via Digitalmars-d-announce

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

2021-06-06 Thread Johan Engelen via Digitalmars-d-announce

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

2021-06-06 Thread Iain Buclaw via Digitalmars-d-announce

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

2021-06-06 Thread Max Samukha via Digitalmars-d-announce

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

2021-06-06 Thread Max Samukha via Digitalmars-d-announce

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

2021-06-05 Thread Dylan Graham via Digitalmars-d-announce

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

2021-06-04 Thread Iain Buclaw via Digitalmars-d-announce

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

2021-06-04 Thread Max Samukha via Digitalmars-d-announce

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

2021-06-04 Thread rikki cattermole via Digitalmars-d-announce

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

2021-06-04 Thread Max Samukha via Digitalmars-d-announce

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

2021-06-03 Thread Piotrek via Digitalmars-d-announce

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

2021-06-02 Thread Robert Schadek via Digitalmars-d-announce

Very cool


Re: From the D Blog: Driving with D

2021-06-01 Thread Dylan Graham via Digitalmars-d-announce
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

2021-06-01 Thread Steven Schveighoffer via Digitalmars-d-announce

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

2021-06-01 Thread Mike Parker via Digitalmars-d-announce
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/