On Friday, October 28, 2016 at 5:24:35 PM UTC, William wrote: > > On Fri, Oct 28, 2016 at 9:38 AM, Dima Pasechnik <dim...@gmail.com > <javascript:>> wrote: > > > > > > On Friday, October 28, 2016 at 3:03:26 PM UTC, William wrote: > >> > >> Hi, > >> > >> Regarding the openssl dependency issue, the standard way people > >> justify getting around it is the "system library exemption", which > >> allows for GPL'd programs to link in system libraries that are not > >> GPL'd (otherwise, things like GPL software on MS Windows would be > >> impossible!). Some links here: > >> > >> > >> > http://opensource.stackexchange.com/questions/2233/gpl-v3-with-openssl-exception > > >> > >> As the person who chose to add R to Sage in the first place, my > >> instinct on this is that we should **completely and totally remove R > >> from Sage**. Why? > >> > >> - Our pexpect based interface to R sucks. It was mostly written by > >> Mike Hansen and me, so I take the blame. In SageMathCloud Sage > >> worksheets > >> we just switched to making the %r mode be implemented using Jupyter's > >> R kernel, which is way more robust. > >> > >> - It's easy enough to install R in other ways outside of Sage. > >> I've heard of a lot of people installing Sage in order to install X > >> (where X is say Pari or Singular or even Cython at one point); I've > >> *never* heard of anybody installing Sage in order to get R. > >> > >> - The main technical reason for installing R into Sage, as opposed > >> to just finding a system-wide R install, is to ensure that rpy2 -- the > >> C-level bindings to R -- actually work. > > > > > > What would prevent it from working if R is not included in Sage? > > Since you ask, some of the things I can immediately think of: > > 1. R isn't installed systemwide (obvious) > > 2. The version of R that is installed is very old or too new compared > to the version of Sage and rpy2 that are installed. > > 3. The version of R that the user installed doesn't provide a shared > object library or dynamic link library (maybe on OS X or Windows?) > > 4. The user installed R in some local location, and there are shared > object libraries there, but Sage's Python knows nothing about this > copy of R or its libraries, so rpy2 won't build. > > That said, I'm also for rpy2 being optional and pip installable, as > you propose. Many of the above problems are best addressed by > improving rpy2 and pip, and maybe that's already happened. >
I talked to R people here at GSoC summit, and they say it should not be a problem to have rpy2 install correctly on any platform they support (the libraries rpy2 needs are always bundled, and the non-standard location of R is supported too.) > > -- William > > > rpy2 is pip-installable. > > > > Doing "pip install rpy2" on my system python (3.5) gave me a running > version > > of > > rpy2 (talking to system-wide R 3.3.1). > > I didn't try with python2, but they say it's supported this way too. > > > > Just make rpy2 an optional Sage package... > > > > Dima > > > > > > > >> > >> However, in retrospect, I > >> don't think rpy2 is really that great. > >> > >> - Python stats have come a *LONG* way in the last 10 years, with > >> libraries like Pandas. Why use rpy2 when you can much more > >> effectively use pandas and statsmodels and so on. > >> > >> In my opinion, it would be way, way better to completely remove R from > >> Sage and instead do the following: > >> > >> 1. Include the R jupyter kernel config files. > >> > >> 2. Includes the modern Python stats libraries pandas and > >> statsmodels in Sage. > >> > >> Our time would be much better spent supporting 2 than 1. It's > >> ridiculous that we spend no effort on pandas/statsmodels, and all this > >> effort on R. That was a strategy that made sense 10 years ago, but > >> not today. > >> > >> For example, I recall that there are some issues involving pandas + > >> statsmodels + the sage preparser. We could put effort into > >> addressing those, like Robert Bradshaw did with numpy (which used to > >> be very unhappy with Sage integers, reals, etc.). Fixing this stuff > >> probably wouldn't be hard, and would make Sage a better environment > >> for stats. There may be similar remarks around machine learning, > >> where Python has really come into its own recently (e.g., see > >> tensorflow). > >> > >> Anyway, just my two cents. But if anybody was out there wanting to > >> propose something similar, but worried that the person who included R > >> in Sage in the first place would be really annoyed -- fear not. > >> > >> -- William > >> > >> On Fri, Oct 28, 2016 at 6:39 AM, Emmanuel Charpentier > >> <emanuel.c...@gmail.com> wrote: > >> > My thoughts so far : > >> > > >> > I : Is there really a problem ? > >> > ===================== > >> > > >> > What all the brouhaha around libcurl boils down to is that there > *might* > >> > be > >> > a (pseudo)-legal difficulty in shipping a libcurl liibrary requiring > >> > OpenSSL > >> > and a GPL-licensed piece of software *in the same package*. This > might > >> > be a > >> > part of the reasons for the R core team to have thrown the towel on > this > >> > (but probably only patr of the reason : they alo threw the towel on > xz > >> > an > >> > pcre, which do not give the same headache). > >> > > >> > However, this does not seem to be a problem per se : Debian (one of > the > >> > most > >> > nitpicking distros in terms of licensing) happily ships libraries > and > >> > utilities (such as cups, for starter) linked with openssl-linked > >> > libcurl. I > >> > think that it would be interesting to ask them how they reconcile the > >> > (inconsistent) wordings of the licenses involved. > >> > > >> > According to their answer, we might have an easy way out : hide > behind > >> > the > >> > same legal curtain as Debian (it remains to see what it is...), > package > >> > libcurl (essentially done) and silently ship it with Sage (it remains > to > >> > check if other libraries are not more or less silently involved in > the > >> > support of https: in libcurl, in which case we might have to use them > >> > also). > >> > This is option : > >> > > >> > a) Do nothing : > >> > -------------------- > >> > > >> > II ? If there is really a problem, what can we do ? > >> > =================================== > >> > > >> > We might also bite the bullet, modify our licensing terms to add the > >> > advertising clause required by openssl's license and ship openly > >> > libcurl. > >> > Tha requires, it seems, explicit permission of all the people havng > >> > contributed to Sage, which might prove a difficult (impossble ?) > task. > >> > That > >> > gives us option : > >> > > >> > b) Acknowledge libcurl > >> > --------------------------------- > >> > > >> > We can also emulate the R core team, throw the towel and simply add > (an > >> > https-capable) libcurl to our initial requirements in README.md, > >> > possibly > >> > other places), leaving the user with the responsibility of installing > >> > it. > >> > This is option : > >> > > >> > c) Throw the towel > >> > --------------------------- > >> > > >> > Another possibility in the same vein is to throw the whole linen > cabinet > >> > : > >> > instead of placing on user's shoulders the responsibility of finding > >> > libcurl, we might leave it the responsibility of installing R. This > is > >> > made > >> > possible by the fact that R is now largely stable, with > well-documented > >> > interfaces and few changes, therefore standardizable. A review of > *all* > >> > the > >> > points of exchange between R and other parts of Sage would be > necessary > >> > to > >> > check what is to be supported. As far as I know, R is sparsely used > in > >> > "the > >> > rest of Sage. This is option : > >> > > >> > d) Excise R kernel > >> > --------------------------- > >> > > >> > At that point, one might wonder if R should remain a standard part of > >> > Sage. > >> > Dropping the requirement for T and making R interfaces an optional > part > >> > of > >> > Sage might also be a solution. But this is possible if and only if > the > >> > code > >> > review necessary to Sage excision shows no use of R's capabilities in > >> > other > >> > standard part of Sage. This is option : > >> > > >> > e) Excise R interfaces > >> > -------------------------------- > >> > > >> > I think that we can forget about creating a network-deprived R : the > >> > resulting loss of functionality is so massive that it would become > >> > almost > >> > useless (to people having a use for R, that is...). I have to add > that I > >> > would fight such a "solution"... > >> > > >> > III : Pros and contras > >> > ------------------------------ > >> > > >> > "Throw the towel" is the laziest option : a few lines of not > >> > hard-to-write > >> > documentation in a few (harder-to-find ?) places. It buys us nothing > in > >> > terms of functionality. And leaves us with the responsibility of > >> > updating R > >> > (a not-so-insignificant task) and large sources, libraries and > >> > executables. > >> > > >> > "Do nothing" is (almost but not quite) as lazy: porting libcurl is > >> > essentially done ; it remains to check if other libraries are > required > >> > to > >> > build an https:-capable libcurl. No other benefits. > >> > > >> > "Acknowledge libcurl" seems almost infeasible, due to the necessity > to > >> > hunt > >> > all the past and present Sage contributors. It would be otherwise the > >> > cleanest solution in the eyes of legal-oriented people. > >> > > >> > "Excise R kernel" needs a serious bit of work. But it would have its > >> > points > >> > : document all the uses of R from other parts of Sage, forcing the > >> > documentation of these uses, etc... It would also lighten the > >> > maintenance of > >> > Sage. However, we would be exposed to brutal loss of functionality > >> > if/when R > >> > changes without warning. Furthermore, paranoid users (such as me :-) > >> > would > >> > not have to maintain "system" and "Sage" installations of R (not a > small > >> > task with litteraly thousands of R packages available...). > >> > > >> > "Excise R interfaces" is probably easy to do (modulo the code review > >> > necessary to excision) ; in my not so humble opinion, it would be a > >> > serious > >> > loss of interest for me and, more generally, a catastrophic mistake > in > >> > communication : R has been part of Sage since version 3.0 (2008) (if > >> > Wikipedia is to be believed), and it would be the first ever > >> > *intentional* > >> > loss of functionality of Sage. Furthermore, I am a bit skeptic about > R > >> > interfaces maintenance if they ever becom an optional part of Sage : > >> > even > >> > the (Sage) notebook, which is pretty central, has attracted cruft to > >> > the > >> > point of becoming unmaintainable... > >> > > >> > My short-sighted laziness would go to "Throw the towel" ; my > long-term > >> > laziness would choose "Excise R kernel" (it could be the former now, > the > >> > latter afterwards). However, notwithstanding its drawbacks, "do > nothing" > >> > is > >> > almost done. > >> > > >> > What do you think ? > >> > > >> > -- > >> > Emmanuel Charpentier > >> > > >> > -- > >> > 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+...@googlegroups.com. > >> > To post to this group, send email to sage-...@googlegroups.com. > >> > Visit this group at https://groups.google.com/group/sage-devel. > >> > For more options, visit https://groups.google.com/d/optout. > >> > >> > >> > >> -- > >> William (http://wstein.org) > > > > -- > > 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+...@googlegroups.com <javascript:>. > > To post to this group, send email to sage-...@googlegroups.com > <javascript:>. > > Visit this group at https://groups.google.com/group/sage-devel. > > For more options, visit https://groups.google.com/d/optout. > > > > -- > William (http://wstein.org) > -- 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.