From debbugs-submit-bounces@debbugs.gnu.org Mon May 13 00:41:15 2024 Received: (at submit) by debbugs.gnu.org; 13 May 2024 04:41:15 +0000 Received: from localhost ([127.0.0.1]:58302 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s6NUw-000760-Jf for submit@debbugs.gnu.org; Mon, 13 May 2024 00:41:15 -0400 Received: from lists.gnu.org ([209.51.188.17]:34090) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s6NUt-00075u-7C for submit@debbugs.gnu.org; Mon, 13 May 2024 00:41:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s6NUs-0006ja-Fw for bug-mumi@gnu.org; Mon, 13 May 2024 00:41:10 -0400 Received: from sail-ipv4.us-core.com ([208.82.101.137]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_CHACHA20_POLY1305:256) (Exim 4.90_1) (envelope-from ) id 1s6NUq-0008K3-43 for bug-mumi@gnu.org; Mon, 13 May 2024 00:41:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=2017; bh=V1AN9TJIzaWeb/k f2oynU16pGo5ekoiFYIfJLZxheCI=; h=date:subject:cc:to:from; d=lease-up.com; b=TtpKnQLHqKPQlS+4ZVZY1EuNr0EAsLdJNfL0htuTgjoaOce2pPQg PWa1NnYfQaFQVfql88wzWWxn0hlIcTvjZttPHXfdCzvys0uQW2eJEJ1PC9G1bhquqTi2ac E7/a8YqAaRF4zDkK54P2IZwHncwlloii4LZ7EC9PuZG1eWEOY= Received: by sail-ipv4.us-core.com (OpenSMTPD) with ESMTPSA id a452e583 (TLSv1.3:TLS_CHACHA20_POLY1305_SHA256:256:NO); Mon, 13 May 2024 04:41:06 +0000 (UTC) Received: from localhost (localhost [local]) by localhost (OpenSMTPD) with ESMTPA id 07791ad9; Mon, 13 May 2024 04:41:06 +0000 (UTC) From: Felix Lechner To: bug-mumi@gnu.org Subject: [PATCH] Render using Haunt; per dthompson's recommendation. Date: Sun, 12 May 2024 21:40:53 -0700 Message-ID: <20240513044056.7243-1-felix.lechner@lease-up.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=208.82.101.137; envelope-from=felix.lechner@us-core.com; helo=sail-ipv4.us-core.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.1 (-) X-Debbugs-Envelope-To: submit Cc: David Thompson , Felix Lechner 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.1 (--) Per a conversation with David on IRC, it's better to serve UTF-8 directly instead of transcoding to HTML entities. The new code in Haunt, which David authored and from where the previous code came, does just that. Please add 'haunt' as an "input" to the Mumi package definition in Guix after accepting this commit. A preview of this code is live at patchwise.org. --- Makefile.am | 1 - mumi/web/render.scm | 2 +- mumi/web/sxml.scm | 370 -------------------------------------------- 3 files changed, 1 insertion(+), 372 deletions(-) delete mode 100644 mumi/web/sxml.scm diff --git a/Makefile.am b/Makefile.am index 3e57e63..ae279df 100644 --- a/Makefile.am +++ b/Makefile.am @@ -40,7 +40,6 @@ SOURCES = \ mumi/web/server.scm \ mumi/web/render.scm \ mumi/web/controller.scm \ - mumi/web/sxml.scm \ mumi/web/util.scm \ mumi/web/graphql.scm \ mumi/web/view/html.scm \ diff --git a/mumi/web/render.scm b/mumi/web/render.scm index ad3ae0e..231e892 100644 --- a/mumi/web/render.scm +++ b/mumi/web/render.scm @@ -33,9 +33,9 @@ #:use-module (web response) #:use-module (web uri) #:use-module (webutils multipart) + #:use-module (haunt html) #:use-module (json) #:use-module (mumi config) - #:use-module (mumi web sxml) #:use-module (mumi web util) #:export (render-static-asset render-html diff --git a/mumi/web/sxml.scm b/mumi/web/sxml.scm deleted file mode 100644 index a3d1056..0000000 --- a/mumi/web/sxml.scm +++ /dev/null @@ -1,370 +0,0 @@ -;;; mumi -- Mediocre, uh, mail interface -;;; Copyright © 2016, 2017 Ricardo Wurmus -;;; Copyright © 2015 David Thompson -;;; -;;; This program is free software: you can redistribute it and/or -;;; modify it under the terms of the GNU Affero General Public License -;;; as published by the Free Software Foundation, either version 3 of -;;; the License, or (at your option) any later version. -;;; -;;; This program 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 -;;; Affero General Public License for more details. -;;; -;;; You should have received a copy of the GNU Affero General Public -;;; License along with this program. If not, see -;;; . - -;;; Commentary: -;; -;; SXML to HTML conversion. -;; -;;; Code: - -(define-module (mumi web sxml) - #:use-module (sxml simple) - #:use-module (srfi srfi-26) - #:use-module (ice-9 match) - #:use-module (ice-9 format) - #:use-module (ice-9 hash-table) - #:export (sxml->html)) - -(define %self-closing-tags - '(area - base - br - col - command - embed - hr - img - input - keygen - link - meta - param - source - track - wbr)) - -(define (self-closing-tag? tag) - "Return #t if TAG is self-closing." - (pair? (memq tag %self-closing-tags))) - -(define %escape-chars - (alist->hash-table - '((#\" . "quot") - (#\& . "amp") - (#\' . "apos") - (#\< . "lt") - (#\> . "gt") - (#\¡ . "iexcl") - (#\¢ . "cent") - (#\£ . "pound") - (#\¤ . "curren") - (#\¥ . "yen") - (#\¦ . "brvbar") - (#\§ . "sect") - (#\¨ . "uml") - (#\© . "copy") - (#\ª . "ordf") - (#\« . "laquo") - (#\¬ . "not") - (#\® . "reg") - (#\¯ . "macr") - (#\° . "deg") - (#\± . "plusmn") - (#\² . "sup2") - (#\³ . "sup3") - (#\´ . "acute") - (#\µ . "micro") - (#\¶ . "para") - (#\· . "middot") - (#\¸ . "cedil") - (#\¹ . "sup1") - (#\º . "ordm") - (#\» . "raquo") - (#\¼ . "frac14") - (#\½ . "frac12") - (#\¾ . "frac34") - (#\¿ . "iquest") - (#\À . "Agrave") - (#\Á . "Aacute") - (#\ . "Acirc") - (#\à . "Atilde") - (#\Ä . "Auml") - (#\Å . "Aring") - (#\Æ . "AElig") - (#\Ç . "Ccedil") - (#\È . "Egrave") - (#\É . "Eacute") - (#\Ê . "Ecirc") - (#\Ë . "Euml") - (#\Ì . "Igrave") - (#\Í . "Iacute") - (#\Î . "Icirc") - (#\Ï . "Iuml") - (#\Ð . "ETH") - (#\Ñ . "Ntilde") - (#\Ò . "Ograve") - (#\Ó . "Oacute") - (#\Ô . "Ocirc") - (#\Õ . "Otilde") - (#\Ö . "Ouml") - (#\× . "times") - (#\Ø . "Oslash") - (#\Ù . "Ugrave") - (#\Ú . "Uacute") - (#\Û . "Ucirc") - (#\Ü . "Uuml") - (#\Ý . "Yacute") - (#\Þ . "THORN") - (#\ß . "szlig") - (#\à . "agrave") - (#\á . "aacute") - (#\â . "acirc") - (#\ã . "atilde") - (#\ä . "auml") - (#\å . "aring") - (#\æ . "aelig") - (#\ç . "ccedil") - (#\è . "egrave") - (#\é . "eacute") - (#\ê . "ecirc") - (#\ë . "euml") - (#\ì . "igrave") - (#\í . "iacute") - (#\î . "icirc") - (#\ï . "iuml") - (#\ð . "eth") - (#\ñ . "ntilde") - (#\ò . "ograve") - (#\ó . "oacute") - (#\ô . "ocirc") - (#\õ . "otilde") - (#\ö . "ouml") - (#\÷ . "divide") - (#\ø . "oslash") - (#\ù . "ugrave") - (#\ú . "uacute") - (#\û . "ucirc") - (#\ü . "uuml") - (#\ý . "yacute") - (#\þ . "thorn") - (#\ÿ . "yuml") - (#\Œ . "OElig") - (#\œ . "oelig") - (#\Š . "Scaron") - (#\š . "scaron") - (#\Ÿ . "Yuml") - (#\ƒ . "fnof") - (#\ˆ . "circ") - (#\˜ . "tilde") - (#\Α . "Alpha") - (#\Β . "Beta") - (#\Γ . "Gamma") - (#\Δ . "Delta") - (#\Ε . "Epsilon") - (#\Ζ . "Zeta") - (#\Η . "Eta") - (#\Θ . "Theta") - (#\Ι . "Iota") - (#\Κ . "Kappa") - (#\Λ . "Lambda") - (#\Μ . "Mu") - (#\Ν . "Nu") - (#\Ξ . "Xi") - (#\Ο . "Omicron") - (#\Π . "Pi") - (#\Ρ . "Rho") - (#\Σ . "Sigma") - (#\Τ . "Tau") - (#\Υ . "Upsilon") - (#\Φ . "Phi") - (#\Χ . "Chi") - (#\Ψ . "Psi") - (#\Ω . "Omega") - (#\α . "alpha") - (#\β . "beta") - (#\γ . "gamma") - (#\δ . "delta") - (#\ε . "epsilon") - (#\ζ . "zeta") - (#\η . "eta") - (#\θ . "theta") - (#\ι . "iota") - (#\κ . "kappa") - (#\λ . "lambda") - (#\μ . "mu") - (#\ν . "nu") - (#\ξ . "xi") - (#\ο . "omicron") - (#\π . "pi") - (#\ρ . "rho") - (#\ς . "sigmaf") - (#\σ . "sigma") - (#\τ . "tau") - (#\υ . "upsilon") - (#\φ . "phi") - (#\χ . "chi") - (#\ψ . "psi") - (#\ω . "omega") - (#\ϑ . "thetasym") - (#\ϒ . "upsih") - (#\ϖ . "piv") - (#\  . "ensp") - (#\  . "emsp") - (#\  . "thinsp") - (#\– . "ndash") - (#\— . "mdash") - (#\‘ . "lsquo") - (#\’ . "rsquo") - (#\‚ . "sbquo") - (#\“ . "ldquo") - (#\” . "rdquo") - (#\„ . "bdquo") - (#\† . "dagger") - (#\‡ . "Dagger") - (#\• . "bull") - (#\… . "hellip") - (#\‰ . "permil") - (#\′ . "prime") - (#\″ . "Prime") - (#\‹ . "lsaquo") - (#\› . "rsaquo") - (#\‾ . "oline") - (#\⁄ . "frasl") - (#\€ . "euro") - (#\ℑ . "image") - (#\℘ . "weierp") - (#\ℜ . "real") - (#\™ . "trade") - (#\ℵ . "alefsym") - (#\← . "larr") - (#\↑ . "uarr") - (#\→ . "rarr") - (#\↓ . "darr") - (#\↔ . "harr") - (#\↵ . "crarr") - (#\⇐ . "lArr") - (#\⇑ . "uArr") - (#\⇒ . "rArr") - (#\⇓ . "dArr") - (#\⇔ . "hArr") - (#\∀ . "forall") - (#\∂ . "part") - (#\∃ . "exist") - (#\∅ . "empty") - (#\∇ . "nabla") - (#\∈ . "isin") - (#\∉ . "notin") - (#\∋ . "ni") - (#\∏ . "prod") - (#\∑ . "sum") - (#\− . "minus") - (#\∗ . "lowast") - (#\√ . "radic") - (#\∝ . "prop") - (#\∞ . "infin") - (#\∠ . "ang") - (#\∧ . "and") - (#\∨ . "or") - (#\∩ . "cap") - (#\∪ . "cup") - (#\∫ . "int") - (#\∴ . "there4") - (#\∼ . "sim") - (#\≅ . "cong") - (#\≈ . "asymp") - (#\≠ . "ne") - (#\≡ . "equiv") - (#\≤ . "le") - (#\≥ . "ge") - (#\⊂ . "sub") - (#\⊃ . "sup") - (#\⊄ . "nsub") - (#\⊆ . "sube") - (#\⊇ . "supe") - (#\⊕ . "oplus") - (#\⊗ . "otimes") - (#\⊥ . "perp") - (#\⋅ . "sdot") - (#\⋮ . "vellip") - (#\⌈ . "lceil") - (#\⌉ . "rceil") - (#\⌊ . "lfloor") - (#\⌋ . "rfloor") - (#\〈 . "lang") - (#\〉 . "rang") - (#\◊ . "loz") - (#\♠ . "spades") - (#\♣ . "clubs") - (#\♥ . "hearts") - (#\♦ . "diams")))) - -(define (string->escaped-html s port) - "Write the HTML escaped form of S to PORT." - (define (escape c) - (let ((escaped (hash-ref %escape-chars c))) - (if escaped - (format port "&~a;" escaped) - (display c port)))) - (string-for-each escape s)) - -(define (object->escaped-html obj port) - "Write the HTML escaped form of OBJ to PORT." - (string->escaped-html - (call-with-output-string (cut display obj <>)) - port)) - -(define (attribute-value->html value port) - "Write the HTML escaped form of VALUE to PORT." - (if (string? value) - (string->escaped-html value port) - (object->escaped-html value port))) - -(define (attribute->html attr value port) - "Write ATTR and VALUE to PORT." - (format port "~a=\"" attr) - (attribute-value->html value port) - (display #\" port)) - -(define (element->html tag attrs body port) - "Write the HTML TAG to PORT, where TAG has the attributes in the -list ATTRS and the child nodes in BODY." - (format port "<~a" tag) - (for-each (match-lambda - ((attr value) - (display #\space port) - (attribute->html attr value port))) - attrs) - (if (and (null? body) (self-closing-tag? tag)) - (display " />" port) - (begin - (display #\> port) - (for-each (cut sxml->html <> port) body) - (format port "" tag)))) - -(define (doctype->html doctype port) - (format port "" doctype)) - -(define* (sxml->html tree #:optional (port (current-output-port))) - "Write the serialized HTML form of TREE to PORT." - (match tree - (() *unspecified*) - (('doctype type) - (doctype->html type port)) - ;; Unescaped, raw HTML output - (('raw html) - (display html port)) - (((? symbol? tag) ('@ attrs ...) body ...) - (element->html tag attrs body port)) - (((? symbol? tag) body ...) - (element->html tag '() body port)) - ((nodes ...) - (for-each (cut sxml->html <> port) nodes)) - ((? string? text) - (string->escaped-html text port)) - ;; Render arbitrary Scheme objects, too. - (obj (object->escaped-html obj port)))) base-commit: 99416ed5c7d950eaf54d52023a2efd975bccac92 -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Mon May 13 06:09:56 2024 Received: (at 70907) by debbugs.gnu.org; 13 May 2024 10:09:56 +0000 Received: from localhost ([127.0.0.1]:60008 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s6Sd2-0008AW-JT for submit@debbugs.gnu.org; Mon, 13 May 2024 06:09:56 -0400 Received: from mugam.systemreboot.net ([139.59.75.54]:55218) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s6Scy-0008AJ-QB for 70907@debbugs.gnu.org; Mon, 13 May 2024 06:09:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=systemreboot.net; s=default; h=Content-Type:MIME-Version:Message-ID:Date: References:In-Reply-To:Subject:Cc:To:From:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=rqJjdeEfivOzNKEk9ovmlDHOrci6FGzGQrrabpAwy8k=; b=oas7sYPY8grquk8tXmdi0mopWr VyCGmGpd43ydKotWeYxosOleDgaKTUY/FfCgyC9tJklJe4JdoZSlRQHi5Csf4CCEgSPMA5sK9ycD6 o0o27jws+OMTIm7q/RHHvMF5OaLCxpE3X68qhNfLrjtEE/99UxHtPlABjQQtElNAjZmCDMBGjfIJb PGon/8n9MGz8vcbCCmb5KDicOEnNgeFj02aMqIOXqwBT1wGtRN0hBB1YU6r52Qi2yqvgpX7frRrOL MTpip5DMOq6b9xMHh2EqO/QTmUEyhqd8JVW/wGrk9uiQ9plvcAbb31ZB60fZ9PAOMwPbLMmSBCxT4 04z/0yhw==; Received: from [192.168.2.1] (port=46880 helo=localhost) by systemreboot.net with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.1) (envelope-from ) id 1s6Sa8-0004zq-05; Mon, 13 May 2024 11:06:56 +0100 From: Arun Isaac To: 70907@debbugs.gnu.org, Felix Lechner Subject: Re: bug#70907: [PATCH] Render using Haunt; per dthompson's recommendation. In-Reply-To: <20240513044056.7243-1-felix.lechner@lease-up.com> References: <20240513044056.7243-1-felix.lechner@lease-up.com> Date: Mon, 13 May 2024 11:09:37 +0100 Message-ID: <871q663twe.fsf@systemreboot.net> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70907 Cc: David Thompson 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 (-) Hi Felix, > Per a conversation with David on IRC, it's better to serve UTF-8 > directly instead of transcoding to HTML entities. I agree. But I don't want mumi to depend on haunt, a static site generator. It feels like too large of a dependency. Could we achieve the same effect using sxml->html from guile-lib? If not, could we patch guile-lib to that effect? Thanks, Arun From debbugs-submit-bounces@debbugs.gnu.org Mon May 13 06:48:14 2024 Received: (at 70907) by debbugs.gnu.org; 13 May 2024 10:48:14 +0000 Received: from localhost ([127.0.0.1]:60216 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s6TE5-0002vH-T8 for submit@debbugs.gnu.org; Mon, 13 May 2024 06:48:14 -0400 Received: from mail-ot1-f42.google.com ([209.85.210.42]:59690) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s6TE4-0002v9-Bl for 70907@debbugs.gnu.org; Mon, 13 May 2024 06:48:13 -0400 Received: by mail-ot1-f42.google.com with SMTP id 46e09a7af769-6f112c8f2bfso92978a34.3 for <70907@debbugs.gnu.org>; Mon, 13 May 2024 03:48:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=worcester-edu.20230601.gappssmtp.com; s=20230601; t=1715597226; x=1716202026; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=/gbdOA0GnTf+oOZF7nUXU3YVd8s/rp3LdLqaXHsL1PI=; b=S5qwyykrPRylMCyet0nN2RNdrV101QHj1/7Kb0Nu28DZ9w6qcCPWm0T4cNfgRMGiNd fyl9zjckEykcXDCxItaCni35svnM+M+uXCBTskaoLgWzrsavIRBQ2lvYaiUWPqUs9ke1 UK0XFcnZi5/jBH+i6XGytxLojdxj4q33I5XasmTWGcrQNHKcFU/Tst++nLuOe35eeM/i RVGnXDZmYoJerNSwSVmgNPosid7rihdZAPOVAnlyqPz913yKQDnRpjA5+6BD6h4btqLj E0JX4BD36jQbXGLpXVKNUg5kGbHXR2k0W1E8DKecZmc1knRwyO1+mElhoFNZkUx40gwV LWDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715597226; x=1716202026; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/gbdOA0GnTf+oOZF7nUXU3YVd8s/rp3LdLqaXHsL1PI=; b=whIRkmaDwgppuhtSeY+smR7onnS3huAgqfZ7IGq3ZIFbV/WV5dXuHdyYl4lNWvDGgx okwud5/gpcMWv+JMtTVUo+T/8eobF6UJmArdsBRxhUYwdEok2uQmly6Q/JR86em/QNkn Bjy5TPAW2lG+m47X50ZHdtWrjavKgDPZ91FBRpUbt1mDdvDM4bDu8QKq5XMQ2bSQkF7x lyPXBYWB1QetW2mR5qUPTvESgTS+dpxAokrwdIHHz4PSLjgGmCatSPY9V2d3Owvbnewv 0kPslnZqkAOAycn6dXqceCZ61uH3n/yZc6beWaOgTcsvdvIKnAVHge4OgExzStSo6x3H Swvg== X-Gm-Message-State: AOJu0YwhXAHbILeyQyhOntgqsD5CqcOKk7UJTbtpgAXEEiZpwL03Auvi FHKkns41YTYlUEq6Oks1Do3rFHAj+8yOBnLVIupf7V3Z+tv9G0lt721Xszcplj+dwy2oHA8+Q2A GSgxmZVDsu6dnq1da8HMZY4txo8QHExinM1jamgAB4EHDp719 X-Google-Smtp-Source: AGHT+IEBVCo05D8DTWs1hEh/j3pZ5wftc7tJANcp2jLAAt6lTmSmT9aKo9un4YGTYX2lgBpQ+uJ4JMg6XO3JbEu1jmo= X-Received: by 2002:a05:6870:d147:b0:23c:737f:5bcf with SMTP id 586e51a60fabf-24172a4f896mr15607020fac.8.1715597226155; Mon, 13 May 2024 03:47:06 -0700 (PDT) MIME-Version: 1.0 References: <20240513044056.7243-1-felix.lechner@lease-up.com> <871q663twe.fsf@systemreboot.net> In-Reply-To: <871q663twe.fsf@systemreboot.net> From: "Thompson, David" Date: Mon, 13 May 2024 06:46:54 -0400 Message-ID: Subject: Re: bug#70907: [PATCH] Render using Haunt; per dthompson's recommendation. To: Arun Isaac Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70907 Cc: Felix Lechner , 70907@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 (-) Hi, On Mon, May 13, 2024 at 6:09=E2=80=AFAM Arun Isaac wrote: > > > Hi Felix, > > > Per a conversation with David on IRC, it's better to serve UTF-8 > > directly instead of transcoding to HTML entities. > > I agree. But I don't want mumi to depend on haunt, a static site > generator. It feels like too large of a dependency. Could we achieve the > same effect using sxml->html from guile-lib? If not, could we patch > guile-lib to that effect? Feel free to just snarf the relevant code from haunt if it's useful to you. No need to add a hard dependency. - Dave From debbugs-submit-bounces@debbugs.gnu.org Tue May 14 09:29:20 2024 Received: (at 70907) by debbugs.gnu.org; 14 May 2024 13:29:20 +0000 Received: from localhost ([127.0.0.1]:39358 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s6sDX-0005BD-Na for submit@debbugs.gnu.org; Tue, 14 May 2024 09:29:20 -0400 Received: from sail-ipv4.us-core.com ([208.82.101.137]:55912) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s6sDR-0005B3-0b for 70907@debbugs.gnu.org; Tue, 14 May 2024 09:29:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=2017; bh=ixjmvF2fqT4DuEh +91GzWR7DRXGoonpuoP0lfpwfw2Y=; h=date:references:in-reply-to:subject: cc:to:from; d=lease-up.com; b=Mw5GG9/lywcINkwd21STyuomYIvnRLM7u2rIuyy6 4rhKqFgxaUiyjtcOyzj6IKpF5JjV/nRz9R4DHLNYVUldWd7eKD5qXTuYQytM4sU3CK3xEo aDvPHH2tYe9rXeFvDE6ajGPTUtNki/CWy1QoYQcKkV3XE/us2HDRD4PwqPcMg= Received: by sail-ipv4.us-core.com (OpenSMTPD) with ESMTPSA id 53179c3a (TLSv1.3:TLS_CHACHA20_POLY1305_SHA256:256:NO); Tue, 14 May 2024 13:29:09 +0000 (UTC) From: Felix Lechner To: "Thompson, David" , Arun Isaac Subject: Re: bug#70907: [PATCH] Render using Haunt; per dthompson's recommendation. In-Reply-To: References: <20240513044056.7243-1-felix.lechner@lease-up.com> <871q663twe.fsf@systemreboot.net> Date: Tue, 14 May 2024 06:29:08 -0700 Message-ID: <87frukwmhn.fsf@lease-up.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70907 Cc: 70907@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 (-) Hi Arun, On Mon, May 13 2024, Arun Isaac wrote: > I don't want mumi to depend on haunt, a static site generator. Well, Mumi does, and has. Pulling the code from Haunt is the honest and right thing to do. What does 'want' have to do with it? > It feels like too large of a dependency. I don't think it has much bearing. Which other packages consume Mumi? The effect in the dependency graphs is almost zero. > Could we achieve the same effect using sxml->html from guile-lib? If > not, could we patch guile-lib to that effect? That's an appealing idea---and maybe David could shed some light on the need to reimplement sxml->html---but it should not stand in the way of fixing things. It could be something to consider for the future. If David were to contribute the routine to guile-lib, it would disappear from Haunt. That would cause us to inquire where it went and then switch to guile-lib as a prerequisite instead. On Mon, May 13 2024, David Thompson wrote: > Feel free to just snarf the relevant code from haunt While your offer is generous, it would be an error. Let's learn from the past: That decision was made at an earlier point in time. By failing to keep up, it caused the need for this patch. Kind regards Felix From debbugs-submit-bounces@debbugs.gnu.org Tue May 14 15:02:21 2024 Received: (at 70907) by debbugs.gnu.org; 14 May 2024 19:02:21 +0000 Received: from localhost ([127.0.0.1]:40899 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s6xPk-0003gT-VL for submit@debbugs.gnu.org; Tue, 14 May 2024 15:02:20 -0400 Received: from sail-ipv4.us-core.com ([208.82.101.137]:46454) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s6xPf-0003gH-1f for 70907@debbugs.gnu.org; Tue, 14 May 2024 15:02:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=2017; bh=hZob/+RLICmP69p ipCeWc0nphtt9M/ldhvb1xy2xXj8=; h=date:references:in-reply-to:subject: cc:to:from; d=lease-up.com; b=dILDSDQf1CChYXMP4Sw/sRcTtH9WTUrM9MU0PRfR Lu+I7HDvUkzuobqa4LOoKylfIPe5UBWQyYiR10c6emsFFGYohBYhmxh2BDFRLO/h0SMPfa yoR4rZoa2q+NAhq0xT202QA0SVXFrnxFupPmGBJuLPnmbjC+SLupJb+WAyGso= Received: by sail-ipv4.us-core.com (OpenSMTPD) with ESMTPSA id 6149157b (TLSv1.3:TLS_CHACHA20_POLY1305_SHA256:256:NO); Tue, 14 May 2024 19:02:08 +0000 (UTC) From: Felix Lechner To: Arun Isaac , 70907@debbugs.gnu.org Subject: Re: bug#70907: [PATCH] Render using Haunt; per dthompson's recommendation. In-Reply-To: <871q663twe.fsf@systemreboot.net> References: <20240513044056.7243-1-felix.lechner@lease-up.com> <871q663twe.fsf@systemreboot.net> Date: Tue, 14 May 2024 12:02:07 -0700 Message-ID: <87cypow72o.fsf@lease-up.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70907 Cc: David Thompson 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 (-) Hi Arun, On Mon, May 13 2024, Arun Isaac wrote: > I don't want mumi to depend on haunt On that note, does the recent addition of 'mumi www' in commit a98099be, which now requires xdg-utils, pull in several X11 client libraries like libx11, libxau and libxcb; as well as python (via libxslt), ncurses (via gettext-minimal), and xz? Is that more substantial than depending on haunt (and texinfo)? Kind regards Felix From debbugs-submit-bounces@debbugs.gnu.org Tue May 14 19:15:36 2024 Received: (at control) by debbugs.gnu.org; 14 May 2024 23:15:36 +0000 Received: from localhost ([127.0.0.1]:41555 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s71Mt-000136-RU for submit@debbugs.gnu.org; Tue, 14 May 2024 19:15:36 -0400 Received: from sail-ipv4.us-core.com ([208.82.101.137]:44392) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s71Mr-000130-M4 for control@debbugs.gnu.org; Tue, 14 May 2024 19:15:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=2017; bh=TenCA0v6Aws8fw+ U8CTTQJoNeq70fR2OsxenIcyWt80=; h=date:cc:to:from; d=lease-up.com; b=QA sufy3hhjqxMPyiHl+qhb2QxwUenXEvnCz7ET9Jmpa13wvPgbvpT9mUXB6Qc1Tat4Mh/S8+ L1m2VSKk9f+sHYsXKK6ySDjDPmWNhWuJQGXDIZJQCvNQfLt1RTeqz6ymkq9m/SKrWYVYZK aQoeaL4VMovn68FeHkviCC4s26JyQ= Received: by localhost (OpenSMTPD) with ESMTPA id 5edbcb42 for ; Tue, 14 May 2024 23:15:31 +0000 (UTC) Delivered-To: control@patchwise.org DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=2017; bh=TenCA0v6Aws8fw+ U8CTTQJoNeq70fR2OsxenIcyWt80=; h=date:cc:to:from; d=lease-up.com; b=QA sufy3hhjqxMPyiHl+qhb2QxwUenXEvnCz7ET9Jmpa13wvPgbvpT9mUXB6Qc1Tat4Mh/S8+ L1m2VSKk9f+sHYsXKK6ySDjDPmWNhWuJQGXDIZJQCvNQfLt1RTeqz6ymkq9m/SKrWYVYZK aQoeaL4VMovn68FeHkviCC4s26JyQ= Received: by sail-ipv4.us-core.com (OpenSMTPD) with ESMTPSA id 790c1160 (TLSv1.3:TLS_CHACHA20_POLY1305_SHA256:256:NO) for ; Tue, 14 May 2024 23:15:31 +0000 (UTC) From: Felix Lechner To: control@patchwise.org Date: Tue, 14 May 2024 16:15:31 -0700 Message-ID: <87a5ksvvcc.fsf@lease-up.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: block 69381 by 70906 70907 tags 69381 + patch thanks Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record 1.8 MISSING_SUBJECT Missing Subject: header 0.2 NO_SUBJECT Extra score for no subject 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: 1.0 (+) block 69381 by 70906 70907 tags 69381 + patch thanks From debbugs-submit-bounces@debbugs.gnu.org Sat May 18 22:32:42 2024 Received: (at 70907) by debbugs.gnu.org; 19 May 2024 02:32:42 +0000 Received: from localhost ([127.0.0.1]:35679 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s8WLp-0006dP-OH for submit@debbugs.gnu.org; Sat, 18 May 2024 22:32:42 -0400 Received: from mugam.systemreboot.net ([139.59.75.54]:36354) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s8WLm-0006dJ-CT for 70907@debbugs.gnu.org; Sat, 18 May 2024 22:32:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=systemreboot.net; s=default; h=Content-Type:MIME-Version:Message-ID:Date: References:In-Reply-To:Subject:Cc:To:From:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=oMUIfjjc8IqoBh8r20KG1tT5VQ4I0KjItXv5L+MqmD4=; b=DaAAuJwyA5zJ4mkCJOPRS+srgT ojK867BZBZCkEPY9Rr6bGKd85eVcIB6rtArhaXzxKGhbGHX9Z5tkWygyWjExTDgUrMZRlso8X0YF7 sv2jbmDOuPWHU50hB51H6ynulMyu7iu4veeV8skjWBnzgO2mUXBrjDfGqgoH9OEJdifrTjiktO2hT T15VD4MIPlelUyli0gHO+5wK2KXW/nRknhdhZjKAINSMhdw1aDfjfqOfE/jb6O2JfoW6QJarVTmtK xhDIQQ9h46ubnaoAiPaKYEm/jheDeDfC5LTgrYSUk6n2a8rRs5Z0pKR5HXSxqJJmFB4Tg2SjcLV4d DZR8mQ/Q==; Received: from [192.168.2.1] (port=33464 helo=localhost) by systemreboot.net with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.1) (envelope-from ) id 1s8WIi-00030O-0e; Sun, 19 May 2024 03:29:29 +0100 From: Arun Isaac To: Felix Lechner , 70907@debbugs.gnu.org Subject: Re: bug#70907: [PATCH] Render using Haunt; per dthompson's recommendation. In-Reply-To: <87cypow72o.fsf@lease-up.com> References: <20240513044056.7243-1-felix.lechner@lease-up.com> <871q663twe.fsf@systemreboot.net> <87cypow72o.fsf@lease-up.com> Date: Sun, 19 May 2024 03:32:21 +0100 Message-ID: <87y186ilai.fsf@systemreboot.net> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70907 Cc: David Thompson 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 (-) Hi Felix, Haunt is an end-user application, not a library. It is not a good idea to depend on end-user applications as though they were libraries. It is not so much a question of how big those end-user applications are, though sometimes that may be a consideration. Imagine getting mumi to depend on inkscape or something! Depending on end-user applications is the last resort when all other options have been exhausted. To describe just one problem: end-user applications such as Haunt may bring in other guile packages that we don't need. Since guile packages need all of these to be propagated inputs, this can cause trouble with package collisions in profiles, or maybe even circular dependencies. Now, Haunt doesn't pull in that many dependencies, and it's probably fine for now. But, depending on end-user applications is simply not good practice. Ultimately, mumi has no real need to depend on Haunt. It is so much easier to simply copy the relevant html.scm file from Haunt into mumi like David suggested. Or, better still, get it into the sxml->html of guile-lib. About xdg-utils: I see your point about xdg-utils being a large dependency. I completely agree. However, xdg-open is well established as the standard way to open the user's preferred web browser and email client. I am not fond of it, but it is what it is. If there is a way to do this without xdg-utils, I am all ears and happy to switch. Regards, Arun From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 09 01:13:38 2025 Received: (at 70907) by debbugs.gnu.org; 9 Mar 2025 06:13:39 +0000 Received: from localhost ([127.0.0.1]:57774 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tr9us-0005qG-HL for submit@debbugs.gnu.org; Sun, 09 Mar 2025 01:13:38 -0500 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]:55652) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1tr9up-0005pv-6V for 70907@debbugs.gnu.org; Sun, 09 Mar 2025 01:13:36 -0500 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-224171d6826so38220435ad.3 for <70907@debbugs.gnu.org>; Sat, 08 Mar 2025 22:13:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741500808; x=1742105608; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lR67fS2spNfWqeoMnwtQNq8hXuU0PkfHVqCjMO9VYj8=; b=N9LmTTzoIC4T23FwtmglCeQCLsfuSUzEVdT3RzLDQ17gJCtK9d6MAyPO6A4a+Hi7br +2MoGIVunWU00aAZlzBkXQSe4+5G4at0H1GSUuCtfuCiw6Hk6ohRo2tNQXQbDb+EPYin 2HkyE3sFH2hHviclAq7Y+M1EB8RFm4ePTtKNroXpdGq+DylbUV9m/GWLs7IXTxkNYiL+ VO2DRlmV5Sf/4Dl3behyc5dETJdjY7n0I5R7FBQ/Wv2+JiH6y9ru1aWB/0xbj5HelZix xfOAQymLOeTurvHxihqVm8Bu6wvSKZBh/dToLZW/IOk4vulDhJpkvlvYmYcXaSJzvqoq T07A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741500808; x=1742105608; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=lR67fS2spNfWqeoMnwtQNq8hXuU0PkfHVqCjMO9VYj8=; b=itGm6QHABRqor8WDzt3Sy4QeUlYVGMRNLc8/3tphwDS23bJhh4qTe1SOQw1ZLqmXMB AW/nZK9wdF8njMrippOEOBF1qx+KuHriPJ/7z8+H5DsPGllmGydIXu3Dfx8GHG+L+4L0 BPnsW8Z23ibaQk2RqBVJljeEktS/g/tFsSdMHRBtEWUDQEb4rua3T/RtCqmq3mWXNAMn osBo49boaJUB0+VPOULHd6nDRGqMO6Y9LH5IIYFEwOor9mz5rgz+0b6/tBDUJccvMUMT D81cPOYEB4RDYrxk1oi2kGssGAbudCECFngfeYbDazzIZ72Y3n4aYkiJ1SjtJAvbw6GT lmVA== X-Forwarded-Encrypted: i=1; AJvYcCX8DiF3Ni6KM5h2z8UYta1MpchcUiUltZryRnCOR20zzeZdaemZHtHUudzYHmc2wOV2HlRttw==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yw8bZ8fRQ0PSu6ef9tivaWzcM4Rr4i9aPbJUVVIwFFSutNNBefc OXYbVgCFHEEC+NkpZWXiqYeV2pH1/ttx4xxuExXCtmUW3MdNxxiZvYMVUn40bKISOg== X-Gm-Gg: ASbGncustWn60HcDPnlRo0QDRXYcX5NzuHxAZZWoufiaIRKuAlNjmum6MmuqQdrIo3e qMj6sWyYyKDRbwuVnrRK0TIL6q9/BpRjSUh4TCRGvyOdBl3dr1AgfDtOOVOnRFWtQncBYxFC1ah ty/qQG2Z8hze+Ft51hmOrCAkm+/iG8aPcaNd66SYlefZYQHKomye2BLK60R6tvEIlw7akFGV+6Z Cj+Z4SEhTpgYTtQi1sEa3lYt53fHVnaFEh2m1aaE9AAjDwCz5o63PeA0PHIAQTH/D5TbS6Qgn04 ydfNdaK4d+iyhLOZwQgJrK1yuMZvqXLqAAk+BSw1rs8= X-Google-Smtp-Source: AGHT+IG72HZc+eKXxPJzFfkV1eWcYqutB41AA5B6h6Yndg+JXWEkbYQ65++v6jsUraMBUw0OhZinoQ== X-Received: by 2002:a05:6a00:b4d:b0:730:8a0a:9f09 with SMTP id d2e1a72fcca58-736aaaaca0fmr14806872b3a.18.1741500808589; Sat, 08 Mar 2025 22:13:28 -0800 (PST) Received: from terra ([2405:6586:be0:0:83c8:d31d:2cec:f542]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-736c7f69089sm1318091b3a.65.2025.03.08.22.13.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Mar 2025 22:13:28 -0800 (PST) From: Maxim Cournoyer To: Felix Lechner Subject: Re: bug#70907: [PATCH] Render using Haunt; per dthompson's recommendation. In-Reply-To: (David Thompson's message of "Mon, 13 May 2024 06:46:54 -0400") References: <20240513044056.7243-1-felix.lechner@lease-up.com> <871q663twe.fsf@systemreboot.net> Date: Sun, 09 Mar 2025 15:13:15 +0900 Message-ID: <87v7siu3yc.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 70907 Cc: Arun Isaac , 70907@debbugs.gnu.org, Felix Lechner 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 (-) Hi Felix, "Thompson, David" writes: > Hi, > > On Mon, May 13, 2024 at 6:09=E2=80=AFAM Arun Isaac wrote: >> >> >> Hi Felix, >> >> > Per a conversation with David on IRC, it's better to serve UTF-8 >> > directly instead of transcoding to HTML entities. >> >> I agree. But I don't want mumi to depend on haunt, a static site >> generator. It feels like too large of a dependency. Could we achieve the >> same effect using sxml->html from guile-lib? If not, could we patch >> guile-lib to that effect? > > Feel free to just snarf the relevant code from haunt if it's useful to > you. No need to add a hard dependency. Would you mind to do this and submit a v2? It's suboptimal, but you could add a TODO mentioning that this fragment of Haunt should be re-homed somewhere suitable such as the guile-lib library. --=20 Thanks, Maxim