* [bug#66761] [PATCH] gnu: Add guile-ts.
@ 2023-10-26 15:03 Zheng Junjie
2023-10-27 12:24 ` bug#66761: " Andrew Tropin
0 siblings, 1 reply; 2+ messages in thread
From: Zheng Junjie @ 2023-10-26 15:03 UTC (permalink / raw)
To: 66761; +Cc: andrew
* gnu/packages/guile-xyz.scm (guile-ts): New variable.
Change-Id: Icb681b6f2e5f2318291e5a4a4ff05d2cbbcf1856
---
gnu/packages/guile-xyz.scm | 46 ++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 90f51cf741..0a2e0a04ae 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -119,6 +119,7 @@ (define-module (gnu packages guile-xyz)
#:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages tree-sitter)
#:use-module (gnu packages version-control)
#:use-module (gnu packages webkit)
#:use-module (gnu packages xdisorg)
@@ -4588,6 +4589,51 @@ (define-public guile-torrent
according to Bitorrent BEP003.")
(license license:gpl3+)))
+(define-public guile-ts
+ (package
+ (name "guile-ts")
+ (version "0.1.0")
+ (source (origin (method git-fetch)
+ (uri (git-reference
+ (url
+ "https://github.com/Z572/guile-ts")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0xmq2d3mv921m0g1hqw6bjzh4m622g2c7pal11ks7vjn0m8d4bxj"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:make-flags #~(list "GUILE_AUTO_COMPILE=0")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-extension-path
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute*
+ (find-files "." ".*\\.scm")
+ (("\\(load-extension \"libguile_ts\" *\"(.*)\"\\)" _ o)
+ (string-append
+ (object->string
+ `(or (false-if-exception
+ (load-extension "libguile_ts" ,o))
+ (load-extension
+ ,(string-append
+ #$output
+ "/lib/libguile_ts.so")
+ ,o)))))))))))
+ (native-inputs
+ (list autoconf automake
+ libtool
+ texinfo
+ pkg-config
+ guile-3.0))
+ (inputs (list guile-3.0 tree-sitter))
+ (synopsis "Guile bindings to the Tree-sitter parsing library")
+ (description "This package provides Guile bindings to the Tree-sitter
+parsing library.")
+ (home-page "https://github.com/Z572/guile-ts")
+ (license license:gpl3+)))
+
(define-public guile-irc
(let ((commit "7d08ce6fdcb87ac668c5d3bfd5584247805507bb")
(revision "1"))
base-commit: 33f5b747b4a0a508e1ffc94a5bf425cff707c6e3
--
2.41.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* bug#66761: [PATCH] gnu: Add guile-ts.
2023-10-26 15:03 [bug#66761] [PATCH] gnu: Add guile-ts Zheng Junjie
@ 2023-10-27 12:24 ` Andrew Tropin
0 siblings, 0 replies; 2+ messages in thread
From: Andrew Tropin @ 2023-10-27 12:24 UTC (permalink / raw)
To: Zheng Junjie, 66761-done
[-- Attachment #1: Type: text/plain, Size: 4569 bytes --]
On 2023-10-26 23:03, Zheng Junjie wrote:
> * gnu/packages/guile-xyz.scm (guile-ts): New variable.
>
> Change-Id: Icb681b6f2e5f2318291e5a4a4ff05d2cbbcf1856
> ---
> gnu/packages/guile-xyz.scm | 46 ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 46 insertions(+)
>
> diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
> index 90f51cf741..0a2e0a04ae 100644
> --- a/gnu/packages/guile-xyz.scm
> +++ b/gnu/packages/guile-xyz.scm
> @@ -119,6 +119,7 @@ (define-module (gnu packages guile-xyz)
> #:use-module (gnu packages tex)
> #:use-module (gnu packages texinfo)
> #:use-module (gnu packages tls)
> + #:use-module (gnu packages tree-sitter)
> #:use-module (gnu packages version-control)
> #:use-module (gnu packages webkit)
> #:use-module (gnu packages xdisorg)
> @@ -4588,6 +4589,51 @@ (define-public guile-torrent
> according to Bitorrent BEP003.")
> (license license:gpl3+)))
>
> +(define-public guile-ts
> + (package
> + (name "guile-ts")
> + (version "0.1.0")
> + (source (origin (method git-fetch)
> + (uri (git-reference
> + (url
> + "https://github.com/Z572/guile-ts")
> + (commit (string-append "v" version))))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "0xmq2d3mv921m0g1hqw6bjzh4m622g2c7pal11ks7vjn0m8d4bxj"))))
> + (build-system gnu-build-system)
> + (arguments
> + (list #:make-flags #~(list "GUILE_AUTO_COMPILE=0")
> + #:phases
> + #~(modify-phases %standard-phases
> + (add-after 'unpack 'set-extension-path
> + (lambda* (#:key outputs #:allow-other-keys)
> + (substitute*
> + (find-files "." ".*\\.scm")
> + (("\\(load-extension \"libguile_ts\" *\"(.*)\"\\)" _ o)
> + (string-append
> + (object->string
> + `(or (false-if-exception
> + (load-extension "libguile_ts" ,o))
> + (load-extension
> + ,(string-append
> + #$output
> + "/lib/libguile_ts.so")
> + ,o)))))))))))
> + (native-inputs
> + (list autoconf automake
> + libtool
> + texinfo
> + pkg-config
> + guile-3.0))
> + (inputs (list guile-3.0 tree-sitter))
> + (synopsis "Guile bindings to the Tree-sitter parsing library")
> + (description "This package provides Guile bindings to the Tree-sitter
> +parsing library.")
> + (home-page "https://github.com/Z572/guile-ts")
> + (license license:gpl3+)))
> +
> (define-public guile-irc
> (let ((commit "7d08ce6fdcb87ac668c5d3bfd5584247805507bb")
> (revision "1"))
>
> base-commit: 33f5b747b4a0a508e1ffc94a5bf425cff707c6e3
Tested the package with a following snippet of code:
--8<---------------cut here---------------start------------->8---
(use-modules (ts) (oop goops))
(define json-language
(get-ts-language-from-file
;; Can be obtained automatically from TREE_SITTER_GRAMMAR_PATH
"/gnu/store/537371mad55g34lkmzs3fzp33wh6kidk-profile/lib/tree-sitter/libtree-sitter-json.so"
"tree_sitter_json"))
(display (ts-language-version json-language))
(let* ((parser (make <ts-parser> #:language json-language))
(tree (ts-parser-parse-string parser #f "[1,null, \"hi\"]")))
(format #t "~s\n" (ts-node-sexp (ts-tree-root-node tree))))
--8<---------------cut here---------------end--------------->8---
guix shell guile guile-ts tree-sitter-json -- guile -s tmp.scm
Added native-search-paths to the package, so if it's installed in the
profile with tree-sitter grammars they are added to respective
environment variable.
--8<---------------cut here---------------start------------->8---
(native-search-paths
(list (search-path-specification
(variable "TREE_SITTER_GRAMMAR_PATH")
(files '("lib/tree-sitter")))))
--8<---------------cut here---------------end--------------->8---
Thank you for working on tree-sitter bindings, appreciate it very much!
Applied, slightly modified, pushed:
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=fca99c89b8
--
Best regards,
Andrew Tropin
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-10-27 12:26 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-26 15:03 [bug#66761] [PATCH] gnu: Add guile-ts Zheng Junjie
2023-10-27 12:24 ` bug#66761: " Andrew Tropin
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.