unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* octave license is incompatible with openssl
@ 2016-08-04 16:35 Alex Vong
  2016-08-04 17:10 ` John Darrington
  2016-08-05  6:50 ` Ricardo Wurmus
  0 siblings, 2 replies; 31+ messages in thread
From: Alex Vong @ 2016-08-04 16:35 UTC (permalink / raw)
  To: guix-devel

Hi guixes,

First, congratulations to Ricardo Wurmus as new maintainer and the new
0.11 release is good (it passed all tests)!

I notice 'octave 4.0.2' has 'openssl@1.0.2h' as one of its inputs. As
far as I know, gplv3 is incompatible with openssl license
(https://people.gnome.org/~markmc/openssl-and-the-gpl.html).

How should we fix this?


Cheers,
Alex

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-04 16:35 octave license is incompatible with openssl Alex Vong
@ 2016-08-04 17:10 ` John Darrington
  2016-08-04 17:20   ` ng0
  2016-08-05  9:03   ` Alex Vong
  2016-08-05  6:50 ` Ricardo Wurmus
  1 sibling, 2 replies; 31+ messages in thread
From: John Darrington @ 2016-08-04 17:10 UTC (permalink / raw)
  To: Alex Vong; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 870 bytes --]

I would not be at all suprised if there were more incompatibilities like
this.  Ought we not have  a lint rule that checks this?

J'

On Fri, Aug 05, 2016 at 12:35:54AM +0800, Alex Vong wrote:
     Hi guixes,
     
     First, congratulations to Ricardo Wurmus as new maintainer and the new
     0.11 release is good (it passed all tests)!
     
     I notice 'octave 4.0.2' has 'openssl@1.0.2h' as one of its inputs. As
     far as I know, gplv3 is incompatible with openssl license
     (https://people.gnome.org/~markmc/openssl-and-the-gpl.html).
     
     How should we fix this?
     
     
     Cheers,
     Alex

-- 
Avoid eavesdropping.  Send strong encryted email.
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-04 17:10 ` John Darrington
@ 2016-08-04 17:20   ` ng0
  2016-08-05  9:08     ` Alex Vong
  2016-08-05  9:03   ` Alex Vong
  1 sibling, 1 reply; 31+ messages in thread
From: ng0 @ 2016-08-04 17:20 UTC (permalink / raw)
  To: John Darrington, Alex Vong; +Cc: guix-devel

John Darrington <john@darrington.wattle.id.au> writes:

> I would not be at all suprised if there were more incompatibilities like
> this.  Ought we not have  a lint rule that checks this?
>
> J'
>
> On Fri, Aug 05, 2016 at 12:35:54AM +0800, Alex Vong wrote:
>      Hi guixes,
>      
>      First, congratulations to Ricardo Wurmus as new maintainer and the new
>      0.11 release is good (it passed all tests)!
>      
>      I notice 'octave 4.0.2' has 'openssl@1.0.2h' as one of its inputs. As
>      far as I know, gplv3 is incompatible with openssl license
>      (https://people.gnome.org/~markmc/openssl-and-the-gpl.html).
>      
>      How should we fix this?
>      
>      
>      Cheers,
>      Alex
>
> -- 
> Avoid eavesdropping.  Send strong encryted email.
> PGP Public key ID: 1024D/2DE827B3 
> fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
> See http://sks-keyservers.net or any PGP keyserver for public key.
>

Isn't this an upstream problem? I don't know octave but is openssl
required? Can it be replaced by something different?

Does this require upstream action/reporting?
-- 
♥Ⓐ  ng0
Current Keys: https://we.make.ritual.n0.is/ng0.txt
For non-prism friendly talk find me on http://www.psyced.org

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-04 16:35 octave license is incompatible with openssl Alex Vong
  2016-08-04 17:10 ` John Darrington
@ 2016-08-05  6:50 ` Ricardo Wurmus
  2016-08-06  1:52   ` Alex Vong
  1 sibling, 1 reply; 31+ messages in thread
From: Ricardo Wurmus @ 2016-08-05  6:50 UTC (permalink / raw)
  To: Alex Vong; +Cc: guix-devel


Alex Vong <alexvong1995@gmail.com> writes:

> I notice 'octave 4.0.2' has 'openssl@1.0.2h' as one of its inputs. As
> far as I know, gplv3 is incompatible with openssl license
> (https://people.gnome.org/~markmc/openssl-and-the-gpl.html).

Looks like you’re right.  Other projects add a special openSSL linking
exception, but Octave does not seem to account for this.

> How should we fix this?

It seems that the use of openssl in Octave is optional, so we could
probably just remove it.  From a cursory look it appears that it is used
for not much more than the MD5 algorithm.  Would you like to submit a
patch that removes openssl from the inputs?

It would be good to ask the Octave project if it would be possible to
replace OpenSSL with, say, GnuTLS.

~~ Ricardo

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-04 17:10 ` John Darrington
  2016-08-04 17:20   ` ng0
@ 2016-08-05  9:03   ` Alex Vong
  2016-08-05 11:43     ` Mathieu Lirzin
  1 sibling, 1 reply; 31+ messages in thread
From: Alex Vong @ 2016-08-05  9:03 UTC (permalink / raw)
  To: John Darrington; +Cc: guix-devel

John Darrington <john@darrington.wattle.id.au> writes:

> I would not be at all suprised if there were more incompatibilities like
> this.  Ought we not have  a lint rule that checks this?
>
Indeed, in the short term, we could lint for special case, such that
openssl appears as an input for an GPLv[123](+) package.


In the long term, we could have the following in guix. Since licenses
are scheme values. I was thinking we can have procedure like:

  (compatible? l1 l2)

which is a reflexive and symmetric relation. Also, we might be able to
build compound licenses by:

  (dual-license lics ...)

and

  (intersect-license lics ...)

The 3 procedures should satisfy the following "laws":

  (compatible? l1 (dual-license lics ...))

if and only if

  (any (cut compatible? l1  <>) lics)

Similarly,

  (compatible? l1 (intersect-license lics ...))

if and only if

  (every (cut compatible? l1  <>) lics)


How do everyone think?

Cheers,
Alex

> J'
>
> On Fri, Aug 05, 2016 at 12:35:54AM +0800, Alex Vong wrote:
>      Hi guixes,
>      
>      First, congratulations to Ricardo Wurmus as new maintainer and the new
>      0.11 release is good (it passed all tests)!
>      
>      I notice 'octave 4.0.2' has 'openssl@1.0.2h' as one of its inputs. As
>      far as I know, gplv3 is incompatible with openssl license
>      (https://people.gnome.org/~markmc/openssl-and-the-gpl.html).
>      
>      How should we fix this?
>      
>      
>      Cheers,
>      Alex

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-04 17:20   ` ng0
@ 2016-08-05  9:08     ` Alex Vong
  0 siblings, 0 replies; 31+ messages in thread
From: Alex Vong @ 2016-08-05  9:08 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel

ng0 <ng0@we.make.ritual.n0.is> writes:

> John Darrington <john@darrington.wattle.id.au> writes:
>
>> I would not be at all suprised if there were more incompatibilities like
>> this.  Ought we not have  a lint rule that checks this?
>>
>> J'
>>
>> On Fri, Aug 05, 2016 at 12:35:54AM +0800, Alex Vong wrote:
>>      Hi guixes,
>>      
>>      First, congratulations to Ricardo Wurmus as new maintainer and the new
>>      0.11 release is good (it passed all tests)!
>>      
>>      I notice 'octave 4.0.2' has 'openssl@1.0.2h' as one of its inputs. As
>>      far as I know, gplv3 is incompatible with openssl license
>>      (https://people.gnome.org/~markmc/openssl-and-the-gpl.html).
>>      
>>      How should we fix this?
>>      
>>      
>>      Cheers,
>>      Alex
>>
>> -- 
>> Avoid eavesdropping.  Send strong encryted email.
>> PGP Public key ID: 1024D/2DE827B3 
>> fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
>> See http://sks-keyservers.net or any PGP keyserver for public key.
>>
>
> Isn't this an upstream problem? I don't know octave but is openssl
> required? Can it be replaced by something different?
>
> Does this require upstream action/reporting?

I remember reading that octave devs are aware of the problem, but it is
difficult to change the license since octave has no copyright assignment
(like guix), Note that this is from my memory, so I could have got it
wrong.

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-05  9:03   ` Alex Vong
@ 2016-08-05 11:43     ` Mathieu Lirzin
  0 siblings, 0 replies; 31+ messages in thread
From: Mathieu Lirzin @ 2016-08-05 11:43 UTC (permalink / raw)
  To: Alex Vong; +Cc: guix-devel

Alex Vong <alexvong1995@gmail.com> writes:

> John Darrington <john@darrington.wattle.id.au> writes:
>
>> I would not be at all suprised if there were more incompatibilities like
>> this.  Ought we not have  a lint rule that checks this?
>>
> Indeed, in the short term, we could lint for special case, such that
> openssl appears as an input for an GPLv[123](+) package.
>
>
> In the long term, we could have the following in guix. Since licenses
> are scheme values. I was thinking we can have procedure like:
>
>   (compatible? l1 l2)
>
> which is a reflexive and symmetric relation. Also, we might be able to
> build compound licenses by:
>
>   (dual-license lics ...)
>
> and
>
>   (intersect-license lics ...)
>
> The 3 procedures should satisfy the following "laws":
>
>   (compatible? l1 (dual-license lics ...))
>
> if and only if
>
>   (any (cut compatible? l1  <>) lics)
>
> Similarly,
>
>   (compatible? l1 (intersect-license lics ...))
>
> if and only if
>
>   (every (cut compatible? l1  <>) lics)
>
>
> How do everyone think?
>

I like the idea!

-- 
Mathieu Lirzin

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-05  6:50 ` Ricardo Wurmus
@ 2016-08-06  1:52   ` Alex Vong
  2016-08-08 20:00     ` Leo Famulari
  0 siblings, 1 reply; 31+ messages in thread
From: Alex Vong @ 2016-08-06  1:52 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1113 bytes --]

Ricardo Wurmus <rekado@elephly.net> writes:

> Alex Vong <alexvong1995@gmail.com> writes:
>
>> I notice 'octave 4.0.2' has 'openssl@1.0.2h' as one of its inputs. As
>> far as I know, gplv3 is incompatible with openssl license
>> (https://people.gnome.org/~markmc/openssl-and-the-gpl.html).
>
> Looks like you’re right.  Other projects add a special openSSL linking
> exception, but Octave does not seem to account for this.
>
>> How should we fix this?
>
> It seems that the use of openssl in Octave is optional, so we could
> probably just remove it.  From a cursory look it appears that it is used
> for not much more than the MD5 algorithm.  Would you like to submit a
> patch that removes openssl from the inputs?
>
Here it is. It takes a long time to track down that curl is pulling the
openssl depedency. I also upgrade octave to 4.0.3 and change to use
'tar.xz'.

> It would be good to ask the Octave project if it would be possible to
> replace OpenSSL with, say, GnuTLS.
>
I agree, should we CC/forward this discussion to octave-devel list?

> ~~ Ricardo

Cheers,
Alex


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-octave-Update-to-4.0.3.patch --]
[-- Type: text/x-diff, Size: 1923 bytes --]

From f813b22539c6cefd49471f7df3adc4b02ebcd76c Mon Sep 17 00:00:00 2001
From: Alex Vong <alexvong1995@gmail.com>
Date: Sat, 6 Aug 2016 08:52:34 +0800
Subject: [PATCH] gnu: octave: Update to 4.0.3.

  * gnu/packages/maths.scm (octave): Update to 4.0.3.
  [source]: Change to '.tar.xz'.
  [inputs]: Remove dependencies on openssl and curl.
---
 gnu/packages/maths.scm | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index fcea0bc..149c533 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -692,16 +692,19 @@ can solve two kinds of problems:
 (define-public octave
   (package
     (name "octave")
-    (version "4.0.2")
+    (version "4.0.3")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/octave/octave-"
-                          version ".tar.gz"))
+                          version ".tar.xz"))
       (sha256
        (base32
-        "1hdxap3j88rpqjimnfhinym6z73wdi5dfa6fv85c13r1dk9qzk9r"))))
+        "11day29k4yfvxh4101x5yf26ld992x5n6qvmhjjk6mzsd26fqayw"))))
     (build-system gnu-build-system)
