Re: LWDR (Light Weight D Runtime) for Microcontrollers v0.2.3

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

On Monday, 31 May 2021 at 15:41:12 UTC, Imperatorn wrote:

On Sunday, 30 May 2021 at 14:28:25 UTC, Dylan Graham wrote:

Github: https://github.com/0dyl/LWDR
DUB: https://code.dlang.org/packages/lwdr

[...]


Well done sir!

Keep it up ☀️


Thank you :)


Re: LWDR (Light Weight D Runtime) for Microcontrollers v0.2.3

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

On Monday, 31 May 2021 at 11:16:01 UTC, Iain Buclaw wrote:
Good to see this work come to fruition.  First thing I stumbled 
across was a 
[mispelling](https://github.com/0dyl/LWDR/blob/eb5de110ba2cff4bd0e654e8a68b59fc5eb76157/source/rtoslink.d#L14) of one of the RTOS hooks.


I'll get on it!

Regarding exceptions, apart from one small detail I'd have 
thought that GDC and LDC would be compatible, as both just use 
libunwind.  Said small detail are the name of the entry-points 
for the "throw" and "personality" routines.  Both of which can 
be sorted out trivially with some stubs to forward from one to 
the other.


It was a while ago I was messing with exceptions. I can't 
remember the errors specifically. I'll give exceptions another go 
today and report my findings.


Re: GCC 11.1 Released

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

On Thursday, 27 May 2021 at 01:04:37 UTC, Iain Buclaw wrote:

Hi,


Sponsored :)

Very excited for GDC 12!


Re: LWDR (Light Weight D Runtime) for Microcontrollers v0.2.3

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

On Monday, 31 May 2021 at 01:16:46 UTC, rikki cattermole wrote:


On 31/05/2021 1:05 PM, Dylan Graham wrote:
I haven't put any thought into the license. Since LWDR is 
derived from DRuntime, I assume I'll have to use its license. 
If not, I'd like to go with something permissive like MIT.


Boost is permissive.


Checked it out. I'm happy with it. I committed the Boost v1 
license to the repo.


Re: PixelPerfectEngine v0.10.0-beta.1 release + looking for a team

2021-05-31 Thread solidstate1991 via Digitalmars-d-announce

On Tuesday, 18 May 2021 at 09:19:30 UTC, Anton Pastukhov wrote:

Does it have a website/docs? Are there any demo games?


There's a few demo games in the works, but first I have to fix 
bugs in the editor.


For docs, see the source. Except for stuff I forgot to document 
for a quite long time, it should be quite well documented. 
There's also a few .md files there, such as on the mapformat, and 
I might make a user manual most likely in .md files (I suck at 
HTML, and even more at HTML5). Maybe I should bring a USB 
keyboard to work for my phone, so I can do it there.


Re: LWDR (Light Weight D Runtime) for Microcontrollers v0.2.3

2021-05-31 Thread Imperatorn via Digitalmars-d-announce

On Sunday, 30 May 2021 at 14:28:25 UTC, Dylan Graham wrote:

Github: https://github.com/0dyl/LWDR
DUB: https://code.dlang.org/packages/lwdr

[...]


Well done sir!

Keep it up ☀️


DIP 1038--@nodiscard--Formal Assessment Begins

2021-05-31 Thread Mike Parker via Digitalmars-d-announce
I have just handed off DIP 1038, "@nodiscard", to Walter and 
Atila for their final verdict. They will have 30 days to reach a 
decision, ask for changes, or otherwise inform us of the status 
of the DIP.


You can read the current revision here:

https://github.com/dlang/DIPs/blob/0f872db7c0729441d6b7d09b0a55992080ad67f4/DIPs/DIP1038.md


Re: mysql-native release v3.0.2

2021-05-31 Thread Steven Schveighoffer via Digitalmars-d-announce

On 5/28/21 11:29 PM, surlymoor wrote:

On Saturday, 29 May 2021 at 02:34:51 UTC, Steven Schveighoffer wrote:

[...]


Thanks for the work you, singingbush, et al., are putting into this 
project. Besides the glorious @safe update, any thoughts on supporting 
TLS connections? (Ideally, one's path to the DB wouldn't be routed 
outside of a protected network, but such is life.)


I'm not sure when it will happen, but we do have to involve TLS for 
default mysql-8 authentication (currently, you must switch from the 
default in mysql-8 in order to use mysql-native).


Given that vibe already supports TLS connections, it shouldn't be too 
difficult to make it work with vibe. Using Phobos sockets, we probably 
have to support TLS directly, which isn't as pleasant.


I also want to support other types of connections (Unix sockets, etc.) 
but not sure when any of that will happen.


The safe update is a priority, because the PR is already way out of date 
with these recent changes, and it's a big PR.


-Steve


Re: LWDR (Light Weight D Runtime) for Microcontrollers v0.2.3

2021-05-31 Thread Iain Buclaw via Digitalmars-d-announce

On Monday, 31 May 2021 at 01:05:03 UTC, Dylan Graham wrote:

On Sunday, 30 May 2021 at 17:31:37 UTC, Dukc wrote:

On Sunday, 30 May 2021 at 14:28:25 UTC, Dylan Graham wrote:


It works by providing a series of barebones API hooks (alloc, 
dealloc, assert, etc) (defined in `rtoslink.d`), which you 
must implement and/or point to your RTOS implementation.


Quickly looking, the implementation looks very portable, save 
for exceptions. with `rtoslink.d`, this will probably enable a 
lot of stuff on any platform without DRuntime. Not just 
microcontrollers. If I'm right, you just did a BIG service for 
D on bare-metal.




Exceptions are a nightmare. It works for GDC with GCC code. My 
codebase uses GCC for its C (ST toolchain), so I need to write 
some code that can take LDC's exception handling and make it 
compatible with how GCC operates. So, it looks like there will 
be multiple exception handling implementations (LDC with GCC 
backend, LDC with clang backend, GDC with GCC backend). I wish 
D had something like Zig's error handling.


Otherwise, thank you! It was designed to be agnostic as much as 
possible. I didn't know it'd help out for more than just 
microcontrollers :)


Good to see this work come to fruition.  First thing I stumbled 
across was a 
[mispelling](https://github.com/0dyl/LWDR/blob/eb5de110ba2cff4bd0e654e8a68b59fc5eb76157/source/rtoslink.d#L14) of one of the RTOS hooks.


Regarding exceptions, apart from one small detail I'd have 
thought that GDC and LDC would be compatible, as both just use 
libunwind.  Said small detail are the name of the entry-points 
for the "throw" and "personality" routines.  Both of which can be 
sorted out trivially with some stubs to forward from one to the 
other.


```
extern(C) void _d_throw(Throwable o) { return _d_throw_common(o); 
}
extern(C) void _d_throw_exception(Throwable o) { return 
_d_throw_common(o); }


extern(C) void _d_throw_common(Throwable o)
{
   pragma(inline, false);
   // Implementation here: tail merging should take care of the 
entrypoints.

}
```