Subject: Re: bug#42147: 28.0.50; pure vs side-effect-free, missing optimizations?

From: Andrea Corallo <[email-masked]>
Date: Wed, 1 Jul 2020 21:31:31 +0000 (UTC)

Mattias Engdegård <[email-masked]> writes:

> More useful would be the ability to constant-fold ash, expt, %, mod and abs for a subset of each respective domain. I can write a patch.

Hi Mattias,

I'm not sure what would be more useful, I guess both are a good thing to
have.  Another reason why I'm interested is that I reuse these
definitions in the native compiler.

> Andrea, I see nothing directly wrong with your patch, but perhaps our messages went past one another since our lists of proposed pure functions differ.

yes that exactly what happen, thanks for looking at it.

I diffed our two lists and this is the results, functions included in
mine but not in your:

consp, hash-table-p, listp, nlistp, not, null, string-lessp, stringp,
symbolp.

functions included in your but not in mine:

characterp, integer-or-marker-p, keywordp, length, number-or-marker-p,
numberp, safe-length, sequencep.

I guess for the most part I can just include the one I've missed.  I'm
not only sure about the one operating on lists like `length' given the
list may be modified in the runtime (?).

I'll update the patch once this point is clarified.

Thanks

  Andrea