guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

13/14: gpce-2017: Shrink to 7 pages (10pt font).


From: Ludovic Courtès
Subject: 13/14: gpce-2017: Shrink to 7 pages (10pt font).
Date: Fri, 1 Sep 2017 11:57:56 -0400 (EDT)

civodul pushed a commit to branch master
in repository maintenance.

commit 0ef6b13eed6872662105d011e9d7d3d42e9e4a8d
Author: Ludovic Courtès <address@hidden>
Date:   Fri Sep 1 15:27:49 2017 +0200

    gpce-2017: Shrink to 7 pages (10pt font).
    
    acmart v1.46 (required for the camera-ready version) uses a 10pt font,
    whereas acmart v1.09 (part of TeX Live 2016, which I used for the
    submission) uses 9pt.
---
 doc/gpce-2017/gpce.skb | 52 +++++++++++++++++++++-----------------------------
 1 file changed, 22 insertions(+), 30 deletions(-)

diff --git a/doc/gpce-2017/gpce.skb b/doc/gpce-2017/gpce.skb
index f311865..c334c0e 100644
--- a/doc/gpce-2017/gpce.skb
+++ b/doc/gpce-2017/gpce.skb
@@ -30,12 +30,6 @@
                 (! "{-}{-}")
                 "--"))))
 
-(define (corresponding)
-  (resolve (lambda (n e env)
-             (if (engine-format? "latex" e)
-                (! "co\\-rres\\-pon\\-ding")
-                "corresponding"))))
-
 (define (url url)
   (ref :text (tt url) :url url))
 
@@ -155,9 +149,9 @@
                (let ((ident (markup-ident n))
                      (legend (markup-option n :legend))
                      (mc (markup-option n :multicolumns)))
-                  (display "\\begin{figure}[ht]\n\\begin{footnotesize}\n")
+                  (display "\\begin{figure}[ht]\n\\begin{scriptsize}\n")
                   (output (markup-body n) e)
-                  (display "\n\\end{footnotesize}\n")
+                  (display "\n\\end{scriptsize}\n")
                   (format #t "\\caption{\\label{~a}"
                           (string-canonicalize ident))
                   (output legend e)
@@ -219,7 +213,7 @@ sharing.]))
    ;; See <http://dl.acm.org/ccs/ccs_flat.cfm>.
    (!latex "\\input{categories.tex}\n")
 
-   (acm-keywords [Code staging, Scheme, Functional package management])
+   (acm-keywords [Code staging, Scheme, Software deployment])
 
    (!latex "\\maketitle\n")
 
@@ -246,8 +240,8 @@ different hash.  Thus, each store file name uniquely 
identifies build
 results, and build processes are ,(emph [referentially transparent]).
 This simplifies reasoning on complex package compositions, and
 also has nice properties such as supporting transactional upgrades and
