• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r4wp

[#Red] Red language group

Kaj
16-Oct-2012
[2802]
The problem is that everyone compiling a Red program would have to 
include the licence with it when distributing
BrianH
16-Oct-2012
[2803]
Not with it, they just have to provide it somewhere the recipient 
can get it. The NOTICE thing in the Apache license is weird though.
Kaj
16-Oct-2012
[2804]
Yes, with it, or in it
BrianH
16-Oct-2012
[2805]
No, just "given". And the requirement to provide copyright and license 
notices only applies to source distribution.
Kaj
16-Oct-2012
[2806]
That's not what you said on the blog. Can you quote that from the 
Apache licence?
BrianH
16-Oct-2012
[2807x3]
I clarified later. I would have posted the license link except for 
the sman filter. http://www.apache.org/licenses/LICENSE-2.0.html
It doesn't say that the license must be included with the work, it 
just says that "You must give any other recipients of the Work or 
Derivative Works a copy of this License", it doesn't say how.
There are App Store apps that include a reference to the license 
in their store descriptions, without including them in their apps. 
It can be done.
Kaj
16-Oct-2012
[2810]
Sure, but if you don't include the licence and don't code into the 
program where to get it, you're not "giving" it at all
BrianH
16-Oct-2012
[2811]
If I put a link on my web site then I'm giving it. I don't have to 
include it, just give it. With BSD and MIT licenses you have to include 
it though.
Kaj
16-Oct-2012
[2812x4]
When you distribute your REBOL program now, you just dump the script 
somewhere, on a web site or in an email or in AltME. To match that 
with Red, you don't want to have to give a licence at all
The length ot the text that you have to manage is immaterial. It 
doesn't matter if you have to manage a few lines of notice or a page 
of the full licence; you just don't want to have to think about it 
for every little progam
The Apache licence was written for a complete web server, the GPL 
is used for complete kernels
It's comparable with the runtime code that GCC compiles into a program 
binary
BrianH
16-Oct-2012
[2816]
That has a special linking exception, actually.
Kaj
16-Oct-2012
[2817]
Exactly, for the runtime code. Like Red has the BSL
BrianH
16-Oct-2012
[2818x2]
Is there something like the BSL that has Apache's patent grants? 
Because (given that I'm in the US) patents are a bigger issue for 
me.
I'll ask on the blog.
Kaj
16-Oct-2012
[2820]
Yes, that would be good. I imagine it would be easy to add an exception 
to the Apache licence
Gabriele
17-Oct-2012
[2821]
There is no such thing as "not having to provide a license". If a 
license is not provided, then the code cannot be (legally) used.
DocKimbel
17-Oct-2012
[2822]
BrianH asked: "Was the BSL chosen because it allows you to distribute 
a binary without requiring that you distribute the license, unlike 
MIT and almost all other open source licenses?"


With the sole 3-clause BSD, users would need to provide a copy of 
the license with each compiled program, because of the runtime code 
included. So to avoid that, we chose to publish the runtime parts 
of Red and Red/System, under the more permissive BSL terms. The binaries 
that include the compilers (currently that would mean encapped version 
of Red and Red/System compilers) are still under BSD.


When Red will be self-hosted, it will include a JIT-compiler that 
will need to be released under also BSL or similar terms.
Kaj
17-Oct-2012
[2823x4]
Gabriele, it's not about the code not having a licence, it's about 
not having to provide it. If the licence doesn't require physically 
including it, it's implied
Then there's also the class of unlicensed code. It used to be that 
things were sold, not licensed. Software wanted to put that on its 
head, but other things are still simply sold, and so can software
Then there's software that doesn't even need to be bought. SQLite 
is released as public domain, so it doesn't need a licence nor a 
purchase, excepting countries that outlawed the concept of public 
domain
In the future, we will have public domain software because the copyright 
term has run out
BrianH
17-Oct-2012
[2827x2]
Or rather, our grandchildren might, barring further extensions of 
the copyright terms. I suppose that Ada Lovelace's work and maybe 
Jaquard loom programs have fallen into the public domain, but the 
rest of the public domain code was released to the public domain 
explicitly. Almost the entire history of computing is more recent 
than Steamboat Willy.
Doc, would you consider it sufficient to have a license that doesn't 
require that the license be included with (like MIT code) or distributed 
with (like BSD code) the product? The Apache license only requires 
that the license be given to the recipient - it hoesn't specify how 
- and it doesn't even require a copyright reference be included unless 
the product is distributed in source form. I'm just trying to determine 
the extent that you'll be able to include Apache-licensed code in 
Red, or how much this factor matters to you.
Andreas
17-Oct-2012
[2829]
The BSL was specifically chosen so that anyone just reading the license 
text will never even have to worry about it.
DocKimbel
17-Oct-2012
[2830]
I'm perfectly fine with the current BSD/BSL licensing model we use 
for Red. I don't see the need for any change there for now.


I'm not sure what you mean precisely with "product". I don't see 
why third-parties redistributing the current Red compilers would 
have problem distributing a copy of the BSD license with them. For 
end-user binaries, users have no obligations to give a copyright 
reference or distribute a copy of the license.


If you are wondering about including possible future R3 code parts 
under APL-2 in Red codebase, I see no problem with that so far (as 
long as they are separate files or modules, we don't want to start 
having several licenses per file).
Kaj
17-Oct-2012
[2831x2]
Brian, where do you get that the Apache licence doesn't require a 
copyright reference be included unless the product is distributed 
in source form?
Also, Apache is incompatible with GPL 2. Mixing Apache into the Red 
runtime would make it illegal to use GPL 2 libraries
Andreas
17-Oct-2012
[2833x3]
(At least if you follow the FSF's interpretation.) Any particular 
library you are thinking about, or is that hypothetical?
As in my opinion, GPLv2-only libraries are a hostile mess I'd avoid 
in any case. Luckily I don't think I have come across any.
(readline was GPLv1 and then GPLv2 and so "GPLv2-only" until the 
GPLv3 came to be, come to think of it.)
BrianH
17-Oct-2012
[2836x3]
By "the product" I meant something that you or your users are distributing 
- that's why I wasn't specific.
Kaj, clause 4.3: "You must retain, in the Source form of any Derivative 
Works that You distribute, all copyright, patent, trademark, and 
attribution notices from the Source form of the Work, excluding those 
notices that do not pertain to any part of the Derivative Works"


It's the only place in the distribution section where they specifically 
mention Source form rather than Source or Binary, and that's the 
only clause that requires copyright or other notices be retained. 
Except for that weird NOTICE file requirement, of course.
Doc, good to hear that you think Apache code would be OK, even if 
it's in separated files. I'd like to help out with both projects 
:)
Kaj
18-Oct-2012
[2839x4]
Quite a few media codecs are under GPL. If you would use things such 
as FFMPEG, the licence of the codec plug-ins would leak into Red 
through the plug-in framework. I haven't checked, but since those 
codecs have a long history, it's more likely that they're GPL 2 than 
3
Also, when you try to build an operating system with Red, you'd get 
into GPL 2 territory in kernel space, and you'd have a problem with 
the many GPL 2 drivers. The media codecs and some networking protocols 
mirror that situation in user space
Brian, as you noted before, "You must give any other recipients of 
the Work or Derivative Works a copy of this License" does not make 
a distinction between source and binary forms. That means that if 
you compile Apache into a Red program, you need to give a copy of 
the licence when you give the program to someone

Work" shall mean the work of authorship, whether in Source or Object 
form, made available under the License, as indicated by a copyright 
notice that is included in or attached to the work (an example is 
provided in the Appendix below)."
BrianH
18-Oct-2012
[2843]
Let's not talk about this further in the Red group.
Kaj
18-Oct-2012
[2844x5]
I'm not following the Licensing group anymore. I have work to do
Couldn't help noticing in the last checkin:
type: either dt/value = TYPE_DATATYPE [
    TYPE_DATATYPE
][ 
    dt/value
]
Isn't that equivalent to
type: dt/value
DocKimbel
18-Oct-2012
[2849]
Yep :) I've changed those lines so many times today, that my mind 
should have blocked from reading them anymore. ;-)
Kaj
18-Oct-2012
[2850]
:-)
DocKimbel
18-Oct-2012
[2851]
It was a bit painful commit anyway, as the internal API is not yet 
fully stabilized and to do it right, I would need to fully define 
the public runtime API first, but that would delay the 0.3.0 way 
too much, so we'll deal with that later.


What I mean by "public runtime API", is the Red API exposed to Red/System 
and to other host languages loading Red as a library. I'm still uncertain 
if such public API can be just some internal exposed or will need 
a thin layer of wrappers to make it handier (and in some cases, safer) 
to use. 


The R3 extension isolation model is too strong for my taste and makes 
the extensions harder to write than they should. I'm also uncertain 
if this model was stricly motivated by providing the safest possible 
interface with the core or, if the willing to keep the core internals 
as secret as possible was also playing a big part in this model choice.


Once the `dyn-lib-emitter` branch merged, I plan to study the Lua 
(and others) public API, to see if and how we can do better for Red. 
I already have a rough idea of how it should look like, I just need 
to refine it.