1;; SPDX-FileCopyrightText: 2025 Sören Tempel <soeren+git@soeren-tempel.net>2;;3;; SPDX-License-Identifier: GPL-3.0-only45(define-module (quebex-packages)6 #:use-module (guix) ; XXX: this helps 'current-source-directory'7 #:use-module ((guix licenses) #:prefix license:)8 #:use-module (gnu packages c)9 #:use-module (gnu packages haskell)10 #:use-module (gnu packages haskell-apps)11 #:use-module (gnu packages haskell-check)12 #:use-module (gnu packages haskell-xyz)13 #:use-module (gnu packages maths)14 #:use-module (guix build-system haskell)15 #:use-module (guix download)16 #:use-module (guix gexp)17 #:use-module (guix git-download)18 #:use-module (guix packages))1920(define-public ghc-simple-smt21 (package22 (name "ghc-simple-smt")23 (version "0.9.8")24 (source25 (origin26 (method url-fetch)27 (uri (hackage-uri "simple-smt" version))28 (sha25629 (base32 "0imimkpzbd013gadkg7sc05jr70lffaij4ijzk368iw8xgvgxyf9"))))30 (build-system haskell-build-system)31 (properties '((upstream-name . "simple-smt")))32 (home-page "https://github.com/yav/simple-smt")33 (synopsis "Simple way to interact with an SMT solver process.")34 (description35 "This package provides a simple way to interact with an SMT solver process.")36 (license license:bsd-3)))3738;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3940(define %srcdir41 (string-append (current-source-directory) "/../.."))4243(define-public quebex-syntax44 (package45 (name "quebex-syntax")46 (version "0.1.0.0")47 (source (local-file (string-append %srcdir "/quebex-syntax")48 "git-checkout"49 #:recursive? #t))50 (build-system haskell-build-system)51 (inputs (list ghc-9.2))52 (native-inputs53 (list54 qbe55 ghc-tasty56 ghc-tasty-hunit57 ghc-tasty-golden))58 (synopsis "Parser library for the QBE intermediate language")59 (description "")60 (home-page "https://git.8pit.net/quebex")61 (license (list license:expat license:bsd-2 license:gpl3))))6263(define-public quebex64 (package65 (name "quebex")66 (version "0.1.0.0")67 (source (local-file (string-append %srcdir "/quebex")68 "git-checkout"69 #:recursive? #t))70 (build-system haskell-build-system)71 (inputs (list ghc-9.2))72 (native-inputs73 (list74 quebex-syntax75 ghc-tasty76 ghc-tasty-hunit))77 (synopsis "Analysis library for the QBE intermediate language")78 (description "")79 (home-page "https://git.8pit.net/quebex")80 (license (list license:expat license:gpl3))))8182(define-public quebex-symex83 (package84 (name "quebex-symex")85 (version "0.1.0.0")86 (source (local-file (string-append %srcdir "/quebex-symex")87 "git-checkout"88 #:recursive? #t))89 (build-system haskell-build-system)90 (inputs (list ghc-9.2))91 (propagated-inputs (list bitwuzla)) ;; TODO: Wrapper on quebex-cli?92 (native-inputs93 (list94 quebex95 quebex-syntax96 ghc-tasty97 ghc-tasty-hunit98 ghc-tasty-golden99 ghc-tasty-quickcheck100 ghc-simple-smt))101 (synopsis "Symbolic executor for the QBE intermediate language")102 (description "")103 (home-page "https://git.8pit.net/quebex")104 (license (list license:expat license:gpl3))))105106(define-public quebex-cli107 (package108 (name "quebex-cli")109 (version "0.1.0.0")110 (source (local-file (string-append %srcdir "/quebex-cli")111 "git-checkout"112 #:recursive? #t))113 (build-system haskell-build-system)114 (inputs (list ghc-9.2))115 (native-inputs116 (list117 quebex118 quebex-syntax119 quebex-symex120 ghc-optparse-applicative))121 (synopsis "Command line utilities for Quebex")122 (description "")123 (home-page "https://git.8pit.net/quebex")124 (license (list license:gpl3))))