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.