;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2022 Antero Mejr ;;; ;;; 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 data-language) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system cmake) #:use-module (guix git-download) #:use-module (guix packages) #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages c) #:use-module (gnu packages compression) #:use-module (gnu packages geo) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages maths) #:use-module (gnu packages ncurses) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages plotutils) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xml)) (define-public gnudatalanguage (package (name "gnudatalanguage") (version "1.0.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/gnudatalanguage/gdl") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1bb3nin3qrzx2dwdk08vffp4bblrcpv6vv1ybaj499qhqcpqpc12")))) (build-system cmake-build-system) (native-inputs (list python python-numpy)) (inputs (list eccodes eigen expat fftw fftwf glpk graphicsmagick gsl hdf4-alt hdf5 libgeotiff libjpeg-turbo libpng libtiff libtirpc ncurses netcdf plplot proj readline shapelib udunits wxwidgets zlib)) (home-page "https://gnudatalanguage.github.io/") (synopsis "Compiler for GDL, an IDL-compatible programming language") (description "GDL (GNU Data Language) is an incremental compiler compatible with IDL (Interactive Data Language) and to some extent with PV-WAVE. Together with its library routines it serves as a tool for data analysis and visualization in such disciplines as astronomy, geosciences and medical imaging.") (license license:gpl2+))) udovic Courtès 2022-08-08style: Move reader and printer to (guix read-print)....* guix/scripts/style.scm (<comment>, read-with-comments) (vhashq, %special-forms, %newline-forms, prefix?) (special-form-lead, newline-form?, escaped-string) (string-width, canonicalize-comment, pretty-print-with-comments) (object->string*): Move to... * guix/read-print.scm: ... here. New file. * guix/scripts/import.scm: Adjust accordingly. * tests/style.scm: Move 'test-pretty-print' and tests to... * tests/read-print.scm: ... here. New file. * Makefile.am (MODULES): Add 'guix/read-print.scm'. (SCM_TESTS): Add 'tests/read-print.scm'. Ludovic Courtès 2022-07-04style: For 'let' and similar forms, emit one binding per line....Previously, 'let' bindings could be rendered like this: (let ((x 1) (y 2) (z 3)) ...) With this change, each bindings goes in its own line. Partly fixes <https://issues.guix.gnu.org/56297>. Reported by Maxime Devos <maximedevos@telenet.be>. * guix/scripts/style.scm (pretty-print-with-comments)[list-of-lists?]: New procedure. Use it. * tests/style.scm: Add tests with 'let' and 'substitute-keyword-arguments'. Ludovic Courtès 2022-06-22style: Keep values next to their keyword....This ensures we print '#:key value' rather than insert a newline between '#:key' and 'value' as was the case before. * guix/scripts/style.scm (pretty-print-with-comments)[print-sequence]: When ITEM is a keyword, loop with FIRST? = true. * tests/style.scm: Add test. Ludovic Courtès 2022-04-14style: Correctly read dots in pairs and improper lists....Until now dots were read as symbols. * guix/scripts/style.scm (read-with-comments)[dot]: New variable. [dot?, reverse/dot]: New procedures. Use 'reverse/dot' instead of 'reverse' when reading lists. * tests/style.scm ("read-with-comments: dot notation") ("((a . 1) (b . 2))", "(a b c . boom)"): New tests. Ludovic Courtès