[M3devel] which platforms? and questions about FreeBSD versioning

Mika Nystrom mika at async.caltech.edu
Fri May 16 07:54:28 CEST 2008


No, sorry, haven't gotten around to testing the current NT386GNU
cm3... I have a lot of version synchronizing to do, unfortunately :(

Yes, FreeBSD is backwards-compatible, *not* forwards-compatible.
That is, you can build even fairly complex software packages on an old
FreeBSD system and expect it to run on the 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 other way, as 
long as I can remember, with FreeBSD.

This is also why I suggest 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-b705-2e38d4b4a333_
>Content-Type: text/plain; charset="iso-8859-1"
>Content-Transfer-Encoding: quoted-printable
>
>Mika, ok, this is tangential: Have you tried the current NT386GNU cm3?
>=20
>I meant, more about what "operating systems" that Modula-3 does not support=
> do people here use, would like to see Modula-3 on. Or maybe I meant both.
>=20
>Speaking of the "4" in FreeBSD4:
>=20
>Has FreeBSD, and the other BSDs, really broken backward compat?
>They really change interfaces a lot such that binaries built with current h=
>eaders/libs won't run on older versions?
>And there isn't an easy way on current platforms to build something using o=
>lder tools to run on older and newer platforms?
>Look at Windows for example. If you call a "new" function directly, you wil=
>l fail to load on older platforms. So either don't call them, or use LoadLi=
>brary/GetProcAddress. Structures almost never change size, though there is =
>some screwiness there, stuff like:
>=20
>struct FOO {  size_t Size;
>  int Field1;
>#if VERSION > 1234
>  int Field2;
>#endif
>};
>=20
>I think it should be more like:
>=20
>struct FOO {  size_t Size;
>  int Field1;
>#if VERSION > 1234
>  int Field2;
>#endif
>};
>=20
>struct FOO_V1{  size_t Size;
>  int Field1;
>};
>=20
>struct FOO_V2 {  size_t Size;
>  int Field1;
>  int Field2;
>};
>=20
>#if VERSION > 1234
>typedef FOO_V2 FOO;
>#else
>typedef FOO_V1 FOO;
>#endif
>=20
>I understand that binaries built on the older platform will continue to wor=
>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=
>at will on the older platform.
>Apple also invests a bunch here.
>=20
>Well, ok, if it was really "bad", there'd be FreeBSD5, 6, 7.
>I guess maybe they broke this stuff sometimes but haven't in a while?
>That you can build FreeBSD4 binaries on FreeBSD7 and the run down to 4?
>=20
>And then, same questions about OpenBSD and NetBSD.
>I understand -- I could/must go and install a bajillion operating systems a=
>nd test and find out, but I don't expect to spend the time that way and pus=
>h comes to shove, any BSD (and Linux, Solaris, NT, CE, etc.) variants I int=
>roduce will have no version number in them, will be built on whatever I hav=
>e, and it will be unknown if they work on older. And maybe something will m=
>aterialize to be more portable, like interfacing to the Posix via C instead=
> of cloned headers.
>=20
> - Jay
>
>
>
>> To: jayk123 at hotmail.com> CC: m3devel at elegosoft.com> Subject: Re: [M3devel=
>] which platforms? > Date: Thu, 15 May 2008 14:30:36 -0700> From: mika at asyn=
>c.caltech.edu> > here it is:> > FreeBSD4> PPC_DARWIN> NT386GNU> LINUXLIBC6>=
> > I386_DARWIN coming soon> > Tony Hosking writes:> >> >--Apple-Mail-4-6310=
>28010> >Content-Type: text/plain;> > charset=3DUS-ASCII;> > format=3Dflowed=
>;> > delsp=3Dyes> >Content-Transfer-Encoding: 7bit> >> >SOLgnu> >PPC_DARWIN=
>> >I386_DARWIN> >AMD64_DARWIN> >LINUXLIBC6> >I'd like AMD64_LINUX, SPARC64_=
>SOLARISN but no time right now to devote > >to them.> >> >On May 14, 2008, =
>at 1:25 PM, Jay wrote:> >> >> What do people run?> >> In particular: NetBSD=
>? OpenBSD? Sparc32? Sparc64? PPC64_DARWIN? > >> I386_SOLARIS? AMD64_SOLARIS=
>? SPARC64_SOLARIS? ARM_WINCE? AMD64_NT?> >>> >> Just curious, I'll probably=
> bring up whatever I can, it's fun, and > >> yes, get back and fix AMD64_LI=
>NUX to have> >> garbage collection, NT386GNU and NT386 tests, cross-platfor=
>m sets, > >> setup some Tinderboxes, etc...> >>> >> (AMD64_NT: the gcc avai=
>lable for this includes a bunch of patches, > >> so I'm inclined to either =
>wait for them to go upstream,> >> or seek an alternate route such as "port"=
> the in-proc backend, llvm, > >> generate C, or maybe write an interpreter =
>for the IL;> >> and "porting" the backend is probably best preceded by a) x=
>86 > >> LONGINT support b) other x86 targets "for practise", at least one,>=
> >> though regarding .obj file formats, that would be tangential.)> >>> >> =
>- Jay> >>> >>> >>> >>> >> >> >--Apple-Mail-4-631028010> >Content-Type: text=
>/html;> > charset=3DUS-ASCII> >Content-Transfer-Encoding: quoted-printable>=
> >> ><html><body style=3D3D"word-wrap: break-word; -webkit-nbsp-mode: space=
>; =3D> >-webkit-line-break: after-white-space; "><div =3D> >apple-content-e=
>dited=3D3D"true"><span class=3D3D"Apple-style-span" =3D> >style=3D3D"border=
>-collapse: separate; border-spacing: 0px 0px; color: =3D> >rgb(0, 0, 0); fo=
>nt-family: Helvetica; font-size: 12px; font-style: =3D> >normal; font-varia=
>nt: normal; font-weight: normal; letter-spacing: =3D> >normal; line-height:=
> normal; text-align: auto; =3D> >-khtml-text-decorations-in-effect: none; t=
>ext-indent: 0px; =3D> >-apple-text-size-adjust: auto; text-transform: none;=
> orphans: 2; =3D> >white-space: normal; widows: 2; word-spacing: 0px; "><di=
>v =3D> >style=3D3D"word-wrap: break-word; -khtml-nbsp-mode: space; =3D> >-k=
>html-line-break: after-white-space; "><span class=3D3D"Apple-style-span" =
>=3D> >style=3D3D"border-collapse: separate; border-spacing: 0px 0px; color:=
> =3D> >rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =
>=3D> >normal; font-variant: normal; font-weight: normal; letter-spacing: =
>=3D> >normal; line-height: normal; text-align: auto; =3D> >-khtml-text-deco=
>rations-in-effect: none; text-indent: 0px; =3D> >-apple-text-size-adjust: a=
>uto; text-transform: none; orphans: 2; =3D> >white-space: normal; widows: 2=
>; word-spacing: 0px; =3D> >">SOLgnu</span></div><div style=3D3D"word-wrap: =
>break-word; =3D> >-khtml-nbsp-mode: space; -khtml-line-break: after-white-s=
>pace; =3D> >">PPC_DARWIN</div><div style=3D3D"word-wrap: break-word; -khtml=
>-nbsp-mode: =3D> >space; -khtml-line-break: after-white-space; ">I386_DARWI=
>N</div><div =3D> >style=3D3D"word-wrap: break-word; -khtml-nbsp-mode: space=
>; =3D> >-khtml-line-break: after-white-space; ">AMD64_DARWIN</div><div =3D>=
> >style=3D3D"word-wrap: break-word; -khtml-nbsp-mode: space; =3D> >-khtml-l=
>ine-break: after-white-space; ">LINUXLIBC6</div><div =3D> >style=3D3D"word-=
>wrap: break-word; -khtml-nbsp-mode: space; =3D> >-khtml-line-break: after-w=
>hite-space; ">I'd like AMD64_LINUX, <span =3D> >class=3D3D"Apple-style=
>-span" style=3D3D"font-family: Tahoma; font-size: =3D> >13px; ">SPARC64_SOL=
>ARISN but no time right now to devote to =3D> >them.</span></div></span></d=
>iv><br><div><div>On May 14, 2008, at 1:25 =3D> >PM, Jay wrote:</div><br cla=
>ss=3D3D"Apple-interchange-newline"><blockquote =3D> >type=3D3D"cite"><span =
>class=3D3D"Apple-style-span" style=3D3D"border-collapse: =3D> >separate; co=
>lor: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; =3D> >font-styl=
>e: normal; font-variant: normal; font-weight: normal; =3D> >letter-spacing:=
> normal; line-height: normal; orphans: 2; text-align: =3D> >auto; text-inde=
>nt: 0px; text-transform: none; white-space: normal; =3D> >widows: 2; word-s=
>pacing: 0px; -webkit-border-horizontal-spacing: 0px; =3D> >-webkit-border-v=
>ertical-spacing: 0px; =3D> >-webkit-text-decorations-in-effect: none; -webk=
>it-text-size-adjust: =3D> >auto; -webkit-text-stroke-width: 0; "><div class=
>=3D3D"hmmessage" =3D> >style=3D3D"font-size: 10pt; font-family: Tahoma; ">W=
>hat do people =3D> >run?<br>In particular: NetBSD? OpenBSD? Sparc32? Sparc6=
>4? PPC64_DARWIN? =3D> >I386_SOLARIS? AMD64_SOLARIS? SPARC64_SOLARIS? ARM_WI=
>NCE? =3D> >AMD64_NT?<br> <br>Just curious, I'll probably bring up what=
>ever I =3D> >can, it's fun, and yes, get back and fix AMD64_LINUX to have<b=
>r>garbage =3D> >collection, NT386GNU and NT386 tests, cross-platform s=
>ets, setup =3D> >some Tinderboxes, etc...<br> <br>(AMD64_NT: the gcc a=
>vailable for =3D> >this includes a bunch of patches, so I'm inclined to eit=
>her wait for =3D> >them to go upstream,<br>or seek an alternate route such =
>as "port" the =3D> >in-proc backend, llvm, generate C, or maybe write an in=
>terpreter for the =3D> >IL;<br>and "porting" the backend is probably best p=
>receded by a) x86 =3D> >LONGINT support b) other x86 targets "for practise"=
>, at least =3D> >one,<br>though regarding .obj file formats, that would be =
>=3D> >tangential.)<br> <br> - =3D> >Jay<br><br><br><br><br></div>=
></span></blockquote></div><br></body></html>=3D> >> >--Apple-Mail-4-6310280=
>10--=
>
>--_14c076c4-fb7c-48b0-b705-2e38d4b4a333_
>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'>Mika, ok, this is tangential: Have you =
>tried the current NT386GNU cm3?<BR>
> <BR>
>I meant, more about what "operating systems" that Modula-3 does not support=
> do people here use, would like to see Modula-3 on. Or maybe I meant both.<=
>BR>
> <BR>
>Speaking of the "4" in FreeBSD4:<BR>
> <BR>
>Has FreeBSD, and the other BSDs, really broken backward compat?<BR>
>They really change interfaces a lot such that binaries built with current h=
>eaders/libs won't run on older versions?<BR>
>And there isn't an easy way on current platforms to build something using o=
>lder tools to run on older and newer platforms?<BR>
>Look at Windows for example. If you call a "new" function directly, you wil=
>l fail to load on older platforms. So either don't call them, or use LoadLi=
>brary/GetProcAddress. Structures almost never change size, though there is =
>some screwiness there, stuff like:<BR>
> <BR>
>struct FOO {<BR>  size_t Size;<BR>
>  int Field1;<BR>
>#if VERSION > 1234<BR>
>  int Field2;<BR>
>#endif<BR>
>};<BR>
> <BR>
>I think it should be more like:<BR>
> <BR>
>struct FOO {<BR>  size_t Size;<BR>
>  int Field1;<BR>
>#if VERSION > 1234<BR>
>  int Field2;<BR>
>#endif<BR>
>};<BR>
> <BR>
>struct FOO_V1{<BR>  size_t Size;<BR>
>  int Field1;<BR>
>};<BR>
> <BR>
>struct FOO_V2 {<BR>  size_t Size;<BR>
>  int Field1;<BR>
>  int Field2;<BR>
>};<BR>
> <BR>
>#if VERSION > 1234<BR>
>typedef FOO_V2 FOO;<BR>
>#else<BR>
>typedef FOO_V1 FOO;<BR>
>#endif<BR>
> <BR>
>I understand that binaries built on the older platform will continue to wor=
>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=
>at will on the older platform.<BR>
>Apple also invests a bunch here.<BR>
> <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 the run down to 4?<BR>
> <BR>
>And then, same questions about OpenBSD and NetBSD.<BR>
>I understand -- I could/must go and install a bajillion operating systems a=
>nd test and find out, but I don't expect to spend the time that way and pus=
>h comes to shove, any BSD (and Linux, Solaris, NT, CE, etc.) variants I int=
>roduce will have no version number in them, will be built on whatever I hav=
>e, and it will be unknown if they work on older. And maybe something will m=
>aterialize to be more portable, like interfacing to the Posix via C instead=
> of cloned headers.<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? <BR>> Date: Thu, 15 May 2008 14:30:3=
>6 -0700<BR>> From: mika at async.caltech.edu<BR>> <BR>> here it is:<B=
>R>> <BR>> FreeBSD4<BR>> PPC_DARWIN<BR>> NT386GNU<BR>> LINUXL=
>IBC6<BR>> <BR>> I386_DARWIN coming soon<BR>> <BR>> Tony Hosking=
> writes:<BR>> ><BR>> >--Apple-Mail-4-631028010<BR>> >Cont=
>ent-Type: text/plain;<BR>> > charset=3DUS-ASCII;<BR>> > format=
>=3Dflowed;<BR>> > delsp=3Dyes<BR>> >Content-Transfer-Encoding: =
>7bit<BR>> ><BR>> >SOLgnu<BR>> >PPC_DARWIN<BR>> >I38=
>6_DARWIN<BR>> >AMD64_DARWIN<BR>> >LINUXLIBC6<BR>> >I'd li=
>ke AMD64_LINUX, SPARC64_SOLARISN but no time right now to devote <BR>> &=
>gt;to them.<BR>> ><BR>> >On May 14, 2008, at 1:25 PM, Jay wrote=
>:<BR>> ><BR>> >> What do people run?<BR>> >> In par=
>ticular: NetBSD? OpenBSD? Sparc32? Sparc64? PPC64_DARWIN? <BR>> >>=
> I386_SOLARIS? AMD64_SOLARIS? SPARC64_SOLARIS? ARM_WINCE? AMD64_NT?<BR>>=
> >><BR>> >> Just curious, I'll probably bring up whatever I =
>can, it's fun, and <BR>> >> yes, get back and fix AMD64_LINUX to h=
>ave<BR>> >> garbage collection, NT386GNU and NT386 tests, cross-pl=
>atform sets, <BR>> >> setup some Tinderboxes, etc...<BR>> >&=
>gt;<BR>> >> (AMD64_NT: the gcc available for this includes a bunch=
> of patches, <BR>> >> so I'm inclined to either wait for them to g=
>o upstream,<BR>> >> or seek an alternate route such as "port" the =
>in-proc backend, llvm, <BR>> >> generate C, or maybe write an inte=
>rpreter for the IL;<BR>> >> and "porting" the backend is probably =
>best preceded by a) x86 <BR>> >> LONGINT support b) other x86 targ=
>ets "for practise", at least one,<BR>> >> though regarding .obj fi=
>le formats, that would be tangential.)<BR>> >><BR>> >> - =
>Jay<BR>> >><BR>> >><BR>> >><BR>> >><BR>=
>> ><BR>> ><BR>> >--Apple-Mail-4-631028010<BR>> >Con=
>tent-Type: text/html;<BR>> > charset=3DUS-ASCII<BR>> >Content-T=
>ransfer-Encoding: quoted-printable<BR>> ><BR>> ><html>&lt=
>;body style=3D3D"word-wrap: break-word; -webkit-nbsp-mode: space; =3D<BR>&g=
>t; >-webkit-line-break: after-white-space; "><div =3D<BR>> >=
>apple-content-edited=3D3D"true"><span class=3D3D"Apple-style-span" =
>=3D<BR>> >style=3D3D"border-collapse: separate; border-spacing: 0px 0=
>px; color: =3D<BR>> >rgb(0, 0, 0); font-family: Helvetica; font-size:=
> 12px; font-style: =3D<BR>> >normal; font-variant: normal; font-weigh=
>t: normal; letter-spacing: =3D<BR>> >normal; line-height: normal; tex=
>t-align: auto; =3D<BR>> >-khtml-text-decorations-in-effect: none; tex=
>t-indent: 0px; =3D<BR>> >-apple-text-size-adjust: auto; text-transfor=
>m: none; orphans: 2; =3D<BR>> >white-space: normal; widows: 2; word-s=
>pacing: 0px; "><div =3D<BR>> >style=3D3D"word-wrap: break-word;=
> -khtml-nbsp-mode: space; =3D<BR>> >-khtml-line-break: after-white-sp=
>ace; "><span class=3D3D"Apple-style-span" =3D<BR>> >style=3D3D"=
>border-collapse: separate; border-spacing: 0px 0px; color: =3D<BR>> >=
>rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =3D<BR>&=
>gt; >normal; font-variant: normal; font-weight: normal; letter-spacing: =
>=3D<BR>> >normal; line-height: normal; text-align: auto; =3D<BR>> =
>>-khtml-text-decorations-in-effect: none; text-indent: 0px; =3D<BR>> =
>>-apple-text-size-adjust: auto; text-transform: none; orphans: 2; =3D<BR=
>>> >white-space: normal; widows: 2; word-spacing: 0px; =3D<BR>> &g=
>t;">SOLgnu</span></div><div style=3D3D"word-wrap: break-w=
>ord; =3D<BR>> >-khtml-nbsp-mode: space; -khtml-line-break: after-whit=
>e-space; =3D<BR>> >">PPC_DARWIN</div><div style=3D3D"word=
>-wrap: break-word; -khtml-nbsp-mode: =3D<BR>> >space; -khtml-line-bre=
>ak: after-white-space; ">I386_DARWIN</div><div =3D<BR>> >=
>style=3D3D"word-wrap: break-word; -khtml-nbsp-mode: space; =3D<BR>> >=
>-khtml-line-break: after-white-space; ">AMD64_DARWIN</div><div =
>=3D<BR>> >style=3D3D"word-wrap: break-word; -khtml-nbsp-mode: space; =
>=3D<BR>> >-khtml-line-break: after-white-space; ">LINUXLIBC6</d=
>iv><div =3D<BR>> >style=3D3D"word-wrap: break-word; -khtml-nbsp=
>-mode: space; =3D<BR>> >-khtml-line-break: after-white-space; ">I'=
>d like AMD64_LINUX,&nbsp;<span =3D<BR>> >class=3D3D"Apple-styl=
>e-span" style=3D3D"font-family: Tahoma; font-size: =3D<BR>> >13px; "&=
>gt;SPARC64_SOLARISN but no time right now to devote to =3D<BR>> >them=
>.</span></div></span></div><br><div>&lt=
>;div>On May 14, 2008, at 1:25 =3D<BR>> >PM, Jay wrote:</div>=
><br class=3D3D"Apple-interchange-newline"><blockquote =3D<BR>> =
>>type=3D3D"cite"><span class=3D3D"Apple-style-span" style=3D3D"bor=
>der-collapse: =3D<BR>> >separate; color: rgb(0, 0, 0); font-family: H=
>elvetica; font-size: 12px; =3D<BR>> >font-style: normal; font-variant=
>: normal; font-weight: normal; =3D<BR>> >letter-spacing: normal; line=
>-height: normal; orphans: 2; text-align: =3D<BR>> >auto; text-indent:=
> 0px; text-transform: none; white-space: normal; =3D<BR>> >widows: 2;=
> word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; =3D<BR>> &gt=
>;-webkit-border-vertical-spacing: 0px; =3D<BR>> >-webkit-text-decorat=
>ions-in-effect: none; -webkit-text-size-adjust: =3D<BR>> >auto; -webk=
>it-text-stroke-width: 0; "><div class=3D3D"hmmessage" =3D<BR>> &gt=
>;style=3D3D"font-size: 10pt; font-family: Tahoma; ">What do people =3D<B=
>R>> >run?<br>In particular: NetBSD? OpenBSD? Sparc32? Sparc64? =
>PPC64_DARWIN? =3D<BR>> >I386_SOLARIS? AMD64_SOLARIS? SPARC64_SOLARIS?=
> ARM_WINCE? =3D<BR>> >AMD64_NT?<br>&nbsp;<br>Just cur=
>ious, I'll probably bring up whatever I =3D<BR>> >can, it's fun, and =
>yes, get back and fix AMD64_LINUX to have<br>garbage =3D<BR>> >=
>collection, NT386GNU and NT386 tests,&nbsp;cross-platform sets, setup =
>=3D<BR>> >some Tinderboxes, etc...<br>&nbsp;<br>(AMD6=
>4_NT: the gcc available for =3D<BR>> >this includes a bunch of patche=
>s, so I'm inclined to either wait for =3D<BR>> >them to go upstream,&=
>lt;br>or seek an alternate route such as "port" the =3D<BR>> >in-p=
>roc backend, llvm, generate C, or maybe write an interpreter for the =3D<BR=
>>> >IL;<br>and "porting" the backend is probably best preceded =
>by a) x86 =3D<BR>> >LONGINT support b) other x86 targets "for practis=
>e", at least =3D<BR>> >one,<br>though regarding .obj file forma=
>ts, that would be =3D<BR>> >tangential.)<br>&nbsp;<br&gt=
>;&nbsp;- =3D<BR>> >Jay<br><br><br><br>&lt=
>;br></div></span></blockquote></div><br>&l=
>t;/body></html>=3D<BR>> ><BR>> >--Apple-Mail-4-6310280=
>10--<BR><BR></body>
></html>=
>
>--_14c076c4-fb7c-48b0-b705-2e38d4b4a333_--



More information about the M3devel mailing list