-rollback “for free.† While Guix and Nix are package managers, the
-Guix System Distribution (or GuixSD) as well as NixOS extend the
+rollback “for free.† The
+Guix System Distribution (or GuixSD) and NixOS extend the
 functional paradigm to whole operating system deployments ,(ref :bib
 'dolstra2010:nixos).])
       (p [Guix implements this functional deployment paradigm
@@ -257,8 +251,8 @@ implementation departs from Nix in interesting ways ,(ref 
:bib
 domain-specific language (DSL), the Nix language, Guix instead
 implements a set of DSLs and data structures embedded in the
 general-purpose language Scheme.  This simplifies
-the development of user interfaces and tools dealing with
-packages, and allows users to benefit from everything a
+the development of user interfaces and tools,
+and allows users to benefit from everything a
 general-purpose language brings: compiler, debugger, REPL, editor
 support, libraries, and so on.])
 
@@ -286,8 +280,8 @@ interface.]
                           (assoc-ref %build-inputs "gawk")))))
     (inputs `(("gawk" ,gawk)))                ;!inputs
     (synopsis "GNU Hello")
-    (description "An illustration of GNU's engineering practices.")
-    (home-page "http://www.gnu.org/software/hello/";)
+    (description "Example of a GNU package.")
+    (home-page "https://gnu.org/software/hello/";)
     (license gpl3+)))
 ])))
 
@@ -364,9 +358,9 @@ add the file ,(tt [GuixSD.png]) to ,(tt [/gnu/store]).  The 
variable
 ,(tt [build]) contains our build program as an sexp (the
 apostrophe is equivalent to ,(tt [quote]); it introduces unevaluated
 code).  Finally, ,(tt
-[build,(!latex "\\")-expression->derivation]) takes the build program and 
computes
+[build-expression->derivation]) takes the build program and computes
 the corresponding derivation without building it.  The user can then
-make an RPC to the build daemon asking it to build this derivation;
+make an RPC to the daemon asking it to build this derivation;
 only then will the daemon create an isolated environment and run our
 build program.])
         (p [,(tt [build-expression->derivation]) arranges so that the
@@ -615,13 +609,13 @@ seen earlier.  We defined a ,(tt [file-append]) function 
that returns
 objects with a custom expander: one that performs string concatenation
 when generating the sexp.  We can now write gexps like:]
 
-  (!latex "\\\\[0.3cm]\n")
+  (!latex "\\\\[0.3cm]\n\\begin{scriptsize}\n")
   (prog :line #f
     (source :language guix [
 #~(execl #$(file-append emacs "/bin/emacs"))
 
 ⇠(execl "/gnu/store/…-emacs-25.2/bin/emacs")]))
-  (!latex "\\\\[0.3cm]\n")
+  (!latex "\\end{scriptsize}\n\\\\[0.3cm]\n")
 
 [This is convenient in situations where we do not want or cannot impose
 a ,(tt [string-append]) call in staged code.]))
@@ -753,7 +747,7 @@ module, and the ,(tt [kodir]) store item which contains 
kernel modules
 directly or indirectly, are “pulled†in the initrd comes for free.])
         (p [Once the root file system is mounted, the initrd passes
 control to the Shepherd, our daemon-managing daemon,(footnote (ref :url (url
-"https://gnu.org/s/shepherd/";))).  The Shepherd is responsible for
+"https://gnu.org/software/shepherd/";))).  The Shepherd is responsible for
 starting system services—from the email or SSH daemon to the X
 graphical display server—and for doing other initialization operations
 such as mounting additional file systems.  The Shepherd is written in
@@ -774,7 +768,7 @@ functionality, and (2) use our start-process-in-container 
function
 lieu of the Shepherd’s own start-process function.  This is a good
 example of cross-stage code sharing, where the second stage in this
 case is the operating system’s run-time environment.])
-        (p [Another system service implemented in Scheme is GNU mcron,
+        #;(p [Another system service implemented in Scheme is GNU mcron,
 which handles scheduled job execution.  Its configuration also consists
 of Scheme snippets, which GuixSD OS definitions can include as gexps.]))
       
@@ -881,10 +875,9 @@ able to include references to store items (derivation 
results) in
 generated code while keeping track of derivations this generated
 code depends on.  However, Nix is a single-stage language:
 the “build side†is left to other languages such as
-Bash or Perl.  Users can splice arbitrary Nix expressions in
-strings thanks to ,(emph [string interpolation]) 
-,(ref :bib 'dolstra2010:nixos); when such an expression refers to a
-derivation, the interpreter records this dependency in the string
+Bash or Perl.  Users can splice Nix expressions in
+strings using ,(emph [string interpolation])
+,(ref :bib 'dolstra2010:nixos); the interpreter records this dependency in the 
string
 context and substitutes the reference with the output file name of the
 derivation.])
       (p [Nix views staged code as mere strings and thus
@@ -892,14 +885,13 @@ does not provide any guarantee on the generated code.
 The string interpolation syntax (,(tt [${])…,(tt [}])
 sequences) often clashes with the target’s language syntax (e.g.,
 Bash uses dollar-brace syntax to reference variables), which can lead
-to subtle errors and constrain developers to resort to non-trivial
-escaping syntax.  The “code-as-string†paradigm also has other side
-effects: comments and whitespace in those strings is preserved, and
+to subtle errors.  In addition, comments and whitespace in those 
+strings are preserved, and
 changing those triggers a rebuild of the derivation, which is
 inconvenient.])
-      (p [There are similarities between GuixSD and MirageOS, which both
+      (p [GuixSD and MirageOS both
 aim to unify configuration and deployment into a single high-level
-language framework ,(ref :bib 'madhavapeddy2013:unikernels).  Mirage
+language framework ,(ref :bib 'madhavapeddy2013:unikernels).  MirageOS
 uses code staging through MetaOCaml, though that is limited to the
 implementation of its data storage layer.])
       (p [Code staging is often studied in the context of optimized code



reply via email to

[Prev in Thread] Current Thread [Next in Thread]