From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 10 17:09:07 2019 Received: (at submit) by debbugs.gnu.org; 10 Jun 2019 21:09:07 +0000 Received: from localhost ([127.0.0.1]:57540 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1haRXP-0005SM-9y for submit@debbugs.gnu.org; Mon, 10 Jun 2019 17:09:07 -0400 Received: from lists.gnu.org ([209.51.188.17]:45219) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1haRXM-0005SC-72 for submit@debbugs.gnu.org; Mon, 10 Jun 2019 17:09:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55805) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1haRXL-0006M9-4Z for guix-patches@gnu.org; Mon, 10 Jun 2019 17:09:04 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_20 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:470:142:3::e]:59365) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1haRXK-0005WP-KD; Mon, 10 Jun 2019 17:09:02 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=59690 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1haRXJ-0006Aq-Kg; Mon, 10 Jun 2019 17:09:02 -0400 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= To: guix-patches@gnu.org Subject: [PATCH 0/4] Add 'remote-eval' Date: Mon, 10 Jun 2019 23:08:53 +0200 Message-Id: <20190610210853.5709-1-ludo@gnu.org> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit Cc: =?UTF-8?q?Ludovic=20Court=C3=A8s?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hello Guix! This patch series add ‘remote-eval’, which takes a gexp, remotely deploys everything the gexp refers to, and evaluates it (see for the initial discussion.) So you can have gexps like: #~(execl #$(file-append ffmpeg "/bin/ffmpeg") …) When you evaluate it, this specific ‘ffmpeg’ will be deployed over there. Another example is: (with-imported-modules (source-module-closure '((gnu services herd))) #~(begin (use-modules (gnu services herd)) (map live-service-provision (current-services)))) This gexp, when evaluated remotely, will use your very own (gnu services herd) module and the corresponding Guile (so if you’re on Guile 3 and the remote is still on Guile 2, that’s fine: Guile 3 will first be deployed there.) ‘remote-eval’ allows you to build locally and send the build results, or to send the derivations and build remotely. The use case is for code that deals with state or has a side effect. Otherwise you’d just use a derivation and offload it. There are no tests for ‘remote-eval’ currently. It would need a VM with access to the store, as Jakob explained on guix-devel. Thoughts? Ludo’. Ludovic Courtès (4): gexp: Add 'lower-gexp' and express 'gexp->derivation' in terms of it. Add (guix repl). inferior: Add 'read-repl-response'. Add (guix remote). Makefile.am | 2 + guix/gexp.scm | 238 +++++++++++++++++++++++++++++++----------- guix/inferior.scm | 9 +- guix/remote.scm | 130 +++++++++++++++++++++++ guix/repl.scm | 86 +++++++++++++++ guix/scripts/repl.scm | 56 +--------- tests/gexp.scm | 37 +++++++ 7 files changed, 444 insertions(+), 114 deletions(-) create mode 100644 guix/remote.scm create mode 100644 guix/repl.scm -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 10 17:41:51 2019 Received: (at 36162) by debbugs.gnu.org; 10 Jun 2019 21:41:51 +0000 Received: from localhost ([127.0.0.1]:57575 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1haS34-0006Ih-GH for submit@debbugs.gnu.org; Mon, 10 Jun 2019 17:41:51 -0400 Received: from eggs.gnu.org ([209.51.188.92]:54430) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1haS2z-0006IN-Ua for 36162@debbugs.gnu.org; Mon, 10 Jun 2019 17:41:46 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60151) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1haS2u-00015F-Kn; Mon, 10 Jun 2019 17:41:40 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=33892 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1haS2s-0001fJ-5h; Mon, 10 Jun 2019 17:41:40 -0400 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= To: 36162@debbugs.gnu.org Subject: [PATCH 1/4] gexp: Add 'lower-gexp' and express 'gexp->derivation' in terms of it. Date: Mon, 10 Jun 2019 23:41:27 +0200 Message-Id: <20190610214130.19378-1-ludo@gnu.org> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 36162 Cc: =?UTF-8?q?Ludovic=20Court=C3=A8s?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) * guix/gexp.scm (gexp-input-thing, gexp-input-output) (gexp-input-native?): Export. (lower-inputs): Return records instead of tuples. (lower-reference-graphs): Adjust accordingly. (): New record type. (lower-gexp, gexp-input->tuple): New procedure. (gexp->derivation)[%modules]: Remove. [requested-graft?]: New variable. [add-modules]: New procedure. Rewrite in terms of 'lower-gexp'. (gexp-inputs): Add TODO comment. * tests/gexp.scm ("lower-gexp"): New test. --- guix/gexp.scm | 238 +++++++++++++++++++++++++++++++++++++------------ tests/gexp.scm | 37 ++++++++ 2 files changed, 216 insertions(+), 59 deletions(-) diff --git a/guix/gexp.scm b/guix/gexp.scm index 4f2adba90a..38f64db7f1 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -39,6 +39,9 @@ gexp-input gexp-input? + gexp-input-thing + gexp-input-output + gexp-input-native? local-file local-file? @@ -78,6 +81,14 @@ load-path-expression gexp-modules + lower-gexp + lowered-gexp? + lowered-gexp-sexp + lowered-gexp-inputs + lowered-gexp-guile + lowered-gexp-load-path + lowered-gexp-load-compiled-path + gexp->derivation gexp->file gexp->script @@ -566,15 +577,20 @@ list." "Turn any package from INPUTS into a derivation for SYSTEM; return the corresponding input list as a monadic value. When TARGET is true, use it as the cross-compilation target triplet." + (define (store-item? obj) + (and (string? obj) (store-path? obj))) + (with-monad %store-monad (mapm %store-monad (match-lambda (((? struct? thing) sub-drv ...) (mlet %store-monad ((drv (lower-object thing system #:target target))) - (return `(,drv ,@sub-drv)))) + (return (apply gexp-input drv sub-drv)))) + (((? store-item? item)) + (return (gexp-input item))) (input - (return input))) + (return (gexp-input input)))) inputs))) (define* (lower-reference-graphs graphs #:key system target) @@ -586,7 +602,9 @@ corresponding derivation." (mlet %store-monad ((inputs (lower-inputs inputs #:system system #:target target))) - (return (map cons file-names inputs)))))) + (return (map (lambda (file input) + (cons file (gexp-input->tuple input))) + file-names inputs)))))) (define* (lower-references lst #:key system target) "Based on LST, a list of output names and packages, return a list of output @@ -618,6 +636,128 @@ names and file names suitable for the #:allowed-references argument to (lambda (system) ((force proc) system)))) +;; Representation of a gexp instantiated for a given target and system. +(define-record-type + (lowered-gexp sexp inputs guile load-path load-compiled-path) + lowered-gexp? + (sexp lowered-gexp-sexp) ;sexp + (inputs lowered-gexp-inputs) ;list of + (guile lowered-gexp-guile) ; | #f + (load-path lowered-gexp-load-path) ;list of store items + (load-compiled-path lowered-gexp-load-compiled-path)) ;list of store items + +(define* (lower-gexp exp + #:key + (module-path %load-path) + (system (%current-system)) + (target 'current) + (graft? (%graft?)) + (guile-for-build (%guile-for-build)) + (effective-version "2.2") + + deprecation-warnings + (pre-load-modules? #t)) ;transitional + "Lower EXP, a gexp, instantiating it for SYSTEM and TARGET. Return a + ready to be used. + +Lowered gexps are an intermediate representation that's useful for +applications that deal with gexps outside in a way that is disconnected from +derivations--e.g., code evaluated for its side effects." + (define %modules + (delete-duplicates (gexp-modules exp))) + + (define (search-path modules extensions suffix) + (append (match modules + ((? derivation? drv) + (list (derivation->output-path drv))) + (#f + '()) + ((? store-path? item) + (list item))) + (map (lambda (extension) + (string-append (match extension + ((? derivation? drv) + (derivation->output-path drv)) + ((? store-path? item) + item)) + suffix)) + extensions))) + + (mlet* %store-monad ( ;; The following binding forces '%current-system' and + ;; '%current-target-system' to be looked up at >>= + ;; time. + (graft? (set-grafting graft?)) + + (system -> (or system (%current-system))) + (target -> (if (eq? target 'current) + (%current-target-system) + target)) + (guile (if guile-for-build + (return guile-for-build) + (default-guile-derivation system))) + (normals (lower-inputs (gexp-inputs exp) + #:system system + #:target target)) + (natives (lower-inputs (gexp-native-inputs exp) + #:system system + #:target #f)) + (inputs -> (append normals natives)) + (sexp (gexp->sexp exp + #:system system + #:target target)) + (extensions -> (gexp-extensions exp)) + (exts (mapm %store-monad + (lambda (obj) + (lower-object obj system)) + extensions)) + (modules (if (pair? %modules) + (imported-modules %modules + #:system system + #:module-path module-path) + (return #f))) + (compiled (if (pair? %modules) + (compiled-modules %modules + #:system system + #:module-path module-path + #:extensions extensions + #:guile guile-for-build + #:pre-load-modules? + pre-load-modules? + #:deprecation-warnings + deprecation-warnings) + (return #f)))) + (define load-path + (search-path modules exts + (string-append "/share/guile/site/" effective-version))) + + (define load-compiled-path + (search-path compiled exts + (string-append "/lib/guile/" effective-version + "/site-ccache"))) + + (mbegin %store-monad + (set-grafting graft?) ;restore the initial setting + (return (lowered-gexp sexp + `(,@(if modules + (list (gexp-input modules)) + '()) + ,@(if compiled + (list (gexp-input compiled)) + '()) + ,@(map gexp-input exts) + ,@inputs) + guile-for-build + load-path + load-compiled-path))))) + +(define (gexp-input->tuple input) + "Given INPUT, a record, return the corresponding input tuple +suitable for the 'derivation' procedure." + (match (gexp-input-output input) + ("out" `(,(gexp-input-thing input))) + (output `(,(gexp-input-thing input) + ,(gexp-input-output input))))) + (define* (gexp->derivation name exp #:key system (target 'current) @@ -682,10 +822,8 @@ DEPRECATION-WARNINGS determines whether to show deprecation warnings while compiling modules. It can be #f, #t, or 'detailed. The other arguments are as for 'derivation'." - (define %modules - (delete-duplicates - (append modules (gexp-modules exp)))) (define outputs (gexp-outputs exp)) + (define requested-graft? graft?) (define (graphs-file-names graphs) ;; Return a list of (FILE-NAME . STORE-PATH) pairs made from GRAPHS. @@ -699,11 +837,13 @@ The other arguments are as for 'derivation'." (cons file-name thing))) graphs)) - (define (extension-flags extension) - `("-L" ,(string-append (derivation->output-path extension) - "/share/guile/site/" effective-version) - "-C" ,(string-append (derivation->output-path extension) - "/lib/guile/" effective-version "/site-ccache"))) + (define (add-modules exp modules) + (if (null? modules) + exp + (make-gexp (gexp-references exp) + (append modules (gexp-self-modules exp)) + (gexp-self-extensions exp) + (gexp-proc exp)))) (mlet* %store-monad ( ;; The following binding forces '%current-system' and ;; '%current-target-system' to be looked up at >>= @@ -714,40 +854,21 @@ The other arguments are as for 'derivation'." (target -> (if (eq? target 'current) (%current-target-system) target)) - (normals (lower-inputs (gexp-inputs exp) - #:system system - #:target target)) - (natives (lower-inputs (gexp-native-inputs exp) - #:system system - #:target #f)) - (inputs -> (append normals natives)) - (sexp (gexp->sexp exp - #:system system - #:target target)) - (builder (text-file script-name - (object->string sexp))) - (extensions -> (gexp-extensions exp)) - (exts (mapm %store-monad - (lambda (obj) - (lower-object obj system)) - extensions)) - (modules (if (pair? %modules) - (imported-modules %modules - #:system system - #:module-path module-path - #:guile guile-for-build) - (return #f))) - (compiled (if (pair? %modules) - (compiled-modules %modules - #:system system - #:module-path module-path - #:extensions extensions - #:guile guile-for-build - #:pre-load-modules? - pre-load-modules? - #:deprecation-warnings - deprecation-warnings) - (return #f))) + (exp -> (add-modules exp modules)) + (lowered (lower-gexp exp + #:module-path module-path + #:system system + #:target target + #:graft? requested-graft? + #:guile-for-build + guile-for-build + #:effective-version + effective-version + #:deprecation-warnings + deprecation-warnings + #:pre-load-modules? + pre-load-modules?)) + (graphs (if references-graphs (lower-reference-graphs references-graphs #:system system @@ -763,32 +884,30 @@ The other arguments are as for 'derivation'." #:system system #:target target) (return #f))) - (guile (if guile-for-build - (return guile-for-build) - (default-guile-derivation system)))) + (guile -> (lowered-gexp-guile lowered)) + (builder (text-file script-name + (object->string + (lowered-gexp-sexp lowered))))) (mbegin %store-monad (set-grafting graft?) ;restore the initial setting (raw-derivation name (string-append (derivation->output-path guile) "/bin/guile") `("--no-auto-compile" - ,@(if (pair? %modules) - `("-L" ,(if (derivation? modules) - (derivation->output-path modules) - modules) - "-C" ,(derivation->output-path compiled)) - '()) - ,@(append-map extension-flags exts) + ,@(append-map (lambda (directory) + `("-L" ,directory)) + (lowered-gexp-load-path lowered)) + ,@(append-map (lambda (directory) + `("-C" ,directory)) + (lowered-gexp-load-compiled-path lowered)) ,builder) #:outputs outputs #:env-vars env-vars #:system system #:inputs `((,guile) (,builder) - ,@(if modules - `((,modules) (,compiled) ,@inputs) - inputs) - ,@(map list exts) + ,@(map gexp-input->tuple + (lowered-gexp-inputs lowered)) ,@(match graphs (((_ . inputs) ...) inputs) (_ '()))) @@ -804,6 +923,7 @@ The other arguments are as for 'derivation'." (define* (gexp-inputs exp #:key native?) "Return the input list for EXP. When NATIVE? is true, return only native references; otherwise, return only non-native references." + ;; TODO: Return records instead of tuples. (define (add-reference-inputs ref result) (match ref (($ (? gexp? exp) _ #t) diff --git a/tests/gexp.scm b/tests/gexp.scm index cee2c96610..23904fce2e 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -832,6 +832,43 @@ (built-derivations (list drv)) (return (equal? '(42 84) (call-with-input-file out read)))))) +(test-assertm "lower-gexp" + (mlet* %store-monad + ((extension -> %extension-package) + (extension-drv (package->derivation %extension-package)) + (coreutils-drv (package->derivation coreutils)) + (exp -> (with-extensions (list extension) + (with-imported-modules `((guix build utils)) + #~(begin + (use-modules (guix build utils) + (hg2g)) + #$coreutils:debug + mkdir-p + the-answer)))) + (lexp (lower-gexp exp + #:effective-version "2.0"))) + (define (matching-input drv output) + (lambda (input) + (and (eq? (gexp-input-thing input) drv) + (string=? (gexp-input-output input) output)))) + + (mbegin %store-monad + (return (and (find (matching-input extension-drv "out") + (lowered-gexp-inputs (pk 'lexp lexp))) + (find (matching-input coreutils-drv "debug") + (lowered-gexp-inputs lexp)) + (member (string-append + (derivation->output-path extension-drv) + "/share/guile/site/2.0") + (lowered-gexp-load-path lexp)) + (= 2 (length (lowered-gexp-load-path lexp))) + (member (string-append + (derivation->output-path extension-drv) + "/lib/guile/2.0/site-ccache") + (lowered-gexp-load-compiled-path lexp)) + (= 2 (length (lowered-gexp-load-compiled-path lexp))) + (eq? (lowered-gexp-guile lexp) (%guile-for-build))))))) + (test-assertm "gexp->derivation #:references-graphs" (mlet* %store-monad ((one (text-file "one" (random-text))) -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 10 17:41:52 2019 Received: (at 36162) by debbugs.gnu.org; 10 Jun 2019 21:41:53 +0000 Received: from localhost ([127.0.0.1]:57579 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1haS36-0006J4-Cs for submit@debbugs.gnu.org; Mon, 10 Jun 2019 17:41:52 -0400 Received: from eggs.gnu.org ([209.51.188.92]:54461) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1haS33-0006IS-NU for 36162@debbugs.gnu.org; Mon, 10 Jun 2019 17:41:50 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60153) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1haS2y-00017C-FS; Mon, 10 Jun 2019 17:41:44 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=33892 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1haS2u-0001fJ-Ve; Mon, 10 Jun 2019 17:41:42 -0400 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= To: 36162@debbugs.gnu.org Subject: [PATCH 2/4] Add (guix repl). Date: Mon, 10 Jun 2019 23:41:28 +0200 Message-Id: <20190610214130.19378-2-ludo@gnu.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190610214130.19378-1-ludo@gnu.org> References: <20190610214130.19378-1-ludo@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 36162 Cc: =?UTF-8?q?Ludovic=20Court=C3=A8s?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) * guix/scripts/repl.scm: Use (guix repl). (self-quoting?, machine-repl): Remove. * guix/repl.scm: New file. * Makefile.am (MODULES): Add it. --- Makefile.am | 1 + guix/repl.scm | 86 +++++++++++++++++++++++++++++++++++++++++++ guix/scripts/repl.scm | 56 ++-------------------------- 3 files changed, 90 insertions(+), 53 deletions(-) create mode 100644 guix/repl.scm diff --git a/Makefile.am b/Makefile.am index 80be73e4bf..0aa92ecfb9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -90,6 +90,7 @@ MODULES = \ guix/nar.scm \ guix/derivations.scm \ guix/grafts.scm \ + guix/repl.scm \ guix/inferior.scm \ guix/describe.scm \ guix/channels.scm \ diff --git a/guix/repl.scm b/guix/repl.scm new file mode 100644 index 0000000000..5cff5c71e9 --- /dev/null +++ b/guix/repl.scm @@ -0,0 +1,86 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018, 2019 Ludovic Courtès +;;; +;;; 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 (guix repl) + #:use-module (rnrs bytevectors) + #:use-module (ice-9 match) + #:export (send-repl-response + machine-repl)) + +;;; Commentary: +;;; +;;; This module implements the "machine-readable" REPL provided by +;;; 'guix repl -t machine'. It's a lightweight module meant to be +;;; embedded in any Guile process providing REPL functionality. +;;; +;;; Code: + +(define (self-quoting? x) + "Return #t if X is self-quoting." + (letrec-syntax ((one-of (syntax-rules () + ((_) #f) + ((_ pred rest ...) + (or (pred x) + (one-of rest ...)))))) + (one-of symbol? string? pair? null? vector? + bytevector? number? boolean?))) + + +(define (send-repl-response exp output) + "Write the response corresponding to the evaluation of EXP to PORT, an +output port." + (define (value->sexp value) + (if (self-quoting? value) + `(value ,value) + `(non-self-quoting ,(object-address value) + ,(object->string value)))) + + (catch #t + (lambda () + (let ((results (call-with-values + (lambda () + (primitive-eval exp)) + list))) + (write `(values ,@(map value->sexp results)) + output) + (newline output) + (force-output output))) + (lambda (key . args) + (write `(exception ,key ,@(map value->sexp args))) + (newline output) + (force-output output)))) + +(define* (machine-repl #:optional + (input (current-input-port)) + (output (current-output-port))) + "Run a machine-usable REPL over ports INPUT and OUTPUT. + +The protocol of this REPL is meant to be machine-readable and provides proper +support to represent multiple-value returns, exceptions, objects that lack a +read syntax, and so on. As such it is more convenient and robust than parsing +Guile's REPL prompt." + (write `(repl-version 0 0) output) + (newline output) + (force-output output) + + (let loop () + (match (read input) + ((? eof-object?) #t) + (exp + (send-repl-response exp output) + (loop))))) diff --git a/guix/scripts/repl.scm b/guix/scripts/repl.scm index 02169e8004..e1cc759fc8 100644 --- a/guix/scripts/repl.scm +++ b/guix/scripts/repl.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018 Ludovic Courtès +;;; Copyright © 2018, 2019 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +19,7 @@ (define-module (guix scripts repl) #:use-module (guix ui) #:use-module (guix scripts) + #:use-module (guix repl) #:use-module (guix utils) #:use-module (guix packages) #:use-module (gnu packages) @@ -29,8 +30,7 @@ #:autoload (system repl repl) (start-repl) #:autoload (system repl server) (make-tcp-server-socket make-unix-domain-server-socket) - #:export (machine-repl - guix-repl)) + #:export (guix-repl)) ;;; Commentary: ;;; @@ -68,62 +68,12 @@ Start a Guile REPL in the Guix execution environment.\n")) (newline) (show-bug-report-information)) -(define (self-quoting? x) - "Return #t if X is self-quoting." - (letrec-syntax ((one-of (syntax-rules () - ((_) #f) - ((_ pred rest ...) - (or (pred x) - (one-of rest ...)))))) - (one-of symbol? string? pair? null? vector? - bytevector? number? boolean?))) - (define user-module ;; Module where we execute user code. (let ((module (resolve-module '(guix-user) #f #f #:ensure #t))) (beautify-user-module! module) module)) -(define* (machine-repl #:optional - (input (current-input-port)) - (output (current-output-port))) - "Run a machine-usable REPL over ports INPUT and OUTPUT. - -The protocol of this REPL is meant to be machine-readable and provides proper -support to represent multiple-value returns, exceptions, objects that lack a -read syntax, and so on. As such it is more convenient and robust than parsing -Guile's REPL prompt." - (define (value->sexp value) - (if (self-quoting? value) - `(value ,value) - `(non-self-quoting ,(object-address value) - ,(object->string value)))) - - (write `(repl-version 0 0) output) - (newline output) - (force-output output) - - (let loop () - (match (read input) - ((? eof-object?) #t) - (exp - (catch #t - (lambda () - (let ((results (call-with-values - (lambda () - - (primitive-eval exp)) - list))) - (write `(values ,@(map value->sexp results)) - output) - (newline output) - (force-output output))) - (lambda (key . args) - (write `(exception ,key ,@(map value->sexp args))) - (newline output) - (force-output output))) - (loop))))) - (define (call-with-connection spec thunk) "Dynamically-bind the current input and output ports according to SPEC and call THUNK." -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 10 17:41:53 2019 Received: (at 36162) by debbugs.gnu.org; 10 Jun 2019 21:41:53 +0000 Received: from localhost ([127.0.0.1]:57581 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1haS36-0006J6-SZ for submit@debbugs.gnu.org; Mon, 10 Jun 2019 17:41:53 -0400 Received: from eggs.gnu.org ([209.51.188.92]:54472) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1haS34-0006IU-Ia for 36162@debbugs.gnu.org; Mon, 10 Jun 2019 17:41:50 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60154) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1haS2z-00018V-CB; Mon, 10 Jun 2019 17:41:45 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=33892 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1haS2y-0001fJ-SJ; Mon, 10 Jun 2019 17:41:45 -0400 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= To: 36162@debbugs.gnu.org Subject: [PATCH 3/4] inferior: Add 'read-repl-response'. Date: Mon, 10 Jun 2019 23:41:29 +0200 Message-Id: <20190610214130.19378-3-ludo@gnu.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190610214130.19378-1-ludo@gnu.org> References: <20190610214130.19378-1-ludo@gnu.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 36162 Cc: =?UTF-8?q?Ludovic=20Court=C3=A8s?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) * guix/inferior.scm (read-repl-response): New procedure. (read-inferior-response): Use it. --- guix/inferior.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/guix/inferior.scm b/guix/inferior.scm index 63c95141d7..fee97750b6 100644 --- a/guix/inferior.scm +++ b/guix/inferior.scm @@ -59,6 +59,7 @@ inferior-eval inferior-eval-with-store inferior-object? + read-repl-response inferior-packages inferior-available-packages @@ -183,7 +184,8 @@ equivalent. Return #f if the inferior could not be launched." (set-record-type-printer! write-inferior-object) -(define (read-inferior-response inferior) +(define (read-repl-response port) + "Read a (guix repl) response from PORT and return it as a Scheme object." (define sexp->object (match-lambda (('value value) @@ -191,12 +193,15 @@ equivalent. Return #f if the inferior could not be launched." (('non-self-quoting address string) (inferior-object address string)))) - (match (read (inferior-socket inferior)) + (match (read port) (('values objects ...) (apply values (map sexp->object objects))) (('exception key objects ...) (apply throw key (map sexp->object objects))))) +(define (read-inferior-response inferior) + (read-repl-response (inferior-socket inferior))) + (define (send-inferior-request exp inferior) (write exp (inferior-socket inferior)) (newline (inferior-socket inferior))) -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 10 17:41:54 2019 Received: (at 36162) by debbugs.gnu.org; 10 Jun 2019 21:41:54 +0000 Received: from localhost ([127.0.0.1]:57583 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1haS38-0006JJ-7d for submit@debbugs.gnu.org; Mon, 10 Jun 2019 17:41:54 -0400 Received: from eggs.gnu.org ([209.51.188.92]:54483) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1haS35-0006IV-EU for 36162@debbugs.gnu.org; Mon, 10 Jun 2019 17:41:51 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60155) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1haS30-000191-8c; Mon, 10 Jun 2019 17:41:46 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=33892 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1haS2z-0001fJ-P7; Mon, 10 Jun 2019 17:41:46 -0400 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= To: 36162@debbugs.gnu.org Subject: [PATCH 4/4] Add (guix remote). Date: Mon, 10 Jun 2019 23:41:30 +0200 Message-Id: <20190610214130.19378-4-ludo@gnu.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190610214130.19378-1-ludo@gnu.org> References: <20190610214130.19378-1-ludo@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 36162 Cc: =?UTF-8?q?Ludovic=20Court=C3=A8s?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) * guix/remote.scm: New file. * Makefile.am (MODULES): Add it. --- Makefile.am | 1 + guix/remote.scm | 130 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 131 insertions(+) create mode 100644 guix/remote.scm diff --git a/Makefile.am b/Makefile.am index 0aa92ecfb9..42307abaed 100644 --- a/Makefile.am +++ b/Makefile.am @@ -274,6 +274,7 @@ if HAVE_GUILE_SSH MODULES += \ guix/ssh.scm \ + guix/remote.scm \ guix/scripts/copy.scm \ guix/store/ssh.scm diff --git a/guix/remote.scm b/guix/remote.scm new file mode 100644 index 0000000000..cc051dee8a --- /dev/null +++ b/guix/remote.scm @@ -0,0 +1,130 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Ludovic Courtès +;;; +;;; 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 (guix remote) + #:use-module (guix ssh) + #:use-module (guix gexp) + #:use-module (guix inferior) + #:use-module (guix store) + #:use-module (guix monads) + #:use-module (guix modules) + #:use-module (guix derivations) + #:use-module (ssh popen) + #:use-module (srfi srfi-1) + #:use-module (ice-9 match) + #:export (remote-eval)) + +;;; Commentary: +;;; +;;; Evaluate a gexp on a remote machine, over SSH, ensuring that all the +;;; elements the gexp refers to are deployed beforehand. This is useful for +;;; expressions that have side effects; for pure expressions, you would rather +;;; build a derivation remotely or offload it. +;;; +;;; Code: + +(define (remote-pipe-for-gexp lowered session) + "Return a remote pipe for the given SESSION to evaluate LOWERED." + (define shell-quote + (compose object->string object->string)) + + (apply open-remote-pipe* session OPEN_READ + (string-append (derivation->output-path + (lowered-gexp-guile lowered)) + "/bin/guile") + "--no-auto-compile" + (append (append-map (lambda (directory) + `("-L" ,directory)) + (lowered-gexp-load-path lowered)) + (append-map (lambda (directory) + `("-C" ,directory)) + (lowered-gexp-load-path lowered)) + `("-c" + ,(shell-quote (lowered-gexp-sexp lowered)))))) + +(define (%remote-eval lowered session) + "Evaluate LOWERED, a lowered gexp, in SESSION. This assumes that all the +prerequisites of EXP are already available on the host at SESSION." + (let* ((pipe (remote-pipe-for-gexp lowered session)) + (result (read-repl-response pipe))) + (close-port pipe) + result)) + +(define (trampoline exp) + "Return a \"trampoline\" gexp that evaluates EXP and writes the evaluation +result to the current output port using the (guix repl) protocol." + (define program + (scheme-file "remote-exp.scm" exp)) + + (with-imported-modules (source-module-closure '((guix repl))) + #~(begin + (use-modules (guix repl)) + (send-repl-response '(primitive-load #$program) + (current-output-port)) + (force-output)))) + +(define* (remote-eval exp session + #:key + (build-locally? #t) + (module-path %load-path) + (socket-name "/var/guix/daemon-socket/socket")) + "Evaluate EXP, a gexp, on the host at SESSION, an SSH session. Ensure that +all the elements EXP refers to are built and deployed to SESSION beforehand. +When BUILD-LOCALLY? is true, said dependencies are built locally and sent to +the remote store afterwards; otherwise, dependencies are built directly on the +remote store." + (mlet %store-monad ((lowered (lower-gexp (trampoline exp) + #:module-path %load-path)) + (remote -> (connect-to-remote-daemon session + socket-name))) + (define inputs + (cons (gexp-input (lowered-gexp-guile lowered)) + (lowered-gexp-inputs lowered))) + + (define to-build + (map (lambda (input) + (if (derivation? (gexp-input-thing input)) + (cons (gexp-input-thing input) + (gexp-input-output input)) + (gexp-input-thing input))) + inputs)) + + (if build-locally? + (let ((to-send (map (lambda (input) + (match (gexp-input-thing input) + ((? derivation? drv) + (derivation->output-path + drv (gexp-input-output input))) + ((? store-path? item) + item))) + inputs))) + (mbegin %store-monad + (built-derivations to-build) + ((store-lift send-files) to-send remote #:recursive? #t) + (return (%remote-eval lowered session)))) + (let ((to-send (map (lambda (input) + (match (gexp-input-thing input) + ((? derivation? drv) + (derivation-file-name drv)) + ((? store-path? item) + item))) + inputs))) + (mbegin %store-monad + ((store-lift send-files) to-send remote #:recursive? #t) + (return (build-derivations remote to-build)) + (return (%remote-eval lowered session))))))) -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 10 20:37:02 2019 Received: (at submit) by debbugs.gnu.org; 11 Jun 2019 00:37:02 +0000 Received: from localhost ([127.0.0.1]:57702 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1haUmV-0004A9-PF for submit@debbugs.gnu.org; Mon, 10 Jun 2019 20:37:02 -0400 Received: from lists.gnu.org ([209.51.188.17]:33018) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1haUmT-0004A0-6O for submit@debbugs.gnu.org; Mon, 10 Jun 2019 20:36:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44087) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1haUmS-0004KS-7N for guix-patches@gnu.org; Mon, 10 Jun 2019 20:36:53 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_40,RCVD_IN_DNSWL_NONE autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1haUmR-00084F-Bw for guix-patches@gnu.org; Mon, 10 Jun 2019 20:36:52 -0400 Received: from mx.sdf.org ([205.166.94.20]:61337) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1haUmP-00082S-Ue; Mon, 10 Jun 2019 20:36:50 -0400 Received: from Epsilon (pool-173-76-53-40.bstnma.fios.verizon.net [173.76.53.40]) (authenticated (0 bits)) by mx.sdf.org (8.15.2/8.14.5) with ESMTPSA id x5B0ai7J026486 (using TLSv1.2 with cipher AES256-GCM-SHA384 (256 bits) verified NO); Tue, 11 Jun 2019 00:36:48 GMT From: zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: [bug#36162] [PATCH 0/4] Add 'remote-eval' References: <875zpgrjqf.fsf@sdf.lonestar.org> <87h88x7pni.fsf@gnu.org> <871s01l4c2.fsf@sdf.lonestar.org> Date: Mon, 10 Jun 2019 20:35:52 -0400 In-Reply-To: <871s01l4c2.fsf@sdf.lonestar.org> (Jakob L. Kreuze's message of "Mon, 10 Jun 2019 13:47:57 -0400") Message-ID: <87k1dtj6vr.fsf_-_@sdf.lonestar.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 205.166.94.20 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit Cc: guix-patches@gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Wow, this is great! It seems like this patch series is implementing a number of things I'd been wishing I could just import from some other Guix module. I'm signing off for the night, but I'll apply this tomorrow and give you some feedback. Ludovic Court=C3=A8s writes: > There are no tests for =E2=80=98remote-eval=E2=80=99 currently. It would= need a VM > with access to the store, as Jakob explained on guix-devel. One idea I had in developing my test suite was to design another record type to supplement '' for tests that /do/ need access the host's store as they're running, but thought it would be too intrusive as it would only be used by the tests for '(gnu machine)'. Now that we have a =E2=80=98remote-eval=E2=80=99 that would benefit from being tested t= hat way, though, I'd like to ask: is that something I should look into? Thanks again for implementing this Jakob --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEa1VJLOiXAjQ2BGSm9Qb9Fp2P2VoFAlz+92gACgkQ9Qb9Fp2P 2VozIBAArDNu/lyrc7/lmR3m3BsfYxsleNnoYOi1bDAmb5JnBmOpk94SUPafvBI8 2MJOi2g6ik6DrBZ15/orf0zobWPetHj5TNWMvWCS20a74drn3Bd8nT788+K3J9Cw PSI6izEPnhVeuBpl19CItXtNIiHhDguRjiOe9fYMASDdgnHNmqWpO0w07dEpRIGi 0i+Qdnf6MshmGYuLLS/JwGQpsnXn/6TTzT3hrMDXoDG2Rux2nHE+bHy3MH3PleDH dWxcTbvma6AcvWO8Dw9ViMLUaUOt7GTOpZn6oom+pkl6pYGuWvWF8pYA1woGDKIT MqZ8k10w8Rc0vG+m+yJBzBuncsp4YbVI5g/oXRkimPwBAPFwUPuMamrSqCE1uoel hxvll+CPVs0NuDDN6ogWe7XiECUIGK7xPPqfZ8x5Em95jhwULlb98HgoZTUb8vhU gzvtzMcVRKhnPuUPYu43eP4Rnu1jllcElw8md5d+l1Sd7IZIspcOckykxA4zXZZU 1MHI21LXy+EcbEX7DPXlgTxXShhF7GXRMxE9KzwCklOFM11PSWtOsOAQGGywGhU0 t0BSw41o3zavMc5KMkoL5Lg+tnYbLrlVUwn2iIfK1jxyX3NqsUGxw54UVCXP2HJe l6MOxQWraDlOcKCAZqx5hMM8GHDXZtdUlfNUFhzPXNlbIrKtVmU= =YO+c -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 11 09:26:50 2019 Received: (at 36162) by debbugs.gnu.org; 11 Jun 2019 13:26:50 +0000 Received: from localhost ([127.0.0.1]:58189 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hagna-0002GS-D0 for submit@debbugs.gnu.org; Tue, 11 Jun 2019 09:26:50 -0400 Received: from sender-of-o51.zoho.com ([135.84.80.216]:21210) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hagnY-0002GK-TS for 36162@debbugs.gnu.org; Tue, 11 Jun 2019 09:26:49 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1560259604; cv=none; d=zoho.com; s=zohoarc; b=Km7pvdLtmeBKBrv2ctk58+7W+lVAYf77N/5ybAVGsWUwly4HuClJhK8qRLFwqw51QwdMs34nw8EZ+eg74zFCh7ovbkpIvidFijQEatLNKBxiyKVos3/vfxILVpMFSEPh+n9s1v+pCbXfhNTebzkEez9AH0nw7NblYNB0+EmcM+g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1560259604; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To:ARC-Authentication-Results; bh=qAkSefMVKRzxOPXMcrI/n+LFUQtJVtjT6PPE0OninwY=; b=YluVDyN2dEVF+kkIHuTwPwXSCfPI6s0KLNhz3dwnCtoEXuoRg08WhGvSgDagsoh+U/RCiZzRTjksp5LeoNYUleXdbkjF+Q5OkTEqiJnMLz5DEvAWXi3oRfCR+jZedfSNDh6mNeU/Ewq0y0dmHVMAFLbF1W3DFIZVKXObjwcrB14= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass header.i=elephly.net; spf=pass smtp.mailfrom=rekado@elephly.net; dmarc=pass header.from= header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1560259604; s=zoho; d=elephly.net; i=rekado@elephly.net; h=References:From:To:Cc:Subject:In-reply-to:Date:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding; l=1401; bh=qAkSefMVKRzxOPXMcrI/n+LFUQtJVtjT6PPE0OninwY=; b=Rm+972uPRsg/a9LSGtDhSRCMMgiM/TYWeCv1sHPgnr/gOFDXZz+4CF3AXDBv1lPf W9a45NXVO1nwfDT9XxzTakGo6MEOYyet7tezkjqh3n2emoeW2mBFL8RHXvmd85iigI1 p5vlyvOAnqEIqX2af3JcWAlpBskLEF7IaysFGkFU= Received: from localhost (141.80.247.204 [141.80.247.204]) by mx.zohomail.com with SMTPS id 1560259603363879.4227908025406; Tue, 11 Jun 2019 06:26:43 -0700 (PDT) References: <20190610210853.5709-1-ludo@gnu.org> User-agent: mu4e 1.2.0; emacs 26.2 From: Ricardo Wurmus To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: [bug#36162] [PATCH 0/4] Add 'remote-eval' In-reply-to: <20190610210853.5709-1-ludo@gnu.org> X-URL: https://elephly.net X-PGP-Key: https://elephly.net/rekado.pubkey X-PGP-Fingerprint: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC Date: Tue, 11 Jun 2019 15:26:40 +0200 Message-ID: <87pnnk9rsf.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-ZohoMailClient: External X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 36162 Cc: 36162@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Ludovic Court=C3=A8s writes: > This patch series add =E2=80=98remote-eval=E2=80=99, which takes a gexp, = remotely deploys > everything the gexp refers to, and evaluates it (see > for > the initial discussion.) So you can have gexps like: > > #~(execl #$(file-append ffmpeg "/bin/ffmpeg") =E2=80=A6) > > When you evaluate it, this specific =E2=80=98ffmpeg=E2=80=99 will be depl= oyed over there. > Another example is: > > (with-imported-modules (source-module-closure '((gnu services herd))) > #~(begin > (use-modules (gnu services herd)) > (map live-service-provision (current-services)))) > This gexp, when evaluated remotely, will use your very own (gnu services > herd) module and the corresponding Guile (so if you=E2=80=99re on Guile 3= and the > remote is still on Guile 2, that=E2=80=99s fine: Guile 3 will first be de= ployed > there.) > > =E2=80=98remote-eval=E2=80=99 allows you to build locally and send the bu= ild results, > or to send the derivations and build remotely. This is great and just what I need for the install-berlin.scm script in the =E2=80=9Cmaintenance=E2=80=9D repository where I need to deploy a parti= cular version of Guix to the target system before using that version of Guix to reconfigure the remote system. Thank you! -- Ricardo From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 11 13:36:16 2019 Received: (at 36162) by debbugs.gnu.org; 11 Jun 2019 17:36:16 +0000 Received: from localhost ([127.0.0.1]:60129 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hakgy-0002Mm-0k for submit@debbugs.gnu.org; Tue, 11 Jun 2019 13:36:16 -0400 Received: from mx.sdf.org ([205.166.94.20]:53092) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hakgu-0002Ma-9V for 36162@debbugs.gnu.org; Tue, 11 Jun 2019 13:36:14 -0400 Received: from Epsilon (pool-173-76-53-40.bstnma.fios.verizon.net [173.76.53.40]) (authenticated (0 bits)) by mx.sdf.org (8.15.2/8.14.5) with ESMTPSA id x5BHa4k0020853 (using TLSv1.2 with cipher AES256-GCM-SHA384 (256 bits) verified NO); Tue, 11 Jun 2019 17:36:09 GMT From: zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: [bug#36162] [PATCH 0/4] Add 'remote-eval' Date: Tue, 11 Jun 2019 13:35:08 -0400 Message-ID: <87ef40c9f7.fsf@sdf.lonestar.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 36162 Cc: 36162@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) writes: > Wow, this is great! It seems like this patch series is implementing a > number of things I'd been wishing I could just import from some other > Guix module. I'm signing off for the night, but I'll apply this tomorrow > and give you some feedback. It seems this breaks 'operating-system-derivation'. #+BEGIN_SRC Backtrace: 19 (_ # #<=E2=80= =A6> =E2=80=A6) In gnu/services.scm: 320:2 18 (_ _) In gnu/system.scm: 461:4 17 (_ _) In unknown file: 16 (_ # #<=E2=80= =A6> =E2=80=A6) 15 (_ # #<=E2=80= =A6> =E2=80=A6) In guix/monads.scm: 482:9 14 (_ _) In unknown file: 13 (_ # #<=E2=80= =A6> =E2=80=A6) In guix/store.scm: 1667:8 12 (_ _) 1667:8 11 (_ _) In unknown file: 10 (_ # #<=E2=80= =A6> =E2=80=A6) 9 (_ # #<=E2=80= =A6> =E2=80=A6) In guix/monads.scm: 482:9 8 (_ _) In unknown file: 7 (_ # #<=E2=80= =A6> =E2=80=A6) In guix/store.scm: 1667:8 6 (_ _) In unknown file: 5 (_ # #<=E2=80= =A6> =E2=80=A6) 4 (_ # #<=E2=80= =A6> =E2=80=A6) In ice-9/eval.scm: 191:27 3 (_ #(#(# #) = =E2=80=A6)) 173:47 2 (_ #(#(# "module-im=E2=80=A6" = =E2=80=A6) =E2=80=A6)) 159:9 1 (_ #(#(# "module-im=E2=80=A6" = =E2=80=A6) =E2=80=A6)) In guix/derivations.scm: 597:28 0 (derivation->output-path #f _) guix/derivations.scm:597:28: In procedure derivation->output-path: In procedure struct_vtable: Wrong type argument in position 1 (expecting st= ruct): #f building gnu-deployed... #+END_SRC 'git bisect' seems to think that 9dddee345b introduced it. Regards, Jakob --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEa1VJLOiXAjQ2BGSm9Qb9Fp2P2VoFAlz/5kwACgkQ9Qb9Fp2P 2VquchAAiYiYNC3jC8jhDvT3MAVOwd+Cal7WYvaKJg7m1I3lEpTXp/LnJksTbmk4 kW69+ZUYwK+ZLu0FCdw6LysJVDxcHjOMN9oBnKEAHWYMfhD2XDHCsmwGJ6PYDsGr YeYPcBbKlauj8zYu7L3OBksHAbtlXG5OOr2GD8GLsxq0esTwhINLGTWMuWL875NV hxFiT31uxuYgbu8mScQ+peEYteT3fD2JpyZH6RS7gcxE1E5qnVeAhpNzRArItOkH ZP5tEooVyD0d7iepbcqYCfFa76REQJZlOizipInDidLoVo2AI5P+nK3JWBdfnreA 0TOJ/GtGCrKHaXLvfffxqvHSK6Xr0neUoAj92XEWZ8UGEiOdYPHjHpPwFcUJoxPx jLQG9wmHm88RdOKyZPHL8Kt2JK20diRtE80AMCIhQTA59LYSWwSh1Bd89hUb6+Zj WvLmn4ndpX7DCoGkcSgYrXErhvcOZnVS1jF71xQgQOAOjY5h0JP6i5pTRbmWn4FN QNMTnWNRmHc3olaT5RIiND1/UPzG/QCWA+dOaNsR4LG8tLqJQM7EVAs64hAbFRGz ekLSHdor+8IZFcMTtFMeQ8nGy2VqzFfiEMIGjlGzFU3HpUT5YOJh5wHyI2SjUSYX v0KJkUXHNDUEXF9G25iUjfrMgsMVHpraX2FmdWOxkh3tPDZub5U= =ROvf -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 12 09:45:52 2019 Received: (at 36162) by debbugs.gnu.org; 12 Jun 2019 13:45:52 +0000 Received: from localhost ([127.0.0.1]:60909 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hb3ZY-0001bj-G9 for submit@debbugs.gnu.org; Wed, 12 Jun 2019 09:45:52 -0400 Received: from eggs.gnu.org ([209.51.188.92]:60224) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hb3ZT-0001bT-EU for 36162@debbugs.gnu.org; Wed, 12 Jun 2019 09:45:51 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:38270) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hb3ZM-0002Tg-9w; Wed, 12 Jun 2019 09:45:41 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=51508 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hb3ZL-0001ld-6f; Wed, 12 Jun 2019 09:45:39 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) Subject: Re: [bug#36162] [PATCH 0/4] Add 'remote-eval' References: <20190610210853.5709-1-ludo@gnu.org> <87ef40c9f7.fsf@sdf.lonestar.org> Date: Wed, 12 Jun 2019 15:45:35 +0200 In-Reply-To: <87ef40c9f7.fsf@sdf.lonestar.org> (Jakob L. Kreuze's message of "Tue, 11 Jun 2019 13:35:08 -0400") Message-ID: <87zhmmvrwg.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 36162 Cc: 36162@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) skribis: > zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) writes: > >> Wow, this is great! It seems like this patch series is implementing a >> number of things I'd been wishing I could just import from some other >> Guix module. I'm signing off for the night, but I'll apply this tomorrow >> and give you some feedback. > > It seems this breaks 'operating-system-derivation'. [...] > In guix/derivations.scm: > 597:28 0 (derivation->output-path #f _) Oops! The patch below fixes it. Let me know if you find other issues. Thanks for testing! Ludo=E2=80=99. --=-=-= Content-Type: text/x-patch Content-Disposition: inline diff --git a/guix/gexp.scm b/guix/gexp.scm index 38f64db7f1..ab29c2494e 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -720,7 +720,7 @@ derivations--e.g., code evaluated for its side effects." #:system system #:module-path module-path #:extensions extensions - #:guile guile-for-build + #:guile guile #:pre-load-modules? pre-load-modules? #:deprecation-warnings @@ -746,7 +746,7 @@ derivations--e.g., code evaluated for its side effects." '()) ,@(map gexp-input exts) ,@inputs) - guile-for-build + guile load-path load-compiled-path))))) --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 12 09:52:19 2019 Received: (at 36162) by debbugs.gnu.org; 12 Jun 2019 13:52:20 +0000 Received: from localhost ([127.0.0.1]:60917 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hb3fn-0001lp-Ko for submit@debbugs.gnu.org; Wed, 12 Jun 2019 09:52:19 -0400 Received: from eggs.gnu.org ([209.51.188.92]:33157) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hb3fl-0001la-F3 for 36162@debbugs.gnu.org; Wed, 12 Jun 2019 09:52:17 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:38354) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hb3fg-00085p-4J; Wed, 12 Jun 2019 09:52:12 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=51510 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hb3ff-0002AH-ND; Wed, 12 Jun 2019 09:52:11 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) Subject: Re: [bug#36162] [PATCH 0/4] Add 'remote-eval' References: <875zpgrjqf.fsf@sdf.lonestar.org> <87h88x7pni.fsf@gnu.org> <871s01l4c2.fsf@sdf.lonestar.org> <87k1dtj6vr.fsf_-_@sdf.lonestar.org> Date: Wed, 12 Jun 2019 15:52:10 +0200 In-Reply-To: <87k1dtj6vr.fsf_-_@sdf.lonestar.org> (Jakob L. Kreuze's message of "Mon, 10 Jun 2019 20:35:52 -0400") Message-ID: <87k1dqvrlh.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 36162 Cc: 36162@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hello, zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) skribis: > One idea I had in developing my test suite was to design another record > type to supplement '' for tests that /do/ need access the > host's store as they're running, but thought it would be too intrusive > as it would only be used by the tests for '(gnu machine)'. Now that we > have a =E2=80=98remote-eval=E2=80=99 that would benefit from being tested= that way, > though, I'd like to ask: is that something I should look into? Tests are supposed to be deterministic, so as such, it makes sense for tests to be normal derivations, as is currently the case. In that spirit, we should instead tweak so that we can instruct it to build an autonomous VM with its own store. OTOH, we could also have =E2=80=98container-eval=E2=80=99, similar to =E2= =80=98remote-eval=E2=80=99, which would be useful for effectful code, such as code that needs to interact with the daemon. Food for thought! Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 12 11:13:38 2019 Received: (at 36162) by debbugs.gnu.org; 12 Jun 2019 15:13:38 +0000 Received: from localhost ([127.0.0.1]:33892 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hb4wT-0006SV-Rt for submit@debbugs.gnu.org; Wed, 12 Jun 2019 11:13:38 -0400 Received: from ol.sdf.org ([205.166.94.20]:64007 helo=mx.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hb4wR-0006SM-8T for 36162@debbugs.gnu.org; Wed, 12 Jun 2019 11:13:37 -0400 Received: from Epsilon (pool-173-76-53-40.bstnma.fios.verizon.net [173.76.53.40]) (authenticated (0 bits)) by mx.sdf.org (8.15.2/8.14.5) with ESMTPSA id x5CFDEV1023463 (using TLSv1.2 with cipher AES256-GCM-SHA384 (256 bits) verified NO); Wed, 12 Jun 2019 15:13:32 GMT From: zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: [bug#36162] [PATCH 0/4] Add 'remote-eval' References: <20190610210853.5709-1-ludo@gnu.org> <87ef40c9f7.fsf@sdf.lonestar.org> <87zhmmvrwg.fsf@gnu.org> Date: Wed, 12 Jun 2019 11:12:15 -0400 In-Reply-To: <87zhmmvrwg.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Wed, 12 Jun 2019 15:45:35 +0200") Message-ID: <87zhmmbzxs.fsf@sdf.lonestar.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 36162 Cc: 36162@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Ludovic Court=C3=A8s writes: > Let me know if you find other issues. Thanks for testing! This fixes the test suite, but I'm having an issue with 'remote-eval' now. A G-Expression with no inputs such as #+BEGIN_SRC scheme (mlet %store-monad ((result (remote-eval #~(begin (string-append "Hello, " = "world!")) (ssh-session machine)))) (display result) (newline)) #+END_SRC results in the following error: #+BEGIN_SRC Backtrace: 13 (apply-smob/1 #) In ice-9/boot-9.scm: 705:2 12 (call-with-prompt _ _ #) In ice-9/eval.scm: 619:8 11 (_ #(#(#))) In guix/ui.scm: 1747:12 10 (run-guix-command _ . _) In guix/store.scm: 623:10 9 (call-with-store _) In srfi/srfi-1.scm: 640:9 8 (for-each # =E2=80=A6) In guix/scripts/deploy.scm: 84:20 7 (_ _) In guix/store.scm: 1794:24 6 (run-with-store _ _ #:guile-for-build _ #:system _ # _) In unknown file: 5 (_ # #<=E2=80= =A6> =E2=80=A6) In guix/remote.scm: 116:10 4 (_ _) In guix/store.scm: 1690:38 3 (_ #) In guix/derivations.scm: 987:22 2 (build-derivations # # _) In srfi/srfi-1.scm: 592:17 1 (map1 ((# . #)= =E2=80=A6)) In guix/derivations.scm: 987:27 0 (_ _) guix/derivations.scm:987:27: Throw to key `match-error' with args `("match"= "no matching pattern" (# /gnu/store/cz91c7nvg7495vacv44bxmqnn8sha3cb-guil= e-2.2.4-debug /gnu/store/r658y3cgpnf99nxjxqgjiaizx20ac4k0-guile-2.2.4 47e69= b0> . "out"))'. #+END_SRC Regards, Jakob --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEa1VJLOiXAjQ2BGSm9Qb9Fp2P2VoFAl0BFk8ACgkQ9Qb9Fp2P 2Vo5VBAAo4XN7Sr/bAUvMWSLAx14q7o8ktBNV2SUhSPK/LeGXK9JpoqYYT5FRaXX VMcIuRuVoWbZfwtFyY+Evx7vDKqQC7Rj5GdyS5Czrsn6kK5X11ZiL4TKesZzpeL8 uI6UFBPG6W+7E19IQdxcISL7cOEPSDWdGcrfJugjfpmA3KS0mfpO6i4NKefXYQVD uAJ4QVzTOnjvO651DWYl7cCVCEn6/k0278McdCiJXWBGc6BJCOC0Gi1rafP5AxDQ srvGvXetYZ68SSsW8Hu7RZ8323nTr8xaUn1EMGyyNt52IekqTQWPLA0HwO5oMPFo lADbxm9naBRSNM1Ih9mk/WZ0XXQsp/N3L3mR/fLT53zrnyqKmJ4nVudcKxP1NIKt Sblo+u5h4QzqpiTibYVrAA6HajXq2+KnyKc6Se0e3uZu+NX9Pd0G7pZ7/onLhOjg uRbUvc4nZABkc3iksSswQzlcATa8CR3dj7AXWHiKfKOGvm26mXCnUoWtx/5dNFTq FUS7CqK91SaG1q6jbMWvbuGVsaF6/vlloTPeOjtbRHUe4ZDTOpq59vfctyFL0Y6s 2ie+216YoUO5B9x1SxCA+pFS0N/azGEnUBWP4j7vMxmY/HSCx8IxyNgyZshBVwEw 5D2PHKiLEieWIK9Wdji+kBv2+d2UgjWPZ2TwCAgg1E1xEHtl9Bs= =Lm3w -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 12 11:44:28 2019 Received: (at 36162) by debbugs.gnu.org; 12 Jun 2019 15:44:28 +0000 Received: from localhost ([127.0.0.1]:33924 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hb5QJ-00034L-Sl for submit@debbugs.gnu.org; Wed, 12 Jun 2019 11:44:28 -0400 Received: from mx.sdf.org ([205.166.94.20]:49714) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hb5QG-00034A-Tr for 36162@debbugs.gnu.org; Wed, 12 Jun 2019 11:44:27 -0400 Received: from Epsilon (pool-173-76-53-40.bstnma.fios.verizon.net [173.76.53.40]) (authenticated (0 bits)) by mx.sdf.org (8.15.2/8.14.5) with ESMTPSA id x5CFiLf9024346 (using TLSv1.2 with cipher AES256-GCM-SHA384 (256 bits) verified NO); Wed, 12 Jun 2019 15:44:21 GMT From: zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: [bug#36162] [PATCH 0/4] Add 'remote-eval' References: <875zpgrjqf.fsf@sdf.lonestar.org> <87h88x7pni.fsf@gnu.org> <871s01l4c2.fsf@sdf.lonestar.org> <87k1dtj6vr.fsf_-_@sdf.lonestar.org> <87k1dqvrlh.fsf@gnu.org> Date: Wed, 12 Jun 2019 11:43:21 -0400 In-Reply-To: <87k1dqvrlh.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Wed, 12 Jun 2019 15:52:10 +0200") Message-ID: <87r27ybyhy.fsf@sdf.lonestar.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 36162 Cc: 36162@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Ludovic Court=C3=A8s writes: > Tests are supposed to be deterministic, so as such, it makes sense for > tests to be normal derivations, as is currently the case. Makes sense. I actually hadn't realized that the Guix test suite (those run with 'check' rather than 'check-system') were also derivations until you mentioned it. It seems like looking at the implementation there would give me a better idea of how to structure my tests. > In that spirit, we should instead tweak so that we > can instruct it to build an autonomous VM with its own store. I like that idea. There's a 'system-qemu-image/shared-store-script', but no 'system-qemu-image-script', so I'll have to take what I did for my test suite experiments and turn it into something proper. > OTOH, we could also have =E2=80=98container-eval=E2=80=99, similar to =E2= =80=98remote-eval=E2=80=99, > which would be useful for effectful code, such as code that needs to > interact with the daemon. Food for thought! 'container' in the sense of 'guix environment' containers? --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEa1VJLOiXAjQ2BGSm9Qb9Fp2P2VoFAl0BHZkACgkQ9Qb9Fp2P 2VpurQ//U10agMvsgfPKxrKpSbi/k2YdW30iMo1fWpweK0MiMMM/nc/qqg/5UpCY w3+pzs3kdw5VP0LRySTk19tykQCZujBRAO8fK+1uO6QOhYDV+Cj8h7Y1FOqV5vWE NwwuaLlryZhoGw8ASNTni9CVp9FDpEW9u6c5k2g30Ei9GXB8G6tW+200BD3G5to2 CbABJZwVrYiak7lwhMpH+yJMAeOqFvWqv2x58BMU1A+x3qi6iq0T9UT38DsA+fXM Lr1iibIxgE3T2A0BMj5vqFHTEiBYFxnuYl+CXOY0LrAQ5BeZTYwZDhBs/zpAXpq/ XHWBThGBb7kDH3I+uyw2qhJEFF3usI5vF5ZzenzOtNbQDHi6SgXJVlqsRQGYtkbI UseJtEyvnGrsww3FkvmJvAvAc0EvfFvGIpq74zRnnErW1WN3yFZHdHc8DOeLbAtB tYPinwlhyRzKwqkWLao5ecDPPSU3tYHRuAWMT4b8HEH0K0l5f/D90qYEWQzlMJiS u1E7BPX9gvPF/+ck4PKVeuCb+HklzjRDYEmnv29wa/IPykC0m+z28Ba7uQ6w98sx XoPGXwZvDIezWJudVPHALIA8Y0REn7jr0F5hDVJCEodbNX1uggM+jY+2VeojC3F8 G2SXzH1ldk2NTYXtxngrclZ/Tu89wHQfbepdRWv4nX7ZodGPHSI= =8MFm -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 12 16:39:32 2019 Received: (at 36162) by debbugs.gnu.org; 12 Jun 2019 20:39:32 +0000 Received: from localhost ([127.0.0.1]:34144 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hbA1r-0007HZ-OC for submit@debbugs.gnu.org; Wed, 12 Jun 2019 16:39:31 -0400 Received: from eggs.gnu.org ([209.51.188.92]:44209) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hbA1p-0007HD-Cm for 36162@debbugs.gnu.org; Wed, 12 Jun 2019 16:39:30 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:46204) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hbA1j-0004wo-Hf; Wed, 12 Jun 2019 16:39:23 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=51962 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hbA1j-0005xQ-0w; Wed, 12 Jun 2019 16:39:23 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) Subject: Re: [bug#36162] [PATCH 0/4] Add 'remote-eval' References: <875zpgrjqf.fsf@sdf.lonestar.org> <87h88x7pni.fsf@gnu.org> <871s01l4c2.fsf@sdf.lonestar.org> <87k1dtj6vr.fsf_-_@sdf.lonestar.org> <87k1dqvrlh.fsf@gnu.org> <87r27ybyhy.fsf@sdf.lonestar.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 24 Prairial an 227 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Wed, 12 Jun 2019 22:39:21 +0200 In-Reply-To: <87r27ybyhy.fsf@sdf.lonestar.org> (Jakob L. Kreuze's message of "Wed, 12 Jun 2019 11:43:21 -0400") Message-ID: <87ftoetu6e.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 36162 Cc: 36162@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) skribis: > Ludovic Court=C3=A8s writes: [...] >> OTOH, we could also have =E2=80=98container-eval=E2=80=99, similar to = =E2=80=98remote-eval=E2=80=99, >> which would be useful for effectful code, such as code that needs to >> interact with the daemon. Food for thought! > > 'container' in the sense of 'guix environment' containers? Yes, but more generally in the sense of a process running in separate namespaces. Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 13 07:09:24 2019 Received: (at 36162) by debbugs.gnu.org; 13 Jun 2019 11:09:24 +0000 Received: from localhost ([127.0.0.1]:34616 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hbNbg-0003KK-Cr for submit@debbugs.gnu.org; Thu, 13 Jun 2019 07:09:24 -0400 Received: from eggs.gnu.org ([209.51.188.92]:34862) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hbNbd-0003K1-Jn for 36162@debbugs.gnu.org; Thu, 13 Jun 2019 07:09:23 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57876) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hbNbW-0002MG-No; Thu, 13 Jun 2019 07:09:14 -0400 Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=49384 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hbNbP-0005Ac-C3; Thu, 13 Jun 2019 07:09:10 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) Subject: Re: [bug#36162] [PATCH 0/4] Add 'remote-eval' References: <20190610210853.5709-1-ludo@gnu.org> <87ef40c9f7.fsf@sdf.lonestar.org> <87zhmmvrwg.fsf@gnu.org> <87zhmmbzxs.fsf@sdf.lonestar.org> Date: Thu, 13 Jun 2019 13:09:05 +0200 In-Reply-To: <87zhmmbzxs.fsf@sdf.lonestar.org> (Jakob L. Kreuze's message of "Wed, 12 Jun 2019 11:12:15 -0400") Message-ID: <8736kd4u9a.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 36162 Cc: 36162@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi, zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) skribis: > In guix/derivations.scm: > 987:22 2 (build-derivations # # _) > In srfi/srfi-1.scm: > 592:17 1 (map1 ((# . = #) =E2=80=A6)) > In guix/derivations.scm: > 987:27 0 (_ _) > > guix/derivations.scm:987:27: Throw to key `match-error' with args `("matc= h" "no matching pattern" (# /gnu/store/cz91c7nvg7495vacv44bxmqnn8sha3cb-gu= ile-2.2.4-debug /gnu/store/r658y3cgpnf99nxjxqgjiaizx20ac4k0-guile-2.2.4 47e= 69b0> . "out"))'. I think that=E2=80=99s because you=E2=80=99re on an older Guix, which lacks= commit f8a9f99cd602ce1dc5307cb0c21ae718ad8796bb. HTH! Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 13 09:19:19 2019 Received: (at 36162) by debbugs.gnu.org; 13 Jun 2019 13:19:19 +0000 Received: from localhost ([127.0.0.1]:34740 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hbPdP-000581-6Z for submit@debbugs.gnu.org; Thu, 13 Jun 2019 09:19:19 -0400 Received: from ol.sdf.org ([205.166.94.20]:61501 helo=mx.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hbPdL-00057j-L3 for 36162@debbugs.gnu.org; Thu, 13 Jun 2019 09:19:17 -0400 Received: from Epsilon (pool-173-76-53-40.bstnma.fios.verizon.net [173.76.53.40]) (authenticated (0 bits)) by mx.sdf.org (8.15.2/8.14.5) with ESMTPSA id x5DDJ6wv002154 (using TLSv1.2 with cipher AES256-GCM-SHA384 (256 bits) verified NO); Thu, 13 Jun 2019 13:19:13 GMT From: zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: [bug#36162] [PATCH 0/4] Add 'remote-eval' References: <20190610210853.5709-1-ludo@gnu.org> <87ef40c9f7.fsf@sdf.lonestar.org> <87zhmmvrwg.fsf@gnu.org> <87zhmmbzxs.fsf@sdf.lonestar.org> <8736kd4u9a.fsf@gnu.org> Date: Thu, 13 Jun 2019 09:18:05 -0400 In-Reply-To: <8736kd4u9a.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Thu, 13 Jun 2019 13:09:05 +0200") Message-ID: <874l4thbea.fsf@sdf.lonestar.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 36162 Cc: 36162@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Ludovic Court=C3=A8s writes: > I think that=E2=80=99s because you=E2=80=99re on an older Guix, which lac= ks commit > f8a9f99cd602ce1dc5307cb0c21ae718ad8796bb. Guess I let my feature branch go a little stale. Fetched from upstream and it works now :) I'll have a go at reimplementing 'deploy-os' and let you know if I run into any other issues. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEa1VJLOiXAjQ2BGSm9Qb9Fp2P2VoFAl0CTQ0ACgkQ9Qb9Fp2P 2VplGBAAjmNy4+E7gEuztmdkqQFLD9UGl1ki34Of6Sgvw8zaPDJUtGlV0GgHgvp1 pBDbvnM80J/HCnNKKr5Hk7C7C7SS3ex6KOi4/vGGPxXFoohHIDGKYF9GxPC16JxB lsTbZtem2dFnyVjvVr5VNE9zXGeWUnbAwqjHHQ0CUKfDLwyksTAXYxtfpZo1KdYy ZW1HhuOhAWV1hclJhH5QrmGTD/7lws8qRKkB4XCxhUtq+De3fTyUHBvC5dHNYxDD 6YenHOubn3ci+QCFzcFSdD+n4PeV4vGffQCeac4p47rZHJlnVKDlQqwRbHihBMb1 FYX0oMX1Xg5lLosnJBuzBUaSBWGP2R652rWoKIhGMnSZt9YsgmY4Xp6Ox/HpJrUz BScPR6WuhPOUhUEL27aHy0EoS6KjR3WeqBM05DmZS9mdSr4UZiog6TY9ogLyAQqt Zs0Rp975DNAkoXecCAhtYQLrhjjl4cfI47tJOSH2z9r1e3Z82BuHcb+HT4LFM8ym sN1O6Mx1qvilMBM11yN3FcnTHDn/ReY3ONRlNUOTPSl1K8SUQlYjs7zA0OCybAsI VXqkmvGjj3jvORCQfR7Trc0rQeiVXyaKig9dls8IUn3bCy0XGoH9f87uy86BnwyW pjhif5mGaG18GgA9WECVIO4Ld9hy3HLZ5hgaSzcwPkSGph2u0Nw= =NoFW -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 13 12:18:32 2019 Received: (at 36162) by debbugs.gnu.org; 13 Jun 2019 16:18:32 +0000 Received: from localhost ([127.0.0.1]:35985 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hbSQp-0008Se-TX for submit@debbugs.gnu.org; Thu, 13 Jun 2019 12:18:32 -0400 Received: from mx.sdf.org ([205.166.94.20]:54092) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hbSQn-0008SV-3S for 36162@debbugs.gnu.org; Thu, 13 Jun 2019 12:18:31 -0400 Received: from Epsilon (pool-173-76-53-40.bstnma.fios.verizon.net [173.76.53.40]) (authenticated (0 bits)) by mx.sdf.org (8.15.2/8.14.5) with ESMTPSA id x5DGIOKV028300 (using TLSv1.2 with cipher AES256-GCM-SHA384 (256 bits) verified NO); Thu, 13 Jun 2019 16:18:27 GMT From: zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: [bug#36162] [PATCH 0/4] Add 'remote-eval' References: <20190610210853.5709-1-ludo@gnu.org> <87ef40c9f7.fsf@sdf.lonestar.org> <87zhmmvrwg.fsf@gnu.org> <87zhmmbzxs.fsf@sdf.lonestar.org> <8736kd4u9a.fsf@gnu.org> <874l4thbea.fsf@sdf.lonestar.org> Date: Thu, 13 Jun 2019 12:17:23 -0400 In-Reply-To: <874l4thbea.fsf@sdf.lonestar.org> (Jakob L. Kreuze's message of "Thu, 13 Jun 2019 09:18:05 -0400") Message-ID: <87sgsdfoj0.fsf@sdf.lonestar.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 36162 Cc: 36162@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) writes: > Guess I let my feature branch go a little stale. Fetched from upstream > and it works now :) I'll have a go at reimplementing 'deploy-os' and > let you know if I run into any other issues. Works like a charm! There's more code for me to clean up, but we've got a preliminary reimplementation of 'deploy-os' using your 'remote-eval'. Pushed it to my personal branch if you'd like to take a look. https://git.sr.ht/~jakob/guix/commit/ca8e7b77cef4a60e9d820d6ae05b8b59f64b4f23 Thanks again for implementing this! Regards, Jakob --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEa1VJLOiXAjQ2BGSm9Qb9Fp2P2VoFAl0CdxMACgkQ9Qb9Fp2P 2VpDTxAAgDtnUukcZOJph+eHQNMhCZQWWgvJia9Eu8iPRnRmPKiwMBT4eDmCcyjW 49Kz1YTqMPBTT+HMnJKdSl6URb3OwpSE5VgFH+BbkuHsnBnxiP3VgvQKFggt92I+ v3dUsCkfnnI6utlONHICJTD+pyP97yyZPxSg3GkL7/2uDFPJTGCQOCnSZSrww47T fMXjPuk4RtUB7aQ9tprZDeR353tPUEV/qN1yrD5e/zA7W6hF9ULGejJowqjBJFIm HIVj8MHyZl5Y4feDXSKlz8uuiOXlyEzFDiIuqIXNm3l5h5r/oPALyEq5tlW8gjmt wHO1mkudKijnulJWHg9iRPnr91vRqBPVALMZEq9G36BXx4hOnjvb1nkeTil8mexR H2QUkKIKnCaV4GMZ5POvv0RENTBLpQF42ExDnnSN6crbII40CG3eM+5nYaAZVSag zj/pnC8XKYY2vJ6962sF79aUUjqUK6HTuSNppxe/l+iuPSMGeekU9hoLeOeUivvO oyimToNzV4+OitRQ+thdqvaH5JubgypvWkh2A0OVONQG52zJMAHSMuuZL8POcdNr r5t2o9TrcRH6Fkoxb8Xv7sdswjKyTrlVAUmX0opRw7AgkHhsPB0lp0km1Te3dmQI TX3l8obpvnzvISko0qLSgctLP62Z/IYMw3MIy8UswgTzuwWEi7A= =42ir -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 14 07:20:18 2019 Received: (at 36162) by debbugs.gnu.org; 14 Jun 2019 11:20:18 +0000 Received: from localhost ([127.0.0.1]:36642 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hbkFm-0000nh-GT for submit@debbugs.gnu.org; Fri, 14 Jun 2019 07:20:18 -0400 Received: from eggs.gnu.org ([209.51.188.92]:56791) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hbkFj-0000nQ-7n for 36162@debbugs.gnu.org; Fri, 14 Jun 2019 07:20:16 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60687) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hbkFd-0005sD-NA; Fri, 14 Jun 2019 07:20:09 -0400 Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=44724 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hbkFc-0006kv-6Y; Fri, 14 Jun 2019 07:20:08 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) Subject: Re: [bug#36162] [PATCH 0/4] Add 'remote-eval' References: <20190610210853.5709-1-ludo@gnu.org> <87ef40c9f7.fsf@sdf.lonestar.org> <87zhmmvrwg.fsf@gnu.org> <87zhmmbzxs.fsf@sdf.lonestar.org> <8736kd4u9a.fsf@gnu.org> <874l4thbea.fsf@sdf.lonestar.org> <87sgsdfoj0.fsf@sdf.lonestar.org> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 26 Prairial an 227 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Fri, 14 Jun 2019 13:20:06 +0200 In-Reply-To: <87sgsdfoj0.fsf@sdf.lonestar.org> (Jakob L. Kreuze's message of "Thu, 13 Jun 2019 12:17:23 -0400") Message-ID: <87tvcsjtw9.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 36162 Cc: 36162@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi Jakob, zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) skribis: > zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) writes: > >> Guess I let my feature branch go a little stale. Fetched from upstream >> and it works now :) I'll have a go at reimplementing 'deploy-os' and >> let you know if I run into any other issues. > > Works like a charm! There's more code for me to clean up, but we've got > a preliminary reimplementation of 'deploy-os' using your 'remote-eval'. > Pushed it to my personal branch if you'd like to take a look. > > https://git.sr.ht/~jakob/guix/commit/ca8e7b77cef4a60e9d820d6ae05b8b59f6= 4b4f23 Woow, that was fast! It looks good, and the patch removes a few lines of code, which is always nice. :-) I=E2=80=99ll push the =E2=80=98remote-eval=E2=80=99 things shortly. There= =E2=80=99s certainly a few things we can improve, and one of them is progress report: there=E2=80=99s currently no call to =E2=80=98show-what-to-build=E2=80=99, and that=E2=80= =99s obviously not great. Thank you for the great feedback! Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Sun Jun 30 09:24:17 2019 Received: (at submit) by debbugs.gnu.org; 30 Jun 2019 13:24:17 +0000 Received: from localhost ([127.0.0.1]:45498 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hhZoX-0002pA-Eg for submit@debbugs.gnu.org; Sun, 30 Jun 2019 09:24:17 -0400 Received: from lists.gnu.org ([209.51.188.17]:36082) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hhZoP-0002os-IU for submit@debbugs.gnu.org; Sun, 30 Jun 2019 09:24:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45284) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hhZoO-00088x-Lh for guix-patches@gnu.org; Sun, 30 Jun 2019 09:24:09 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hhZoN-0004vS-Rq for guix-patches@gnu.org; Sun, 30 Jun 2019 09:24:08 -0400 Received: from dustycloud.org ([50.116.34.160]:35474) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hhZoN-0004ud-Nf for guix-patches@gnu.org; Sun, 30 Jun 2019 09:24:07 -0400 Received: from jasmine (localhost [127.0.0.1]) by dustycloud.org (Postfix) with ESMTPS id 01BF1265C8; Sun, 30 Jun 2019 09:24:05 -0400 (EDT) References: <20190610210853.5709-1-ludo@gnu.org> <87ef40c9f7.fsf@sdf.lonestar.org> <87zhmmvrwg.fsf@gnu.org> <87zhmmbzxs.fsf@sdf.lonestar.org> <8736kd4u9a.fsf@gnu.org> <874l4thbea.fsf@sdf.lonestar.org> <87sgsdfoj0.fsf@sdf.lonestar.org> <87tvcsjtw9.fsf@gnu.org> User-agent: mu4e 1.2.0; emacs 26.2 From: Christopher Lemmer Webber To: guix-patches@gnu.org Subject: Re: [bug#36162] [PATCH 0/4] Add 'remote-eval' In-reply-to: <87tvcsjtw9.fsf@gnu.org> Date: Sun, 30 Jun 2019 09:24:05 -0400 Message-ID: <878stjkxze.fsf@dustycloud.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 50.116.34.160 X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit Cc: "Jakob L. Kreuze" , 36162@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Ludovic Court=C3=A8s writes: > I=E2=80=99ll push the =E2=80=98remote-eval=E2=80=99 things shortly. Ther= e=E2=80=99s certainly a few > things we can improve, and one of them is progress report: there=E2=80=99s > currently no call to =E2=80=98show-what-to-build=E2=80=99, and that=E2=80= =99s obviously not > great. Hi Ludo'! It looks like Jakob's code is nearing the point where we can merge it into Guix proper. I'd like to get in the "guix deploy" stuff as soon as it's good enough to merge. Would you mind pushing up your remote-eval stuff, if you're confident enough to do so, since it's a preliminary requirement for "guix deploy"? From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 04 12:22:17 2019 Received: (at 36162) by debbugs.gnu.org; 4 Jul 2019 16:22:17 +0000 Received: from localhost ([127.0.0.1]:51799 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hj4Uy-0006LC-SF for submit@debbugs.gnu.org; Thu, 04 Jul 2019 12:22:17 -0400 Received: from eggs.gnu.org ([209.51.188.92]:34137) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hj4Uw-0006Kx-3X for 36162@debbugs.gnu.org; Thu, 04 Jul 2019 12:22:14 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60415) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hj4Uq-0003Mw-36; Thu, 04 Jul 2019 12:22:08 -0400 Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=34552 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hj4Up-0003HI-G2; Thu, 04 Jul 2019 12:22:07 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Christopher Lemmer Webber Subject: Re: [bug#36162] [PATCH 0/4] Add 'remote-eval' References: <20190610210853.5709-1-ludo@gnu.org> <87ef40c9f7.fsf@sdf.lonestar.org> <87zhmmvrwg.fsf@gnu.org> <87zhmmbzxs.fsf@sdf.lonestar.org> <8736kd4u9a.fsf@gnu.org> <874l4thbea.fsf@sdf.lonestar.org> <87sgsdfoj0.fsf@sdf.lonestar.org> <87tvcsjtw9.fsf@gnu.org> <878stjkxze.fsf@dustycloud.org> Date: Thu, 04 Jul 2019 18:22:05 +0200 In-Reply-To: <878stjkxze.fsf@dustycloud.org> (Christopher Lemmer Webber's message of "Sun, 30 Jun 2019 09:24:05 -0400") Message-ID: <87d0ip22j6.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 36162 Cc: zerodaysfordays@sdf.lonestar.org, 36162@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hello! Christopher Lemmer Webber skribis: > It looks like Jakob's code is nearing the point where we can merge it > into Guix proper. I'd like to get in the "guix deploy" stuff as soon as > it's good enough to merge. Would you mind pushing up your remote-eval > stuff, if you're confident enough to do so, since it's a preliminary > requirement for "guix deploy"? I finally went ahead and pushed it, after adding a note about the instability of the API. :-) I think =E2=80=98remote-eval=E2=80=99 shouldn=E2=80=99t change much, but I= =E2=80=99m not fully satisfied with =E2=80=98lower-gexp=E2=80=99 in that it=E2=80=99s a bit too redundant = with etc. I couldn=E2=80=99t turn that vague feeling into actual code changes though, so I=E2=80=99ll keep looking at it in the background, and it should= n=E2=80=99t have any impact on how =E2=80=98guix deploy=E2=80=99 uses =E2=80=98remote-e= val=E2=80=99. Apologies for the delay! Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 04 12:22:25 2019 Received: (at control) by debbugs.gnu.org; 4 Jul 2019 16:22:25 +0000 Received: from localhost ([127.0.0.1]:51802 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hj4V7-0006LY-6K for submit@debbugs.gnu.org; Thu, 04 Jul 2019 12:22:25 -0400 Received: from eggs.gnu.org ([209.51.188.92]:34149) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hj4V3-0006LB-Er for control@debbugs.gnu.org; Thu, 04 Jul 2019 12:22:21 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60418) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hj4Uy-0003XR-BT for control@debbugs.gnu.org; Thu, 04 Jul 2019 12:22:16 -0400 Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=34554 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hj4Ux-0003HV-1U for control@debbugs.gnu.org; Thu, 04 Jul 2019 12:22:15 -0400 Date: Thu, 04 Jul 2019 18:22:13 +0200 Message-Id: <87bly922iy.fsf@gnu.org> To: control@debbugs.gnu.org From: =?utf-8?Q?Ludovic_Court=C3=A8s?= Subject: control message for bug #36162 MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) tags 36162 fixed close 36162 quit From unknown Sat Aug 16 22:48:05 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Fri, 02 Aug 2019 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator