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.

Reply via email to