On 2009 Mar 2, at 6:19, Timothy S. Nelson wrote:
On Mon, 2 Mar 2009, Chris Dolan wrote:On Mar 2, 2009, at 12:04 AM, Timothy S. Nelson wrote:Hi. I note that we have $?OS, $?VM, and $?DISTRO (and their $* counterparts). I'd like to recommend that we eliminate $?OS, and replace it with $?KERNEL (ie. Linux) and maybe $?ARCH (ie. i386). Thoughts?User-space code cares much more deeply about the operating system than the kernel, largely thanks to libc or the equivalent. For example, BSD systems can be built on a number of different kernels. Mac OS X is in principle FreeBSD on Mach, but there are a huge number differences from "plain" FreeBSD that have nothing to do with Mach. Instead, it would be even more useful to represent $? OS.family, $?OS.version.major, $?OS.version.minor, etc. Linux distros often support switching kernel versions out from under the OS.So how about we define things as follows for Mac: - Kernel = FreeBSD - Arch = Mach - Distro = Mac OS X
Actually, given the above you want: - Kernel = Mach (or Darwin) - Arch = PPC or x86-64 - Distro = Mac OS X - with compatibility = FreeBSD(as FreeBSD itself on i386 or x86-64 "does" Linux, at least if the linuxulator is configured)
Not sure if we want to deal with compatibility, but in addition to the abovementioned FreeBSD-Linux compatibility role, x86-64 does i386 (arch), SuSE does Red Hat (distro; each SuSE version has compatibility with a particular Red Hat version), Ubuntu does Debian (distro), there is a "core" BSD API set which is supported by all the BSDs and a larger API set that is done by NetBSD, FreeBSD, and Dragonfly BSD, etc. There is even some compatibility at the kernel level, but as previously noted the kernel details aren't actually that useful to Perl so probably not worth it.
Note also that some of these may be ranges, especially as noted above for compatibility roles.
-- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allb...@kf8nh.com system administrator [openafs,heimdal,too many hats] allb...@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH
Description: This is a digitally signed message part