From unknown Wed Jun 18 23:08:13 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#50268 <50268@debbugs.gnu.org> To: bug#50268 <50268@debbugs.gnu.org> Subject: Status: 28.0.50; Assertion warning during native compilation Reply-To: bug#50268 <50268@debbugs.gnu.org> Date: Thu, 19 Jun 2025 06:08:13 +0000 retitle 50268 28.0.50; Assertion warning during native compilation reassign 50268 emacs submitter 50268 Michael Welsh Duggan severity 50268 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 30 10:05:38 2021 Received: (at submit) by debbugs.gnu.org; 30 Aug 2021 14:05:38 +0000 Received: from localhost ([127.0.0.1]:59941 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mKhur-0005jF-JW for submit@debbugs.gnu.org; Mon, 30 Aug 2021 10:05:38 -0400 Received: from lists.gnu.org ([209.51.188.17]:60908) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mKhup-0005j8-Kr for submit@debbugs.gnu.org; Mon, 30 Aug 2021 10:05:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47320) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mKhuk-0001jN-It for bug-gnu-emacs@gnu.org; Mon, 30 Aug 2021 10:05:35 -0400 Received: from md5i.com ([75.151.244.229]:57886) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mKhuf-0001V1-9r for bug-gnu-emacs@gnu.org; Mon, 30 Aug 2021 10:05:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=md5i.com; s=dkim; h=Content-Type:MIME-Version:Message-ID:Date:Subject:To:From:Sender: Reply-To:Cc:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=2A6oQ5+Jd0ceD/hVdzApnVqy9RhiXl+H7gs2/+yrQPY=; b=chP2GoenasqFpw2hcbr9A/OIJH 5tbuLzRd28BAUp5NmS+zlDgt3lVnGDnIX4CSu6XBrSEe39VaIy4lryaJp8mTN12nFHTquj94k/LlM rHLXfsujOkiT3zFT5ZlgRLPrv; Received: from abode ([192.168.177.1] helo=miko) by md5i.com with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mKhud-002niK-84 for bug-gnu-emacs@gnu.org; Mon, 30 Aug 2021 10:05:23 -0400 From: Michael Welsh Duggan To: bug-gnu-emacs@gnu.org Subject: 28.0.50; Assertion warning during native compilation Date: Mon, 30 Aug 2021 10:05:16 -0400 Message-ID: <87sfyrt4df.fsf@md5i.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=75.151.244.229; envelope-from=md5i@md5i.com; helo=md5i.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit 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.4 (--) --=-=-= Content-Type: text/plain With the included file in the current working directory... First, byte compile the file: emacs -Q -batch --eval '(byte-compile-file "pacproxy.el")' Then, from emacs -Q M-: (push default-directory load-path) RET M-x load-library RET pacproxy RET For me, this results in the following warning: Warning (comp): /home/md5i/tmp/tmp/pacproxy.el: Error: Assertion failed (and (< idx (comp-vec-end vec)) (>= idx (comp-vec-beg vec))) --=-=-= Content-Type: application/emacs-lisp Content-Disposition: attachment; filename=pacproxy.el Content-Transfer-Encoding: quoted-printable ;;; pacproxy.el --- Description -*- lexical-binding: t -*- (require 'url) (require 'url-proxy) (require 'dbus) (defvar pacproxy-domain-alist '(("SEI" . "ad.sei.cmu.edu")) "Mapping from network IDs to domain names.") (defvar pacproxy--wpad-cache (make-hash-table :test #'equal)) (defvar pacproxy--original-locator nil) (defun pacproxy--current-connection-name () (let ((active (dbus-get-property :system "org.freedesktop.NetworkManager" "/org/freedesktop/NetworkManager" "org.freedesktop.NetworkManager" "PrimaryConnection"))) (dbus-get-property :system "org.freedesktop.NetworkManager" active "org.freedesktop.NetworkManager.Connection.Active" "Id"))) (defun pacproxy--retrieve-wpad (domain) (let ((result (gethash domain pacproxy--wpad-cache))) (if (eq result 'none) nil (or result (let* ((url-proxy-locator (lambda (&rest) "DIRECT")) (pacurl (concat "http://wpad." domain "/wpad.dat")) (result (ignore-errors (let ((result (url-retrieve-synchronously pacurl))) (with-current-buffer result (goto-char (point-min)) (re-search-forward "\n\n") (delete-region (point-min) (point))) (puthash domain result pacproxy--wpad-cache) result)))) (when (null result) (puthash domain 'none pacproxy--wpad-cache)) result))))) (defun pacproxy--url-destination (domain url host) (let ((wpad (pacproxy--retrieve-wpad domain))) (if (null wpad) "DIRECT" (with-temp-buffer (let ((result (current-buffer))) (with-current-buffer wpad (call-process-region (point-min) (point-max) "pactester" nil result nil "-p" "-" "-u" url "-h" host)) (buffer-string)))))) (defun pacproxy-find-proxy-for-url (urlobj host) (let ((manual (apply pacproxy--original-locator urlobj host nil))) (if (not (string-match "^DIRECT" manual)) manual (let* ((found (assoc (pacproxy--current-connection-name) pacproxy-domain-alist)) (domain (when found (cdr found)))) (if (null domain) "DIRECT" (pacproxy--url-destination domain (url-recreate-url urlobj) host)))))) (setq pacproxy--original-locator url-proxy-locator url-proxy-locator #'pacproxy-find-proxy-for-url) (defun pacproxy-unload-function () (setq url-proxy-locator pacproxy--original-locator) nil) (provide 'pacproxy) --=-=-= Content-Type: text/plain In GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.16.0) of 2021-08-30 built on miko Repository revision: bc9516a6f12d21971db62ad5def51a3b4858a488 Windowing system distributor 'The X.Org Foundation', version 11.0.12011000 System Description: Debian GNU/Linux bookworm/sid Configured using: 'configure --without-toolkit-scroll-bars --with-x-toolkit=lucid --with-native-compilation' Configured features: CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF X11 XAW3D XDBE XIM XPM LUCID ZLIB Important settings: value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: flyspell-mode: t display-time-mode: t magit-wip-initial-backup-mode: t magit-wip-before-change-mode: t magit-wip-after-apply-mode: t magit-wip-after-save-mode: t magit-wip-mode: t global-git-commit-mode: t magit-auto-revert-mode: t shell-dirtrack-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t Load-path shadows: /usr/share/emacs/site-lisp/cmake-mode hides /home/md5i/.config/emacs/elpa/cmake-mode-20210104.1831/cmake-mode /home/md5i/.config/emacs/elpa/transient-20210311.1549/transient hides /usr/local/share/emacs/28.0.50/lisp/transient Features: (shadow sort mail-extr gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum shr kinsoku svg gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud gnus-spec gnus-win emacsbug sendmail flyspell ispell view pacproxy dbus xml descr-text cus-edit pp cus-load time sieve-manage sasl sasl-anonymous sasl-login sasl-plain rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util sgml-mode facemenu dom python tramp-sh tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat parse-time iso8601 ls-lisp ps-print ps-print-loaddefs ps-def lpr picture magit-submodule magit-obsolete magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode diff git-commit log-edit pcvs-util add-log magit-core magit-autorevert autorevert filenotify magit-margin magit-transient magit-process with-editor shell pcomplete server magit-mode transient format-spec magit-git magit-section comp comp-cstr warnings rx cl-extra help-mode benchmark magit-utils pcase which-func imenu vc-git diff-mode easy-mmode vc-dispatcher ido crm dash nnimap nnmail gnus-int gnus-range mail-source message rfc822 mml mml-sec epa mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader utf7 netrc nnoo gnus wid-edit nnheader gnus-util rmail rmail-loaddefs time-date mail-utils gnus-o365-oauth2 oauth2 url-http url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-gw nsm rmc puny plstore generated generic-x epg rfc6068 epg-config ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util dired-x dired dired-loaddefs compile text-property-search comint ring ansi-color cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs edmacro kmacro derived debian-el finder-inf info package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo x-toolkit x multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 472475 15472) (symbols 48 29207 0) (strings 32 96154 4379) (string-bytes 1 3212668) (vectors 16 46522) (vector-slots 8 809008 15265) (floats 8 664 82) (intervals 56 418 14) (buffers 992 14)) -- Michael Welsh Duggan (md5i@md5i.com) --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Sep 04 10:01:09 2021 Received: (at 50268) by debbugs.gnu.org; 4 Sep 2021 14:01:09 +0000 Received: from localhost ([127.0.0.1]:48330 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mMWED-0005n2-V0 for submit@debbugs.gnu.org; Sat, 04 Sep 2021 10:01:09 -0400 Received: from md5i.com ([75.151.244.229]:53036) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mMWE8-0005mN-Is for 50268@debbugs.gnu.org; Sat, 04 Sep 2021 10:01:04 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=md5i.com; s=dkim; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID: In-Reply-To:Date:References:Subject:To:From:Sender:Reply-To:Cc: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=w0RCAvgyhoDN+JsPKlwbnCK2ViIBg0eaWpOBl0HVzKc=; b=K0TGtCuIRJ0+razxiM32koZMo4 ShnaCLg2SD7RIItdatFUTL/WPH8m7UZ3DombKsDrf6a9H+L67CJzrL3i7M8X1KeETaAWmvt+EiLmz 2NS6MBY2OM1oHWoj9brUkNeoW; Received: from abode ([192.168.177.1] helo=miko) by md5i.com with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mMWE2-0036qh-Tq for 50268@debbugs.gnu.org; Sat, 04 Sep 2021 10:00:54 -0400 From: Michael Welsh Duggan To: 50268@debbugs.gnu.org Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation References: <87sfyrt4df.fsf@md5i.com> Date: Sat, 04 Sep 2021 10:00:54 -0400 In-Reply-To: <87sfyrt4df.fsf@md5i.com> (Michael Welsh Duggan's message of "Mon, 30 Aug 2021 10:05:16 -0400") Message-ID: <87tuj0qw2x.fsf@md5i.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 50268 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 (-) Michael Welsh Duggan writes: > With the included file in the current working directory... > > First, byte compile the file: > emacs -Q -batch --eval '(byte-compile-file "pacproxy.el")' > > Then, from=20 > emacs -Q > > M-: (push default-directory load-path) RET > M-x load-library RET pacproxy RET > > For me, this results in the following warning: > > Warning (comp): /home/md5i/tmp/tmp/pacproxy.el: Error: Assertion > failed (and (< idx (comp-vec-end vec)) (>=3D idx (comp-vec-beg vec))) I did some more testing on this. I used the following after making the obvious change to the first line. (setq pacproxy-directory "/directory/containing/pacproxy") (native-compile (concat pacproxy-directory "/pacproxy.el")) The result was the following backtrace: Debugger entered--Lisp error: (cl-assertion-failed ((and (< idx (comp-vec-e= nd vec)) (>=3D idx (comp-vec-beg vec))) nil)) cl--assertion-failed((and (< idx (comp-vec-end vec)) (>=3D idx (comp-vec-= beg vec)))) comp-limplify-lap-inst((byte-constant "DIRECT" . 0)) comp-limplify-block(#s(comp-block-lap :name bb_0 :insns nil :closed nil := in-edges nil :out-edges nil :idom nil :df # :post-num nil :final-frame nil :sp 0 :addr 0 :non-ret-insn nil :no-ret= nil)) comp-limplify-function(#s(comp-func-l :name nil :c-name "F616e6f6e796d6f7= 5732d6c616d626461_anonymous_lambda_0" :byte-func #f(compiled-function (&res= t) "DIRECT" #) :doc "DIRECT\n\n(fn &rest)" :in= t-spec nil :lap ((byte-constant "DIRECT" . 0) (byte-return . 0)) :ssa-statu= s nil :frame-size 1 :vframe-size 0 :blocks # :lap-block # :edges-h # :block-cnt-gen #f(compiled-function () #) :edge-cnt-gen #f(compiled-function () #) :has-non-local nil :speed 2 :pure nil :type nil :args #s(com= p-nargs :min 0 :nonrest 0 :rest t))) #("F616e6f6e7= 96d6f75732d6c616d626461_anonymous_lambda_0" #s(comp-func-l :name nil :c-nam= e "F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_0" :byte-func #f(comp= iled-function (&rest) "DIRECT" #) :doc "DIRECT= \n\n(fn &rest)" :int-spec nil :lap ((byte-constant "DIRECT" . 0) (byte-retu= rn . 0)) :ssa-status nil :frame-size 1 :vframe-size 0 :blocks # :lap-block # = :edges-h # :block-cnt-gen #f(compiled-f= unction () #) :edge-cnt-gen #f(compiled-function (= ) #) :has-non-local nil :speed 2 :pure nil :ty= pe nil :args #s(comp-nargs :min 0 :nonrest 0 :rest t))) comp-limplify(nil) comp--native-compile("~/src/elisp/pacproxy.el" nil nil) native-compile("~/src/elisp/pacproxy.el") (progn (native-compile "~/src/elisp/pacproxy.el")) elisp--eval-last-sexp(t) eval-last-sexp(t) eval-print-last-sexp(nil) funcall-interactively(eval-print-last-sexp nil) command-execute(eval-print-last-sexp) I ran again after evaluating comp.el manually, and got the following expanded backtrace: Debugger entered--Lisp error: (cl-assertion-failed ((and (< idx (comp-vec-e= nd vec)) (>=3D idx (comp-vec-beg vec))) nil)) cl--assertion-failed((and (< idx (comp-vec-end vec)) (>=3D idx (comp-vec-= beg vec)))) (or (and (< idx (progn (or (progn (and (memq (type-of vec) cl-struct-comp= -vec-tags) t)) (signal 'wrong-type-argument (list 'comp-vec vec))) (aref ve= c 3))) (>=3D idx (progn (or (progn (and (memq (type-of vec) cl-struct-comp-= vec-tags) t)) (signal 'wrong-type-argument (list 'comp-vec vec))) (aref vec= 2)))) (cl--assertion-failed '(and (< idx (comp-vec-end vec)) (>=3D idx (co= mp-vec-beg vec))))) (progn (or (and (< idx (progn (or (progn (and (memq (type-of vec) cl-stru= ct-comp-vec-tags) t)) (signal 'wrong-type-argument (list 'comp-vec vec))) (= aref vec 3))) (>=3D idx (progn (or (progn (and (memq (type-of vec) cl-struc= t-comp-vec-tags) t)) (signal 'wrong-type-argument (list 'comp-vec vec))) (a= ref vec 2)))) (cl--assertion-failed '(and (< idx (comp-vec-end vec)) (>=3D = idx (comp-vec-beg vec))))) nil) comp-vec--verify-idx(#s(comp-vec :data # :beg 0 :end 1) 1) comp-vec-aref(#s(comp-vec :data # :be= g 0 :end 1) 1) comp-slot-n(1) comp-slot() (list 'setimm (comp-slot) val) (comp-emit (list 'setimm (comp-slot) val)) comp-emit-setimm("DIRECT") (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-= limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-p= ass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) 1)))) (comp-emit-setimm= arg)) (cond ((eq op 'TAG) (let nil nil (let* ((label-sp insn) (_TAG (if (cdr la= bel-sp) (car-safe (prog1 label-sp (setq label-sp (cdr label-sp)))) (signal = 'wrong-number-of-arguments (list '(_TAG label-num . label-sp) (length label= -sp))))) (label-num (car-safe (prog1 label-sp (setq label-sp (cdr label-sp)= ))))) (progn (if label-sp (progn (progn (or (=3D (1- label-sp) (progn (or (= progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (sig= nal 'wrong-type-argument (list 'comp-limplify comp-pass))) (aref comp-pass = 3))) (cl--assertion-failed '(=3D (1- label-sp) (comp-limplify-sp comp-pass)= ))) nil))) (comp-emit-annotation (format "LAP TAG %d" label-num)))))) ((eq = op 'byte-stack-ref) (let nil (progn (or (progn (and (memq (type-of comp-pas= s) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'co= mp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) 1))))= (comp-copy-slot (- (comp-sp) arg 1)))) ((eq op 'byte-varref) (let nil (pro= gn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) = t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((= v comp-pass)) (aset v 3 (+ (comp-sp) 1)))) (comp-emit-set-call (comp-call '= symbol-value (make-comp-mvar :constant arg))))) ((eq op 'byte-varset) (let = nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplif= y-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) = (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit (comp-call '= set_internal (make-comp-mvar :constant arg) (comp-slot+1))))) ((eq op 'byte= -varbind) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-stru= ct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplif= y comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-em= it (comp-call 'specbind (make-comp-mvar :constant arg) (comp-slot+1))))) ((= eq op 'byte-call) (let nil nil (progn (or (progn (and (memq (type-of comp-p= ass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list '= comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) (- = arg))))) (comp-emit-set-call (comp-callref 'funcall (1+ arg) (comp-sp))))) = ((eq op 'byte-unbind) (let nil nil (comp-emit (comp-call 'helper_unbind_n (= make-comp-mvar :constant arg))))) ((eq op 'byte-pophandler) (let nil nil (c= omp-emit '(pop-handler)))) ((eq op 'byte-pushconditioncase) (let nil (progn= (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)= ) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v = comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-handler (cdr (cdr insn= )) 'condition-case))) ((eq op 'byte-pushcatch) (let nil (progn (or (progn (= and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wr= ong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (= aset v 3 (+ (comp-sp) -1)))) (comp-emit-handler (cdr (cdr insn)) 'catcher))= ) ((eq op 'byte-nth) (let nil (progn (or (progn (and (memq (type-of comp-pa= ss) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'c= omp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1))= )) (comp-emit-set-call-subr 'nth -1))) ((eq op 'byte-symbolp) (let nil nil = (comp-emit-set-call-subr 'symbolp 0))) ((eq op 'byte-consp) (let nil nil (c= omp-emit-set-call-subr 'consp 0))) ((eq op 'byte-stringp) (let nil nil (com= p-emit-set-call-subr 'stringp 0))) ((eq op 'byte-listp) (let nil nil (comp-= emit-set-call-subr 'listp 0))) ((eq op 'byte-eq) (let nil (progn (or (progn= (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal '= wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass))= (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr 'eq -1))) ((eq op '= byte-memq) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-str= uct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limpli= fy comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-e= mit-set-call-subr 'memq -1))) ((eq op 'byte-not) (let nil nil (comp-emit-se= t-call (comp-call 'eq (comp-slot-n (comp-sp)) (make-comp-mvar :constant nil= ))))) ((eq op 'byte-car) (let nil nil (comp-emit-set-call-subr 'car 0))) ((= eq op 'byte-cdr) (let nil nil (comp-emit-set-call-subr 'cdr 0))) ((eq op 'b= yte-cons) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-stru= ct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplif= y comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-em= it-set-call-subr 'cons -1))) ((eq op 'byte-list1) (let nil nil (comp-limpli= fy-listn 1))) ((eq op 'byte-list2) (let nil (progn (or (progn (and (memq (t= ype-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-arg= ument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ = (comp-sp) -1)))) (comp-limplify-listn 2))) ((eq op 'byte-list3) (let nil (p= rogn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags= ) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* = ((v comp-pass)) (aset v 3 (+ (comp-sp) -2)))) (comp-limplify-listn 3))) ((e= q op 'byte-list4) (let nil (progn (or (progn (and (memq (type-of comp-pass)= cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp= -limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -3)))) = (comp-limplify-listn 4))) ((eq op 'byte-length) (let nil nil (comp-emit-set= -call-subr 'length 0))) ((eq op 'byte-aref) (let nil (progn (or (progn (and= (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong= -type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (ase= t v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr 'aref -1))) ((eq op 'byt= e-aset) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct= -comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify = comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -2)))) (comp-emit= -set-call-subr 'aset -2))) ((eq op 'byte-symbol-value) (let nil nil (comp-e= mit-set-call-subr 'symbol-value 0))) ((eq op 'byte-symbol-function) (let ni= l nil (comp-emit-set-call-subr 'symbol-function 0))) ((eq op 'byte-set) (le= t nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limpl= ify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))= ) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-s= ubr 'set -1))) ((eq op 'byte-fset) (let nil (progn (or (progn (and (memq (t= ype-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-arg= ument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ = (comp-sp) -1)))) (comp-emit-set-call-subr 'fset -1))) ((eq op 'byte-get) (l= et nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limp= lify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass)= )) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-= subr 'get -1))) ((eq op 'byte-substring) (let nil (progn (or (progn (and (m= emq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-ty= pe-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v= 3 (+ (comp-sp) -2)))) (comp-emit-set-call-subr 'substring -2))) ((eq op 'b= yte-concat2) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-s= truct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limp= lify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp= -emit-set-call (comp-callref 'concat 2 (comp-sp))))) ((eq op 'byte-concat3)= (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-l= implify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pa= ss))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -2)))) (comp-emit-set-ca= ll (comp-callref 'concat 3 (comp-sp))))) ((eq op 'byte-concat4) (let nil (p= rogn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags= ) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* = ((v comp-pass)) (aset v 3 (+ (comp-sp) -3)))) (comp-emit-set-call (comp-cal= lref 'concat 4 (comp-sp))))) ((eq op 'byte-sub1) (let nil nil (comp-emit-se= t-call-subr '1- 0))) ((eq op 'byte-add1) (let nil nil (comp-emit-set-call-s= ubr '1+ 0))) ((eq op 'byte-eqlsign) (let nil (progn (or (progn (and (memq (= type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-ar= gument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+= (comp-sp) -1)))) (comp-emit-set-call-subr '=3D -1))) ((eq op 'byte-gtr) (l= et nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limp= lify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass)= )) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-= subr '> -1))) ((eq op 'byte-lss) (let nil (progn (or (progn (and (memq (typ= e-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argum= ent (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (c= omp-sp) -1)))) (comp-emit-set-call-subr '< -1))) ((eq op 'byte-leq) (let ni= l (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-= tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (l= et* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr = '<=3D -1))) ((eq op 'byte-geq) (let nil (progn (or (progn (and (memq (type-= of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argumen= t (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (com= p-sp) -1)))) (comp-emit-set-call-subr '>=3D -1))) ((eq op 'byte-diff) (let = nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplif= y-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) = (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-sub= r '- -1))) ((eq op 'byte-negate) (let nil nil (comp-emit-set-call (comp-cal= l 'negate (comp-slot))))) ((eq op 'byte-plus) (let nil (progn (or (progn (a= nd (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wro= ng-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (a= set v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr '+ -1))) ((eq op 'byte= -max) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-c= omp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify co= mp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-s= et-call-subr 'max -1))) ((eq op 'byte-min) (let nil (progn (or (progn (and = (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-= type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset= v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr 'min -1))) ((eq op 'byte-= mult) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-c= omp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify co= mp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-s= et-call-subr '* -1))) ((eq op 'byte-point) (let nil (progn (or (progn (and = (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-= type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset= v 3 (+ (comp-sp) 1)))) (comp-emit-set-call-subr 'point 1))) ((eq op 'byte-= goto-char) (let nil nil (comp-emit-set-call-subr 'goto-char 0))) ((eq op 'b= yte-insert) (let nil nil (comp-emit-set-call-subr 'insert 0))) ((eq op 'byt= e-point-max) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-s= truct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limp= lify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) 1)))) (comp-= emit-set-call-subr 'point-max 1))) ((eq op 'byte-point-min) (let nil (progn= (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)= ) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v = comp-pass)) (aset v 3 (+ (comp-sp) 1)))) (comp-emit-set-call-subr 'point-mi= n 1))) ((eq op 'byte-char-after) (let nil nil (comp-emit-set-call-subr 'cha= r-after 0))) ((eq op 'byte-following-char) (let nil (progn (or (progn (and = (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-= type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset= v 3 (+ (comp-sp) 1)))) (comp-emit-set-call-subr 'following-char 1))) ((eq = op 'byte-preceding-char) (let nil (progn (or (progn (and (memq (type-of com= p-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (lis= t 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) = 1)))) (comp-emit-set-call-subr 'preceding-char 1))) ((eq op 'byte-current-c= olumn) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-= comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify c= omp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) 1)))) (comp-emit-s= et-call-subr 'current-column 1))) ((eq op 'byte-indent-to) (let nil nil (co= mp-emit-set-call (comp-call 'indent-to (comp-slot) (make-comp-mvar :constan= t nil))))) ((eq op 'byte-scan-buffer-OBSOLETE) (let nil (signal 'native-ice= (list "unsupported LAP op" '"byte-scan-buffer-OBSOLETE")))) ((eq op 'byte-= eolp) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-c= omp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify co= mp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) 1)))) (comp-emit-se= t-call-subr 'eolp 1))) ((eq op 'byte-eobp) (let nil (progn (or (progn (and = (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-= type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset= v 3 (+ (comp-sp) 1)))) (comp-emit-set-call-subr 'eobp 1))) ((eq op 'byte-b= olp) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-co= mp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify com= p-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) 1)))) (comp-emit-set= -call-subr 'bolp 1))) ((eq op 'byte-bobp) (let nil (progn (or (progn (and (= memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-t= ype-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset = v 3 (+ (comp-sp) 1)))) (comp-emit-set-call-subr 'bobp 1))) ((eq op 'byte-cu= rrent-buffer) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-= struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-lim= plify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) 1)))) (comp= -emit-set-call-subr 'current-buffer 1))) ((eq op 'byte-set-buffer) (let nil= nil (comp-emit-set-call-subr 'set-buffer 0))) ((eq op 'byte-save-current-b= uffer) (let nil nil (comp-emit (comp-call 'record_unwind_current_buffer))))= ((eq op 'byte-set-mark-OBSOLETE) (let nil (signal 'native-ice (list "unsup= ported LAP op" '"byte-set-mark-OBSOLETE")))) ((eq op 'byte-interactive-p-OB= SOLETE) (let nil (signal 'native-ice (list "unsupported LAP op" '"byte-inte= ractive-p-OBSOLETE")))) ((eq op 'byte-forward-char) (let nil nil (comp-emit= -set-call-subr 'forward-char 0))) ((eq op 'byte-forward-word) (let nil nil = (comp-emit-set-call-subr 'forward-word 0))) ((eq op 'byte-skip-chars-forwar= d) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp= -limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-= pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-= call-subr 'skip-chars-forward -1))) ((eq op 'byte-skip-chars-backward) (let= nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limpli= fy-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass)))= (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-su= br 'skip-chars-backward -1))) ((eq op 'byte-forward-line) (let nil nil (com= p-emit-set-call-subr 'forward-line 0))) ((eq op 'byte-char-syntax) (let nil= nil (comp-emit-set-call-subr 'char-syntax 0))) ((eq op 'byte-buffer-substr= ing) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-co= mp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify com= p-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-se= t-call-subr 'buffer-substring -1))) ((eq op 'byte-delete-region) (let nil (= progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tag= s) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let*= ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr 'de= lete-region -1))) ((eq op 'byte-narrow-to-region) (let nil (progn (or (prog= n (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal = 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)= ) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call (comp-call 'narrow-to-r= egion (comp-slot) (comp-slot+1))))) ((eq op 'byte-widen) (let nil (progn (o= r (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (= signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v com= p-pass)) (aset v 3 (+ (comp-sp) 1)))) (comp-emit-set-call (comp-call 'widen= )))) ((eq op 'byte-end-of-line) (let nil nil (comp-emit-set-call-subr 'end-= of-line 0))) ((eq op 'byte-constant2) (let nil (signal 'native-ice (list "u= nsupported LAP op" '"byte-constant2")))) ((eq op 'byte-goto) (let nil nil (= comp-emit-uncond-jump (cdr (cdr insn))))) ((eq op 'byte-goto-if-nil) (let n= il (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify= -tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (= let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-cond-jump (co= mp-slot+1) (make-comp-mvar :constant nil) 0 (cdr (cdr insn)) nil))) ((eq op= 'byte-goto-if-not-nil) (let nil (progn (or (progn (and (memq (type-of comp= -pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list= 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -= 1)))) (comp-emit-cond-jump (comp-slot+1) (make-comp-mvar :constant nil) 0 (= cdr (cdr insn)) t))) ((eq op 'byte-goto-if-nil-else-pop) (let nil (progn (o= r (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (= signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v com= p-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-cond-jump (comp-slot+1) (= make-comp-mvar :constant nil) 1 (cdr (cdr insn)) nil))) ((eq op 'byte-goto-= if-not-nil-else-pop) (let nil (progn (or (progn (and (memq (type-of comp-pa= ss) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'c= omp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1))= )) (comp-emit-cond-jump (comp-slot+1) (make-comp-mvar :constant nil) 1 (cdr= (cdr insn)) t))) ((eq op 'byte-return) (let nil (progn (or (progn (and (me= mq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-typ= e-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v = 3 (+ (comp-sp) -1)))) (comp-emit (list 'return (comp-slot+1))))) ((eq op 'b= yte-discard) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-s= truct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limp= lify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) 'pass= )) ((eq op 'byte-dup) (let nil (progn (or (progn (and (memq (type-of comp-p= ass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list '= comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) 1))= )) (comp-copy-slot (1- (comp-sp))))) ((eq op 'byte-save-excursion) (let nil= nil (comp-emit (comp-call 'record_unwind_protect_excursion)))) ((eq op 'by= te-save-window-excursion-OBSOLETE) (let nil (signal 'native-ice (list "unsu= pported LAP op" '"byte-save-window-excursion-OBSOLETE")))) ((eq op 'byte-sa= ve-restriction) (let nil nil (comp-emit (comp-call 'helper_save_restriction= )))) ((eq op 'byte-catch) (let nil (signal 'native-ice (list "unsupported L= AP op" '"byte-catch")))) ((eq op 'byte-unwind-protect) (let nil (progn (or = (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (si= gnal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-= pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit (comp-call 'helper_unwind_p= rotect (comp-slot+1))))) ((eq op 'byte-condition-case) (let nil (signal 'na= tive-ice (list "unsupported LAP op" '"byte-condition-case")))) ((eq op 'byt= e-temp-output-buffer-setup-OBSOLETE) (let nil (signal 'native-ice (list "un= supported LAP op" '"byte-temp-output-buffer-setup-OBSOLETE")))) ((eq op 'by= te-temp-output-buffer-show-OBSOLETE) (let nil (signal 'native-ice (list "un= supported LAP op" '"byte-temp-output-buffer-show-OBSOLETE")))) ((eq op 'byt= e-unbind-all) (let nil (signal 'native-ice (list "unsupported LAP op" '"byt= e-unbind-all")))) ((eq op 'byte-set-marker) (let nil (progn (or (progn (and= (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong= -type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (ase= t v 3 (+ (comp-sp) -2)))) (comp-emit-set-call-subr 'set-marker -2))) ((eq o= p 'byte-match-beginning) (let nil nil (comp-emit-set-call-subr 'match-begin= ning 0))) ((eq op 'byte-match-end) (let nil nil (comp-emit-set-call-subr 'm= atch-end 0))) ((eq op 'byte-upcase) (let nil nil (comp-emit-set-call-subr '= upcase 0))) ((eq op 'byte-downcase) (let nil nil (comp-emit-set-call-subr '= downcase 0))) ((eq op 'byte-string=3D) (let nil (progn (or (progn (and (mem= q (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type= -argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3= (+ (comp-sp) -1)))) (comp-emit-set-call-subr 'string-equal -1))) ((eq op '= byte-string<) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-= struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-lim= plify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (com= p-emit-set-call-subr 'string-lessp -1))) ((eq op 'byte-equal) (let nil (pro= gn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) = t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((= v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr 'equal= -1))) ((eq op 'byte-nthcdr) (let nil (progn (or (progn (and (memq (type-of= comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument = (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-= sp) -1)))) (comp-emit-set-call-subr 'nthcdr -1))) ((eq op 'byte-elt) (let n= il (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify= -tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (= let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr= 'elt -1))) ((eq op 'byte-member) (let nil (progn (or (progn (and (memq (ty= pe-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argu= ment (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (= comp-sp) -1)))) (comp-emit-set-call-subr 'member -1))) ((eq op 'byte-assq) = (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-li= mplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pas= s))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-cal= l-subr 'assq -1))) ((eq op 'byte-nreverse) (let nil nil (comp-emit-set-call= -subr 'nreverse 0))) ((eq op 'byte-setcar) (let nil (progn (or (progn (and = (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-= type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset= v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr 'setcar -1))) ((eq op 'by= te-setcdr) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-str= uct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limpli= fy comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-e= mit-set-call-subr 'setcdr -1))) ((eq op 'byte-car-safe) (let nil nil (comp-= emit-set-call-subr 'car-safe 0))) ((eq op 'byte-cdr-safe) (let nil nil (com= p-emit-set-call-subr 'cdr-safe 0))) ((eq op 'byte-nconc) (let nil (progn (o= r (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (= signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v com= p-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr 'nconc -1))= ) ((eq op 'byte-quo) (let nil (progn (or (progn (and (memq (type-of comp-pa= ss) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'c= omp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1))= )) (comp-emit-set-call-subr '/ -1))) ((eq op 'byte-rem) (let nil (progn (or= (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (s= ignal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp= -pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr '% -1))) ((e= q op 'byte-numberp) (let nil nil (comp-emit-set-call-subr 'numberp 0))) ((e= q op 'byte-integerp) (let nil nil (comp-emit-set-call-subr 'integerp 0))) (= (eq op 'byte-listN) (let nil nil (progn (or (progn (and (memq (type-of comp= -pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list= 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) (= - 1 arg))))) (comp-emit-set-call (comp-callref 'list arg (comp-sp))))) ((eq= op 'byte-concatN) (let nil nil (progn (or (progn (and (memq (type-of comp-= pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list = 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) (-= 1 arg))))) (comp-emit-set-call (comp-callref 'concat arg (comp-sp))))) ((e= q op 'byte-insertN) (let nil nil (progn (or (progn (and (memq (type-of comp= -pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list= 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) (= - 1 arg))))) (comp-emit-set-call (comp-callref 'insert arg (comp-sp))))) ((= eq op 'byte-stack-set) (let nil (progn (or (progn (and (memq (type-of comp-= pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list = 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1= )))) (comp-copy-slot (1+ (comp-sp)) (- (comp-sp) arg -1)))) ((eq op 'byte-s= tack-set2) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-str= uct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limpli= fy comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (progn = (or nil (cl--assertion-failed 'nil)) nil))) ((eq op 'byte-discardN) (let ni= l nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limpl= ify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))= ) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) (- arg))))))) ((eq op 'byte-= switch) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct= -comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify = comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -2)))) (comp-emit= -switch (comp-slot+1) (cl-first (progn (or (progn (and (memq (type-of (prog= n (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t= )) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (aref com= p-pass 2))) cl-struct-comp-block-tags) t)) (signal 'wrong-type-argument (li= st 'comp-block (progn (or (progn (and (memq (type-of comp-pass) cl-struct-c= omp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify co= mp-pass))) (aref comp-pass 2))))) (aref (progn (or (progn (and (memq (type-= of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argumen= t (list 'comp-limplify comp-pass))) (aref comp-pass 2)) 2)))))) ((eq op 'by= te-constant) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-s= truct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limp= lify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) 1)))) (comp-= emit-setimm arg))) ((eq op 'byte-discardN-preserve-tos) (let nil nil (progn= (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)= ) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v = comp-pass)) (aset v 3 (+ (comp-sp) (- arg))))) (comp-copy-slot (+ arg (comp= -sp))))) (t (let nil (signal 'native-ice (list "unexpected LAP op" (symbol-= name op)))))) (let ((op (car insn)) (arg (if (consp (cdr insn)) (car (cdr insn)) (cdr i= nsn)))) (cond ((eq op 'TAG) (let nil nil (let* ((label-sp insn) (_TAG (if (= cdr label-sp) (car-safe (prog1 label-sp (setq label-sp (cdr label-sp)))) (s= ignal 'wrong-number-of-arguments (list '(_TAG label-num . label-sp) (length= label-sp))))) (label-num (car-safe (prog1 label-sp (setq label-sp (cdr lab= el-sp)))))) (progn (if label-sp (progn (progn (or (=3D (1- label-sp) (progn= (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)= ) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (aref comp= -pass 3))) (cl--assertion-failed '(=3D (1- label-sp) (comp-limplify-sp comp= -pass)))) nil))) (comp-emit-annotation (format "LAP TAG %d" label-num))))))= ((eq op 'byte-stack-ref) (let nil (progn (or (progn (and (memq (type-of co= mp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (li= st 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp)= 1)))) (comp-copy-slot (- (comp-sp) arg 1)))) ((eq op 'byte-varref) (let ni= l (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-= tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (l= et* ((v comp-pass)) (aset v 3 (+ (comp-sp) 1)))) (comp-emit-set-call (comp-= call 'symbol-value (make-comp-mvar :constant arg))))) ((eq op 'byte-varset)= (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-l= implify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pa= ss))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit (comp-= call 'set_internal (make-comp-mvar :constant arg) (comp-slot+1))))) ((eq op= 'byte-varbind) (let nil (progn (or (progn (and (memq (type-of comp-pass) c= l-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-l= implify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (c= omp-emit (comp-call 'specbind (make-comp-mvar :constant arg) (comp-slot+1))= ))) ((eq op 'byte-call) (let nil nil (progn (or (progn (and (memq (type-of = comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (= list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-s= p) (- arg))))) (comp-emit-set-call (comp-callref 'funcall (1+ arg) (comp-sp= ))))) ((eq op 'byte-unbind) (let nil nil (comp-emit (comp-call 'helper_unbi= nd_n (make-comp-mvar :constant arg))))) ((eq op 'byte-pophandler) (let nil = nil (comp-emit '(pop-handler)))) ((eq op 'byte-pushconditioncase) (let nil = (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-ta= gs) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let= * ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-handler (cdr (cd= r insn)) 'condition-case))) ((eq op 'byte-pushcatch) (let nil (progn (or (p= rogn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (sign= al 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pa= ss)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-handler (cdr (cdr insn)) 'cat= cher))) ((eq op 'byte-nth) (let nil (progn (or (progn (and (memq (type-of c= omp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (l= ist 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp= ) -1)))) (comp-emit-set-call-subr 'nth -1))) ((eq op 'byte-symbolp) (let ni= l nil (comp-emit-set-call-subr 'symbolp 0))) ((eq op 'byte-consp) (let nil = nil (comp-emit-set-call-subr 'consp 0))) ((eq op 'byte-stringp) (let nil ni= l (comp-emit-set-call-subr 'stringp 0))) ((eq op 'byte-listp) (let nil nil = (comp-emit-set-call-subr 'listp 0))) ((eq op 'byte-eq) (let nil (progn (or = (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (si= gnal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-= pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr 'eq -1))) ((e= q op 'byte-memq) (let nil (progn (or (progn (and (memq (type-of comp-pass) = cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-= limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (= comp-emit-set-call-subr 'memq -1))) ((eq op 'byte-not) (let nil nil (comp-e= mit-set-call (comp-call 'eq (comp-slot-n (comp-sp)) (make-comp-mvar :consta= nt nil))))) ((eq op 'byte-car) (let nil nil (comp-emit-set-call-subr 'car 0= ))) ((eq op 'byte-cdr) (let nil nil (comp-emit-set-call-subr 'cdr 0))) ((eq= op 'byte-cons) (let nil (progn (or (progn (and (memq (type-of comp-pass) c= l-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-l= implify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (c= omp-emit-set-call-subr 'cons -1))) ((eq op 'byte-list1) (let nil nil (comp-= limplify-listn 1))) ((eq op 'byte-list2) (let nil (progn (or (progn (and (m= emq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-ty= pe-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v= 3 (+ (comp-sp) -1)))) (comp-limplify-listn 2))) ((eq op 'byte-list3) (let = nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplif= y-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) = (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -2)))) (comp-limplify-listn 3)= )) ((eq op 'byte-list4) (let nil (progn (or (progn (and (memq (type-of comp= -pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list= 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -= 3)))) (comp-limplify-listn 4))) ((eq op 'byte-length) (let nil nil (comp-em= it-set-call-subr 'length 0))) ((eq op 'byte-aref) (let nil (progn (or (prog= n (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal = 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)= ) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr 'aref -1))) ((eq o= p 'byte-aset) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-= struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-lim= plify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -2)))) (com= p-emit-set-call-subr 'aset -2))) ((eq op 'byte-symbol-value) (let nil nil (= comp-emit-set-call-subr 'symbol-value 0))) ((eq op 'byte-symbol-function) (= let nil nil (comp-emit-set-call-subr 'symbol-function 0))) ((eq op 'byte-se= t) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp= -limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-= pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-= call-subr 'set -1))) ((eq op 'byte-fset) (let nil (progn (or (progn (and (m= emq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-ty= pe-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v= 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr 'fset -1))) ((eq op 'byte-g= et) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-com= p-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp= -pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set= -call-subr 'get -1))) ((eq op 'byte-substring) (let nil (progn (or (progn (= and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wr= ong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (= aset v 3 (+ (comp-sp) -2)))) (comp-emit-set-call-subr 'substring -2))) ((eq= op 'byte-concat2) (let nil (progn (or (progn (and (memq (type-of comp-pass= ) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'com= p-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1))))= (comp-emit-set-call (comp-callref 'concat 2 (comp-sp))))) ((eq op 'byte-co= ncat3) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-= comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify c= omp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -2)))) (comp-emit-= set-call (comp-callref 'concat 3 (comp-sp))))) ((eq op 'byte-concat4) (let = nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplif= y-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) = (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -3)))) (comp-emit-set-call (co= mp-callref 'concat 4 (comp-sp))))) ((eq op 'byte-sub1) (let nil nil (comp-e= mit-set-call-subr '1- 0))) ((eq op 'byte-add1) (let nil nil (comp-emit-set-= call-subr '1+ 0))) ((eq op 'byte-eqlsign) (let nil (progn (or (progn (and (= memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-t= ype-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset = v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr '=3D -1))) ((eq op 'byte-g= tr) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-com= p-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp= -pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set= -call-subr '> -1))) ((eq op 'byte-lss) (let nil (progn (or (progn (and (mem= q (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type= -argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3= (+ (comp-sp) -1)))) (comp-emit-set-call-subr '< -1))) ((eq op 'byte-leq) (= let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-lim= plify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass= ))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call= -subr '<=3D -1))) ((eq op 'byte-geq) (let nil (progn (or (progn (and (memq = (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-a= rgument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (= + (comp-sp) -1)))) (comp-emit-set-call-subr '>=3D -1))) ((eq op 'byte-diff)= (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-l= implify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pa= ss))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-ca= ll-subr '- -1))) ((eq op 'byte-negate) (let nil nil (comp-emit-set-call (co= mp-call 'negate (comp-slot))))) ((eq op 'byte-plus) (let nil (progn (or (pr= ogn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signa= l 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pas= s)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr '+ -1))) ((eq op= 'byte-max) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-st= ruct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limpl= ify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-= emit-set-call-subr 'max -1))) ((eq op 'byte-min) (let nil (progn (or (progn= (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal '= wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass))= (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr 'min -1))) ((eq op = 'byte-mult) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-st= ruct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limpl= ify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-= emit-set-call-subr '* -1))) ((eq op 'byte-point) (let nil (progn (or (progn= (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal '= wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass))= (aset v 3 (+ (comp-sp) 1)))) (comp-emit-set-call-subr 'point 1))) ((eq op = 'byte-goto-char) (let nil nil (comp-emit-set-call-subr 'goto-char 0))) ((eq= op 'byte-insert) (let nil nil (comp-emit-set-call-subr 'insert 0))) ((eq o= p 'byte-point-max) (let nil (progn (or (progn (and (memq (type-of comp-pass= ) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'com= p-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) 1)))) = (comp-emit-set-call-subr 'point-max 1))) ((eq op 'byte-point-min) (let nil = (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-ta= gs) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let= * ((v comp-pass)) (aset v 3 (+ (comp-sp) 1)))) (comp-emit-set-call-subr 'po= int-min 1))) ((eq op 'byte-char-after) (let nil nil (comp-emit-set-call-sub= r 'char-after 0))) ((eq op 'byte-following-char) (let nil (progn (or (progn= (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal '= wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass))= (aset v 3 (+ (comp-sp) 1)))) (comp-emit-set-call-subr 'following-char 1)))= ((eq op 'byte-preceding-char) (let nil (progn (or (progn (and (memq (type-= of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argumen= t (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (com= p-sp) 1)))) (comp-emit-set-call-subr 'preceding-char 1))) ((eq op 'byte-cur= rent-column) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-s= truct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limp= lify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) 1)))) (comp-= emit-set-call-subr 'current-column 1))) ((eq op 'byte-indent-to) (let nil n= il (comp-emit-set-call (comp-call 'indent-to (comp-slot) (make-comp-mvar :c= onstant nil))))) ((eq op 'byte-scan-buffer-OBSOLETE) (let nil (signal 'nati= ve-ice (list "unsupported LAP op" '"byte-scan-buffer-OBSOLETE")))) ((eq op = 'byte-eolp) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-st= ruct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limpl= ify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) 1)))) (comp-e= mit-set-call-subr 'eolp 1))) ((eq op 'byte-eobp) (let nil (progn (or (progn= (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal '= wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass))= (aset v 3 (+ (comp-sp) 1)))) (comp-emit-set-call-subr 'eobp 1))) ((eq op '= byte-bolp) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-str= uct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limpli= fy comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) 1)))) (comp-em= it-set-call-subr 'bolp 1))) ((eq op 'byte-bobp) (let nil (progn (or (progn = (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'w= rong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) = (aset v 3 (+ (comp-sp) 1)))) (comp-emit-set-call-subr 'bobp 1))) ((eq op 'b= yte-current-buffer) (let nil (progn (or (progn (and (memq (type-of comp-pas= s) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'co= mp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) 1))))= (comp-emit-set-call-subr 'current-buffer 1))) ((eq op 'byte-set-buffer) (l= et nil nil (comp-emit-set-call-subr 'set-buffer 0))) ((eq op 'byte-save-cur= rent-buffer) (let nil nil (comp-emit (comp-call 'record_unwind_current_buff= er)))) ((eq op 'byte-set-mark-OBSOLETE) (let nil (signal 'native-ice (list = "unsupported LAP op" '"byte-set-mark-OBSOLETE")))) ((eq op 'byte-interactiv= e-p-OBSOLETE) (let nil (signal 'native-ice (list "unsupported LAP op" '"byt= e-interactive-p-OBSOLETE")))) ((eq op 'byte-forward-char) (let nil nil (com= p-emit-set-call-subr 'forward-char 0))) ((eq op 'byte-forward-word) (let ni= l nil (comp-emit-set-call-subr 'forward-word 0))) ((eq op 'byte-skip-chars-= forward) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struc= t-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify= comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emi= t-set-call-subr 'skip-chars-forward -1))) ((eq op 'byte-skip-chars-backward= ) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-= limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-p= ass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-c= all-subr 'skip-chars-backward -1))) ((eq op 'byte-forward-line) (let nil ni= l (comp-emit-set-call-subr 'forward-line 0))) ((eq op 'byte-char-syntax) (l= et nil nil (comp-emit-set-call-subr 'char-syntax 0))) ((eq op 'byte-buffer-= substring) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-str= uct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limpli= fy comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-e= mit-set-call-subr 'buffer-substring -1))) ((eq op 'byte-delete-region) (let= nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limpli= fy-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass)))= (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-su= br 'delete-region -1))) ((eq op 'byte-narrow-to-region) (let nil (progn (or= (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (s= ignal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp= -pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call (comp-call 'narro= w-to-region (comp-slot) (comp-slot+1))))) ((eq op 'byte-widen) (let nil (pr= ogn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags)= t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* (= (v comp-pass)) (aset v 3 (+ (comp-sp) 1)))) (comp-emit-set-call (comp-call = 'widen)))) ((eq op 'byte-end-of-line) (let nil nil (comp-emit-set-call-subr= 'end-of-line 0))) ((eq op 'byte-constant2) (let nil (signal 'native-ice (l= ist "unsupported LAP op" '"byte-constant2")))) ((eq op 'byte-goto) (let nil= nil (comp-emit-uncond-jump (cdr (cdr insn))))) ((eq op 'byte-goto-if-nil) = (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-li= mplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pas= s))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-cond-ju= mp (comp-slot+1) (make-comp-mvar :constant nil) 0 (cdr (cdr insn)) nil))) (= (eq op 'byte-goto-if-not-nil) (let nil (progn (or (progn (and (memq (type-o= f comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument= (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp= -sp) -1)))) (comp-emit-cond-jump (comp-slot+1) (make-comp-mvar :constant ni= l) 0 (cdr (cdr insn)) t))) ((eq op 'byte-goto-if-nil-else-pop) (let nil (pr= ogn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags)= t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* (= (v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-cond-jump (comp-slo= t+1) (make-comp-mvar :constant nil) 1 (cdr (cdr insn)) nil))) ((eq op 'byte= -goto-if-not-nil-else-pop) (let nil (progn (or (progn (and (memq (type-of c= omp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (l= ist 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp= ) -1)))) (comp-emit-cond-jump (comp-slot+1) (make-comp-mvar :constant nil) = 1 (cdr (cdr insn)) t))) ((eq op 'byte-return) (let nil (progn (or (progn (a= nd (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wro= ng-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (a= set v 3 (+ (comp-sp) -1)))) (comp-emit (list 'return (comp-slot+1))))) ((eq= op 'byte-discard) (let nil (progn (or (progn (and (memq (type-of comp-pass= ) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'com= p-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1))))= 'pass)) ((eq op 'byte-dup) (let nil (progn (or (progn (and (memq (type-of = comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (= list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-s= p) 1)))) (comp-copy-slot (1- (comp-sp))))) ((eq op 'byte-save-excursion) (l= et nil nil (comp-emit (comp-call 'record_unwind_protect_excursion)))) ((eq = op 'byte-save-window-excursion-OBSOLETE) (let nil (signal 'native-ice (list= "unsupported LAP op" '"byte-save-window-excursion-OBSOLETE")))) ((eq op 'b= yte-save-restriction) (let nil nil (comp-emit (comp-call 'helper_save_restr= iction)))) ((eq op 'byte-catch) (let nil (signal 'native-ice (list "unsuppo= rted LAP op" '"byte-catch")))) ((eq op 'byte-unwind-protect) (let nil (prog= n (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t= )) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v= comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit (comp-call 'helper_un= wind_protect (comp-slot+1))))) ((eq op 'byte-condition-case) (let nil (sign= al 'native-ice (list "unsupported LAP op" '"byte-condition-case")))) ((eq o= p 'byte-temp-output-buffer-setup-OBSOLETE) (let nil (signal 'native-ice (li= st "unsupported LAP op" '"byte-temp-output-buffer-setup-OBSOLETE")))) ((eq = op 'byte-temp-output-buffer-show-OBSOLETE) (let nil (signal 'native-ice (li= st "unsupported LAP op" '"byte-temp-output-buffer-show-OBSOLETE")))) ((eq o= p 'byte-unbind-all) (let nil (signal 'native-ice (list "unsupported LAP op"= '"byte-unbind-all")))) ((eq op 'byte-set-marker) (let nil (progn (or (prog= n (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal = 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)= ) (aset v 3 (+ (comp-sp) -2)))) (comp-emit-set-call-subr 'set-marker -2))) = ((eq op 'byte-match-beginning) (let nil nil (comp-emit-set-call-subr 'match= -beginning 0))) ((eq op 'byte-match-end) (let nil nil (comp-emit-set-call-s= ubr 'match-end 0))) ((eq op 'byte-upcase) (let nil nil (comp-emit-set-call-= subr 'upcase 0))) ((eq op 'byte-downcase) (let nil nil (comp-emit-set-call-= subr 'downcase 0))) ((eq op 'byte-string=3D) (let nil (progn (or (progn (an= d (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wron= g-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (as= et v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr 'string-equal -1))) ((e= q op 'byte-string<) (let nil (progn (or (progn (and (memq (type-of comp-pas= s) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'co= mp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))= ) (comp-emit-set-call-subr 'string-lessp -1))) ((eq op 'byte-equal) (let ni= l (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-= tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (l= et* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr = 'equal -1))) ((eq op 'byte-nthcdr) (let nil (progn (or (progn (and (memq (t= ype-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-arg= ument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ = (comp-sp) -1)))) (comp-emit-set-call-subr 'nthcdr -1))) ((eq op 'byte-elt) = (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-li= mplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pas= s))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-cal= l-subr 'elt -1))) ((eq op 'byte-member) (let nil (progn (or (progn (and (me= mq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-typ= e-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v = 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr 'member -1))) ((eq op 'byte-= assq) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-c= omp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify co= mp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-s= et-call-subr 'assq -1))) ((eq op 'byte-nreverse) (let nil nil (comp-emit-se= t-call-subr 'nreverse 0))) ((eq op 'byte-setcar) (let nil (progn (or (progn= (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal '= wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass))= (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr 'setcar -1))) ((eq = op 'byte-setcdr) (let nil (progn (or (progn (and (memq (type-of comp-pass) = cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-= limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (= comp-emit-set-call-subr 'setcdr -1))) ((eq op 'byte-car-safe) (let nil nil = (comp-emit-set-call-subr 'car-safe 0))) ((eq op 'byte-cdr-safe) (let nil ni= l (comp-emit-set-call-subr 'cdr-safe 0))) ((eq op 'byte-nconc) (let nil (pr= ogn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags)= t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* (= (v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr 'ncon= c -1))) ((eq op 'byte-quo) (let nil (progn (or (progn (and (memq (type-of c= omp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (l= ist 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp= ) -1)))) (comp-emit-set-call-subr '/ -1))) ((eq op 'byte-rem) (let nil (pro= gn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) = t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((= v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (comp-emit-set-call-subr '% -1)= )) ((eq op 'byte-numberp) (let nil nil (comp-emit-set-call-subr 'numberp 0)= )) ((eq op 'byte-integerp) (let nil nil (comp-emit-set-call-subr 'integerp = 0))) ((eq op 'byte-listN) (let nil nil (progn (or (progn (and (memq (type-o= f comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument= (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp= -sp) (- 1 arg))))) (comp-emit-set-call (comp-callref 'list arg (comp-sp))))= ) ((eq op 'byte-concatN) (let nil nil (progn (or (progn (and (memq (type-of= comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument = (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-= sp) (- 1 arg))))) (comp-emit-set-call (comp-callref 'concat arg (comp-sp)))= )) ((eq op 'byte-insertN) (let nil nil (progn (or (progn (and (memq (type-o= f comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument= (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp= -sp) (- 1 arg))))) (comp-emit-set-call (comp-callref 'insert arg (comp-sp))= ))) ((eq op 'byte-stack-set) (let nil (progn (or (progn (and (memq (type-of= comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument = (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-= sp) -1)))) (comp-copy-slot (1+ (comp-sp)) (- (comp-sp) arg -1)))) ((eq op '= byte-stack-set2) (let nil (progn (or (progn (and (memq (type-of comp-pass) = cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-= limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -1)))) (= progn (or nil (cl--assertion-failed 'nil)) nil))) ((eq op 'byte-discardN) (= let nil nil (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp= -limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-= pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) (- arg))))))) ((eq op = 'byte-switch) (let nil (progn (or (progn (and (memq (type-of comp-pass) cl-= struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-lim= plify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) -2)))) (com= p-emit-switch (comp-slot+1) (cl-first (progn (or (progn (and (memq (type-of= (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-t= ags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (ar= ef comp-pass 2))) cl-struct-comp-block-tags) t)) (signal 'wrong-type-argume= nt (list 'comp-block (progn (or (progn (and (memq (type-of comp-pass) cl-st= ruct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limpl= ify comp-pass))) (aref comp-pass 2))))) (aref (progn (or (progn (and (memq = (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-a= rgument (list 'comp-limplify comp-pass))) (aref comp-pass 2)) 2)))))) ((eq = op 'byte-constant) (let nil (progn (or (progn (and (memq (type-of comp-pass= ) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'com= p-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ (comp-sp) 1)))) = (comp-emit-setimm arg))) ((eq op 'byte-discardN-preserve-tos) (let nil nil = (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-ta= gs) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let= * ((v comp-pass)) (aset v 3 (+ (comp-sp) (- arg))))) (comp-copy-slot (+ arg= (comp-sp))))) (t (let nil (signal 'native-ice (list "unexpected LAP op" (s= ymbol-name op))))))) comp-limplify-lap-inst((byte-constant "DIRECT" . 0)) (progn (setq inst (car inst-cell)) (setq next-inst (car-safe (cdr inst-ce= ll))) (comp-limplify-lap-inst inst) (progn (or (progn (and (memq (type-of c= omp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (l= ist 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 4 (+ (aref v = 4) 1)))) (if (comp-lap-fall-through-p inst) (progn (if (consp next-inst) (l= et* ((x740 (car-safe next-inst))) (if (eq x740 'TAG) (let* ((x741 (cdr-safe= next-inst))) (if (consp x741) (let* ((x742 (car-safe x741)) (x743 (cdr-saf= e x741))) (let ((_label x742) (label-sp x743)) (if label-sp (progn (progn (= or (=3D (1- label-sp) (comp-sp)) (cl--assertion-failed '(=3D (1- label-sp) = (comp-sp)))) nil))) (let* ((stack-depth (if label-sp (1- label-sp) (comp-sp= ))) (next-bb (let ((cl-x (comp-bb-maybe-add (progn (or (progn (and (memq (t= ype-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-arg= ument (list 'comp-limplify comp-pass))) (aref comp-pass 4)) stack-depth))) = (progn (or (progn (and (memq (type-of cl-x) cl-struct-comp-block-tags) t)) = (signal 'wrong-type-argument (list 'comp-block cl-x))) (aref cl-x 1))))) (i= f (progn (or (progn (and (memq (type-of bb) cl-struct-comp-block-tags) t)) = (signal 'wrong-type-argument (list 'comp-block bb))) (aref bb 3)) nil (comp= -emit (list 'jump next-bb)))) (throw '--cl-block-nil-- nil)))))))))) (not (= comp-lap-eob-p inst))) (and (consp inst-cell) (progn (setq inst (car inst-cell)) (setq next-inst= (car-safe (cdr inst-cell))) (comp-limplify-lap-inst inst) (progn (or (prog= n (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal = 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)= ) (aset v 4 (+ (aref v 4) 1)))) (if (comp-lap-fall-through-p inst) (progn (= if (consp next-inst) (let* ((x740 (car-safe next-inst))) (if (eq x740 'TAG)= (let* ((x741 (cdr-safe next-inst))) (if (consp x741) (let* ((x742 (car-saf= e x741)) (x743 (cdr-safe x741))) (let ((_label x742) (label-sp x743)) (if l= abel-sp (progn (progn (or (=3D (1- label-sp) (comp-sp)) (cl--assertion-fail= ed '(=3D (1- label-sp) (comp-sp)))) nil))) (let* ((stack-depth (if label-sp= (1- label-sp) (comp-sp))) (next-bb (let ((cl-x (comp-bb-maybe-add (progn (= or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) = (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (aref comp-p= ass 4)) stack-depth))) (progn (or (progn (and (memq (type-of cl-x) cl-struc= t-comp-block-tags) t)) (signal 'wrong-type-argument (list 'comp-block cl-x)= )) (aref cl-x 1))))) (if (progn (or (progn (and (memq (type-of bb) cl-struc= t-comp-block-tags) t)) (signal 'wrong-type-argument (list 'comp-block bb)))= (aref bb 3)) nil (comp-emit (list 'jump next-bb)))) (throw '--cl-block-nil= -- nil)))))))))) (not (comp-lap-eob-p inst)))) (while (and (consp inst-cell) (progn (setq inst (car inst-cell)) (setq ne= xt-inst (car-safe (cdr inst-cell))) (comp-limplify-lap-inst inst) (progn (o= r (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (= signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (let* ((v com= p-pass)) (aset v 4 (+ (aref v 4) 1)))) (if (comp-lap-fall-through-p inst) (= progn (if (consp next-inst) (let* ((x740 (car-safe next-inst))) (if (eq x74= 0 'TAG) (let* ((x741 (cdr-safe next-inst))) (if (consp x741) (let* ((x742 (= car-safe x741)) (x743 (cdr-safe x741))) (let ((_label x742) (label-sp x743)= ) (if label-sp (progn (progn (or (=3D (1- label-sp) (comp-sp)) (cl--asserti= on-failed '(=3D (1- label-sp) (comp-sp)))) nil))) (let* ((stack-depth (if l= abel-sp (1- label-sp) (comp-sp))) (next-bb (let ((cl-x (comp-bb-maybe-add (= progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-tag= s) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (aref= comp-pass 4)) stack-depth))) (progn (or (progn (and (memq (type-of cl-x) c= l-struct-comp-block-tags) t)) (signal 'wrong-type-argument (list 'comp-bloc= k cl-x))) (aref cl-x 1))))) (if (progn (or (progn (and (memq (type-of bb) c= l-struct-comp-block-tags) t)) (signal 'wrong-type-argument (list 'comp-bloc= k bb))) (aref bb 3)) nil (comp-emit (list 'jump next-bb)))) (throw '--cl-bl= ock-nil-- nil)))))))))) (not (comp-lap-eob-p inst)))) (setq inst-cell (cdr = inst-cell)) (setq --cl-var-- nil)) (let* ((inst-cell (nthcdr (progn (or (progn (and (memq (type-of comp-pass= ) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'com= p-limplify comp-pass))) (aref comp-pass 4)) (progn (or (progn (and (memq (t= ype-of comp-func) cl-struct-comp-func-tags) t)) (signal 'wrong-type-argumen= t (list 'comp-func comp-func))) (aref comp-func 6)))) (inst nil) (next-inst= nil) (--cl-var-- t)) (while (and (consp inst-cell) (progn (setq inst (car = inst-cell)) (setq next-inst (car-safe (cdr inst-cell))) (comp-limplify-lap-= inst inst) (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-= limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-p= ass))) (let* ((v comp-pass)) (aset v 4 (+ (aref v 4) 1)))) (if (comp-lap-fa= ll-through-p inst) (progn (if (consp next-inst) (let* ((x740 (car-safe next= -inst))) (if (eq x740 'TAG) (let* ((x741 (cdr-safe next-inst))) (if (consp = x741) (let* ((x742 (car-safe x741)) (x743 (cdr-safe x741))) (let ((_label x= 742) (label-sp x743)) (if label-sp (progn (progn (or (=3D (1- label-sp) (co= mp-sp)) (cl--assertion-failed '(=3D (1- label-sp) (comp-sp)))) nil))) (let*= ((stack-depth (if label-sp (1- label-sp) (comp-sp))) (next-bb (let ((cl-x = (comp-bb-maybe-add (progn (or (progn (and (memq (type-of comp-pass) cl-stru= ct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limplif= y comp-pass))) (aref comp-pass 4)) stack-depth))) (progn (or (progn (and (m= emq (type-of cl-x) cl-struct-comp-block-tags) t)) (signal 'wrong-type-argum= ent (list 'comp-block cl-x))) (aref cl-x 1))))) (if (progn (or (progn (and = (memq (type-of bb) cl-struct-comp-block-tags) t)) (signal 'wrong-type-argum= ent (list 'comp-block bb))) (aref bb 3)) nil (comp-emit (list 'jump next-bb= )))) (throw '--cl-block-nil-- nil)))))))))) (not (comp-lap-eob-p inst)))) (= setq inst-cell (cdr inst-cell)) (setq --cl-var-- nil)) nil) (catch '--cl-block-nil-- (let* ((inst-cell (nthcdr (progn (or (progn (and= (memq (type-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong= -type-argument (list 'comp-limplify comp-pass))) (aref comp-pass 4)) (progn= (or (progn (and (memq (type-of comp-func) cl-struct-comp-func-tags) t)) (s= ignal 'wrong-type-argument (list 'comp-func comp-func))) (aref comp-func 6)= ))) (inst nil) (next-inst nil) (--cl-var-- t)) (while (and (consp inst-cell= ) (progn (setq inst (car inst-cell)) (setq next-inst (car-safe (cdr inst-ce= ll))) (comp-limplify-lap-inst inst) (progn (or (progn (and (memq (type-of c= omp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argument (l= ist 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 4 (+ (aref v = 4) 1)))) (if (comp-lap-fall-through-p inst) (progn (if (consp next-inst) (l= et* ((x740 (car-safe next-inst))) (if (eq x740 'TAG) (let* ((x741 (cdr-safe= next-inst))) (if (consp x741) (let* ((x742 (car-safe x741)) (x743 (cdr-saf= e x741))) (let ((_label x742) (label-sp x743)) (if label-sp (progn (progn (= or (=3D (1- label-sp) (comp-sp)) (cl--assertion-failed '(=3D (1- label-sp) = (comp-sp)))) nil))) (let* ((stack-depth (if label-sp (1- label-sp) (comp-sp= ))) (next-bb (let ((cl-x (comp-bb-maybe-add (progn (or (progn (and (memq (t= ype-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-arg= ument (list 'comp-limplify comp-pass))) (aref comp-pass 4)) stack-depth))) = (progn (or (progn (and (memq (type-of cl-x) cl-struct-comp-block-tags) t)) = (signal 'wrong-type-argument (list 'comp-block cl-x))) (aref cl-x 1))))) (i= f (progn (or (progn (and (memq (type-of bb) cl-struct-comp-block-tags) t)) = (signal 'wrong-type-argument (list 'comp-block bb))) (aref bb 3)) nil (comp= -emit (list 'jump next-bb)))) (throw '--cl-block-nil-- nil)))))))))) (not (= comp-lap-eob-p inst)))) (setq inst-cell (cdr inst-cell)) (setq --cl-var-- n= il)) nil)) comp-limplify-block(#s(comp-block-lap :name bb_0 :insns nil :closed nil := in-edges nil :out-edges nil :idom nil :df # :post-num nil :final-frame nil :sp 0 :addr 0 :non-ret-insn nil :no-ret= nil)) (while (progn (setq next-bb (car-safe (progn (or (progn (and (memq (type-= of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-argumen= t (list 'comp-limplify comp-pass))) (let* ((v comp-pass) (x (aref v 6))) (p= rog1 x (aset v 6 (cdr x))))))) next-bb) (comp-limplify-block next-bb) (setq= --cl-var-- nil)) (let* ((next-bb nil) (--cl-var-- t)) (while (progn (setq next-bb (car-saf= e (progn (or (progn (and (memq (type-of comp-pass) cl-struct-comp-limplify-= tags) t)) (signal 'wrong-type-argument (list 'comp-limplify comp-pass))) (l= et* ((v comp-pass) (x (aref v 6))) (prog1 x (aset v 6 (cdr x))))))) next-bb= ) (comp-limplify-block next-bb) (setq --cl-var-- nil)) nil) (let* ((frame-size (progn (or (progn (and (memq (type-of func) cl-struct-= comp-func-tags) t)) (signal 'wrong-type-argument (list 'comp-func func))) (= aref func 8))) (comp-func func) (comp-pass (make-comp-limplify :frame (comp= -new-frame frame-size 0)))) (comp-fill-label-h) (comp-make-curr-block 'entr= y (comp-sp)) (comp-emit-annotation (concat "Lisp function: " (symbol-name (= progn (or (progn (and (memq (type-of func) cl-struct-comp-func-tags) t)) (s= ignal 'wrong-type-argument (list 'comp-func func))) (aref func 1))))) (if (= progn (and (memq (type-of func) cl-struct-comp-func-l-tags) t)) (progn (let= ((args (progn (or (progn (and (memq (type-of func) cl-struct-comp-func-l-t= ags) t)) (signal 'wrong-type-argument (list 'comp-func-l func))) (aref func= 19)))) (if (progn (and (memq (type-of args) cl-struct-comp-args-tags) t)) = (let* ((i 0) (--cl-var-- (progn (or (progn (and (memq (type-of args) cl-str= uct-comp-args-tags) t)) (signal 'wrong-type-argument (list 'comp-args args)= )) (aref args 2)))) (while (< i --cl-var--) (progn (or (progn (and (memq (t= ype-of comp-pass) cl-struct-comp-limplify-tags) t)) (signal 'wrong-type-arg= ument (list 'comp-limplify comp-pass))) (let* ((v comp-pass)) (aset v 3 (+ = (comp-sp) 1)))) (comp-emit (list 'set-par-to-local (comp-slot) i)) (setq i = (+ i 1))) nil) (comp-emit-narg-prologue (progn (or (progn (and (memq (type-= of args) cl-struct-comp-args-base-tags) t)) (signal 'wrong-type-argument (l= ist 'comp-args-base args))) (aref args 1)) (progn (or (progn (and (memq (ty= pe-of args) cl-struct-comp-nargs-tags) t)) (signal 'wrong-type-argument (li= st 'comp-nargs args))) (aref args 2)) (progn (or (progn (and (memq (type-of= args) cl-struct-comp-nargs-tags) t)) (signal 'wrong-type-argument (list 'c= omp-nargs args))) (aref args 3))))))) (comp-emit '(jump bb_0)) (comp-bb-may= be-add 0 (comp-sp)) (let* ((next-bb nil) (--cl-var-- t)) (while (progn (set= q next-bb (car-safe (progn (or (progn (and (memq (type-of comp-pass) cl-str= uct-comp-limplify-tags) t)) (signal 'wrong-type-argument (list 'comp-limpli= fy comp-pass))) (let* ((v comp-pass) (x (aref v 6))) (prog1 x (aset v 6 (cd= r x))))))) next-bb) (comp-limplify-block next-bb) (setq --cl-var-- nil)) ni= l) (let* ((addr-h (make-hash-table)) (addr nil) (--cl-var-- t)) (maphash #'= (lambda (--cl-var-- bb) (setq addr (if (progn (and (memq (type-of bb) cl-st= ruct-comp-block-lap-tags) t)) (progn (progn (or (progn (and (memq (type-of = bb) cl-struct-comp-block-lap-tags) t)) (signal 'wrong-type-argument (list '= comp-block-lap bb))) (aref bb 11))))) (if addr (progn (progn (or (null (get= hash addr addr-h)) (cl--assertion-failed '(null (gethash addr addr-h)))) ni= l) (puthash addr t addr-h))) (setq --cl-var-- nil)) (progn (or (progn (and = (memq (type-of func) cl-struct-comp-func-tags) t)) (signal 'wrong-type-argu= ment (list 'comp-func func))) (aref func 10))) nil) (comp-limplify-finalize= -function func)) comp-limplify-function(#s(comp-func-l :name nil :c-name "F616e6f6e796d6f7= 5732d6c616d626461_anonymous_lambda_0" :byte-func #f(compiled-function (&res= t) "DIRECT" #) :doc "DIRECT\n\n(fn &rest)" :in= t-spec nil :lap ((byte-constant "DIRECT" . 0) (byte-return . 0)) :ssa-statu= s nil :frame-size 1 :vframe-size 0 :blocks # :lap-block # :edges-h # :block-cnt-gen (closure ((n . 0) cl-struct-comp= -edge-tags cl-struct-comp-block-cstr-tags cl-struct-comp-latch-tags cl-stru= ct-comp-block-lap-tags cl-struct-comp-block-tags cl-struct-comp-nargs-tags = cl-struct-comp-args-tags cl-struct-comp-args-base-tags cl-struct-comp-ctxt-= tags cl-struct-comp-data-container-tags cl-struct-comp-vec-tags t) nil (set= q n (1+ n))) :edge-cnt-gen (closure ((n . -1) cl-struct-comp-edge-tags cl-s= truct-comp-block-cstr-tags cl-struct-comp-latch-tags cl-struct-comp-block-l= ap-tags cl-struct-comp-block-tags cl-struct-comp-nargs-tags cl-struct-comp-= args-tags cl-struct-comp-args-base-tags cl-struct-comp-ctxt-tags cl-struct-= comp-data-container-tags cl-struct-comp-vec-tags t) nil (setq n (1+ n))) :h= as-non-local nil :speed 2 :pure nil :type nil :args #s(comp-nargs :min 0 :n= onrest 0 :rest t))) (closure ((_) cl-struct-comp-limplify-tags cl-struct-comp-mvar-tags cl-st= ruct-comp-func-d-tags cl-struct-comp-func-l-tags cl-struct-comp-func-tags c= l-struct-comp-edge-tags cl-struct-comp-block-cstr-tags cl-struct-comp-latch= -tags cl-struct-comp-block-lap-tags cl-struct-comp-block-tags cl-struct-com= p-nargs-tags cl-struct-comp-args-tags cl-struct-comp-args-base-tags cl-stru= ct-comp-ctxt-tags cl-struct-comp-data-container-tags cl-struct-comp-vec-tag= s t) (_ f) (comp-limplify-function f))("F616e6f6e796d6f75732d6c616d626461_a= nonymous_lambda_0" #s(comp-func-l :name nil :c-name "F616e6f6e796d6f75732d6= c616d626461_anonymous_lambda_0" :byte-func #f(compiled-function (&rest) "DI= RECT" #) :doc "DIRECT\n\n(fn &rest)" :int-spec= nil :lap ((byte-constant "DIRECT" . 0) (byte-return . 0)) :ssa-status nil = :frame-size 1 :vframe-size 0 :blocks # := lap-block # :edges-h # :block-cnt-gen (closure ((n . 0) cl-struct-comp-edge-= tags cl-struct-comp-block-cstr-tags cl-struct-comp-latch-tags cl-struct-com= p-block-lap-tags cl-struct-comp-block-tags cl-struct-comp-nargs-tags cl-str= uct-comp-args-tags cl-struct-comp-args-base-tags cl-struct-comp-ctxt-tags c= l-struct-comp-data-container-tags cl-struct-comp-vec-tags t) nil (setq n (1= + n))) :edge-cnt-gen (closure ((n . -1) cl-struct-comp-edge-tags cl-struct-= comp-block-cstr-tags cl-struct-comp-latch-tags cl-struct-comp-block-lap-tag= s cl-struct-comp-block-tags cl-struct-comp-nargs-tags cl-struct-comp-args-t= ags cl-struct-comp-args-base-tags cl-struct-comp-ctxt-tags cl-struct-comp-d= ata-container-tags cl-struct-comp-vec-tags t) nil (setq n (1+ n))) :has-non= -local nil :speed 2 :pure nil :type nil :args #s(comp-nargs :min 0 :nonrest= 0 :rest t))) maphash((closure ((_) cl-struct-comp-limplify-tags cl-struct-comp-mvar-ta= gs cl-struct-comp-func-d-tags cl-struct-comp-func-l-tags cl-struct-comp-fun= c-tags cl-struct-comp-edge-tags cl-struct-comp-block-cstr-tags cl-struct-co= mp-latch-tags cl-struct-comp-block-lap-tags cl-struct-comp-block-tags cl-st= ruct-comp-nargs-tags cl-struct-comp-args-tags cl-struct-comp-args-base-tags= cl-struct-comp-ctxt-tags cl-struct-comp-data-container-tags cl-struct-comp= -vec-tags t) (_ f) (comp-limplify-function f)) #) comp-limplify(nil) funcall(comp-limplify nil) (setq data (funcall pass data)) (if (memq pass comp-disabled-passes) (progn) (comp-log (format "(%s) Runn= ing pass %s:\n" function-or-file pass) 2) (setq data (funcall pass data)) (= setq report (cons (cons pass (float-time (time-since t0))) report)) (let* (= (--cl-var-- (alist-get pass comp-post-pass-hooks)) (f nil)) (while (consp -= -cl-var--) (setq f (car --cl-var--)) (funcall f data) (setq --cl-var-- (cdr= --cl-var--))) nil)) (while (progn (setq t0 (current-time)) (consp --cl-var--)) (setq pass (ca= r --cl-var--)) (if (memq pass comp-disabled-passes) (progn) (comp-log (form= at "(%s) Running pass %s:\n" function-or-file pass) 2) (setq data (funcall = pass data)) (setq report (cons (cons pass (float-time (time-since t0))) rep= ort)) (let* ((--cl-var-- (alist-get pass comp-post-pass-hooks)) (f nil)) (w= hile (consp --cl-var--) (setq f (car --cl-var--)) (funcall f data) (setq --= cl-var-- (cdr --cl-var--))) nil)) (setq --cl-var-- (cdr --cl-var--)) (setq = --cl-var-- nil)) (let* ((report nil) (t0 nil) (--cl-var-- comp-passes) (pass nil) (--cl-va= r-- t)) (while (progn (setq t0 (current-time)) (consp --cl-var--)) (setq pa= ss (car --cl-var--)) (if (memq pass comp-disabled-passes) (progn) (comp-log= (format "(%s) Running pass %s:\n" function-or-file pass) 2) (setq data (fu= ncall pass data)) (setq report (cons (cons pass (float-time (time-since t0)= )) report)) (let* ((--cl-var-- (alist-get pass comp-post-pass-hooks)) (f ni= l)) (while (consp --cl-var--) (setq f (car --cl-var--)) (funcall f data) (s= etq --cl-var-- (cdr --cl-var--))) nil)) (setq --cl-var-- (cdr --cl-var--)) = (setq --cl-var-- nil)) (if comp-log-time-report (progn (comp-log (format "D= one compiling %s" data) 0) (let* ((--cl-var-- (reverse report)) (time nil) = (pass nil)) (while (consp --cl-var--) (setq time (car --cl-var--) pass (car= -safe (prog1 time (setq time (cdr time))))) (comp-log (format "Pass %s took= : %fs." pass time) 0) (setq --cl-var-- (cdr --cl-var--))) nil))) nil) (condition-case err (let* ((report nil) (t0 nil) (--cl-var-- comp-passes)= (pass nil) (--cl-var-- t)) (while (progn (setq t0 (current-time)) (consp -= -cl-var--)) (setq pass (car --cl-var--)) (if (memq pass comp-disabled-passe= s) (progn) (comp-log (format "(%s) Running pass %s:\n" function-or-file pas= s) 2) (setq data (funcall pass data)) (setq report (cons (cons pass (float-= time (time-since t0))) report)) (let* ((--cl-var-- (alist-get pass comp-pos= t-pass-hooks)) (f nil)) (while (consp --cl-var--) (setq f (car --cl-var--))= (funcall f data) (setq --cl-var-- (cdr --cl-var--))) nil)) (setq --cl-var-= - (cdr --cl-var--)) (setq --cl-var-- nil)) (if comp-log-time-report (progn = (comp-log (format "Done compiling %s" data) 0) (let* ((--cl-var-- (reverse = report)) (time nil) (pass nil)) (while (consp --cl-var--) (setq time (car -= -cl-var--) pass (car-safe (prog1 time (setq time (cdr time))))) (comp-log (= format "Pass %s took: %fs." pass time) 0) (setq --cl-var-- (cdr --cl-var--)= )) nil))) nil) (native-compiler-skip) (t (let ((err-val (cdr err))) (if (an= d comp-async-compilation (not (eq (car err) 'native-compiler-error))) (prog= n (message (if err-val "%s: Error: %s %s" "%s: Error %s") function-or-file = (get (car err) 'error-message) (car-safe err-val)) (kill-emacs -1)) (signal= (car err) (if (consp err-val) (cons function-or-file err-val) (list functi= on-or-file err-val))))))) (let* ((data function-or-file) (comp-native-compiling t) (byte-native-qua= lities nil) (byte-compile-debug t) (comp-ctxt (make-comp-ctxt :output outpu= t :with-late-load with-late-load))) (comp-log "\n\f\n" 1) (condition-case e= rr (let* ((report nil) (t0 nil) (--cl-var-- comp-passes) (pass nil) (--cl-v= ar-- t)) (while (progn (setq t0 (current-time)) (consp --cl-var--)) (setq p= ass (car --cl-var--)) (if (memq pass comp-disabled-passes) (progn) (comp-lo= g (format "(%s) Running pass %s:\n" function-or-file pass) 2) (setq data (f= uncall pass data)) (setq report (cons (cons pass (float-time (time-since t0= ))) report)) (let* ((--cl-var-- (alist-get pass comp-post-pass-hooks)) (f n= il)) (while (consp --cl-var--) (setq f (car --cl-var--)) (funcall f data) (= setq --cl-var-- (cdr --cl-var--))) nil)) (setq --cl-var-- (cdr --cl-var--))= (setq --cl-var-- nil)) (if comp-log-time-report (progn (comp-log (format "= Done compiling %s" data) 0) (let* ((--cl-var-- (reverse report)) (time nil)= (pass nil)) (while (consp --cl-var--) (setq time (car --cl-var--) pass (ca= r-safe (prog1 time (setq time (cdr time))))) (comp-log (format "Pass %s too= k: %fs." pass time) 0) (setq --cl-var-- (cdr --cl-var--))) nil))) nil) (nat= ive-compiler-skip) (t (let ((err-val (cdr err))) (if (and comp-async-compil= ation (not (eq (car err) 'native-compiler-error))) (progn (message (if err-= val "%s: Error: %s %s" "%s: Error %s") function-or-file (get (car err) 'err= or-message) (car-safe err-val)) (kill-emacs -1)) (signal (car err) (if (con= sp err-val) (cons function-or-file err-val) (list function-or-file err-val)= )))))) (if (stringp function-or-file) data (native-elisp-load data))) (catch 'no-native-compile (let* ((data function-or-file) (comp-native-com= piling t) (byte-native-qualities nil) (byte-compile-debug t) (comp-ctxt (ma= ke-comp-ctxt :output output :with-late-load with-late-load))) (comp-log "\n= \f\n" 1) (condition-case err (let* ((report nil) (t0 nil) (--cl-var-- comp-= passes) (pass nil) (--cl-var-- t)) (while (progn (setq t0 (current-time)) (= consp --cl-var--)) (setq pass (car --cl-var--)) (if (memq pass comp-disable= d-passes) (progn) (comp-log (format "(%s) Running pass %s:\n" function-or-f= ile pass) 2) (setq data (funcall pass data)) (setq report (cons (cons pass = (float-time (time-since t0))) report)) (let* ((--cl-var-- (alist-get pass c= omp-post-pass-hooks)) (f nil)) (while (consp --cl-var--) (setq f (car --cl-= var--)) (funcall f data) (setq --cl-var-- (cdr --cl-var--))) nil)) (setq --= cl-var-- (cdr --cl-var--)) (setq --cl-var-- nil)) (if comp-log-time-report = (progn (comp-log (format "Done compiling %s" data) 0) (let* ((--cl-var-- (r= everse report)) (time nil) (pass nil)) (while (consp --cl-var--) (setq time= (car --cl-var--) pass (car-safe (prog1 time (setq time (cdr time))))) (com= p-log (format "Pass %s took: %fs." pass time) 0) (setq --cl-var-- (cdr --cl= -var--))) nil))) nil) (native-compiler-skip) (t (let ((err-val (cdr err))) = (if (and comp-async-compilation (not (eq (car err) 'native-compiler-error))= ) (progn (message (if err-val "%s: Error: %s %s" "%s: Error %s") function-o= r-file (get (car err) 'error-message) (car-safe err-val)) (kill-emacs -1)) = (signal (car err) (if (consp err-val) (cons function-or-file err-val) (list= function-or-file err-val))))))) (if (stringp function-or-file) data (nativ= e-elisp-load data)))) comp--native-compile("~/src/elisp/pacproxy.el" nil nil) native-compile("~/src/elisp/pacproxy.el") (progn (native-compile "~/src/elisp/pacproxy.el")) elisp--eval-last-sexp(t) eval-last-sexp(t) eval-print-last-sexp(nil) funcall-interactively(eval-print-last-sexp nil) command-execute(eval-print-last-sexp) --=20 Michael Welsh Duggan (md5i@md5i.com) From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 05 11:31:18 2021 Received: (at 50268) by debbugs.gnu.org; 5 Sep 2021 15:31:18 +0000 Received: from localhost ([127.0.0.1]:50795 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mMu74-0004Jl-HV for submit@debbugs.gnu.org; Sun, 05 Sep 2021 11:31:18 -0400 Received: from md5i.com ([75.151.244.229]:34538) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mMu73-0004JZ-0s for 50268@debbugs.gnu.org; Sun, 05 Sep 2021 11:31:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=md5i.com; s=dkim; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:References: 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=14cu44j/2sp0lFm4wOQ3sOHtoKGOvZ+aa/h3h/OHVe0=; b=EHQk0rTpIwF6kz9sbFGjY2vjar IY5EdBWi5KRv4JK+OoL9FArfTO6UFfp/Q2k9dytBRzOSCP4E0BibluhjvOg6teAwtia3asVB+x7RJ X5MWjPt+gJuVm6g133rHyMZLV; Received: from abode ([192.168.177.1] helo=miko) by md5i.com with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mMu6w-003F7y-U5; Sun, 05 Sep 2021 11:31:10 -0400 From: Michael Welsh Duggan To: 50268@debbugs.gnu.org Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation References: <87sfyrt4df.fsf@md5i.com> <87tuj0qw2x.fsf@md5i.com> Date: Sun, 05 Sep 2021 11:31:10 -0400 In-Reply-To: <87tuj0qw2x.fsf@md5i.com> (Michael Welsh Duggan's message of "Sat, 04 Sep 2021 10:00:54 -0400") Message-ID: <87lf4bqbsx.fsf@md5i.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 50268 Cc: Stefan Monnier 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 (-) I was able to determine that there was a bug in the pacproxy.el code that I included in the bug report. Fixing that bug caused native compilation to work. The assertion and backtrace were not particularly useful in determining the bug in the code, though. The bug was in the `pacproxy--retrieve-wpad' function when I let-bound the following illegal lambda: (lambda (&rest) "DIRECT") The fix was to change this to: (lambda (&rest _) "DIRECT") Is there another part of the compiler that could have caught this and returned a useful diagnostic? -- Michael Welsh Duggan (md5i@md5i.com) From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 20 18:12:38 2021 Received: (at 50268) by debbugs.gnu.org; 20 Sep 2021 22:12:39 +0000 Received: from localhost ([127.0.0.1]:44202 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSRWg-0000Fh-Mj for submit@debbugs.gnu.org; Mon, 20 Sep 2021 18:12:38 -0400 Received: from mx.sdf.org ([205.166.94.24]:50517) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSRWe-0000FX-9h for 50268@debbugs.gnu.org; Mon, 20 Sep 2021 18:12:37 -0400 Received: from ma.sdf.org (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 18KMCWiH000309 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Mon, 20 Sep 2021 22:12:33 GMT From: Andrea Corallo To: Michael Welsh Duggan Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation References: <87sfyrt4df.fsf@md5i.com> <87tuj0qw2x.fsf@md5i.com> <87lf4bqbsx.fsf@md5i.com> Date: Mon, 20 Sep 2021 22:12:32 +0000 In-Reply-To: <87lf4bqbsx.fsf@md5i.com> (Michael Welsh Duggan's message of "Sun, 05 Sep 2021 11:31:10 -0400") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 50268 Cc: Stefan Monnier , 50268@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 (-) Michael Welsh Duggan writes: > I was able to determine that there was a bug in the pacproxy.el code > that I included in the bug report. Fixing that bug caused native > compilation to work. The assertion and backtrace were not particularly > useful in determining the bug in the code, though. The bug was in the > `pacproxy--retrieve-wpad' function when I let-bound the following > illegal lambda: > > (lambda (&rest) "DIRECT") > > The fix was to change this to: > > (lambda (&rest _) "DIRECT") > > Is there another part of the compiler that could have caught this and > returned a useful diagnostic? Hi Michael & all, I had a quick look and these are my findings: (byte-compile '(lambda (&rest _) "DIRECT")) => #[128 "\300\207" ["DIRECT"] 2 "DIRECT (fn &rest _)"] Here we have as encoded signature 128 (one rest arg) and the frame size is 2 (one for the rest arg and one for the immediate). Fine... (byte-compile '(lambda () "DIRECT")) => #[0 "\300\207" ["DIRECT"] 1 "DIRECT"] Here we have as encoded signature 0 (no args) and the frame size is 1 (will be used by the immediate). Fine as well. (byte-compile '(lambda (&rest) "DIRECT")) => #[128 "\300\207" ["DIRECT"] 1 "DIRECT (fn &rest)"] This is the problematic case that was signaled as reproducer. Here we have as encoded signature 128 (one rest arg) but the frame size (1) is not accounting for this. I think this output is a incoherent and I guess the byte compiler should probably just raise an error and refuse to compile if the lambda list is invalid. Am I wrong? Regards Andrea From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 21 03:50:38 2021 Received: (at 50268) by debbugs.gnu.org; 21 Sep 2021 07:50:38 +0000 Received: from localhost ([127.0.0.1]:44771 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSaY2-0005l0-J3 for submit@debbugs.gnu.org; Tue, 21 Sep 2021 03:50:38 -0400 Received: from mx.sdf.org ([205.166.94.24]:60031) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSaY1-0005ks-8X for 50268@debbugs.gnu.org; Tue, 21 Sep 2021 03:50:37 -0400 Received: from ma.sdf.org (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 18L7oZSW010400 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Tue, 21 Sep 2021 07:50:35 GMT From: Andrea Corallo To: Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation References: <87sfyrt4df.fsf@md5i.com> <87tuj0qw2x.fsf@md5i.com> <87lf4bqbsx.fsf@md5i.com> Date: Tue, 21 Sep 2021 07:50:35 +0000 In-Reply-To: (Andrea Corallo via's message of "Mon, 20 Sep 2021 22:12:32 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 50268 Cc: Michael Welsh Duggan , Stefan Monnier , 50268@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 (-) Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" writes: > Michael Welsh Duggan writes: > >> I was able to determine that there was a bug in the pacproxy.el code >> that I included in the bug report. Fixing that bug caused native >> compilation to work. The assertion and backtrace were not particularly >> useful in determining the bug in the code, though. The bug was in the >> `pacproxy--retrieve-wpad' function when I let-bound the following >> illegal lambda: >> >> (lambda (&rest) "DIRECT") >> >> The fix was to change this to: >> >> (lambda (&rest _) "DIRECT") >> >> Is there another part of the compiler that could have caught this and >> returned a useful diagnostic? > > Hi Michael & all, > > I had a quick look and these are my findings: > > (byte-compile '(lambda (&rest _) "DIRECT")) > => > #[128 "\300\207" ["DIRECT"] 2 "DIRECT > > (fn &rest _)"] > > Here we have as encoded signature 128 (one rest arg) and the frame size > is 2 (one for the rest arg and one for the immediate). Fine... > > (byte-compile '(lambda () "DIRECT")) > => > #[0 "\300\207" ["DIRECT"] 1 "DIRECT"] > > Here we have as encoded signature 0 (no args) and the frame size is 1 > (will be used by the immediate). Fine as well. > > (byte-compile '(lambda (&rest) "DIRECT")) > => > #[128 "\300\207" ["DIRECT"] 1 "DIRECT > > (fn &rest)"] > > This is the problematic case that was signaled as reproducer. Here we > have as encoded signature 128 (one rest arg) but the frame size (1) is > not accounting for this. > > I think this output is a incoherent and I guess the byte compiler should > probably just raise an error and refuse to compile if the lambda list is > invalid. Am I wrong? I can't verify in this moment but I guess is very possible we even overflow in the byte interpreter when executing the mentioned bytecode. Andrea From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 21 08:17:31 2021 Received: (at 50268) by debbugs.gnu.org; 21 Sep 2021 12:17:31 +0000 Received: from localhost ([127.0.0.1]:45165 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSeiI-0007W3-V1 for submit@debbugs.gnu.org; Tue, 21 Sep 2021 08:17:31 -0400 Received: from mail-wr1-f49.google.com ([209.85.221.49]:40890) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSeiE-0007Vm-RV for 50268@debbugs.gnu.org; Tue, 21 Sep 2021 08:17:29 -0400 Received: by mail-wr1-f49.google.com with SMTP id q26so38506897wrc.7 for <50268@debbugs.gnu.org>; Tue, 21 Sep 2021 05:17:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tcd.ie; s=google21; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=6V2GNF/q+VUhMLt/TGHX130fN1Tu8dUTVL6ZSMnSpxU=; b=JLd9sbHAz3JR7NQo1+LRVezu7aF0+AJt+AkRhoIWD6uVOepdO7UqSy98rL8PgGXAuP jm6tr/jpeJWaOBMdSMvEnE465cwovZZXSxgrfYPVc6iwAws92DLXmtS20ya5+YDNWSzH 9KtoIYJJXHlegR3sL0EaTgNhfE5tsS3Qdxohc2M3Q9W7Tnf5dddwT13ic544vjD7fYYj IiD79ZbhmRtO4LoUSioYs5O8hRviUCm+HxfSGij5hF6JUVTEzlasz72YgRp1XRBrE0ea 2UWkXn1pqm/DrTbdyS2QRA7rw5+fBY78DrimmHkl/ZgbscWHnorIlVRe/MxvIdFYn0a2 F7cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=6V2GNF/q+VUhMLt/TGHX130fN1Tu8dUTVL6ZSMnSpxU=; b=TFycDmPZuVA0B8aTHbC2awms64nlAVe2DANdvgHJOxtbzKKADemgN4WXys8UqXnujN x3ZtFZ/xwnqP4nsNiN8EAowtLBJxyrb7vxKzU+vCtSURr37L3Z9BIm9eU1ghbd9TV1gQ J96fm8gzfNFT5KPiS45XFnXoKrfIza22qHgurtxazAuHfludTMgkhSxoLY/KHICtQY0p hqnnDzq+OHC8iN9/5tf8pjqjYUnxyBQFFtQxtF9Z4X1MaW/yERY+AKTMNMzX66UWnTZ3 kWc3JPjHU1gtM7V8s2Ek8Po2/NKRLfzkUjnbZp/96nh29HlQVAANnJCi8ibRyMaFI2/r GtHg== X-Gm-Message-State: AOAM530OvG0M+fXrFFBDP4U/CZ+PXMz4EV4r1+P6iwW2DqhrEiMTX9pW dHCtmL0sAPOJ6a8RPgwb2Z2Ltybe708Lrg== X-Google-Smtp-Source: ABdhPJxDq5Z2jZxk/yFBox+yVSfiUrFiHIz/pPGeQa4g8ZIQRd4afjm91MNq5kB/gSihoh31TbZE6g== X-Received: by 2002:a7b:cc0d:: with SMTP id f13mr4168492wmh.85.1632226640595; Tue, 21 Sep 2021 05:17:20 -0700 (PDT) Received: from localhost ([80.233.62.48]) by smtp.gmail.com with ESMTPSA id u13sm19509063wrt.41.2021.09.21.05.17.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Sep 2021 05:17:19 -0700 (PDT) From: "Basil L. Contovounesios" To: 50268@debbugs.gnu.org Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation References: <87sfyrt4df.fsf@md5i.com> <87tuj0qw2x.fsf@md5i.com> <87lf4bqbsx.fsf@md5i.com> Date: Tue, 21 Sep 2021 13:17:18 +0100 In-Reply-To: (Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors"'s message of "Tue, 21 Sep 2021 07:50:35 +0000") Message-ID: <878rzqktrl.fsf@tcd.ie> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 50268 Cc: mwd@md5i.com, =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= , monnier@iro.umontreal.ca, Andrea Corallo 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 (-) Andrea Corallo [2021-09-21 07:50 +0000] wrote: > Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of > text editors" writes: > >> Michael Welsh Duggan writes: >> >>> I was able to determine that there was a bug in the pacproxy.el code >>> that I included in the bug report. Fixing that bug caused native >>> compilation to work. The assertion and backtrace were not particularly >>> useful in determining the bug in the code, though. The bug was in the >>> `pacproxy--retrieve-wpad' function when I let-bound the following >>> illegal lambda: >>> >>> (lambda (&rest) "DIRECT") >>> >>> The fix was to change this to: >>> >>> (lambda (&rest _) "DIRECT") >>> >>> Is there another part of the compiler that could have caught this and >>> returned a useful diagnostic? >> >> Hi Michael & all, >> >> I had a quick look and these are my findings: >> >> (byte-compile '(lambda (&rest _) "DIRECT")) >> => >> #[128 "\300\207" ["DIRECT"] 2 "DIRECT >> >> (fn &rest _)"] >> >> Here we have as encoded signature 128 (one rest arg) and the frame size >> is 2 (one for the rest arg and one for the immediate). Fine... >> >> (byte-compile '(lambda () "DIRECT")) >> => >> #[0 "\300\207" ["DIRECT"] 1 "DIRECT"] >> >> Here we have as encoded signature 0 (no args) and the frame size is 1 >> (will be used by the immediate). Fine as well. >> >> (byte-compile '(lambda (&rest) "DIRECT")) >> => >> #[128 "\300\207" ["DIRECT"] 1 "DIRECT >> >> (fn &rest)"] >> >> This is the problematic case that was signaled as reproducer. Here we >> have as encoded signature 128 (one rest arg) but the frame size (1) is >> not accounting for this. >> >> I think this output is a incoherent and I guess the byte compiler should >> probably just raise an error and refuse to compile if the lambda list is >> invalid. Am I wrong? > > I can't verify in this moment but I guess is very possible we even > overflow in the byte interpreter when executing the mentioned bytecode. In the meantime I think Mattias ran into the same problem in the following threads: https://lists.gnu.org/r/emacs-devel/2021-09/msg01492.html https://bugs.gnu.org/50720 Thanks, -- Basil From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 21 11:54:55 2021 Received: (at control) by debbugs.gnu.org; 21 Sep 2021 15:54:55 +0000 Received: from localhost ([127.0.0.1]:47609 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSi6h-0006Ie-Fw for submit@debbugs.gnu.org; Tue, 21 Sep 2021 11:54:55 -0400 Received: from mab.sdf.org ([205.166.94.33]:42250 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSi6e-0006IS-S7 for control@debbugs.gnu.org; Tue, 21 Sep 2021 11:54:54 -0400 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1mSi6c-0000wC-Kc for control@debbugs.gnu.org; Tue, 21 Sep 2021 15:54:50 +0000 To: control@debbugs.gnu.org From: Andrea Corallo Subject: control message for bug #50268 Message-Id: Date: Tue, 21 Sep 2021 15:54:50 +0000 X-Spam-Score: 0.0 (/) 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 (-) merge 50268 50720 quit From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 21 11:56:45 2021 Received: (at 50268) by debbugs.gnu.org; 21 Sep 2021 15:56:46 +0000 Received: from localhost ([127.0.0.1]:47614 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSi8T-0006MC-OY for submit@debbugs.gnu.org; Tue, 21 Sep 2021 11:56:45 -0400 Received: from mx.sdf.org ([205.166.94.24]:51730) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSi8R-0006M2-5J for 50268@debbugs.gnu.org; Tue, 21 Sep 2021 11:56:43 -0400 Received: from ma.sdf.org (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 18LFuUbR002157 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Tue, 21 Sep 2021 15:56:30 GMT From: Andrea Corallo To: "Basil L. Contovounesios" Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation References: <87sfyrt4df.fsf@md5i.com> <87tuj0qw2x.fsf@md5i.com> <87lf4bqbsx.fsf@md5i.com> <878rzqktrl.fsf@tcd.ie> Date: Tue, 21 Sep 2021 15:56:30 +0000 In-Reply-To: <878rzqktrl.fsf@tcd.ie> (Basil L. Contovounesios's message of "Tue, 21 Sep 2021 13:17:18 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 50268 Cc: mwd@md5i.com, Mattias =?utf-8?Q?Engdeg=C3=A5r?= =?utf-8?Q?d?= , monnier@iro.umontreal.ca, 50268@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 (-) "Basil L. Contovounesios" writes: > Andrea Corallo [2021-09-21 07:50 +0000] wrote: > [...] >> I can't verify in this moment but I guess is very possible we even >> overflow in the byte interpreter when executing the mentioned bytecode. > > In the meantime I think Mattias ran into the same problem in the > following threads: > > https://lists.gnu.org/r/emacs-devel/2021-09/msg01492.html > https://bugs.gnu.org/50720 > > Thanks, Hi Basil, thanks, if I've done it correctly this and 50720 should be merged now. Regards Andrea From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 21 12:11:50 2021 Received: (at 50268) by debbugs.gnu.org; 21 Sep 2021 16:11:50 +0000 Received: from localhost ([127.0.0.1]:47636 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSiN4-0000Yp-3t for submit@debbugs.gnu.org; Tue, 21 Sep 2021 12:11:50 -0400 Received: from quimby.gnus.org ([95.216.78.240]:45624) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSiN1-0000YW-Ry; Tue, 21 Sep 2021 12:11:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID :In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To: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=s9NkGr3aoYc/A0xeWRfrhbs2MymwpAJbSUA6mhtpZbw=; b=btozSbsm6ZkQJaEd9tsa8xf+iM +Y2AgC/AKEwh3rPhzsA0FfU4v2c//JnXjciWAK6ls5OOJTtqJ+aQUG/pK7bSL7wGXCjka6PtZc1Fm S9wcRRdSTRufICSrgFIcaFBnMh47/wbExROu7IKZ42nzNkk7WCmeCA11Rm4GW+pJlJ/U=; Received: from [84.212.220.105] (helo=elva) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mSiMs-0007kP-KY; Tue, 21 Sep 2021 18:11:41 +0200 From: Lars Ingebrigtsen To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation References: X-Now-Playing: Joan as Police Woman's _Joanthology (3)_: "The Classic (Live at the BBC)" Date: Tue, 21 Sep 2021 18:11:34 +0200 In-Reply-To: ("Mattias =?utf-8?Q?Engdeg=C3=A5rd=22's?= message of "Tue, 21 Sep 2021 13:15:54 +0200") Message-ID: <87mto529jd.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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 @@CONTACT_ADDRESS@@ for details. Content preview: Mattias EngdegÃ¥rd writes: > Now, either we fix this bug or we stop pretending that unnamed &rest > arguments work at all and signal an error, because it's clear from the > above that they can't have seen much use. Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50268 Cc: Eli Zaretskii , 50720@debbugs.gnu.org, 50268@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: -3.3 (---) Mattias Engdeg=C3=A5rd writes: > Now, either we fix this bug or we stop pretending that unnamed &rest > arguments work at all and signal an error, because it's clear from the > above that they can't have seen much use. I did a quick grep through core and GNU ELPA, and I couldn't find any instances of it being used, so I'd be fine with either solution (i.e., either fixing the bug or signalling an error). Perhaps Eli has an opinion (added to the CCs). --=20 (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 21 12:22:23 2021 Received: (at 50268) by debbugs.gnu.org; 21 Sep 2021 16:22:23 +0000 Received: from localhost ([127.0.0.1]:47645 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSiXH-0000tK-CW for submit@debbugs.gnu.org; Tue, 21 Sep 2021 12:22:23 -0400 Received: from mail18c50.megamailservers.eu ([91.136.10.28]:53426) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSiXF-0000t7-71; Tue, 21 Sep 2021 12:22:22 -0400 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1632241338; bh=Jmj5inle56jtpMzbf+1crrH3XSP+U4MGpg+xI82qR/I=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=OVcl5M0m8flHqbGMGvJqotn9YgvkzTWhiJKVVqCGTt2/qaqEMDVKVRVerZo00Fcae p3KuZz48pRwSyQ9sJ5KrpgjmAUpdYE2rwCkx64M2iodMbyowmNfucDOmZl/XF4szpg dG5eUGMtMYtES/KnOkd5oOG5Q3fSnZKuMRoRKfZM= Feedback-ID: mattiase@acm.or Received: from stanniol.lan (c-b952e353.032-75-73746f71.bbcust.telenor.se [83.227.82.185]) (authenticated bits=0) by mail18c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 18LGMBRe008208; Tue, 21 Sep 2021 16:22:15 +0000 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.21\)) Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: <87mto529jd.fsf@gnus.org> Date: Tue, 21 Sep 2021 18:22:11 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <9CF7F0E1-3C92-4F79-B3F3-E51E0E2D43C3@acm.org> References: <87mto529jd.fsf@gnus.org> To: Lars Ingebrigtsen X-Mailer: Apple Mail (2.3445.104.21) X-CTCH-RefID: str=0001.0A742F23.614A06BA.0052, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.4 cv=etO8cqlX c=1 sm=1 tr=0 ts=614a06ba a=von4qPfY+hyqc0zmWf0tYQ==:117 a=von4qPfY+hyqc0zmWf0tYQ==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10 a=OocQHUDgAAAA:8 a=NRMGHQoppc5sI5ljP04A:9 a=CjuIK1q_8ugA:10 a=xUZTl98r3Qw_uB5NK3jt:22 X-Origin-Country: SE X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 50268 Cc: Eli Zaretskii , 50720@debbugs.gnu.org, Noam Postavsky , 50268@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: -0.0 (/) 21 sep. 2021 kl. 18.11 skrev Lars Ingebrigtsen : > I did a quick grep through core and GNU ELPA, and I couldn't find any > instances of it being used, so I'd be fine with either solution (i.e., > either fixing the bug or signalling an error). I know how to fix it but there's no really elegant way of doing it, and = unless a convincing case can be made for permitting anonymous &rest, I'd = favour disallowing it. Unless I'm mistaken it was Noam who added it = (1d47d777ef24c0be9153b0a1c8ba21918fa1025a), so let's ask him. From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 21 12:26:34 2021 Received: (at 50268) by debbugs.gnu.org; 21 Sep 2021 16:26:34 +0000 Received: from localhost ([127.0.0.1]:47657 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSibK-00010y-Fk for submit@debbugs.gnu.org; Tue, 21 Sep 2021 12:26:34 -0400 Received: from eggs.gnu.org ([209.51.188.92]:57464) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSibF-00010i-Os; Tue, 21 Sep 2021 12:26:33 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57696) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mSibA-0000EN-F8; Tue, 21 Sep 2021 12:26:24 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:1240 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mSib8-0008LS-TO; Tue, 21 Sep 2021 12:26:24 -0400 Date: Tue, 21 Sep 2021 19:26:19 +0300 Message-Id: <83ee9hyjx0.fsf@gnu.org> From: Eli Zaretskii To: Lars Ingebrigtsen In-Reply-To: <87mto529jd.fsf@gnus.org> (message from Lars Ingebrigtsen on Tue, 21 Sep 2021 18:11:34 +0200) Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation References: <87mto529jd.fsf@gnus.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50268 Cc: mattiase@acm.org, 50720@debbugs.gnu.org, 50268@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: -3.3 (---) > From: Lars Ingebrigtsen > Cc: 50720@debbugs.gnu.org, 50268@debbugs.gnu.org, Eli Zaretskii > Date: Tue, 21 Sep 2021 18:11:34 +0200 > > Mattias EngdegÃ¥rd writes: > > > Now, either we fix this bug or we stop pretending that unnamed &rest > > arguments work at all and signal an error, because it's clear from the > > above that they can't have seen much use. > > I did a quick grep through core and GNU ELPA, and I couldn't find any > instances of it being used, so I'd be fine with either solution (i.e., > either fixing the bug or signalling an error). > > Perhaps Eli has an opinion (added to the CCs). I think I'd like to at least see the prototype of the fix to have an opinion. From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 21 13:09:33 2021 Received: (at 50268) by debbugs.gnu.org; 21 Sep 2021 17:09:33 +0000 Received: from localhost ([127.0.0.1]:47835 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSjGv-0006iz-3m for submit@debbugs.gnu.org; Tue, 21 Sep 2021 13:09:33 -0400 Received: from mail-qt1-f175.google.com ([209.85.160.175]:34435) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSjGt-0006im-LN for 50268@debbugs.gnu.org; Tue, 21 Sep 2021 13:09:31 -0400 Received: by mail-qt1-f175.google.com with SMTP id 2so19649003qtw.1 for <50268@debbugs.gnu.org>; Tue, 21 Sep 2021 10:09:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:in-reply-to:references:user-agent:date :message-id:mime-version:content-transfer-encoding; bh=CplDwvUPQqgDjzwtpAYB1Hvr9Q/LC4NyIgAcrSTdfnE=; b=WU+mbHoaOo04ZUPN3323Dk6Y7rjpgK4RC3n56WmcwiFwip7GbNPXyUPzfDy8GNdWFA kz0Jkr1zqBGhBUrF+rirrQAAns9XYIhdOjANuxFRPphd5tRrJpfn0dcsF8YPAw0bb/ZO N4rgT+4WNjMo8zyIwwu9UME9Ig/oHWLhAKUQVmBl+YCiP6bmH74sa9O/4oD3cIKg0mV4 xpbUeiMm4D64WFP6Hn3OwXH2RHSKSz2WQk4XgnvC4a1nkks7J9ky6EMPF5sVkovHJry2 Dny7i0pwrD6i/g7Ch0eExJaml/X8v+/pqzu/HOgaArmPIThA8GCI0hLCGUBzkz19Rky8 gH8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:in-reply-to:references :user-agent:date:message-id:mime-version:content-transfer-encoding; bh=CplDwvUPQqgDjzwtpAYB1Hvr9Q/LC4NyIgAcrSTdfnE=; b=fPUnMG4R3HJVOvNYMUTe3ZkB+0VDFJj9LizPdvwJsxOUsSbRWEkOPwtPhlHyJH9t5F q23Z7cYoz+GbzhGovIgaF/vtcRwCa7FMX/2LIUtz0DA8wm2N3wo10yg0JcXLXWIaW/m3 gvY8QFOoMkoFzOavI1+fbRgFJOBZYsPU9R8HAvZr/82v+WKLI9KN+auWvAlpEk25wEyw Xzl4+8UNDhtFQ0J0hTneqVUR1Fea9I6/4Fu38klR/FVjvaZUecwvgu77CL7xERsXkEcv frCIRjGRuAmtWEKOBNnirzKBoO7VGVHwLjUCrSGECU4Z/CY/zKf2GbdFCCeUvT3p+efg upmQ== X-Gm-Message-State: AOAM530Fnq+wme2P+KtbRo9xH5jtT7hdGLqR8tTY16M+D+9uklhOCZek 07hIT79xwOFjsGjdWTSzrkFsRXxwCEtgLQ== X-Google-Smtp-Source: ABdhPJw2A1teMWHZfnO1oy0Z4G7+PPM/ae8XqR5pwV8rxSLqcn49qxMLyiDVMOBrTV75/nxnrx4y8g== X-Received: by 2002:ac8:7c45:: with SMTP id o5mr28601302qtv.54.1632244166103; Tue, 21 Sep 2021 10:09:26 -0700 (PDT) Received: from vhost2 (cpe001143542e1f-cmf81d0f809fa0.cpe.net.cable.rogers.com. [99.230.38.42]) by smtp.gmail.com with ESMTPSA id n13sm6317692qke.100.2021.09.21.10.09.25 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 21 Sep 2021 10:09:25 -0700 (PDT) From: Noam Postavsky To: Mattias =?iso-8859-1?Q?Engdeg=E5rd?= Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation In-Reply-To: <9CF7F0E1-3C92-4F79-B3F3-E51E0E2D43C3@acm.org> ("Mattias \=\?iso-8859-1\?Q\?Engdeg\=E5rd\=22's\?\= message of "Tue, 21 Sep 2021 18:22:11 +0200") References: <87mto529jd.fsf@gnus.org> <9CF7F0E1-3C92-4F79-B3F3-E51E0E2D43C3@acm.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (windows-nt) Date: Tue, 21 Sep 2021 13:09:24 -0400 Message-ID: <85h7edn9dn.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 50268 Cc: Lars Ingebrigtsen , Eli Zaretskii , 50268@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 (-) Mattias Engdeg=E5rd writes: > 21 sep. 2021 kl. 18.11 skrev Lars Ingebrigtsen : > >> I did a quick grep through core and GNU ELPA, and I couldn't find any >> instances of it being used, so I'd be fine with either solution (i.e., >> either fixing the bug or signalling an error). > > I know how to fix it but there's no really elegant way of doing it, > and unless a convincing case can be made for permitting anonymous > &rest, I'd favour disallowing it. > > Unless I'm mistaken it was Noam who added it > (1d47d777ef24c0be9153b0a1c8ba21918fa1025a), so let's ask him. It's been a while, but looking at Bug#29165, the reason I added it is that it was supported in Emacs 25 and earlier. Stefan M had some justifications there for &optional without variables, but I think they don't apply for &rest. From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 21 13:54:03 2021 Received: (at 50268) by debbugs.gnu.org; 21 Sep 2021 17:54:03 +0000 Received: from localhost ([127.0.0.1]:47905 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSjxz-000629-FQ for submit@debbugs.gnu.org; Tue, 21 Sep 2021 13:54:03 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53046) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSjxw-00061e-Vq for 50268@debbugs.gnu.org; Tue, 21 Sep 2021 13:54:02 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60984) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mSjxq-0004bM-BO; Tue, 21 Sep 2021 13:53:54 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2611 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mSjxp-0005yX-TD; Tue, 21 Sep 2021 13:53:54 -0400 Date: Tue, 21 Sep 2021 20:53:47 +0300 Message-Id: <83bl4lyfv8.fsf@gnu.org> From: Eli Zaretskii To: Noam Postavsky , Stefan Monnier In-Reply-To: <85h7edn9dn.fsf@gmail.com> (message from Noam Postavsky on Tue, 21 Sep 2021 13:09:24 -0400) Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation References: <87mto529jd.fsf@gnus.org> <9CF7F0E1-3C92-4F79-B3F3-E51E0E2D43C3@acm.org> <85h7edn9dn.fsf@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50268 Cc: mattiase@acm.org, larsi@gnus.org, 50268@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: -3.3 (---) > From: Noam Postavsky > Cc: Lars Ingebrigtsen , Eli Zaretskii , 50268@debbugs.gnu.org > Date: Tue, 21 Sep 2021 13:09:24 -0400 > > Mattias Engdegård writes: > > > 21 sep. 2021 kl. 18.11 skrev Lars Ingebrigtsen : > > > >> I did a quick grep through core and GNU ELPA, and I couldn't find any > >> instances of it being used, so I'd be fine with either solution (i.e., > >> either fixing the bug or signalling an error). > > > > I know how to fix it but there's no really elegant way of doing it, > > and unless a convincing case can be made for permitting anonymous > > &rest, I'd favour disallowing it. > > > > Unless I'm mistaken it was Noam who added it > > (1d47d777ef24c0be9153b0a1c8ba21918fa1025a), so let's ask him. > > It's been a while, but looking at Bug#29165, the reason I added it is > that it was supported in Emacs 25 and earlier. Stefan M had some > justifications there for &optional without variables, but I think they > don't apply for &rest. Stefan, can you please chime in? From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 21 15:33:17 2021 Received: (at 50268) by debbugs.gnu.org; 21 Sep 2021 19:33:17 +0000 Received: from localhost ([127.0.0.1]:48064 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSlW0-0004mP-TH for submit@debbugs.gnu.org; Tue, 21 Sep 2021 15:33:17 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:20786) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSlVy-0004m7-En for 50268@debbugs.gnu.org; Tue, 21 Sep 2021 15:33:14 -0400 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 7711C44132A; Tue, 21 Sep 2021 15:33:08 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 9EF28441326; Tue, 21 Sep 2021 15:33:02 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1632252782; bh=vxHvQA5kPqvIFhNrwKIm9UeUlkwof49EYTSk7M8UjDg=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=N7KwvChayAp8Bhtl/aaMeIAwjXcH3+WFcg1zyU7PiI+BBOgk8P6EH6CE3UwJityiD dZGYB/CGD9H2R2/pVRljah9OWnBBtnVWnRoZI3LM3CaCdjyDGTgkMjeqYEX1wFvChl MIPXcPFffl1Mmhyx3T8X1IDYrTD/8V3L1qKVxxajwGRw9s3ue3J5VsrdwwdWAvr5HI sfk9ZHPwSM0RTyKYqwaAixu/rssJN712OFdQa9HnL0THxtxY/KOu0DHnOx13Fhhoiz n9SdvtbQXvX06UTJ+8ulJcCA8soEEV7UtNVRmMqlhTGQo3Na9u8qdfJC2Xc5EFK8T5 EriqVbyy/mtNQ== Received: from alfajor (lechon.iro.umontreal.ca [132.204.27.242]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 912FD1201C8; Tue, 21 Sep 2021 15:33:02 -0400 (EDT) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation Message-ID: References: <87mto529jd.fsf@gnus.org> <9CF7F0E1-3C92-4F79-B3F3-E51E0E2D43C3@acm.org> <85h7edn9dn.fsf@gmail.com> <83bl4lyfv8.fsf@gnu.org> Date: Tue, 21 Sep 2021 15:32:32 -0400 In-Reply-To: <83bl4lyfv8.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 21 Sep 2021 20:53:47 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.172 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50268 Cc: mattiase@acm.org, larsi@gnus.org, Noam Postavsky , 50268@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: -3.3 (---) >> It's been a while, but looking at Bug#29165, the reason I added it is >> that it was supported in Emacs 25 and earlier. Stefan M had some >> justifications there for &optional without variables, but I think they >> don't apply for &rest. > Stefan, can you please chime in? With my type-systems-guy hat on, I'd say we want to detect those `&rest` without a following variable and shame the author of the code. But at the same time we could think of `&rest` as something similar to `&optional` and decide that it can be handy for generated code to be able to generate (x y &optional z &rest). The main difference I see is that `(x y &optional ,@args) makes a lot of sense and will naturally occasionally lead to `&optional` not followed by anything, whereas `&rest` only expects 1 following identifier so it seems much less likely that the code will sometimes put 0 vars in there. After all, we do signal an error if there's more than 1 var after `&rest`, so I think it makes sense to follow my types-systems-guy heart here. Stefan From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 22 01:43:17 2021 Received: (at 50268) by debbugs.gnu.org; 22 Sep 2021 05:43:17 +0000 Received: from localhost ([127.0.0.1]:48604 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSv2L-0006rO-3L for submit@debbugs.gnu.org; Wed, 22 Sep 2021 01:43:17 -0400 Received: from eggs.gnu.org ([209.51.188.92]:59680) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mSv2I-0006r8-Vs for 50268@debbugs.gnu.org; Wed, 22 Sep 2021 01:43:15 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52684) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mSv2C-0005c9-Cn; Wed, 22 Sep 2021 01:43:08 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2085 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mSv2B-00079C-Uz; Wed, 22 Sep 2021 01:43:08 -0400 Date: Wed, 22 Sep 2021 08:43:05 +0300 Message-Id: <83zgs5w4gm.fsf@gnu.org> From: Eli Zaretskii To: Stefan Monnier In-Reply-To: (message from Stefan Monnier on Tue, 21 Sep 2021 15:32:32 -0400) Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation References: <87mto529jd.fsf@gnus.org> <9CF7F0E1-3C92-4F79-B3F3-E51E0E2D43C3@acm.org> <85h7edn9dn.fsf@gmail.com> <83bl4lyfv8.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50268 Cc: mattiase@acm.org, larsi@gnus.org, npostavs@gmail.com, 50268@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: -3.3 (---) > From: Stefan Monnier > Cc: Noam Postavsky , mattiase@acm.org, larsi@gnus.org, > 50268@debbugs.gnu.org > Date: Tue, 21 Sep 2021 15:32:32 -0400 > > With my type-systems-guy hat on, I'd say we want to detect those `&rest` > without a following variable and shame the author of the code. > > But at the same time we could think of `&rest` as something similar to > `&optional` and decide that it can be handy for generated code to be > able to generate (x y &optional z &rest). > > The main difference I see is that > > `(x y &optional ,@args) > > makes a lot of sense and will naturally occasionally lead to `&optional` > not followed by anything, whereas `&rest` only expects 1 following > identifier so it seems much less likely that the code will sometimes put > 0 vars in there. After all, we do signal an error if there's more than > 1 var after `&rest`, so I think it makes sense to follow my > types-systems-guy heart here. Which basically means we should revert Noam's commit of yore, is that right? From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 22 21:46:38 2021 Received: (at 50268) by debbugs.gnu.org; 23 Sep 2021 01:46:38 +0000 Received: from localhost ([127.0.0.1]:52264 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mTDos-0007v1-A0 for submit@debbugs.gnu.org; Wed, 22 Sep 2021 21:46:38 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:56081) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mTDom-0007uj-P8 for 50268@debbugs.gnu.org; Wed, 22 Sep 2021 21:46:37 -0400 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 2F44080928; Wed, 22 Sep 2021 21:46:27 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id B4A1E80347; Wed, 22 Sep 2021 21:46:25 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1632361585; bh=CYLIFPo1qgS4vAzz2y4n7S1pyOsd52vnBqxkjYxvXTE=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=MsD5vITT6yaazilENeO2ZTXyocMwdQOTP8Z6Kv4Zl3RZy3GlrRda8PGlKO3E+7THf umyIpimZcuocvdQRPRebS1dholcB3X6GJBOKQmqDiZ54Hn+IrAGkyhorVoXbEZGola b8zrYLC68K5mtGW3vWWupfixHIbQkO4mkGwjG4cscPd/9Tpa1l8T4tjNxYqvaOIAsG VJlqoYn6J5T40/lgF67qTVXBNLxy5cOjZX6BxQXq9uXQiEd4cseq99xS3Ifj6qrTEn IGCVQYHkcQKi3AszZ9V+PO/po8048jOYiSLhFDzsrmI+h6mnQks5JAWabmZj4WC0+W AHSrHyy4svmmQ== Received: from milanesa (unknown [45.72.241.23]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 6F5E212040A; Wed, 22 Sep 2021 21:46:25 -0400 (EDT) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation Message-ID: References: <87mto529jd.fsf@gnus.org> <9CF7F0E1-3C92-4F79-B3F3-E51E0E2D43C3@acm.org> <85h7edn9dn.fsf@gmail.com> <83bl4lyfv8.fsf@gnu.org> <83zgs5w4gm.fsf@gnu.org> Date: Wed, 22 Sep 2021 21:46:24 -0400 In-Reply-To: <83zgs5w4gm.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 22 Sep 2021 08:43:05 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.064 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50268 Cc: mattiase@acm.org, larsi@gnus.org, npostavs@gmail.com, 50268@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: -3.3 (---) > Which basically means we should revert Noam's commit of yore, is that > right? Not all of it, no. Only the part which makes (&rest) acceptable. Stefan From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 23 02:38:42 2021 Received: (at 50268) by debbugs.gnu.org; 23 Sep 2021 06:38:42 +0000 Received: from localhost ([127.0.0.1]:52502 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mTINW-0007jl-30 for submit@debbugs.gnu.org; Thu, 23 Sep 2021 02:38:42 -0400 Received: from eggs.gnu.org ([209.51.188.92]:51702) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mTINR-0007jR-P1 for 50268@debbugs.gnu.org; Thu, 23 Sep 2021 02:38:41 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34762) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mTINK-0008Al-LM; Thu, 23 Sep 2021 02:38:30 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2374 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mTINK-0004i2-56; Thu, 23 Sep 2021 02:38:30 -0400 Date: Thu, 23 Sep 2021 09:38:27 +0300 Message-Id: <83sfxvvlss.fsf@gnu.org> From: Eli Zaretskii To: Stefan Monnier In-Reply-To: (message from Stefan Monnier on Wed, 22 Sep 2021 21:46:24 -0400) Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation References: <87mto529jd.fsf@gnus.org> <9CF7F0E1-3C92-4F79-B3F3-E51E0E2D43C3@acm.org> <85h7edn9dn.fsf@gmail.com> <83bl4lyfv8.fsf@gnu.org> <83zgs5w4gm.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50268 Cc: mattiase@acm.org, larsi@gnus.org, npostavs@gmail.com, 50268@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: -3.3 (---) > From: Stefan Monnier > Cc: mattiase@acm.org, larsi@gnus.org, npostavs@gmail.com, > 50268@debbugs.gnu.org > Date: Wed, 22 Sep 2021 21:46:24 -0400 > > > Which basically means we should revert Noam's commit of yore, is that > > right? > > Not all of it, no. Only the part which makes (&rest) acceptable. That's what I meant, sorry for not being clear enough. From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 23 07:09:13 2021 Received: (at 50268) by debbugs.gnu.org; 23 Sep 2021 11:09:13 +0000 Received: from localhost ([127.0.0.1]:52808 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mTMbJ-0006zt-Jg for submit@debbugs.gnu.org; Thu, 23 Sep 2021 07:09:13 -0400 Received: from mail73c50.megamailservers.eu ([91.136.10.83]:51258 helo=mail92c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mTMbG-0006zh-Nx for 50268@debbugs.gnu.org; Thu, 23 Sep 2021 07:09:12 -0400 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1632395347; bh=/BsXBQzLTBbFpmOQKIp0p5QFJeTejMQHAH5aafmOY2g=; h=From:Subject:Date:In-Reply-To:Cc:To:References:From; b=nx1QarjZZhpgQHJfLF4y5xZtP+UbC6BwOf01reNOiKS2YiV/pcUuAUONME//AN9O9 HxgDS+2hPkYXPKN1qaX/HowEAYOAfCRCPKw+SdiW2vCdrMTxIttWZz9FfaTsZLPHqa 2RIfAncyiB8yIJ3gUUcrTAJIkfiAF56pReYhPoi4= Feedback-ID: mattiase@acm.or Received: from stanniol.lan (c-b952e353.032-75-73746f71.bbcust.telenor.se [83.227.82.185]) (authenticated bits=0) by mail92c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 18NB935U011510; Thu, 23 Sep 2021 11:09:05 +0000 From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= Message-Id: Content-Type: multipart/mixed; boundary="Apple-Mail=_2479D273-E40F-4359-9E01-E7797AE71FEE" Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.21\)) Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation Date: Thu, 23 Sep 2021 13:09:02 +0200 In-Reply-To: To: Stefan Monnier References: <87mto529jd.fsf@gnus.org> <9CF7F0E1-3C92-4F79-B3F3-E51E0E2D43C3@acm.org> <85h7edn9dn.fsf@gmail.com> <83bl4lyfv8.fsf@gnu.org> <83zgs5w4gm.fsf@gnu.org> X-Mailer: Apple Mail (2.3445.104.21) X-CTCH-RefID: str=0001.0A742F2A.614C6052.0059, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.4 cv=C7OKdSD+ c=1 sm=1 tr=0 ts=614c6053 a=von4qPfY+hyqc0zmWf0tYQ==:117 a=von4qPfY+hyqc0zmWf0tYQ==:17 a=M51BFTxLslgA:10 a=iRZporoAAAAA:8 a=K491EYjl8xiik1ibadoA:9 a=CjuIK1q_8ugA:10 a=ENOmLqmOUNYA:10 a=Z10Arsmc5g1C6foz_qQA:9 a=B2y7HmGcmWMA:10 a=NOBgFS-JBQ2l-kSd6-zu:22 X-Origin-Country: SE X-Spam-Score: 1.4 (+) 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: 23 sep. 2021 kl. 03.46 skrev Stefan Monnier : > Not all of it, no. Only the part which makes (&rest) acceptable. Patch. Content analysis details: (1.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.4 KHOP_HELO_FCRDNS Relay HELO differs from its IP's reverse DNS X-Debbugs-Envelope-To: 50268 Cc: Eli Zaretskii , Lars Ingebrigtsen , 50268@debbugs.gnu.org, Noam Postavsky 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: -0.0 (/) --Apple-Mail=_2479D273-E40F-4359-9E01-E7797AE71FEE Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii 23 sep. 2021 kl. 03.46 skrev Stefan Monnier : > Not all of it, no. Only the part which makes (&rest) acceptable. Patch. --Apple-Mail=_2479D273-E40F-4359-9E01-E7797AE71FEE Content-Disposition: attachment; filename=0001-Renege-on-anonymous-rest-bug-50268-bug-50720.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-Renege-on-anonymous-rest-bug-50268-bug-50720.patch" Content-Transfer-Encoding: quoted-printable =46rom=20c69c3b8c97e9aa9ff350b009c06b4e3e8842ba83=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20= =0ADate:=20Thu,=2023=20Sep=202021=2012:43:41=20+0200=0A= Subject:=20[PATCH]=20Renege=20on=20anonymous=20&rest=20(bug#50268,=20= bug#50720)=0A=0AAllowing=20&rest=20without=20a=20variable=20name=20= following=20turned=20out=20not=20to=20be=0Avery=20useful,=20and=20it=20= never=20worked=20properly.=20=20Disallow=20it.=0A=0A*=20= lisp/emacs-lisp/bytecomp.el=20(byte-compile-check-lambda-list):=0A*=20= src/eval.c=20(funcall_lambda):=0ASignal=20error=20for=20&rest=20without=20= variable=20name.=0A*=20doc/lispref/functions.texi=20(Argument=20List):=20= Adjust=20manual.=0A*=20etc/NEWS=20(file):=20Announce.=0A*=20= test/src/eval-tests.el=20(eval-tests--bugs-24912-and-24913):=0AExtend=20= test,=20also=20checking=20with=20and=20without=20lexical=20binding.=0A= (eval-tests-accept-empty-optional-rest):=20Reduce=20to...=0A= (eval-tests-accept-empty-optional):=20...this,=20again=20checking=0Awith=20= and=20without=20lexical=20binding.=0A---=0A=20doc/lispref/functions.texi=20= =20|=20=202=20+-=0A=20etc/NEWS=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20|=20=207=20+++++=0A=20lisp/emacs-lisp/bytecomp.el=20|=20=20= 2=20++=0A=20src/eval.c=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20|=20=209=20++++--=0A=20test/src/eval-tests.el=20=20=20=20=20=20|=2057=20= +++++++++++++++++++++----------------=0A=205=20files=20changed,=2049=20= insertions(+),=2028=20deletions(-)=0A=0Adiff=20--git=20= a/doc/lispref/functions.texi=20b/doc/lispref/functions.texi=0Aindex=20= 77d1465c87..c856557c3c=20100644=0A---=20a/doc/lispref/functions.texi=0A= +++=20b/doc/lispref/functions.texi=0A@@=20-378,7=20+378,7=20@@=20= Argument=20List=0A=20@group=0A=20(@var{required-vars}@dots{}=0A=20=20= @r{[}&optional=20@r{[}@var{optional-vars}@dots{}@r{]}@r{]}=0A-=20= @r{[}&rest=20@r{[}@var{rest-var}@r{]}@r{]})=0A+=20@r{[}&rest=20= @var{rest-var}@r{]})=0A=20@end=20group=0A=20@end=20example=0A=20=0Adiff=20= --git=20a/etc/NEWS=20b/etc/NEWS=0Aindex=20fb7a7f628a..cf3f90304d=20= 100644=0A---=20a/etc/NEWS=0A+++=20b/etc/NEWS=0A@@=20-3215,6=20+3215,13=20= @@=20local=20variable=20would=20not=20be=20heeded.=20=20This=20has=20now=20= changed,=20and=20a=20file=0A=20with=20a=20'lexical-binding'=20cookie=20= is=20always=20heeded.=20=20To=20revert=20to=20the=0A=20old=20behavior,=20= set=20'permanently-enabled-local-variables'=20to=20nil.=0A=20=0A++++=0A= +**=20'&rest'=20in=20argument=20lists=20must=20always=20be=20followed=20= by=20a=20variable=20name.=0A+Omitting=20the=20variable=20name=20after=20= '&rest'=20was=20previously=20tolerated=20in=0A+some=20cases=20but=20not=20= consistently=20so;=20it=20could=20lead=20to=20crashes=20or=0A+outright=20= wrong=20results.=20=20Since=20the=20utility=20was=20marginal=20at=20= best,=20it=20is=0A+now=20an=20error=20to=20omit=20the=20variable.=0A+=0A=20= ---=0A=20**=20'kill-all-local-variables'=20has=20changed=20how=20it=20= handles=20non-symbol=20hooks.=0A=20The=20function=20is=20documented=20to=20= eliminate=20all=20buffer-local=20bindings=0Adiff=20--git=20= a/lisp/emacs-lisp/bytecomp.el=20b/lisp/emacs-lisp/bytecomp.el=0Aindex=20= be74195778..d7da7a2149=20100644=0A---=20a/lisp/emacs-lisp/bytecomp.el=0A= +++=20b/lisp/emacs-lisp/bytecomp.el=0A@@=20-2930,6=20+2930,8=20@@=20= byte-compile-check-lambda-list=0A=20=09=09=20=20=20= (macroexp--const-symbol-p=20arg=20t))=0A=20=09=20=20=20=20=20=20=20= (error=20"Invalid=20lambda=20variable=20%s"=20arg))=0A=20=09=20=20=20=20=20= =20((eq=20arg=20'&rest)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (unless=20(cdr=20list)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(error=20"&rest=20without=20variable=20name"))=0A=20=09=20=20=20=20=20= =20=20(when=20(cddr=20list)=0A=20=09=09=20(error=20"Garbage=20following=20= &rest=20VAR=20in=20lambda-list"))=0A=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20(when=20(memq=20(cadr=20list)=20'(&optional=20&rest))=0Adiff=20= --git=20a/src/eval.c=20b/src/eval.c=0Aindex=202bb7cfe600..66d34808f8=20= 100644=0A---=20a/src/eval.c=0A+++=20b/src/eval.c=0A@@=20-3245,6=20= +3245,7=20@@=20funcall_lambda=20(Lisp_Object=20fun,=20ptrdiff_t=20nargs,=0A= =20=20=20=20=20emacs_abort=20();=0A=20=0A=20=20=20i=20=3D=20optional=20=3D= =20rest=20=3D=200;=0A+=20=20bool=20previous_rest=20=3D=20false;=0A=20=20=20= for=20(;=20CONSP=20(syms_left);=20syms_left=20=3D=20XCDR=20(syms_left))=0A= =20=20=20=20=20{=0A=20=20=20=20=20=20=20maybe_quit=20();=0A@@=20-3255,13=20= +3256,14=20@@=20funcall_lambda=20(Lisp_Object=20fun,=20ptrdiff_t=20= nargs,=0A=20=0A=20=20=20=20=20=20=20if=20(EQ=20(next,=20Qand_rest))=0A=20= =20=20=20=20=20=20=20=20{=0A-=20=20=20=20=20=20=20=20=20=20if=20(rest)=0A= +=20=20=20=20=20=20=20=20=20=20if=20(rest=20||=20previous_rest)=0A=20=20=20= =20=20=20=20=20=20=20=20=20=20xsignal1=20(Qinvalid_function,=20fun);=0A=20= =20=20=20=20=20=20=20=20=20=20rest=20=3D=201;=0A+=09=20=20previous_rest=20= =3D=20true;=0A=20=20=20=20=20=20=20=20=20}=0A=20=20=20=20=20=20=20else=20= if=20(EQ=20(next,=20Qand_optional))=0A=20=20=20=20=20=20=20=20=20{=0A-=20= =20=20=20=20=20=20=20=20=20if=20(optional=20||=20rest)=0A+=20=20=20=20=20= =20=20=20=20=20if=20(optional=20||=20rest=20||=20previous_rest)=0A=20=20=20= =20=20=20=20=20=20=20=20=20=20xsignal1=20(Qinvalid_function,=20fun);=0A=20= =20=20=20=20=20=20=20=20=20=20optional=20=3D=201;=0A=20=20=20=20=20=20=20= =20=20}=0A@@=20-3287,10=20+3289,11=20@@=20funcall_lambda=20(Lisp_Object=20= fun,=20ptrdiff_t=20nargs,=0A=20=09=20=20else=0A=20=09=20=20=20=20/*=20= Dynamically=20bind=20NEXT.=20=20*/=0A=20=09=20=20=20=20specbind=20(next,=20= arg);=0A+=09=20=20previous_rest=20=3D=20false;=0A=20=09}=0A=20=20=20=20=20= }=0A=20=0A-=20=20if=20(!NILP=20(syms_left))=0A+=20=20if=20(!NILP=20= (syms_left)=20||=20previous_rest)=0A=20=20=20=20=20xsignal1=20= (Qinvalid_function,=20fun);=0A=20=20=20else=20if=20(i=20<=20nargs)=0A=20=20= =20=20=20xsignal2=20(Qwrong_number_of_arguments,=20fun,=20make_fixnum=20= (nargs));=0Adiff=20--git=20a/test/src/eval-tests.el=20= b/test/src/eval-tests.el=0Aindex=20b2b7dfefda..3c3e703341=20100644=0A---=20= a/test/src/eval-tests.el=0A+++=20b/test/src/eval-tests.el=0A@@=20-39,31=20= +39,40=20@@=20byte-compile-debug=0A=20(ert-deftest=20= eval-tests--bugs-24912-and-24913=20()=0A=20=20=20"Check=20that=20Emacs=20= doesn't=20accept=20weird=20argument=20lists.=0A=20Bug#24912=20and=20= Bug#24913."=0A-=20=20(dolist=20(args=20'((&rest=20&optional)=0A-=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(&rest=20a=20&optional)=20= (&rest=20&optional=20a)=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20(&optional=20&optional)=20(&optional=20&optional=20a)=0A-=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20(&optional=20a=20&optional=20= b)=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(&rest=20= &rest)=20(&rest=20&rest=20a)=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20(&rest=20a=20&rest=20b)))=0A-=20=20=20=20(should-error=20= (eval=20`(funcall=20(lambda=20,args))=20t)=20:type=20'invalid-function)=0A= -=20=20=20=20(should-error=20(byte-compile-check-lambda-list=20args))=0A= -=20=20=20=20(let=20((byte-compile-debug=20t))=0A-=20=20=20=20=20=20= (ert-info=20((format=20"bytecomp:=20args=20=3D=20%S"=20args))=0A-=20=20=20= =20=20=20=20(should-error=20(eval=20`(byte-compile=20(lambda=20,args))=20= t))))))=0A-=0A-(ert-deftest=20eval-tests-accept-empty-optional-rest=20()=0A= -=20=20"Check=20that=20Emacs=20accepts=20empty=20&optional=20and=20&rest=20= arglists.=0A+=20=20(dolist=20(lb=20'(t=20false))=0A+=20=20=20=20= (ert-info=20((prin1-to-string=20lb)=20:prefix=20"lexical-binding:=20")=0A= +=20=20=20=20=20=20(let=20((lexical-binding=20lb))=0A+=20=20=20=20=20=20=20= =20(dolist=20(args=20'((&rest=20&optional)=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(&rest=20a=20&optional)=20= (&rest=20&optional=20a)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20(&optional=20&optional)=20(&optional=20&optional=20= a)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(&optional=20a=20&optional=20b)=0A+=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20(&rest=20&rest)=20(&rest=20&rest=20= a)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20(&rest=20a=20&rest=20b)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20(&rest)=20(&optional=20&rest)=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20))=0A+=20=20=20=20= =20=20=20=20=20=20(ert-info=20((prin1-to-string=20args)=20:prefix=20= "args:=20")=0A+=20=20=20=20=20=20=20=20=20=20=20=20(should-error=0A+=20=20= =20=20=20=20=20=20=20=20=20=20=20(eval=20`(funcall=20(lambda=20,args))=20= lb)=20:type=20'invalid-function)=0A+=20=20=20=20=20=20=20=20=20=20=20=20= (should-error=20(byte-compile-check-lambda-list=20args))=0A+=20=20=20=20=20= =20=20=20=20=20=20=20(let=20((byte-compile-debug=20t))=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20(should-error=20(eval=20`(byte-compile=20= (lambda=20,args))=20lb)))))))))=0A+=0A+(ert-deftest=20= eval-tests-accept-empty-optional=20()=0A+=20=20"Check=20that=20Emacs=20= accepts=20empty=20&optional=20arglists.=0A=20Bug#24912."=0A-=20=20= (dolist=20(args=20'((&optional)=20(&rest)=20(&optional=20&rest)=0A-=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(&optional=20&rest=20a)=20= (&optional=20a=20&rest)))=0A-=20=20=20=20(let=20((fun=20`(lambda=20,args=20= 'ok)))=0A-=20=20=20=20=20=20(ert-info=20("eval")=0A-=20=20=20=20=20=20=20= =20(should=20(eq=20(funcall=20(eval=20fun=20t))=20'ok)))=0A-=20=20=20=20=20= =20(ert-info=20("byte=20comp=20check")=0A-=20=20=20=20=20=20=20=20= (byte-compile-check-lambda-list=20args))=0A-=20=20=20=20=20=20(ert-info=20= ("bytecomp")=0A-=20=20=20=20=20=20=20=20(let=20((byte-compile-debug=20= t))=0A-=20=20=20=20=20=20=20=20=20=20(should=20(eq=20(funcall=20= (byte-compile=20fun))=20'ok)))))))=0A+=20=20(dolist=20(lb=20'(t=20= false))=0A+=20=20=20=20(ert-info=20((prin1-to-string=20lb)=20:prefix=20= "lexical-binding:=20")=0A+=20=20=20=20=20=20(let=20((lexical-binding=20= lb))=0A+=20=20=20=20=20=20=20=20(dolist=20(args=20'((&optional)=20= (&optional=20&rest=20a)))=0A+=20=20=20=20=20=20=20=20=20=20(ert-info=20= ((prin1-to-string=20args)=20:prefix=20"args:=20")=0A+=20=20=20=20=20=20=20= =20=20=20=20=20(let=20((fun=20`(lambda=20,args=20'ok)))=0A+=20=20=20=20=20= =20=20=20=20=20=20=20=20=20(ert-info=20("eval")=0A+=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20(should=20(eq=20(funcall=20(eval=20fun=20lb))=20= 'ok)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20(ert-info=20("byte=20= comp=20check")=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (byte-compile-check-lambda-list=20args))=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20(ert-info=20("bytecomp")=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20(let=20((byte-compile-debug=20t))=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20(should=20(eq=20(funcall=20= (byte-compile=20fun))=20'ok)))))))))))=0A=20=0A=20=0A=20(dolist=20(form=20= '(let=20let*))=0A--=20=0A2.21.1=20(Apple=20Git-122.3)=0A=0A= --Apple-Mail=_2479D273-E40F-4359-9E01-E7797AE71FEE-- From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 23 17:03:19 2021 Received: (at 50268) by debbugs.gnu.org; 23 Sep 2021 21:03:20 +0000 Received: from localhost ([127.0.0.1]:56002 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mTVsF-00040N-Me for submit@debbugs.gnu.org; Thu, 23 Sep 2021 17:03:19 -0400 Received: from quimby.gnus.org ([95.216.78.240]:47758) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mTVsE-000406-1O for 50268@debbugs.gnu.org; Thu, 23 Sep 2021 17:03:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID :In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To: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=RpyQvdrrLOiTsHsMeqxww7y+/nd18RFvwe+jkrKj5is=; b=KaTxBs3GjgYqFODAisQJ9ib5hY c3jBqqMt15rQLjC/Fi2DrQCfwq7Fn5GYVvq7Cip++/CL2tE6o1sov0NUcYwwqXG3nQjiryQ04EM9J thRqHnxYwLDJjS8QS3F3wXltgDpLKguD+HhRXu7H6MS9hOb4vhFss/7yzcG3c6FL1G0A=; Received: from [84.212.220.105] (helo=elva) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mTVs1-0006pn-Io; Thu, 23 Sep 2021 23:03:08 +0200 From: Lars Ingebrigtsen To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation References: <87mto529jd.fsf@gnus.org> <9CF7F0E1-3C92-4F79-B3F3-E51E0E2D43C3@acm.org> <85h7edn9dn.fsf@gmail.com> <83bl4lyfv8.fsf@gnu.org> <83zgs5w4gm.fsf@gnu.org> X-Now-Playing: Magnus Granberg & Skogen's _Let Pass My Weary Guiltless Ghost_: "Let Pass My Weary Guiltless Ghost" Date: Thu, 23 Sep 2021 23:03:04 +0200 In-Reply-To: ("Mattias =?utf-8?Q?Engdeg=C3=A5rd=22's?= message of "Thu, 23 Sep 2021 13:09:02 +0200") Message-ID: <87fstvxawn.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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 @@CONTACT_ADDRESS@@ for details. Content preview: Mattias EngdegÃ¥rd writes: > Allowing &rest without a variable name following turned out not to be > very useful, and it never worked properly. Disallow it. Makes sense to me. Since it's that non-invasive, I think it'd be fine to push to Emacs 28. Perhaps Eli has a different opinion, though. Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50268 Cc: Eli Zaretskii , Stefan Monnier , 50268@debbugs.gnu.org, Noam Postavsky 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: -3.3 (---) Mattias Engdeg=C3=A5rd writes: > Allowing &rest without a variable name following turned out not to be > very useful, and it never worked properly. Disallow it. Makes sense to me. Since it's that non-invasive, I think it'd be fine to push to Emacs 28. Perhaps Eli has a different opinion, though. --=20 (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Fri Sep 24 02:07:17 2021 Received: (at 50268) by debbugs.gnu.org; 24 Sep 2021 06:07:17 +0000 Received: from localhost ([127.0.0.1]:56492 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mTeMf-0000Am-1n for submit@debbugs.gnu.org; Fri, 24 Sep 2021 02:07:17 -0400 Received: from eggs.gnu.org ([209.51.188.92]:38620) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mTeMc-0000AV-8Y for 50268@debbugs.gnu.org; Fri, 24 Sep 2021 02:07:15 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:44414) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mTeMV-0000CV-Vu; Fri, 24 Sep 2021 02:07:07 -0400 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:1211 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mTeMV-0000c9-IU; Fri, 24 Sep 2021 02:07:07 -0400 Date: Fri, 24 Sep 2021 09:07:02 +0300 Message-Id: <83mto2tsl5.fsf@gnu.org> From: Eli Zaretskii To: Lars Ingebrigtsen In-Reply-To: <87fstvxawn.fsf@gnus.org> (message from Lars Ingebrigtsen on Thu, 23 Sep 2021 23:03:04 +0200) Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation References: <87mto529jd.fsf@gnus.org> <9CF7F0E1-3C92-4F79-B3F3-E51E0E2D43C3@acm.org> <85h7edn9dn.fsf@gmail.com> <83bl4lyfv8.fsf@gnu.org> <83zgs5w4gm.fsf@gnu.org> <87fstvxawn.fsf@gnus.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50268 Cc: mattiase@acm.org, monnier@iro.umontreal.ca, 50268@debbugs.gnu.org, npostavs@gmail.com 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: -3.3 (---) > From: Lars Ingebrigtsen > Cc: Stefan Monnier , Eli Zaretskii > , Noam Postavsky , > 50268@debbugs.gnu.org > Date: Thu, 23 Sep 2021 23:03:04 +0200 > > Mattias EngdegÃ¥rd writes: > > > Allowing &rest without a variable name following turned out not to be > > very useful, and it never worked properly. Disallow it. > > Makes sense to me. Since it's that non-invasive, I think it'd be fine > to push to Emacs 28. Perhaps Eli has a different opinion, though. Let's do it now. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Fri Sep 24 20:51:31 2021 Received: (at 50268) by debbugs.gnu.org; 25 Sep 2021 00:51:31 +0000 Received: from localhost ([127.0.0.1]:59611 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mTvud-0000T5-Ns for submit@debbugs.gnu.org; Fri, 24 Sep 2021 20:51:31 -0400 Received: from quimby.gnus.org ([95.216.78.240]:33252) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mTvuc-0000So-K4 for 50268@debbugs.gnu.org; Fri, 24 Sep 2021 20:51:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References: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=o5/GgZR7qVgimDa/MyCfC7bic27VumbNtZOXKyYMaJE=; b=udhVxS9lrZq+7u8QylTUsymsPb PT7CI/aKgbtPY6yufEaPe+b22PTj+Rms9HCKjqrS0yFBRlFuOHqGgAfCfxeudPhH/JG/9AjujnsIQ f0DD338VqDRjnN4Nt8aEvJtQBpaGcYFXnpdmSoILROovsKIWKI2Fwsxl2F/Z56Z+/SVc=; Received: from [84.212.220.105] (helo=elva) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mTvuS-0007ZT-47; Sat, 25 Sep 2021 02:51:22 +0200 From: Lars Ingebrigtsen To: Eli Zaretskii Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation References: <87mto529jd.fsf@gnus.org> <9CF7F0E1-3C92-4F79-B3F3-E51E0E2D43C3@acm.org> <85h7edn9dn.fsf@gmail.com> <83bl4lyfv8.fsf@gnu.org> <83zgs5w4gm.fsf@gnu.org> <87fstvxawn.fsf@gnus.org> <83mto2tsl5.fsf@gnu.org> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAAAAAByaaZbAAAAAXNSR0IArs4c6QAAAAJiS0dE AP+Hj8y/AAAACXBIWXMAAAsSAAALEgHS3X78AAAAB3RJTUUH5QkZACQX2Gc+lAAAAJhJREFUSMft k9ENgCAMRIGwkqPclF3KUfzBQC3aw/ihwX4R0tdryxHXMBZpMH9OIAeUk3BAXOqZQlqgIXBaQQF7 BjolyKFhLrRCCGKSRPNDa0WnJSgBsV2lXpWrgZyWrETml4R+Sx7Gb6lgiTEQGo3jw7nxwh9344tS UU3MKTSmJxXqQzw/tGgBFzDOcRUwChxjSvP9wEeBDeQcFNLrTcmuAAAAJXRFWHRkYXRlOmNyZWF0 ZQAyMDIxLTA5LTI1VDAwOjM2OjIzKzAwOjAwjKPZmAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0w OS0yNVQwMDozNjoyMyswMDowMP3+YSQAAAA4dEVYdGljYzpjb3B5cmlnaHQAQ29weXJpZ2h0IChj KSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55+Vd5NwAAACF0RVh0aWNjOmRlc2NyaXB0aW9u AHNSR0IgSUVDNjE5NjYtMi4xV63aRwAAACZ0RVh0aWNjOm1hbnVmYWN0dXJlcgBJRUMgaHR0cDov L3d3dy5pZWMuY2gcfwBMAAAAN3RFWHRpY2M6bW9kZWwASUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJH QiBjb2xvdXIgc3BhY2UgLSBzUkdCRFNIqQAAAABJRU5ErkJggg== X-Now-Playing: Lost Girls's _Menneskekollektivet_: "Love, Lovers" Date: Sat, 25 Sep 2021 02:51:13 +0200 In-Reply-To: <83mto2tsl5.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 24 Sep 2021 09:07:02 +0300") Message-ID: <87bl4htr3y.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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 @@CONTACT_ADDRESS@@ for details. Content preview: Eli Zaretskii writes: >> Makes sense to me. Since it's that non-invasive, I think it'd be fine >> to push to Emacs 28. Perhaps Eli has a different opinion, though. > > Let's do it now. Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 50268 Cc: mattiase@acm.org, monnier@iro.umontreal.ca, 50268@debbugs.gnu.org, npostavs@gmail.com 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: -3.3 (---) Eli Zaretskii writes: >> Makes sense to me. Since it's that non-invasive, I think it'd be fine >> to push to Emacs 28. Perhaps Eli has a different opinion, though. > > Let's do it now. OK, Mattias, go ahead and push. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Sat Sep 25 14:37:23 2021 Received: (at 50268-done) by debbugs.gnu.org; 25 Sep 2021 18:37:23 +0000 Received: from localhost ([127.0.0.1]:34717 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mUCY7-0002gd-Jm for submit@debbugs.gnu.org; Sat, 25 Sep 2021 14:37:23 -0400 Received: from mail1435c50.megamailservers.eu ([91.136.14.35]:56934 helo=mail263c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mUCY5-0002gP-I4 for 50268-done@debbugs.gnu.org; Sat, 25 Sep 2021 14:37:22 -0400 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1632595035; bh=nNf1e8e7w3NG8yyzPzrbjyGCyEz/8HvzQ8uheN7bitI=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=Xp7rPQYU8owSd2DpLsBH0SDb5krK5dFgTOkwroKj1k0eoPC8DqeWa2MG6/jtlNkzJ nm38zu1o0MgYGOsYk7WwC5qEcnYEbasix9WnAOzzWPggwL7uQ+mM3Wskqx3N4jEcye mNQIvWtaPWD/zQ/F7y7D0T+QKsj5gAUKNoqETXqE= Feedback-ID: mattiase@acm.or Received: from [192.168.0.4] (c188-150-171-71.bredband.tele2.se [188.150.171.71]) (authenticated bits=0) by mail263c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 18PIbCJC024978; Sat, 25 Sep 2021 18:37:13 +0000 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.21\)) Subject: Re: bug#50268: 28.0.50; Assertion warning during native compilation From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: <83mto2tsl5.fsf@gnu.org> Date: Sat, 25 Sep 2021 20:37:11 +0200 Content-Transfer-Encoding: 7bit Message-Id: <09E998E0-89D9-4782-AC4B-F415E3F3EE5B@acm.org> References: <87mto529jd.fsf@gnus.org> <9CF7F0E1-3C92-4F79-B3F3-E51E0E2D43C3@acm.org> <85h7edn9dn.fsf@gmail.com> <83bl4lyfv8.fsf@gnu.org> <83zgs5w4gm.fsf@gnu.org> <87fstvxawn.fsf@gnus.org> <83mto2tsl5.fsf@gnu.org> To: Eli Zaretskii X-Mailer: Apple Mail (2.3445.104.21) X-CTCH-RefID: str=0001.0A742F23.614F6C5A.0052, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.4 cv=TZ71CTch c=1 sm=1 tr=0 ts=614f6c5b a=SF+I6pRkHZhrawxbOkkvaA==:117 a=SF+I6pRkHZhrawxbOkkvaA==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10 a=mDV3o1hIAAAA:8 a=cGI6yZoNB58yA5sgtVkA:9 a=CjuIK1q_8ugA:10 a=ncZ9vwaUYPMA:10 a=_FVE-zBwftR9WsbkzFJk:22 X-Origin-Country: SE X-Spam-Score: 1.4 (+) 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: 24 sep. 2021 kl. 08.07 skrev Eli Zaretskii : > Let's do it now. Thank you, pushed to master. Closing. Content analysis details: (1.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.4 KHOP_HELO_FCRDNS Relay HELO differs from its IP's reverse DNS X-Debbugs-Envelope-To: 50268-done Cc: Lars Ingebrigtsen , Stefan Monnier , 50268-done@debbugs.gnu.org, Noam Postavsky 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: -0.0 (/) 24 sep. 2021 kl. 08.07 skrev Eli Zaretskii : > Let's do it now. Thank you, pushed to master. Closing. From unknown Wed Jun 18 23:08:13 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 24 Oct 2021 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator