On Wednesday, October 7, 2015 at 8:08:30 PM UTC+2, Bill Hart wrote: > > > > On Wednesday, 7 October 2015 19:54:30 UTC+2, Dima Pasechnik wrote: >> >> >> >> On Wednesday, 7 October 2015 07:35:22 UTC-7, Bill Hart wrote: >>> >>> HI all, >>> >>> William Stein recently bemoaned the fact that SageMath currently only >>> runs natively on some brands of Linux, and not natively on the latest >>> Windows or OSX (that is to say nothing of BSD). [1] >>> >>> Until recently, a port of SageMath to Windows has seemed like a pipe >>> dream. However, things have changed a lot, and I think it would now be >>> possible to achieve this (for some definition of the word "native"). >>> >>> I've tried VM's before and it has always ended in disaster. They either >>> screw up my networking, they have performance issues, or don't support my >>> mouse properly, or change my keyboard layout, or it's impossible to get >>> files from my hard drive into the system easily, or they take up too much >>> disk space or need to be constantly downloaded to update them, or some >>> features don't work, or people stop supporting them, etc. The disadvantages >>> of VMs are so numerous I hardly need to enumerate them. And even if it is a >>> solution for users, it's hardly a solution for serious Windows developers. >>> >>> As some people know, I've been recently working on a Julia based >>> "computer algebra system" for a much more limited subset of "computer >>> algebra" than Sage targets. What people may not know is that that entire >>> technology stack works natively on Windows. >>> >>> I can't express how fantastic it was to be sitting on a train recently, >>> with no web access whatsoever and to be able to do work on my Windows 10 >>> (64 bit) laptop on the train. And everything ran as fast, or in some cases >>> faster, than my Linux server. That's the first time that has happened since >>> I started doing computational stuff about 10 years ago! >>> >>> MSYS2 as a solution >>> ================ >>> >>> The new technology that makes all this work is MSYS2. Here are some of >>> its features: >>> >>> * Installing MSYS2 on Windows couldn't be easier. [2] >>> * It supports proper Windows exception handling protocols. >>> * It has an amazing command line package manager called Pacman, which >>> Just Works TM. >>> * Unlike Cygwin, it's very minimal, and takes little time to install. >>> * It's fast. Very fast. >>> * Parallel make works. >>> * The resulting binaries are fast, sometimes faster on my laptop than on >>> the Linux server I usually use for development. >>> * MSYS2 provides a posix layer! (Applications can be distributed with an >>> MSYS2 dll for this.) >>> * Multithreading using pthreads Just Works TM (Applications can be >>> distributed with a winthreads dll for this. I've actually used this, no >>> patching required, so I am not speaking theoretically here.) >>> * Like native Windows, sizeof(long) = 4 and sizeof(long long) = 8 on >>> MSYS2. This means interop with native Windows applications or assembly >>> objects is a cynch. >>> * The resulting applications can be run on Windows as essentially native >>> applications. They don't have to be run from within the MSYS2 shell. They >>> can also be distributed as binary packages for those that don't care about >>> the source code. But here's the thing: it's not *necessary* to distribute >>> them as binary packages. It's now quite feasible for developers to actually >>> *build* packages on Windows. And let's face it, this is the type of >>> developer we actually want on the Windows platform. Simply supporting users >>> and not developers is just going to increase the maintenance burden for >>> people who work on other platforms. We want actual Windows developers, not >>> just users! >>> >>> The only bad thing about MSYS2 is that autotools is still incredibly >>> slow (Flint roll-your-own configure takes 5s at most on Windows, whereas >>> autotools can take some minutes to configure a package). Note: make is not >>> slow (at least not on Windows 64 -- it's not as fast on 32 bit Windows, but >>> fortunately almost no one is using Windows 32 any more anyway). >>> >> >> If MSYS2 has (Cygwin's?) fork(), it should not differ much from Cygwin, >> in the sense of porting of Sage. >> fork() was the major pain on Win32, as building Python extensions results >> in huge number of dlls that have hard time >> fitting into the (32bit) address space, so (semi)automatic running of >> rebase during the build was necessary... >> > > I am really, really uninterested in Windows 32, as are, I imagine, most > Windows developers these days. Given that Sage is so very far behind the > ball game on Windows, I would skip it entirely. You will likely have to > visit a museum to get a working Win32 box by the time the port is complete. > (This was already the case back when Sage started its Cygwin port). > Same issue for Windows64, that's basically the way DLLs work which makes fork unimplementable in a not-broken way on Windows. And yes, I'm quite sure MSYS2 has the same issue as Cygwin as MSYS2 is a frequently resynced fork of Cygwin.
-- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.