;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2024 Rodion Goritskov ;;; Copyright © 2024 Sharlatan Hellseher ;;; ;;; 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 golang-maths) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system go) #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix packages) #:use-module (gnu packages)) ;;; Commentary: ;;; ;;; Please: Try to add new module packages in alphabetic order. ;;; ;;; Code: ;;; ;;; Libraries: ;;; (define-public go-github-com-montanaflynn-stats (package (name "go-github-com-montanaflynn-stats") (version "0.7.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/montanaflynn/stats") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0y38cvp7r6fb6291k82j781dbykx00mxw8ca0v9d0fijzc1x81fi")))) (build-system go-build-system) (arguments (list #:import-path "github.com/montanaflynn/stats")) (home-page "https://github.com/montanaflynn/stats") (synopsis "Statistics library for Golang") (description "This package provides a statistical library for Golang.") (license license:expat))) (define-public go-github-com-shopspring-decimal (package (name "go-github-com-shopspring-decimal") (version "1.4.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/shopspring/decimal") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1p1iz0ybsjvc8k3w6lf92drs51fgrcbz0ib1p4ihp3gmdq5rnzjk")))) (build-system go-build-system) (arguments (list #:import-path "github.com/shopspring/decimal")) (home-page "https://github.com/shopspring/decimal") (synopsis "Arbitrary-precision fixed-point decimal numbers in Golang") (description "Package decimal implements an arbitrary precision fixed-point decimal. Features: @itemize @item the zero-value is 0, and is safe to use without initialization @item addition, subtraction, multiplication with no loss of precision @item division with specified precision @item database/sql serialization/deserialization @item JSON and XML serialization/deserialization @end itemize") (license license:expat))) (define-public go-github-com-x448-float16 (package (name "go-github-com-x448-float16") (version "0.8.4") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/x448/float16") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0qg6ya30fra20hpa2qzqqzs8l95lvw9yzd87fdzq195xqi6crb2l")))) (build-system go-build-system) (arguments (list #:import-path "github.com/x448/float16")) (home-page "https://github.com/x448/float16") (synopsis "Float16 (Binary16) in Golang") (description "This package provides a @url{https://en.wikipedia.org/wiki/Half-precision_floating-point_format,IEEE 754 half-precision floating-point format (binary16)} with IEEE 754 default rounding for conversions. IEEE 754-2008 refers to this 16-bit floating-point format as binary16.") (license license:expat))) ;;; ;;; Executables: ;;; ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above in alphabetic order. ;;; o ee3226e9d54891c7e696912245e4904435be191c. * guix/scripts/substitute.scm (display-narinfo-data): Add 'port' parameter and honor it. (process-query): Likewise. (process-substitution): Likewise. (%error-to-file-descriptor-4?, with-redirected-error-port): Remove. (%reply-file-descriptor): New variable. (guix-substitute): Remove use of 'with-redirected-error-port'. Define 'reply-port' and pass it to 'process-query' and 'process-substitution'. * nix/libstore/build.cc (SubstitutionGoal::handleChildOutput): Swap 'builderOut' and 'fromAgent'. * nix/libstore/local-store.cc (LocalStore::getLineFromSubstituter): Likewise. * tests/substitute.scm <top level>: Set '%reply-file-descriptor' rather than '%error-to-file-descriptor-4?'. Ludovic Courtès 2020-12-08daemon: Factorize substituter agent spawning....* nix/libstore/local-store.hh (class LocalStore)[substituter]: New method. [runningSubstituter]: Turn into a shared_ptr. * nix/libstore/local-store.cc (LocalStore::querySubstitutablePaths): Call 'substituter' instead of using inline code. (LocalStore::querySubstitutablePathInfos): Likewise. (LocalStore::substituter): New method. Ludovic Courtès 2020-12-08daemon: Use 'Agent' to spawn 'guix substitute --query'....* nix/libstore/local-store.hh (RunningSubstituter): Remove. (LocalStore)[runningSubstituter]: Change to unique_ptr<Agent>. [setSubstituterEnv, didSetSubstituterEnv]: Remove. [getLineFromSubstituter, getIntLineFromSubstituter]: Take an 'Agent'. * nix/libstore/local-store.cc (LocalStore::~LocalStore): Remove reference to 'runningSubstituter'. (LocalStore::setSubstituterEnv, LocalStore::startSubstituter): Remove. (LocalStore::getLineFromSubstituter): Adjust to 'run' being an 'Agent'. (LocalStore::querySubstitutablePaths): Spawn substituter agent if needed. Adjust to 'Agent' interface. (LocalStore::querySubstitutablePathInfos): Likewise. * nix/libstore/build.cc (SubstitutionGoal::tryToRun): Remove call to 'setSubstituterEnv' and add 'setenv' call for "_NIX_OPTIONS" instead. (SubstitutionGoal::finished): Remove 'readLine' call for 'dummy'. * guix/scripts/substitute.scm (%allow-unauthenticated-substitutes?): Remove second argument to 'make-parameter'. (process-query): Call 'warn-about-missing-authentication' when (%allow-unauthenticated-substitutes?) is #t. (guix-substitute): Wrap body in 'parameterize'. Set 'guix-warning-port' too. No longer exit when 'substitute-urls' returns the empty list. No longer print newline initially. * tests/substitute.scm (test-quit): Parameterize 'current-error-port' to account for the port changes in 'guix-substitute'. Ludovic Courtès