From 906e8bd6fe66e330e090ee6c2176a2d5bebdd7fd Mon Sep 17 00:00:00 2001 From: Nikita Karetnikov Date: Thu, 31 Jan 2013 04:01:32 +0000 Subject: [PATCH] gnu: Add GNU Prolog. * gnu/packages/gprolog.scm: New file. * Makefile.am (MODULES): Add it. --- Makefile.am | 1 + gnu/packages/gprolog.scm | 94 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 0 deletions(-) create mode 100644 gnu/packages/gprolog.scm diff --git a/Makefile.am b/Makefile.am index cbccd28..907e885 100644 --- a/Makefile.am +++ b/Makefile.am @@ -78,6 +78,7 @@ MODULES = \ gnu/packages/gnupg.scm \ gnu/packages/gnutls.scm \ gnu/packages/gperf.scm \ + gnu/packages/gprolog.scm \ gnu/packages/groff.scm \ gnu/packages/gsasl.scm \ gnu/packages/guile.scm \ diff --git a/gnu/packages/gprolog.scm b/gnu/packages/gprolog.scm new file mode 100644 index 0000000..5bd5dba --- /dev/null +++ b/gnu/packages/gprolog.scm @@ -0,0 +1,94 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Nikita Karetnikov +;;; +;;; 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 . + +(define-module (gnu packages gprolog) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public gprolog + (package + (name "gprolog") + (version "1.4.2") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.gprolog.org/gprolog-" + version ".tar.gz")) + (sha256 + (base32 + "0y25c2gwz41i6g28qyfjklrmanzgk0c8cr4jn2s7s8qgd9dnm1fm")))) + (build-system gnu-build-system) + (arguments `(#:phases (alist-cons-before + 'configure 'fix-sh + (lambda _ + (substitute* "./src/configure" + (("-/bin/sh") + (string-append "-" (which "sh")))) + (substitute* "./src/configure" + (("= /bin/sh") + (string-append "= " (which "sh"))))) + (alist-replace + 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (zero? (system + (string-append "cd src && ./configure " + "--prefix=" out))))) + (alist-replace + 'build + (lambda _ + (zero? (system "cd src && make"))) + (alist-replace + 'check + (lambda _ + (zero? (system "cd src && make check"))) + (alist-replace + 'install + (lambda _ + (zero? (system "cd src && make install"))) + %standard-phases))))))) + (home-page + "http://www.gnu.org/software/gprolog/") + (synopsis + "GNU Prolog, a free Prolog compiler with constraint solving over +finite domains") + (description + "GNU Prolog is a free Prolog compiler with constraint solving over +finite domains developed by Daniel Diaz. + +GNU Prolog accepts Prolog+constraint programs and produces native +binaries (like gcc does from a C source). The obtained executable is +then stand-alone. The size of this executable can be quite small since +GNU Prolog can avoid to link the code of most unused built-in +predicates. The performances of GNU Prolog are very +encouraging (comparable to commercial systems). + +Beside the native-code compilation, GNU Prolog offers a classical +interactive interpreter (top-level) with a debugger. + +The Prolog part conforms to the ISO standard for Prolog with many +extensions very useful in practice (e.g., global variables, OS +interface, sockets). + +GNU Prolog also includes an efficient constraint solver over Finite +Domains (FD). This opens contraint logic programming to the user +combining the power of constraint programming to the declarativity of +logic programming.") + (license '(gpl2+ lgpl3+)))) \ No newline at end of file -- 1.7.5.4