[M3devel] which platforms? and questions about FreeBSD versioning

Mika Nystrom mika at async.caltech.edu
Fri May 16 08:46:35 CEST 2008


Did you check the system call numbers?  I often get ... "unknown
system call", I think, when I try to do what you are describing.

By the way I have had far less trouble using binaries across versions
of FreeBSD than trying the same trick on Linux... maybe I just know
better what I am doing on FreeBSD?  I have some very very old programs
that still work fine.  Even the compiler tends to keep working when
upgrading from one major version to the next.  (But yes you do need
to have the compatibility libraries installed on the new system.)

     Mika

Jay writes:
>--_a9d87328-63f1-414c-abcb-03c34a9cee30_
>Content-Type: text/plain; charset="iso-8859-1"
>Content-Transfer-Encoding: quoted-printable
>
>Wow that is crazy.
>The "OS" is backwards compatible.
>The tools -- or at least the headers/libs -- are not backwards compatible.
>They apparently don't produce binaries that run on older systems.
>=20
>Hm, so I did some diffing amongm3-libs\m3core\src\unix\freebsd-*
>they are all amost identical.and almost all compatible.Freebsd-1 to -2 is t=
>he least compatible.otherwise the only actual difference I see is in Usigna=
>l sa_flags and sa_mask getting reversed. and sigcontext changed.
>Otherwise it's mostly things like long vs. unsigned_long,int64_t vs. quad_t=
>, short vs. int16_t.
>The DIR record grew, but as long as it is not implementedin Modula-3 and th=
>e new fields not access, no matter.
>Oh one errno value changed.
>Sometimes some types or functions got added, but that is ok.
>=20
>Maybe more research at a might later date...
>=20
> - Jay
>
>
>
>> To: jayk123 at hotmail.com> CC: m3devel at elegosoft.com> Subject: Re: [M3devel=
>] which platforms? and questions about FreeBSD versioning > Date: Thu, 15 M=
>ay 2008 22:54:28 -0700> From: mika at async.caltech.edu> > > No, sorry, haven'=
>t gotten around to testing the current NT386GNU> cm3... I have a lot of ver=
>sion synchronizing to do, unfortunately :(> > Yes, FreeBSD is backwards-com=
>patible, *not* forwards-compatible.> That is, you can build even fairly com=
>plex software packages on an old> FreeBSD system and expect it to run on th=
>e latest release. You cannot,> as a general rule, build anything on a newer=
> system and expect it to work> on an older one. There must be "some" way of=
> doing it that way, but> I don't know what it is, and I don't know if it's =
>very well supported.> I keep FreeBSD 4.x systems around for precisely this =
>reason: the binaries> compiled there work fine on 5.x and 6.x (as far as I =
>have tested). Not> the other way around! In fact it has never worked the ot=
>her way, as > long as I can remember, with FreeBSD.> > This is also why I s=
>uggest that a "FreeBSD4" bootstrap should actually> be built on FreeBSD 4.x=
> and not 5.x, 6.x, or 7.x!> > Mika> > Jay writes:> >--_14c076c4-fb7c-48b0-b=
>705-2e38d4b4a333_> >Content-Type: text/plain; charset=3D"iso-8859-1"> >Cont=
>ent-Transfer-Encoding: quoted-printable> >> >Mika, ok, this is tangential: =
>Have you tried the current NT386GNU cm3?> >=3D20> >I meant, more about what=
> "operating systems" that Modula-3 does not support=3D> > do people here us=
>e, would like to see Modula-3 on. Or maybe I meant both.> >=3D20> >Speaking=
> of the "4" in FreeBSD4:> >=3D20> >Has FreeBSD, and the other BSDs, really =
>broken backward compat?> >They really change interfaces a lot such that bin=
>aries built with current h=3D> >eaders/libs won't run on older versions?> >=
>And there isn't an easy way on current platforms to build something using o=
>=3D> >lder tools to run on older and newer platforms?> >Look at Windows for=
> example. If you call a "new" function directly, you wil=3D> >l fail to loa=
>d on older platforms. So either don't call them, or use LoadLi=3D> >brary/G=
>etProcAddress. Structures almost never change size, though there is =3D> >s=
>ome screwiness there, stuff like:> >=3D20> >struct FOO { size_t Size;> > in=
>t Field1;> >#if VERSION > 1234> > int Field2;> >#endif> >};> >=3D20> >I thi=
>nk it should be more like:> >=3D20> >struct FOO { size_t Size;> > int Field=
>1;> >#if VERSION > 1234> > int Field2;> >#endif> >};> >=3D20> >struct FOO_V=
>1{ size_t Size;> > int Field1;> >};> >=3D20> >struct FOO_V2 { size_t Size;>=
> > int Field1;> > int Field2;> >};> >=3D20> >#if VERSION > 1234> >typedef F=
>OO_V2 FOO;> >#else> >typedef FOO_V1 FOO;> >#endif> >=3D20> >I understand th=
>at binaries built on the older platform will continue to wor=3D> >k on the =
>newer platform.> >That is one thing.> >But it is also useful to be able to =
>build binaries on the newer platform th=3D> >at will on the older platform.=
>> >Apple also invests a bunch here.> >=3D20> >Well, ok, if it was really "b=
>ad", there'd be FreeBSD5, 6, 7.> >I guess maybe they broke this stuff somet=
>imes but haven't in a while?> >That you can build FreeBSD4 binaries on Free=
>BSD7 and the run down to 4?> >=3D20> >And then, same questions about OpenBS=
>D and NetBSD.> >I understand -- I could/must go and install a bajillion ope=
>rating systems a=3D> >nd test and find out, but I don't expect to spend the=
> time that way and pus=3D> >h comes to shove, any BSD (and Linux, Solaris, =
>NT, CE, etc.) variants I int=3D> >roduce will have no version number in the=
>m, will be built on whatever I hav=3D> >e, and it will be unknown if they w=
>ork on older. And maybe something will m=3D> >aterialize to be more portabl=
>e, like interfacing to the Posix via C instead=3D> > of cloned headers.> >=
>=3D20> > - Jay> >> >> >> >> To: jayk123 at hotmail.com> CC: m3devel at elegosoft.=
>com> Subject: Re: [M3devel=3D> >] which platforms? > Date: Thu, 15 May 2008=
> 14:30:36 -0700> From: mika at asyn=3D> >c.caltech.edu> > here it is:> > FreeB=
>SD4> PPC_DARWIN> NT386GNU> LINUXLIBC6>=3D> > > I386_DARWIN coming soon> > T=
>ony Hosking writes:> >> >--Apple-Mail-4-6310=3D> >28010> >Content-Type: tex=
>t/plain;> > charset=3D3DUS-ASCII;> > format=3D3Dflowed=3D> >;> > delsp=3D3D=
>yes> >Content-Transfer-Encoding: 7bit> >> >SOLgnu> >PPC_DARWIN=3D> >> >I386=
>_DARWIN> >AMD64_DARWIN> >LINUXLIBC6> >I'd like AMD64_LINUX, SPARC64_=3D> >S=
>OLARISN but no time right now to devote > >to them.> >> >On May 14, 2008, =
>=3D> >at 1:25 PM, Jay wrote:> >> >> What do people run?> >> In particular: =
>NetBSD=3D> >? OpenBSD? Sparc32? Sparc64? PPC64_DARWIN? > >> I386_SOLARIS? A=
>MD64_SOLARIS=3D> >? SPARC64_SOLARIS? ARM_WINCE? AMD64_NT?> >>> >> Just curi=
>ous, I'll probably=3D> > bring up whatever I can, it's fun, and > >> yes, g=
>et back and fix AMD64_LI=3D> >NUX to have> >> garbage collection, NT386GNU =
>and NT386 tests, cross-platfor=3D> >m sets, > >> setup some Tinderboxes, et=
>c...> >>> >> (AMD64_NT: the gcc avai=3D> >lable for this includes a bunch o=
>f patches, > >> so I'm inclined to either =3D> >wait for them to go upstrea=
>m,> >> or seek an alternate route such as "port"=3D> > the in-proc backend,=
> llvm, > >> generate C, or maybe write an interpreter =3D> >for the IL;> >>=
> and "porting" the backend is probably best preceded by a) x=3D> >86 > >> L=
>ONGINT support b) other x86 targets "for practise", at least one,>=3D> > >>=
> though regarding .obj file formats, that would be tangential.)> >>> >> =3D=
>> >- Jay> >>> >>> >>> >>> >> >> >--Apple-Mail-4-631028010> >Content-Type: t=
>ext=3D> >/html;> > charset=3D3DUS-ASCII> >Content-Transfer-Encoding: quoted=
-printable>=3D> > >> ><html><body style=3D3D3D"word-wrap: break-word; -webk=
>it-nbsp-mode: space=3D> >; =3D3D> >-webkit-line-break: after-white-space; "=
>><div =3D3D> >apple-content-e=3D> >dited=3D3D3D"true"><span class=3D3D3D"Ap=
>ple-style-span" =3D3D> >style=3D3D3D"border=3D> >-collapse: separate; borde=
>r-spacing: 0px 0px; color: =3D3D> >rgb(0, 0, 0); fo=3D> >nt-family: Helveti=
>ca; font-size: 12px; font-style: =3D3D> >normal; font-varia=3D> >nt: normal=
>; font-weight: normal; letter-spacing: =3D3D> >normal; line-height:=3D> > n=
>ormal; text-align: auto; =3D3D> >-khtml-text-decorations-in-effect: none; t=
>=3D> >ext-indent: 0px; =3D3D> >-apple-text-size-adjust: auto; text-transfor=
>m: none;=3D> > orphans: 2; =3D3D> >white-space: normal; widows: 2; word-spa=
>cing: 0px; "><di=3D> >v =3D3D> >style=3D3D3D"word-wrap: break-word; -khtml-=
>nbsp-mode: space; =3D3D> >-k=3D> >html-line-break: after-white-space; "><sp=
>an class=3D3D3D"Apple-style-span" =3D> >=3D3D> >style=3D3D3D"border-collaps=
>e: separate; border-spacing: 0px 0px; color:=3D> > =3D3D> >rgb(0, 0, 0); fo=
>nt-family: Helvetica; font-size: 12px; font-style: =3D> >=3D3D> >normal; fo=
>nt-variant: normal; font-weight: normal; letter-spacing: =3D> >=3D3D> >norm=
>al; line-height: normal; text-align: auto; =3D3D> >-khtml-text-deco=3D> >ra=
>tions-in-effect: none; text-indent: 0px; =3D3D> >-apple-text-size-adjust: a=
>=3D> >uto; text-transform: none; orphans: 2; =3D3D> >white-space: normal; w=
>idows: 2=3D> >; word-spacing: 0px; =3D3D> >">SOLgnu</span></div><div style=
>=3D3D3D"word-wrap: =3D> >break-word; =3D3D> >-khtml-nbsp-mode: space; -khtm=
>l-line-break: after-white-s=3D> >pace; =3D3D> >">PPC_DARWIN</div><div style=
>=3D3D3D"word-wrap: break-word; -khtml=3D> >-nbsp-mode: =3D3D> >space; -khtm=
>l-line-break: after-white-space; ">I386_DARWI=3D> >N</div><div =3D3D> >styl=
>e=3D3D3D"word-wrap: break-word; -khtml-nbsp-mode: space=3D> >; =3D3D> >-kht=
>ml-line-break: after-white-space; ">AMD64_DARWIN</div><div =3D3D>=3D> > >st=
>yle=3D3D3D"word-wrap: break-word; -khtml-nbsp-mode: space; =3D3D> >-khtml-l=
>=3D> >ine-break: after-white-space; ">LINUXLIBC6</div><div =3D3D> >style=3D=
>3D3D"word-=3D> >wrap: break-word; -khtml-nbsp-mode: space; =3D3D> >-khtml-l=
>ine-break: after-w=3D> >hite-space; ">I'd like AMD64_LINUX, <span =3D3=
>D> >class=3D3D3D"Apple-style=3D> >-span" style=3D3D3D"font-family: Tahoma; =
>font-size: =3D3D> >13px; ">SPARC64_SOL=3D> >ARISN but no time right now to =
>devote to =3D3D> >them.</span></div></span></d=3D> >iv><br><div><div>On May=
> 14, 2008, at 1:25 =3D3D> >PM, Jay wrote:</div><br cla=3D> >ss=3D3D3D"Apple=
>-interchange-newline"><blockquote =3D3D> >type=3D3D3D"cite"><span =3D> >cla=
>ss=3D3D3D"Apple-style-span" style=3D3D3D"border-collapse: =3D3D> >separate;=
> co=3D> >lor: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; =3D3D>=
> >font-styl=3D> >e: normal; font-variant: normal; font-weight: normal; =3D3=
>D> >letter-spacing:=3D> > normal; line-height: normal; orphans: 2; text-ali=
>gn: =3D3D> >auto; text-inde=3D> >nt: 0px; text-transform: none; white-space=
>: normal; =3D3D> >widows: 2; word-s=3D> >pacing: 0px; -webkit-border-horizo=
>ntal-spacing: 0px; =3D3D> >-webkit-border-v=3D> >ertical-spacing: 0px; =3D3=
>D> >-webkit-text-decorations-in-effect: none; -webk=3D> >it-text-size-adjus=
>t: =3D3D> >auto; -webkit-text-stroke-width: 0; "><div class=3D> >=3D3D3D"hm=
>message" =3D3D> >style=3D3D3D"font-size: 10pt; font-family: Tahoma; ">W=3D>=
> >hat do people =3D3D> >run?<br>In particular: NetBSD? OpenBSD? Sparc32? Sp=
>arc6=3D> >4? PPC64_DARWIN? =3D3D> >I386_SOLARIS? AMD64_SOLARIS? SPARC64_SOL=
>ARIS? ARM_WI=3D> >NCE? =3D3D> >AMD64_NT?<br> <br>Just curious, I'll pr=
>obably bring up what=3D> >ever I =3D3D> >can, it's fun, and yes, get back a=
>nd fix AMD64_LINUX to have<b=3D> >r>garbage =3D3D> >collection, NT386GNU an=
>d NT386 tests, cross-platform s=3D> >ets, setup =3D3D> >some Tinderbox=
>es, etc...<br> <br>(AMD64_NT: the gcc a=3D> >vailable for =3D3D> >this=
> includes a bunch of patches, so I'm inclined to eit=3D> >her wait for =3D3=
>D> >them to go upstream,<br>or seek an alternate route such =3D> >as "port"=
> the =3D3D> >in-proc backend, llvm, generate C, or maybe write an in=3D> >t=
>erpreter for the =3D3D> >IL;<br>and "porting" the backend is probably best =
>p=3D> >receded by a) x86 =3D3D> >LONGINT support b) other x86 targets "for =
>practise"=3D> >, at least =3D3D> >one,<br>though regarding .obj file format=
>s, that would be =3D> >=3D3D> >tangential.)<br> <br> - =3D3D> >Ja=
>y<br><br><br><br><br></div>=3D> ></span></blockquote></div><br></body></htm=
>l>=3D3D> >> >--Apple-Mail-4-6310280=3D> >10--=3D> >> >--_14c076c4-fb7c-48b0=
>-b705-2e38d4b4a333_> >Content-Type: text/html; charset=3D"iso-8859-1"> >Con=
>tent-Transfer-Encoding: quoted-printable> >> ><html>> ><head>> ><style>> >.=
>hmmessage P> >{> >margin:0px;> >padding:0px> >}> >body.hmmessage> >{> >FONT=
>-SIZE: 10pt;> >FONT-FAMILY:Tahoma> >}> ></style>> ></head>> ><body class=3D=
>3D'hmmessage'>Mika, ok, this is tangential: Have you =3D> >tried =
>the current NT386GNU cm3?<BR>> > <BR>> >I meant, more about what "oper=
>ating systems" that Modula-3 does not support=3D> > do people here use, wou=
>ld like to see Modula-3 on. Or maybe I meant both.<=3D> >BR>> > <BR>> =
>>Speaking of the "4" in FreeBSD4:<BR>> > <BR>> >Has FreeBSD, and the o=
>ther BSDs, really broken backward compat?<BR>> >They really change int=
>erfaces a lot such that binaries built with current h=3D> >eaders/libs won'=
>t run on older versions?<BR>> >And there isn't an easy way on current platf=
>orms to build something using o=3D> >lder tools to run on older and newer p=
>latforms?<BR>> >Look at Windows for example. If you call a "new" function d=
>irectly, you wil=3D> >l fail to load on older platforms. So either don't ca=
>ll them, or use LoadLi=3D> >brary/GetProcAddress. Structures almost never c=
>hange size, though there is =3D> >some screwiness there, stuff like:<BR>> >=
> <BR>> >struct FOO {<BR>  size_t Size;<BR>> >  int Field1;<B=
>R>> >#if VERSION > 1234<BR>> >  int Field2;<BR>> >#endif<BR>> >};<B=
>R>> > <BR>> >I think it should be more like:<BR>> > <BR>> >struct=
> FOO {<BR>  size_t Size;<BR>> >  int Field1;<BR>> >#if VERSION &g=
>t; 1234<BR>> >  int Field2;<BR>> >#endif<BR>> >};<BR>> > <BR>> >s=
>truct FOO_V1{<BR>  size_t Size;<BR>> >  int Field1;<BR>> >};<BR>>=
> > <BR>> >struct FOO_V2 {<BR>  size_t Size;<BR>> >  int Fiel=
>d1;<BR>> >  int Field2;<BR>> >};<BR>> > <BR>> >#if VERSION > 1=
>234<BR>> >typedef FOO_V2 FOO;<BR>> >#else<BR>> >typedef FOO_V1 FOO;<BR>> >#=
>endif<BR>> > <BR>> >I understand that binaries built on the older plat=
>form will continue to wor=3D> >k on the newer platform.<BR>> >That is one t=
>hing.<BR>> >But it is also useful to be able to build binaries on the newer=
> platform th=3D> >at will on the older platform.<BR>> >Apple also invests a=
> bunch here.<BR>> > <BR>> >Well, ok, if it was really "bad", there'd b=
>e FreeBSD5, 6, 7.<BR>> >I guess maybe they broke this stuff sometimes but h=
>aven't in a while?<BR>> >That you can build FreeBSD4 binaries on FreeBSD7 a=
>nd the run down to 4?<BR>> > <BR>> >And then, same questions about Ope=
>nBSD and NetBSD.<BR>> >I understand -- I could/must go and install a bajill=
>ion operating systems a=3D> >nd test and find out, but I don't expect to sp=
>end the time that way and pus=3D> >h comes to shove, any BSD (and Linux, So=
>laris, NT, CE, etc.) variants I int=3D> >roduce will have no version number=
> in them, will be built on whatever I hav=3D> >e, and it will be unknown if=
> they work on older. And maybe something will m=3D> >aterialize to be more =
>portable, like interfacing to the Posix via C instead=3D> > of cloned heade=
>rs.<BR>> > <BR>> > - Jay<BR><BR><BR>> >> ><HR id=3D3DstopSpelling=
>>> ><BR>> >> To: jayk123 at hotmail.com<BR>> CC: m3devel at elegosoft.com<B=
>R>> Subj=3D> >ect: Re: [M3devel] which platforms? <BR>> Date: Thu, 15=
> May 2008 14:30:3=3D> >6 -0700<BR>> From: mika at async.caltech.edu<BR>>=
> <BR>> here it is:<B=3D> >R>> <BR>> FreeBSD4<BR>> PPC_DARWIN<BR=
>>> NT386GNU<BR>> LINUXL=3D> >IBC6<BR>> <BR>> I386_DARWIN coming=
> soon<BR>> <BR>> Tony Hosking=3D> > writes:<BR>> ><BR>> >=
>--Apple-Mail-4-631028010<BR>> >Cont=3D> >ent-Type: text/plain;<BR>&gt=
>; > charset=3D3DUS-ASCII;<BR>> > format=3D> >=3D3Dflowed;<BR>> =
>> delsp=3D3Dyes<BR>> >Content-Transfer-Encoding: =3D> >7bit<BR>&gt=
>; ><BR>> >SOLgnu<BR>> >PPC_DARWIN<BR>> >I38=3D> >6_DAR=
>WIN<BR>> >AMD64_DARWIN<BR>> >LINUXLIBC6<BR>> >I'd li=3D> =
>>ke AMD64_LINUX, SPARC64_SOLARISN but no time right now to devote <BR>> =
>&=3D> >gt;to them.<BR>> ><BR>> >On May 14, 2008, at 1:25 PM, Ja=
>y wrote=3D> >:<BR>> ><BR>> >> What do people run?<BR>> &g=
>t;> In par=3D> >ticular: NetBSD? OpenBSD? Sparc32? Sparc64? PPC64_DARWIN=
>? <BR>> >>=3D> > I386_SOLARIS? AMD64_SOLARIS? SPARC64_SOLARIS? ARM=
>_WINCE? AMD64_NT?<BR>>=3D> > >><BR>> >> Just curious, I'l=
>l probably bring up whatever I =3D> >can, it's fun, and <BR>> >> y=
>es, get back and fix AMD64_LINUX to h=3D> >ave<BR>> >> garbage col=
>lection, NT386GNU and NT386 tests, cross-pl=3D> >atform sets, <BR>> >=
>> setup some Tinderboxes, etc...<BR>> >&=3D> >gt;<BR>> >>=
> (AMD64_NT: the gcc available for this includes a bunch=3D> > of patches, <=
>BR>> >> so I'm inclined to either wait for them to g=3D> >o upstre=
>am,<BR>> >> or seek an alternate route such as "port" the =3D> >in=
>-proc backend, llvm, <BR>> >> generate C, or maybe write an inte=
>=3D> >rpreter for the IL;<BR>> >> and "porting" the backend is pro=
>bably =3D> >best preceded by a) x86 <BR>> >> LONGINT support b) ot=
>her x86 targ=3D> >ets "for practise", at least one,<BR>> >> though=
> regarding .obj fi=3D> >le formats, that would be tangential.)<BR>> >=
>><BR>> >> - =3D> >Jay<BR>> >><BR>> >><BR>>=
> >><BR>> >><BR>=3D> >> ><BR>> ><BR>> >--Ap=
>ple-Mail-4-631028010<BR>> >Con=3D> >tent-Type: text/html;<BR>> &gt=
>; charset=3D3DUS-ASCII<BR>> >Content-T=3D> >ransfer-Encoding: quoted-=
>printable<BR>> ><BR>> ><html>&lt=3D> >;body style=3D3D3D"=
>word-wrap: break-word; -webkit-nbsp-mode: space; =3D3D<BR>&g=3D> >t; >-w=
>ebkit-line-break: after-white-space; "><div =3D3D<BR>> >=3D> >a=
>pple-content-edited=3D3D3D"true"><span class=3D3D3D"Apple-style-span"=
> =3D> >=3D3D<BR>> >style=3D3D3D"border-collapse: separate; border-spa=
>cing: 0px 0=3D> >px; color: =3D3D<BR>> >rgb(0, 0, 0); font-family: He=
>lvetica; font-size:=3D> > 12px; font-style: =3D3D<BR>> >normal; font-=
>variant: normal; font-weigh=3D> >t: normal; letter-spacing: =3D3D<BR>> &=
>gt;normal; line-height: normal; tex=3D> >t-align: auto; =3D3D<BR>> >-=
>khtml-text-decorations-in-effect: none; tex=3D> >t-indent: 0px; =3D3D<BR>&g=
>t; >-apple-text-size-adjust: auto; text-transfor=3D> >m: none; orphans: =
>2; =3D3D<BR>> >white-space: normal; widows: 2; word-s=3D> >pacing: 0p=
>x; "><div =3D3D<BR>> >style=3D3D3D"word-wrap: break-word;=3D> >=
> -khtml-nbsp-mode: space; =3D3D<BR>> >-khtml-line-break: after-white-=
>sp=3D> >ace; "><span class=3D3D3D"Apple-style-span" =3D3D<BR>> &gt=
>;style=3D3D3D"=3D> >border-collapse: separate; border-spacing: 0px 0px; col=
>or: =3D3D<BR>> >=3D> >rgb(0, 0, 0); font-family: Helvetica; font-size=
>: 12px; font-style: =3D3D<BR>&=3D> >gt; >normal; font-variant: normal; f=
>ont-weight: normal; letter-spacing: =3D> >=3D3D<BR>> >normal; line-he=
>ight: normal; text-align: auto; =3D3D<BR>> =3D> >>-khtml-text-decorat=
>ions-in-effect: none; text-indent: 0px; =3D3D<BR>> =3D> >>-apple-text=
>-size-adjust: auto; text-transform: none; orphans: 2; =3D3D<BR=3D> >>> &=
>gt;white-space: normal; widows: 2; word-spacing: 0px; =3D3D<BR>> &g=3D> =
>>t;">SOLgnu</span></div><div style=3D3D3D"word-wrap: brea=
>k-w=3D> >ord; =3D3D<BR>> >-khtml-nbsp-mode: space; -khtml-line-break:=
> after-whit=3D> >e-space; =3D3D<BR>> >">PPC_DARWIN</div><=
>div style=3D3D3D"word=3D> >-wrap: break-word; -khtml-nbsp-mode: =3D3D<BR>&g=
>t; >space; -khtml-line-bre=3D> >ak: after-white-space; ">I386_DARWIN&=
>lt;/div><div =3D3D<BR>> >=3D> >style=3D3D3D"word-wrap: break-wo=
>rd; -khtml-nbsp-mode: space; =3D3D<BR>> >=3D> >-khtml-line-break: aft=
>er-white-space; ">AMD64_DARWIN</div><div =3D> >=3D3D<BR>> &g=
>t;style=3D3D3D"word-wrap: break-word; -khtml-nbsp-mode: space; =3D> >=3D3D<=
>BR>> >-khtml-line-break: after-white-space; ">LINUXLIBC6</d=3D>=
> >iv><div =3D3D<BR>> >style=3D3D3D"word-wrap: break-word; -khtm=
>l-nbsp=3D> >-mode: space; =3D3D<BR>> >-khtml-line-break: after-white-=
>space; ">I'=3D> >d like AMD64_LINUX,&nbsp;<span =3D3D<BR>> &gt=
>;class=3D3D3D"Apple-styl=3D> >e-span" style=3D3D3D"font-family: Tahoma; fon=
>t-size: =3D3D<BR>> >13px; "&=3D> >gt;SPARC64_SOLARISN but no time rig=
>ht now to devote to =3D3D<BR>> >them=3D> >.</span></div>&=
>lt;/span></div><br><div>&lt=3D> >;div>On May 14, 20=
>08, at 1:25 =3D3D<BR>> >PM, Jay wrote:</div>=3D> ><br class=
>=3D3D3D"Apple-interchange-newline"><blockquote =3D3D<BR>> =3D> >&g=
>t;type=3D3D3D"cite"><span class=3D3D3D"Apple-style-span" style=3D3D3D=
>"bor=3D> >der-collapse: =3D3D<BR>> >separate; color: rgb(0, 0, 0); fo=
>nt-family: H=3D> >elvetica; font-size: 12px; =3D3D<BR>> >font-style: =
>normal; font-variant=3D> >: normal; font-weight: normal; =3D3D<BR>> >=
>letter-spacing: normal; line=3D> >-height: normal; orphans: 2; text-align: =
>=3D3D<BR>> >auto; text-indent:=3D> > 0px; text-transform: none; white=
>-space: normal; =3D3D<BR>> >widows: 2;=3D> > word-spacing: 0px; -webk=
>it-border-horizontal-spacing: 0px; =3D3D<BR>> &gt=3D> >;-webkit-border-v=
>ertical-spacing: 0px; =3D3D<BR>> >-webkit-text-decorat=3D> >ions-in-e=
>ffect: none; -webkit-text-size-adjust: =3D3D<BR>> >auto; -webk=3D> >i=
>t-text-stroke-width: 0; "><div class=3D3D3D"hmmessage" =3D3D<BR>> =
>&gt=3D> >;style=3D3D3D"font-size: 10pt; font-family: Tahoma; ">What do p=
>eople =3D3D<B=3D> >R>> >run?<br>In particular: NetBSD? OpenBSD?=
> Sparc32? Sparc64? =3D> >PPC64_DARWIN? =3D3D<BR>> >I386_SOLARIS? AMD6=
>4_SOLARIS? SPARC64_SOLARIS?=3D> > ARM_WINCE? =3D3D<BR>> >AMD64_NT?&lt=
>;br>&nbsp;<br>Just cur=3D> >ious, I'll probably bring up whate=
>ver I =3D3D<BR>> >can, it's fun, and =3D> >yes, get back and fix AMD6=
>4_LINUX to have<br>garbage =3D3D<BR>> >=3D> >collection, NT386G=
>NU and NT386 tests,&nbsp;cross-platform sets, setup =3D> >=3D3D<BR>>=
> >some Tinderboxes, etc...<br>&nbsp;<br>(AMD6=3D> >4_NT:=
> the gcc available for =3D3D<BR>> >this includes a bunch of patche=3D=
>> >s, so I'm inclined to either wait for =3D3D<BR>> >them to go upstr=
>eam,&=3D> >lt;br>or seek an alternate route such as "port" the =3D3D<BR>=
>> >in-p=3D> >roc backend, llvm, generate C, or maybe write an interpr=
>eter for the =3D3D<BR=3D> >>> >IL;<br>and "porting" the backend=
> is probably best preceded =3D> >by a) x86 =3D3D<BR>> >LONGINT suppor=
>t b) other x86 targets "for practis=3D> >e", at least =3D3D<BR>> >one=
>,<br>though regarding .obj file forma=3D> >ts, that would be =3D3D<BR=
>>> >tangential.)<br>&nbsp;<br&gt=3D> >;&nbsp;- =3D3D=
><BR>> >Jay<br><br><br><br>&lt=3D> >;br>&lt=
>;/div></span></blockquote></div><br>&l=3D> >t;/b=
>ody></html>=3D3D<BR>> ><BR>> >--Apple-Mail-4-6310280=
>=3D> >10--<BR><BR></body>> ></html>=3D> >> >--_14c076c4-fb7c-48b0-b705-2e38=
>d4b4a333_--=
>
>--_a9d87328-63f1-414c-abcb-03c34a9cee30_
>Content-Type: text/html; charset="iso-8859-1"
>Content-Transfer-Encoding: quoted-printable
>
><html>
><head>
><style>
>.hmmessage P
>{
>margin:0px;
>padding:0px
>}
>body.hmmessage
>{
>FONT-SIZE: 10pt;
>FONT-FAMILY:Tahoma
>}
></style>
></head>
><body class=3D'hmmessage'>Wow that is crazy.<BR>
>The "OS" is backwards compatible.<BR>
>The tools -- or at least the headers/libs -- are not backwards compati=
>ble.<BR>
>They apparently don't produce binaries that run on older systems.<BR>
> <BR>
>Hm, so I did some diffing among<BR>m3-libs\m3core\src\unix\freebsd-*<BR>
>they are all amost identical.<BR>and almost all compatible.<BR>Freebsd-1 to=
> -2 is the least compatible.<BR>otherwise the only actual difference I see =
>is<BR> in Usignal sa_flags and sa_mask getting reversed.<BR> and =
>sigcontext changed.<BR>
><BR>Otherwise it's mostly things like long vs. unsigned_long,<BR>int64_t vs=
>. quad_t, short vs. int16_t.<BR>
><BR>The DIR record grew, but as long as it is not implemented<BR>in Modula-=
>3 and the new fields not access, no matter.<BR>
>Oh one errno value changed.<BR>
>Sometimes some types or functions got added, but<BR> that is ok.<BR>
> <BR>
>Maybe more research at a might later date...<BR>
> <BR>
> - Jay<BR><BR><BR>
>
><HR id=3DstopSpelling>
><BR>
>> To: jayk123 at hotmail.com<BR>> CC: m3devel at elegosoft.com<BR>> Subj=
>ect: Re: [M3devel] which platforms? and questions about FreeBSD versioning =
><BR>> Date: Thu, 15 May 2008 22:54:28 -0700<BR>> From: mika at async.cal=
>tech.edu<BR>> <BR>> <BR>> No, sorry, haven't gotten around to test=
>ing the current NT386GNU<BR>> cm3... I have a lot of version synchronizi=
>ng to do, unfortunately :(<BR>> <BR>> Yes, FreeBSD is backwards-compa=
>tible, *not* forwards-compatible.<BR>> That is, you can build even fairl=
>y complex software packages on an old<BR>> FreeBSD system and expect it =
>to run on the latest release. You cannot,<BR>> as a general rule, build =
>anything on a newer system and expect it to work<BR>> on an older one. T=
>here must be "some" way of doing it that way, but<BR>> I don't know what=
> it is, and I don't know if it's very well supported.<BR>> I keep FreeBS=
>D 4.x systems around for precisely this reason: the binaries<BR>> compil=
>ed there work fine on 5.x and 6.x (as far as I have tested). Not<BR>> th=
>e other way around! In fact it has never worked the other way, as <BR>> =
>long as I can remember, with FreeBSD.<BR>> <BR>> This is also why I s=
>uggest that a "FreeBSD4" bootstrap should actually<BR>> be built on Free=
>BSD 4.x and not 5.x, 6.x, or 7.x!<BR>> <BR>> Mika<BR>> <BR>> Ja=
>y writes:<BR>> >--_14c076c4-fb7c-48b0-b705-2e38d4b4a333_<BR>> >=
>Content-Type: text/plain; charset=3D"iso-8859-1"<BR>> >Content-Transf=
>er-Encoding: quoted-printable<BR>> ><BR>> >Mika, ok, this is ta=
>ngential: Have you tried the current NT386GNU cm3?<BR>> >=3D20<BR>&gt=
>; >I meant, more about what "operating systems" that Modula-3 does not s=
>upport=3D<BR>> > do people here use, would like to see Modula-3 on. O=
>r maybe I meant both.<BR>> >=3D20<BR>> >Speaking of the "4" in =
>FreeBSD4:<BR>> >=3D20<BR>> >Has FreeBSD, and the other BSDs, re=
>ally broken backward compat?<BR>> >They really change interfaces a lo=
>t such that binaries built with current h=3D<BR>> >eaders/libs won't =
>run on older versions?<BR>> >And there isn't an easy way on current p=
>latforms to build something using o=3D<BR>> >lder tools to run on old=
>er and newer platforms?<BR>> >Look at Windows for example. If you cal=
>l a "new" function directly, you wil=3D<BR>> >l fail to load on older=
> platforms. So either don't call them, or use LoadLi=3D<BR>> >brary/G=
>etProcAddress. Structures almost never change size, though there is =3D<BR>=
>> >some screwiness there, stuff like:<BR>> >=3D20<BR>> >s=
>truct FOO { size_t Size;<BR>> > int Field1;<BR>> >#if VERSION &=
>gt; 1234<BR>> > int Field2;<BR>> >#endif<BR>> >};<BR>>=
> >=3D20<BR>> >I think it should be more like:<BR>> >=3D20<BR=
>>> >struct FOO { size_t Size;<BR>> > int Field1;<BR>> >#i=
>f VERSION > 1234<BR>> > int Field2;<BR>> >#endif<BR>> &gt=
>;};<BR>> >=3D20<BR>> >struct FOO_V1{ size_t Size;<BR>> > =
>int Field1;<BR>> >};<BR>> >=3D20<BR>> >struct FOO_V2 { si=
>ze_t Size;<BR>> > int Field1;<BR>> > int Field2;<BR>> >};=
><BR>> >=3D20<BR>> >#if VERSION > 1234<BR>> >typedef FO=
>O_V2 FOO;<BR>> >#else<BR>> >typedef FOO_V1 FOO;<BR>> >#en=
>dif<BR>> >=3D20<BR>> >I understand that binaries built on the o=
>lder platform will continue to wor=3D<BR>> >k on the newer platform.<=
>BR>> >That is one thing.<BR>> >But it is also useful to be able=
> to build binaries on the newer platform th=3D<BR>> >at will on the o=
>lder platform.<BR>> >Apple also invests a bunch here.<BR>> >=3D=
>20<BR>> >Well, ok, if it was really "bad", there'd be FreeBSD5, 6, 7.=
><BR>> >I guess maybe they broke this stuff sometimes but haven't in a=
> while?<BR>> >That you can build FreeBSD4 binaries on FreeBSD7 and th=
>e run down to 4?<BR>> >=3D20<BR>> >And then, same questions abo=
>ut OpenBSD and NetBSD.<BR>> >I understand -- I could/must go and inst=
>all a bajillion operating systems a=3D<BR>> >nd test and find out, bu=
>t I don't expect to spend the time that way and pus=3D<BR>> >h comes =
>to shove, any BSD (and Linux, Solaris, NT, CE, etc.) variants I int=3D<BR>&=
>gt; >roduce will have no version number in them, will be built on whatev=
>er I hav=3D<BR>> >e, and it will be unknown if they work on older. An=
>d maybe something will m=3D<BR>> >aterialize to be more portable, lik=
>e interfacing to the Posix via C instead=3D<BR>> > of cloned headers.=
><BR>> >=3D20<BR>> > - Jay<BR>> ><BR>> ><BR>> &gt=
>;<BR>> >> To: jayk123 at hotmail.com> CC: m3devel at elegosoft.com&gt=
>; Subject: Re: [M3devel=3D<BR>> >] which platforms? > Date: Thu, 1=
>5 May 2008 14:30:36 -0700> From: mika at asyn=3D<BR>> >c.caltech.edu&=
>gt; > here it is:> > FreeBSD4> PPC_DARWIN> NT386GNU> LINU=
>XLIBC6>=3D<BR>> > > I386_DARWIN coming soon> > Tony Hoski=
>ng writes:> >> >--Apple-Mail-4-6310=3D<BR>> >28010> &g=
>t;Content-Type: text/plain;> > charset=3D3DUS-ASCII;> > format=
>=3D3Dflowed=3D<BR>> >;> > delsp=3D3Dyes> >Content-Transfe=
>r-Encoding: 7bit> >> >SOLgnu> >PPC_DARWIN=3D<BR>> >=
>> >I386_DARWIN> >AMD64_DARWIN> >LINUXLIBC6> >I'd li=
>ke AMD64_LINUX, SPARC64_=3D<BR>> >SOLARISN but no time right now to d=
>evote > >to them.> >> >On May 14, 2008, =3D<BR>> >a=
>t 1:25 PM, Jay wrote:> >> >> What do people run?> >&gt=
>; In particular: NetBSD=3D<BR>> >? OpenBSD? Sparc32? Sparc64? PPC64_D=
>ARWIN? > >> I386_SOLARIS? AMD64_SOLARIS=3D<BR>> >? SPARC64_S=
>OLARIS? ARM_WINCE? AMD64_NT?> >>> >> Just curious, I'll p=
>robably=3D<BR>> > bring up whatever I can, it's fun, and > >&gt=
>; yes, get back and fix AMD64_LI=3D<BR>> >NUX to have> >> ga=
>rbage collection, NT386GNU and NT386 tests, cross-platfor=3D<BR>> >m =
>sets, > >> setup some Tinderboxes, etc...> >>> >&gt=
>; (AMD64_NT: the gcc avai=3D<BR>> >lable for this includes a bunch of=
> patches, > >> so I'm inclined to either =3D<BR>> >wait for =
>them to go upstream,> >> or seek an alternate route such as "port"=
>=3D<BR>> > the in-proc backend, llvm, > >> generate C, or ma=
>ybe write an interpreter =3D<BR>> >for the IL;> >> and "port=
>ing" the backend is probably best preceded by a) x=3D<BR>> >86 > &=
>gt;> LONGINT support b) other x86 targets "for practise", at least one,&=
>gt;=3D<BR>> > >> though regarding .obj file formats, that would=
> be tangential.)> >>> >> =3D<BR>> >- Jay> >&g=
>t;> >>> >>> >>> >> >> >--Apple=
>-Mail-4-631028010> >Content-Type: text=3D<BR>> >/html;> >=
> charset=3D3DUS-ASCII> >Content-Transfer-Encoding: quoted-printable&g=
>t;=3D<BR>> > >> ><html><body style=3D3D3D"word-wrap=
>: break-word; -webkit-nbsp-mode: space=3D<BR>> >; =3D3D> >-webk=
>it-line-break: after-white-space; "><div =3D3D> >apple-content-=
>e=3D<BR>> >dited=3D3D3D"true"><span class=3D3D3D"Apple-style-sp=
>an" =3D3D> >style=3D3D3D"border=3D<BR>> >-collapse: separate; b=
>order-spacing: 0px 0px; color: =3D3D> >rgb(0, 0, 0); fo=3D<BR>> &g=
>t;nt-family: Helvetica; font-size: 12px; font-style: =3D3D> >normal; =
>font-varia=3D<BR>> >nt: normal; font-weight: normal; letter-spacing: =
>=3D3D> >normal; line-height:=3D<BR>> > normal; text-align: auto=
>; =3D3D> >-khtml-text-decorations-in-effect: none; t=3D<BR>> >e=
>xt-indent: 0px; =3D3D> >-apple-text-size-adjust: auto; text-transform=
>: none;=3D<BR>> > orphans: 2; =3D3D> >white-space: normal; wido=
>ws: 2; word-spacing: 0px; "><di=3D<BR>> >v =3D3D> >style=
>=3D3D3D"word-wrap: break-word; -khtml-nbsp-mode: space; =3D3D> >-k=3D=
><BR>> >html-line-break: after-white-space; "><span class=3D3D3D=
>"Apple-style-span" =3D<BR>> >=3D3D> >style=3D3D3D"border-collap=
>se: separate; border-spacing: 0px 0px; color:=3D<BR>> > =3D3D> &gt=
>;rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =3D<BR>=
>> >=3D3D> >normal; font-variant: normal; font-weight: normal; l=
>etter-spacing: =3D<BR>> >=3D3D> >normal; line-height: normal; t=
>ext-align: auto; =3D3D> >-khtml-text-deco=3D<BR>> >rations-in-e=
>ffect: none; text-indent: 0px; =3D3D> >-apple-text-size-adjust: a=3D<=
>BR>> >uto; text-transform: none; orphans: 2; =3D3D> >white-spac=
>e: normal; widows: 2=3D<BR>> >; word-spacing: 0px; =3D3D> >"&gt=
>;SOLgnu</span></div><div style=3D3D3D"word-wrap: =3D<BR>>=
> >break-word; =3D3D> >-khtml-nbsp-mode: space; -khtml-line-break: =
>after-white-s=3D<BR>> >pace; =3D3D> >">PPC_DARWIN</div&gt=
>;<div style=3D3D3D"word-wrap: break-word; -khtml=3D<BR>> >-nbsp-mo=
>de: =3D3D> >space; -khtml-line-break: after-white-space; ">I386_DA=
>RWI=3D<BR>> >N</div><div =3D3D> >style=3D3D3D"word-wra=
>p: break-word; -khtml-nbsp-mode: space=3D<BR>> >; =3D3D> >-khtm=
>l-line-break: after-white-space; ">AMD64_DARWIN</div><div =3D3D=
>>=3D<BR>> > >style=3D3D3D"word-wrap: break-word; -khtml-nbsp-mo=
>de: space; =3D3D> >-khtml-l=3D<BR>> >ine-break: after-white-spa=
>ce; ">LINUXLIBC6</div><div =3D3D> >style=3D3D3D"word-=3D<=
>BR>> >wrap: break-word; -khtml-nbsp-mode: space; =3D3D> >-khtml=
>-line-break: after-w=3D<BR>> >hite-space; ">I'd like AMD64_LINUX,&=
>amp;nbsp;<span =3D3D> >class=3D3D3D"Apple-style=3D<BR>> >-sp=
>an" style=3D3D3D"font-family: Tahoma; font-size: =3D3D> >13px; ">S=
>PARC64_SOL=3D<BR>> >ARISN but no time right now to devote to =3D3D&gt=
>; >them.</span></div></span></d=3D<BR>> >iv&g=
>t;<br><div><div>On May 14, 2008, at 1:25 =3D3D> >PM=
>, Jay wrote:</div><br cla=3D<BR>> >ss=3D3D3D"Apple-interchan=
>ge-newline"><blockquote =3D3D> >type=3D3D3D"cite"><span =
>=3D<BR>> >class=3D3D3D"Apple-style-span" style=3D3D3D"border-collapse=
>: =3D3D> >separate; co=3D<BR>> >lor: rgb(0, 0, 0); font-family:=
> Helvetica; font-size: 12px; =3D3D> >font-styl=3D<BR>> >e: norm=
>al; font-variant: normal; font-weight: normal; =3D3D> >letter-spacing=
>:=3D<BR>> > normal; line-height: normal; orphans: 2; text-align: =3D3=
>D> >auto; text-inde=3D<BR>> >nt: 0px; text-transform: none; whi=
>te-space: normal; =3D3D> >widows: 2; word-s=3D<BR>> >pacing: 0p=
>x; -webkit-border-horizontal-spacing: 0px; =3D3D> >-webkit-border-v=
>=3D<BR>> >ertical-spacing: 0px; =3D3D> >-webkit-text-decoration=
>s-in-effect: none; -webk=3D<BR>> >it-text-size-adjust: =3D3D> >=
>auto; -webkit-text-stroke-width: 0; "><div class=3D<BR>> >=3D3D=
>3D"hmmessage" =3D3D> >style=3D3D3D"font-size: 10pt; font-family: Taho=
>ma; ">W=3D<BR>> >hat do people =3D3D> >run?<br>In part=
>icular: NetBSD? OpenBSD? Sparc32? Sparc6=3D<BR>> >4? PPC64_DARWIN? =
>=3D3D> >I386_SOLARIS? AMD64_SOLARIS? SPARC64_SOLARIS? ARM_WI=3D<BR>&g=
>t; >NCE? =3D3D> >AMD64_NT?<br>&nbsp;<br>Just curio=
>us, I'll probably bring up what=3D<BR>> >ever I =3D3D> >can, it=
>'s fun, and yes, get back and fix AMD64_LINUX to have<b=3D<BR>> >r=
>>garbage =3D3D> >collection, NT386GNU and NT386 tests,&nbsp;cr=
>oss-platform s=3D<BR>> >ets, setup =3D3D> >some Tinderboxes, et=
>c...<br>&nbsp;<br>(AMD64_NT: the gcc a=3D<BR>> >vaila=
>ble for =3D3D> >this includes a bunch of patches, so I'm inclined to =
>eit=3D<BR>> >her wait for =3D3D> >them to go upstream,<br&gt=
>;or seek an alternate route such =3D<BR>> >as "port" the =3D3D> &g=
>t;in-proc backend, llvm, generate C, or maybe write an in=3D<BR>> >te=
>rpreter for the =3D3D> >IL;<br>and "porting" the backend is pro=
>bably best p=3D<BR>> >receded by a) x86 =3D3D> >LONGINT support=
> b) other x86 targets "for practise"=3D<BR>> >, at least =3D3D> &g=
>t;one,<br>though regarding .obj file formats, that would be =3D<BR>&g=
>t; >=3D3D> >tangential.)<br>&nbsp;<br>&nbsp;- =
>=3D3D> >Jay<br><br><br><br><br></div=
>>=3D<BR>> ></span></blockquote></div><br>&=
>lt;/body></html>=3D3D> >> >--Apple-Mail-4-6310280=3D<B=
>R>> >10--=3D<BR>> ><BR>> >--_14c076c4-fb7c-48b0-b705-2e38=
>d4b4a333_<BR>> >Content-Type: text/html; charset=3D"iso-8859-1"<BR>&g=
>t; >Content-Transfer-Encoding: quoted-printable<BR>> ><BR>> &gt=
>;<html><BR>> ><head><BR>> ><style><BR>> &g=
>t;.hmmessage P<BR>> >{<BR>> >margin:0px;<BR>> >padding:0p=
>x<BR>> >}<BR>> >body.hmmessage<BR>> >{<BR>> >FONT-S=
>IZE: 10pt;<BR>> >FONT-FAMILY:Tahoma<BR>> >}<BR>> ></st=
>yle><BR>> ></head><BR>> ><body class=3D3D'hmmessage=
>'>Mika, ok, this is&nbsp;tangential:&nbsp;Have you =3D<BR>> &=
>gt;tried the current NT386GNU cm3?<BR><BR>> >&nbsp;<BR&g=
>t;<BR>> >I meant, more about what "operating systems" that Modula-3 d=
>oes not support=3D<BR>> > do people here use, would like to see Modul=
>a-3 on. Or maybe I meant both.<=3D<BR>> >BR><BR>> >&n=
>bsp;<BR><BR>> >Speaking of the "4" in FreeBSD4:<BR><BR>&g=
>t; >&nbsp;<BR><BR>> >Has FreeBSD, and the other BSDs, re=
>ally broken&nbsp;backward compat?<BR><BR>> >They really cha=
>nge interfaces a lot such that binaries built with current h=3D<BR>> &gt=
>;eaders/libs won't run on older versions?<BR><BR>> >And there i=
>sn't an easy way on current platforms to build something using o=3D<BR>>=
> >lder tools to run on older and newer platforms?<BR><BR>> >=
>Look at Windows for example. If you call a "new" function directly, you wil=
>=3D<BR>> >l fail to load on older platforms. So either don't call the=
>m, or use LoadLi=3D<BR>> >brary/GetProcAddress. Structures almost nev=
>er change size, though there is =3D<BR>> >some screwiness there, stuf=
>f like:<BR><BR>> >&nbsp;<BR><BR>> >struct FOO {=
><BR>&nbsp; size_t Size;<BR><BR>> >&nbsp; int Fiel=
>d1;<BR><BR>> >#if VERSION &gt; 1234<BR><BR>> >&=
>amp;nbsp; int Field2;<BR><BR>> >#endif<BR><BR>> >};=
><BR><BR>> >&nbsp;<BR><BR>> >I think it should b=
>e more like:<BR><BR>> >&nbsp;<BR><BR>> >struct =
>FOO {<BR>&nbsp; size_t Size;<BR><BR>> >&nbsp; int=
> Field1;<BR><BR>> >#if VERSION &gt; 1234<BR><BR>> =
>>&nbsp; int Field2;<BR><BR>> >#endif<BR><BR>> &=
>gt;};<BR><BR>> >&nbsp;<BR><BR>> >struct FOO_V1{=
><BR>&nbsp; size_t Size;<BR><BR>> >&nbsp; int Fiel=
>d1;<BR><BR>> >};<BR><BR>> >&nbsp;<BR><BR>=
>> >struct FOO_V2 {<BR>&nbsp; size_t Size;<BR><BR>>=
> >&nbsp; int Field1;<BR><BR>> >&nbsp; int Field2;&lt=
>;BR><BR>> >};<BR><BR>> >&nbsp;<BR><BR>> &=
>gt;#if VERSION &gt; 1234<BR><BR>> >typedef FOO_V2 FOO;<B=
>R><BR>> >#else<BR><BR>> >typedef FOO_V1 FOO;<BR>=
><BR>> >#endif<BR><BR>> >&nbsp;<BR><BR>> >=
>I understand that binaries built on the older platform will continue to wor=
>=3D<BR>> >k on the newer platform.<BR><BR>> >That is one =
>thing.<BR><BR>> >But it is also useful to be able to build bina=
>ries on the newer platform th=3D<BR>> >at will on the older platform.=
><BR><BR>> >Apple also invests a bunch here.<BR><BR>> &=
>gt;&nbsp;<BR><BR>> >Well, ok, if it was really "bad", there=
>'d be FreeBSD5, 6, 7.<BR><BR>> >I guess maybe they broke this s=
>tuff sometimes but haven't in a while?<BR><BR>> >That you can b=
>uild FreeBSD4 binaries on FreeBSD7 and the run down to 4?<BR><BR>>=
> >&nbsp;<BR><BR>> >And then, same questions about OpenBS=
>D and NetBSD.<BR><BR>> >I understand -- I could/must go and ins=
>tall a bajillion operating systems a=3D<BR>> >nd test and find out, b=
>ut I don't expect to spend the time that way and pus=3D<BR>> >h comes=
> to shove, any BSD (and Linux, Solaris, NT, CE, etc.) variants I int=3D<BR>=
>> >roduce will have no version number in them, will be built on whate=
>ver I hav=3D<BR>> >e, and it will be unknown if they work on older. A=
>nd maybe something will m=3D<BR>> >aterialize to be more portable, li=
>ke interfacing to the Posix via C instead=3D<BR>> > of cloned headers=
>.<BR><BR>> >&nbsp;<BR><BR>> >&nbsp;- Jay&lt=
>;BR><BR><BR><BR>> ><BR>> ><HR id=3D3DstopSpel=
>ling><BR>> ><BR><BR>> >&gt; To: jayk123 at hotmail.co=
>m<BR>&gt; CC: m3devel at elegosoft.com<BR>&gt; Subj=3D<BR>=
>> >ect: Re: [M3devel] which platforms? <BR>&gt; Date: Thu, =
>15 May 2008 14:30:3=3D<BR>> >6 -0700<BR>&gt; From: mika at asy=
>nc.caltech.edu<BR>&gt; <BR>&gt; here it is:<B=3D<BR>=
>> >R>&gt; <BR>&gt; FreeBSD4<BR>&gt; PPC_DA=
>RWIN<BR>&gt; NT386GNU<BR>&gt; LINUXL=3D<BR>> >IBC=
>6<BR>&gt; <BR>&gt; I386_DARWIN coming soon<BR>&am=
>p;gt; <BR>&gt; Tony Hosking=3D<BR>> > writes:<BR>&amp=
>;gt; &gt;<BR>&gt; &gt;--Apple-Mail-4-631028010<BR>&=
>amp;gt; &gt;Cont=3D<BR>> >ent-Type: text/plain;<BR>&gt;=
> &gt; charset=3D3DUS-ASCII;<BR>&gt; &gt; format=3D<BR>&gt=
>; >=3D3Dflowed;<BR>&gt; &gt; delsp=3D3Dyes<BR>&g=
>t; &gt;Content-Transfer-Encoding: =3D<BR>> >7bit<BR>&gt=
>; &gt;<BR>&gt; &gt;SOLgnu<BR>&gt; &gt;PPC_D=
>ARWIN<BR>&gt; &gt;I38=3D<BR>> >6_DARWIN<BR>&g=
>t; &gt;AMD64_DARWIN<BR>&gt; &gt;LINUXLIBC6<BR>&=
>gt; &gt;I'd li=3D<BR>> >ke AMD64_LINUX, SPARC64_SOLARISN but no t=
>ime right now to devote <BR>&gt; &=3D<BR>> >gt;to them.=
><BR>&gt; &gt;<BR>&gt; &gt;On May 14, 2008, at 1=
>:25 PM, Jay wrote=3D<BR>> >:<BR>&gt; &gt;<BR>&amp=
>;gt; &gt;&gt; What do people run?<BR>&gt; &gt;&gt=
>; In par=3D<BR>> >ticular: NetBSD? OpenBSD? Sparc32? Sparc64? PPC64_D=
>ARWIN? <BR>&gt; &gt;&gt;=3D<BR>> > I386_SOLARIS? AM=
>D64_SOLARIS? SPARC64_SOLARIS? ARM_WINCE? AMD64_NT?<BR>&gt;=3D<BR>=
>> > &gt;&gt;<BR>&gt; &gt;&gt; Just curious,=
> I'll probably bring up whatever I =3D<BR>> >can, it's fun, and <B=
>R>&gt; &gt;&gt; yes, get back and fix AMD64_LINUX to h=3D<BR=
>>> >ave<BR>&gt; &gt;&gt; garbage collection, NT386G=
>NU and NT386 tests, cross-pl=3D<BR>> >atform sets, <BR>&gt;=
> &gt;&gt; setup some Tinderboxes, etc...<BR>&gt; &gt;=
>&=3D<BR>> >gt;<BR>&gt; &gt;&gt; (AMD64_NT: the =
>gcc available for this includes a bunch=3D<BR>> > of patches, <BR&=
>gt;&gt; &gt;&gt; so I'm inclined to either wait for them to g=
>=3D<BR>> >o upstream,<BR>&gt; &gt;&gt; or seek an a=
>lternate route such as "port" the =3D<BR>> >in-proc backend, llvm, &l=
>t;BR>&gt; &gt;&gt; generate C, or maybe write an inte=3D<BR>=
>> >rpreter for the IL;<BR>&gt; &gt;&gt; and "portin=
>g" the backend is probably =3D<BR>> >best preceded by a) x86 <BR&g=
>t;&gt; &gt;&gt; LONGINT support b) other x86 targ=3D<BR>> &g=
>t;ets "for practise", at least one,<BR>&gt; &gt;&gt; thou=
>gh regarding .obj fi=3D<BR>> >le formats, that would be tangential.)&=
>lt;BR>&gt; &gt;&gt;<BR>&gt; &gt;&gt; - =3D=
><BR>> >Jay<BR>&gt; &gt;&gt;<BR>&gt; &=
>gt;&gt;<BR>&gt; &gt;&gt;<BR>&gt; &gt;&a=
>mp;gt;<BR>=3D<BR>> >&gt; &gt;<BR>&gt; &gt=
>;<BR>&gt; &gt;--Apple-Mail-4-631028010<BR>&gt; &amp=
>;gt;Con=3D<BR>> >tent-Type: text/html;<BR>&gt; &gt; cha=
>rset=3D3DUS-ASCII<BR>&gt; &gt;Content-T=3D<BR>> >ransfe=
>r-Encoding: quoted-printable<BR>&gt; &gt;<BR>&gt; &=
>amp;gt;&lt;html&gt;&lt=3D<BR>> >;body style=3D3D3D"word-w=
>rap: break-word; -webkit-nbsp-mode: space; =3D3D<BR>&g=3D<BR>>=
> >t; &gt;-webkit-line-break: after-white-space; "&gt;&lt;div=
> =3D3D<BR>&gt; &gt;=3D<BR>> >apple-content-edited=3D3D3=
>D"true"&gt;&lt;span class=3D3D3D"Apple-style-span" =3D<BR>> >=
>=3D3D<BR>&gt; &gt;style=3D3D3D"border-collapse: separate; bor=
>der-spacing: 0px 0=3D<BR>> >px; color: =3D3D<BR>&gt; &g=
>t;rgb(0, 0, 0); font-family: Helvetica; font-size:=3D<BR>> > 12px; fo=
>nt-style: =3D3D<BR>&gt; &gt;normal; font-variant: normal; fon=
>t-weigh=3D<BR>> >t: normal; letter-spacing: =3D3D<BR>&gt; &=
>amp;gt;normal; line-height: normal; tex=3D<BR>> >t-align: auto; =3D3D=
><BR>&gt; &gt;-khtml-text-decorations-in-effect: none; tex=3D<=
>BR>> >t-indent: 0px; =3D3D<BR>&gt; &gt;-apple-text-size=
>-adjust: auto; text-transfor=3D<BR>> >m: none; orphans: 2; =3D3D<B=
>R>&gt; &gt;white-space: normal; widows: 2; word-s=3D<BR>> &gt=
>;pacing: 0px; "&gt;&lt;div =3D3D<BR>&gt; &gt;style=3D=
>3D3D"word-wrap: break-word;=3D<BR>> > -khtml-nbsp-mode: space; =3D3D&=
>lt;BR>&gt; &gt;-khtml-line-break: after-white-sp=3D<BR>> >=
>ace; "&gt;&lt;span class=3D3D3D"Apple-style-span" =3D3D<BR>&a=
>mp;gt; &gt;style=3D3D3D"=3D<BR>> >border-collapse: separate; bord=
>er-spacing: 0px 0px; color: =3D3D<BR>&gt; &gt;=3D<BR>> &gt=
>;rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =3D3D&l=
>t;BR>&=3D<BR>> >gt; &gt;normal; font-variant: normal; font=
>-weight: normal; letter-spacing: =3D<BR>> >=3D3D<BR>&gt; &a=
>mp;gt;normal; line-height: normal; text-align: auto; =3D3D<BR>&gt=
>; =3D<BR>> >&gt;-khtml-text-decorations-in-effect: none; text-ind=
>ent: 0px; =3D3D<BR>&gt; =3D<BR>> >&gt;-apple-text-size-=
>adjust: auto; text-transform: none; orphans: 2; =3D3D<BR=3D<BR>> >=
>>&gt; &gt;white-space: normal; widows: 2; word-spacing: 0px; =3D=
>3D<BR>&gt; &g=3D<BR>> >t;"&gt;SOLgnu&lt;/span&a=
>mp;gt;&lt;/div&gt;&lt;div style=3D3D3D"word-wrap: break-w=3D<BR=
>>> >ord; =3D3D<BR>&gt; &gt;-khtml-nbsp-mode: space; -kh=
>tml-line-break: after-whit=3D<BR>> >e-space; =3D3D<BR>&gt; =
>&gt;"&gt;PPC_DARWIN&lt;/div&gt;&lt;div style=3D3D3D"wor=
>d=3D<BR>> >-wrap: break-word; -khtml-nbsp-mode: =3D3D<BR>&g=
>t; &gt;space; -khtml-line-bre=3D<BR>> >ak: after-white-space; "&a=
>mp;gt;I386_DARWIN&lt;/div&gt;&lt;div =3D3D<BR>&gt; &a=
>mp;gt;=3D<BR>> >style=3D3D3D"word-wrap: break-word; -khtml-nbsp-mode:=
> space; =3D3D<BR>&gt; &gt;=3D<BR>> >-khtml-line-break: =
>after-white-space; "&gt;AMD64_DARWIN&lt;/div&gt;&lt;div =3D=
><BR>> >=3D3D<BR>&gt; &gt;style=3D3D3D"word-wrap: break-=
>word; -khtml-nbsp-mode: space; =3D<BR>> >=3D3D<BR>&gt; &amp=
>;gt;-khtml-line-break: after-white-space; "&gt;LINUXLIBC6&lt;/d=3D<=
>BR>> >iv&gt;&lt;div =3D3D<BR>&gt; &gt;style=3D3=
>D3D"word-wrap: break-word; -khtml-nbsp=3D<BR>> >-mode: space; =3D3D&l=
>t;BR>&gt; &gt;-khtml-line-break: after-white-space; "&gt;I'=
>=3D<BR>> >d like AMD64_LINUX,&amp;nbsp;&lt;span =3D3D<BR&g=
>t;&gt; &gt;class=3D3D3D"Apple-styl=3D<BR>> >e-span" style=3D3=
>D3D"font-family: Tahoma; font-size: =3D3D<BR>&gt; &gt;13px; "=
>&=3D<BR>> >gt;SPARC64_SOLARISN but no time right now to devote to=
> =3D3D<BR>&gt; &gt;them=3D<BR>> >.&lt;/span&gt;=
>&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;br&amp=
>;gt;&lt;div&gt;&lt=3D<BR>> >;div&gt;On May 14, 2008, =
>at 1:25 =3D3D<BR>&gt; &gt;PM, Jay wrote:&lt;/div&gt;=
>=3D<BR>> >&lt;br class=3D3D3D"Apple-interchange-newline"&gt;&=
>amp;lt;blockquote =3D3D<BR>&gt; =3D<BR>> >&gt;type=3D3D=
>3D"cite"&gt;&lt;span class=3D3D3D"Apple-style-span" style=3D3D3D"bo=
>r=3D<BR>> >der-collapse: =3D3D<BR>&gt; &gt;separate; co=
>lor: rgb(0, 0, 0); font-family: H=3D<BR>> >elvetica; font-size: 12px;=
> =3D3D<BR>&gt; &gt;font-style: normal; font-variant=3D<BR>&gt=
>; >: normal; font-weight: normal; =3D3D<BR>&gt; &gt;letter=
>-spacing: normal; line=3D<BR>> >-height: normal; orphans: 2; text-ali=
>gn: =3D3D<BR>&gt; &gt;auto; text-indent:=3D<BR>> > 0px;=
> text-transform: none; white-space: normal; =3D3D<BR>&gt; &gt=
>;widows: 2;=3D<BR>> > word-spacing: 0px; -webkit-border-horizontal-sp=
>acing: 0px; =3D3D<BR>&gt; &gt=3D<BR>> >;-webkit-border-=
>vertical-spacing: 0px; =3D3D<BR>&gt; &gt;-webkit-text-decorat=
>=3D<BR>> >ions-in-effect: none; -webkit-text-size-adjust: =3D3D<BR=
>>&gt; &gt;auto; -webk=3D<BR>> >it-text-stroke-width: 0; "&=
>amp;gt;&lt;div class=3D3D3D"hmmessage" =3D3D<BR>&gt; &gt=
>=3D<BR>> >;style=3D3D3D"font-size: 10pt; font-family: Tahoma; "&g=
>t;What do people =3D3D<B=3D<BR>> >R>&gt; &gt;run?&l=
>t;br&gt;In particular: NetBSD? OpenBSD? Sparc32? Sparc64? =3D<BR>> &=
>gt;PPC64_DARWIN? =3D3D<BR>&gt; &gt;I386_SOLARIS? AMD64_SOLARI=
>S? SPARC64_SOLARIS?=3D<BR>> > ARM_WINCE? =3D3D<BR>&gt; &amp=
>;gt;AMD64_NT?&lt;br&gt;&amp;nbsp;&lt;br&gt;Just cur=3D<=
>BR>> >ious, I'll probably bring up whatever I =3D3D<BR>&gt;=
> &gt;can, it's fun, and =3D<BR>> >yes, get back and fix AMD64_LIN=
>UX to have&lt;br&gt;garbage =3D3D<BR>&gt; &gt;=3D<BR>=
>> >collection, NT386GNU and NT386 tests,&amp;nbsp;cross-platform =
>sets, setup =3D<BR>> >=3D3D<BR>&gt; &gt;some Tinderboxe=
>s, etc...&lt;br&gt;&amp;nbsp;&lt;br&gt;(AMD6=3D<BR>>=
> >4_NT: the gcc available for =3D3D<BR>&gt; &gt;this inclu=
>des a bunch of patche=3D<BR>> >s, so I'm inclined to either wait for =
>=3D3D<BR>&gt; &gt;them to go upstream,&=3D<BR>> >lt=
>;br&gt;or seek an alternate route such as "port" the =3D3D<BR>&am=
>p;gt; &gt;in-p=3D<BR>> >roc backend, llvm, generate C, or maybe w=
>rite an interpreter for the =3D3D<BR=3D<BR>> >>&gt; &gt=
>;IL;&lt;br&gt;and "porting" the backend is probably best preceded =
>=3D<BR>> >by a) x86 =3D3D<BR>&gt; &gt;LONGINT support b=
>) other x86 targets "for practis=3D<BR>> >e", at least =3D3D<BR&gt=
>;&gt; &gt;one,&lt;br&gt;though regarding .obj file forma=3D=
><BR>> >ts, that would be =3D3D<BR>&gt; &gt;tangential.)=
>&lt;br&gt;&amp;nbsp;&lt;br&gt=3D<BR>> >;&amp;=
>nbsp;- =3D3D<BR>&gt; &gt;Jay&lt;br&gt;&lt;br&=
>gt;&lt;br&gt;&lt;br&gt;&lt=3D<BR>> >;br&gt;&a=
>mp;lt;/div&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/=
>div&gt;&lt;br&gt;&l=3D<BR>> >t;/body&gt;&lt;/=
>html&gt;=3D3D<BR>&gt; &gt;<BR>&gt; &gt;--Ap=
>ple-Mail-4-6310280=3D<BR>> >10--<BR><BR></body><BR>=
>> ></html>=3D<BR>> ><BR>> >--_14c076c4-fb7c-48b0-b7=
>05-2e38d4b4a333_--<BR><BR></body>
></html>=
>
>--_a9d87328-63f1-414c-abcb-03c34a9cee30_--



More information about the M3devel mailing list