Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate company-ghc into ghc-mod #7

Open
DanielG opened this issue Aug 24, 2014 · 11 comments
Open

Integrate company-ghc into ghc-mod #7

DanielG opened this issue Aug 24, 2014 · 11 comments

Comments

@DanielG
Copy link

DanielG commented Aug 24, 2014

Hey,

this looks really awesome, adding a company backend for ghc-mod has been on my TODO list for ages now, looks like you did it better than I could have if i tried ;) I'm one of the maintainers of ghc-mod and I was wondering if you might want this to be merged into ghc-mod itself? We're about to do some major elisp code cleanup so this might be just the right time to do it if you want to.

@iquiw
Copy link
Owner

iquiw commented Aug 24, 2014

Hi,

Since company-ghc depends on ghc-mod elisp internal, I think it is better to integrate it into ghc-mod. (it can be easily broken by ghc-mod change)

I have several concerns (rather random thoughts) though.

  • Licence. company-ghc license is GPLv3, while ghc-mod is BSD3. Since I wrote the whole code, I can change the license. But I'm not sure it is right thing for Emacs community. (My favorite is MIT...)
  • I have plan to add some other features to company-ghc, so I will update company-ghc constantly for the near future. Some of them are not related to ghc-mod.
  • It adds dependencies (company-mode, ecukes, etc.) to ghc-mod. (or they can be optional dependency?)

I'd like to hear comments on the above from ghc-mod maintainers.
Aside from the above, I am glad to do it in general.

Thanks.

@DanielG
Copy link
Author

DanielG commented Aug 24, 2014

From: Iku Iwasa notifications@github.com
Subject: Re: [company-ghc] Integrate company-ghc into ghc-mod (#7)
Date: Sun, 24 Aug 2014 08:07:24 -0700

Hi,

Since company-ghc depends on ghc-mod elisp internal, I think it is
better to integrate it into ghc-mod. (it can be easily broken by
ghc-mod change)

Yeah, that's one of the reasons I'd like to merge it :)

I have several concerns (rather random thoughts) though.

  • Licence. company-ghc license is GPLv3, while ghc-mod is BSD3. Since
    I wrote the whole code, I can change the license. But I'm not sure
    it is right thing for Emacs community. (My favorite is MIT...)

I for one prefer GPL3+ over ghc-mod's current license but I'm not the
original author so I just went with it. I think company-ghc's license
shouldn't be a problem though. Once we merge it the license of the
elisp bits simply becomes BSD3/GPL3+ so it's distributable only under
the GPL3+ but the pre-existing code remains BSD3 and the haskell bits
stay BSD3 likewise.

  • I have plan to add some other features to company-ghc, so I will
    update company-ghc constantly for the near future. Some of them are
    not related to ghc-mod.

You can simply fork ghc-mod and work on your changes is a branch and
send us a pull request whenever it's ready. Unless you want direct
push access to the main repo? I'm sure we can figure something out.

  • It adds dependencies (company-mode, ecukes, etc.) to ghc-mod. (or
    they can be optional dependency?)

Cask/ecukes look really cool actually I was looking for something to
test ghc-mod's elisp bits properly anyways. I think this wouldn't be a
problem. It'd be awesome if you could help us make ghc-mod work with
Cask actually :)

I'd like to hear comments on the above from ghc-mod maintainers.

I'm one of the co-maintainers. @kazu-yamamoto, the original author and
long time maintainer is on vacation ATM.

Aside from the above, I am glad to do it in general.

Awesome :)

@kazu-yamamoto
Copy link

I have several concerns (rather random thoughts) though.

  • Licence. company-ghc license is GPLv3, while ghc-mod is BSD3. Since
    I wrote the whole code, I can change the license. But I'm not sure
    it is right thing for Emacs community. (My favorite is MIT...)

