From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Uwe Brauer Newsgroups: gmane.emacs.devel Subject: Improve the byte compiler: cryptic error message, macros Date: Tue, 30 Jul 2024 17:16:13 +0200 Message-ID: <87msly7vwi.fsf@mat.ucm.es> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=sha256; protocol="application/pkcs7-signature" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="18120"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Jul 30 17:17:20 2024 Return-path: Envelope-to: ged-emacs-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 1sYobI-0004V3-Bq for ged-emacs-devel@m.gmane-mx.org; Tue, 30 Jul 2024 17:17:20 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sYoaQ-0000Sz-AX; Tue, 30 Jul 2024 11:16:26 -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 1sYoaP-0000Sm-4f for emacs-devel@gnu.org; Tue, 30 Jul 2024 11:16:25 -0400 Original-Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sYoaN-00066X-44 for emacs-devel@gnu.org; Tue, 30 Jul 2024 11:16:24 -0400 Original-Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-5af51684d52so4734180a12.1 for ; Tue, 30 Jul 2024 08:16:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mat.ucm.es; s=google; t=1722352581; x=1722957381; darn=gnu.org; h=mime-version:user-agent:message-id:date:subject:to:from:from:to:cc :subject:date:message-id:reply-to; bh=rr+Jh5JNLshiG+SxZ0dRKRzwySmorKUDje34xcxnVEo=; b=VxaZ9+LsBUAgGy3rN79cpQsEUn97uYp8GCYBYCbbM4VPvyIHhABKQwJRO2y1CNdGTW PrmCOufZ0DKEYIyTbPPmMxTg5fYzayQsakfrSgj8GtSIIChRb0IUg2wJ2srU1pycSz5K 1VEHLLqzCZpsXinTWH6f/cY2JsmsAhA6MKaj0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722352581; x=1722957381; h=mime-version:user-agent:message-id:date:subject:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=rr+Jh5JNLshiG+SxZ0dRKRzwySmorKUDje34xcxnVEo=; b=t8CDyxTmQk6ORnyG3/VLKxX3sl9K8H2ThaMEGONYg5MJWxei1WHvL+Jji751z4LdWp BK5mT9hBM/iD6H6GVhEoYYPhxaYzpZ9mhoxknPeaR1sPgBeFuyVlOgvAHmWky+cV3Ubr V+LkDHrIcXMy67TkYAhxrwqu1c6fQMXNxdcLtGPBHuG09GWQgmNy/xrdGP+zYcwozk2W EYJxZLTSDGOoslPAPehckhgDR8KYuONMpwQncousVZk8iLGf1dJ5NGfNok1iqxez1urn Rg5lC47IoAV0xG8wKyAYyCH6WSK9Gyb98Z+P/aahqIbQPfRLz/o7bgFWWwyVGlbkwy8g wQGg== X-Gm-Message-State: AOJu0YyE2UGb0lzTF/xBo5CbZ5N6q65uDN6aqdrDfafRBlqdFzEqqVnJ YBJoOJt5yiOzZLLLpIv9PXCCxFRfh+QcOeD64hRrCwA11a+Q7QN9QuNtDzn2q/y2Q/kEPMWOwYH XqwaBXTszSqtrlhvZhFAOZnZKhTVFyArYVInvjNuYggnVHHm11TrH2YoLed88cZCUaoq2AWJC08 GtHj2RkGpb+Q1f7ScUMlbguMFD X-Google-Smtp-Source: AGHT+IHzsgRapo1l9vWiVgaggICki/ehUs6qH/X+BR21fU9TNNnVqUzHOMpBEhCL7mmUymm4JwZGOg== X-Received: by 2002:a17:907:1c85:b0:a7d:2a62:40e9 with SMTP id a640c23a62f3a-a7d40139287mr530214166b.50.1722352580757; Tue, 30 Jul 2024 08:16:20 -0700 (PDT) Original-Received: from Utnapischtim (p200300fb0f3e6c35c74ee6e459e3e59e.dip0.t-ipconnect.de. [2003:fb:f3e:6c35:c74e:e6e4:59e3:e59e]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a7acad4acbfsm650113066b.100.2024.07.30.08.16.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 30 Jul 2024 08:16:20 -0700 (PDT) X-Mailer: emacs 29.2 (via feedmail 11-beta-1 I) Received-SPF: pass client-ip=2a00:1450:4864:20::529; envelope-from=oub@ucm.es; helo=mail-ed1-x529.google.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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:322215 Archived-At: --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi all I am a long term Emacs user, and I still use bbdb-2.35[1] I also use one of the recent packages, ox-ods exporter https://github.com/kjambunathan/org-mode-ox-odt/blob/8242670d7192e8992ac43e= 3f1033f7bcce55366f/lisp/ox-ods.el#L1329 which uses `string>`.=20 Due to clash between how stock `Emacs 28.1/29.2` defines `string>` and how `bbdb` "re-defines" `string>`, I was getting in to "weird" crash with with `ox-ods` and I hard time debugging it. I only wish if `Emacs` could somehow catch the "error", I could have saved myself some time (~ a week) 1. `emacs -Q` 2. Copy below snippet to `~/tmp/my-test.el`. Note that it "re-defines" `st= ring>` as a macro ... =2D-8<---------------cut here---------------start------------->8--- ;;; -*- mode: emacs-lisp; lexical-binding: t; -*- (require 'subr-x) (require 'pcase) (defvar my-test-fruits (list "apples" "oranges" )) ;; bbdb-2.35 contains the macro (defmacro string> (a b) (list 'not (list 'or (list 'string=3D a b) (list 'string< a b)))) ;; (defmacro string> (a b) ;; `(not (or (string=3D ,a ,b) ;; (string< ,a ,b)))) (defun my-test-3 () "Simplifed recipe without any file system APIs" (message "sorted result is: %S" (thread-last my-test-fruits (pcase--flip sort #'string>)))) (my-test-3) (provide 'my-test) =2D-8<---------------cut here---------------end--------------->8--- 3. Byte-compile and load my-test.elc 4. `C-x b *scratch*` and copy the below snippet in there =2D-8<---------------cut here---------------start------------->8--- (add-to-list 'load-path "~/tmp/") (require 'my-test) =2D-8<---------------cut here---------------end--------------->8--- 5. M-x toggle-debug-on-error 6. (my-test-3) C-x C-e (eval-last-sexp) Results in=20 =2D-8<---------------cut here---------------start------------->8--- Debugger entered--Lisp error: (invalid-function (macro . #f(compiled-functi= on (a b) #))) (macro . #f(compiled-function (a b) #))("oran= ges" "apples") sort(("apples" "oranges") string>) my-test-3() byte-code("\300 \210\301\302!\207" [my-test-3 provide my-test] 2) load("/home/oub/tmp/my-test.elc") byte-compile-and-load-file() funcall-interactively(byte-compile-and-load-file) call-interactively(byte-compile-and-load-file nil nil) command-execute(byte-compile-and-load-file) =2D-8<---------------cut here---------------end--------------->8--- Regards Uwe Brauer=20 =2D-=20 I strongly condemn Hamas heinous despicable pogroms/atrocities on Israel I strongly condemn Putin's war of aggression against Ukraine. I support to deliver weapons to Ukraine's military.=20 I support the EU and NATO membership of Ukraine.=20 --=-=-= Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=smime.p7s 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 coyM7s7kJ8nAgDeJXZ9t55HhgA6az/WaqbQtKStaLDCVgX1Wfxqqv94CdP93wp1gLln/0xzVrNYd Y3vMnoxN25n09xWMybvSK+IdqiGARS73v1vLbdpzHr2ruos+MeRigaF/Z+3W1CpiaOz2JyDA+GvM vLLXPNdjLQeh4WezhuLY34wFOal/+Lwdk4roHLcxLZSUKyNeEeHNqbBHAgMBAAGjggLIMIICxDAS BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUsdRPxCN5+kQFCcbr Oc/oNbC4IGQwgZgGCCsGAQUFBwEBBIGLMIGIMEkGCCsGAQUFBzABhj1odHRwOi8vb2NzcGZubXRy Y21jYS5jZXJ0LmZubXQuZXMvb2NzcGZubXRyY21jYS9PY3NwUmVzcG9uZGVyMDsGCCsGAQUFBzAC hi9odHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9jZXJ0cy9BQ1JBSVpGTk1UUkNNLmNydDAfBgNVHSME GDAWgBT3fcX9xOiaG3dkp/UdoMy/h2CabTCB6wYDVR0gBIHjMIHgMIHdBgRVHSAAMIHUMCkGCCsG AQUFBwIBFh1odHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzCBpgYIKwYBBQUHAgIwgZkMgZZT dWpldG8gYSBsYXMgY29uZGljaW9uZXMgZGUgdXNvIGV4cHVlc3RhcyBlbiBsYSBEZWNsYXJhY2nD s24gZGUgUHLDoWN0aWNhcyBkZSBDZXJ0aWZpY2FjacOzbiBkZSBsYSBGTk1ULVJDTSAoIEMvIEpv cmdlIEp1YW4sIDEwNi0yODAwOS1NYWRyaWQtRXNwYcOxYSkwgdQGA1UdHwSBzDCByTCBxqCBw6CB wIaBkGxkYXA6Ly9sZGFwZm5tdC5jZXJ0LmZubXQuZXMvQ049Q1JMLE9VPUFDJTIwUkFJWiUyMEZO TVQtUkNNLE89Rk5NVC1SQ00sQz1FUz9hdXRob3JpdHlSZXZvY2F0aW9uTGlzdDtiaW5hcnk/YmFz ZT9vYmplY3RjbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludIYraHR0cDovL3d3dy5jZXJ0LmZubXQu ZXMvY3Jscy9BUkxGTk1UUkNNLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAjD0otOB+DfNuXNpcdz2A ZB5O6RK4yeay/yuAoHg9hEwsZYsv3PFjK+fdUkHbr/wXC4yahPIJ1F1Wop75gmbAhV6cXuqD53xG jn5f5mPtq2LvRk4nYZWBvU0CPak0D5n55mtWlQOffUv7fOJOEu+kC0S1PHoBMVsmYSCSlHUCdtbO +6zDBQgxQGylHTaeIIjOoIlWba7ZTL2QfD52IElG7BVimkFlq+CfsQI0768p4gApmZ75Yx3RlBOG QNFgjEUXBiFYWhzVMT4t/SdVsRrmP+/qhVxq4/7Z3IuMf+tN1WGHgucj8Mo8Yod25Dype6FvGBsi K7yMFP/Sfd1ZA8UHei736weWVP25JRUau0r4rKOAYsfmh7yLgY5sfsYlS2GRTARjMaKOD9aYq+b6 ODSCeVZPseJTQrh8RaV0gGX2c1qHXbJI9U3rer/yQJdLclHxwzzZl6zMtWe0+zriK1XZYquSs0D4 u27hn9RNjiW4f4hF6+j2t5Prv3QxC9isLCNKy40Ph9cjzr+YYRIa+FvAQKamF7wv+NXS5nTXIjma aCF50Gvlaoq/rgSYhc0VVnbf6aHxEUKCo9mxq1VpWgFCrUV686E8yMS/GIyDM9e97YDeBKaeD9Qo NwobMVvIv695JmF0/zniY+Tcg8QJhkQ2oBhZeMGW2bxQNGZQG3XCmBEwggdeMIIGRqADAgECAhBO 4xiw0S+63mIlHHJCk2peMA0GCSqGSIb3DQEBCwUAMEsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhG Tk1ULVJDTTEOMAwGA1UECwwFQ2VyZXMxGTAXBgNVBAMMEEFDIEZOTVQgVXN1YXJpb3MwHhcNMjIw MzA2MjA0MTIyWhcNMjYwMzA2MjA0MTIyWjCBgTELMAkGA1UEBhMCRVMxGDAWBgNVBAUTD0lEQ0VT LVgyMDY0MTIzQjEZMBcGA1UEKgwQVVdFIFJJQ0hBUkQgT1RUTzEPMA0GA1UEBAwGQlJBVUVSMSww KgYDVQQDDCNCUkFVRVIgVVdFIFJJQ0hBUkQgT1RUTyAtIFgyMDY0MTIzQjCCASIwDQYJKoZIhvcN AQEBBQADggEPADCCAQoCggEBAKCVRP7G6NZvrispzK4ZQtrsLnCroteQ6n0H/NfOY3PFY4ycrjKF fiRtE3G/R4aVaHS9lglvNxm9jiqtaa/dGQrHAmEdFzjsumXJZzYTGj73/XWa6ILfUke11CNN1CbG loO8SrqQKY/s2gDBRps2Dczx9Yf61lcbytdjaFEZJkhd9bfrHZyV7AonIlC9anZeV9ALS/OVowJ0 dmzJnycNe4z5KvrF0gRi+92NhsKGcqz/IzOWnH48g1ur2HOCGvX9M53zg/crp3iYtFHgwR4CeNqG E/Nwz4Bok6MOrsVDY9LdpSRrBCpwawU2JZA6uPV1DkznHb+Uw1KQ5NQMGnJf+oECAwEAAaOCBAUw ggQBMG8GA1UdEQRoMGaBDk9VQkBNQVQuVUNNLkVTpFQwUjEYMBYGCSsGAQQBrGYBBAwJWDIwNjQx MjNCMRUwEwYJKwYBBAGsZgECDAZCUkFVRVIxHzAdBgkrBgEEAaxmAQEMEFVXRSBSSUNIQVJEIE9U VE8wDAYDVR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCBeAwHQYDVR0lBBYwFAYIKwYBBQUHAwQGCCsG AQUFBwMCMB0GA1UdDgQWBBRlXLbbq3nLWo9hlAdzFlbFJiR5UTAfBgNVHSMEGDAWgBSx1E/EI3n6 RAUJxus5z+g1sLggZDCBggYIKwYBBQUHAQEEdjB0MD0GCCsGAQUFBzABhjFodHRwOi8vb2NzcHVz dS5jZXJ0LmZubXQuZXMvb2NzcHVzdS9PY3NwUmVzcG9uZGVyMDMGCCsGAQUFBzAChidodHRwOi8v d3d3LmNlcnQuZm5tdC5lcy9jZXJ0cy9BQ1VTVS5jcnQwggEVBgNVHSAEggEMMIIBCDCB+gYKKwYB BAGsZgMKATCB6zApBggrBgEFBQcCARYdaHR0cDovL3d3dy5jZXJ0LmZubXQuZXMvZHBjcy8wgb0G CCsGAQUFBwICMIGwDIGtQ2VydGlmaWNhZG8gY3VhbGlmaWNhZG8gZGUgZmlybWEgZWxlY3Ryw7Nu aWNhLiBTdWpldG8gYSBsYXMgY29uZGljaW9uZXMgZGUgdXNvIGV4cHVlc3RhcyBlbiBsYSBEUEMg ZGUgbGEgRk5NVC1SQ00gY29uIE5JRjogUTI4MjYwMDQtSiAoQy9Kb3JnZSBKdWFuIDEwNi0yODAw OS1NYWRyaWQtRXNwYcOxYSkwCQYHBACL7EABADCBugYIKwYBBQUHAQMEga0wgaowCAYGBACORgEB MAsGBgQAjkYBAwIBDzATBgYEAI5GAQYwCQYHBACORgEGATB8BgYEAI5GAQUwcjA3FjFodHRwczov L3d3dy5jZXJ0LmZubXQuZXMvcGRzL1BEU0FDVXN1YXJpb3NfZXMucGRmEwJlczA3FjFodHRwczov L3d3dy5jZXJ0LmZubXQuZXMvcGRzL1BEU0FDVXN1YXJpb3NfZW4ucGRmEwJlbjCBtQYDVR0fBIGt MIGqMIGnoIGkoIGhhoGebGRhcDovL2xkYXB1c3UuY2VydC5mbm10LmVzL2NuPUNSTDU0MTksY249 QUMlMjBGTk1UJTIwVXN1YXJpb3Msb3U9Q0VSRVMsbz1GTk1ULVJDTSxjPUVTP2NlcnRpZmljYXRl UmV2b2NhdGlvbkxpc3Q7YmluYXJ5P2Jhc2U/b2JqZWN0Y2xhc3M9Y1JMRGlzdHJpYnV0aW9uUG9p bnQwDQYJKoZIhvcNAQELBQADggEBAEH6ff/NGd7OPmjKzvbBgw5oz6WReT/Z3joOg4lsmpikYU4j cFNR6FVyFxFN5c2+bR5qsG/05mZgiSDWAxn5c3jcUeDiBA26lCq3SyfJ0UNhul/MOy5ryJlBiPlk cYsz2Z0wcYftdmpDu1xIqtiTVuSTlds+Xt4ztAuGPX149BN9DuTdyaQ21nx/CXKU0iXTQHrXzjda Wu2SyjdDQDLiXOTlACs5SbLxOg/C/HkaKDP7p66soCzprt3tH9+xrX+3xNCAyCcIddNbcL7NwKzT JkRYZ+RgQoRevrm16skMma2Ogw1fF/axpJItZ/CSDsaTTnsYGIG5mr9KHpHPty01BwExggItMIIC KQIBATBfMEsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEOMAwGA1UECwwFQ2VyZXMx GTAXBgNVBAMMEEFDIEZOTVQgVXN1YXJpb3MCEE7jGLDRL7reYiUcckKTal4wDQYJYIZIAWUDBAIB BQCggaAwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjQwNzMwMTUx NjEzWjAvBgkqhkiG9w0BCQQxIgQgQ5K8b5KlE+v4AB7paCNlrsIFwCNbNbWvmejayab8ugQwNQYJ KoZIhvcNAQkPMSgwJjALBglghkgBZQMEASowCwYJYIZIAWUDBAECMAoGCCqGSIb3DQMHMA0GCSqG SIb3DQEBAQUABIIBADLlhlgTznq/5Rzui+2po30EVeN6AipJ37aMuZ4mVmJg0nBLXjiC6zlD7rbB ulOAffIBS5gCpwdfAdj06j2to3dQoc7ZMTkhaQ+N1CwwNaBkSiL8ECvb2rQ2eIcZoN9nmp7ckGPO ut+/oYUEyPIR31PoyL3wCxkJHYbR/cuipun3EEM0ey/1AVLlUlYNTD/hCQX0wnnMxuv6fX7cK52v Rs8q1TcTH2ecV+SaUCA1d8UxuXwSTz8IBTre8SA600b6gerTPEO4/ppJW84JgaqAIgIBF6LurvFQ B9Uy9rZAa8sOXdJt/Mb7Alf+jyfz1KO4oiMhEBXmADV20gz7LJxvhr4= --=-=-=--