From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Dr. Arne Babenhauserheide" Newsgroups: gmane.lisp.guile.devel Subject: Re: Inconsistency with expressions between definitions Date: Sun, 24 Sep 2023 18:02:45 +0200 Message-ID: <87fs33v9ft.fsf@web.de> References: <87o7hsujrk.fsf@web.de> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="23190"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: mu4e 1.10.7; emacs 29.0.92 Cc: guile-devel@gnu.org To: Linus =?utf-8?Q?Bj=C3=B6rnstam?= Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Sun Sep 24 18:11:01 2023 Return-path: Envelope-to: guile-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qkRhE-0005ov-Uq for guile-devel@m.gmane-mx.org; Sun, 24 Sep 2023 18:11:00 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qkRgu-0003TH-7U; Sun, 24 Sep 2023 12:10:40 -0400 Original-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 1qkRgt-0003T5-BC for guile-devel@gnu.org; Sun, 24 Sep 2023 12:10:39 -0400 Original-Received: from mout.web.de ([212.227.17.11]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qkRgr-00041l-Ft for guile-devel@gnu.org; Sun, 24 Sep 2023 12:10:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=s29768273; t=1695571831; x=1696176631; i=arne_bab@web.de; bh=GDHfT1Yj3S10N1YLpIEsnn9QbodXzIOCyZpqVhCEbZs=; h=X-UI-Sender-Class:References:From:To:Cc:Subject:Date:In-reply-to; b=c5ccf5CNSsBkXhhpU2uwS2BUTOuXXyPFiuQG/Qmbxibv9W7PxPp5QEb/6UHX0Bv+xpJbY9rziBU Gj65r+ikvD3iICXaAs354l83GZCMyzMCaNSBIr+czQSNFEo3VlZDJVdml34DN+I265/gyZuBnJRif 6n+LV1iA75iVdh/akFlkbqDUFftR96prwVloR5n5RNubvTFQzO3cnasQTfht5aXh5MrJsjbJoD9Kb A00EVa+34/SdTZt/c4M8ITUCDN8yxaARxgnoSdWhl0q5+IbK5Fdr7eRASRiF3upf6dC6GhFQSYSok UVuzvvdZ+XOgagwCpwsrSQfM2ArjNj5Hih1w== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 Original-Received: from fluss ([80.136.25.224]) by smtp.web.de (mrweb105 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MBjIE-1qwZAJ2FCO-00C8s8; Sun, 24 Sep 2023 18:10:31 +0200 In-reply-to: X-Provags-ID: V03:K1:zd1H1t58S171f/vcrX8mtfDG3xjgJD2EizwqCcRecYxnJjku8sR BchOLBzmMhuLpLCl5KsMqQTqq+gTFzrYY9v9KKWTFiVXRhp0VfAOwT4oE5kERR33/Iqa6FQ yUIopjY22euw7Ab033DCN/8yom4rfbhSaOXdsJcP1AVPU6Tlu1EDb+Qi0xdYMgpkqbRp9p+ lip/sTDCNrqwxOI3QCTNg== UI-OutboundReport: notjunk:1;M01:P0:eKYdyB+Bz5s=;oiyxyqsXwr89rBqzFCS3EUD3n/9 wTFnQEA0PgBs+jGNQayHcIQHew7eTvvXLzy9jLxqi1q/qniC1DJHG6QRq8x1i7tKiVcUCdcCK D2bJ6hkdIrSHucC9I8wJQU3m8DPxjTPIvA+sEOAF7JB+C88NeIojhsRIwXutOR5M+jZV1VXuV cZTKhhEt1JbyQQ3TT1SkNzdFHRznEmaeqhFyEymhJD7O+rWkvhe8FpckEpVke99e8H8AxhfGI 2FgXlDd2d9SyuCk8j4+vUtGIvIBa61jCMsnZjtACANO/a3czfXOOW0r5pZO0L+Sdd4KGb/DL7 HH+mdAyPunXRDiz8c30sYb5os1bnE7xXlBnBpq89PaBC0uEoqP+jhLV2JbOgNKpJeERde/JV7 jh61qRxb+4gzi/+NdZrITkDijw1dum2u68i89zmDMK6+AHmeEtzPMclju+JXXlKvTg8DAUJ/C 1c2/B/k6Cq6BHLkSQa3EsZf1rNGFrzlvxZmqhvEtrTu0320xzZa6EsQxet4/2ahvvadsjMhly 3numZgyd3OCwOkyrhDNRkn4BT68hRJYzVd0k/Hh+6ys8O3sjUbrOEfTlLqBEa3Nx8ZmvP0hTf eo+7KeUg8KpNbS9JmZ6n09yGBbr41eZfaYNzEuNTD3vFa30J1HJcehl1RlTcck4G1KBwshMcv ON4yTsdjGYv2x9nZBPG68zKKamrKr2pH+OYKDVlRMJM65/eCTJy5jIRd32u+v6N/XLjrEJOnG aL4k+fXn5/T0Q8NsXW1uILh2LijiwNviehnk22HYZTgimmIMTrgLQmsXU40kJQzcEDSNm+vL Received-SPF: pass client-ip=212.227.17.11; envelope-from=arne_bab@web.de; helo=mout.web.de X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.devel:21974 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi, Linus Bj=C3=B6rnstam writes: > When you are not referencing x before defining y everything works as > you want. There is no, so to say, temporal dependency on how the > things are bound. When you introduce (display x) before actually > defining y you force letrec* to bind x to the unspecified value, > because display has side-effects and you don't move around > side-effecting code. This is a technical explanation. It answers "how does this happen?" (thank you for that!), but not "why is this the correct behavior?". The core problem I see: if you inject some logging code between the defines, the behavior changes. I would expect that referencing a variable that can=E2=80=99t yet be used i= n an intermediate expression (between defines) would not cause a (potentially subtle) behavior change, but would throw an error: variable used in expression that depends on later define. Racket does not support defines using later defines at all: $ racket > (define (using-later-variable) > (define x y) > (define y #t) > x) > (using-later-variable) y: undefined; cannot use before initialization [,bt for context] Best wishes, Arne =2D-=20 Unpolitisch sein hei=C3=9Ft politisch sein, ohne es zu merken. draketo.de --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJEBAEBCAAuFiEE801qEjXQSQPNItXAE++NRSQDw+sFAmUQX3YQHGFybmVfYmFi QHdlYi5kZQAKCRAT741FJAPD68GNEADCb9sn9vpsMTvzNzraS3Czr6GT+NVh4XH6 JmYHZ8aX5hh1fIG74NTaXND5wRx/aRux8lQd5gPmnEZoYDA4TgvwwnlVWyz8WE+S 5mK35loELVBmTta41moGkHfuLsqaJ7Nb8ggI//uO9tisYR0y5yuiI/LHtcC12mLe xUP9J0ZjPRcBbDLidkkooow0btdf5yYTeO3sLn2JKdGqGoFXvIIoIn5alNbn2miQ qKBIvJ7w9gj+ZcVnIqPipU9E4BZdqXH6swb83SEjPuXZc383Oh/9sATqlnzHSTL3 vro2StrVCswCxd7L+bmgtnRYFEKbMPNduLByAh4mctK9EnVrbmmAiqLY4x1KNnrI pIG5rAmdGWZHmNTfmsPL169ofuznKhXtjyG/64jVOwNmHHVLlmedu6f5nmYuf/XL 55Vu+AoYmH8guyY6sfu9aaXdBEqFVFiDUwieGLZAY4HBx/FG3G6dMkOOPthdtNuN 2IffKwjBj6hJMOcGZtsSfhMFUxLPniKVYQTST0rMDyT71dyz1ytbcOT0yvj9GNK/ L2eEnk6xA3yHZ+G10ro9ur77leEMbIx77u2sgLfp66MJByIipBBtPPekV/dxS8Zt vE/0Mei+EkmbKvpm2EOg5RcxzeUkxGdV3UKzW8wan+nD4XMdEt9qB2U3pWOMlKBL ChlYryOUwIjEBAEBCAAuFiEE3Si95tmHXKvOSosd3M8NswvBBUgFAmUQX3cQHGFy bmVfYmFiQHdlYi5kZQAKCRDczw2zC8EFSE3aBACbDhyYHmF2l4yZzLD+lNaFASuo tfOZe8Y/FfDUu4Jm/YxQNnc3f9RcA6o5uI3y6iqut424TaekXVFOsgowrMO3ecY/ cIsPr/fgf4Nj2J3JCYUne0o3woHeq3fMyQqUimb3RQLo/kFSqnnn9ktGjwfGDhvJ rdV+iwTxasMp3CEQyQ== =X4oK -----END PGP SIGNATURE----- --=-=-=--