[M3devel] building CM3 on a Raspberry Pi?

mika at async.caltech.edu mika at async.caltech.edu
Mon Oct 14 17:15:16 CEST 2013


Jay you're right of course.  I forgot the -d ... argh!  I'm starting to
get used to using other revision control systems than CVS, I think.

But still, am I doing the right thing?  It seems somehow wrong that
the very first thing the build process does is blows away the cm3.cfg of my
host compiler.  Again all I'm doing is cding to scripts and running

./boot1.py ARMEL_LINUX

I'm happy to try C generation if you think it's easier.  Whatever works in the
end...

BTW, I checked the performance of the Pi and on the benchmarks I had it
was quite a bit faster than the AlphaStation 4/266 my research group
once paid $26,000 for.  (Four times as much RAM, too.)  I'm using a
floating-point benchmark called flops20.c and compared to the systems
on my list, it benchmarks closest to a single node of the HP/Convex
Exemplar X-class CC-NUMA supercomputer.

     Mika

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