[M3devel] which platforms? and questions about FreeBSD versioning

Jay jayk123 at hotmail.com
Fri May 16 00:43:30 CEST 2008


Mika, ok, this is tangential: Have you tried the current NT386GNU cm3?
 
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.
 
Speaking of the "4" in FreeBSD4:
 
Has FreeBSD, and the other BSDs, really broken backward compat?
They really change interfaces a lot such that binaries built with current headers/libs won't run on older versions?
And there isn't an easy way on current platforms to build something using older tools to run on older and newer platforms?
Look at Windows for example. If you call a "new" function directly, you will fail to load on older platforms. So either don't call them, or use LoadLibrary/GetProcAddress. Structures almost never change size, though there is some screwiness there, stuff like:
 
struct FOO {  size_t Size;
  int Field1;
#if VERSION > 1234
  int Field2;
#endif
};
 
I think it should be more like:
 
struct FOO {  size_t Size;
  int Field1;
#if VERSION > 1234
  int Field2;
#endif
};
 
struct FOO_V1{  size_t Size;
  int Field1;
};
 
struct FOO_V2 {  size_t Size;
  int Field1;
  int Field2;
};
 
#if VERSION > 1234
typedef FOO_V2 FOO;
#else
typedef FOO_V1 FOO;
#endif
 
I understand that binaries built on the older platform will continue to work on the newer platform.
That is one thing.
But it is also useful to be able to build binaries on the newer platform that will on the older platform.
Apple also invests a bunch here.
 
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?
 
And then, same questions about OpenBSD and NetBSD.
I understand -- I could/must go and install a bajillion operating systems and test and find out, but I don't expect to spend the time that way and push comes to shove, any BSD (and Linux, Solaris, NT, CE, etc.) variants I introduce will have no version number in them, will be built on whatever I have, and it will be unknown if they work on older. And maybe something will materialize to be more portable, like interfacing to the Posix via C instead of cloned headers.
 
 - 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 async.caltech.edu> > here it is:> > FreeBSD4> PPC_DARWIN> NT386GNU> LINUXLIBC6> > I386_DARWIN coming soon> > Tony Hosking writes:> >> >--Apple-Mail-4-631028010> >Content-Type: text/plain;> > charset=US-ASCII;> > format=flowed;> > delsp=yes> >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_LINUX to have> >> garbage collection, NT386GNU and NT386 tests, cross-platform sets, > >> setup some Tinderboxes, etc...> >>> >> (AMD64_NT: the gcc available 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) x86 > >> 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=US-ASCII> >Content-Transfer-Encoding: quoted-printable> >> ><html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; => >-webkit-line-break: after-white-space; "><div => >apple-content-edited=3D"true"><span class=3D"Apple-style-span" => >style=3D"border-collapse: separate; border-spacing: 0px 0px; color: => >rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: => >normal; font-variant: normal; font-weight: normal; letter-spacing: => >normal; line-height: normal; text-align: auto; => >-khtml-text-decorations-in-effect: none; text-indent: 0px; => >-apple-text-size-adjust: auto; text-transform: none; orphans: 2; => >white-space: normal; widows: 2; word-spacing: 0px; "><div => >style=3D"word-wrap: break-word; -khtml-nbsp-mode: space; => >-khtml-line-break: after-white-space; "><span class=3D"Apple-style-span" => >style=3D"border-collapse: separate; border-spacing: 0px 0px; color: => >rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: => >normal; font-variant: normal; font-weight: normal; letter-spacing: => >normal; line-height: normal; text-align: auto; => >-khtml-text-decorations-in-effect: none; text-indent: 0px; => >-apple-text-size-adjust: auto; text-transform: none; orphans: 2; => >white-space: normal; widows: 2; word-spacing: 0px; => >">SOLgnu</span></div><div style=3D"word-wrap: break-word; => >-khtml-nbsp-mode: space; -khtml-line-break: after-white-space; => >">PPC_DARWIN</div><div style=3D"word-wrap: break-word; -khtml-nbsp-mode: => >space; -khtml-line-break: after-white-space; ">I386_DARWIN</div><div => >style=3D"word-wrap: break-word; -khtml-nbsp-mode: space; => >-khtml-line-break: after-white-space; ">AMD64_DARWIN</div><div => >style=3D"word-wrap: break-word; -khtml-nbsp-mode: space; => >-khtml-line-break: after-white-space; ">LINUXLIBC6</div><div => >style=3D"word-wrap: break-word; -khtml-nbsp-mode: space; => >-khtml-line-break: after-white-space; ">I'd like AMD64_LINUX, <span => >class=3D"Apple-style-span" style=3D"font-family: Tahoma; font-size: => >13px; ">SPARC64_SOLARISN but no time right now to devote to => >them.</span></div></span></div><br><div><div>On May 14, 2008, at 1:25 => >PM, Jay wrote:</div><br class=3D"Apple-interchange-newline"><blockquote => >type=3D"cite"><span class=3D"Apple-style-span" style=3D"border-collapse: => >separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; => >font-style: normal; font-variant: normal; font-weight: normal; => >letter-spacing: normal; line-height: normal; orphans: 2; text-align: => >auto; text-indent: 0px; text-transform: none; white-space: normal; => >widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; => >-webkit-border-vertical-spacing: 0px; => >-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: => >auto; -webkit-text-stroke-width: 0; "><div class=3D"hmmessage" => >style=3D"font-size: 10pt; font-family: Tahoma; ">What do people => >run?<br>In particular: NetBSD? OpenBSD? Sparc32? Sparc64? PPC64_DARWIN? => >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 yes, get back and fix AMD64_LINUX to have<br>garbage => >collection, NT386GNU and NT386 tests, cross-platform sets, setup => >some Tinderboxes, etc...<br> <br>(AMD64_NT: the gcc available for => >this includes a bunch of patches, so I'm inclined to either wait for => >them to go upstream,<br>or seek an alternate route such as "port" the => >in-proc backend, llvm, generate C, or maybe write an interpreter for the => >IL;<br>and "porting" the backend is probably best preceded by a) x86 => >LONGINT support b) other x86 targets "for practise", at least => >one,<br>though regarding .obj file formats, that would be => >tangential.)<br> <br> - => >Jay<br><br><br><br><br></div></span></blockquote></div><br></body></html>=> >> >--Apple-Mail-4-631028010--
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20080515/0da39ad1/attachment-0002.html>


More information about the M3devel mailing list