+    ;; Ideally, curl should be in the list of inputs to enable ftp support.
+    ;; It isn't because it causes octave to link against openssl which isn't allowed
+    ;; as octave's license has no openssl exception at the moment.
     (inputs
      `(("lapack" ,lapack)
        ("readline" ,readline)
@@ -709,7 +712,6 @@ can solve two kinds of problems:
        ("fftw" ,fftw)
        ("fftwf" ,fftwf)
        ("arpack" ,arpack-ng)
-       ("curl" ,curl)
        ("pcre" ,pcre)
        ("cyrus-sasl" ,cyrus-sasl)
        ("fltk" ,fltk)
@@ -719,7 +721,6 @@ can solve two kinds of problems:
        ("libxft" ,libxft)
        ("mesa" ,mesa)
        ("glu" ,glu)
-       ("openssl" ,openssl)
        ("zlib" ,zlib)))
     (native-inputs
      `(("gfortran" ,gfortran)
-- 
2.9.2


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-06  1:52   ` Alex Vong
@ 2016-08-08 20:00     ` Leo Famulari
  2016-08-09 16:00       ` Alex Vong
  0 siblings, 1 reply; 31+ messages in thread
From: Leo Famulari @ 2016-08-08 20:00 UTC (permalink / raw)
  To: Alex Vong; +Cc: guix-devel

On Sat, Aug 06, 2016 at 09:52:39AM +0800, Alex Vong wrote:
> Ricardo Wurmus <rekado@elephly.net> writes:
> 
> > Alex Vong <alexvong1995@gmail.com> writes:
> >
> >> I notice 'octave 4.0.2' has 'openssl@1.0.2h' as one of its inputs. As
> >> far as I know, gplv3 is incompatible with openssl license
> >> (https://people.gnome.org/~markmc/openssl-and-the-gpl.html).
> >
> > Looks like you’re right.  Other projects add a special openSSL linking
> > exception, but Octave does not seem to account for this.
> >
> >> How should we fix this?
> >
> > It seems that the use of openssl in Octave is optional, so we could
> > probably just remove it.  From a cursory look it appears that it is used
> > for not much more than the MD5 algorithm.  Would you like to submit a
> > patch that removes openssl from the inputs?
> >
> Here it is. It takes a long time to track down that curl is pulling the
> openssl depedency. I also upgrade octave to 4.0.3 and change to use
> 'tar.xz'.
> 
> > It would be good to ask the Octave project if it would be possible to
> > replace OpenSSL with, say, GnuTLS.
> >
> I agree, should we CC/forward this discussion to octave-devel list?

Yes, I think we should work with them to resolve this issue.

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-08 20:00     ` Leo Famulari
@ 2016-08-09 16:00       ` Alex Vong
  2016-08-09 17:27         ` Mike Miller
  0 siblings, 1 reply; 31+ messages in thread
From: Alex Vong @ 2016-08-09 16:00 UTC (permalink / raw)
  To: help-octave; +Cc: Ricardo Wurmus, guix-devel, Leo Famulari

Hi octave devs,

During a look of the octave package in guix (a functional package
manager, part of gnu), we notice octave have an optional dependency on
openssl.

However, since the license of octave (gpl3+) is incompatible
with that of openssl
(https://people.gnome.org/~markmc/openssl-and-the-gpl.html), the
resulting binary after linking is not re-distributable.

So, we drop the optional dependency to avoid the problem.

Is there any plan to fix this problem? There are some solutions we think
of: 1. add openssl linking exception to the license 2. provide support
for linking with gnutls as an alternative. In any case, I think we
should warn the user about it.

What are your ideas? (the messages below include the whole discussion on
the guix-devel mailing list)

Thanks,
Alex

Leo Famulari <leo@famulari.name> writes:

> On Sat, Aug 06, 2016 at 09:52:39AM +0800, Alex Vong wrote:
>> Ricardo Wurmus <rekado@elephly.net> writes:
>> 
>> > Alex Vong <alexvong1995@gmail.com> writes:
>> >
>> >> I notice 'octave 4.0.2' has 'openssl@1.0.2h' as one of its inputs. As
>> >> far as I know, gplv3 is incompatible with openssl license
>> >> (https://people.gnome.org/~markmc/openssl-and-the-gpl.html).
>> >
>> > Looks like you’re right.  Other projects add a special openSSL linking
>> > exception, but Octave does not seem to account for this.
>> >
>> >> How should we fix this?
>> >
>> > It seems that the use of openssl in Octave is optional, so we could
>> > probably just remove it.  From a cursory look it appears that it is used
>> > for not much more than the MD5 algorithm.  Would you like to submit a
>> > patch that removes openssl from the inputs?
>> >
>> Here it is. It takes a long time to track down that curl is pulling the
>> openssl depedency. I also upgrade octave to 4.0.3 and change to use
>> 'tar.xz'.
>> 
>> > It would be good to ask the Octave project if it would be possible to
>> > replace OpenSSL with, say, GnuTLS.
>> >
>> I agree, should we CC/forward this discussion to octave-devel list?
>
> Yes, I think we should work with them to resolve this issue.

_______________________________________________
Help-octave mailing list
Help-octave@gnu.org
https://lists.gnu.org/mailman/listinfo/help-octave

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-09 16:00       ` Alex Vong
@ 2016-08-09 17:27         ` Mike Miller
  2016-08-09 18:30           ` Ricardo Wurmus
                             ` (2 more replies)
  0 siblings, 3 replies; 31+ messages in thread
From: Mike Miller @ 2016-08-09 17:27 UTC (permalink / raw)
  To: Alex Vong; +Cc: Ricardo Wurmus, guix-devel, help-octave, Leo Famulari

On Wed, Aug 10, 2016 at 00:00:59 +0800, Alex Vong wrote:
> Hi octave devs,
> 
> During a look of the octave package in guix (a functional package
> manager, part of gnu), we notice octave have an optional dependency on
> openssl.
> 
> However, since the license of octave (gpl3+) is incompatible
> with that of openssl
> (https://people.gnome.org/~markmc/openssl-and-the-gpl.html), the
> resulting binary after linking is not re-distributable.

Agreed.

> So, we drop the optional dependency to avoid the problem.

Precisely what is the optional dependency that is dropped?

Octave does not directly link with OpenSSL nor use any OpenSSL
functions. The Octave package on Debian builds with all optional
dependencies enabled, and the resulting binary is linked with GnuTLS.

> Is there any plan to fix this problem? There are some solutions we think
> of: 1. add openssl linking exception to the license 2. provide support
> for linking with gnutls as an alternative. In any case, I think we
> should warn the user about it.
> 
> What are your ideas? (the messages below include the whole discussion on
> the guix-devel mailing list)

The Octave Guix package may be indirectly linking with OpenSSL through a
direct dependency such as libcurl. I would recommend that you use a
libcurl that is built against GnuTLS as we do on Debian.

AFAICS, nothing needs to be fixed in Octave.

HTH,

-- 
mike

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-09 17:27         ` Mike Miller
@ 2016-08-09 18:30           ` Ricardo Wurmus
  2016-08-09 21:33             ` kei
  2016-08-10  4:23           ` Mark H Weaver
  2016-08-10  6:43           ` Alex Vong
  2 siblings, 1 reply; 31+ messages in thread
From: Ricardo Wurmus @ 2016-08-09 18:30 UTC (permalink / raw)
  To: Mike Miller; +Cc: guix-devel, help-octave


Mike Miller <mtmiller@octave.org> writes:

> On Wed, Aug 10, 2016 at 00:00:59 +0800, Alex Vong wrote:
>> So, we drop the optional dependency to avoid the problem.
>
> Precisely what is the optional dependency that is dropped?
>
> Octave does not directly link with OpenSSL nor use any OpenSSL
> functions. The Octave package on Debian builds with all optional
> dependencies enabled, and the resulting binary is linked with GnuTLS.

The “openssl” package (along with “cyrus-sasl”) was added as a new input
to our “octave” package in commit
b7b27a8f28746a488eeee489c71053059dc5a8dc, along with the upgrade from
4.0.0 to 4.0.2.

I don’t know why this was done.  Maybe Kei could shed some light on
this.

~~ Ricardo

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-09 18:30           ` Ricardo Wurmus
@ 2016-08-09 21:33             ` kei
  2016-08-10  4:28               ` Mark H Weaver
  0 siblings, 1 reply; 31+ messages in thread
From: kei @ 2016-08-09 21:33 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel, help-octave, Mike Miller

On 2016-08-09 14:30, Ricardo Wurmus wrote:
> Mike Miller <mtmiller@octave.org> writes:
> 
>> On Wed, Aug 10, 2016 at 00:00:59 +0800, Alex Vong wrote:
>>> So, we drop the optional dependency to avoid the problem.
>> 
>> Precisely what is the optional dependency that is dropped?
>> 
>> Octave does not directly link with OpenSSL nor use any OpenSSL
>> functions. The Octave package on Debian builds with all optional
>> dependencies enabled, and the resulting binary is linked with GnuTLS.
> 
> The “openssl” package (along with “cyrus-sasl”) was added as a new 
> input
> to our “octave” package in commit
> b7b27a8f28746a488eeee489c71053059dc5a8dc, along with the upgrade from
> 4.0.0 to 4.0.2.
> 
> I don’t know why this was done.  Maybe Kei could shed some light on
> this.
> 
> ~~ Ricardo

When I tried to build Octave 4.0.2, the build complained about missing 
SSL
and SASL libraries. Adding gnutls as a dependency (Debian users are 
advised
to use libcurl4-gnutls-dev) did not fix the issue, so I added OpenSSL to
stop the issue. It seems to me that Octave 4.0.2 (and 4.0.3, the most 
recent
version) depends on SSL for curl usage, as curl allows Octave users to 
issue
a "pkg install -forge [package_name]" command to install packages from 
the
Octave Forge repo. I didn't know that the licenses were incompatible, so 
now
we have to name (or correctly package) the Guix equivalent of 
libcurl4-gnutls-dev.

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-09 17:27         ` Mike Miller
  2016-08-09 18:30           ` Ricardo Wurmus
@ 2016-08-10  4:23           ` Mark H Weaver
  2016-08-10  6:43           ` Alex Vong
  2 siblings, 0 replies; 31+ messages in thread
From: Mark H Weaver @ 2016-08-10  4:23 UTC (permalink / raw)
  To: Mike Miller; +Cc: guix-devel, help-octave

Mike Miller <mtmiller@octave.org> writes:
> I would recommend that you use a libcurl that is built against GnuTLS
> as we do on Debian.

Our libcurl is already built against GnuTLS.

     Mark

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-09 21:33             ` kei
@ 2016-08-10  4:28               ` Mark H Weaver
  2016-08-11  5:56                 ` Mike Miller
  0 siblings, 1 reply; 31+ messages in thread
From: Mark H Weaver @ 2016-08-10  4:28 UTC (permalink / raw)
  To: kei; +Cc: guix-devel, help-octave, Mike Miller

kei@openmailbox.org writes:

> On 2016-08-09 14:30, Ricardo Wurmus wrote:
>> Mike Miller <mtmiller@octave.org> writes:
>>
>>> On Wed, Aug 10, 2016 at 00:00:59 +0800, Alex Vong wrote:
>>>> So, we drop the optional dependency to avoid the problem.
>>>
>>> Precisely what is the optional dependency that is dropped?
>>>
>>> Octave does not directly link with OpenSSL nor use any OpenSSL
>>> functions. The Octave package on Debian builds with all optional
>>> dependencies enabled, and the resulting binary is linked with GnuTLS.
>>
>> The “openssl” package (along with “cyrus-sasl”) was added as a new
>> input
>> to our “octave” package in commit
>> b7b27a8f28746a488eeee489c71053059dc5a8dc, along with the upgrade from
>> 4.0.0 to 4.0.2.
>>
>> I don’t know why this was done.  Maybe Kei could shed some light on
>> this.
>>
>> ~~ Ricardo
>
> When I tried to build Octave 4.0.2, the build complained about missing
> SSL and SASL libraries. Adding gnutls as a dependency (Debian users
> are advised to use libcurl4-gnutls-dev) did not fix the issue, so I
> added OpenSSL to stop the issue.

We should investigate the reason why it failed without OpenSSL.  I would
start by repeating the build attempt without OpenSSL, and looking at the
resulting config.log to see what went wrong.

> It seems to me that Octave 4.0.2 (and 4.0.3, the most recent version)
> depends on SSL for curl usage, as curl allows Octave users to issue a
> "pkg install -forge [package_name]" command to install packages from
> the Octave Forge repo. I didn't know that the licenses were
> incompatible, so now we have to name (or correctly package) the Guix
> equivalent of libcurl4-gnutls-dev.

'curl' is that package.  It is built against GnuTLS.

      Mark

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-09 17:27         ` Mike Miller
  2016-08-09 18:30           ` Ricardo Wurmus
  2016-08-10  4:23           ` Mark H Weaver
@ 2016-08-10  6:43           ` Alex Vong
  2016-08-11  6:26             ` Mike Miller
  2 siblings, 1 reply; 31+ messages in thread
From: Alex Vong @ 2016-08-10  6:43 UTC (permalink / raw)
  To: Mike Miller; +Cc: guix-devel, help-octave

Mike Miller <mtmiller@octave.org> writes:

> On Wed, Aug 10, 2016 at 00:00:59 +0800, Alex Vong wrote:
>> Hi octave devs,
>> 
>> During a look of the octave package in guix (a functional package
>> manager, part of gnu), we notice octave have an optional dependency on
>> openssl.
>> 
>> However, since the license of octave (gpl3+) is incompatible
>> with that of openssl
>> (https://people.gnome.org/~markmc/openssl-and-the-gpl.html), the
>> resulting binary after linking is not re-distributable.
>
> Agreed.
>
>> So, we drop the optional dependency to avoid the problem.
>
> Precisely what is the optional dependency that is dropped?
>
> Octave does not directly link with OpenSSL nor use any OpenSSL
> functions. The Octave package on Debian builds with all optional
> dependencies enabled, and the resulting binary is linked with GnuTLS.
>
I thought it was an optional dependency because when I run
`./configure --help', it contains the following help:

  --with-openssl          use libcrypto hash routines. Valid ARGs are: 'yes',
                          'no', 'auto' => use if available, 'optional' => use
                          if available and warn if not available; default is
                          'no'


Perhaps someone unaware of the issue adds this? Should I open a bug
report on this?

>> Is there any plan to fix this problem? There are some solutions we think
>> of: 1. add openssl linking exception to the license 2. provide support
>> for linking with gnutls as an alternative. In any case, I think we
>> should warn the user about it.
>> 
>> What are your ideas? (the messages below include the whole discussion on
>> the guix-devel mailing list)
>
> The Octave Guix package may be indirectly linking with OpenSSL through a
> direct dependency such as libcurl. I would recommend that you use a
> libcurl that is built against GnuTLS as we do on Debian.
>
Indeed, the Debian package does not depend on openssl.

> AFAICS, nothing needs to be fixed in Octave.
>
> HTH,

Thanks,
Alex

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-10  4:28               ` Mark H Weaver
@ 2016-08-11  5:56                 ` Mike Miller
  2016-08-11  9:58                   ` Mark H Weaver
  0 siblings, 1 reply; 31+ messages in thread
From: Mike Miller @ 2016-08-11  5:56 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: guix-devel, help-octave

On Wed, Aug 10, 2016 at 00:28:04 -0400, Mark H Weaver wrote:
> We should investigate the reason why it failed without OpenSSL.  I would
> start by repeating the build attempt without OpenSSL, and looking at the
> resulting config.log to see what went wrong.

Sounds good to me. Let us know what you find out or if there is anything
we can do to help.

-- 
mike

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-10  6:43           ` Alex Vong
@ 2016-08-11  6:26             ` Mike Miller
  2016-08-11 15:27               ` Alex Vong
  0 siblings, 1 reply; 31+ messages in thread
From: Mike Miller @ 2016-08-11  6:26 UTC (permalink / raw)
  To: Alex Vong; +Cc: guix-devel, help-octave

On Wed, Aug 10, 2016 at 14:43:57 +0800, Alex Vong wrote:
> I thought it was an optional dependency because when I run
> `./configure --help', it contains the following help:
> 
>   --with-openssl          use libcrypto hash routines. Valid ARGs are: 'yes',
>                           'no', 'auto' => use if available, 'optional' => use
>                           if available and warn if not available; default is
>                           'no'
> 
> 
> Perhaps someone unaware of the issue adds this? Should I open a bug
> report on this?

Thanks for pointing that out. I wasn't aware of this until now. This
configure option actually comes directly from the gnulib project. You'll
notice that the default is "no", which is exactly as it should be.

Octave provides some standard hash functions that are built on GPL
compatible functions provided by gnulib. As a side effect of enabling
these gnulib modules, gnulib automatically adds the `--with-openssl`
option to allow the user to specify that the OpenSSL libcrypto functions
should be used instead.

I couldn't find this described or documented anywhere, just had to go
digging through the configuration macros, e.g.

http://git.savannah.gnu.org/cgit/gnulib.git/tree/m4/gl-openssl.m4
http://git.savannah.gnu.org/cgit/gnulib.git/tree/m4/sha1.m4

Cheers,

-- 
mike

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-11  5:56                 ` Mike Miller
@ 2016-08-11  9:58                   ` Mark H Weaver
  0 siblings, 0 replies; 31+ messages in thread
From: Mark H Weaver @ 2016-08-11  9:58 UTC (permalink / raw)
  To: Mike Miller; +Cc: guix-devel, help-octave

Mike Miller <mtmiller@octave.org> writes:

> On Wed, Aug 10, 2016 at 00:28:04 -0400, Mark H Weaver wrote:
>> We should investigate the reason why it failed without OpenSSL.  I would
>> start by repeating the build attempt without OpenSSL, and looking at the
>> resulting config.log to see what went wrong.
>
> Sounds good to me. Let us know what you find out or if there is anything
> we can do to help.

The problem is that "-lssl -lcrypto" is apparently added to the command
line when linking liboctave.  There are no occurrences of "lssl" in the
failed octave build directory.  However, I *did* discover that
libcurl.la contains:

  dependency_libs=' [...] -lssl -lcrypto -lz'

despite the fact that our 'curl' package was built without OpenSSL.  I
guess this is the root of the problem, and that the bug is in 'curl'.

I'm not sure why this problem does not affect more packages.  Perhaps
most packages in Guix that use 'curl' either don't use libtool or
include OpenSSL as an input.  If they didn't already include OpenSSL, I
guess that maybe people "fixed" the problem by adding OpenSSL as an
input, as was done for Octave.

To be continued...

     Mark

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-11  6:26             ` Mike Miller
@ 2016-08-11 15:27               ` Alex Vong
  2016-08-11 17:04                 ` Kei Kebreau
  2016-08-12 11:45                 ` JIT compiling Jordi Gutiérrez Hermoso
  0 siblings, 2 replies; 31+ messages in thread
From: Alex Vong @ 2016-08-11 15:27 UTC (permalink / raw)
  To: Mike Miller; +Cc: Ricardo Wurmus, guix-devel, help-octave, Leo Famulari

Mike Miller <mtmiller@octave.org> writes:

> On Wed, Aug 10, 2016 at 14:43:57 +0800, Alex Vong wrote:
>> I thought it was an optional dependency because when I run
>> `./configure --help', it contains the following help:
>> 
>>   --with-openssl          use libcrypto hash routines. Valid ARGs are: 'yes',
>>                           'no', 'auto' => use if available, 'optional' => use
>>                           if available and warn if not available; default is
>>                           'no'
>> 
>> 
>> Perhaps someone unaware of the issue adds this? Should I open a bug
>> report on this?
>
> Thanks for pointing that out. I wasn't aware of this until now. This
> configure option actually comes directly from the gnulib project. You'll
> notice that the default is "no", which is exactly as it should be.
>
> Octave provides some standard hash functions that are built on GPL
> compatible functions provided by gnulib. As a side effect of enabling
> these gnulib modules, gnulib automatically adds the `--with-openssl`
> option to allow the user to specify that the OpenSSL libcrypto functions
> should be used instead.
>
> I couldn't find this described or documented anywhere, just had to go
> digging through the configuration macros, e.g.
>
> http://git.savannah.gnu.org/cgit/gnulib.git/tree/m4/gl-openssl.m4
> http://git.savannah.gnu.org/cgit/gnulib.git/tree/m4/sha1.m4
>
> Cheers,

I see. Thanks for the explaination. As Mark has pointed out, the problem
seems to be in the curl package.

Finally, some unrelated stuff, I hope octave would have a byte code
interpreter soon. I would suggest to write it in rpython, it seems to be
the easiest way to have jit these days.

Cheers,
Alex

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-11 15:27               ` Alex Vong
@ 2016-08-11 17:04                 ` Kei Kebreau
  2016-08-13 12:37                   ` Alex Vong
  2016-08-12 11:45                 ` JIT compiling Jordi Gutiérrez Hermoso
  1 sibling, 1 reply; 31+ messages in thread
From: Kei Kebreau @ 2016-08-11 17:04 UTC (permalink / raw)
  To: Alex Vong; +Cc: guix-devel, help-octave, Mike Miller

Alex Vong <alexvong1995@gmail.com> writes:

> Mike Miller <mtmiller@octave.org> writes:
>
>> On Wed, Aug 10, 2016 at 14:43:57 +0800, Alex Vong wrote:
>>> I thought it was an optional dependency because when I run
>>> `./configure --help', it contains the following help:
>>> 
>>>   --with-openssl          use libcrypto hash routines. Valid ARGs are: 'yes',
>>>                           'no', 'auto' => use if available, 'optional' => use
>>>                           if available and warn if not available; default is
>>>                           'no'
>>> 
>>> 
>>> Perhaps someone unaware of the issue adds this? Should I open a bug
>>> report on this?
>>
>> Thanks for pointing that out. I wasn't aware of this until now. This
>> configure option actually comes directly from the gnulib project. You'll
>> notice that the default is "no", which is exactly as it should be.
>>
>> Octave provides some standard hash functions that are built on GPL
>> compatible functions provided by gnulib. As a side effect of enabling
>> these gnulib modules, gnulib automatically adds the `--with-openssl`
>> option to allow the user to specify that the OpenSSL libcrypto functions
>> should be used instead.
>>
>> I couldn't find this described or documented anywhere, just had to go
>> digging through the configuration macros, e.g.
>>
>> http://git.savannah.gnu.org/cgit/gnulib.git/tree/m4/gl-openssl.m4
>> http://git.savannah.gnu.org/cgit/gnulib.git/tree/m4/sha1.m4
>>
>> Cheers,
>
> I see. Thanks for the explaination. As Mark has pointed out, the problem
> seems to be in the curl package.
>
> Finally, some unrelated stuff, I hope octave would have a byte code
> interpreter soon. I would suggest to write it in rpython, it seems to be
> the easiest way to have jit these days.
>
> Cheers,
> Alex

IIRC, Octave has experimental JIT support using LLVM.

^ permalink raw reply	[flat|nested] 31+ messages in thread

* JIT compiling
  2016-08-11 15:27               ` Alex Vong
  2016-08-11 17:04                 ` Kei Kebreau
@ 2016-08-12 11:45                 ` Jordi Gutiérrez Hermoso
  2016-08-12 15:08                   ` Sergei Steshenko
  2016-08-13 12:12                   ` Alex Vong
  1 sibling, 2 replies; 31+ messages in thread
From: Jordi Gutiérrez Hermoso @ 2016-08-12 11:45 UTC (permalink / raw)
  To: Alex Vong; +Cc: guix-devel, help-octave, Mike Miller

On Thu, 2016-08-11 at 23:27 +0800, Alex Vong wrote:
> Finally, some unrelated stuff, I hope octave would have a byte code
> interpreter soon. I would suggest to write it in rpython, it seems
> to be the easiest way to have jit these days.

That is a faraway pipe dream. Can you help?

- Jordi G. H.

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: JIT compiling
  2016-08-12 11:45                 ` JIT compiling Jordi Gutiérrez Hermoso
@ 2016-08-12 15:08                   ` Sergei Steshenko
  2016-08-12 16:06                     ` Oliver Heimlich
  2016-08-13 12:12                   ` Alex Vong
  1 sibling, 1 reply; 31+ messages in thread
From: Sergei Steshenko @ 2016-08-12 15:08 UTC (permalink / raw)
  To: Jordi Gutiérrez Hermoso, Alex Vong
  Cc: Ricardo Wurmus, guix-devel@gnu.org, Mike Miller,
	help-octave@gnu.org, Leo Famulari






>________________________________
> From: Jordi Gutiérrez Hermoso <jordigh@octave.org>
>To: Alex Vong <alexvong1995@gmail.com> 
>Cc: Ricardo Wurmus <rekado@elephly.net>; guix-devel@gnu.org; Leo Famulari <leo@famulari.name>; help-octave@gnu.org; Mike Miller <mtmiller@octave.org>
>Sent: Friday, August 12, 2016 2:45 PM
>Subject: JIT compiling
> 
>
>On Thu, 2016-08-11 at 23:27 +0800, Alex Vong wrote:
>> Finally, some unrelated stuff, I hope octave would have a byte code
>> interpreter soon. I would suggest to write it in rpython, it seems
>> to be the easiest way to have jit these days.
>
>That is a faraway pipe dream. Can you help?
>
>- Jordi G. H.
>
>


Julia ( http://julialang.org/ ) quite developed since it's been discussed here. They claim to have close to "C" performance and JIT.

And MIT (no GPL bullshit) license.

--Sergei.

_______________________________________________
Help-octave mailing list
Help-octave@gnu.org
https://lists.gnu.org/mailman/listinfo/help-octave

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: JIT compiling
  2016-08-12 15:08                   ` Sergei Steshenko
@ 2016-08-12 16:06                     ` Oliver Heimlich
  2016-08-13  1:03                       ` Sergei Steshenko
  0 siblings, 1 reply; 31+ messages in thread
From: Oliver Heimlich @ 2016-08-12 16:06 UTC (permalink / raw)
  To: Sergei Steshenko, Jordi Gutiérrez Hermoso, Alex Vong
  Cc: Ricardo Wurmus, guix-devel@gnu.org, Leo Famulari,
	help-octave@gnu.org, Mike Miller

On 12.08.2016 17:08, Sergei Steshenko wrote:
>> ________________________________
>> From: Jordi Gutiérrez Hermoso <jordigh@octave.org>
>> To: Alex Vong <alexvong1995@gmail.com> 
>> Cc: Ricardo Wurmus <rekado@elephly.net>; guix-devel@gnu.org; Leo Famulari <leo@famulari.name>; help-octave@gnu.org; Mike Miller <mtmiller@octave.org>
>> Sent: Friday, August 12, 2016 2:45 PM
>> Subject: JIT compiling
>>
>>
>> On Thu, 2016-08-11 at 23:27 +0800, Alex Vong wrote:
>>> Finally, some unrelated stuff, I hope octave would have a byte code
>>> interpreter soon. I would suggest to write it in rpython, it seems
>>> to be the easiest way to have jit these days.
>>
>> That is a faraway pipe dream. Can you help?
>>
>> - Jordi G. H.
>>
>>
> 
> 
> Julia ( http://julialang.org/ ) quite developed since it's been discussed here. They claim to have close to "C" performance and JIT.
> 

There is a good language introduction available as a talk from JuliaCon:
https://youtu.be/rAxzR7lMGDM

As far as I can see, Julia compiles the code if it can predict the types
of the variables. Otherwise, it is slow. This is explained in the first
part of the talk.

Best
Oliver


_______________________________________________
Help-octave mailing list
Help-octave@gnu.org
https://lists.gnu.org/mailman/listinfo/help-octave

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: JIT compiling
  2016-08-12 16:06                     ` Oliver Heimlich
@ 2016-08-13  1:03                       ` Sergei Steshenko
  2016-08-13 11:48                         ` Alex Vong
  0 siblings, 1 reply; 31+ messages in thread
From: Sergei Steshenko @ 2016-08-13  1:03 UTC (permalink / raw)
  To: Oliver Heimlich, Jordi Gutiérrez Hermoso, Alex Vong
  Cc: guix-devel@gnu.org, Mike Miller, help-octave@gnu.org





----- Original Message -----
> From: Oliver Heimlich <oheim@posteo.de>
> To: Sergei Steshenko <sergstesh@yahoo.com>; Jordi Gutiérrez Hermoso <jordigh@octave.org>; Alex Vong <alexvong1995@gmail.com>
> Cc: Ricardo Wurmus <rekado@elephly.net>; "guix-devel@gnu.org" <guix-devel@gnu.org>; Leo Famulari <leo@famulari.name>; "help-octave@gnu.org" <help-octave@gnu.org>; Mike Miller <mtmiller@octave.org>
> Sent: Friday, August 12, 2016 7:06 PM
> Subject: Re: JIT compiling
> 
> On 12.08.2016 17:08, Sergei Steshenko wrote:
> 
>>>  ________________________________
>>>  From: Jordi Gutiérrez Hermoso <jordigh@octave.org>
>>>  To: Alex Vong <alexvong1995@gmail.com> 
>>>  Cc: Ricardo Wurmus <rekado@elephly.net>; guix-devel@gnu.org; Leo 
> Famulari <leo@famulari.name>; help-octave@gnu.org; Mike Miller 
> <mtmiller@octave.org>
>>>  Sent: Friday, August 12, 2016 2:45 PM
>>>  Subject: JIT compiling
>>> 
>>> 
>>>  On Thu, 2016-08-11 at 23:27 +0800, Alex Vong wrote:
>>>>  Finally, some unrelated stuff, I hope octave would have a byte code
>>>>  interpreter soon. I would suggest to write it in rpython, it seems
>>>>  to be the easiest way to have jit these days.
>>> 
>>>  That is a faraway pipe dream. Can you help?
>>> 
>>>  - Jordi G. H.
>>> 
>>> 
>> 
>> 
>>  Julia ( http://julialang.org/ ) quite developed since it's been 
> discussed here. They claim to have close to "C" performance and JIT.
>> 
> 
> There is a good language introduction available as a talk from JuliaCon:
> https://youtu.be/rAxzR7lMGDM
> 
> As far as I can see, Julia compiles the code if it can predict the types
> of the variables. Otherwise, it is slow. This is explained in the first
> part of the talk.
> 
> Best
> Oliver
> 


If the type can't be predicted, then runtime checks need to be made and the object might have to be recreated. E.g. if 12345678 is a number, it fits a 32 bit integer, and if it is a string, it will need 9 bytes in case of "C" representation.


So the limitation does not look to me like a Julia-specific one.

--Sergei.

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: JIT compiling
  2016-08-13  1:03                       ` Sergei Steshenko
@ 2016-08-13 11:48                         ` Alex Vong
  0 siblings, 0 replies; 31+ messages in thread
From: Alex Vong @ 2016-08-13 11:48 UTC (permalink / raw)
  To: Sergei Steshenko
  Cc: Jordi Gutiérrez Hermoso, help-octave@gnu.org,
	Oliver Heimlich, guix-devel@gnu.org, Mike Miller

Sergei Steshenko <sergstesh@yahoo.com> writes:

> ----- Original Message -----
>> From: Oliver Heimlich <oheim@posteo.de>
>> To: Sergei Steshenko <sergstesh@yahoo.com>; Jordi Gutiérrez Hermoso
>> <jordigh@octave.org>; Alex Vong <alexvong1995@gmail.com>
>> Cc: Ricardo Wurmus <rekado@elephly.net>; "guix-devel@gnu.org"
>> <guix-devel@gnu.org>; Leo Famulari <leo@famulari.name>;
>> "help-octave@gnu.org" <help-octave@gnu.org>; Mike Miller
>> <mtmiller@octave.org>
>> Sent: Friday, August 12, 2016 7:06 PM
>> Subject: Re: JIT compiling
>> 
>> On 12.08.2016 17:08, Sergei Steshenko wrote:
>> 
>>>>  ________________________________
>>>>  From: Jordi Gutiérrez Hermoso <jordigh@octave.org>
>>>>  To: Alex Vong <alexvong1995@gmail.com> 
>>>>  Cc: Ricardo Wurmus <rekado@elephly.net>; guix-devel@gnu.org; Leo 
>> Famulari <leo@famulari.name>; help-octave@gnu.org; Mike Miller 
>> <mtmiller@octave.org>
>>>>  Sent: Friday, August 12, 2016 2:45 PM
>>>>  Subject: JIT compiling
>>>> 
>>>> 
>>>>  On Thu, 2016-08-11 at 23:27 +0800, Alex Vong wrote:
>>>>>  Finally, some unrelated stuff, I hope octave would have a byte code
>>>>>  interpreter soon. I would suggest to write it in rpython, it seems
>>>>>  to be the easiest way to have jit these days.
>>>> 
>>>>  That is a faraway pipe dream. Can you help?
>>>> 
>>>>  - Jordi G. H.
>>>> 
>>>> 
>>> 
>>> 
>>>  Julia ( http://julialang.org/ ) quite developed since it's been 
>> discussed here. They claim to have close to "C" performance and JIT.
>>> 
>> 
>> There is a good language introduction available as a talk from JuliaCon:
>> https://youtu.be/rAxzR7lMGDM
>> 
>> As far as I can see, Julia compiles the code if it can predict the types
>> of the variables. Otherwise, it is slow. This is explained in the first
>> part of the talk.
>> 
>> Best
>> Oliver
>> 
>
>
> If the type can't be predicted, then runtime checks need to be made
> and the object might have to be recreated. E.g. if 12345678 is a
> number, it fits a 32 bit integer, and if it is a string, it will need
> 9 bytes in case of "C" representation.
>
I think in the case of jit, many of the checks can be removed by making
certain assumptions and inserts guards to check those assumptions. If
the assumptions turn out to be false, then the compiled code will be
trashed and available for jitting again.
>
> So the limitation does not look to me like a Julia-specific one.
>
> --Sergei.

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: JIT compiling
  2016-08-12 11:45                 ` JIT compiling Jordi Gutiérrez Hermoso
  2016-08-12 15:08                   ` Sergei Steshenko
@ 2016-08-13 12:12                   ` Alex Vong
  2016-08-14  8:07                     ` Sergei Steshenko
  1 sibling, 1 reply; 31+ messages in thread
From: Alex Vong @ 2016-08-13 12:12 UTC (permalink / raw)
  To: Jordi Gutiérrez Hermoso
  Cc: Ricardo Wurmus, guix-devel, Leo Famulari, help-octave,
	Mike Miller

Jordi Gutiérrez Hermoso <jordigh@octave.org> writes:

> On Thu, 2016-08-11 at 23:27 +0800, Alex Vong wrote:
>> Finally, some unrelated stuff, I hope octave would have a byte code
>> interpreter soon. I would suggest to write it in rpython, it seems
>> to be the easiest way to have jit these days.
>
> That is a faraway pipe dream. Can you help?
>
I think I will be too un-experienced to help, but I am interested in
it. I've always dreamt octave having good anoymous and nested function
support. I think the first step is to prase octave correctly. Is there a
reference on it other than the libinterp code itself?

> - Jordi G. H.

Cheers,
Alex

_______________________________________________
Help-octave mailing list
Help-octave@gnu.org
https://lists.gnu.org/mailman/listinfo/help-octave

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: octave license is incompatible with openssl
  2016-08-11 17:04                 ` Kei Kebreau
@ 2016-08-13 12:37                   ` Alex Vong
  0 siblings, 0 replies; 31+ messages in thread
From: Alex Vong @ 2016-08-13 12:37 UTC (permalink / raw)
  To: Kei Kebreau; +Cc: guix-devel, help-octave, Mike Miller

Kei Kebreau <kei@openmailbox.org> writes:

> Alex Vong <alexvong1995@gmail.com> writes:
>
>> Mike Miller <mtmiller@octave.org> writes:
>>
>>> On Wed, Aug 10, 2016 at 14:43:57 +0800, Alex Vong wrote:
>>>> I thought it was an optional dependency because when I run
>>>> `./configure --help', it contains the following help:
>>>> 
>>>>   --with-openssl          use libcrypto hash routines. Valid ARGs are: 'yes',
>>>>                           'no', 'auto' => use if available, 'optional' => use
>>>>                           if available and warn if not available; default is
>>>>                           'no'
>>>> 
>>>> 
>>>> Perhaps someone unaware of the issue adds this? Should I open a bug
>>>> report on this?
>>>
>>> Thanks for pointing that out. I wasn't aware of this until now. This
>>> configure option actually comes directly from the gnulib project. You'll
>>> notice that the default is "no", which is exactly as it should be.
>>>
>>> Octave provides some standard hash functions that are built on GPL
>>> compatible functions provided by gnulib. As a side effect of enabling
>>> these gnulib modules, gnulib automatically adds the `--with-openssl`
>>> option to allow the user to specify that the OpenSSL libcrypto functions
>>> should be used instead.
>>>
>>> I couldn't find this described or documented anywhere, just had to go
>>> digging through the configuration macros, e.g.
>>>
>>> http://git.savannah.gnu.org/cgit/gnulib.git/tree/m4/gl-openssl.m4
>>> http://git.savannah.gnu.org/cgit/gnulib.git/tree/m4/sha1.m4
>>>
>>> Cheers,
>>
>> I see. Thanks for the explaination. As Mark has pointed out, the problem
>> seems to be in the curl package.
>>
>> Finally, some unrelated stuff, I hope octave would have a byte code
>> interpreter soon. I would suggest to write it in rpython, it seems to be
>> the easiest way to have jit these days.
>>
>> Cheers,
>> Alex
>
> IIRC, Octave has experimental JIT support using LLVM.

Yes, I am aware that octave has an experimental llvm jit, but I heard
that llvm is a quick moving target and the api is not as stable as you
would like. Much energy needed to be devoted to simply keep in sync with
upstream.

Also, writing in restricted python seems more pleasant than c++. The jit
is auto-generated in the sense that you only need to mark when the loop
starts and when the loop stops. Finally, there is even a paper
(understandable to hobbyists) on implementing racket using
rpython[0]. These all looks promising to me.

The really downside is that the translation time is super long (time
takes to build the interpreter), because expensive static analysis needs
to be performed to remove malloc, assertions, inline function
calls... to make the interpreter itself fast enough (not the code it
generates I guess).

[0]: http://homes.soic.indiana.edu/samth/pycket-draft.pdf

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: JIT compiling
  2016-08-13 12:12                   ` Alex Vong
@ 2016-08-14  8:07                     ` Sergei Steshenko
  2016-08-14 10:21                       ` Francesco Potortì
  2016-08-14 20:20                       ` Jordi Gutiérrez Hermoso
  0 siblings, 2 replies; 31+ messages in thread
From: Sergei Steshenko @ 2016-08-14  8:07 UTC (permalink / raw)
  To: Alex Vong, Jordi Gutiérrez Hermoso
  Cc: guix-devel@gnu.org, Mike Miller, help-octave@gnu.org





----- Original Message -----
> From: Alex Vong <alexvong1995@gmail.com>
> To: Jordi Gutiérrez Hermoso <jordigh@octave.org>
> Cc: Ricardo Wurmus <rekado@elephly.net>; guix-devel@gnu.org; Leo Famulari <leo@famulari.name>; help-octave@gnu.org; Mike Miller <mtmiller@octave.org>
> Sent: Saturday, August 13, 2016 3:12 PM
> Subject: Re: JIT compiling
> 
> Jordi Gutiérrez Hermoso <jordigh@octave.org> writes:
> 
>>  On Thu, 2016-08-11 at 23:27 +0800, Alex Vong wrote:
>>>  Finally, some unrelated stuff, I hope octave would have a byte code
>>>  interpreter soon. I would suggest to write it in rpython, it seems
>>>  to be the easiest way to have jit these days.
>> 
>>  That is a faraway pipe dream. Can you help?
>> 
> I think I will be too un-experienced to help, but I am interested in
> it. I've always dreamt octave having good anoymous and nested function
> support. I think the first step is to prase octave correctly. Is there a
> reference on it other than the libinterp code itself?
> 
>>  - Jordi G. H.
> 
> Cheers,
> 
> Alex
> 
> _______________________________________________
> Help-octave mailing list
> Help-octave@gnu.org
> https://lists.gnu.org/mailman/listinfo/help-octave

> 


"I've always dreamt octave having good anoymous and nested function

support" - then switch to Perl -> PDL (http://pdl.perl.org/) or OCaml (if you want type strictness and near "C" performance).

...

When Julia language was first discussed here, I suggested to write an Octave -> Julia translator, but I think it will NEVER be done for ideological (fanatic support of false/fake GPL freedom) reasons.


The rationale was to get the best of the two worlds - speed of Julia and packages available for Octave - in addition to what already exists for Julia.

--Sergei.

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: JIT compiling
  2016-08-14  8:07                     ` Sergei Steshenko
@ 2016-08-14 10:21                       ` Francesco Potortì
  2016-08-14 20:20                       ` Jordi Gutiérrez Hermoso
  1 sibling, 0 replies; 31+ messages in thread
From: Francesco Potortì @ 2016-08-14 10:21 UTC (permalink / raw)
  To: Sergei Steshenko
  Cc: Alex Vong, Leo Famulari, Ricardo Wurmus, help-octave@gnu.org,
	guix-devel@gnu.org, Mike Miller

>When Julia language was first discussed here, I suggested to write an
>Octave -> Julia translator, but I think it will NEVER be done for
>ideological (fanatic support of false/fake GPL freedom) reasons.

Sergei,

you had stopped for a while insulting the Octave developers and the free
software community.  That was a good thing.  However, this is your
second message in few days that brings back your old habits.  You can do
better.  Please do.

-- 
Francesco Potortì (ricercatore)        Voice:  +39.050.621.3058
ISTI - Area della ricerca CNR          Mobile: +39.348.8283.107
via G. Moruzzi 1, I-56124 Pisa         Skype:  wnlabisti
(entrance 20, 1st floor, room C71)     Web:    http://fly.isti.cnr.it


_______________________________________________
Help-octave mailing list
Help-octave@gnu.org
https://lists.gnu.org/mailman/listinfo/help-octave

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: JIT compiling
  2016-08-14  8:07                     ` Sergei Steshenko
  2016-08-14 10:21                       ` Francesco Potortì
@ 2016-08-14 20:20                       ` Jordi Gutiérrez Hermoso
  1 sibling, 0 replies; 31+ messages in thread
From: Jordi Gutiérrez Hermoso @ 2016-08-14 20:20 UTC (permalink / raw)
  To: Sergei Steshenko; +Cc: help-octave@gnu.org, guix-devel@gnu.org, Mike Miller

Hi, Sergei. Haven't spoken in a while.

On Sun, 2016-08-14 at 08:07 +0000, Sergei Steshenko wrote:

> When Julia language was first discussed here, I suggested to write
> an Octave -> Julia translator, but I think it will NEVER be done for
> ideological (fanatic support of false/fake GPL freedom) reasons.

The complete Julia package is GPL'ed because Julia uses popular GPL
libraries such as FFTW, Suitesparse, and readline. We're on good terms
with the Julia developers and they do not have a problem with the GPL.

The reason the Octave -> Julia translator hasn't happened is because
it's not a problem that's significantly different than compiling
Octave into any other language that has a type declarations.

- Jordi G. H.

^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2016-08-14 20:21 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-04 16:35 octave license is incompatible with openssl Alex Vong
2016-08-04 17:10 ` John Darrington
2016-08-04 17:20   ` ng0
2016-08-05  9:08     ` Alex Vong
2016-08-05  9:03   ` Alex Vong
2016-08-05 11:43     ` Mathieu Lirzin
2016-08-05  6:50 ` Ricardo Wurmus
2016-08-06  1:52   ` Alex Vong
2016-08-08 20:00     ` Leo Famulari
2016-08-09 16:00       ` Alex Vong
2016-08-09 17:27         ` Mike Miller
2016-08-09 18:30           ` Ricardo Wurmus
2016-08-09 21:33             ` kei
2016-08-10  4:28               ` Mark H Weaver
2016-08-11  5:56                 ` Mike Miller
2016-08-11  9:58                   ` Mark H Weaver
2016-08-10  4:23           ` Mark H Weaver
2016-08-10  6:43           ` Alex Vong
2016-08-11  6:26             ` Mike Miller
2016-08-11 15:27               ` Alex Vong
2016-08-11 17:04                 ` Kei Kebreau
2016-08-13 12:37                   ` Alex Vong
2016-08-12 11:45                 ` JIT compiling Jordi Gutiérrez Hermoso
2016-08-12 15:08                   ` Sergei Steshenko
2016-08-12 16:06                     ` Oliver Heimlich
2016-08-13  1:03                       ` Sergei Steshenko
2016-08-13 11:48                         ` Alex Vong
2016-08-13 12:12                   ` Alex Vong
2016-08-14  8:07                     ` Sergei Steshenko
2016-08-14 10:21                       ` Francesco Potortì
2016-08-14 20:20                       ` Jordi Gutiérrez Hermoso

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).