[M3devel] building CM3 on a Raspberry Pi?

Jay jay.krell at cornell.edu
Mon Oct 14 18:11:11 CEST 2013


Right: add "c" to boot1.py command line.

 - Jay

On Oct 14, 2013, at 9:01 AM, <mika at async.caltech.edu> wrote:

> 
> [sorry for sending so many small messages..]
> 
> I get the same error about c-family/c-pragma.h if I add 
> 
> M3_BACKEND_MODE = "C"
> 
> to the bottom of the ARMEL_LINUX config in config-no-install and re-run boot1.py ...
> 
> Jay K writes:
>> --_dddec029-8cf2-4528-8c46-8d0a40bef349_
>> Content-Type: text/plain; charset="iso-8859-1"
>> Content-Transfer-Encoding: quoted-printable
>> 
>> Porting to new systems is pretty easy. =20
>> I had ARMEL_LINUX pretty far along. =20
>> I forgot how far. =20
>> I did have to add sort of support for 128bit integers in the gcc backend.=
>> Sort of. =20
>> =20
>> 
>>> ../gcc-4.7/configure: not found=20
>> 
>> =20
>> Make sure you cvs upd -dAP so you get new directories.=20
>> 
>> =20
>> We should switch to the C backend though. It is just a one line change =20
>>  in the config file. Look at the Darwin config files. =20
>> It is not experimental. =20
>> It has been essentially working for over a year (since September 2012)=20
>>  and it is in very good shape now.=20
>> I have used it for a number of architectures and operating systems alread=
>> y=2C=20
>> like I think every Solaris architecture=2C Linux=2C Darwin=2C NT.=20
>> I'd like to see more people use it=2C and I'd like to drop the gcc backen=
>> d entirely.=20
>> This is an important step in leaving Modula-3 very portable and easier to=
>> support.=20
>> =20
>> 
>> - Jay
>> 
>> =20
>>> To: m3devel at elegosoft.com
>>> Date: Sun=2C 13 Oct 2013 13:35:01 -0700
>>> From: mika at async.caltech.edu
>>> Subject: [M3devel] building CM3 on a Raspberry Pi?
>>> =20
>>> =20
>>> Hi everyone (mostly Jay)=2C
>>> =20
>>> Last time I tried to port CM3 to a new architecture I really got nowhere.
>>> =20
>>> I thought it might be time to try again.  I have a Raspberry Pi=2C forty-=
>> dollar computer.
>>> =20
>>> It has "Raspbian" installed on it.
>>> =20
>>> The following output is probably relevant:
>>> =20
>>> pi at raspberrypi ~ $ uname -a
>>> Linux raspberrypi 3.6.11+ #538 PREEMPT Fri Aug 30 20:42:08 BST 2013 armv6=
>> l GNU/Linux
>>> =20
>>> pi at raspberrypi ~ $ gcc -v
>>> Using built-in specs.
>>> COLLECT_GCC=3Dgcc
>>> COLLECT_LTO_WRAPPER=3D/usr/lib/gcc/arm-linux-gnueabihf/4.6/lto-wrapper
>>> Target: arm-linux-gnueabihf
>>> Configured with: ../src/configure -v --with-pkgversion=3D'Debian 4.6.3-14=
>> +rpi1' --with-bugurl=3Dfile:///usr/share/doc/gcc-4.6/README.Bugs --enable-l=
>> anguages=3Dc=2Cc++=2Cfortran=2Cobjc=2Cobj-c++ --prefix=3D/usr --program-suf=
>> fix=3D-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --li=
>> bexecdir=3D/usr/lib --without-included-gettext --enable-threads=3Dposix --w=
>> ith-gxx-include-dir=3D/usr/include/c++/4.6 --libdir=3D/usr/lib --enable-nls=
>> --with-sysroot=3D/ --enable-clocale=3Dgnu --enable-libstdcxx-debug --enabl=
>> e-libstdcxx-time=3Dyes --enable-gnu-unique-object --enable-plugin --enable-=
>> objc-gc --disable-sjlj-exceptions --with-arch=3Darmv6 --with-fpu=3Dvfp --wi=
>> th-float=3Dhard --enable-checking=3Drelease --build=3Darm-linux-gnueabihf -=
>> -host=3Darm-linux-gnueabihf --target=3Darm-linux-gnueabihf
>>> Thread model: posix
>>> gcc version 4.6.3 (Debian 4.6.3-14+rpi1)=20
>>> =20
>>> =20
>>> Further=2C in the CM3 tree there is something called "ARMEL_LINUX".
>>> I thought=2C from reading some old messages on this mailing list=2C that =
>> doing
>>> the following on my "big" system would result in something interesting:
>>> =20
>>> 1. CVS updating to the latest version of the tree
>>> =20
>>> 2. cd to scripts/python
>>> =20
>>> 3. ./boot1.py ARMEL_LINUX
>>> =20
>>> but all it did was mess up the cm3.cfg on my host system (FreeBSD4) and e=
>> rror out very quickly...
>>> =20
>>> ...
>>> rm -f /usr/local/cm3/bin/IA64_LINUX
>>> rm -f /usr/local/cm3/bin/NT.common
>>> rm -f /usr/local/cm3/bin/SPARC32_SOLARIS.common
>>> cp -Pv /big/home2/mika/2/cm3-cvs/cm3/m3-sys/cminstall/src/config-no-insta=
>> ll/cm3.cfg /usr/local/cm3/bin/cm3.cfg
>>> =3D=3D package /big/home2/mika/2/cm3-cvs/cm3/m3-win/import-libs =3D=3D
>>> =20
>>> +++ /usr/local/cm3/bin/cm3    -build -override -DROOT=3D/big/home2/mika/=
>> 2/cm3-cvs/cm3 -boot -keep -DM3CC_TARGET=3DARMEL_LINUX +++
>>> --- building in ARMEL_LINUX ---
>>> =20
>>> =3D=3D> /big/home2/mika/2/cm3-cvs/cm3/m3-win/import-libs done
>>> =20
>>> =3D=3D package /big/home2/mika/2/cm3-cvs/cm3/m3-sys/m3cc =3D=3D
>>> =20
>>> +++ /usr/local/cm3/bin/cm3    -build -override -DROOT=3D/big/home2/mika/=
>> 2/cm3-cvs/cm3 -boot -keep -DM3CC_TARGET=3DARMEL_LINUX +++
>>> --- building in ARMEL_LINUX ---
>>> =20
>>> type make
>>> make is /home/mika/cm3-build-bin//make
>>> make --version | grep "GNU Make"
>>> GNU Make 3.82
>>> GNU_MAKE is make
>>> cd ../FreeBSD4-ARMEL_LINUX &&   MAKE=3D"make -j4  "  AUTOCONF=3D: AUTOMAK=
>> E=3D: LEX=3D'touch lex.yy.c' MAKEINFO=3D: ../gcc-4.7/configure     -with-sy=
>> sroot -target=3Darm-linux-gnueabi -srcdir=3D../gcc-4.7 -disable-bootstrap -=
>> disable-intl -disable-libgomp -disable-libmudflap -disable-libssp -disable-=
>> nls -enable-languages=3Dm3cg -disable-fixincludes -disable-libgcc -disable-=
>> decimal-float -disable-fixed-point -disable-tls
>>> cd ../FreeBSD4-ARMEL_LINUX &&   MAKE=3D"make -j4  "  AUTOCONF=3D: AUTOMAK=
>> E=3D: LEX=3D'touch lex.yy.c' MAKEINFO=3D: ../gcc-4.7/configure     -with-sy=
>> sroot -target=3Darm-linux-gnueabi -srcdir=3D../gcc-4.7 -disable-bootstrap -=
>> disable-intl -disable-libgomp -disable-libmudflap -disable-libssp -disable-=
>> nls -enable-languages=3Dm3cg -disable-fixincludes -disable-libgcc -disable-=
>> decimal-float -disable-fixed-point -disable-tls
>>> ../gcc-4.7/configure: not found
>>> "/big/home2/mika/2/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile"=2C line 339: q=
>> uake runtime error: exit 127: cd ../FreeBSD4-ARMEL_LINUX &&   MAKE=3D"make =
>> -j4  "  AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy.c' MAKEINFO=3D: ../gc=
>> c-4.7/configure     -with-sysroot -target=3Darm-linux-gnueabi -srcdir=3D../=
>> gcc-4.7 -disable-bootstrap -disable-intl -disable-libgomp -disable-libmudfl=
>> ap -disable-libssp -disable-nls -enable-languages=3Dm3cg -disable-fixinclud=
>> es -disable-libgcc -disable-decimal-float -disable-fixed-point -disable-tls
>>> =20
>>> --procedure--  -line-  -file---
>>> exec               --  <builtin>
>>> m3cc_Run          339  /big/home2/mika/2/cm3-cvs/cm3/m3-sys/m3cc/src/m3ma=
>> kefile
>>> include_dir       537  /big/home2/mika/2/cm3-cvs/cm3/m3-sys/m3cc/src/m3ma=
>> kefile
>>>                    9  /big/home2/mika/2/cm3-cvs/cm3/m3-sys/m3cc/ARMEL_LI=
>> NUX/m3make.args
>>> =20
>>> Fatal Error: package build failed
>>> *** execution of [<function _BuildLocalFunction at 0x82d55a4>] failed **=
>> *
>>> (238)rover:~/cm3-cvs-anon/cm3/scripts/python>
>>> =20
>>> =20
>>> So I'm not really sure what state porting of CM3 is in.  I think it
>>> would be really interesting to have it running on the Raspberry Pi=2C
>>> partly because Modula-3 and Python are in many ways similar but Modula-3
>>> code tends to be many times more efficient (at least in runtime) and
>>> the computer is slow by modern standards.
>>> =20
>>> A few questions...
>>> =20
>>> Is ARMEL_LINUX a real port?  Does it work?  Has it worked for anyone? =20
>>> =20
>>> Am I going about it the right way per latest recommendations---that is=2C
>>> trying to cross-compile from an existing CM3 installation on 32-bit
>>> i386 system?
>>> =20
>>> Clearly just running ./boot1.py ARMEL_LINUX on the FreeBSD system is
>>> not the right approach... maybe someone knows what is?
>>> =20
>>> Do I maybe need to upgrade the host CM3 to the head first?  (Sounds
>>> like a whole other can of worms but ok...)
>>> =20
>>> The Pi I think is more than powerful enough to compile everything
>>> natively.  When I started with Modula-3=2C I had a 120-MHz Pentium on
>>> my desk with 128 MB of RAM=2C and that was considered a powerful
>>> system at the time.  This is a 700 MHz ARM with 512 MB of RAM.
>>> So I'm not against compiling stuff natively (in fact I think it makes
>>> things easier)=2C but cross-compiling is fine too if that gets me to
>>> the goal easier.
>>> =20
>>> I am happy to try C generating compilers but I would prefer to keep
>>> things as un-experimental as possible for now=2C because I have some
>>> control applications I'd like to try to build without having to debug
>>> lots and lots of software first.
>>> =20
>>> Finally I think it would be *really* cool if we had a distribution of
>>> Modula-3 that was polished enough to be distributable to Raspberry Pi
>>> users.  Just based on the gross characteristics of the two systems=2C
>>> I think the Pi and Modula-3 ought to be a very good match for each
>>> other.  Basically=2C the Pi is a full-featured but slow hardware system
>>> with good networking facilities.  It could use a safe=2C modern=2C effici=
>> ent
>>> systems programming language running on it.  Most things on it nowadays
>>> are written in Python from what i understand.
>>> =20
>>>     Mika
>>                         =
>> 
>> --_dddec029-8cf2-4528-8c46-8d0a40bef349_
>> Content-Type: text/html; charset="iso-8859-1"
>> Content-Transfer-Encoding: quoted-printable
>> 
>> <html>
>> <head>
>> <style><!--
>> .hmmessage P
>> {
>> margin:0px=3B
>> padding:0px
>> }
>> body.hmmessage
>> {
>> font-size: 12pt=3B
>> font-family:Calibri
>> }
>> --></style></head>
>> <body class=3D'hmmessage'><div dir=3D'ltr'>&nbsp=3B Porting to new systems =
>> is pretty easy.&nbsp=3B <br>&nbsp=3B I had ARMEL_LINUX pretty far along.&nb=
>> sp=3B <br>&nbsp=3B I forgot how far.&nbsp=3B <BR>&nbsp=3B&nbsp=3BI did have=
>> to&nbsp=3Badd sort of support for 128bit integers in the&nbsp=3Bgcc backen=
>> d. Sort of.&nbsp=3B <BR>&nbsp=3B<BR><br>&nbsp=3B&gt=3B ../gcc-4.7/configure=
>> : not found <BR><br>&nbsp=3B<BR>&nbsp=3B Make sure you cvs upd -dAP so you =
>> get new directories. <BR><br>&nbsp=3B<BR>&nbsp=3B We should switch to the C=
>> backend though. It is just a one line change&nbsp=3B <br>&nbsp=3B&nbsp=3B =
>> in the config file. Look at the Darwin config files.&nbsp=3B <br>&nbsp=3B I=
>> t is not experimental.&nbsp=3B <br>&nbsp=3B It has been essentially working=
>> for over a year (since September 2012) <br>&nbsp=3B&nbsp=3B and it is in v=
>> ery good shape now. <br>&nbsp=3B I have used it for a number of architectur=
>> es and operating systems already=2C <br>&nbsp=3B like I think every Solaris=
>> architecture=2C Linux=2C Darwin=2C NT. <br>&nbsp=3B I'd like to see more p=
>> eople use it=2C and I'd like to drop the gcc backend entirely. <br>&nbsp=3B=
>> This is an important step in leaving Modula-3 very portable and easier to =
>> support. <BR>&nbsp=3B<BR><br>&nbsp=3B- Jay<br><br>&nbsp=3B<BR><div>&gt=3B T=
>> o: m3devel at elegosoft.com<br>&gt=3B Date: Sun=2C 13 Oct 2013 13:35:01 -0700<=
>> br>&gt=3B From: mika at async.caltech.edu<br>&gt=3B Subject: [M3devel] buildin=
>> g CM3 on a Raspberry Pi?<br>&gt=3B <br>&gt=3B <br>&gt=3B Hi everyone (mostl=
>> y Jay)=2C<br>&gt=3B <br>&gt=3B Last time I tried to port CM3 to a new archi=
>> tecture I really got nowhere.<br>&gt=3B <br>&gt=3B I thought it might be ti=
>> me to try again.  I have a Raspberry Pi=2C forty-dollar computer.<br>&gt=3B=
>> <br>&gt=3B It has "Raspbian" installed on it.<br>&gt=3B <br>&gt=3B The fol=
>> lowing output is probably relevant:<br>&gt=3B <br>&gt=3B pi at raspberrypi ~ $=
>> uname -a<br>&gt=3B Linux raspberrypi 3.6.11+ #538 PREEMPT Fri Aug 30 20:42=
>> :08 BST 2013 armv6l GNU/Linux<br>&gt=3B <br>&gt=3B pi at raspberrypi ~ $ gcc -=
>> v<br>&gt=3B Using built-in specs.<br>&gt=3B COLLECT_GCC=3Dgcc<br>&gt=3B COL=
>> LECT_LTO_WRAPPER=3D/usr/lib/gcc/arm-linux-gnueabihf/4.6/lto-wrapper<br>&gt=
>> =3B Target: arm-linux-gnueabihf<br>&gt=3B Configured with: ../src/configure=
>> -v --with-pkgversion=3D'Debian 4.6.3-14+rpi1' --with-bugurl=3Dfile:///usr/=
>> share/doc/gcc-4.6/README.Bugs --enable-languages=3Dc=2Cc++=2Cfortran=2Cobjc=
>> =2Cobj-c++ --prefix=3D/usr --program-suffix=3D-4.6 --enable-shared --enable=
>> -linker-build-id --with-system-zlib --libexecdir=3D/usr/lib --without-inclu=
>> ded-gettext --enable-threads=3Dposix --with-gxx-include-dir=3D/usr/include/=
>> c++/4.6 --libdir=3D/usr/lib --enable-nls --with-sysroot=3D/ --enable-clocal=
>> e=3Dgnu --enable-libstdcxx-debug --enable-libstdcxx-time=3Dyes --enable-gnu=
>> -unique-object --enable-plugin --enable-objc-gc --disable-sjlj-exceptions -=
>> -with-arch=3Darmv6 --with-fpu=3Dvfp --with-float=3Dhard --enable-checking=
>> =3Drelease --build=3Darm-linux-gnueabihf --host=3Darm-linux-gnueabihf --tar=
>> get=3Darm-linux-gnueabihf<br>&gt=3B Thread model: posix<br>&gt=3B gcc versi=
>> on 4.6.3 (Debian 4.6.3-14+rpi1) <br>&gt=3B <br>&gt=3B <br>&gt=3B Further=2C=
>> in the CM3 tree there is something called "ARMEL_LINUX".<br>&gt=3B I thoug=
>> ht=2C from reading some old messages on this mailing list=2C that doing<br>=
>> &gt=3B the following on my "big" system would result in something interesti=
>> ng:<br>&gt=3B <br>&gt=3B 1. CVS updating to the latest version of the tree<=
>> br>&gt=3B <br>&gt=3B 2. cd to scripts/python<br>&gt=3B <br>&gt=3B 3. ./boot=
>> 1.py ARMEL_LINUX<br>&gt=3B <br>&gt=3B but all it did was mess up the cm3.cf=
>> g on my host system (FreeBSD4) and error out very quickly...<br>&gt=3B <br>=
>> &gt=3B ...<br>&gt=3B rm -f /usr/local/cm3/bin/IA64_LINUX<br>&gt=3B rm -f /u=
>> sr/local/cm3/bin/NT.common<br>&gt=3B rm -f /usr/local/cm3/bin/SPARC32_SOLAR=
>> IS.common<br>&gt=3B cp -Pv /big/home2/mika/2/cm3-cvs/cm3/m3-sys/cminstall/s=
>> rc/config-no-install/cm3.cfg /usr/local/cm3/bin/cm3.cfg<br>&gt=3B =3D=3D pa=
>> ckage /big/home2/mika/2/cm3-cvs/cm3/m3-win/import-libs =3D=3D<br>&gt=3B <br=
>>> &gt=3B  +++ /usr/local/cm3/bin/cm3    -build -override -DROOT=3D/big/home2=
>> /mika/2/cm3-cvs/cm3 -boot -keep -DM3CC_TARGET=3DARMEL_LINUX +++<br>&gt=3B -=
>> -- building in ARMEL_LINUX ---<br>&gt=3B <br>&gt=3B  =3D=3D&gt=3B /big/home=
>> 2/mika/2/cm3-cvs/cm3/m3-win/import-libs done<br>&gt=3B <br>&gt=3B =3D=3D pa=
>> ckage /big/home2/mika/2/cm3-cvs/cm3/m3-sys/m3cc =3D=3D<br>&gt=3B <br>&gt=3B=
>> +++ /usr/local/cm3/bin/cm3    -build -override -DROOT=3D/big/home2/mika/2=
>> /cm3-cvs/cm3 -boot -keep -DM3CC_TARGET=3DARMEL_LINUX +++<br>&gt=3B --- buil=
>> ding in ARMEL_LINUX ---<br>&gt=3B <br>&gt=3B type make<br>&gt=3B make is /h=
>> ome/mika/cm3-build-bin//make<br>&gt=3B make --version | grep "GNU Make"<br>=
>> &gt=3B GNU Make 3.82<br>&gt=3B GNU_MAKE is make<br>&gt=3B cd ../FreeBSD4-AR=
>> MEL_LINUX &amp=3B&amp=3B   MAKE=3D"make -j4  "  AUTOCONF=3D: AUTOMAKE=3D: L=
>> EX=3D'touch lex.yy.c' MAKEINFO=3D: ../gcc-4.7/configure     -with-sysroot -=
>> target=3Darm-linux-gnueabi -srcdir=3D../gcc-4.7 -disable-bootstrap -disable=
>> -intl -disable-libgomp -disable-libmudflap -disable-libssp -disable-nls -en=
>> able-languages=3Dm3cg -disable-fixincludes -disable-libgcc -disable-decimal=
>> -float -disable-fixed-point -disable-tls<br>&gt=3B cd ../FreeBSD4-ARMEL_LIN=
>> UX &amp=3B&amp=3B   MAKE=3D"make -j4  "  AUTOCONF=3D: AUTOMAKE=3D: LEX=3D't=
>> ouch lex.yy.c' MAKEINFO=3D: ../gcc-4.7/configure     -with-sysroot -target=
>> =3Darm-linux-gnueabi -srcdir=3D../gcc-4.7 -disable-bootstrap -disable-intl =
>> -disable-libgomp -disable-libmudflap -disable-libssp -disable-nls -enable-l=
>> anguages=3Dm3cg -disable-fixincludes -disable-libgcc -disable-decimal-float=
>> -disable-fixed-point -disable-tls<br>&gt=3B ../gcc-4.7/configure: not foun=
>> d<br>&gt=3B "/big/home2/mika/2/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile"=2C l=
>> ine 339: quake runtime error: exit 127: cd ../FreeBSD4-ARMEL_LINUX &amp=3B&=
>> amp=3B   MAKE=3D"make -j4  "  AUTOCONF=3D: AUTOMAKE=3D: LEX=3D'touch lex.yy=
>> .c' MAKEINFO=3D: ../gcc-4.7/configure     -with-sysroot -target=3Darm-linux=
>> -gnueabi -srcdir=3D../gcc-4.7 -disable-bootstrap -disable-intl -disable-lib=
>> gomp -disable-libmudflap -disable-libssp -disable-nls -enable-languages=3Dm=
>> 3cg -disable-fixincludes -disable-libgcc -disable-decimal-float -disable-fi=
>> xed-point -disable-tls<br>&gt=3B <br>&gt=3B --procedure--  -line-  -file---=
>> <br>&gt=3B exec               --  &lt=3Bbuiltin&gt=3B<br>&gt=3B m3cc_Run   =
>>      339  /big/home2/mika/2/cm3-cvs/cm3/m3-sys/m3cc/src/m3makefile<br>&gt=
>> =3B include_dir       537  /big/home2/mika/2/cm3-cvs/cm3/m3-sys/m3cc/src/m3=
>> makefile<br>&gt=3B                     9  /big/home2/mika/2/cm3-cvs/cm3/m3-=
>> sys/m3cc/ARMEL_LINUX/m3make.args<br>&gt=3B <br>&gt=3B Fatal Error: package =
>> build failed<br>&gt=3B  *** execution of [&lt=3Bfunction _BuildLocalFunctio=
>> n at 0x82d55a4&gt=3B] failed ***<br>&gt=3B (238)rover:~/cm3-cvs-anon/cm3/sc=
>> ripts/python&gt=3B<br>&gt=3B <br>&gt=3B <br>&gt=3B So I'm not really sure w=
>> hat state porting of CM3 is in.  I think it<br>&gt=3B would be really inter=
>> esting to have it running on the Raspberry Pi=2C<br>&gt=3B partly because M=
>> odula-3 and Python are in many ways similar but Modula-3<br>&gt=3B code ten=
>> ds to be many times more efficient (at least in runtime) and<br>&gt=3B the =
>> computer is slow by modern standards.<br>&gt=3B <br>&gt=3B A few questions.=
>> ..<br>&gt=3B <br>&gt=3B Is ARMEL_LINUX a real port?  Does it work?  Has it =
>> worked for anyone?  <br>&gt=3B <br>&gt=3B Am I going about it the right way=
>> per latest recommendations---that is=2C<br>&gt=3B trying to cross-compile =
>> from an existing CM3 installation on 32-bit<br>&gt=3B i386 system?<br>&gt=
>> =3B <br>&gt=3B Clearly just running ./boot1.py ARMEL_LINUX on the FreeBSD s=
>> ystem is<br>&gt=3B not the right approach... maybe someone knows what is?<b=
>> r>&gt=3B <br>&gt=3B Do I maybe need to upgrade the host CM3 to the head fir=
>> st?  (Sounds<br>&gt=3B like a whole other can of worms but ok...)<br>&gt=3B=
>> <br>&gt=3B The Pi I think is more than powerful enough to compile everythi=
>> ng<br>&gt=3B natively.  When I started with Modula-3=2C I had a 120-MHz Pen=
>> tium on<br>&gt=3B my desk with 128 MB of RAM=2C and that was considered a p=
>> owerful<br>&gt=3B system at the time.  This is a 700 MHz ARM with 512 MB of=
>> RAM.<br>&gt=3B So I'm not against compiling stuff natively (in fact I thin=
>> k it makes<br>&gt=3B things easier)=2C but cross-compiling is fine too if t=
>> hat gets me to<br>&gt=3B the goal easier.<br>&gt=3B <br>&gt=3B I am happy t=
>> o try C generating compilers but I would prefer to keep<br>&gt=3B things as=
>> un-experimental as possible for now=2C because I have some<br>&gt=3B contr=
>> ol applications I'd like to try to build without having to debug<br>&gt=3B =
>> lots and lots of software first.<br>&gt=3B <br>&gt=3B Finally I think it wo=
>> uld be *really* cool if we had a distribution of<br>&gt=3B Modula-3 that wa=
>> s polished enough to be distributable to Raspberry Pi<br>&gt=3B users.  Jus=
>> t based on the gross characteristics of the two systems=2C<br>&gt=3B I thin=
>> k the Pi and Modula-3 ought to be a very good match for each<br>&gt=3B othe=
>> r.  Basically=2C the Pi is a full-featured but slow hardware system<br>&gt=
>> =3B with good networking facilities.  It could use a safe=2C modern=2C effi=
>> cient<br>&gt=3B systems programming language running on it.  Most things on=
>> it nowadays<br>&gt=3B are written in Python from what i understand.<br>&gt=
>> =3B <br>&gt=3B      Mika<br></div>                           </div></body>
>> </html>=
>> 
>> --_dddec029-8cf2-4528-8c46-8d0a40bef349_--



More information about the M3devel mailing list