From: Eli Zaretskii <eliz@gnu.org>
To: Michael Heerdegen <michael_heerdegen@web.de>
Cc: larsi@gnus.org, jonas@bernoul.li, 59328@debbugs.gnu.org
Subject: bug#59328: 29.0.50; `seq-keep' implementation only valid for lists
Date: Fri, 25 Nov 2022 13:55:34 +0200 [thread overview]
Message-ID: <83ilj3uu2x.fsf@gnu.org> (raw)
In-Reply-To: <87wn7jfjrg.fsf@web.de> (message from Michael Heerdegen on Fri, 25 Nov 2022 10:47:31 +0100)
> From: Michael Heerdegen <michael_heerdegen@web.de>
> Cc: 59328@debbugs.gnu.org, larsi@gnus.org, jonas@bernoul.li
> Date: Fri, 25 Nov 2022 10:47:31 +0100
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> > Can tests for this be written in a way that they are only run if the
> > relevant packages are available on the user's system? If so, I'd
> > prefer to have that than no tests at all.
>
> I don't know.
AFAIK, 'require' can return nil if asked not to error out.
> Alternatively we could implement `seq-map' for an ad-hoc defined
> sequence type and test using that type, e.g. this expression:
>
> #+begin_src emacs-lisp
> (progn
> (defvar gensym)
> (let ((gensym (make-symbol "foo")))
> (eval `(cl-defmethod seq-map (function (thing (head ,gensym)))
> (append (list (car thing) (cadr thing)) (seq-map function (cddr thing))))
> t)
> (equal (list gensym nil 4 46)
> (seq-keep (lambda (x) (and (integerp x) (* 2 x)))
> (list gensym nil 2 'x gensym 23)))))
> #+end_src
>
> returns t with my patch installed and nil else and works without relying
> on something external. I'm not sure if defining methods (for seq-map in
> this case) that are globally visible is allowed in tests, so I
> implemented the example above in a way that the change of the generic
> function is not visible from the outside (thus the "secret" gensym).
>
> Would something like that be acceptable?
>
> Sorry for my ignorance, I didn't write much tests before.
Sounds like over-engineering to me.
Like I said: it's your call. If you see too many complications to adding a
test, and my suggestions don't convince you, I won't object to installing
your original proposal without a test.
Thanks.
prev parent reply other threads:[~2022-11-25 11:55 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-17 2:17 bug#59328: 29.0.50; `seq-keep' implementation only valid for lists Michael Heerdegen
2022-11-19 13:12 ` Eli Zaretskii
2022-11-24 13:04 ` Michael Heerdegen
2022-11-24 14:19 ` Eli Zaretskii
2022-11-24 14:26 ` Michael Heerdegen
2022-11-24 15:00 ` Eli Zaretskii
2022-11-24 15:09 ` Michael Heerdegen
2022-11-24 15:15 ` Eli Zaretskii
2022-11-24 15:25 ` Michael Heerdegen
2022-11-24 17:02 ` Eli Zaretskii
2022-11-25 9:47 ` Michael Heerdegen
2022-11-25 11:34 ` Stefan Kangas
2022-11-25 11:55 ` Eli Zaretskii [this message]
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=83ilj3uu2x.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=59328@debbugs.gnu.org \
--cc=jonas@bernoul.li \
--cc=larsi@gnus.org \
--cc=michael_heerdegen@web.de \
/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.