On Thu, 18 May 2017 07:47 am, Ian Kelly wrote: > Because, as has already been stated, there's no way to make such a simple > process cross-platform.
Please understand that Bart's understanding of cross-platform and the Python community's understanding of cross-platform are different. Bart's understanding of cross-platform is: "I have a Windows box, or maybe two of them, and a Linux VM, and so long as my code will compile and run a few simple scripts on each of them with no obvious bugs, I'm going to assume we're done!" The Python community's understanding is: "We have to support literally tens of thousands of different combinations and permutations of hardware, operating system version, variations in how the OS and user's environment are configured, and variations in C compilers and how they are configured; we have to support hundreds of different flavours of Linux alone, plus FreeBSD, OpenBSD, NetBSD, and other Unixes, plus multiple versions of Windows and MacOS, and possibly a few others; we have to support machines with different floating point capabilities, and as much as possible abstract those differences away so that they're not visible to the end user; and importantly, we want to halt the build process with a comprehensible[1] error message if some essential feature is lacking on your platform." When I first started using Python in version 1.5, among the many Unixes supported were: - VAX; - VMS; - Sun OS/Solaris (technically a Unix); - HP UX (also technically a Unix); - Windows 95/98; - Windows NT; - Windows CE; - OS/2; - classic Mac OS ("system 6", I think, or possibly 7). My memory is a little fuzzy on the following, so don't quote me, but I think the following were also officially supported: - IBM AS/400 ("System i" or "iSeries"); - BeOS; - MS DOS; - Z/OS (OS 390); - Acorn RISC; although some of them may not have been official ports. (Most of these are still available through third-parties.) Support for a lot of those have been dropped, but it still leaves its traces in the build system. The most important of which is the use of configure and make in the first place: even if every Linux and Windows system in the world today uses exactly the same configuration (which they don't), make still tests for each of those features because you never know when you might be running on some exotic mainframe or embedded device with radically different features. So tell us Bart, what do you think are the chances that your Q compiler will *just work* with no modifications at all if somebody tried to build it on an IBM AS/400, or under BeOS? Or for something a little more current, how about Android? [1] Comprehensible to the core devs, not necessarily the end user. -- Steve Emoji: a small, fuzzy, indistinct picture used to replace a clear and perfectly comprehensible word. -- https://mail.python.org/mailman/listinfo/python-list