GNU logs - #36682, boring messages


Message sent to bug-guile@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#36682: Error in Guile scripting examples
Resent-From: Hans-Werner Roitzsch <hwroitzsch@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guile@HIDDEN
Resent-Date: Mon, 15 Jul 2019 23:20:02 +0000
Resent-Message-ID: <handler.36682.B.156323279231022 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 36682
X-GNU-PR-Package: guile
X-GNU-PR-Keywords: 
To: 36682 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-guile@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.156323279231022
          (code B ref -1); Mon, 15 Jul 2019 23:20:02 +0000
Received: (at submit) by debbugs.gnu.org; 15 Jul 2019 23:19:52 +0000
Received: from localhost ([127.0.0.1]:49384 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hnAG6-00084F-F1
	for submit <at> debbugs.gnu.org; Mon, 15 Jul 2019 19:19:52 -0400
Received: from lists.gnu.org ([209.51.188.17]:45614)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <hwroitzsch@HIDDEN>) id 1hn9fX-00079q-Ez
 for submit <at> debbugs.gnu.org; Mon, 15 Jul 2019 18:42:04 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:59258)
 by lists.gnu.org with esmtp (Exim 4.86_2)
 (envelope-from <hwroitzsch@HIDDEN>) id 1hn9fV-0002or-RD
 for bug-guile@HIDDEN; Mon, 15 Jul 2019 18:42:03 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,HTML_MESSAGE,
 RCVD_IN_DNSWL_MED,URIBL_BLOCKED autolearn=disabled version=3.3.2
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <hwroitzsch@HIDDEN>) id 1hn9fT-0003Cs-NH
 for bug-guile@HIDDEN; Mon, 15 Jul 2019 18:42:01 -0400
Received: from mout02.posteo.de ([185.67.36.66]:40139)
 by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <hwroitzsch@HIDDEN>)
 id 1hn9fT-0003An-4B
 for bug-guile@HIDDEN; Mon, 15 Jul 2019 18:41:59 -0400
Received: from submission (posteo.de [89.146.220.130]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 884012400E5
 for <bug-guile@HIDDEN>; Tue, 16 Jul 2019 00:41:56 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1563230516; bh=txTSSqhWWLBVWC8AvltNEhfuG3CazhVb+qXBsykO8U8=;
 h=To:From:Subject:Date:From;
 b=obRTBo1HJx7XL84VqoijY9641U6itXhVKOGJzSNEVrG30P4jUUGEQU75B5DyR3aKI
 iQdscqLjSNwNMo1fp6IFRRseGtUSHUlBVrNks0kfZQb71Q1HUfaBG98FOB83JYNU0z
 1l3xltjBkFRVvMHJZZmpdB99XmM5Wdis8YNTbpfyrd5KA0fpQ8CwV9q2zYqb9TJKgF
 Khm0mA8uW0PPutuOEbRYmOhJ3INosrul1i1y6prA2TWG85uIpv8tQUuAHYPYxFg9/U
 W489en1K2Z8PmETouAadTBT/iz2izSUnW9k/0/peLTJ5anJbdKwIMMuPpxwZJaCKRy
 XeQb4YhiLDRkw==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 45ndnH4YK3z9rxG
 for <bug-guile@HIDDEN>; Tue, 16 Jul 2019 00:41:55 +0200 (CEST)
From: Hans-Werner Roitzsch <hwroitzsch@HIDDEN>
Message-ID: <6956abda-8d34-8f3a-0816-9faacee7c7e7@HIDDEN>
Date: Tue, 16 Jul 2019 00:39:43 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.7.2
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary="------------EFCA7833A77C60E9DDD2AD1B"
Content-Language: en-US
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Received-From: 185.67.36.66
X-Spam-Score: -1.3 (-)
X-Mailman-Approved-At: Mon, 15 Jul 2019 19:19:48 -0400
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

This is a multi-part message in MIME format.
--------------EFCA7833A77C60E9DDD2AD1B
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello GNU Team!

I wish to report a bug in either Guile's documentation or Guile's code
with regard to running scripts.

There are some examples of that given in Guile's documentation at:

https://www.gnu.org/software/guile/manual/html_node/Scripting-Examples.ht=
ml#Scripting-Examples

In the following I will describe the problem.


I have the file `modules.scm` with the following code:

----8<----start-of-code---->8----
#!/usr/bin/env sh
exec guile -l fact.scm -e '(@ (my-module) main)' -s "$0" "$@"
!#

;; Explanation:
;; -e (my-module)
;; If run as a script run the `my-module` module's `main`.
;; (Use `@@` to reference not exported procedures.)
;; -s
;; Run the script.

(define-module (my-module)
=C2=A0 #:export (main))

;; Create a module named `fac`.
;; Export the `main` procedure as part of `fac`.

(define (n-choose-k n k)
=C2=A0 (/ (fact n)
=C2=A0=C2=A0=C2=A0=C2=A0 (* (fact k)
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (fact (- n k)))))

(define (main args)
=C2=A0 (let ((n (string->number (cadr args)))
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (k (string->number (caddr args=
))))
=C2=A0=C2=A0=C2=A0 (display (n-choose-k n k))
=C2=A0=C2=A0=C2=A0 (newline)))
----8<----end-of-code---->8----

And I have the following `fact.scm`:

----8<----start-of-code---->8----
#!/usr/local/bin/guile \
-e main -s
!#

;; How to run this program?
;; Example:
;; guile -e main -s factorial-script.scm 50
;; Explanation:
;; -e specifies the procedure to run
;; -s specifies to run this as a script
;; 50 is the number we take as input to the script

(define (fact n)
=C2=A0 (if (zero? n) 1
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (* n (fact (- n 1)))))

(define (main args)
=C2=A0 (display (fact (string->number (cadr args))))
=C2=A0 (newline))
----8<----end-of-code---->8----

The script is made executable by doing:

chmod +x modules.scm

Then I call the script as follows:

./modules.scm 10 3

This results in the error:

----8<----start-of-code---->8----
Backtrace:
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 4 (apply-smo=
b/1 #<catch-closure 119cb80>)
In ice-9/boot-9.scm:
=C2=A0=C2=A0=C2=A0 705:2=C2=A0 3 (call-with-prompt ("prompt") #<procedure=
 11aa8e0 at ice-9/eval.scm:330:13 ()> #<procedure default-prom=E2=80=A6>)
In ice-9/eval.scm:
=C2=A0=C2=A0=C2=A0 619:8=C2=A0 2 (_ #(#(#<directory (guile-user) 1233140>=
)))
In /home/xiaolong/development/Guile/scripting/./modules.scm:
=C2=A0=C2=A0=C2=A0 26:13=C2=A0 1 (main _)
=C2=A0=C2=A0=C2=A0=C2=A0 18:0=C2=A0 0 (n-choose-k _ _)

/home/xiaolong/development/Guile/scripting/./modules.scm:18:0: In procedu=
re n-choose-k:
In procedure module-lookup: Unbound variable: fact
----8<----end-of-code---->8----

According to my understanding of the tutorial in the Guile documentation
that I linked to above this code should work.

I also described the problem some time ago at:

https://stackoverflow.com/questions/50272618/guile-scheme-scripting-tutor=
ial-loading-scripts

My Guile version is:

guile (GNU Guile) 2.2.4

Best regards,

Hans-Werner Roitzsch


--------------EFCA7833A77C60E9DDD2AD1B
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html>
  <head>

    <meta http-equiv=3D"content-type" content=3D"text/html; charset=3DUTF=
-8">
  </head>
  <body bgcolor=3D"#FFFFFF" text=3D"#000000">
    <p>Hello GNU Team!</p>
    <p>I wish to report a bug in either Guile's documentation or Guile's
      code with regard to running scripts.</p>
    <p>There are some examples of that given in Guile's documentation
      at:</p>
    <p><a class=3D"moz-txt-link-freetext" href=3D"https://www.gnu.org/sof=
tware/guile/manual/html_node/Scripting-Examples.html#Scripting-Examples">=
https://www.gnu.org/software/guile/manual/html_node/Scripting-Examples.ht=
ml#Scripting-Examples</a></p>
    <p>In the following I will describe the problem.</p>
    <p><br>
    </p>
    <p>I have the file `modules.scm` with the following code:</p>
    <pre>----8&lt;----start-of-code----&gt;8----
#!/usr/bin/env sh
exec guile -l fact.scm -e '(@ (my-module) main)' -s "$0" "$@"
!#

;; Explanation:
;; -e (my-module)
;; If run as a script run the `my-module` module's `main`.
;; (Use `@@` to reference not exported procedures.)
;; -s
;; Run the script.

(define-module (my-module)
=C2=A0 #:export (main))

;; Create a module named `fac`.
;; Export the `main` procedure as part of `fac`.

(define (n-choose-k n k)
=C2=A0 (/ (fact n)
=C2=A0=C2=A0=C2=A0=C2=A0 (* (fact k)
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (fact (- n k)))))

(define (main args)
=C2=A0 (let ((n (string-&gt;number (cadr args)))
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (k (string-&gt;number (caddr a=
rgs))))
=C2=A0=C2=A0=C2=A0 (display (n-choose-k n k))
=C2=A0=C2=A0=C2=A0 (newline)))
----8&lt;----end-of-code----&gt;8----</pre>
    <p>And I have the following `fact.scm`:</p>
    <pre>----8&lt;----start-of-code----&gt;8----
#!/usr/local/bin/guile \
-e main -s
!#

;; How to run this program?
;; Example:
;; guile -e main -s factorial-script.scm 50
;; Explanation:
;; -e specifies the procedure to run
;; -s specifies to run this as a script
;; 50 is the number we take as input to the script

(define (fact n)
=C2=A0 (if (zero? n) 1
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (* n (fact (- n 1)))))

(define (main args)
=C2=A0 (display (fact (string-&gt;number (cadr args))))
=C2=A0 (newline))
----8&lt;----end-of-code----&gt;8----</pre>
    <p>The script is made executable by doing: <br>
    </p>
    <pre>chmod +x modules.scm
</pre>
    <p>Then I call the script as follows:</p>
    <pre>./modules.scm 10 3</pre>
    <p>This results in the error:</p>
    <pre>----8&lt;----start-of-code----&gt;8----
Backtrace:
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 4 (apply-smo=
b/1 #&lt;catch-closure 119cb80&gt;)
In ice-9/boot-9.scm:
=C2=A0=C2=A0=C2=A0 705:2=C2=A0 3 (call-with-prompt ("prompt") #&lt;proced=
ure 11aa8e0 at ice-9/eval.scm:330:13 ()&gt; #&lt;procedure default-prom=E2=
=80=A6&gt;)
In ice-9/eval.scm:
=C2=A0=C2=A0=C2=A0 619:8=C2=A0 2 (_ #(#(#&lt;directory (guile-user) 12331=
40&gt;)))
In /home/xiaolong/development/Guile/scripting/./modules.scm:
=C2=A0=C2=A0=C2=A0 26:13=C2=A0 1 (main _)
=C2=A0=C2=A0=C2=A0=C2=A0 18:0=C2=A0 0 (n-choose-k _ _)

/home/xiaolong/development/Guile/scripting/./modules.scm:18:0: In procedu=
re n-choose-k:
In procedure module-lookup: Unbound variable: fact
----8&lt;----end-of-code----&gt;8----
</pre>
    <p>According to my understanding of the tutorial in the Guile
      documentation that I linked to above this code should work.</p>
    <p>I also described the problem some time ago at:</p>
    <p><a class=3D"moz-txt-link-freetext" href=3D"https://stackoverflow.c=
om/questions/50272618/guile-scheme-scripting-tutorial-loading-scripts">ht=
tps://stackoverflow.com/questions/50272618/guile-scheme-scripting-tutoria=
l-loading-scripts</a></p>
    <p>My Guile version is:</p>
    <pre>guile (GNU Guile) 2.2.4
</pre>
    <p>Best regards,</p>
    <p>Hans-Werner Roitzsch<br>
    </p>
  </body>
</html>

--------------EFCA7833A77C60E9DDD2AD1B--




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Hans-Werner Roitzsch <hwroitzsch@HIDDEN>
Subject: bug#36682: Acknowledgement (Error in Guile scripting examples)
Message-ID: <handler.36682.B.156323279231022.ack <at> debbugs.gnu.org>
References: <6956abda-8d34-8f3a-0816-9faacee7c7e7@HIDDEN>
X-Gnu-PR-Message: ack 36682
X-Gnu-PR-Package: guile
Reply-To: 36682 <at> debbugs.gnu.org
Date: Mon, 15 Jul 2019 23:20:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-guile@HIDDEN

If you wish to submit further information on this problem, please
send it to 36682 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
36682: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D36682
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-guile@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#36682: Error in Guile scripting examples
Resent-From: Arne Babenhauserheide <arne_bab@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guile@HIDDEN
Resent-Date: Mon, 15 Jul 2019 23:46:02 +0000
Resent-Message-ID: <handler.36682.B.15632343081101 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 36682
X-GNU-PR-Package: guile
X-GNU-PR-Keywords: 
To: 36682 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-guile@HIDDEN
X-Debbugs-Original-Cc: 36682 <at> debbugs.gnu.org
Received: via spool by submit <at> debbugs.gnu.org id=B.15632343081101
          (code B ref -1); Mon, 15 Jul 2019 23:46:02 +0000
Received: (at submit) by debbugs.gnu.org; 15 Jul 2019 23:45:08 +0000
Received: from localhost ([127.0.0.1]:49402 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hnAea-0000Hh-2U
	for submit <at> debbugs.gnu.org; Mon, 15 Jul 2019 19:45:08 -0400
Received: from lists.gnu.org ([209.51.188.17]:42824)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arne_bab@HIDDEN>) id 1hnAeY-0000Ha-Kv
 for submit <at> debbugs.gnu.org; Mon, 15 Jul 2019 19:45:06 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:41884)
 by lists.gnu.org with esmtp (Exim 4.86_2)
 (envelope-from <arne_bab@HIDDEN>) id 1hnAeX-0004Oc-Fy
 for bug-guile@HIDDEN; Mon, 15 Jul 2019 19:45:06 -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,FREEMAIL_FROM,
 RCVD_IN_DNSWL_NONE,URIBL_BLOCKED autolearn=disabled version=3.3.2
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <arne_bab@HIDDEN>) id 1hnAeW-0000FA-8w
 for bug-guile@HIDDEN; Mon, 15 Jul 2019 19:45:05 -0400
