iquiw / company-ghc

Company-mode completion back-end for haskell-mode via ghc-mod
125 stars 6 forks source link

Integrate company-ghc into ghc-mod #7

Open DanielG opened 10 years ago

DanielG commented 10 years ago

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 commented 10 years ago

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.

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 commented 10 years ago

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 commented 10 years ago

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 commented 10 years ago

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 commented 10 years ago

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 commented 10 years ago

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

kazu-yamamoto commented 10 years ago

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 commented 10 years ago

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

kazu-yamamoto commented 10 years ago

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 commented 10 years ago

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

iquiw commented 9 years ago

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.