Comments (7)
I want to submit it to MELPA first, since it's easier, but eventually I'll submit to both.
from elisp-tree-sitter.
@ubolonton why is it easier?
OH, I see why. https://git.savannah.gnu.org/cgit/emacs/elpa.git/plain/README
a package author would depend on some Emacs maintainer to push through any package to GNU ELPA, having those extra steps makes things hard indeed.
from elisp-tree-sitter.
@ubolonton coming back to this, I did all the paper work to give the copyright assignment to the FSF so this project can be included in GNU ELPA. What about you? People that make non-trivial contributions should make their paper work so later pushing this to GNU ELPA becomes legally trivial.
from elisp-tree-sitter.
This seems like the kind of project that ought to be included in Emacs core once it's stabilized; the last thing Emacs needs is a deeper chasm between the OOB and the batteries-included experiences. But I've heard that the Rust toolchain is distributed under terms incompatible with Emacs' license. If that's the case, is it still eligible for Elpa?
People that make non-trivial contributions should make their paper work so later pushing this to GNU ELPA becomes legally trivial.
I heard the other day that use-package
being merged into core is presently stalled because they're waiting on only a couple of people who haven't submitted their papers. So it's better to enforce this kind of thing sooner rather than later for Elpa.
from elisp-tree-sitter.
Putting aside the need for contributors to sign the papers, the Emacs maintainers are averse to stuff released under "pushover" licenses. This is a problem since Rust requires LLVM, which is released under one such license.
It seems to me that including this in Elpa would, at minimum, require that we develop our own clean-room + non-Rust tool for compiling the grammars, since tree-sitter-cli
is written in Rust. It might also be necessary to write our own highlighting queries since we don't presently own the copyright assignment to the highlighting queries in this repo. I am not a legal expert, so I can't be sure of this. What do you think @ubolonton @shackra?
from elisp-tree-sitter.
Putting aside the need for contributors to sign the papers, the Emacs maintainers are averse to stuff released under "pushover" licenses. This is a problem since Rust requires LLVM, which is released under one such license.
It seems to me that including this in Elpa would, at minimum, require that we develop our own clean-room + non-Rust tool for compiling the grammars, since
tree-sitter-cli
is written in Rust. It might also be necessary to write our own grammars since we don't presently own the copyright assignment to the grammars in this repo. I am not a legal expert, so I can't be sure of this. What do you think @ubolonton @shackra?
We aren't releasing Rust to Elpa or anything, anything compiled with Rust —or LLVM for that matter— don't inherit its licensing anymore that a piece of code compiled with GCC has.
I'm not a lawyer neither, but that's how I intuitively see it.
from elisp-tree-sitter.
anything compiled with Rust —or LLVM for that matter— don't inherit its licensing anymore that a piece of code compiled with GCC has.
Of the two concerns I brought up in my last post, the first one (which is what I think you were responding to here) was more of a political dispute among the maintainers than a legal dispute (which is what my second concern was, though having to write our own queries isn't necessarily that bad)---I don't disagree that LLVM-compiled stuff need not be released under the same license as LLVM itself. There shouldn't be a legal reason that the FSF cannot accept an emacs-tree-sitter
that uses Rust.
I suspect that what some of the Emacs maintainers fear is that by requiring (say) LLVM in core Emacs, they are promoting software released under pushover licenses, which has the effect of indirectly helping anyone who wants to snarf LLVM code for their own proprietary software. Whenever this hypothetical Emacs exposes an LLVM-related bug, there is likely to be someone who reports it upstream and helps the LLVM project, as well as those who use its code in proprietary stuff. The FSF seems to view this as a net loss for freedom.
from elisp-tree-sitter.
Related Issues (20)
- Doesn't highlight Rust documentation code examples
- Swift support, revisited. HOT 1
- wrong ELF class: ELFCLASS64 on RPI4 HOT 1
- `Unsupported Operating System: OpenBSD` HOT 7
- bin/build not work on linux because builtin cd will output the folder name. HOT 1
- tree-sitter languages download of windows binaries failed with error
- tsc-lang-abi-too-new when installing new language HOT 11
- Crash when large file contains an ERROR node
- Invalid version syntax: ‘[email protected] HOT 2
- Colors look wrong in haskell mode. HOT 3
- `tree-sitter-debug-mode` is broken
- Crash when loading one particular Markdown file HOT 7
- Reporting Vulnerability
- (ts-fold-indicators-mode) not working when running emacs from terminal
- How do I add a new grammer to this mode? HOT 2
- why the submodule langs pointed to an old commit?
- tree-sitter-hl-mode doesn't honor the :extend font face in single line comments HOT 1
- request to rebuild tsc-dyn.so with older Linux OS
- Provide `aarch64` build of `tsc-dyn.so` for AArch64 Linux
- Repetitions and Predicate Problems
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from elisp-tree-sitter.