unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Pierre Langlois <pierre.langlois@gmx.com>
To: Luis Henrique Gomes Higino <luishenriquegh2701@gmail.com>
Cc: Pierre Langlois <pierre.langlois@gmx.com>, 49946@debbugs.gnu.org
Subject: [bug#49946] [WIP PATCH v3 00/26] gnu: Add tree-sitter for emacs (and neovim as well?).
Date: Wed, 09 Mar 2022 13:46:29 +0000	[thread overview]
Message-ID: <87sfrrnpme.fsf@gmx.com> (raw)
In-Reply-To: <87lexl1goc.fsf@gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 3952 bytes --]

Hi Luis,

Luis Henrique Gomes Higino <luishenriquegh2701@gmail.com> writes:

> Hi Guix, Hi Pierre,
>
> I apologize for my delay, the last few weeks were quite busy :-/.

No worries! :-).

>
> Pierre Langlois <pierre.langlois@gmx.com> writes:
>
>> I'm sharing it early as a WIP first, as I just noticed the other day
>> that Luis also contributed a patches for tree-sitter for neovim[0]. The
>> series I have here is quite a lot bigger though so I'm happy to rebase
>> it on top of yours, Luis :-). The package I had for tree-sitter looks
>> basically the same, I would then move it to a new file with all
>> tree-sitter related packages, if you're happy with that.
>
> That's OK by me!
>
>> So I'm wondering, are these tree-sitter grammar packages also useful for
>> the neovim package for tree-sitter?
>
> I'm not exactly sure about this. Currently, most Neovim users install their
> grammars through the installer included in
> https://github.com/nvim-treesitter/nvim-treesitter. That ensures 
> the user gets the version that is ABI compatible with nvim-treesitter. That
> makes me uncertain if we could use the same grammar packages for Neovim and
> Emacs, at least for now.

I see, I suppose for the moment we're not packaging nvim-treesitter so
we don't have to concern ourselves with how language grammars are
delivered to users.

In the future it might be cool to package it, out of curiosity I took a
look at it and it:

  - [0]: Clones the repo with `git'.
  - [1]: Run `npm install' and `tree-sitter generate'.
  - [2]: Compiles the generated grammar with gcc.

[0]: https://github.com/nvim-treesitter/nvim-treesitter/blob/90485c890503f973271db1ae02ddba6d6fd46397/lua/nvim-treesitter/install.lua#L378
[1]: https://github.com/nvim-treesitter/nvim-treesitter/blob/90485c890503f973271db1ae02ddba6d6fd46397/lua/nvim-treesitter/install.lua#L228
[2]: https://github.com/nvim-treesitter/nvim-treesitter/blob/3aac7f9db9ee1973152426c097216e0071dd2293/lua/nvim-treesitter/shell_command_selectors.lua#L96

The only concern I can think of is that when it runs `npm install', it's
likely that it downloads a `tree-sitter' binary, rather than use
Guix's tree-sitter-cli package.  In my series I had to patch
package.json files for each grammar to remove `tree-sitter-cli' as a
dependency:

https://github.com/tree-sitter/tree-sitter-c/blob/e348e8ec5efd3aac020020e4af53d2ff18f393a9/package.json#L20

Otherwise it would pull in the official tree-sitter-cli node package,
which then downloads a `tree-sitter' binary :-/

https://github.com/tree-sitter/tree-sitter/blob/master/cli/npm/package.json

Anyways, I don't think that's something we should concern ourselves with
for now.  If we ever want to package nvim-treesitter, I think we might
have to patch it so it uses Guix-provided grammars instead of building
them locally.  For emacs that wasn't so difficult to do, but the real
issue is making sure the grammar is compabible, and luckily the emacs
package had tests we could run for that.  We would also need to run
tests if we're to package nvim-treesitter.

>
>> I do wonder if I'm going about it the right way for Guix though, for
>> instance I'm wondering if I should rewrite the grammar packages using a
>> new custom build system, do people think it would be worth it? That
>> could be done as a follow-up of course.
>
> I'm not a very experienced packager myself, but from what I saw in your patch,
> it seems rather unnecessary, as the grammar packages are very simple.

That was also my impression :-).  Since then I did play with building
one to see what it would look like, also as an escuse to go and learn
how they work.  I'm still on the fence about it though, I've attached
what it could look like, if anybody else is also unsure.  I think I'd
prefer to work on it as a potential follow-up after an initial set of
patches get merged.

Thanks,
Pierre


[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 519 bytes --]

[-- Attachment #2: 0001-wip-build-system-for-tree-sitter-grammars.patch --]
[-- Type: text/x-patch, Size: 36180 bytes --]

From a38e3e66788129bbd441f9d28e450dba8a7438d1 Mon Sep 17 00:00:00 2001
From: Pierre Langlois <pierre.langlois@gmx.com>
Date: Wed, 23 Feb 2022 20:38:51 +0000
Subject: [PATCH] wip build-system for tree-sitter grammars.

---
 Makefile.am                             |   2 +
 gnu/packages/tree-sitter.scm            | 312 ++++++++----------------
 guix/build-system/tree-sitter.scm       | 109 +++++++++
 guix/build/tree-sitter-build-system.scm | 124 ++++++++++
 4 files changed, 342 insertions(+), 205 deletions(-)
 create mode 100644 guix/build-system/tree-sitter.scm
 create mode 100644 guix/build/tree-sitter-build-system.scm

diff --git a/Makefile.am b/Makefile.am
index 8850c4562c..c5da931041 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -167,6 +167,7 @@ MODULES =					\
   guix/build-system/ruby.scm			\
   guix/build-system/scons.scm			\
   guix/build-system/texlive.scm			\
+  guix/build-system/tree-sitter.scm		\
   guix/build-system/trivial.scm			\
   guix/ftp-client.scm				\
   guix/http-client.scm				\
@@ -220,6 +221,7 @@ MODULES =					\
   guix/build/ruby-build-system.scm		\
   guix/build/scons-build-system.scm		\
   guix/build/texlive-build-system.scm		\
+  guix/build/tree-sitter-build-system.scm	\
   guix/build/waf-build-system.scm		\
   guix/build/haskell-build-system.scm		\
   guix/build/julia-build-system.scm		\
diff --git a/gnu/packages/tree-sitter.scm b/gnu/packages/tree-sitter.scm
index 0186518b23..725ab16910 100644
--- a/gnu/packages/tree-sitter.scm
+++ b/gnu/packages/tree-sitter.scm
@@ -23,6 +23,7 @@ (define-module (gnu packages tree-sitter)
   #:use-module (guix build-system emacs)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system node)
+  #:use-module (guix build-system tree-sitter)
   #:use-module (guix build-system trivial)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -224,70 +225,7 @@ (define-public tree-sitter-c
                 "0454jziys33i4kbwnvi9xcck0fzya792ghy32ahgk1hhv96xga9w"))
               (modules '((guix build utils)))
               (snippet tree-sitter-delete-generated-files)))