I for one prefer GPL3+ over ghc-mod's current license but I'm not the
original author so I just went with it. I think company-ghc's license
shouldn't be a problem though. Once we merge it the license of the
elisp bits simply becomes BSD3/GPL3+ so it's distributable only under
the GPL3+ but the pre-existing code remains BSD3 and the haskell bits
stay BSD3 likewise.

GNU thinks BSD is compatible with GPL. So, changing license from
GHC to BSD is not a problem for GNU community. As you may know, I
have maintained Mew (http://mew.org/) for many years and its
license is BSD. I don't receive any reports about license
problems.

Note that GPL is not compatible with BSD. So, changing license
from BSD to GPL would cause problems.

@DanielG
Copy link
Author

DanielG commented Aug 24, 2014

From: Kazu Yamamoto notifications@github.com
Subject: Re: [company-ghc] Integrate company-ghc into ghc-mod (#7)
Date: Sun, 24 Aug 2014 09:07:38 -0700

GNU thinks BSD is compatible with GPL. So, changing license from
GHC to BSD is not a problem for GNU community.

I don't quite understand what you mean by "changing license from GHC
to BSD". Did you mean "GPL" instead of "GHC"?

As you may know, I have maintained Mew (http://mew.org/) for many
years and its license is BSD. I don't receive any reports about
license problems.

Note that GPL is not compatible with BSD. So, changing license
from BSD to GPL would cause problems.

That's not quite true. We don't have to change the license of the code
that already exists in elisp/. If we add ghc-copany.el (or whatever
we end up calling company-ghc) which is under GPL3+ to the other code
in that directory the whole of it would be distributable under GPL3+
only but the individual parts would be distributable under BSD3 ||
GPL3+ depending on which file.

Therefore there is no license compatibility problem. If anyone wants
to contribute elisp code to ghc-mod under BSD3 they can, likewise if
someone wants to contribute code under a GPLx+ that's fine as well.

I for one would like my contributions (at least those concerning
elisp/) to be covered under the GPL3+ as I don't take fancy in
others (ab)using my work for things that don't conform to the free
software philosophy.

@iquiw
Copy link
Owner

iquiw commented Aug 25, 2014

About license, it is OK for me either to change it to BSD3 or to remain GPLv3.

You can simply fork ghc-mod and work on your changes is a branch and
send us a pull request whenever it's ready.

OK, it's fine.

Cask/ecukes look really cool actually I was looking for something to
test ghc-mod's elisp bits properly anyways. I think this wouldn't be a
problem. It'd be awesome if you could help us make ghc-mod work with
Cask actually :)

My Cask knowledge is very limited (just to prepare simple Cask file), but I am willing to help if any.
The limitation of Cask itself is it does not support Windows. (AFAIK. The situation might be changed though)
About ecukes, I think it is very nice tool to test features on Emacs.

@kazu-yamamoto
Copy link

Please do s/GHC/GPL/ in my comment.

@kazu-yamamoto
Copy link

That's not quite true. We don't have to change the license of the code that already exists in elisp/. If we add ghc-copany.el (or whatever we end up calling company-ghc) which is under GPL3+ to the other code in that directory the whole of it would be distributable under GPL3+ only but the individual parts would be distributable under BSD3 || GPL3+ depending on which file.

BSD license allows to distribute the code without its source code opened but GPL prohibits that. I don't think it will be a real problem for ghc-mod. But it is a common real problem of GPL.

@DanielG
Copy link
Author

DanielG commented Aug 26, 2014

Let's continue the GPL vs BSD holy wars somewhere else ;)

@kazu-yamamoto
Copy link

I can accept the situation where each file has its own license. But how to implement it? Should each file include its license in the end of the file?

@kazu-yamamoto
Copy link

@iquiw If you wish, I would give access right to the ghc-mod repository.

@iquiw
Copy link
Owner

iquiw commented Aug 30, 2014

If you wish, I would give access right to the ghc-mod repository.

@kazu-yamamoto I will request it if the need comes.Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants