@@ -62,6 +62,7 @@
;;; Copyright © 2023 Paul A. Patience <paul@apatience.com>
;;; Copyright © 2022 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2023 David Thompson <dthompson2@worcester.edu>
+;;; Copyright © 2023 Robin Templeton <robin@spritely.institute>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -157,6 +158,7 @@ (define-module (gnu packages web)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages linux)
#:use-module (gnu packages lisp-xyz)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages lsof)
#:use-module (gnu packages lua)
#:use-module (gnu packages mail)
@@ -1518,45 +1520,63 @@ (define-public libwebsockets
(define-public wabt
(package
(name "wabt")
- (version "1.0.12")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/WebAssembly/wabt")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1zlv3740wkqj4mn6sr84h0x6wk2lcp4pwwmqsh5yyqp1j1glbsa0"))))
+ (version "1.0.32")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/WebAssembly/wabt")
+ (commit version)
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0m124r8v9c0hxiaa4iy7ch4ng8msnirbc2vb702gbdjhvgzyrcwh"))))
(build-system cmake-build-system)
(arguments
- `(#:configure-flags '("-DBUILD_TESTS=OFF")
- #:tests? #f))
- (inputs `(("python" ,python-2)
- ("re2c" ,re2c)))
+ (list #:out-of-source? #t
+ #:test-target "check"
+ #:phases #~(modify-phases %standard-phases
+ ;; The wasm2c tests (e.g., "memory-init.txt") compile
+ ;; successfully with clang but not gcc.
+ (add-before 'check 'set-cc
+ (lambda _
+ (setenv "CC" "clang"))))))
+ (native-inputs (list python clang))
(home-page "https://github.com/WebAssembly/wabt")
(synopsis "WebAssembly Binary Toolkit")
- (description "WABT (pronounced: wabbit) is a suite of tools for
-WebAssembly, including:
+ (description
+ "WABT (pronounced: wabbit) is a suite of tools for WebAssembly,
+including:
@enumerate
-@item @command{wat2wasm} translates from WebAssembly text format to the
+@item @command{wat2wasm} translates from WebAssembly text format (WAT) to the
WebAssembly binary format
@item @command{wasm2wat} is the inverse; it translates from the binary format
-back to the text format (also known as a .wat)
+back to WAT
@item @command{wasm-objdump} prints information about a wasm binary, similarly
to @command{objdump}.
@item @command{wasm-interp} decodes ands run a WebAssembly binary file using a
stack-based interpreter
-@item @command{wat-desugar} parses .wat text form as supported by the spec
+@item @command{wasm-decompile} decompiles a wasm binary into a readable
+C-like syntax
+@item @command{wat-desugar} parses WAT text form as supported by the spec
interpreter (s-expressions, flat syntax, or mixed) and prints the canonical
flat format
@item @command{wasm2c} converts a WebAssembly binary file to a C source and
header file.
+@item @command{wasm-strip} removes sections of a WebAssembly binary file
+@item @command{wasm-validate} validates a file in the WebAssembly binary
+format
+@item @command{wast2json} converts a file in the WebAssembly spec test
+format to a JSON file and associated wasm binary file
+@item @command{wasm-opcodecnt} counts opcode usage for instructions
+@item @command{spectest-interp} reads a spectest JSON file and runs its
+test in the interpreter
@end enumerate
These tools are intended for use in (or for development of) toolchains or
other systems that want to manipulate WebAssembly files.")
+ (supported-systems '("x86_64-linux"))
(license license:asl2.0)))
(define-public wasm3