Received: from mout.web.de ([212.227.15.3]:56563)
 by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <arne_bab@HIDDEN>) id 1hnAeV-0000CS-Vz
 for bug-guile@HIDDEN; Mon, 15 Jul 2019 19:45:04 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de;
 s=dbaedf251592; t=1563234286;
 bh=9dBohTMoCRmdX90i+AFyztdqjwsJ5O9VANvynXylg6g=;
 h=X-UI-Sender-Class:References:From:To:Cc:Subject:In-reply-to:Date;
 b=gBTuhqJWX2s2xycO22jXeN9ssHMXoM1jVOS9txfdzi+igMBpA27woiIEesfMPyICW
 d3FRhxrS6/+KBMctr0qqSK0yHNZMP2QQq4qCf92CINpVQK9jCw1ci4yXttmPZDGdAX
 BuzwH2dR60TauUvkWjjadWB3F7/yosbcwZZFfDz8=
X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9
Received: from fluss ([84.149.83.171]) by smtp.web.de (mrweb001
 [213.165.67.108]) with ESMTPSA (Nemesis) id 0Lj2TO-1iJjyV3rig-00dCOJ; Tue, 16
 Jul 2019 01:44:46 +0200
References: <6956abda-8d34-8f3a-0816-9faacee7c7e7@HIDDEN>
User-agent: mu4e 1.2.0; emacs 26.2
From: Arne Babenhauserheide <arne_bab@HIDDEN>
In-reply-to: <6956abda-8d34-8f3a-0816-9faacee7c7e7@HIDDEN>
Date: Tue, 16 Jul 2019 01:44:39 +0200
Message-ID: <875zo2g8wo.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-=";
 micalg=pgp-sha256; protocol="application/pgp-signature"
X-Provags-ID: V03:K1:L+sHWg1zxQpDE+Rgcn43Me6z8FM5mVcmCWeaHUg6NsyTx+IY2jR
 JCCmRqig7gERITbm3f2TnLG2LgD3ycDvPlr4u7w6TbqZ3B8BdHnbabf2XjUmYt8x7PEezZN
 53ItuU1VQv91BMXXtFi2BtdeR6oO/Zh7JCSTB0YrNPT3A+a50FRruJC8HToXW22EZi6TU6F
 hVvgAejkHc4w9LOZ/pe+w==
X-UI-Out-Filterresults: notjunk:1;V03:K0:EvkDqP4ZVbo=:TXk7FdgdlofiG6Njswpq/H
 Jloy5jwtY/smTNr8+fH108FityQ1tV10M8FKBFWBc/j2K9b0BXKXi94ENXj5AvudaI2qjyyGd
 pZrYoLSGovYqb7+WEPbYEx5+BF54X3CfFBvqP3TIr/bI4lNDFcFjItZ+8lfW4LsCbpq5WPNnZ
 v0qin2zfGo1P62gXgbzQKDnk7X7dp7udWKoTuEZx0orFUxU8J5I+UGbViasdaBQJJF3GelSC8
 QzIu4rKoPSU4tnqCMaQo2V2JMELfAhcLQCYtVosBAlv9PKYHwTLzLIQLA6uAaYO61UmpqK+bg
 OblKShH187ibu8MWsrHvSn6ZJsQx7XbZ3K9aUo35y2D7FqgQVUEkSOPSyZsHUQpLze3ZVBAft
 hcR8AaPFNS3aZHyeXNrKqYJqUVuau7em09J2ioWyjMLD5H36jK1Y5m6VY5BPOYXFB2LfRjViM
 I6m8lJ0mqDKblm/C/aepMJCRgDX5ZgQIZSZFRl5rt9YOZmIC6rKa3nc31ZzqudSR/qtUVd2xx
 KTCfzJzoVlrupxLunxh+sFP0Dmz+/5Z3lNpruDesFrzNQEx/yeb5NZA3qrc0xvsDYOueB39e+
 0KdOsHmYZgtSvNfb5rH7UwzoBY7Pw3Z4Guot26qb6QhUtB4I3RwyTyqwr9bFhj4exZ5D7cHaO
 9Xko=
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Received-From: 212.227.15.3
X-Spam-Score: -1.4 (-)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.4 (--)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello Hans-Werner Roitzsch,

