aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/debug.scm
blob: a661dcef854c2f8404cba17a2180ae74bbdf4088 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;;
;;; 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 (gnu packages debug)
  #:use-module (guix packages)
  #:use-module (guix licenses)
  #:use-module (guix download)
  #:use-module (guix utils)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages bash)
  #:use-module (gnu packages flex)
  #:use-module (gnu packages indent)
  #:use-module (gnu packages llvm)
  #:use-module (gnu packages perl)
  #:use-module (gnu packages pretty-print))

(define-public delta
  (package
    (name "delta")
    (version "2006.08.03")
    (source
     (origin
      (method url-fetch)
      (uri (list
            (string-append "http://ftp.de.debian.org/debian/pool/main/d/delta/"
                           "delta_" version ".orig.tar.gz")
            ;; This uri seems to send guix download into an infinite loop
            (string-append "http://delta.tigris.org/files/documents/3103/"
                           "33566/delta-" version ".tar.gz")))
      (sha256
       (base32
        "184wh35pf2ddx97319s6sgkzpz48xxkbwzcjpycv009bm53lh61q"))))
    (build-system gnu-build-system)
    (inputs                             ;Installed programs are perl scripts
     `(("perl" ,perl)))
    (arguments
     `(#:phases
       (alist-replace
        'install
        (lambda* (#:key outputs #:allow-other-keys)
          ;; Makefile contains no install target
          (let* ((out (assoc-ref outputs "out"))
                 (bin (string-append out "/bin"))
                 (doc (string-append out "/share/doc/delta-" ,version)))
            (begin
              (mkdir-p bin)
              (mkdir-p doc)
              (for-each (lambda (h)
                          (copy-file h (string-append doc "/" (basename h))))
                        `("License.txt" ,@(find-files "www" ".*\\.html")))
              (for-each (lambda (b)
                          (copy-file b (string-append bin "/" b)))
                        `("delta" "multidelta" "topformflat")))))
        (alist-delete 'configure %standard-phases))))
    (home-page "http://delta.tigris.org/")
    (synopsis "Heuristical file minimizer")
    (description
     "Delta assists you in minimizing \"interesting\" files subject to a test
of their interestingness.  A common such situation is when attempting to
isolate a small failure-inducing substring of a large input that causes your
program to exhibit a bug.")
    ;; See License.txt, which is a bsd-3 license, despite the project's
    ;; home-page pointing to a bsd-2 license.
    (license bsd-3)))

(define-public c-reduce
  (package
    (name "c-reduce")
    (version "2.2.1")
    (source
     (origin
      (method url-fetch)
      (uri (list
            (string-append "http://embed.cs.utah.edu/creduce/"
                           "creduce-" version ".tar.gz")))
      (sha256
       (base32
        "0wh0fkyg2l41d2wkndrgdiai9g2qiav7jik7cys21vmgzq01pyy2"))
      (modules '((guix build utils)))
      (snippet
       '(substitute* "clang_delta/TransformationManager.cpp"
          (("llvm/Config/config.h") "llvm/Config/llvm-config.h")))))
    (build-system gnu-build-system)
    (inputs
     `(("astyle"          ,astyle)
       ("delta"           ,delta)
       ("llvm"            ,llvm-3.5)
       ("clang"           ,clang-3.5)
       ("flex"            ,flex)
       ("indent"          ,indent)
       ("perl"            ,perl)
       ("benchmark-timer" ,perl-benchmark-timer)
       ("exporter-lite"   ,perl-exporter-lite)
       ("file-which"      ,perl-file-which)
       ("getopt-tabular"  ,perl-getopt-tabular)
       ("regex-common"    ,perl-regexp-common)
       ("sys-cpu"         ,perl-sys-cpu)))
    (arguments
     `(#:phases (alist-cons-after
                 'install 'set-load-paths
                 (lambda* (#:key inputs outputs #:allow-other-keys)
                   ;; Tell creduce where to find the perl modules it needs.
                   (let* ((out (assoc-ref outputs "out"))
                          (prog (string-append out "/bin/creduce")))
                     (wrap-program
                      prog
                      `("PERL5LIB" ":" prefix
                        ,(map (lambda (p)
                                (string-append (assoc-ref inputs p)
                                               "/lib/perl5/site_perl/"
                                               ,(package-version perl)))
                              '("benchmark-timer" "exporter-lite"
                                "file-which"      "getopt-tabular"
                                "regex-common"    "sys-cpu"))))))
                 %standard-phases)))
    (home-page "http://embed.cs.utah.edu/creduce")
    (synopsis "Reducer for interesting code")
    (description
     "C-Reduce is a tool that takes a large C or C++ program that has a
property of interest (such as triggering a compiler bug) and automatically
produces a much smaller C/C++ program that has the same property.  It is
intended for use by people who discover and report bugs in compilers and other
tools that process C/C++ code.")
    (license ncsa)))
emplatifyjs&id=a10c7793bb282a4023337c08c623b7607921655f'>v3.12.4Alex Lam S.L 2020-12-31fix corner case with `arguments` (#4486)Alex Lam S.L fixes #4485 2020-12-31fix corner case with default values (#4484)Alex Lam S.L fixes #4483 2020-12-30improve false positive detection in `ufuzz` (#4482)Alex Lam S.L 2020-12-30fix corner cases with `arguments` (#4481)Alex Lam S.L fixes #4480 2020-12-29enhance `reduce_vars` (#4479)Alex Lam S.L 2020-12-29fix corner case in `arguments` (#4477)Alex Lam S.L fixes #4476 2020-12-29expand test options (#4475)Alex Lam S.L - fix corner cases in `hoist_vars` & `keep_fnames` 2020-12-28workaround asynchronous tty bugs on Node.js (#4473)Alex Lam S.L 2020-12-28fix corner case in `inline` (#4472)Alex Lam S.L fixes #4471 2020-12-27fix corner case in `unused` (#4469)Alex Lam S.L fixes #4468 2020-12-27workaround v8 bug with labels (#4467)Alex Lam S.L closes #4466 2020-12-26workaround `schedule` delays on GitHub Actions (#4463)Alex Lam S.L 2020-12-26fix corner case in `reduce_vars` & `unused` (#4465)Alex Lam S.L fixes #4464 2020-12-26fix corner cases in `collapse_vars` (#4462)Alex Lam S.L fixes #4460 fixes #4461 2020-12-25fix corner case in `reduce_vars` (#4459)Alex Lam S.L fixes #4458 2020-12-25fix corner case in `unused` (#4457)Alex Lam S.L fixes #4456 2020-12-25fix corner case in `merge_vars` (#4455)Alex Lam S.L fixes #4454 2020-12-25workaround v8 heisenbug (#4453)Alex Lam S.L 2020-12-25fix corner case in `functions` & `reduce_vars` (#4452)Alex Lam S.L fixes #4451 2020-12-25enhance `default_values` (#4450)Alex Lam S.L