[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#60974: 30.0.50; byte-compile-preprocess mutates self evaluating form
From: |
Stefan Monnier |
Subject: |
bug#60974: 30.0.50; byte-compile-preprocess mutates self evaluating forms in expanded macro bodies |
Date: |
Tue, 31 Jan 2023 09:34:50 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
>> > Ah, right. Theother way I could think of a fix is setq-ing `form`
>> > to a
>> > shallow copy of the original form, with only the place(s) changed.
>> > This
>> > patch tries to do that by using `pcase-let` to destructure forms.
>>
>> Hmm... yes, that's closer. It's pretty ugly, tho.
>> Yet it's hard to make it less ugly here because the
>> `cconv-freevars-alist` really depends on `eq` equality.
>>
>> Maybe we should pass `cif` to `cconv--convert-function` (or maybe
>> even
>> move most of that `cconv--interactive-form-funs`-handling to that
>> function) and arrange for that function to do the
>> "non-side-effecting-equivalent-of" (setf (cadr (car bf)) form)?
>>
>>
>> Stefan
>>
>
> I tried to shift the `cif` related bits to `cconc--convert-function`,
> but my understanding of cconv.el isn't that great, so I wasn't
> successful at doing that :( Should I add a TODO to the change for the
> future?
Yes, please,
Stefan
bug#60974: [PATCH] 30.0.50; byte-compile-preprocess mutates self evaluating forms in expanded macro bodies, Vibhav Pant, 2023/01/20