[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#15122: 24.3.50; [PATCH] byte-compiler warnings about destructive fun
From: |
Drew Adams |
Subject: |
bug#15122: 24.3.50; [PATCH] byte-compiler warnings about destructive functions |
Date: |
Sat, 17 Aug 2013 22:26:16 -0700 (PDT) |
This StackOverflow entry suggested that the Emacs-Lisp byte compiler be
able to warn about the use of functions that are destructive, i.e., can
modify data structures in place:
http://stackoverflow.com/questions/17610046/elisp-destructive-operation-warning
Attached is a patch that provides this, at least a start.
It covers the basic functions that can perform in-place data structure
modification: lists, strings, vectors and other arrays, symbol properties.
These are generally the functions identified as destructive or modifying
in the Elisp manual.
A comment in the code identifies some other possible candidates that
occurred to me while browsing the manual. Modify the list of functions
as you see fit (variable `byte-compile-destructive-functions').
I'm no expert on some of the data structure implementations, and the
manual is sometimes not so clear about whether destructive modification
occurs. And perhaps there are cases where although the modification is
destructive at an implementation level the user need not be concerned
about that level, so such functions should not be included. Dunno.
Perhaps also something could be done in the future wrt recognition of
particular cases for `setf' modification.
In GNU Emacs 24.3.50.1 (i686-pc-mingw32)
of 2013-08-07 on ODIEONE
Bzr revision: 113750 lekktu@gmail.com-20130808011911-0jzpc9xuncegg6x9
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
`configure --prefix=/c/Devel/emacs/binary --enable-checking=yes,glyphs
CFLAGS=-O0 -g3 LDFLAGS=-Lc:/Devel/emacs/lib
CPPFLAGS=-Ic:/Devel/emacs/include'
bytecomp-2013-08-17a.patch
Description: Binary data
- bug#15122: 24.3.50; [PATCH] byte-compiler warnings about destructive functions,
Drew Adams <=
- bug#15122: 24.3.50; [PATCH] byte-compiler warnings about destructive functions, Richard Stallman, 2013/08/18
- bug#15122: 24.3.50; [PATCH] byte-compiler warnings about destructive functions, Stefan Monnier, 2013/08/18
- bug#15122: 24.3.50; [PATCH] byte-compiler warnings about destructive functions, Drew Adams, 2013/08/19
- bug#15122: 24.3.50; [PATCH] byte-compiler warnings about destructive functions, Stefan Monnier, 2013/08/20
- bug#15122: 24.3.50; [PATCH] byte-compiler warnings about destructive functions, Drew Adams, 2013/08/20
- bug#15122: 24.3.50; [PATCH] byte-compiler warnings about destructive functions, Stefan Monnier, 2013/08/20
- bug#15122: 24.3.50; [PATCH] byte-compiler warnings about destructive functions, Drew Adams, 2013/08/20
- bug#15122: 24.3.50; [PATCH] byte-compiler warnings about destructive functions, Leo Liu, 2013/08/20
- bug#15122: 24.3.50; [PATCH] byte-compiler warnings about destructive functions, Stefan Monnier, 2013/08/21
- bug#15122: 24.3.50; [PATCH] byte-compiler warnings about destructive functions, Richard Stallman, 2013/08/21