aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; 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 pure)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix git-download)
  #:use-module (guix utils)
  #:use-module (guix build-system gnu)
  #:use-module (guix gexp)
  #:use-module (gnu packages)
  #:use-module (gnu packages llvm)
  #:use-module (gnu packages multiprecision))

(define-public pure
  (package
    (name "pure")
    (version "0.68")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "https://github.com/agraef/pure-lang/releases/"
                           "download/pure-" version "/"
                           "pure-" version ".tar.gz"))
       (sha256
        (base32
         "0px6x5ivcdbbp2pz5n1r1cwg1syadklhjw8piqhl63n91i4r7iyb"))))
    (build-system gnu-build-system)
    (arguments
     `(#:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
                                         (assoc-ref %outputs "out")
                                         "/lib"))
       #:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'patch-llvm-lookup
           (lambda _
             (substitute* "configure"
               (("-lLLVM-[$][{]llvm_version[}]")
                "`$LLVMCONF --libs`"))
             #t)))))
    (inputs
     (list gmp llvm-3.5 mpfr))
    (home-page "https://agraef.github.io/pure-lang/")
    (synopsis "Programming Language")
    (description "@code{pure} is a programming language based on term
rewriting.  It offers equational definitions with pattern matching,
full symbolic rewriting capabilities, dynamic typing, eager and lazy
evaluation, lexical closures, built-in list and matrix support and
a C interface.")
    (license license:gpl3+)))
/td> 2019-05-06gnu: gcc: Add 9.1.0....* gnu/packages/gcc.scm (gcc-9): New variable. * gnu/packages/commencement.scm (gcc-toolchain-9): New variable. * gnu/packages/patches/gcc-9-strmov-store-file-names.patch: New file. * gnu/local.mk (dist_patch_DATA): Add the patch. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Carl Dong 2019-02-28gnu: GCC: Update to 8.3.0....* gnu/packages/gcc.scm (gcc-8): Update to 8.3.0. Marius Bakke 2018-12-08gnu: GCC@7: Update to 7.4.0....* gnu/packages/gcc.scm (gcc-7): Update to 7.4.0. [source](patches): Drop 'gcc-libsanitizer-ustat.patch'. * gnu/packages/storage.scm (ceph)[inputs]: Change from BOOST to BOOST-CXX14, as GCC 7.4.0 triggers <https://bugs.gnu.org/33605>. Marius Bakke 2018-12-08gnu: GCC@6: Update to 6.5.0....* gnu/packages/patches/gcc-libsanitizer-fix.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. * gnu/packages/gcc.scm (gcc-6): Update to 6.5.0. [source](patches): Drop obsolete patches. [source](snippet): Remove. Marius Bakke 2018-09-09Merge branch 'master' into core-updatesMarius Bakke 2018-09-06gnu: gfortran, gcc-objc, gcc-objc++: Add version 8....* gnu/packages/gcc.scm (gfortran-8, gcc-objc-8, gcc-objc++-8): New variables. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Eric Brown 2018-09-01gnu: gcc@4.9: Fix FTBFS with Glibc >= 2.28....* gnu/packages/commencement.scm (gcc-for-libstdc++): New variable. (libstdc++-boot0): Inherit from GCC-FOR-LIBSTDC++ instead of GCC-4.9. * gnu/packages/gcc.scm (gcc-4.9)[source](patches): Add "gcc-4.9-libsanitizer-ustat.patch". * gnu/packages/patches/gcc-4.9-libsanitizer-ustat.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. Marius Bakke 2018-08-26gnu: gcc: Include libsanitizer patch for versions 6 and 7....* gnu/packages/gcc.scm (gcc-6, gcc-7)[source](patches): Add "gcc-libsanitizer-ustat.patch". Marius Bakke 2018-08-25Merge branch 'staging' into core-updatesMarius Bakke 2018-08-25gnu: gcc: Fix build with glibc >= 2.28....* gnu/packages/patches/gcc-libsanitizer-ustat.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/gcc.scm (gcc-5)[source](patches): Add it. Marius Bakke 2018-08-19gnu: gcc@4.8: Fix libsanitizer build issue....Fixes <https://bugs.gnu.org/32397>. Reported by fis trivial <ybbs.daans@hotmail.com>. * gnu/packages/patches/gcc-4.8-libsanitizer-fix.patch: New file. * gnu/packages/gcc.scm (gcc-4.8)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Add it. Ludovic Courtès 2018-08-12gnu: gcc@5: Build with isl@0.18....* gnu/packages/gcc.scm (gcc-5)[inputs]: Change ISL to ISL-0.18. (isl-0.18): New public variable. Marius Bakke 2018-08-01Merge branch 'master' into core-updatesMarius Bakke 2018-07-27gnu: gcc@8: Update to 8.2.0....* gnu/packages/gcc.scm (gcc-8): Update to 8.2.0. Ludovic Courtès 2018-07-24Merge branch 'master' into core-updatesMarius Bakke 2018-07-02Merge branch 'master' into stagingMarius Bakke 2018-06-29Merge branch 'master' into core-updatesRicardo Wurmus 2018-06-26gnu: Add gcc@8....* gnu/packages/patches/gcc-8-strmov-store-file-names.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/gcc.scm (gcc-8): New public variable. Marius Bakke 2018-06-14gnu: custom-gcc: Fix regex used for matching executables....Fixes <https://bugs.gnu.org/31561>. * gnu/packages/gcc.scm (custom-gcc)[arguments]: Fix regex used for matching broken or conflicting executables. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> Alex Vong 2018-06-12gnu: isl: Update to 0.19....* gnu/packages/gcc.scm (isl): Update to 0.19. Tobias Geerinckx-Rice 2018-05-08Merge branch 'master' into core-updatesMark H Weaver 2018-05-07gnu: gcc > 5: Use 'CPATH' instead of 'C_INCLUDE_PATH' & co....Partly addresses <https://bugs.gnu.org/30756>. Reported by julien lepiller <julien@lepiller.eu>, Marius Bakke <mbakke@fastmail.com>, and Giel van Schijndel <giel@mortis.eu> * gnu/packages/gcc.scm (gcc-6)[native-search-paths]: New field. Ludovic Courtès 2018-04-21gnu: gcc@4.7: Combine duplicate 'patches' fields into one....* gnu/packages/gcc.scm (gcc-4.7)[source]: Combine duplicate 'patches' fields into one. Previously, the first 'patches' field was being ignored. Mark H Weaver 2018-04-12gnu: gnu-c-manual: Use invoke....* gnu/packages/gcc.scm (gnu-c-manual)[arguments]: Use invoke. Mark H Weaver 2018-04-12gnu: libstdc++-doc: Use invoke....* gnu/packages/gcc.scm (make-libstdc++-doc)[arguments]: Use invoke. Mark H Weaver 2018-03-16gnu: libstdc++: Return #t from chdir phase....* gnu/packages/gcc.scm (make-libstdc++)[arguments]: Return #t from chdir phase. Mark H Weaver 2018-03-16gnu: All snippets report errors using exceptions, else return #t....* gnu/packages/admin.scm, gnu/packages/algebra.scm, gnu/packages/audio.scm, gnu/packages/backup.scm, gnu/packages/base.scm, gnu/packages/bioinformatics.scm, gnu/packages/cdrom.scm, gnu/packages/chez.scm, gnu/packages/code.scm, gnu/packages/compression.scm, gnu/packages/cross-base.scm, gnu/packages/crypto.scm, gnu/packages/cups.scm, gnu/packages/databases.scm, gnu/packages/dns.scm, gnu/packages/emacs.scm, gnu/packages/emulators.scm, gnu/packages/engineering.scm, gnu/packages/enlightenment.scm, gnu/packages/fpga.scm, gnu/packages/freedesktop.scm, gnu/packages/ftp.scm, gnu/packages/games.scm, gnu/packages/gcc.scm, gnu/packages/geo.scm, gnu/packages/ghostscript.scm, gnu/packages/gl.scm, gnu/packages/glib.scm, gnu/packages/gnome.scm, gnu/packages/gnuzilla.scm, gnu/packages/graphics.scm, gnu/packages/gtk.scm, gnu/packages/guile.scm, gnu/packages/irc.scm, gnu/packages/java.scm, gnu/packages/kerberos.scm, gnu/packages/linux.scm, gnu/packages/lisp.scm, gnu/packages/lxde.scm, gnu/packages/machine-learning.scm, gnu/packages/mail.scm, gnu/packages/maths.scm, gnu/packages/messaging.scm, gnu/packages/monitoring.scm, gnu/packages/mp3.scm, gnu/packages/music.scm, gnu/packages/netpbm.scm, gnu/packages/networking.scm, gnu/packages/node.scm, gnu/packages/nvi.scm, gnu/packages/ocaml.scm, gnu/packages/pdf.scm, gnu/packages/perl.scm, gnu/packages/php.scm, gnu/packages/plotutils.scm, gnu/packages/pretty-print.scm, gnu/packages/profiling.scm, gnu/packages/pulseaudio.scm, gnu/packages/python-crypto.scm, gnu/packages/python.scm, gnu/packages/qt.scm, gnu/packages/robotics.scm, gnu/packages/sawfish.scm, gnu/packages/scanner.scm, gnu/packages/scheme.scm, gnu/packages/scribus.scm, gnu/packages/sdl.scm, gnu/packages/serialization.scm, gnu/packages/shells.scm, gnu/packages/slang.scm, gnu/packages/smalltalk.scm, gnu/packages/ssh.scm, gnu/packages/sync.scm, gnu/packages/syncthing.scm, gnu/packages/tbb.scm, gnu/packages/terminals.scm, gnu/packages/texinfo.scm, gnu/packages/text-editors.scm, gnu/packages/textutils.scm, gnu/packages/tls.scm, gnu/packages/unrtf.scm, gnu/packages/version-control.scm, gnu/packages/video.scm, gnu/packages/vpn.scm, gnu/packages/web.scm, gnu/packages/wm.scm, gnu/packages/wxwidgets.scm, gnu/packages/xdisorg.scm, gnu/packages/xorg.scm: In all snippets, report errors using exceptions, or else return #t. Mark H Weaver 2018-02-20gnu: gcc@4.7: Update phase style....* gnu/packages/gcc.scm (gcc-4.7)[arguments]: Use MODIFY-PHASES syntax and end phases with #t. Tobias Geerinckx-Rice 2018-02-18gnu: gcc@4.9: Fix libsanitizer compilation with glibc 2.26....* gnu/packages/patches/gcc-4.9-libsanitizer-fix.patch: New file. * gnu/packages/gcc.scm (gcc-4.9)[source](patches): Add it. * gnu/local.mk (dist_patch_DATA): Add it. Ludovic Courtès 2018-01-26Merge branch 'master' into core-updatesMark H Weaver 2018-01-25gnu: gcc@7: Update to 7.3.0....* gnu/packages/gcc.scm (gcc-7): Update to 7.3.0. Mark H Weaver 2018-01-18gnu: gcc@4.9: Fix libsanitizer cross-compilation....* gnu/packages/gcc.scm (gcc@4.9)[source]: Add gcc-asan-missing-include patch. Efraim Flashner 2018-01-18gnu: gcc@4.9: Fix building with glibc@2.26....* gnu/packages/gcc.scm (gcc@4.9)[source]: Add snippet to adjust linux-unwind.h to changes in glibc. * gnu/packages/commencement.scm (gcc-for-libstdc++): New variable. (libstdc++-boot0): Inherit from gcc-for-libstdc++, update note. Efraim Flashner 2018-01-05gnu: gcc@6: Fix building with glibc@2.26....* gnu/packages/gcc.scm (gcc@6)[source]: Add snippet to adjust linux-unwind.h to changes in glibc@2.26. Add patch. * gnu/packages/patches/gcc-libsanitizer-fix.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. Efraim Flashner 2018-01-03gnu: gcc@4.8: Fix libsanitizer cross-compilation....This patch is modified from the original patch targeting gcc@5. * gnu/packages/patches/gcc-asan-missing-include.patch: New file. * gnu/packages/gcc.scm (gcc@4.8)[source](patches): Add it. * gnu/local.mk (dist_patch_DATA): Add it. Ludovic Courtès 2018-01-03gnu: gcc@4.8: Fix building with glibc@2.26....* gnu/packages/gcc.scm (gcc@4.8)[source]: Add snippet to adjust linux-unwind.h to changes in glibc@2.26. Efraim Flashner 2017-12-31gnu: gcc: Fix cross-compilation to GNU/Hurd....* gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): Return "--disable-libcilkrts" when TARGET matches "-gnu". Ludovic Courtès 2017-12-20gnu: gcc: Fix cross-compilation....Previously "guix build gcc@5 --target=TRIPLET" would fail like this: checking for exported symbols... /tmp/guix-build-gcc-5.5.0.drv-0/gcc-5.5.0/libcc1/configure: line 14531: -T: command not found yes checking for -rdynamic... /tmp/guix-build-gcc-5.5.0.drv-0/gcc-5.5.0/libcc1/configure: line 14541: -T: command not found no checking for library containing dlopen... -ldl checking for -fPIC -shared... yes configure: error: Building GCC with plugin support requires a host that supports -fPIC, -shared, -ldl and -rdynamic. * gnu/packages/gcc.scm (gcc-4.7)[maybe-target-tools]: Add "OBJDUMP". (gcc-5)[source](snippet, modules): New fields. Ludovic Courtès 2017-12-05Merge branch 'master' into core-updatesMarius Bakke 2017-11-20gnu: gcc@6: Respect SOURCE_DATE_EPOCH in __DATE__ and __TIME__ macros....* gnu/packages/patches/gcc-6-source-date-epoch-1.patch, gnu/packages/patches/gcc-6-source-date-epoch-2.patch: New files. * gnu/local.mk (dist_patch_DATA): Register them. * gnu/packages/gcc.scm (gcc-6)[source]: Use them. Marius Bakke 2017-11-19Merge branch 'master' into core-updatesMarius Bakke 2017-11-07gnu: gcc-4.7: Resurrect building with gcc-5.4.0....* gnu/packages/patches/gcc-4-compile-with-gcc-5.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/gcc.scm (gcc-4.7): Use it. Jan Nieuwenhuizen