[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#25280: 25.1; define-inline doesn't support &rest
From: |
Stefan Monnier |
Subject: |
bug#25280: 25.1; define-inline doesn't support &rest |
Date: |
Wed, 28 Dec 2016 22:25:40 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) |
> I misunderstood no support for `,@' implied `. ,'.
No: I can turn
(a b c . ,d)
into
(apply #'a b c d)
but doing that for
(a b ,@c d)
is more cumbersome.
> Good to know it is not the case. My experiment seems to suggest that
> inline-letevals is only needed for variables that are eval'd more than
> once.
There are cases where inline-letevals can be skipped, indeed, but
"eval'd only once" is not quite sufficient: you also have to make sure
it's eval'd at least once, and that the various arguments are evaluated
in the right order and before anything else happens (to stay true to
the behavior of a function call).
> I also get compiler warning:
>
> In rest:
> t2.el:4:38:Warning: reference to free variable ‘vector’
>
> where t2.el has the contents:
>
> ;;; -*- lexical-binding: t -*-
>
> (define-inline rest (&rest xs)
> (inline-letevals xs (inline-quote (vector . ,xs))))
I assume this is with an Emacs build that doesn't yet have my recent
patch, right?
Stefan
- bug#25280: 25.1; define-inline doesn't support &rest, Leo Liu, 2016/12/26
- bug#25280: 25.1; define-inline doesn't support &rest, Stefan Monnier, 2016/12/26
- bug#25280: 25.1; define-inline doesn't support &rest, Leo Liu, 2016/12/26
- bug#25280: 25.1; define-inline doesn't support &rest, Stefan Monnier, 2016/12/27
- bug#25280: 25.1; define-inline doesn't support &rest, Stefan Monnier, 2016/12/27
- bug#25280: 25.1; define-inline doesn't support &rest, Leo Liu, 2016/12/28
- bug#25280: 25.1; define-inline doesn't support &rest, Leo Liu, 2016/12/28
- bug#25280: 25.1; define-inline doesn't support &rest,
Stefan Monnier <=
- bug#25280: 25.1; define-inline doesn't support &rest, Leo Liu, 2016/12/29