On Tuesday, 21 May 2019 at 03:07:20 UTC, Johannes Loher wrote:
On Sunday, 19 May 2019 at 16:47:39 UTC, Mike Brockus wrote:
On Sunday, 19 May 2019 at 07:46:11 UTC, Johannes Loher wrote:
Am 18.05.19 um 08:20 schrieb Mike Brockus:
[...]

Hey there,

I already tried to answer your questions on reddit.

You can post links here by simply pasting the URL (the link will not be highlighted in the editor, but it will be when it is posted).

Regarding your problem: Could you please describe what you are actually trying to do? Are you trying to use D in an exisiting Meson project (as an addition to the existing code)? Why are you trying to use the Unity test framework (I only had a quick look at it, but from what I saw it uses a lot of preprocessor macros which will make it difficult to get it wotk work properly with D). Why not use the built-in unittests or one of the many already existing unit testing frameworks for D ([1], [2], [3], [4], [5])?

[1] https://code.dlang.org/packages/unit-threaded
[2] https://code.dlang.org/packages/dunit
[3] https://code.dlang.org/packages/d-unit
[4] https://code.dlang.org/packages/fluent-asserts
[5] https://code.dlang.org/packages/trial

I am trying to do two things one being able to turn a pure C project into a pure D project without destroying the existing file structure.
The project (https://github.com/squidfarts/c-project.git)

The other is to make a new Arduino UNO board project that leverages existing C and C++ code so I can spend small amounts of time writing new D code as I update all of my Arduino applications.

I would like to use the Unity test framework for that Arduino UNO based project that uses D, C, C++ and both Meson build system and Conan package manager. The part with C and C++ are just for linking with the Arduino libraries, including exiting classes while I write new D code to replace the existing C and C++ code where ever it makes since. Conan is used to get both the Unity and CMock from GitHub.

For the pure D project I would like to use whatever D provides me. Since you provided this list I would start with unit-threaded and see if it can help with this main function problem.

Hey again, does my answer from reddit not solve your first problem (keeping the existing file structure)? As mentioned, using Unity for the tests does not really make sense with D, though it might be possible to use it with dpp ([1]).

Regarding your second problem: The Arduino UNO is based on the ATmega328P, which is an AVR chip. There is currently no D compiler available, that targets AVR, so you won‘t be able to use D for programming your Arduino UNO for now. There have been discussions about this ([2], [3]), but for now it is simply not possible.

[1] https://github.com/atilaneves/dpp
[2] https://forum.dlang.org/thread/1328258826.2142.4.camel@ububox?page=1 [3] https://forum.dlang.org/thread/[email protected]

The solution from Reddit solves the problem for 'dub' but as part of my project C to D I wanted to use Meson and run test with whatever is available, coming next week I will try to incorporate 'unit-threaded' and if it works then I can tell Meson to include it as my decency and to use 'dub' to get it for me so I can focus on writing test for my code. I am currently working on becoming an Android app developer leaning Kotlin and on the weekends it's D.

As for Arduino I was thinking more in the ways of using D to interface with existing C functionality in the Arduino, for this to work I think I just need to tell Meson to make this a C, C++, D project. Something like this:

# Root meson.build

project('uno_proj', 'c', 'cpp', 'd')# this would work...

subdir('src')



# src/main.d
extern (C) void setup(); // This should call the defections for the most important
extern (C) void loop();  // functions in any Arduino program.


void setup()
{
    // some code here.
}// end of function setup

void loop()
{
    // Whatever the program needs to do.
}// end of function loop



In the actual project the meson.build in the 'src' directory is where I manage generating the other required files also, this was just meant to be like pseudocode example to give some idea as to what I meant.

However it is good to know that there is currently no compiler for D on a AVR chip.







Reply via email to