Files
emacs/lisp
Paul Eggert 673b1785db Restore traditional lsh behavior on fixnums
* doc/lispref/numbers.texi (Bitwise Operations): Document that
the traditional (lsh A B) behavior is for fixnums, and that it
is an error if A and B are both negative and A is a bignum.
See Bug#32463.
* lisp/subr.el (lsh): New function, moved here from src/data.c.
* src/data.c (ash_lsh_impl): Remove, moving body into Fash
since it’s the only caller now.
(Fash): Check for out-of-range counts.  If COUNT is zero,
return first argument instead of going through libgmp.  Omit
lsh code since lsh is now done in Lisp.  Add code for shifting
fixnums right, to avoid a round trip through libgmp.
(Flsh): Remove; moved to lisp/subr.el.
* test/lisp/international/ccl-tests.el (shift):
Test for traditional lsh behavior, instead of assuming
lsh is like ash when bignums are present.
* test/src/data-tests.el (data-tests-logand)
(data-tests-logior, data-tests-logxor, data-tests-ash-lsh):
New tests.
2018-08-18 15:22:35 -07:00
..
2018-01-01 00:57:59 -08:00
2018-08-15 00:14:41 +02:00
2018-07-24 06:40:58 -07:00
2018-08-11 10:46:02 +03:00
2018-02-17 07:50:28 -08:00
2018-08-14 09:06:43 -07:00
2018-08-15 21:43:03 -04:00
2018-07-09 19:00:43 -07:00
2018-08-10 11:28:40 -07:00
2018-07-20 10:00:32 -07:00
2018-01-01 00:57:59 -08:00
2018-01-01 01:13:04 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-04-14 07:50:45 -07:00
2018-07-28 07:50:36 -07:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-02-17 09:17:28 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-07-18 10:23:20 -04:00
2018-01-01 00:57:59 -08:00
2018-06-19 07:38:47 -07:00
2018-07-13 11:28:16 -04:00
2018-06-19 07:34:07 -07:00
2018-01-01 01:13:04 -08:00
2018-08-04 11:37:39 -04:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-07-07 09:27:44 -07:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-03-16 20:41:17 -04:00
2018-01-01 01:13:04 -08:00
2018-03-04 17:16:39 -08:00
2018-07-09 16:03:49 +02:00
2018-08-16 17:26:37 +02:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 01:13:04 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-04-20 18:55:04 -04:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-05-23 01:35:05 -07:00
2018-01-01 00:57:59 -08:00
2018-04-20 18:55:04 -04:00
2018-01-01 00:57:59 -08:00
2018-01-01 01:13:04 -08:00
2018-08-14 09:06:43 -07:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-05-31 17:14:28 +02:00
2018-01-01 01:13:04 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-05-15 09:09:48 -07:00
2018-08-01 07:33:38 -04:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 01:13:04 -08:00
2018-08-12 09:01:20 -07:00
2018-01-01 00:57:59 -08:00
2018-01-01 01:13:04 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-06-23 07:50:59 -07:00
2018-01-01 01:13:04 -08:00
2018-06-02 10:29:38 -07:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-03-04 18:01:41 -08:00
2018-03-04 18:01:41 -08:00
2018-03-04 18:01:41 -08:00
2018-03-04 18:01:41 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 01:13:04 -08:00
2018-01-01 00:57:59 -08:00
2018-07-23 01:10:07 -07:00
2018-01-01 00:57:59 -08:00
2018-01-01 01:13:04 -08:00
2018-01-01 01:13:04 -08:00
2018-01-01 01:13:04 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 01:13:04 -08:00
2018-01-01 00:57:59 -08:00
2018-03-01 20:28:03 -05:00
2018-07-18 10:23:20 -04:00
2018-08-14 09:06:43 -07:00
2018-07-02 19:19:26 -07:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-08-10 11:37:11 -07:00
2018-01-01 01:13:04 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-04-20 18:55:04 -04:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 00:57:59 -08:00
2018-01-01 01:13:04 -08:00
2018-01-01 00:57:59 -08:00

This directory contains source code for the parts of Emacs that are
written in Emacs Lisp.  *.el files are Emacs Lisp source, and the
corresponding *.elc files are byte-compiled versions.  Byte-compiled
files are architecture-independent.

The term subdirectory contains Lisp files that customize Emacs for
certain terminal types.  When Emacs starts, it checks the TERM
environment variable to get the terminal type and loads
'term/${TERM}.el' if it exists.

The other subdirectories hold Lisp packages grouped by their general
purpose.