-    (build-system node-build-system)
-    (native-inputs
-     (list tree-sitter tree-sitter-cli))
-    (outputs '("out" "js"))
-    (arguments
-     (list
-      #:phases
-      (with-imported-modules '((guix build json))
-        #~(modify-phases %standard-phases
-            (add-after 'patch-dependencies 'delete-dependencies
-              (lambda _
-                (delete-dependencies '("tree-sitter-cli"
-                                       "nan"
-                                       "node-gyp"))))
-            (replace 'build
-              (lambda _
-                (invoke "tree-sitter" "generate" "--no-bindings")))
-            (replace 'check
-              (lambda _
-                (invoke "tree-sitter" "test")))
-            (replace 'install
-              (lambda _
-                (use-modules (guix build json)
-                             (ice-9 regex))
-                (let* ((name (assoc-ref
-                              (call-with-input-file "package.json" read-json)
-                              "name"))
-                       (lang (cond
-                              ((string-match "^(@.*/)?tree-sitter-(.*)$" name)
-                               => (lambda (m)
-                                    (match:substring m 2)))
-                              (else #f)))
-                       (lib (string-append #$output "/lib/tree-sitter")))
-                  (mkdir-p lib)
-                  (define (source-file path)
-                    (if (file-exists? path)
-                        path
-                        #f))
-                  (apply invoke
-                         `(,#$(cxx-for-target)
-                           "-shared"
-                           "-fPIC"
-                           "-fno-exceptions"
-                           "-O2"
-                           "-g"
-                           "-o" ,(string-append lib "/" lang ".so")
-                           ,@(cond
-                              ((source-file "src/scanner.c")
-                               => (lambda (file) (list "-xc" "-std=c99" file)))
-                              ((source-file "src/scanner.cc")
-                               => (lambda (file) (list file)))
-                              (else '()))
-                           "-xc" "src/parser.c")))))
-            (add-after 'install 'install-js-module
-              (lambda* (#:key inputs #:allow-other-keys)
-                (invoke (search-input-file inputs "/bin/npm")
-                        "--prefix" #$output:js
-                        "--global"
-                        "--offline"
-                        "--loglevel" "info"
-                        "--production"
-                        ;; Skip scripts to prevent building bindings via GYP.
-                        "--ignore-scripts"
-                        "install" "../package.tgz")))))))
+    (build-system tree-sitter-build-system)
     (home-page "https://github.com/tree-sitter/tree-sitter-c")
     (synopsis "Tree-sitter C grammar")
     (description
@@ -296,7 +234,6 @@ (define (source-file path)
 
 (define-public tree-sitter-cpp
   (package
-    (inherit tree-sitter-c)
     (name "tree-sitter-cpp")
     (version "0.20.0")
     (source (origin
@@ -311,7 +248,8 @@ (define-public tree-sitter-cpp
               (modules '((guix build utils)))
               (snippet tree-sitter-delete-generated-files)))
     (inputs
-     (list `(,tree-sitter-c "js")))
+     (list tree-sitter-c))
+    (build-system tree-sitter-build-system)
     (home-page "https://github.com/tree-sitter/tree-sitter-cpp")
     (synopsis "Tree-sitter C++ grammar")
     (description
@@ -319,7 +257,7 @@ (define-public tree-sitter-cpp
     (license license:expat)))
 
 (define-public tree-sitter-c-sharp
-  (package (inherit tree-sitter-c)
+  (package
     (name "tree-sitter-c-sharp")
     (version "0.19.1")
     (source (origin
@@ -333,6 +271,7 @@ (define-public tree-sitter-c-sharp
                 "054fmpf47cwh59gbg00sc0nl237ba4rnxi73miz39yqzcs87055r"))
               (modules '((guix build utils)))
               (snippet tree-sitter-delete-generated-files)))
+    (build-system tree-sitter-build-system)
     (home-page "https://github.com/tree-sitter/tree-sitter-c-sharp")
     (synopsis "Tree-sitter C# grammar")
     (description
@@ -340,7 +279,7 @@ (define-public tree-sitter-c-sharp
     (license license:expat)))
 
 (define-public tree-sitter-bash
-  (package (inherit tree-sitter-c)
+  (package
     (name "tree-sitter-bash")
     (version "0.19.0")
     (source (origin
@@ -354,17 +293,7 @@ (define-public tree-sitter-bash
                 "18c030bb65r50i6z37iy7jb9z9i8i36y7b08dbc9bchdifqsijs5"))
               (modules '((guix build utils)))
               (snippet tree-sitter-delete-generated-files)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments tree-sitter-c)
-      ((#:phases phases)
-       `(modify-phases ,phases
-          (replace 'delete-dependencies
-           (lambda _
-             (delete-dependencies '("tree-sitter-cli"
-                                    "nan"
-                                    "node-gyp"
-                                    "prebuild"
-                                    "prebuild-install"))))))))
+    (build-system tree-sitter-build-system)
     (home-page "https://github.com/tree-sitter/tree-sitter-bash")
     (synopsis "Tree-sitter Bash grammar")
     (description
@@ -372,7 +301,7 @@ (define-public tree-sitter-bash
     (license license:expat)))
 
 (define-public tree-sitter-css
-  (package (inherit tree-sitter-c)
+  (package
     (name "tree-sitter-css")
     (version "0.19.0")
     (source (origin
@@ -386,6 +315,7 @@ (define-public tree-sitter-css
                 "014jrlgi7zfza9g38hsr4vlbi8964i5p7iglaih6qmzaiml7bja2"))
               (modules '((guix build utils)))
               (snippet tree-sitter-delete-generated-files)))
+    (build-system tree-sitter-build-system)
     (home-page "https://github.com/tree-sitter/tree-sitter-css")
     (synopsis "Tree-sitter CSS grammar")
     (description
@@ -395,7 +325,7 @@ (define-public tree-sitter-css
 (define-public tree-sitter-elixir
   (let ((commit "de20391afe5cb03ef1e8a8e43167e7b58cc52869")
         (revision "1"))
-    (package (inherit tree-sitter-c)
+    (package
       (name "tree-sitter-elixir")
       (version (git-version "0.19.0" revision commit))
       (source (origin
@@ -409,16 +339,7 @@ (define-public tree-sitter-elixir
                   "0zrkrwhw3g1vazsxcwrfd1fk4wvs9hdwmwp6073mfh370bz4140h"))
                 (modules '((guix build utils)))
                 (snippet tree-sitter-delete-generated-files)))
-      (arguments
-       (substitute-keyword-arguments (package-arguments tree-sitter-c)
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (replace 'delete-dependencies
-               (lambda _
-                 (delete-dependencies '("tree-sitter-cli"
-                                        "node-gyp"
-                                        "nan"
-                                        "prettier"))))))))
+      (build-system tree-sitter-build-system)
       (home-page "https://elixir-lang.org/tree-sitter-elixir/")
       (synopsis "Tree-sitter Elixir grammar")
       (description
@@ -428,7 +349,7 @@ (define-public tree-sitter-elixir
                      license:expat)))))
 
 (define-public tree-sitter-elm
-  (package (inherit tree-sitter-c)
+  (package
     (name "tree-sitter-elm")
     (version "5.5.1")
     (source (origin
@@ -442,18 +363,7 @@ (define-public tree-sitter-elm
                 "10hbi4vyj4hjixqswdcbvzl60prldczz29mlp02if61wvwiwvqrw"))
               (modules '((guix build utils)))
               (snippet tree-sitter-delete-generated-files)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments tree-sitter-c)
-      ((#:phases phases)
-       `(modify-phases ,phases
-          (replace 'delete-dependencies
-           (lambda _
-             (delete-dependencies '("tree-sitter-cli"
-                                    "nan"
-                                    "node-gyp"
-                                    "@asgerf/dts-tree-sitter"
-                                    "prebuild"
-                                    "prebuild-install"))))))))
+    (build-system tree-sitter-build-system)
     (home-page "https://elm-tooling.github.io/tree-sitter-elm/")
     (synopsis "Tree-sitter Elm grammar")
     (description
@@ -461,7 +371,7 @@ (define-public tree-sitter-elm
     (license license:expat)))
 
 (define-public tree-sitter-go
-  (package (inherit tree-sitter-c)
+  (package
     (name "tree-sitter-go")
     (version "0.19.1")
     (source (origin
@@ -475,6 +385,7 @@ (define-public tree-sitter-go
                 "0nxs47vd2fc2fr0qlxq496y852rwg39flhg334s7dlyq7d3lcx4x"))
               (modules '((guix build utils)))
               (snippet tree-sitter-delete-generated-files)))
+    (build-system tree-sitter-build-system)
     (home-page "https://github.com/tree-sitter/tree-sitter-go")
     (synopsis "Tree-sitter Go grammar")
     (description
@@ -482,7 +393,7 @@ (define-public tree-sitter-go
     (license license:expat)))
 
 (define-public tree-sitter-html
-  (package (inherit tree-sitter-c)
+  (package
     (name "tree-sitter-html")
     (version "0.19.0")
     (source (origin
@@ -496,6 +407,7 @@ (define-public tree-sitter-html
                 "1hg7vbcy7bir6b8x11v0a4x0glvqnsqc3i2ixiarbxmycbgl3axy"))
               (modules '((guix build utils)))
               (snippet tree-sitter-delete-generated-files)))
+    (build-system tree-sitter-build-system)
     (home-page "https://github.com/tree-sitter/tree-sitter-html")
     (synopsis "Tree-sitter HTML grammar")
     (description
@@ -503,7 +415,7 @@ (define-public tree-sitter-html
     (license license:expat)))
 
 (define-public tree-sitter-java
-  (package (inherit tree-sitter-c)
+  (package
     (name "tree-sitter-java")
     (version "0.19.1")
     (source (origin
@@ -517,6 +429,7 @@ (define-public tree-sitter-java
                 "07zw9ygb45hnvlx9qlz7rlz8hc3byjy03d24v72i5iyhpiiwlhvl"))
               (modules '((guix build utils)))
               (snippet tree-sitter-delete-generated-files)))
+    (build-system tree-sitter-build-system)
     (home-page "https://github.com/tree-sitter/tree-sitter-java")
     (synopsis "Tree-sitter Java grammar")
     (description
@@ -524,7 +437,7 @@ (define-public tree-sitter-java
     (license license:expat)))
 
 (define-public tree-sitter-javascript
-  (package (inherit tree-sitter-c)
+  (package
     (name "tree-sitter-javascript")
     (version "0.20.0")
     (source (origin
@@ -538,6 +451,7 @@ (define-public tree-sitter-javascript
                 "175yrk382n2di0c2xn4gpv8y4n83x1lg4hqn04vabf0yqynlkq67"))
               (modules '((guix build utils)))
               (snippet tree-sitter-delete-generated-files)))
+    (build-system tree-sitter-build-system)
     (home-page "https://github.com/tree-sitter/tree-sitter-javascript")
     (synopsis "Tree-sitter Javascript grammar")
     (description
@@ -546,7 +460,7 @@ (define-public tree-sitter-javascript
     (license license:expat)))
 
 (define-public tree-sitter-json
-  (package (inherit tree-sitter-c)
+  (package
     (name "tree-sitter-json")
     (version "0.19.0")
     (source (origin
@@ -560,6 +474,7 @@ (define-public tree-sitter-json
                 "06pjh31bv9ja9hlnykk257a6zh8bsxg2fqa54al7qk1r4n9ksnff"))
               (modules '((guix build utils)))
               (snippet tree-sitter-delete-generated-files)))
+    (build-system tree-sitter-build-system)
     (home-page "https://github.com/tree-sitter/tree-sitter-json")
     (synopsis "Tree-sitter JSON grammar")
     (description
@@ -567,7 +482,7 @@ (define-public tree-sitter-json
     (license license:expat)))
 
 (define-public tree-sitter-julia
-  (package (inherit tree-sitter-c)
+  (package
     (name "tree-sitter-julia")
     (version "0.19.0")
     (source (origin
@@ -581,6 +496,7 @@ (define-public tree-sitter-julia
                 "1pbnmvhy2gq4vg1b0sjzmjm4s2gsgdjh7h01yj8qrrqbcl29c463"))
               (modules '((guix build utils)))
               (snippet tree-sitter-delete-generated-files)))
+    (build-system tree-sitter-build-system)
     (home-page "https://github.com/tree-sitter/tree-sitter-julia")
     (synopsis "Tree-sitter Julia grammar")
     (description
@@ -590,7 +506,7 @@ (define-public tree-sitter-julia
 (define-public tree-sitter-ocaml
   (let ((commit "0348562f385bc2bd67ecf181425e1afd6d454192")
         (revision "1"))
-    (package (inherit tree-sitter-c)
+    (package
       (name "tree-sitter-ocaml")
       (version (git-version "0.19.0" revision commit))
       (source (origin
@@ -617,43 +533,44 @@ (define-public tree-sitter-ocaml
                      '("ocaml" "interface"))
                     #t))))
       (arguments
-       (substitute-keyword-arguments (package-arguments tree-sitter-c)
-        ((#:phases phases)
-         #~(modify-phases #$phases
-             (replace 'build
-               (lambda _
-                 (for-each (lambda (dir)
-                             (with-directory-excursion dir
-                               (invoke "tree-sitter" "generate" "--no-bindings")))
-                           '("ocaml" "interface"))))
-             (replace 'check
-               (lambda _
-                 (for-each (lambda (dir)
-                             (with-directory-excursion dir
-                               (invoke "tree-sitter" "test")))
-                           '("ocaml" "interface"))))
-             (replace 'install
-               (lambda _
-                 (let ((lib (string-append #$output "/lib/tree-sitter/")))
-                   (mkdir-p lib)
-                   (invoke #$(cxx-for-target)
-                           "-shared"
-                           "-fPIC"
-                           "-fno-exceptions"
-                           "-O2"
-                           "-g"
-                           "-o" (string-append lib "/ocaml.so")
-                           "ocaml/src/scanner.cc"
-                           "-xc" "ocaml/src/parser.c")
-                   (invoke #$(cxx-for-target)
-                           "-shared"
-                           "-fPIC"
-                           "-fno-exceptions"
-                           "-O2"
-                           "-g"
-                           "-o" (string-append lib "/ocaml-interface.so")
-                           "interface/src/scanner.cc"
-                           "-xc" "interface/src/parser.c"))))))))
+       (list
+        #:phases
+        #~(modify-phases %standard-phases
+            (replace 'build
+              (lambda _
+                (for-each (lambda (dir)
+                            (with-directory-excursion dir
+                              (invoke "tree-sitter" "generate" "--no-bindings")))
+                          '("ocaml" "interface"))))
+            (replace 'check
+              (lambda _
+                (for-each (lambda (dir)
+                            (with-directory-excursion dir
+                              (invoke "tree-sitter" "test")))
+                          '("ocaml" "interface"))))
+            (replace 'install
+              (lambda _
+                (let ((lib (string-append #$output "/lib/tree-sitter/")))
+                  (mkdir-p lib)
+                  (invoke #$(cxx-for-target)
+                          "-shared"
+                          "-fPIC"
+                          "-fno-exceptions"
+                          "-O2"
+                          "-g"
+                          "-o" (string-append lib "/ocaml.so")
+                          "ocaml/src/scanner.cc"
+                          "-xc" "ocaml/src/parser.c")
+                  (invoke #$(cxx-for-target)
+                          "-shared"
+                          "-fPIC"
+                          "-fno-exceptions"
+                          "-O2"
+                          "-g"
+                          "-o" (string-append lib "/ocaml-interface.so")
+                          "interface/src/scanner.cc"
+                          "-xc" "interface/src/parser.c")))))))
+      (build-system tree-sitter-build-system)
       (home-page "https://github.com/tree-sitter/tree-sitter-ocaml")
       (synopsis "Tree-sitter OCaml grammar")
       (description
@@ -663,7 +580,7 @@ (define-public tree-sitter-ocaml
 (define-public tree-sitter-php
   (let ((commit "435fa00006c0d1515c37fbb4dd6a9de284af75ab")
         (revision "1"))
-    (package (inherit tree-sitter-c)
+    (package
       (name "tree-sitter-php")
       (version (git-version "0.19.0" revision commit))
       (source (origin
@@ -683,15 +600,7 @@ (define-public tree-sitter-php
                     (delete-file "src/parser.c")
                     (delete-file-recursively "src/tree_sitter")
                     #t))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments tree-sitter-c)
-      ((#:phases phases)
-       `(modify-phases ,phases
-          (replace 'delete-dependencies
-           (lambda _
-             (delete-dependencies '("tree-sitter-cli"
-                                    "nan"
-                                    "shelljs"))))))))
+      (build-system tree-sitter-build-system)
       (home-page "https://github.com/tree-sitter/tree-sitter-php")
       (synopsis "Tree-sitter PHP grammar")
       (description
@@ -701,7 +610,7 @@ (define-public tree-sitter-php
 (define-public tree-sitter-python
   (let ((commit "ed0fe62e55dc617ed9dec8817ebf771aa7cf3c42")
         (revision "1"))
-    (package (inherit tree-sitter-c)
+    (package
       (name "tree-sitter-python")
       (version (git-version "0.19.1" revision commit))
       (source (origin
@@ -715,6 +624,7 @@ (define-public tree-sitter-python
                   "0wrfpg84mc3pzcrdi6n5fqwijkqr1nj5sqfnayb502krvqpjilal"))
                 (modules '((guix build utils)))
                 (snippet tree-sitter-delete-generated-files)))
+      (build-system tree-sitter-build-system)
       (home-page "https://github.com/tree-sitter/tree-sitter-python")
       (synopsis "Tree-sitter Python grammar")
       (description
@@ -722,7 +632,7 @@ (define-public tree-sitter-python
       (license license:expat))))
 
 (define-public tree-sitter-ruby
-  (package (inherit tree-sitter-c)
+  (package
     (name "tree-sitter-ruby")
     (version "0.19.0")
     (source (origin
@@ -736,17 +646,7 @@ (define-public tree-sitter-ruby
                 "0m3h4928rbs300wcb6776h9r88hi32rybbhcaf6rdympl5nzi83v"))
               (modules '((guix build utils)))
               (snippet tree-sitter-delete-generated-files)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments tree-sitter-c)
-      ((#:phases phases)
-       `(modify-phases ,phases
-          (replace 'delete-dependencies
-           (lambda _
-             (delete-dependencies '("tree-sitter-cli"
-                                    "nan"
-                                    "node-gyp"
-                                    "prebuild"
-                                    "prebuild-install"))))))))
+    (build-system tree-sitter-build-system)
     (home-page "https://github.com/tree-sitter/tree-sitter-ruby")
     (synopsis "Tree-sitter Ruby grammar")
     (description
@@ -754,7 +654,7 @@ (define-public tree-sitter-ruby
     (license license:expat)))
 
 (define-public tree-sitter-rust
-  (package (inherit tree-sitter-c)
+  (package
     (name "tree-sitter-rust")
     (version "0.20.1")
     (source (origin
@@ -771,6 +671,7 @@ (define-public tree-sitter-rust
     (native-inputs
      (modify-inputs (package-native-inputs tree-sitter-c)
        (prepend bc)))
+    (build-system tree-sitter-build-system)
     (home-page "https://github.com/tree-sitter/tree-sitter-rust")
     (synopsis "Tree-sitter Rust grammar")
     (description
@@ -780,7 +681,7 @@ (define-public tree-sitter-rust
 (define-public tree-sitter-typescript
   (let ((commit "111b07762e86efab9a918b7c721f720c37e76b0a")
         (revision "1"))
-    (package (inherit tree-sitter-c)
+    (package
       (name "tree-sitter-typescript")
       (version (git-version "0.20.0" revision commit))
       (source (origin
@@ -806,39 +707,40 @@ (define-public tree-sitter-typescript
                      '("typescript" "tsx"))
                     #t))))
       (inputs
-       (list `(,tree-sitter-javascript "js")))
+       (list tree-sitter-javascript))
       (arguments
-       (substitute-keyword-arguments (package-arguments tree-sitter-c)
-        ((#:phases phases)
-         #~(modify-phases #$phases
-             (replace 'build
-               (lambda _
-                 (for-each (lambda (dir)
-                             (with-directory-excursion dir
-                               (invoke "tree-sitter" "generate" "--no-bindings")))
-                           '("typescript" "tsx"))))
-             (replace 'check
-               (lambda _
-                 (for-each (lambda (dir)
-                             (with-directory-excursion dir
-                               (invoke "tree-sitter" "test")))
-                           '("typescript" "tsx"))))
-             (replace 'install
-               (lambda _
-                 (let ((lib (string-append #$output "/lib/tree-sitter/")))
-                   (mkdir-p lib)
-                   (for-each
-                    (lambda (lang)
-                      (invoke #$(cxx-for-target)
-                              "-shared"
-                              "-fPIC"
-                              "-fno-exceptions"
-                              "-O2"
-                              "-g"
-                              "-o" (string-append lib "/" lang ".so")
-                              "-xc" (string-append lang "/src/scanner.c")
-                              "-xc" (string-append lang "/src/parser.c")))
-                    '("typescript" "tsx")))))))))
+       (list
+        #:phases
+        #~(modify-phases %standard-phases
+            (replace 'build
+              (lambda _
+                (for-each (lambda (dir)
+                            (with-directory-excursion dir
+                              (invoke "tree-sitter" "generate" "--no-bindings")))
+                          '("typescript" "tsx"))))
+            (replace 'check
+              (lambda _
+                (for-each (lambda (dir)
+                            (with-directory-excursion dir
+                              (invoke "tree-sitter" "test")))
+                          '("typescript" "tsx"))))
+            (replace 'install
+              (lambda _
+                (let ((lib (string-append #$output "/lib/tree-sitter/")))
+                  (mkdir-p lib)
+                  (for-each
+                   (lambda (lang)
+                     (invoke #$(cxx-for-target)
+                             "-shared"
+                             "-fPIC"
+                             "-fno-exceptions"
+                             "-O2"
+                             "-g"
+                             "-o" (string-append lib "/" lang ".so")
+                             "-xc" (string-append lang "/src/scanner.c")
+                             "-xc" (string-append lang "/src/parser.c")))
+                   '("typescript" "tsx"))))))))
+      (build-system tree-sitter-build-system)
       (home-page "https://github.com/tree-sitter/tree-sitter-typescript")
       (synopsis "Tree-sitter Typescript grammar")
       (description
diff --git a/guix/build-system/tree-sitter.scm b/guix/build-system/tree-sitter.scm
new file mode 100644
index 0000000000..bfccea4007
--- /dev/null
+++ b/guix/build-system/tree-sitter.scm
@@ -0,0 +1,109 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix build-system tree-sitter)
+  #:use-module (guix store)
+  #:use-module (guix utils)
+  #:use-module (guix packages)
+  #:use-module (guix gexp)
+  #:use-module (guix monads)
+  #:use-module (guix search-paths)
+  #:use-module (guix build-system)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build-system node)
+  #:use-module (ice-9 match)
+  #:export (%tree-sitter-build-system-modules
+            tree-sitter-build
+            tree-sitter-build-system))
+
+(define %tree-sitter-build-system-modules
+  ;; Build-side modules imported by default.
+  `((guix build tree-sitter-build-system)
+    ;; (guix build json)
+    ,@%node-build-system-modules))
+
+(define* (lower name
+                #:key source inputs native-inputs outputs system target
+                #:allow-other-keys
+                #:rest arguments)
+  ""
+  (define private-keywords
+    '(#:target #:inputs #:native-inputs #:outputs))
+
+  (and (not target)                    ;XXX: no cross-compilation
+       (bag
+         (name name)
+         (system system)
+         (host-inputs `(,@(if source
+                              `(("source" ,source))
+                              '())
+                        ,@(map (match-lambda
+                                 ((name package)
+                                  `(,name ,package "js")))
+                               inputs)
+                        ;; Keep the standard inputs of 'gnu-build-system'.
+                        ,@(standard-packages)))
+         (build-inputs `(("node" ,(module-ref (resolve-interface '(gnu packages node))
+                                              'node-lts))
+                         ("tree-sitter" ,(module-ref (resolve-interface '(gnu packages tree-sitter))
+                                                     'tree-sitter))
+                         ("tree-sitter-cli" ,(module-ref (resolve-interface '(gnu packages tree-sitter))
+                                                         'tree-sitter-cli))
+                         ,@native-inputs))
+         (outputs (match outputs
+                    (("out") (cons "js" outputs))
+                    (_ outputs)))
+         (build tree-sitter-build)
+         (arguments (strip-keyword-arguments private-keywords arguments)))))
+
+(define* (tree-sitter-build name inputs
+                            #:key
+                            source
+                            (phases '%standard-phases)
+                            (outputs '("out" "js"))
+                            (search-paths '())
+                            (system (%current-system))
+                            (guile #f)
+                            (imported-modules %tree-sitter-build-system-modules)
+                            (modules '((guix build utils)
+                                       (guix build tree-sitter-build-system))))
+  (define builder
+    (with-imported-modules imported-modules
+      #~(begin
+          (use-modules #$@(sexp->gexp modules))
+          (tree-sitter-build #:name #$name
+                             #:source #+source
+                             #:system #$system
+                             #:phases #$phases
+                             #:outputs #$(outputs->gexp outputs)
+                             #:search-paths '#$(sexp->gexp
+                                                (map search-path-specification->sexp
+                                                     search-paths))
+                             #:inputs #$(input-tuples->gexp inputs)))))
+
+  (mlet %store-monad ((guile (package->derivation (or guile (default-guile))
+                                                  system #:graft? #f)))
+    (gexp->derivation name builder
+                      #:system system
+                      #:guile-for-build guile)))
+
+(define tree-sitter-build-system
+  (build-system
+    (name 'tree-sitter)
+    (description "")
+    (lower lower)))
diff --git a/guix/build/tree-sitter-build-system.scm b/guix/build/tree-sitter-build-system.scm
new file mode 100644
index 0000000000..bf1d2e363d
--- /dev/null
+++ b/guix/build/tree-sitter-build-system.scm
@@ -0,0 +1,124 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix build tree-sitter-build-system)
+  #:use-module ((guix build node-build-system) #:prefix node:)
+  #:use-module (guix build json)
+  #:use-module (guix build utils)
+  #:use-module (ice-9 match)
+  #:use-module (ice-9 regex)
+  #:use-module (srfi srfi-1)
+  #:export (%standard-phases
+            tree-sitter-build))
+
+(define (tree-sitter-node-inputs inputs)
+  ""
+  (alist-delete "node"
+    (alist-delete "source"
+      (filter (match-lambda
+                ((label . directory)
+                 (directory-exists? (string-append directory
+                                                   "/lib/node_modules")))
+                (_ #f))
+              inputs))))
+
+;;;
+;;; Phases.
+;;;
+
+(define* (adjust-dependencies #:key inputs #:allow-other-keys)
+  ""
+  (node:with-atomic-json-file-replacement "package.json"
+    (match-lambda
+      (('@ . pkg-meta-alist)
+       (cons '@ (map (match-lambda
+                       (("dependencies" @ . deps)
+                        '("dependencies" @))
+                       (("devDependencies" @ . deps)
+                        `("devDependencies" @
+                          ,@(map
+                             (lambda (input)
+                               `(,(car input) . "latest"))
+                             (tree-sitter-node-inputs inputs))))
+                       (other other))
+                     pkg-meta-alist))))))
+
+(define (build . _)
+  (invoke "tree-sitter" "generate" "--no-bindings")
+  #t)
+
+(define (check . _)
+  (invoke "tree-sitter" "test")
+  #t)
+
+(define* (install #:key outputs #:allow-other-keys)
+  (use-modules (guix build json)
+               (ice-9 regex))
+  (let* ((name (assoc-ref
+                (call-with-input-file "package.json" read-json)
+                "name"))
+         (lang (cond
+                ((string-match "^(@.*/)?tree-sitter-(.*)$" name)
+                 => (lambda (m)
+                      (match:substring m 2)))
+                (else #f)))
+         (lib (string-append (assoc-ref outputs "out")
+                             "/lib/tree-sitter")))
+    (mkdir-p lib)
+    (define (source-file path)
+      (if (file-exists? path)
+          path
+          #f))
+    (apply invoke
+           `("g++"
+             "-shared"
+             "-fPIC"
+             "-fno-exceptions"
+             "-O2"
+             "-g"
+             "-o" ,(string-append lib "/" lang ".so")
+             ,@(cond
+                ((source-file "src/scanner.c")
+                 => (lambda (file) (list "-xc" "-std=c99" file)))
+                ((source-file "src/scanner.cc")
+                 => (lambda (file) (list file)))
+                (else '()))
+             "-xc" "src/parser.c"))))
+
+(define* (install-js #:key inputs outputs #:allow-other-keys)
+  (invoke (search-input-file inputs "/bin/npm")
+          "--prefix" (assoc-ref outputs "js")
+          "--global"
+          "--offline"
+          "--loglevel" "info"
+          "--production"
+          ;; Skip scripts to prevent building bindings via GYP.
+          "--ignore-scripts"
+          "install" "../package.tgz"))
+
+(define %standard-phases
+  (modify-phases node:%standard-phases
+    (add-before 'patch-dependencies 'adjust-dependencies adjust-dependencies)
+    (replace 'build build)
+    (replace 'check check)
+    (replace 'install install)
+    (add-after 'install 'install-js install-js)))
+
+(define* (tree-sitter-build #:key inputs (phases %standard-phases)
+                            #:allow-other-keys #:rest args)
+  (apply node:node-build #:inputs inputs #:phases phases args))
-- 
2.34.0


  reply	other threads:[~2022-03-09 14:55 UTC|newest]

Thread overview: 316+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-08 22:29 [bug#49946] [PATCH 00/31] Tree-sitter, node-gyp addon support and emacs-tree-sitter Pierre Langlois
2021-08-08 23:33 ` [bug#49946] [PATCH 01/31] gnu: rust-chunked-transfer: Update to 1.4.0 Pierre Langlois
2021-08-08 23:33   ` [bug#49946] [PATCH 02/31] gnu: Add rust-fdlimit Pierre Langlois
2021-08-08 23:33   ` [bug#49946] [PATCH 03/31] gnu: Add rust-html-escape Pierre Langlois
2021-08-08 23:33   ` [bug#49946] [PATCH 04/31] gnu: Add rust-smallbitvec Pierre Langlois
2021-08-08 23:33   ` [bug#49946] [PATCH 05/31] gnu: rust-tiny-http: Update to 0.8 Pierre Langlois
2021-08-08 23:33   ` [bug#49946] [PATCH 06/31] gnu: rust-spin: Update to 0.7 Pierre Langlois
2021-08-08 23:33   ` [bug#49946] [PATCH 07/31] gnu: Add tree-sitter Pierre Langlois
2021-08-13 13:17     ` Pierre Langlois
2021-08-29 10:34     ` [bug#49946] [PATCH v2 00/33] " Pierre Langlois
2021-08-29 10:45       ` [bug#49946] [PATCH v2 01/33] gnu: rust-chunked-transfer: Update to 1.4.0 Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 02/33] gnu: Add rust-fdlimit Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 03/33] gnu: Add rust-html-escape Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 04/33] gnu: Add rust-smallbitvec Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 05/33] gnu: rust-tiny-http: Update to 0.8 Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 06/33] gnu: rust-spin: Update to 0.7 Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 07/33] gnu: Add tree-sitter Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 08/33] gnu: Add tree-sitter-cli Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 09/33] gnu: node: Patch /usr/bin/env in node-gyp Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 10/33] guix: node-build-system: Support compiling addons with node-gyp Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 11/33] gnu: Add node-nan Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 12/33] gnu: Add tree-sitter-c Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 13/33] gnu: Add tree-sitter-cpp Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 14/33] gnu: Add tree-sitter-bash Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 15/33] gnu: Add tree-sitter-css Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 16/33] gnu: Add tree-sitter-go Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 17/33] gnu: Add tree-sitter-html Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 18/33] gnu: Add tree-sitter-java Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 19/33] gnu: Add tree-sitter-javascript Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 20/33] gnu: Add tree-sitter-json Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 21/33] gnu: Add tree-sitter-julia Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 22/33] gnu: Add tree-sitter-php Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 23/33] gnu: Add tree-sitter-python Pierre Langlois
2021-08-29 10:45         ` [bug#49946] [PATCH v2 24/33] gnu: Add tree-sitter-rust Pierre Langlois
2021-08-29 10:46         ` [bug#49946] [PATCH v2 25/33] gnu: Add tree-sitter-typescript Pierre Langlois
2021-08-29 10:46         ` [bug#49946] [PATCH v2 26/33] gnu: Add rust-bindgen@0.56 Pierre Langlois
2021-08-29 10:46         ` [bug#49946] [PATCH v2 27/33] gnu: Add rust-tree-sitter Pierre Langlois
2021-08-29 10:46         ` [bug#49946] [PATCH v2 28/33] gnu: rust-emacs-module: Update to 0.16 Pierre Langlois
2021-08-29 10:46         ` [bug#49946] [PATCH v2 29/33] gnu: rust-emacs-macros: Update to 0.17 Pierre Langlois
2021-08-29 10:46         ` [bug#49946] [PATCH v2 30/33] gnu: rust-emacs: " Pierre Langlois
2021-08-29 10:46         ` [bug#49946] [PATCH v2 31/33] gnu: Add emacs-tree-sitter-core Pierre Langlois
2021-08-29 10:46         ` [bug#49946] [PATCH v2 32/33] gnu: Add emacs-tree-sitter Pierre Langlois
2021-08-29 10:46         ` [bug#49946] [PATCH v2 33/33] gnu: Add emacs-tree-sitter-langs Pierre Langlois
2021-08-29 10:53           ` Pierre Langlois
2022-02-10 22:39       ` [bug#49946] [WIP PATCH v3 00/26] gnu: Add tree-sitter for emacs (and neovim as well?) Pierre Langlois
2022-02-10 22:55         ` [bug#49946] [WIP PATCH v3 01/26] gnu: Add rust-smallbitvec Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 02/26] gnu: Add rust-html-escape Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 03/26] gnu: Add rust-spin@0.7 Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 04/26] gnu: Add tree-sitter Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 05/26] gnu: Add tree-sitter-cli Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 07/26] gnu: Add tree-sitter-cpp Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 08/26] gnu: Add tree-sitter-bash Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 09/26] gnu: Add tree-sitter-css Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 10/26] gnu: Add tree-sitter-go Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 11/26] gnu: Add tree-sitter-html Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 12/26] gnu: Add tree-sitter-java Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 13/26] gnu: Add tree-sitter-javascript Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 14/26] gnu: Add tree-sitter-json Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 15/26] gnu: Add tree-sitter-julia Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 16/26] gnu: Add tree-sitter-php Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 17/26] gnu: Add tree-sitter-python Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 18/26] gnu: Add tree-sitter-rust Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 19/26] gnu: Add tree-sitter-typescript Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 20/26] gnu: Add rust-tree-sitter-for-emacs Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 21/26] gnu: rust-emacs-module: Update to 0.18 Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 22/26] gnu: rust-emacs-macros: Update to 0.17 Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 23/26] gnu: rust-emacs: Update to 0.18 Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 24/26] gnu: Add emacs-tree-sitter-core Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 25/26] gnu: Add emacs-tree-sitter Pierre Langlois
2022-02-10 22:55           ` [bug#49946] [WIP PATCH v3 26/26] gnu: Add emacs-tree-sitter-langs Pierre Langlois
2022-02-18 14:12         ` [bug#49946] [PATCH v4 00/31] gnu: Add tree-sitter for emacs Pierre Langlois
2022-02-18 14:39           ` [bug#49946] [PATCH v4 01/31] gnu: Add rust-smallbitvec Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 02/31] gnu: Add rust-html-escape Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 03/31] gnu: Add rust-spin@0.7 Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 04/31] gnu: Add tree-sitter Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 05/31] gnu: Add tree-sitter-cli Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 07/31] gnu: Add tree-sitter-cpp Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 08/31] gnu: Add tree-sitter-bash Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 09/31] gnu: Add tree-sitter-css Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 10/31] gnu: Add tree-sitter-c-sharp Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 11/31] gnu: Add tree-sitter-elixir Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 12/31] gnu: Add tree-sitter-elm Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 13/31] gnu: Add tree-sitter-go Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 14/31] gnu: Add tree-sitter-html Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 15/31] gnu: Add tree-sitter-java Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 16/31] gnu: Add tree-sitter-javascript Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 17/31] gnu: Add tree-sitter-json Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 18/31] gnu: Add tree-sitter-julia Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 20/31] gnu: Add tree-sitter-php Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 21/31] gnu: Add tree-sitter-python Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 22/31] gnu: Add tree-sitter-ruby Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 23/31] gnu: Add tree-sitter-rust Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 24/31] gnu: Add tree-sitter-typescript Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 25/31] gnu: Add rust-tree-sitter-for-emacs Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 26/31] gnu: rust-emacs-module: Update to 0.18 Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 27/31] gnu: rust-emacs-macros: Update to 0.17 Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 28/31] gnu: rust-emacs: Update to 0.18 Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 29/31] gnu: Add emacs-tree-sitter-core Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 30/31] gnu: Add emacs-tree-sitter Pierre Langlois
2022-02-18 14:39             ` [bug#49946] [PATCH v4 31/31] gnu: Add emacs-tree-sitter-langs Pierre Langlois
2022-03-29 19:42           ` [bug#49946] [PATCH v5 00/27] gnu: Add tree-sitter for emacs Pierre Langlois
2022-03-29 19:42             ` [bug#49946] [PATCH v5 01/27] gnu: tree-sitter: Move to its own module Pierre Langlois
2022-03-29 19:57               ` Maxime Devos
2022-03-29 20:23                 ` Maxime Devos
2022-03-29 19:58               ` Maxime Devos
2022-05-15 13:16                 ` Pierre Langlois
2022-03-29 19:42             ` [bug#49946] [PATCH v5 02/27] gnu: Add tree-sitter-cli Pierre Langlois
2022-03-29 19:42             ` [bug#49946] [PATCH v5 04/27] gnu: Add tree-sitter-c Pierre Langlois
2022-03-29 19:42             ` [bug#49946] [PATCH v5 05/27] gnu: Add tree-sitter-cpp Pierre Langlois
2022-03-29 19:42             ` [bug#49946] [PATCH v5 06/27] gnu: Add tree-sitter-bash Pierre Langlois
2022-03-29 19:42             ` [bug#49946] [PATCH v5 07/27] gnu: Add tree-sitter-css Pierre Langlois
2022-03-29 19:42             ` [bug#49946] [PATCH v5 08/27] gnu: Add tree-sitter-c-sharp Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 09/27] gnu: Add tree-sitter-elixir Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 10/27] gnu: Add tree-sitter-elm Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 11/27] gnu: Add tree-sitter-go Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 12/27] gnu: Add tree-sitter-html Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 13/27] gnu: Add tree-sitter-java Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 14/27] gnu: Add tree-sitter-javascript Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 15/27] gnu: Add tree-sitter-json Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 16/27] gnu: Add tree-sitter-julia Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 17/27] gnu: Add tree-sitter-ocaml Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 18/27] gnu: Add tree-sitter-php Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 19/27] gnu: Add tree-sitter-python Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 20/27] gnu: Add tree-sitter-ruby Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 21/27] gnu: Add tree-sitter-rust Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 22/27] gnu: Add tree-sitter-typescript Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 23/27] gnu: Add rust-tree-sitter Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 24/27] gnu: Add rust-tree-sitter-for-emacs Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 25/27] gnu: Add emacs-tree-sitter-core Pierre Langlois
2022-05-15 15:22               ` Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 26/27] gnu: Add emacs-tree-sitter Pierre Langlois
2022-03-29 19:43             ` [bug#49946] [PATCH v5 27/27] gnu: Add emacs-tree-sitter-langs Pierre Langlois
2022-03-29 19:55               ` Maxime Devos
2022-05-15 12:20                 ` Pierre Langlois
2022-05-15 14:33                   ` Maxime Devos
2022-05-15 14:55                     ` Pierre Langlois
2022-05-15 16:05                       ` Maxime Devos
2022-05-15 18:28             ` [bug#49946] [PATCH v6 00/27] gnu: Add tree-sitter for emacs Pierre Langlois
2022-05-15 18:38               ` [bug#49946] [PATCH v6 01/27] gnu: tree-sitter: Move to its own module Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 02/27] gnu: Add tree-sitter-cli Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 04/27] gnu: Add tree-sitter-c Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 05/27] gnu: Add tree-sitter-cpp Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 06/27] gnu: Add tree-sitter-bash Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 07/27] gnu: Add tree-sitter-css Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 08/27] gnu: Add tree-sitter-c-sharp Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 09/27] gnu: Add tree-sitter-elixir Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 10/27] gnu: Add tree-sitter-elm Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 11/27] gnu: Add tree-sitter-go Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 12/27] gnu: Add tree-sitter-html Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 13/27] gnu: Add tree-sitter-java Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 14/27] gnu: Add tree-sitter-javascript Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 15/27] gnu: Add tree-sitter-json Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 16/27] gnu: Add tree-sitter-julia Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 17/27] gnu: Add tree-sitter-ocaml Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 18/27] gnu: Add tree-sitter-php Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 19/27] gnu: Add tree-sitter-python Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 20/27] gnu: Add tree-sitter-ruby Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 21/27] gnu: Add tree-sitter-rust Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 22/27] gnu: Add tree-sitter-typescript Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 23/27] gnu: Add rust-tree-sitter Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 24/27] gnu: Add rust-tree-sitter-for-emacs Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 25/27] gnu: Add emacs-tree-sitter-core Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 26/27] gnu: Add emacs-tree-sitter Pierre Langlois
2022-05-15 18:38                 ` [bug#49946] [PATCH v6 27/27] gnu: Add emacs-tree-sitter-langs Pierre Langlois
     [not found]                 ` <20220515183834.18771-3-pierre.langlois@gmx.com>
2022-05-15 21:19                   ` [bug#49946] [PATCH v6 03/27] build-system: Add tree-sitter-build-system Pierre Langlois
2022-11-25  1:21               ` [bug#49946] [PATCH v7 00/32] gnu: Add tree-sitter for emacs Pierre Langlois
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 01/32] gnu: tree-sitter: Move to its own module Pierre Langlois
2022-11-25  6:37                   ` ( via Guix-patches via
2022-11-25 10:18                     ` Pierre Langlois
2023-02-09 10:11                       ` Andrew Tropin
2023-02-09 12:39                         ` zimoun
2023-02-09 14:04                           ` Andrew Tropin
2023-02-10 12:52                             ` Andrew Tropin
2023-02-10 15:48                               ` Pierre Langlois
2023-02-10 17:02                                 ` Pierre Langlois
2023-02-12  6:05                                   ` Andrew Tropin
2023-02-12 12:24                                     ` Pierre Langlois
2023-02-12  5:55                                 ` Andrew Tropin
2023-02-12 12:07                                   ` Pierre Langlois
2023-02-14 13:24                                     ` Andrew Tropin
2023-02-17 12:38                                       ` Pierre Langlois
2023-02-10 17:04                             ` Pierre Langlois
2023-02-12  6:28                               ` Andrew Tropin
2023-02-12 12:29                                 ` Pierre Langlois
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 02/32] gnu: tree-sitter: Update to 0.20.7 Pierre Langlois
2022-11-25  6:39                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 03/32] gnu: Add rust-html-escape Pierre Langlois
2022-11-25  6:46                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 04/32] gnu: Add rust-smallbitvec-2 Pierre Langlois
2022-11-25  6:46                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 05/32] gnu: Add tree-sitter-cli Pierre Langlois
2022-11-25  6:52                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 07/32] gnu: Add tree-sitter-c Pierre Langlois
2022-11-25  6:56                   ` ( via Guix-patches via
2022-11-25  6:57                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 08/32] gnu: Add tree-sitter-cpp Pierre Langlois
2022-11-25  7:00                   ` ( via Guix-patches via
2022-11-25  7:01                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 09/32] gnu: Add tree-sitter-bash Pierre Langlois
2022-11-25  6:58                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 10/32] gnu: Add tree-sitter-css Pierre Langlois
2022-11-25  6:58                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 11/32] gnu: Add tree-sitter-c-sharp Pierre Langlois
2022-11-25  6:58                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 12/32] gnu: Add tree-sitter-elixir Pierre Langlois
2022-11-25  6:59                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 13/32] gnu: Add tree-sitter-elm Pierre Langlois
2022-11-25  6:59                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 14/32] gnu: Add tree-sitter-go Pierre Langlois
2022-11-25  7:00                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 15/32] gnu: Add tree-sitter-haskell Pierre Langlois
2022-11-25  7:04                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 16/32] gnu: Add tree-sitter-html Pierre Langlois
2022-11-25  7:02                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 17/32] gnu: Add tree-sitter-java Pierre Langlois
2022-11-25  7:02                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 18/32] gnu: Add tree-sitter-javascript Pierre Langlois
2022-11-25  7:02                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 19/32] gnu: Add tree-sitter-json Pierre Langlois
2022-11-25  7:02                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 20/32] gnu: Add tree-sitter-julia Pierre Langlois
2022-11-25  7:04                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 21/32] gnu: Add tree-sitter-ocaml Pierre Langlois
2022-11-25  7:07                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 22/32] gnu: Add tree-sitter-php Pierre Langlois
2022-11-25  7:07                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 23/32] gnu: Add tree-sitter-python Pierre Langlois
2022-11-25  7:08                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 24/32] gnu: Add tree-sitter-r Pierre Langlois
2022-11-25  7:08                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 25/32] gnu: Add tree-sitter-ruby Pierre Langlois
2022-11-25  7:09                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 26/32] gnu: Add tree-sitter-rust Pierre Langlois
2022-11-25  7:09                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 27/32] gnu: Add tree-sitter-typescript Pierre Langlois
2022-11-25  7:09                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 28/32] gnu: Add rust-tree-sitter Pierre Langlois
2022-11-25  7:11                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 29/32] gnu: Add rust-tree-sitter-for-emacs Pierre Langlois
2022-11-25  7:17                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 30/32] gnu: Add emacs-tree-sitter-core Pierre Langlois
2022-11-25  7:22                   ` ( via Guix-patches via
2022-11-25  7:24                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 31/32] gnu: Add emacs-tree-sitter Pierre Langlois
2022-11-25  7:24                   ` ( via Guix-patches via
2022-11-25  1:21                 ` [bug#49946] [PATCH v7 32/32] gnu: Add emacs-tree-sitter-langs Pierre Langlois
2022-11-25  7:29                   ` ( via Guix-patches via
     [not found]                 ` <20221125012142.22579-7-pierre.langlois@gmx.com>
2022-11-25  1:57                   ` [bug#49946] [PATCH v7 06/32] build-system: Add tree-sitter-build-system Pierre Langlois
2023-02-07 11:25                     ` [bug#49946] [PATCH 00/31] Tree-sitter, node-gyp addon support and emacs-tree-sitter zimoun
2023-02-10 16:14                       ` Pierre Langlois
2023-02-12  7:42                     ` [bug#49946] [PATCH v7 06/32] build-system: Add tree-sitter-build-system Andrew Tropin
2023-02-17 12:37                 ` [bug#49946] [PATCH v8 0/7] Add tree-sitter support for Emacs 28 Pierre Langlois
2023-02-17 12:37                   ` [bug#49946] [PATCH v8 1/7] gnu: Add tree-sitter-lua Pierre Langlois
2023-02-17 12:37                   ` [bug#49946] [PATCH v8 2/7] gnu: Add tree-sitter-rust@0.20.2 Pierre Langlois
2023-02-17 12:37                   ` [bug#49946] [PATCH v8 3/7] gnu: Add rust-tree-sitter Pierre Langlois
2023-02-17 12:37                   ` [bug#49946] [PATCH v8 4/7] gnu: Add rust-tree-sitter-for-emacs Pierre Langlois
2023-02-17 12:37                   ` [bug#49946] [PATCH v8 5/7] gnu: Add emacs-tree-sitter-core Pierre Langlois
2023-02-17 12:48                     ` Pierre Langlois
2023-02-17 12:37                   ` [bug#49946] [PATCH v8 6/7] gnu: Add emacs-tree-sitter Pierre Langlois
2023-02-17 12:37                   ` [bug#49946] [PATCH v8 7/7] gnu: Add emacs-tree-sitter-langs Pierre Langlois
2022-03-07 18:30         ` [bug#49946] [WIP PATCH v3 00/26] gnu: Add tree-sitter for emacs (and neovim as well?) Luis Henrique Gomes Higino
2022-03-09 13:46           ` Pierre Langlois [this message]
2022-03-09 21:04             ` Maxime Devos
2022-03-10 11:17               ` Pierre Langlois
2022-03-10 12:36                 ` Maxime Devos
2022-03-10 13:19                   ` Pierre Langlois
2022-03-10 15:34                     ` Maxime Devos
2021-08-08 23:33   ` [bug#49946] [PATCH 08/31] gnu: node: Patch /usr/bin/env in node-gyp Pierre Langlois
2021-08-10 18:28     ` Maxime Devos
2021-08-11 15:36       ` Pierre Langlois
2021-09-23  9:18       ` Philip McGrath
2021-09-25 10:24         ` Pierre Langlois
2021-09-26 22:02           ` Philip McGrath
2021-09-27 10:11             ` Maxime Devos
2021-09-29  4:45               ` Philip McGrath
2021-09-29  6:31           ` Philip McGrath
2021-09-30 22:56           ` [bug#49946] [PATCH 0/3] guix: node-build-system: Support compiling addons with node-gyp Philip McGrath
2021-09-30 22:56             ` [bug#49946] [PATCH 1/3] gnu: node: Avoid duplicating build phases Philip McGrath
2021-10-02 11:03               ` Pierre Langlois
2021-09-30 22:56             ` [bug#49946] [PATCH 2/3] gnu: node: Update to 10.24.1 for bootstrapping Philip McGrath
2021-09-30 22:56             ` [bug#49946] [PATCH 3/3] guix: node-build-system: Support compiling addons with node-gyp Philip McGrath
2021-10-02 11:49               ` Pierre Langlois
2021-10-02 11:30             ` [bug#49946] [PATCH 0/3] " Pierre Langlois
2021-08-08 23:33   ` [bug#49946] [PATCH 09/31] " Pierre Langlois
2021-08-08 23:33   ` [bug#49946] [PATCH 10/31] gnu: Add node-nan Pierre Langlois
2021-08-08 23:33   ` [bug#49946] [PATCH 11/31] gnu: Add tree-sitter-c Pierre Langlois
2021-08-10 18:30     ` Maxime Devos
2021-08-08 23:33   ` [bug#49946] [PATCH 12/31] gnu: Add tree-sitter-cpp Pierre Langlois
2021-08-08 23:33   ` [bug#49946] [PATCH 13/31] gnu: Add tree-sitter-css Pierre Langlois
2021-08-08 23:33   ` [bug#49946] [PATCH 14/31] gnu: Add tree-sitter-go Pierre Langlois
2021-08-08 23:33   ` [bug#49946] [PATCH 15/31] gnu: Add tree-sitter-html Pierre Langlois
2021-08-08 23:33   ` [bug#49946] [PATCH 16/31] gnu: Add tree-sitter-java Pierre Langlois
2021-08-08 23:33   ` [bug#49946] [PATCH 17/31] gnu: Add tree-sitter-javascript Pierre Langlois
2021-08-08 23:33   ` [bug#49946] [PATCH 18/31] gnu: Add tree-sitter-json Pierre Langlois
2021-08-08 23:33   ` [bug#49946] [PATCH 19/31] gnu: Add tree-sitter-julia Pierre Langlois
2021-08-08 23:33   ` [bug#49946] [PATCH 20/31] gnu: Add tree-sitter-php Pierre Langlois
2021-08-08 23:43     ` [bug#49946] [PATCH 21/31] gnu: Add tree-sitter-python Pierre Langlois
2021-08-08 23:43       ` [bug#49946] [PATCH 22/31] gnu: Add tree-sitter-rust Pierre Langlois
2021-08-08 23:43       ` [bug#49946] [PATCH 23/31] gnu: Add tree-sitter-typescript Pierre Langlois
2021-08-08 23:43       ` [bug#49946] [PATCH 24/31] gnu: Add rust-bindgen@0.56 Pierre Langlois
2021-08-08 23:43       ` [bug#49946] [PATCH 25/31] gnu: Add rust-tree-sitter Pierre Langlois
2021-08-08 23:43       ` [bug#49946] [PATCH 26/31] gnu: rust-emacs-module: Update to 0.16 Pierre Langlois
2021-08-08 23:43       ` [bug#49946] [PATCH 27/31] gnu: rust-emacs-macros: Update to 0.17 Pierre Langlois
2021-08-08 23:43       ` [bug#49946] [PATCH 28/31] gnu: rust-emacs: " Pierre Langlois
2021-08-08 23:43       ` [bug#49946] [PATCH 29/31] gnu: Add emacs-tree-sitter-core Pierre Langlois
2021-08-08 23:43       ` [bug#49946] [PATCH 30/31] gnu: Add emacs-tree-sitter Pierre Langlois
2021-08-08 23:43       ` [bug#49946] [PATCH 31/31] gnu: Add emacs-tree-sitter-langs Pierre Langlois
2022-05-14 22:36 ` [bug#49946] State of emacs-tree-sitter Mekeor Melire
2022-05-15 12:14   ` Pierre Langlois
2023-01-25 22:04 ` [bug#49946] About migrating support from emacs-tree-sitter to treesit Luis Henrique Gomes Higino
2023-01-29 23:10   ` Luis Henrique Gomes Higino
2023-02-06  0:00     ` Pierre Langlois
2023-02-10  9:21 ` [bug#49946] [PATCH 00/31] Tree-sitter, node-gyp addon support and emacs-tree-sitter Andrew Tropin
2023-02-10 16:22   ` Pierre Langlois
2023-02-10 18:02   ` Liliana Marie Prikler
2023-02-11  8:12     ` Andrew Tropin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87sfrrnpme.fsf@gmx.com \
    --to=pierre.langlois@gmx.com \
    --cc=49946@debbugs.gnu.org \
    --cc=luishenriquegh2701@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).