www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - DMD on ARM/Linux (for controlling EV3 Lego Mindstorm)?

reply Sai <test test.com> writes:
I see that there are ports of go compiler on ev3dev (ARM, debian 
based) for controlling the EV3 lego mindstorm robot. 
(http://www.ev3dev.org/docs/libraries/)

Is there a port of a D compiler for ARM? How about libraries? I 
need a basic file IO and console IO for controlling the robot.

Thanks in advance
Sai
Aug 02 2016
next sibling parent rikki cattermole <rikki cattermole.co.nz> writes:
On 03/08/2016 4:31 AM, Sai wrote:
 I see that there are ports of go compiler on ev3dev (ARM, debian based)
 for controlling the EV3 lego mindstorm robot.
 (http://www.ev3dev.org/docs/libraries/)

 Is there a port of a D compiler for ARM? How about libraries? I need a
 basic file IO and console IO for controlling the robot.

 Thanks in advance
 Sai
GDC may work, but you will need to handle all the interfacing code to the platform. Also don't expect e.g. threading to work I suspect.
Aug 02 2016
prev sibling next sibling parent Seb <seb wilzba.ch> writes:
On Tuesday, 2 August 2016 at 16:31:30 UTC, Sai wrote:
 I see that there are ports of go compiler on ev3dev (ARM, 
 debian based) for controlling the EV3 lego mindstorm robot. 
 (http://www.ev3dev.org/docs/libraries/)

 Is there a port of a D compiler for ARM? How about libraries? I 
 need a basic file IO and console IO for controlling the robot.

 Thanks in advance
 Sai
The reference compiler DMD doesn't support ARM, but LDC does and since recently it's quite up-to-date with the latest D-frontend release. Have a look at the LDC wiki entry and the linked entries: https://wiki.dlang.org/LDC#ARM
Aug 02 2016
prev sibling next sibling parent Kagamin <spam here.lot> writes:
There's also official armv7hf release 
https://github.com/ldc-developers/ldc/releases
Aug 03 2016
prev sibling parent reply Sai <test test.com> writes:
Thanks all for your replies.

I tried to use GDC first, I couldn't find windows binary 
targeting windows (for initial testing) which I thought was 
weird. https://gdcproject.org/downloads

So I tried to build it in Cygwin env, using these instructions:
http://wiki.dlang.org/GDC/Installation/Generic
(I used gcc-5.2 sources for this).

Unfortunately, it failed with the following error. Any ideas?

I am tempting towards go, looks like their windows binary 
supports compiling to both windows and arm. Unfortunately I don't 
want to use go as it lacks templates (or generics) and operator 
overloading, as I tend to use lot of vector/matrix math in my 
programs.


         gcc/d/dfrontend -Id 
../../gcc-5.2.0/gcc/d/dfrontend/filename.c
         ../../gcc-5.2.0/gcc/d/dfrontend/filename.c: In static 
member function ‘static bool FileName::ensurePathExists(const 
char*)’:
         ../../gcc-5.2.0/gcc/d/dfrontend/filename.c:602:43: error: 
‘sep’ was not declared in this scope
                      if (path[strlen(path) - 1] != sep)
                                                    ^
         ../../gcc-5.2.0/gcc/d/dfrontend/filename.c:611:21: error: 
‘r’ was not declared in this scope
                          if (r)
                              ^
         ../../gcc-5.2.0/gcc/d/dfrontend/filename.c:616:25: error: 
‘errno’ was not declared in this scope
                              if (errno != EEXIST)
                                  ^
         ../../gcc-5.2.0/gcc/d/dfrontend/filename.c:616:34: error: 
‘EEXIST’ was not declared in this scope
                              if (errno != EEXIST)
                                           ^
         make[2]: *** [../../gcc-5.2.0/gcc/d/Make-lang.in:115: 
d/filename.o] Error 1
         make[2]: *** Waiting for unfinished jobs....
         rm gcc.pod gdc.pod
         make[2]: Leaving directory '/home/sai/gdc/objdir/gcc'
         make[1]: *** [Makefile:4127: all-gcc] Error 2
         make[1]: Leaving directory '/home/sai/gdc/objdir'
         make: *** [Makefile:867: all] Error 2
Aug 21 2016
parent rikki cattermole <rikki cattermole.co.nz> writes:
On 22/08/2016 5:22 PM, Sai wrote:
 Thanks all for your replies.

 I tried to use GDC first, I couldn't find windows binary targeting
 windows (for initial testing) which I thought was weird.
 https://gdcproject.org/downloads

 So I tried to build it in Cygwin env, using these instructions:
 http://wiki.dlang.org/GDC/Installation/Generic
 (I used gcc-5.2 sources for this).

 Unfortunately, it failed with the following error. Any ideas?

 I am tempting towards go, looks like their windows binary supports
 compiling to both windows and arm. Unfortunately I don't want to use go
 as it lacks templates (or generics) and operator overloading, as I tend
 to use lot of vector/matrix math in my programs.


         gcc/d/dfrontend -Id ../../gcc-5.2.0/gcc/d/dfrontend/filename.c
         ../../gcc-5.2.0/gcc/d/dfrontend/filename.c: In static member
 function ‘static bool FileName::ensurePathExists(const char*)’:
         ../../gcc-5.2.0/gcc/d/dfrontend/filename.c:602:43: error: ‘sep’
 was not declared in this scope
                      if (path[strlen(path) - 1] != sep)
                                                    ^
         ../../gcc-5.2.0/gcc/d/dfrontend/filename.c:611:21: error: ‘r’
 was not declared in this scope
                          if (r)
                              ^
         ../../gcc-5.2.0/gcc/d/dfrontend/filename.c:616:25: error:
 ‘errno’ was not declared in this scope
                              if (errno != EEXIST)
                                  ^
         ../../gcc-5.2.0/gcc/d/dfrontend/filename.c:616:34: error:
 ‘EEXIST’ was not declared in this scope
                              if (errno != EEXIST)
                                           ^
         make[2]: *** [../../gcc-5.2.0/gcc/d/Make-lang.in:115:
 d/filename.o] Error 1
         make[2]: *** Waiting for unfinished jobs....
         rm gcc.pod gdc.pod
         make[2]: Leaving directory '/home/sai/gdc/objdir/gcc'
         make[1]: *** [Makefile:4127: all-gcc] Error 2
         make[1]: Leaving directory '/home/sai/gdc/objdir'
         make: *** [Makefile:867: all] Error 2
I've seen that error before, specifically not finding errno. If I remember right its not using the right c++ language version. That is what you should try and Google. I would do it myself but I can't right this minute.
Aug 21 2016