On Wed, Jan 23, 2019 at 12:12 AM William Stein <wst...@gmail.com> wrote: > > On Tue, Jan 22, 2019 at 2:34 PM deSitter <antimatter3...@gmail.com> wrote: > > > > Hello all, > > > > I am interested in creating a native Windows port completely independent of > > the ugh-worthy Cygwin. Does such a project exist? > > Not anymore. I came the closest to writing one, but still didn't > really get close (this was a long time ago -- back when Microsoft way > paying REvolution to port R to Windows). It's very difficult, because > numerous Sage dependencies have never been properly ported to Windows. > If I were to try today, I would start by trying to refactor Sage > itself into a sage-core, with minimal dependencies, and other > libraries that depend on sage-core. Once that is done [1], then I > would worry about porting only sage-core to Windows, as a standard > Python library that is Anaconda installable (I would leverage Anaconda > as much as possible [2]). With that done, I would turn to whatever > major modules (e.g., sage-combinat, sage-nt, sage-algebra, etc.) are > of most interest, and try to port them one-by-one to Windows. Some > would not be possible due to dependencies, and others would be easy. > In any case, I never succeeded at a proper port, nor did anybody > else, so don't take my advise regarding Windows too seriously.
The above work on restructuring the Sage lib is still very much on my docket, but not likely to happen without more funding just due to the amount of time needed to do it. I do have a plan that's been underway for months for restructuring how sage-the-lib is packaged. > If I had to run Sage on Windows for some reason today, I would use > Docker or VirtualBox. I helped support somebody using the Cygwin > version of Sage on Windows at the Sage booth at the Joint Math > Meetings last week, and it typically took about 1 minute to start up > Sage, which was scary. She also was 100% convinced that copy/paste in > the Sage terminal (really cygwin) didn't work, which would make using > Sage very painful indeed. It turned out that copy/paste does work if > you use the context menu. I wish you had asked me about this or brought it up with me before spreading unfounded FUD based on one experience. I really don't appreciate it--it sets a bad example when the creator of Sage says "don't use the Windows port of Sage", and is pretty insulting frankly. Lots of people are using the Windows version just fine. It's true that startup is slow (albeit faster after the first time), but it's still my biggest priority to improve. It will take some difficult hacks because the main problem is just the large number of DLLs loaded at startup (425 from "$SAGE_LOCAL" alone), and loading DLLs is typically much slower and more heavy-weight than shared libraries on Linux. The main way to improve this would be to make further (large) improvements to lazy-loading capabilities. There's absolutely no reason 425 extension modules need to be loaded just to get a prompt up and a global namespace (most of the global namespace (as in, the list of names) can be "pre-compiled" for example, and its components lazily-loaded upon use). Work like this would of course benefit all platforms. Another more Windows-specific approach, which is common in the Windows world (e.g. for MS Office, and most browsers) is to have kind of a little "fork server" that automatically loads Sage to a usable state in the background at boot, so that when the user actually launches a terminal it's much faster. This is something I've been meaning to try. So these are engineering challenges, but solvable ones, not reasons to say "don't use X". Sage in Docker on Windows works quite nicely provided that: a) You're comfortable using Docker in the first place, which has a not insignificant learning curve. b) You already have a decent terminal emulator for Windows installed, or you have the more modern cmd.exe that has shipped with some more recent Windows updates (and that I think you need some developer tools installed to have; I forget the details). c) You don't care about certain functionality working well like, I don't know, being able to view plots. Sage in a VM in Windows is a terrible experience for anyone who just wants to use Sage on Windows. The stuff about copy/paste is just nonsense. I'm not sure what the problem there was. It is *slightly* unintuitive because it's not CTRL+C/CTRL+V. Rather, it works more like many *nix terminal emulators in that merely selecting text copies it. Paste is done with a middle-mouse click (if you have a middle button) or with Shift+Ins. Why Shift+Ins I'm not sure, but that's common in terminal emulators on Windows, including cmd.exe. I think CTRL+V might interfere with something else. Regardless, the correct shortcut key is listed in the context menu. -- 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 https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.