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.bugs Subject: bug#62053: Guile compiler is unable to compile tiny program Date: Wed, 08 Mar 2023 18:38:10 +0100 Message-ID: <87bkl36suw.fsf@web.de> References: <1678273676.721226645@f141.i.mail.ru> 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="2495"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: mu4e 1.8.13; emacs 28.1 Cc: 62053@debbugs.gnu.org To: tomas@tuxteam.de Original-X-From: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Wed Mar 08 18:45:29 2023 Return-path: Envelope-to: guile-bugs@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 1pZxqy-0000T1-V8 for guile-bugs@m.gmane-mx.org; Wed, 08 Mar 2023 18:45:29 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pZxqb-0000Nf-HL; Wed, 08 Mar 2023 12:45:05 -0500 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 1pZxqZ-0000L0-Hc for bug-guile@gnu.org; Wed, 08 Mar 2023 12:45:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pZxqZ-0000DT-6q for bug-guile@gnu.org; Wed, 08 Mar 2023 12:45:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pZxqY-0002tt-W1 for bug-guile@gnu.org; Wed, 08 Mar 2023 12:45:03 -0500 X-Loop: help-debbugs@gnu.org Resent-From: "Dr. Arne Babenhauserheide" Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Wed, 08 Mar 2023 17:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 62053 X-GNU-PR-Package: guile X-Debbugs-Original-Cc: bug-guile@gnu.org, 62053@debbugs.gnu.org Original-Received: via spool by 62053-submit@debbugs.gnu.org id=B62053.167829745811049 (code B ref 62053); Wed, 08 Mar 2023 17:45:02 +0000 Original-Received: (at 62053) by debbugs.gnu.org; 8 Mar 2023 17:44:18 +0000 Original-Received: from localhost ([127.0.0.1]:50119 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pZxpq-0002s8-3M for submit@debbugs.gnu.org; Wed, 08 Mar 2023 12:44:18 -0500 Original-Received: from mout.web.de ([212.227.15.3]:48221) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pZxpn-0002ru-Vt for 62053@debbugs.gnu.org; Wed, 08 Mar 2023 12:44:16 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=s29768273; t=1678297449; i=arne_bab@web.de; bh=PuMhCj6N3y+e4EwIG3JAoRL5oO3iobaA8EpSeHezrrE=; h=X-UI-Sender-Class:References:From:To:Cc:Subject:Date:In-reply-to; b=oZsjfoyuRqZHvhFQhkrpAzJoB0xBtHb/ZeiOTJN0JEf3yYV1MnHy90/Q3ywbvGl6c TUHlpPoFmesb1B7ZWPk879rqpytc7SXG3WxAS5kPm9ETpTEYdKarogBXkGcVvQ6dUc cHzuqXKLtQZ9oQ3ZjdZb68htwjMQ53rp1G3NPxUcdyPMb3VdKCgEYF3mhXtMzVJLQs B/esbjbe2QNNHop/FTBvUlOP1hxQLhISlhZhed+C4iDUf7QvH0pTBHQJAfwjBla3aB OxjkmGSu7JcUNUT3XisbfQMWffocSdo6x33yXAJMM8QgvC6gwaCChe9YJFrP95ySzZ BVs8XDL43ourA== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 Original-Received: from fluss ([84.149.95.143]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MHmlu-1pos4F3AoA-00Es2v; Wed, 08 Mar 2023 18:44:09 +0100 In-reply-to: X-Provags-ID: V03:K1:VwqIS+Ah/gKj8PQE9USq8ITld7tvjSrxziqtgJuSnXdkTuZiO2d S6J3s2tOS+n8eADal/CKH1HyhdmGIJUomGVJv4JOOxhHhrhGejcY0YvjeWK1FPCM7B3GWTo B1F6y4nQBpulkAicZLNBtkW9HlKz6vmhWOg6MtZb4DTLi/7ugRKqIP95cfwQsR6+MWLWHoj ec/tzztiPZasZrg5iE17A== UI-OutboundReport: notjunk:1;M01:P0:NgISLuog8RM=;sJi1j10EsVgv2X0aE/txK05N0Si NUxLsLQ4qpa9pd0txVaXcqoolgzL9709frceflR1u4eSMCdlekFupH399VRasrgMA2th2yPUf x6M227nNACZ2VffDjwIgFsxjxQOe/uVwZG551vzs1Zs18hFrCGUXyererdfu0BGukuB516oXB jFKfzuAQkeTpKXUlG0RNECOLbRB15YaOIXzVSVPQT7WFuwkqUUmfDVNKo8vQg7bJF/zJ6rlG/ YkJSEMHqvOt/FanoOOnN6Rr+c2xQmQVe2Udv7E9Lbrnj8xxP8SH9w1SEyc9UaBiGJ8tT4Hh+L inroXJidsMYxqekVZAajXStbWHwkHXz6nMlcQbF3PD7ou2A/cp0qwj8hP1GUzvyj7M8F6EKFF c6bfyPefV8Q9v6B4/mzGscPxfKtSySOLQ4OZzo3r4/IL5ic3rDAV0nDidnb/r47msNlxH7uJq sYSYBgJJSA/xq3x75ObfrhaiCLqerb9qMCCxScw5/OUalaOqrKNFQx4lX+nd0JskOvSizIvCs 2IW9ysZO2i6R45UsyjFULETxlbIAt1cwVtRghAKP+irGFNyGlxg/ebyBWepdT/8MeMp0yJ5MJ OgUo6zDYRMscPEe4yu9+fNWGi1OLb99Df+/CGFB2wDPfTVWRk9QY1D4O7i+1Up7Cfr0ba9UKy BsVxtKh56rFhxhRdTKmxP9XtKM7ouBIj+LQQs3DIMoQYPungXmPKKm04l01hmpgxxBU8JgHYU uvq39fIpmYQSQei+0Kz0/gO7+T0F93TeEBhUJGY16CMBd98yCd62wsdMa9B/sCKKyLCyNtLe X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guile@gnu.org List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Original-Sender: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.bugs:10567 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable writes: >> (define (fn l) >> =C2=A0=C2=A0=C2=A0 (define (ok l) >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (or (and (pair? l) l) >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (error "lis= t is empty"))) >> =C2=A0=C2=A0=C2=A0 (cons (reverse (car l)) (ok l))) > (so in my case it's 25 instead of 22). Interestingly, my version also > produces warnings about possibly unbound variables). If I enter the > code line by line into a repl, I also get a "not found 22". > > Interestingly, if I add a call to fn to the end of that snippet > (e.g. (fn '(a b))), the "not found" disappears. The unbound var > warnings stay. Also interesting: I can primitive-eval the code: (define code '(define (fn l) (define (ok l) (or (and (pair? l) l) (error "list is empty"))) (cons (reverse (car l)) (ok l)))) (primitive-eval code) (fn '((1 2))) ;; =3D> ((2 1) (1 2)) What might be happening here is control flow analysis discarding impossible branches: (car l) will throw an error when l is not a pair. Since arguments are evaluated in order, (ok l) will always succeed. This means (ok l) can be replaced by l. To look into details: (compile code) ;; =3D> throws an error: not found 22 ;; use ,bt to get: ,bt In system/base/compile.scm: 352:28 17 (compile _ #:from _ #:to _ #:env _ #:optimization-level _ #:wa= rning-level _ #:opts _) 265:44 16 (_ _ _) 265:44 15 (_ _ _) 261:33 14 (_ # #) In language/cps/optimize.scm: 130:12 13 (_ _ _) 102:3 12 (optimize-higher-order-cps _ _) In language/cps/type-fold.scm: 775:16 11 (type-fold _) In language/cps/renumber.scm: 170:36 10 (renumber # _) 166:30 9 (compute-renaming _ _) 144:7 8 (visit-fun _ _ _) 160:19 7 (visit-fun 12 # #) In language/cps/utils.scm: 245:39 6 (compute-predecessors # _ #:labels _) 107:3 5 (compute-function-body _ _) 129:30 4 (visit-cont _ _) 129:30 3 (visit-cont _ _) 112:9 2 (visit-cont 22 _) In language/cps/intmap.scm: 397:51 1 (_ _) In ice-9/boot-9.scm: 1685:16 0 (raise-exception _ #:continuable? _) I=E2=80=99ll leave further steps to folks who are more experienced with optimize-higher-order-cps (or want to become more experienced with it). 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+sFAmQIyWgQHGFybmVfYmFi QHdlYi5kZQAKCRAT741FJAPD66EZEADTj4uEOxB+H75X9GlwHg7eAVZ8mLl29tTl +7BZwCH920mgxU9hD52vjMojBE9DkLFOAbNe4w/xvmBdmR4/Tthri77l0HlcRpfI ymeP6Fc55Dz8dNK9BIeF/JXCtrnYNl4giVQ16isF9UPqD95rbvLZDkqQBlNrm7OF snJXvBVa+WSQGdoUVLN4/71GOg4I0JI4W24OD3SAB/uYfSC1yCs+6lPSyPsQO/kV t0eFEyAzsLsDJMwYLW2/66fjog0NjqMu/TpDL+MEVGOprcKCf2EWwRhG/ox/6RM0 l2RM/pXyqslrHcKZrmNHD9rndGBa037GF1NewBHzu4ljzWVNKIKgbVEH2c4JlA8f ZKtmAJSliFAqXoNFGrgP5LdJ/nGpvdRqBUrnNuqo2YPMhJz9+Wf3QBbLZdWJHW9C HeJ5J83yaslXb+aoUO9bBE/qRaI9lhvsR5L2MwH01l2dVkPQqRkbpsmINLMEN/5y GKiu43Tk/90S+o3IhUW5Yui7SohT+dlchEz/vAO0fUe9RAJXvlzPai0NHkhfMdhn F+JXiPTUDCEeO7nuseZzEZ7TTiw30gQ98HjUQuRs/P0CsOnHPNRRNYVIjnUvbJ3+ PUZPxhEyLyBFha9VM9JPlCI0ESPOeN+v3ihR5IympQItferyMikMt3ueEPREG5fL +NbLRK77IojEBAEBCAAuFiEE3Si95tmHXKvOSosd3M8NswvBBUgFAmQIyWgQHGFy bmVfYmFiQHdlYi5kZQAKCRDczw2zC8EFSNp4A/4pdyJsEdXeuYLCWk7wFXhwghGf x51OBeiVsdBJkcuP3zCfJuOIiOa+I4lCsQGyfs7qqA11Bd/Ms9yO8B/qQQq2NMyY oavBvDhqIujhKElIzf7RL0smIJt553VPjZC25Sw0Wt5EhjDa74HlY5xPGRWi/UYB /atZaeIC9Etbi8HSHg== =i1Le -----END PGP SIGNATURE----- --=-=-=--