Message ID | ea588a8f8429862ade9647a3b96fbebd25f32a1b.1643720048.git.luishenriquegh2701@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | [bug#53523,v2,1/2] gnu: Add tree-sitter. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
Luis Henrique Gomes Higino schreef op di 01-02-2022 om 10:04 [-0300]: > + (add-after 'unpack 'fix-hardcoded-paths > + (lambda _ > + (substitute* "Makefile" > + (("/usr/local") (assoc-ref %outputs "out")))))) %outputs and friends are being phased out, use G-exps instead: (list #:phases #~(modify-phases ... (add-after 'unpack ... (lambda _ (substitute* "Makefile" (("/usr/local") #$output)))) [...]) [...]) > + #:tests? #f Why are they disabled? > + #:make-flags > + (list (string-append "prefix=" > + (assoc-ref %outputs "out")) Likewise (G-exps). > + (string-append "CC=" > + ,(cc-for-target))))) If G-exps are used, ',' needs to be replaced by #$. Greetings, Maxime.
Luis Henrique Gomes Higino schreef op di 01-02-2022 om 10:04 [-0300]: > + (substitute* "Makefile" > + (("/usr/local") (assoc-ref %outputs "out")))))) Is this necessary? The Makefile does 'PREFIX ?= /usr/local', so it would seem to me that overriding PREFIX by setting #:make-flags appropriately should be sufficient. Greetings, Maxime.
Luis Henrique Gomes Higino schreef op di 01-02-2022 om 10:04 [-0300]: > + (uri (git-reference > + (url "https://github.com/tree-sitter/tree-sitter") > + (commit (string-append "v" version)))) tree-sitter is bundling some parts of ICU (https://github.com/tree-sitter/tree-sitter/tree/master/lib/src/unicode), can they be unbundled? Greetings, Maxime.
Luis Henrique Gomes Higino schreef op di 01-02-2022 om 10:04 [-0300]: > + (list (string-append "prefix=" > + (assoc-ref %outputs "out")) The Makefile has a 'PREFIX' variable, not a 'prefix' variable, so this doesn't seem to have any effect? Greetings, Maxime
Maxime Devos <maximedevos@telenet.be> writes: > Luis Henrique Gomes Higino schreef op di 01-02-2022 om 10:04 > [-0300]: > >> + #:tests? #f > > Why are they disabled? > tree-sitter's test suite depends on downloading additional grammars, so I found it easier to just disable testing. If you think tests should be added as an additional origin field, I can try doing it.
Maxime Devos <maximedevos@telenet.be> writes: > Luis Henrique Gomes Higino schreef op di 01-02-2022 om 10:04 > [-0300]: >> + (substitute* "Makefile" >> + (("/usr/local") (assoc-ref %outputs >> "out")))))) > > Is this necessary? The Makefile does 'PREFIX ?= /usr/local', so > it > would seem to me that overriding PREFIX by setting #:make-flags > appropriately should be sufficient. > You're right, I was using "prefix" on #:make-flags when it should be "PREFIX", thanks for pointing it out!
Luis Henrique Gomes Higino schreef op za 05-02-2022 om 15:17 [-0300]: > Maxime Devos <maximedevos@telenet.be> writes: > > > Luis Henrique Gomes Higino schreef op di 01-02-2022 om 10:04 > > [-0300]: > > > > > + #:tests? #f > > > > Why are they disabled? > > > > tree-sitter's test suite depends on downloading additional > grammars, so I found it easier to just disable testing. If you > think tests should be added as an additional origin field, I can > try doing it. If you figure out how to eliminate the downloads, great. If it's too complicated, #:tests? #f could be acceptable, though it deserves a comment in the source code. Greetings, Maxime.
Maxime Devos <maximedevos@telenet.be> writes: > [[PGP Signed Part:Undecided]] > Luis Henrique Gomes Higino schreef op di 01-02-2022 om 10:04 > [-0300]: > > tree-sitter is bundling some parts of ICU > (https://github.com/tree-sitter/tree-sitter/tree/master/lib/src/unicode), > can they be unbundled? > I managed to remove the "src/unicode" directory with an origin snippet and, after some patching through `substitute*`, I have a working build again. I'll be sending the new patch series soon. Thanks for your expressive feedback Maxime, learned a lot about Guix today :D.
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 2c5f5de719..9273a8f10b 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2021 Leo Famulari <leo@famulari.name> ;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2021 Calum Irwin <calumirwin1@gmail.com> +;;; Copyright © 2022 Luis Henrique Gomes Higino <luishenriquegh2701@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1165,3 +1166,47 @@ (define-public virtaal provided by the Translate Toolkit, including XLIFF and PO.") (home-page "https://virtaal.translatehouse.org/") (license license:gpl2+))) + +(define-public tree-sitter + (package + (name "tree-sitter") + (version "0.20.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tree-sitter/tree-sitter") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1yldgdbf3l5l4ki52abdf81nwkcbvg219gwr3ydcjwfsg7hf7zhz")))) + (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'fix-hardcoded-paths + (lambda _ + (substitute* "Makefile" + (("/usr/local") (assoc-ref %outputs "out")))))) + #:tests? #f + #:make-flags + (list (string-append "prefix=" + (assoc-ref %outputs "out")) + (string-append "CC=" + ,(cc-for-target))))) + (home-page "https://tree-sitter.github.io/tree-sitter/") + (synopsis "Incremental parsing system for programming tools") + (description + "Tree-sitter is a parser generator tool and an incremental parsing +library. It can build a concrete syntax tree for a source file and efficiently +update the syntax tree as the source file is edited. Tree-sitter aims to be: + +@itemize +@item General enough to parse any programming language +@item Fast enough to parse on every keystroke in a text editor +@item Robust enough to provide useful results even in the presence of syntax errors +@item Dependency-free so that the runtime library (which is written in pure C) +can be embedded in any application +@end itemize +") + (license license:expat)))