It looks like you=E2=80=99re mixing up two concepts: the fac creates a modu=
le
and loads the fact which is not a module, so basically main and choose
live in another namespace than fact (define-module starts a new
namespace).

And it seems that this is indeed a bug in the documentation, because
https://www.gnu.org/software/guile/manual/html_node/Scripting-Examples.html=
#Scripting-Examples
jumps to defining fac as a module but does not at the same time define
and import fact as a module, too.

Hans-Werner Roitzsch <hwroitzsch@HIDDEN> writes:
> I have the file `modules.scm` with the following code:
>
> ----8<----start-of-code---->8----
> #!/usr/bin/env sh
> exec guile -l fact.scm -e '(@ (my-module) main)' -s "$0" "$@"
> !#
>
> ;; Explanation:
> ;; -e (my-module)
> ;; If run as a script run the `my-module` module's `main`.
> ;; (Use `@@` to reference not exported procedures.)
> ;; -s
> ;; Run the script.
>
> (define-module (my-module)
>   #:export (main))

At this point you need

(use-modules (fact))

> ;; Create a module named `fac`.
> ;; Export the `main` procedure as part of `fac`.
>
> (define (n-choose-k n k)
>   (/ (fact n)
>      (* (fact k)
>         (fact (- n k)))))
>
> (define (main args)
>   (let ((n (string->number (cadr args)))
>         (k (string->number (caddr args))))
>     (display (n-choose-k n k))
>     (newline)))
> ----8<----end-of-code---->8----
>
> And I have the following `fact.scm`:
>
> ----8<----start-of-code---->8----
> #!/usr/local/bin/guile \
> -e main -s
> !#
>
> ;; How to run this program?
> ;; Example:
> ;; guile -e main -s factorial-script.scm 50
> ;; Explanation:
> ;; -e specifies the procedure to run
> ;; -s specifies to run this as a script
> ;; 50 is the number we take as input to the script

To be usable as module, this needs to be defined as module:

(define-module (fact)
  #:export (fact))

> (define (fact n)
>   (if (zero? n) 1
>       (* n (fact (- n 1)))))
>
> (define (main args)
>   (display (fact (string->number (cadr args))))
>   (newline))
> ----8<----end-of-code---->8----
=E2=80=A6
> chmod +x modules.scm
> ./modules.scm 10 3

Does it work with the added module definition and import?

If yes, then this looks like a bug in the documentation.

> Best regards,
>
> Hans-Werner Roitzsch

Best wishes, and thank you for reporting!
Arne
=2D-
Unpolitisch sein
hei=C3=9Ft politisch sein
ohne es zu merken

--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEE801qEjXQSQPNItXAE++NRSQDw+sFAl0tD+oACgkQE++NRSQD
w+uv/A//TFj/xrwPZNtlVlTG4tbyISUg/fGU0Z8EnFS/BzHgsG26Z/KBW58MJ/fW
lfAWdYOnzauXa+DJU4LHs/HEfBNgYEsXFXur56OZA39bJ4F2WiRgZibcfHD45Rwt
RC8txwbldyUHz1AW009LHyGJqxlt+wAhf24VFMDdbaLFxZrG/O81YLx9nzHXumea
hFoQt8JIMPvjjoWgjm18LPCYC2bDChkIYdLDrBDSWhKJx2SuWSdJftpAsmxI0+Dh
2ChT5F6UT48Kzh/ymU1xCf1wTpb1H91x5fZJS1xYSfLIes9pkQM1qCDzY00xYhW4
CsUuSXqK+4WadEK9L1ggtMOIdxpKfElEhaz+gsG8NqOMPg8NOL93IDap7i1y5aTY
tuKi7AoJ1Rp8eJCCdXuX9Nc5/674OKlc9YptFaWW9VfvuePVw1wrYoKsa2qcfKZE
KcTr77BIt1DfIrBJsPXtfyG5diC/pb09JK7SgD2d77lp28DVdFVRHWyC/+GwVAyY
6/GQvX7PCFVeDierSYbkKaK+s1fohtl3Wek28Z9pgLMFbj3FilHwE/Q/X1UIsvQF
pgix2uyUeBxofevoVTwxZTrrZ6UAbT/jN5c2/6mzaRiMAogc673qwBz/yHLNpAQr
yULU8Xz/Cy4t2wAQv8fVsnzkjpSijGtIo39eppVnhxxug7HaJ3OIswQBAQgAHRYh
BN0ovebZh1yrzkqLHdzPDbMLwQVIBQJdLQ/qAAoJENzPDbMLwQVI8OcD/iKSTl+x
etXZzW46EajYzN6uweCViwt3jApIAFPj7rL604XAR9BmnxeEC0o8IfceIHyJ4YsH
lAdTJOEvG40whMnUYhIYsCncEWkjvzXoqHPljY8j4ZT2/OBH2r5JLlfB3oMSBvWg
qnBRLa093dldcgjMwS8IKjd1C1YGikD20GuT
=d4KY
-----END PGP SIGNATURE-----
--=-=-=--




Message sent to bug-guile@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#36682: Error in Guile scripting examples
Resent-From: Arne Babenhauserheide <arne_bab@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guile@HIDDEN
Resent-Date: Mon, 15 Jul 2019 23:46:02 +0000
Resent-Message-ID: <handler.36682.B36682.15632343051085 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 36682
X-GNU-PR-Package: guile
X-GNU-PR-Keywords: 
To: 36682 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-guile@HIDDEN
X-Debbugs-Original-Cc: 36682 <at> debbugs.gnu.org
Received: via spool by 36682-submit <at> debbugs.gnu.org id=B36682.15632343051085
          (code B ref 36682); Mon, 15 Jul 2019 23:46:02 +0000
Received: (at 36682) by debbugs.gnu.org; 15 Jul 2019 23:45:05 +0000
Received: from localhost ([127.0.0.1]:49399 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hnAeW-0000HQ-M0
	for submit <at> debbugs.gnu.org; Mon, 15 Jul 2019 19:45:04 -0400
Received: from mout.web.de ([212.227.15.3]:51939)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <arne_bab@HIDDEN>) id 1hnAeR-0000Ga-Gv
 for 36682 <at> debbugs.gnu.org; Mon, 15 Jul 2019 19:45:00 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de;
 s=dbaedf251592; t=1563234286;
 bh=9dBohTMoCRmdX90i+AFyztdqjwsJ5O9VANvynXylg6g=;
 h=X-UI-Sender-Class:References:From:To:Cc:Subject:In-reply-to:Date;
 b=gBTuhqJWX2s2xycO22jXeN9ssHMXoM1jVOS9txfdzi+igMBpA27woiIEesfMPyICW
 d3FRhxrS6/+KBMctr0qqSK0yHNZMP2QQq4qCf92CINpVQK9jCw1ci4yXttmPZDGdAX
 BuzwH2dR60TauUvkWjjadWB3F7/yosbcwZZFfDz8=
X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9
Received: from fluss ([84.149.83.171]) by smtp.web.de (mrweb001
 [213.165.67.108]) with ESMTPSA (Nemesis) id 0Lj2TO-1iJjyV3rig-00dCOJ; Tue, 16
 Jul 2019 01:44:46 +0200
References: <6956abda-8d34-8f3a-0816-9faacee7c7e7@HIDDEN>
User-agent: mu4e 1.2.0; emacs 26.2
From: Arne Babenhauserheide <arne_bab@HIDDEN>
In-reply-to: <6956abda-8d34-8f3a-0816-9faacee7c7e7@HIDDEN>
Date: Tue, 16 Jul 2019 01:44:39 +0200
Message-ID: <875zo2g8wo.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-=";
 micalg=pgp-sha256; protocol="application/pgp-signature"
X-Provags-ID: V03:K1:L+sHWg1zxQpDE+Rgcn43Me6z8FM5mVcmCWeaHUg6NsyTx+IY2jR
 JCCmRqig7gERITbm3f2TnLG2LgD3ycDvPlr4u7w6TbqZ3B8BdHnbabf2XjUmYt8x7PEezZN
 53ItuU1VQv91BMXXtFi2BtdeR6oO/Zh7JCSTB0YrNPT3A+a50FRruJC8HToXW22EZi6TU6F
 hVvgAejkHc4w9LOZ/pe+w==
X-Spam-Flag: NO
X-UI-Out-Filterresults: notjunk:1;V03:K0:EvkDqP4ZVbo=:TXk7FdgdlofiG6Njswpq/H
 Jloy5jwtY/smTNr8+fH108FityQ1tV10M8FKBFWBc/j2K9b0BXKXi94ENXj5AvudaI2qjyyGd
 pZrYoLSGovYqb7+WEPbYEx5+BF54X3CfFBvqP3TIr/bI4lNDFcFjItZ+8lfW4LsCbpq5WPNnZ
 v0qin2zfGo1P62gXgbzQKDnk7X7dp7udWKoTuEZx0orFUxU8J5I+UGbViasdaBQJJF3GelSC8
 QzIu4rKoPSU4tnqCMaQo2V2JMELfAhcLQCYtVosBAlv9PKYHwTLzLIQLA6uAaYO61UmpqK+bg
 OblKShH187ibu8MWsrHvSn6ZJsQx7XbZ3K9aUo35y2D7FqgQVUEkSOPSyZsHUQpLze3ZVBAft
 hcR8AaPFNS3aZHyeXNrKqYJqUVuau7em09J2ioWyjMLD5H36jK1Y5m6VY5BPOYXFB2LfRjViM
 I6m8lJ0mqDKblm/C/aepMJCRgDX5ZgQIZSZFRl5rt9YOZmIC6rKa3nc31ZzqudSR/qtUVd2xx
 KTCfzJzoVlrupxLunxh+sFP0Dmz+/5Z3lNpruDesFrzNQEx/yeb5NZA3qrc0xvsDYOueB39e+
 0KdOsHmYZgtSvNfb5rH7UwzoBY7Pw3Z4Guot26qb6QhUtB4I3RwyTyqwr9bFhj4exZ5D7cHaO
 9Xko=
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello Hans-Werner Roitzsch,

It looks like you=E2=80=99re mixing up two concepts: the fac creates a modu=
le
and loads the fact which is not a module, so basically main and choose
live in another namespace than fact (define-module starts a new
namespace).

And it seems that this is indeed a bug in the documentation, because
https://www.gnu.org/software/guile/manual/html_node/Scripting-Examples.html=
#Scripting-Examples
jumps to defining fac as a module but does not at the same time define
and import fact as a module, too.

Hans-Werner Roitzsch <hwroitzsch@HIDDEN> writes:
> I have the file `modules.scm` with the following code:
>
> ----8<----start-of-code---->8----
> #!/usr/bin/env sh
> exec guile -l fact.scm -e '(@ (my-module) main)' -s "$0" "$@"
> !#
>
> ;; Explanation:
> ;; -e (my-module)
> ;; If run as a script run the `my-module` module's `main`.
> ;; (Use `@@` to reference not exported procedures.)
> ;; -s
> ;; Run the script.
>
> (define-module (my-module)
>   #:export (main))

At this point you need

(use-modules (fact))

> ;; Create a module named `fac`.
> ;; Export the `main` procedure as part of `fac`.
>
> (define (n-choose-k n k)
>   (/ (fact n)
>      (* (fact k)
>         (fact (- n k)))))
>
> (define (main args)
>   (let ((n (string->number (cadr args)))
>         (k (string->number (caddr args))))
>     (display (n-choose-k n k))
>     (newline)))
> ----8<----end-of-code---->8----
>
> And I have the following `fact.scm`:
>
> ----8<----start-of-code---->8----
> #!/usr/local/bin/guile \
> -e main -s
> !#
>
> ;; How to run this program?
> ;; Example:
> ;; guile -e main -s factorial-script.scm 50
> ;; Explanation:
> ;; -e specifies the procedure to run
> ;; -s specifies to run this as a script
> ;; 50 is the number we take as input to the script

To be usable as module, this needs to be defined as module:

(define-module (fact)
  #:export (fact))

> (define (fact n)
>   (if (zero? n) 1
>       (* n (fact (- n 1)))))
>
> (define (main args)
>   (display (fact (string->number (cadr args))))
>   (newline))
> ----8<----end-of-code---->8----
=E2=80=A6
> chmod +x modules.scm
> ./modules.scm 10 3

Does it work with the added module definition and import?

If yes, then this looks like a bug in the documentation.

> Best regards,
>
> Hans-Werner Roitzsch

Best wishes, and thank you for reporting!
Arne
=2D-
Unpolitisch sein
hei=C3=9Ft politisch sein
ohne es zu merken

--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEE801qEjXQSQPNItXAE++NRSQDw+sFAl0tD+oACgkQE++NRSQD
w+uv/A//TFj/xrwPZNtlVlTG4tbyISUg/fGU0Z8EnFS/BzHgsG26Z/KBW58MJ/fW
lfAWdYOnzauXa+DJU4LHs/HEfBNgYEsXFXur56OZA39bJ4F2WiRgZibcfHD45Rwt
RC8txwbldyUHz1AW009LHyGJqxlt+wAhf24VFMDdbaLFxZrG/O81YLx9nzHXumea
hFoQt8JIMPvjjoWgjm18LPCYC2bDChkIYdLDrBDSWhKJx2SuWSdJftpAsmxI0+Dh
2ChT5F6UT48Kzh/ymU1xCf1wTpb1H91x5fZJS1xYSfLIes9pkQM1qCDzY00xYhW4
CsUuSXqK+4WadEK9L1ggtMOIdxpKfElEhaz+gsG8NqOMPg8NOL93IDap7i1y5aTY
tuKi7AoJ1Rp8eJCCdXuX9Nc5/674OKlc9YptFaWW9VfvuePVw1wrYoKsa2qcfKZE
KcTr77BIt1DfIrBJsPXtfyG5diC/pb09JK7SgD2d77lp28DVdFVRHWyC/+GwVAyY
6/GQvX7PCFVeDierSYbkKaK+s1fohtl3Wek28Z9pgLMFbj3FilHwE/Q/X1UIsvQF
pgix2uyUeBxofevoVTwxZTrrZ6UAbT/jN5c2/6mzaRiMAogc673qwBz/yHLNpAQr
yULU8Xz/Cy4t2wAQv8fVsnzkjpSijGtIo39eppVnhxxug7HaJ3OIswQBAQgAHRYh
BN0ovebZh1yrzkqLHdzPDbMLwQVIBQJdLQ/qAAoJENzPDbMLwQVI8OcD/iKSTl+x
etXZzW46EajYzN6uweCViwt3jApIAFPj7rL604XAR9BmnxeEC0o8IfceIHyJ4YsH
lAdTJOEvG40whMnUYhIYsCncEWkjvzXoqHPljY8j4ZT2/OBH2r5JLlfB3oMSBvWg
qnBRLa093dldcgjMwS8IKjd1C1YGikD20GuT
=d4KY
-----END PGP SIGNATURE-----
--=-=-=--




Message sent to bug-guile@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#36682: Error in Guile scripting examples
Resent-From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guile@HIDDEN
Resent-Date: Mon, 12 Dec 2022 21:19:03 +0000
Resent-Message-ID: <handler.36682.B36682.167087988516010 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 36682
X-GNU-PR-Package: guile
X-GNU-PR-Keywords: 
To: Arne Babenhauserheide <arne_bab@HIDDEN>
Cc: 36682 <at> debbugs.gnu.org, Hans-Werner Roitzsch <hwroitzsch@HIDDEN>
Received: via spool by 36682-submit <at> debbugs.gnu.org id=B36682.167087988516010
          (code B ref 36682); Mon, 12 Dec 2022 21:19:03 +0000
Received: (at 36682) by debbugs.gnu.org; 12 Dec 2022 21:18:05 +0000
Received: from localhost ([127.0.0.1]:55435 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1p4qBZ-0004AA-0b
	for submit <at> debbugs.gnu.org; Mon, 12 Dec 2022 16:18:05 -0500
Received: from mail-yw1-f181.google.com ([209.85.128.181]:37517)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <maxim.cournoyer@HIDDEN>) id 1p4qBX-00049m-8w
 for 36682 <at> debbugs.gnu.org; Mon, 12 Dec 2022 16:18:03 -0500
Received: by mail-yw1-f181.google.com with SMTP id
 00721157ae682-3c090251d59so165555297b3.4
 for <36682 <at> debbugs.gnu.org>; Mon, 12 Dec 2022 13:18:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=content-transfer-encoding:mime-version:user-agent:message-id
 :in-reply-to:date:references:subject:cc:to:from:from:to:cc:subject
 :date:message-id:reply-to;
 bh=4OO1FxzZzUezzKql/P97VBqRkUkE+P2cQD71wz++oI0=;
 b=Rvzo5E9qQNHy7Jeh43sxuN5hecgM9YQdEtOt9Pyb2Szt/sVIJDyngrUAKbT8dny+sI
 1OmzY0s2Khi31QEAsDz5jy/AhKT1v/h7Fx49bDDYqopC7AGkLS7IaSQUidMTYewTwhrZ
 osOXVUc20QFnSKaHmmwXWbKnjtdDRoxtIUMgYinRMd8OdiHPCVIg7bTi6h/DTS4dvx13
 Ubxb9AHu9GBe2YCDAQEhoilpYDDlUKWScTMOY4rCf3PNTKS7jbMR4+EsbEW9BbLH0XOh
 n/5ZW1iM9TLM/zoUlze6lL5Z/Gn6vlNl2IgA1LSEcMmMxn0OuuZnXSxzmWB4487dHO7o
 qC0Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=content-transfer-encoding:mime-version:user-agent:message-id
 :in-reply-to:date:references:subject:cc:to:from:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=4OO1FxzZzUezzKql/P97VBqRkUkE+P2cQD71wz++oI0=;
 b=azMjs3iSfZ/DiEH7dTjtK0uI28wLnyukvteV78rAKR/3bo54YAFAYUoz1g0BqHpGvh
 EoozkwmyJCY/UvvCWOCqUY1zKwLTwsTBua3+/dCaNSGaepACC+ZO08APR+bbwzl3nCbI
 IXi+G8t84PrRBn74t6Pv7dfZR9xRzOSez5rRS+NlE+73Vv/fsRmhfRLFtk7uzUU2AiIV
 wxFO6XvpgSY/JFCFXk8s/+NSdAtClWbbOzv0iYM2v0c+oOw5tlQrSUyxiqSAhXXb0MIF
 FKjHbZgcGySdZlEtlBHP248LHknT6+BTKwoGJLk5moTEgRXCsCv0lChFm8gZSUG3jwfz
 lo9w==
X-Gm-Message-State: ANoB5plTPTEy1C+sjnR3IcwBFIPLxihRsCDohiEbC4SQjafisonMwhJ1
 8U08/vbJEaPEqwryqAq8LzKR5KLonk2F6w==
X-Google-Smtp-Source: AA0mqf4lDzHHuhrtTWafM7R0bv0Q5m5P+SiQKso4BMXPpKfL5NzgE5uaIvWMqhaLHkWSDF7TCD/UQw==
X-Received: by 2002:a81:a8c:0:b0:36f:83d2:e3c9 with SMTP id
 134-20020a810a8c000000b0036f83d2e3c9mr13953496ywk.52.1670879877592; 
 Mon, 12 Dec 2022 13:17:57 -0800 (PST)
Received: from hurd ([2607:fad8:4:3::1006]) by smtp.gmail.com with ESMTPSA id
 f1-20020a05620a408100b006ecfb2c86d3sm6365273qko.130.2022.12.12.13.17.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 12 Dec 2022 13:17:56 -0800 (PST)
From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
References: <6956abda-8d34-8f3a-0816-9faacee7c7e7@HIDDEN>
 <875zo2g8wo.fsf@HIDDEN>
Date: Mon, 12 Dec 2022 16:17:55 -0500
In-Reply-To: <875zo2g8wo.fsf@HIDDEN> (Arne Babenhauserheide's message of "Tue, 
 16 Jul 2019 01:44:39 +0200")
Message-ID: <875yeg5njw.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hello,

Arne Babenhauserheide <arne_bab@HIDDEN> writes:

> Hello Hans-Werner Roitzsch,
>
> It looks like you=E2=80=99re mixing up two concepts: the fac creates a mo=
dule
> and loads the fact which is not a module, so basically main and choose
> live in another namespace than fact (define-module starts a new
> namespace).
>
> And it seems that this is indeed a bug in the documentation, because
> https://www.gnu.org/software/guile/manual/html_node/Scripting-Examples.ht=
ml#Scripting-Examples
> jumps to defining fac as a module but does not at the same time define
> and import fact as a module, too.
>
> Hans-Werner Roitzsch <hwroitzsch@HIDDEN> writes:
>> I have the file `modules.scm` with the following code:
>>
>> ----8<----start-of-code---->8----
>> #!/usr/bin/env sh
>> exec guile -l fact.scm -e '(@ (my-module) main)' -s "$0" "$@"
>> !#
>>
>> ;; Explanation:
>> ;; -e (my-module)
>> ;; If run as a script run the `my-module` module's `main`.
>> ;; (Use `@@` to reference not exported procedures.)
>> ;; -s
>> ;; Run the script.
>>
>> (define-module (my-module)
>>   #:export (main))
>
> At this point you need
>
> (use-modules (fact))
>
>> ;; Create a module named `fac`.
>> ;; Export the `main` procedure as part of `fac`.
>>
>> (define (n-choose-k n k)
>>   (/ (fact n)
>>      (* (fact k)
>>         (fact (- n k)))))
>>
>> (define (main args)
>>   (let ((n (string->number (cadr args)))
>>         (k (string->number (caddr args))))
>>     (display (n-choose-k n k))
>>     (newline)))
>> ----8<----end-of-code---->8----
>>
>> And I have the following `fact.scm`:
>>
>> ----8<----start-of-code---->8----
>> #!/usr/local/bin/guile \
>> -e main -s
>> !#
>>
>> ;; How to run this program?
>> ;; Example:
>> ;; guile -e main -s factorial-script.scm 50
>> ;; Explanation:
>> ;; -e specifies the procedure to run
>> ;; -s specifies to run this as a script
>> ;; 50 is the number we take as input to the script
>
> To be usable as module, this needs to be defined as module:
>
> (define-module (fact)
>   #:export (fact))
>
>> (define (fact n)
>>   (if (zero? n) 1
>>       (* n (fact (- n 1)))))
>>
>> (define (main args)
>>   (display (fact (string->number (cadr args))))
>>   (newline))
>> ----8<----end-of-code---->8----
> =E2=80=A6
>> chmod +x modules.scm
>> ./modules.scm 10 3
>
> Does it work with the added module definition and import?

Thank you for the above explanations.  I got confused by the this in the
documentation as well.  Trying the above suggestions, I still have a
problem.

I have the following two files:

fact:
--8<---------------cut here---------------start------------->8---
#!/run/current-system/profile/bin/guile \
-e main -s
!#
(define-module (fact)
 #:export (fact))

(define (fact n)
  (if (zero? n) 1
    (* n (fact (- n 1)))))

(define (main args)
  (display (fact (string->number (cadr args))))
  (newline))
--8<---------------cut here---------------end--------------->8---

fac:
--8<---------------cut here---------------start------------->8---
#!/run/current-system/profile/bin/guile \
-e (@@ (fac) main) -s
!#
(define-module (fac)
  #:export (main))

(use-modules (fact))

(define (choose n m)
  (/ (fact m) (* (fact (- m n)) (fact n))))

(define (main args)
  (let ((n (string->number (cadr args)))
        (m (string->number (caddr args))))
    (display (choose n m))
    (newline)))
--8<---------------cut here---------------end--------------->8---

But with Guile 3.0.8, this gives me:
--8<---------------cut here---------------start------------->8---
./fac 5 20
ice-9/read.scm:126:4: In procedure lp:
#<unknown port>:1:4: unexpected end of input while searching for: )
--8<---------------cut here---------------end--------------->8---

Which I don't understand.

--=20
Thanks,
Maxim




Message sent to bug-guile@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#36682: Error in Guile scripting examples
Resent-From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guile@HIDDEN
Resent-Date: Tue, 13 Dec 2022 01:09:01 +0000
Resent-Message-ID: <handler.36682.B36682.167089372314166 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 36682
X-GNU-PR-Package: guile
X-GNU-PR-Keywords: 
To: Arne Babenhauserheide <arne_bab@HIDDEN>
Cc: 36682 <at> debbugs.gnu.org, Hans-Werner Roitzsch <hwroitzsch@HIDDEN>
Received: via spool by 36682-submit <at> debbugs.gnu.org id=B36682.167089372314166
          (code B ref 36682); Tue, 13 Dec 2022 01:09:01 +0000
Received: (at 36682) by debbugs.gnu.org; 13 Dec 2022 01:08:43 +0000
Received: from localhost ([127.0.0.1]:56776 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1p4tmk-0003gQ-NR
	for submit <at> debbugs.gnu.org; Mon, 12 Dec 2022 20:08:42 -0500
Received: from mail-vs1-f45.google.com ([209.85.217.45]:35388)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <maxim.cournoyer@HIDDEN>) id 1p4tmj-0003gI-Q1
 for 36682 <at> debbugs.gnu.org; Mon, 12 Dec 2022 20:08:42 -0500
Received: by mail-vs1-f45.google.com with SMTP id k185so13166681vsc.2
 for <36682 <at> debbugs.gnu.org>; Mon, 12 Dec 2022 17:08:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=mime-version:user-agent:message-id:in-reply-to:date:references
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=qMV3R0R1ClnR1yqo91Ov+sYoIN9Oxi77S4nC0x7Gm3U=;
 b=c9R9YO7JIs18kjugeB4OmRJJ06jiZGthI79gOwwbhuButZSKFf1HZsNmrs1n2hzUYR
 5Ja2UT4Snc6kGzga1mp/CZ4pHXcHd5aaD48YtG0Bus40g3WEKE1Ib518GDUUOn8hhOqF
 An4vS/hPTYTfgrfY92c+risj0andzfPEW24I6VCrVEN9p13a4JF5lXRnoBjgDtZdaUHy
 uUT5x+z/FelMilZ2yTy8XniNljwGpi8mFBAl9lmiftyZl1HtRNMKP4ocxhv0oxXbEhKy
 dbZ44yGDYyHGCUBwgGq6BhkRyGS0Jk58lLX/JG+kwpDg/IYEHdm2AHoPNSkllZjXYPOd
 ioPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=mime-version:user-agent:message-id:in-reply-to:date:references
 :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=qMV3R0R1ClnR1yqo91Ov+sYoIN9Oxi77S4nC0x7Gm3U=;
 b=w4D1JNAOSyqskb81Z78H5YTU9t1qczMKEYtF0fsWWlhhrJuUKCD5JwKduibbMj/EFd
 4pxuuJS3f4MibULUn/BVjTMf4P/1cp0n9Ov28WXukuimct/8AeshHgN4G6K/x4RIXv1A
 MY35sKPDRPdOSlD1mqIfbRdvnGBgpqhTRJEWGnDhfp20yINo0Mq+lM4yKlu+hI16EsBx
 fQbvOF34aU/xLF/RJeHa84tpJicKPcMelHMJzsU07//M3jvNzJB3oYc+QsqpvGcbKyJ8
 LYw77T9RGeqcv2ql0uLdd+3jJ8OnCVeI8hTbSYqIkQB/nDjujvIgm5O03Erb+FV4MnZy
 dC3w==
X-Gm-Message-State: ANoB5plHafcjKaPfP0LAgnicqtug7omUw80dwedxCR55a1X+N8JiUuNZ
 jbfu7sSaP3OYsfxQaSEAVsU=
X-Google-Smtp-Source: AA0mqf4IkQlqcsdPUnLU6XURnLxUbTVSDjB5JoYTsf/uDV0IjfdU4CduSIZiUfbLj/2it9OPF4hl8g==
X-Received: by 2002:a05:6102:151:b0:3b1:29d1:3496 with SMTP id
 a17-20020a056102015100b003b129d13496mr7977822vsr.27.1670893711361; 
 Mon, 12 Dec 2022 17:08:31 -0800 (PST)
Received: from hurd ([2607:fad8:4:3::1006]) by smtp.gmail.com with ESMTPSA id
 q11-20020a37f70b000000b006faaf6dc55asm6852866qkj.22.2022.12.12.17.08.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 12 Dec 2022 17:08:30 -0800 (PST)
From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
References: <6956abda-8d34-8f3a-0816-9faacee7c7e7@HIDDEN>
 <875zo2g8wo.fsf@HIDDEN> <875yeg5njw.fsf@HIDDEN>
Date: Mon, 12 Dec 2022 20:08:28 -0500
In-Reply-To: <875yeg5njw.fsf@HIDDEN> (Maxim Cournoyer's message of "Mon, 12
 Dec 2022 16:17:55 -0500")
Message-ID: <87zgbs3yb7.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi,

Maxim Cournoyer <maxim.cournoyer@HIDDEN> writes:

[...]

> I have the following two files:
>
> fact:
>
> #!/run/current-system/profile/bin/guile \
> -e main -s
> !#
> (define-module (fact)
>  #:export (fact))
>
> (define (fact n)
>   (if (zero? n) 1
>     (* n (fact (- n 1)))))
>
> (define (main args)
>   (display (fact (string->number (cadr args))))
>   (newline))
>
>
> fac:
>
> #!/run/current-system/profile/bin/guile \
> -e (@@ (fac) main) -s
> !#
> (define-module (fac)
>   #:export (main))
>
> (use-modules (fact))
>
> (define (choose n m)
>   (/ (fact m) (* (fact (- m n)) (fact n))))
>
> (define (main args)
>   (let ((n (string->number (cadr args)))
>         (m (string->number (caddr args))))
>     (display (choose n m))
>     (newline)))
>
>
> But with Guile 3.0.8, this gives me:
>
> ./fac 5 20
> ice-9/read.scm:126:4: In procedure lp:
> #<unknown port>:1:4: unexpected end of input while searching for: )
>
> Which I don't understand.

OK, so what is apparently problematic with modules is the use of '-e (@@
(module-name) proc-name)' with Guil modules.  For the 'fac' file above,
modifying it like this:

--8<---------------cut here---------------start------------->8---
 #!/run/current-system/profile/bin/guile \
 -e (fac) -s
 !#
 (define-module (fac)
   #:export (main))

 (use-modules (fact))

 (define (choose n m)
   (/ (fact m) (* (fact (- m n)) (fact n))))

 (define (main args)
   (let ((n (string->number (cadr args)))
         (m (string->number (caddr args))))
     (display (choose n m))
     (newline)))
--8<---------------cut here---------------end--------------->8---

works.  This relies on 'main' being defined and public.  I hope that
helps!

-- 
Thanks,
Maxim





Last modified: Tue, 13 Dec 2022 01:15:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.