all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Andrea Corallo <akrl@sdf.org>
To: Alan Mackenzie <acm@muc.de>
Cc: Lars Ingebrigtsen <larsi@gnus.org>, emacs-devel@gnu.org
Subject: Re: make check error in native compiler resulting from commit 1cd188799f86bcb13ad76e82e3436b1b7e9f9e9f on 2021-12-30.
Date: Tue, 01 Feb 2022 17:47:21 +0000	[thread overview]
Message-ID: <xjfsft2v5qu.fsf@ma.sdf.org> (raw)
In-Reply-To: <YflrRJZLJFpCC9wB@ACM> (Alan Mackenzie's message of "Tue, 1 Feb 2022 17:17:56 +0000")

Alan Mackenzie <acm@muc.de> writes:

> Hello, Andrea.
>
> In that patch, I made the following change so that a comparison
> involving Qnil would not go through the (newly) expensive emit_EQ:
>
> diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
> index 0a10505257..8581fe8066 100644
> --- a/lisp/emacs-lisp/comp.el
> +++ b/lisp/emacs-lisp/comp.el
> @@ -1829,9 +1829,7 @@ comp-limplify-lap-inst
>        (byte-listp auto)
>        (byte-eq auto)
>        (byte-memq auto)
> -      (byte-not
> -       (comp-emit-set-call (comp-call 'eq (comp-slot-n (comp-sp))
> -                                      (make-comp-mvar :constant nil))))
> +      (byte-not null)
>        (byte-car auto)
>        (byte-cdr auto)
>        (byte-cons auto)
>
> ..  Since then, there has been a mismatch in
> test/lisp/emacs-lisp/comp-tests.log, comp-tests-ret-type-spec-55, where
> the returned ret-type has now become t, whereas previously it was (not
> integer).
>
> I don't really understand what ret-type is.  The mismatch between what
> this ret-type "should" be, and what it now is doesn't seem to be causing
> any problems.  Would you please say whether this is, in fact, true.
> Would you also please advise on the best way to fix this bug in make
> check.

Hi Alan,

ret-type is the return type of the function that the forward propagation
engine tries to compute.

============

(defun foo (x)
  (unless (integerp x)
    x))
(native-compile #'foo)
(subr-type (symbol-function #'foo))
=>
(function (t) (not integer))

;; OR

(subr-type (native-compile '(λ (x)
                              (unless (integerp x)
                                x))))
=>
(function (t) (not integer))
==========

Those two are probably now returning just:

(function (t) t)

I guess the fix should be around `comp-add-cond-cstrs' or
`comp-add-cond-cstrs-simple'.  I'll try to have a look later or tomorrow
(unless you are so curious you like to take the task ;)

Thanks!

  Andrea



  reply	other threads:[~2022-02-01 17:47 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-01 17:17 make check error in native compiler resulting from commit 1cd188799f86bcb13ad76e82e3436b1b7e9f9e9f on 2021-12-30 Alan Mackenzie
2022-02-01 17:47 ` Andrea Corallo [this message]
2022-02-04 14:11 ` Andrea Corallo
2022-02-04 14:58   ` Andrea Corallo
2022-02-05 15:15     ` Alan Mackenzie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xjfsft2v5qu.fsf@ma.sdf.org \
    --to=akrl@sdf.org \
    --cc=acm@muc.de \
    --cc=emacs-devel@gnu.org \
    --cc=larsi@gnus.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.