aboutsummaryrefslogtreecommitdiffstats
path: root/doc (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' into comment-cachecomment-cacheAlan Mackenzie2017-02-1215-71/+177
|\
| * Change edebug-max-depth from defconst to defcustomGemini Lasswell2017-02-041-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/edebug.el (edebug-max-depth): Add defcustom. (Bug#24713) * etc/NEWS: Mention edebug-max-depth. * doc/lispref/edebug.texi (Checking Whether to Stop): Mention edebug-max-depth and index it. Add cross-references for max-lisp-eval-depth and max-specpdl-size. Co-authored-by: Eli Zaretskii <eliz@gnu.org>
| * Document 'save-some-buffers-default-predicate'Eli Zaretskii2017-02-042-11/+21
| | | | | | | | | | | | * doc/lispref/files.texi (Saving Buffers): * doc/emacs/files.texi (Save Commands): Document save-some-buffers-default-predicate.
| * Make limit on scroll-margin variableNoam Postavsky2017-02-022-4/+23
| | | | | | | | | | | | | | | | | | | | * src/xdisp.c (maximum-scroll-margin): New variable. * lisp/cus-start.el: Make it customizable. * etc/NEWS: Mention it. * doc/emacs/display.texi (Auto Scrolling): * doc/lispref/windows.texi (Textual Scrolling): Document it. * src/window.c (window_scroll_pixel_based): Use it instead of hardcoding division by 4 (Bug #5718).
| * ; Fix recent documentation changesEli Zaretskii2017-02-021-0/+2
| | | | | | | | | | * doc/emacs/search.texi (Other Repeating Search): Index recently introduced variables and faces.
| * Merge from gnulibPaul Eggert2017-02-021-19/+14
| | | | | | | | | | | | | | | | | | | | 2017-01-30 Port to PGI 16.10 x86-64 2017-01-20 time_rz: fix comment typo 2017-01-14 strftime: %z is -00 if unknown This incorporates: * doc/misc/texinfo.tex, lib/c-ctype.h, lib/strftime.c: * lib/time-internal.h, lib/verify.h: Copy from gnulib.
| * Show current line highlighted in *Occur* bufferTino Calancha2017-02-021-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/replace.el (list-matching-lines-current-line-face) (list-matching-lines-jump-to-current-line): New user options. (occur--orig-line, occur--orig-line-str): New variables. (occur, occur-engine): Use them. (occur--final-pos): New variable. (occur-1): Use it. (occur-engine): Idem. Show the current line with 'list-matching-lines-current-line-face'. Set point on the first matching line after the current one. * etc/NEWS: Add entry for the new option.
| * Allow occur command to operate on the regionTino Calancha2017-02-022-10/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | See discussion in: https://lists.gnu.org/archive/html/emacs-devel/2016-12/msg01084.html * lisp/replace.el (occur--region-start, occur--region-end) (occur--matches-threshold): New variables. (occur-engine): Use them. (occur): Idem. Add optional arg REGION; if non-nil occur applies in that region. * doc/lispintro/emacs-lisp-intro.texi (Keybindings): Update manual * doc/emacs/search.texi (Other Repeating Search): Idem. ; etc/NEWS: Add entry for the new feature.
| * Allow C++ nested brace-list-entries to be better indented.Alan Mackenzie2017-02-011-6/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes bug #24431. The key change of this bug fix is correctly analyzing nested brace lists when the opening element stands on the same line as both its introductory brace and an enclosing parameter list parenthesis. * list/progmodes/cc-align.el (c-lineup-under-anchor): New line-up function. * list/progmodes/cc-engine.el (c-looking-at-or-maybe-in-bracelist): Accept the presence of exactly an identifier between an open parenthesis and an open brace as evidence of the brace starting a brace list. (c-looking-at-statement-block): New function, extracted from c-looking-at-inexpr-block. Enhance it to analyze inner blocks recursively when needed. (c-looking-at-inexpr-block): Extract new function (see above) and call it. (c-add-stmt-syntax): Enhance, with new &optional parameter, to supply the prime syntactic symbol with a fixed anchor point. When this is used, restrict all added syntactic symbols to those having an anchor point on the same line. Add, in addition to the current additional symbols, c-brace-list-entry when needed; use c-looking-at-statement-block to determine the latter. (c-guess-basic-syntax, CASE 9D): Use c-add-stmt-syntax rather than just c-add-syntax, to assemble the syntactic context of a 'brace-list-entry, thus getting, possibly, several accompanying syntactic entries. * lisp/progmodes/cc-styles.el (c-style-alist, "gnu" style): New entry for 'brace-list-intro, namely c-lineup-arglist-intro-after-paren. * lisp/progmodes/cc-vars.el (c-offsets-alist): Change the factory default offset for 'brace-list-entry from 0 to c-lineup-under-anchor. * doc/misc/cc-mode.texi (Syntactic Symbols): Amend the definition of brace-list-intro. (Brace List Symbols): Amend the example to show the new analysis of brace lists when the first element comes on the same line as the opening brace. (Misc Line-Up): Document the new line-up function c-lineup-under-anchor.
| * Add new command gnus-article-sort-by-marksLars Ingebrigtsen2017-01-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | * doc/misc/gnus.texi (Summary Sorting): Mention gnus-summary-sort-by-marks. * lisp/gnus/gnus-sum.el (gnus-article-sort-by-marks): New function (bug#23393). (gnus-thread-sort-by-marks): Ditto. (gnus-summary-sort-by-mark): New command suggested by Dan Jacobson. (gnus-summary-mode-map): Add keystroke. (gnus-summary-make-menu-bar): Add to menu.
| * Gnus doc clarificationLars Ingebrigtsen2017-01-261-1/+2
| | | | | | | | | | * doc/misc/gnus.texi (Unavailable Servers): Explicitly say that "unreachable" is the same as disabling it (bug#21630).
| * Document :shell-command in `make-network-process'Lars Ingebrigtsen2017-01-261-0/+8
| | | | | | | | | | | | | | * doc/lispref/processes.texi (Network): Document :shell-command. * lisp/net/network-stream.el (open-network-stream): Document the :shell-command parameter (bug#20651).
| * Replace QUIT with maybe_quitPaul Eggert2017-01-251-3/+3
| | | | | | | | | | | | | | | | There’s no longer need to have QUIT stand for a slug of C statements. Use the more-obvious function-call syntax instead. Also, use true and false when setting immediate_quit. These changes should not affect the generated machine code. * src/lisp.h (QUIT): Remove. All uses replaced by maybe_quit.
| * ; * doc/lispref/lists.texi (List Elements): Fix last change.Eli Zaretskii2017-01-251-7/+7
| |
| * Document how to quote MML tagsLars Ingebrigtsen2017-01-251-0/+4
| | | | | | | | | | * doc/misc/emacs-mime.texi (MML Definition): Mention how to quote MML tags (bug#18881).
| * Fix wrong documentation on nnmairix keystrokesLars Ingebrigtsen2017-01-251-13/+13
| | | | | | | | | | * doc/misc/gnus.texi (nnmairix keyboard shortcuts): The nnmairix commands are on G G, not $ (bug#18260).
| * Move cXXXr and cXXXXr to subr.elMark Oteiza2017-01-252-1/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * etc/NEWS: Mention new core Elisp. * doc/lispref/lists.texi (List Elements): Document and index the new functions. * doc/misc/cl.texi (List Functions): Change "defines" to "aliases". * lisp/subr.el (caaar, caadr, cadar, caddr, cdaar, cdadr, cddar) (cdddr, caaaar caaadr, caadar, caaddr, cadaar, cadadr, caddar): (cadddr, cdaaar, cdaadr, cdadar, cdaddr, cddaar, cddadr, cdddar): (cddddr): New functions. * lisp/emacs-lisp/cl-lib.el (cl-caaar, cl-caadr, cl-cadar, cl-caddr): (cl-cdaar, cl-cdadr, cl-cddar cl-cdddr, cl-caaaar cl-caaadr): (cl-caadar, cl-caaddr, cl-cadaar, cl-cadadr, cl-caddar, cl-cadddr): (cl-cdaaar, cl-cdaadr, cl-cdadar, cl-cdaddr, cl-cddaar, cl-cddadr): (cl-cdddar, cl-cddddr): Alias to new subr functions. * lisp/emacs-lisp/cl.el (cl-unload-function): Remove cXXXr and cXXXXr elements.
| * Revert "nnimap.el: support additional expunge options"Lars Ingebrigtsen2017-01-251-13/+3
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 4e9baea6aba1633074889339dcc7cdc9d73880d3. The patch broke fetching new mail: Debugger entered--Lisp error: (error "Format specifier doesn’t match argument type") format("%d .*\n" (t ("OK" ("HIGHESTMODSEQ" "914696") "Expunge" "completed.") ("VANISHED" "1825937") ("0" "RECENT"))) (looking-at (format "%d .*\n" sequence)) (not (looking-at (format "%d .*\n" sequence))) (progn (while (and (not (bobp)) (progn (forward-line -1) (looking-at "\\*\\|[0-9]+ OK NOOP")))) (not (looking-at (format "%d .*\n" sequence))))
| * nnimap.el: support additional expunge optionsNikolaus Rath2017-01-251-3/+13
| | | | | | | | | | | | | | * lisp/gnus/nnimap.el (nnimap-close-group) (nnimap-request-expire-articles, nnimap-delete-article) (nnimap-request-scan): add new 'never, 'immediate, and 'on-exit settings for nnimap-expunge (bug#20670).
* | Merge branch 'master' into comment-cacheAlan Mackenzie2017-02-05196-207/+303
|\ \ | |/
| * Rudimentary error handling for non-main threadsEli Zaretskii2017-01-181-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/thread.c (last_thread_error): New static variable. (syms_of_threads): Staticpro it. (record_thread_error, Fthread_last_error): New functions. (syms_of_threads): Defsubr Fthread_last_error. * doc/lispref/threads.texi (Basic Thread Functions): Document thread-last-error. * test/src/thread-tests.el (thread-errors, thread-signal-early) (threads-condvar-wait): Test the values returned by thread-last-error.
| * Merge from gnulibPaul Eggert2017-01-101-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | This incorporates: 2017-01-09 maint: time stamp -> timestamp 2017-01-07 stdioext: Port to Minix 3.2 and newer 2017-01-06 glob, intprops, xalloc: work around Clang bug 2017-01-02 revert copyright-year change to synced files * doc/misc/texinfo.tex, lib/fpending.c, lib/intprops.h, lib/mktime.c: * lib/stat-time.h, lib/stdio-impl.h, lib/time.in.h, lib/timespec.h: * lib/utimens.c, lib/xalloc-oversized.h: Copy from gnulib.
| * Add support for Unicode whitespace in [:blank:]Philipp Stephani2017-01-061-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See Bug#25366. * src/character.c (blankp): New function for checking Unicode horizontal whitespace. * src/regex.c (ISBLANK): Use 'blankp' for non-ASCII horizontal whitespace. (BIT_BLANK): New bit for range table. (re_wctype_to_bit, execute_charset): Use it. * test/lisp/subr-tests.el (subr-tests--string-match-p--blank): Add unit test for [:blank:] character class. * test/src/regex-tests.el (test): Adapt unit test. * doc/lispref/searching.texi (Char Classes): Document new Unicode behavior for [:blank:].
| * Update copyright year to 2017 in masterPaul Eggert2017-01-011-1/+1
| | | | | | | | | | | | Run admin/update-copyright in the master branch. This fixes files that were not already fixed in the emacs-25 branch before it was merged here.
| * Merge from origin/emacs-25Paul Eggert2017-01-01196-202/+199
| |\ | | | | | | | | | | | | 2e2a806 Fix copyright years by hand 5badc81 Update copyright year to 2017
| | * Fix copyright years by handPaul Eggert2017-01-0166-67/+67
| | | | | | | | | | | | | | | These are dates that admin/update-copyright did not update, or updated incorrectly.
| | * Update copyright year to 2017Paul Eggert2016-12-31132-135/+132
| | | | | | | | | | | | Run admin/update-copyright.
| * | Merge from origin/emacs-25Paul Eggert2017-01-013-3/+64
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 697167b ; Improve wording of previous change in variables.texi d7973e8 Document 'default-toplevel-value' and 'set-default-toplevel-v... 8b71826 Don't modify minibuffer variables globally 5b5e036 Revert to pre-25.1 behavior in ffap 19994a1 * lisp/ffap.el: Fix obsolete comment referencing ffap-bug. 3ace730 Attempt to fix 64-bit AIX build f69bd79 Clarify usage of 'ediff-cleanup-hook' (Bug#24675) c04ac8a Document that variable binding order is unspecified 272554a * lisp/desktop.el (desktop-buffers-not-to-save): Doc fix. 08de101 Fix M-x hints on Mac port 86a297a Work around reporting a dpi change in apply_xft_settings cf1f985 ; lisp/skeleton.el (skeleton-insert): Fix typo in last change 9e1209d Amend the version number of CC Mode 5.33 -> 5.32.99. Don't m... 88cdf14 Improve skeleton docstrings
| | * ; Improve wording of previous change in variables.texiEli Zaretskii2016-12-271-6/+7
| | | | | | | | | | | | | | | * doc/lispref/variables.texi (Default Value): Improve wording of last change.
| | * Document 'default-toplevel-value' and 'set-default-toplevel-value'Eli Zaretskii2016-12-261-0/+38
| | | | | | | | | | | | | | | * doc/lispref/variables.texi (Default Value): Document 'default-toplevel-value' and 'set-default-toplevel-value'.
| | * Clarify usage of 'ediff-cleanup-hook' (Bug#24675)Philipp Stephani2016-12-231-3/+8
| | | | | | | | | | | | * doc/misc/ediff.texi (Hooks): Clarify usage of 'ediff-cleanup-hook'
| | * Document that variable binding order is unspecifiedPhilipp Stephani2016-12-232-0/+17
| | | | | | | | | | | | | | | | | | * doc/lispref/variables.texi (Local Variables): * cl.texi (Modify Macros): Document that binding order in 'let' and 'cl-letf' is unspecified.
| * | Merge from origin/emacs-25Paul Eggert2017-01-011-1/+5
| |\ \ | | |/ | | | | | | 4179238 Improve documentation of 'w32-scroll-lock-modifier'
| | * Improve documentation of 'w32-scroll-lock-modifier'Eli Zaretskii2016-12-191-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | * doc/emacs/msdos.texi (Windows Keyboard): Document how to set up w32-scroll-lock-modifier so that Scroll Lock toggles the LED. * src/w32fns.c (syms_of_w32fns) <w32-scroll-lock-modifier>: Doc fix. (Bug#25204)
| * | Merge from origin/emacs-25Paul Eggert2017-01-012-1/+14
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9adb101 Document 'describe-fontset' 229315c ; Add missing symbol quoting. 3d94931 Repair desktop restoration on text terminals 43022f9 Ignore forward-sexp-function in js-mode indentation code b19fb49 Improve documentation of 'define-coding-system' 467768f Fix Bug#25162 6db78ae Fix a typo in define-abbrev-table 5f7d906 Bump makeinfo requirement from 4.7 to 4.13 442e2f6 Fixes related to select-enable-clipboard e4ac450 Define struct predicate before acccesors 08decbd Doc fix for vc-git 5531e75 Further improve make-dist checking 953bf67 Improve previous make-dist change 129645a Make make-dist --snapshot do some sanity checks # Conflicts: # lisp/menu-bar.el
| | * Document 'describe-fontset'Eli Zaretskii2016-12-191-0/+7
| | | | | | | | | | | | | | | * doc/emacs/mule.texi (Fontsets): Document 'describe-fontset'. (Bug#25216)
| | * Fix Bug#25162Michael Albinus2016-12-111-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | * doc/emacs/files.texi (Reverting): Document auto-revert-remote-files and auto-revert-verbose. * lisp/autorevert.el (auto-revert-verbose, auto-revert-mode) (auto-revert-tail-mode, global-auto-revert-mode): Fix docstring.
| * | Release Tramp 2.3.1Michael Albinus2016-12-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/misc/trampver.texi: * lisp/net/trampver.el: Change version to "2.3.1". * lisp/net/tramp.el (tramp-eshell-directory-change): Add it to `eshell-mode-hook' but `eshell-first-time-mode-hook'. * lisp/net/tramp-compat.el (tramp-compat-file-name-quoted-p) (tramp-compat-file-name-quote) (tramp-compat-file-name-unquote): Embed them in `eval-and-compile'.
| * | Fix `mail-sources' value of `(group)' in Gnus manual (bug#25275)Bake Timmons2016-12-271-1/+1
| | | | | | | | | | | | | | | | | | * doc/misc/gnus.texi (Mail Source Specifiers): Replace wrong `mail-sources' value of `(group)' in Gnus manual with the correct `((group))' value. (bug#25275) (tiny change)
| * | Fix timezone detection of parse-iso8601-time-stringHong Xu2016-12-241-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * parse-time.el (parse-iso8601-time-string): Fix timezone parsing. Add a doc string. (Bug#25086) * editfns.c (Fdecode-time): Doc fix. * emacs-mime.texi (time-date): Add an example for parse-iso8601-time-string. * parse-time-tests.el (parse-time-tests): Add tests for parse-iso8601-time-string.
* | | Handle changes to the syntax table in the comment-cache branch.Alan Mackenzie2016-12-231-45/+45
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes to a syntax table (by modify-syntax-entry or set-syntax-table) now cause the literal-cache cache(s) in the affected buffer(s) to be emptied, if the change might have an affect on the parsing of comments or strings. * doc/emacs/programs.texi (Left Margin Paren): document that open parens may now be freely written in column 0 inside comments. Explain the changes to the low level SW which make this possible. * src/chartab.c (make-char-table): Initialize any extra slots to nil, rather than the default value for the table's values. (sub_char_table_ref_and_range): Export this function. (char_table_ref_and_range_with_parents): New function. * src/lisp.h: Export sub_char_table_ref_and_range and char_table_ref_and_range_with_parents for chartab.c * src/syntax.c (find_defun_start, old_back_comment, literal-cacheing-flag): remove. (empty_syntax_tables_buffers_literal_caches, LITERAL_MASK, SYNTAB_LITERAL) (literally_different, syntax_table_ranges_differ_literally_p) (least-literal-difference-between-syntax-tables) (syntax-tables-literally-different-p) (syntax_table_value_range_is_interesting_for_literals) (break_off_syntax_tables_literal_relations): New functions/DEFUNs/macros. (set-syntax-table): When the new syntax table is "literally different" from the old, empty the buffer's literal cache. (modify-syntax-entry): if the new syntax descriptor is "literally different" from the old, empty the literal cache in every pertinent buffer. (syntax-table): Add two (char table) extra slots: they hold lists of, respectively, other syntax tables known to be (i) literally the same; (ii) literally different from the current syntax table.
* | ; Spelling fixesPaul Eggert2016-12-222-2/+2
| |
* | Remove gateway methods in TrampMichael Albinus2016-12-211-84/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/misc/tramp.texi (Top, Configuration): Remove section `Gateway methods', insert section `Firewalls' in menu. (History): Gateways are removed now. (Gateway methods): Remove section. (Multi-hops, Traces and Profiles): Don't reference to gateways anymore. (Firewalls): New section. * etc/NEWS: Gateway methods in Tramp have been removed. * lisp/net/tramp.el (tramp-methods): Adapt docstring. (tramp-file-name-port, tramp-accept-process-output): Simplify. * lisp/net/tramp-gw.el: Remove. * lisp/net/tramp-sh.el (tramp-gw-tunnel-method) (tramp-gw-socks-method): Remove declarations. (tramp-methods) <scp, scpx, ssh, sshx, telnet, nc, plink, pscp>: Remove `tramp-gw-args' and `tramp-default-port'. (Bug#18967) (tramp-do-copy-or-rename-file-out-of-band) (tramp-compute-multi-hops, tramp-maybe-open-connection): Remove gateway support. * test/lisp/net/tramp-tests.el (tramp-test03-file-name-defaults): Remove gateway tests.
* | Clarify thread-signal semanticsNoam Postavsky2016-12-121-3/+5
| | | | | | | | | | * doc/lispref/threads.texi (Basic Thread Functions): Explain that the thread will be signaled as soon as possible.
* | Move backtrace to ELisp using a new mapbacktrace primitiveClément Pit--Claudel2016-12-121-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/eval.c (get_backtrace_starting_at, backtrace_frame_apply) (Fmapbacktrace, Fbacktrace_frame_internal): New functions. (get_backtrace_frame, Fbacktrace_debug): Use `get_backtrace_starting_at'. * lisp/subr.el (backtrace--print-frame): New function. (backtrace): Reimplement using `backtrace--print-frame' and `mapbacktrace'. (backtrace-frame): Reimplement using `backtrace-frame--internal'. * lisp/emacs-lisp/debug.el (debugger-setup-buffer): Pass a base to `mapbacktrace' instead of searching for "(debug" in the output of `backtrace'. * test/lisp/subr-tests.el (subr-test-backtrace-simple-tests) (subr-test-backtrace-integration-test): New tests. * doc/lispref/debugging.texi (Internals of Debugger): Document `mapbacktrace' and missing argument BASE of `backtrace-frame'.
* | Obsolete gs.elGlenn Morris2016-12-122-31/+2
| | | | | | | | | | | | | | * lisp/gs.el: Move to lisp/obsolete. (Bug#1524) * doc/lispref/display.texi (Image Formats): Remove postscript. (PostScript Images): Remove section. * doc/lispref/elisp.texi: Update menu.
* | ; Fix copyright years in new filesGlenn Morris2016-12-101-2/+1
| |
* | Support concurrency in Emacs LispEli Zaretskii2016-12-105-5/+378
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge branch 'test-concurrency' * src/thread.c: * src/thread.h: * src/systhread.c: * src/systhread.h: New files. * src/xgselect.c (xg_select): Avoid using SAFE_NALLOCA and use xnmalloc unconditionally. * src/window.c (struct save_window_data): Rename current_buffer to f_current_buffer. * src/w32proc.c (sys_select): Change the function signature to closer fit 'pselect' on Posix hosts. * src/search.c: * src/regex.h: Convert some globals to macros that reference thread-specific values. * src/process.c (pset_thread, add_non_keyboard_read_fd) (add_process_read_fd, add_non_blocking_write_fd) (recompute_input_desc, compute_input_wait_mask) (compute_non_process_wait_mask, compute_non_keyboard_wait_mask) (compute_write_mask, clear_waiting_thread_info) (update_processes_for_thread_death, Fset_process_thread) (Fprocess_thread): New functions. (enum fd_bits): New enumeration. (fd_callback_data): Add 'thread' and 'waiting_thread', rename 'condition' to 'flags'. (set_process_filter_masks, create_process, create_pty) (Fmake_serial_process, finish_after_tls_connection) (connect_network_socket, deactivate_process) (server_accept_connection, wait_reading_process_output) (Fcontinue_process, Fstop_process, keyboard_bit_set) (add_timer_wait_descriptor, add_keyboard_wait_descriptor) (delete_keyboard_wait_descriptor): Use the new functions instead of manipulating fd flags and masks directly. (syms_of_process): Defsubr the new primitives. * src/print.c (print_object): Print threads, mutexes, and conditional variables. * src/lisp.h (enum pvec_type): New values PVEC_THREAD, PVEC_MUTEX, and PVEC_CONDVAR. (XTHREAD, XMUTEX, XCONDVAR, THREADP, MUTEXP, CONDVARP) (CHECK_THREAD, CHECK_MUTEX, CHECK_CONDVAR): New inline functions. (XSETTHREAD, XSETMUTEX, XSETCONDVAR): New macros. (struct handler): Add back byte_stack. Rename lisp_eval_depth to f_lisp_eval_depth. * src/eval.c (specpdl_kind, specpdl_arg, do_specbind) (rebind_for_thread_switch, do_one_unbind) (unbind_for_thread_switch): New functions. (init_eval): 'handlerlist' is not malloc'ed. (specbind): Call do_specbind. (unbind_to): Call do_one_unbind. (mark_specpdl): Accept 2 arguments. (mark_specpdl): Mark the saved value in a let-binding. * src/emacs.c (main): Call init_threads_once, init_threads, and syms_of_threads. * src/data.c (Ftype_of): Support thread, mutex, and condvar objects. (Fthreadp, Fmutexp, Fcondition_variable_p): New functions. (syms_of_data): DEFSYM and defsubr new symbols and primitives. * src/bytecode.c (struct byte_stack, FETCH, CHECK_RANGE) (BYTE_CODE_QUIT): Add back. (exec_byte_code): Add back byte stack manipulation. * src/alloc.c (cleanup_vector): Handle threads, mutexes, and conditional variables. (mark_stack): Now extern; accept additional argument 'bottom'. (flush_stack_call_func): New function. (garbage_collect_1): Call mark_threads and unmark_threads. Don't mark handlers. * src/.gdbinit (xbytecode): Add back. * test/src/thread-tests.el: New tests. * test/src/data-tests.el (binding-test-manual) (binding-test-setq-default, binding-test-makunbound) (binding-test-defvar-bool, binding-test-defvar-int) (binding-test-set-constant-t, binding-test-set-constant-nil) (binding-test-set-constant-keyword) (binding-test-set-constant-nil): New tests. * doc/lispref/processes.texi (Processes and Threads): New subsection. * doc/lispref/threads.texi: New file * doc/lispref/elisp.texi (Top): Include it. * doc/lispref/objects.texi (Thread Type, Mutex Type) (Condition Variable Type): New subsections. (Type Predicates): Add thread-related predicates. * doc/lispref/objects.texi (Editing Types): * doc/lispref/elisp.texi (Top): Update higher-level menus. * etc/NEWS: Mention concurrency features.
| * | Documentation and commentary improvementsEli Zaretskii2016-12-102-0/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/lisp.h: * src/regex.c: * src/xgselect.c (xg_select): Improve commentary and formatting. * doc/lispref/objects.texi (Thread Type, Mutex Type) (Condition Variable Type): New subsections. (Type Predicates): Add thread-related predicates. * doc/lispref/objects.texi (Editing Types): * doc/lispref/elisp.texi (Top): Update higher-level menus.
| * | Merge branch 'concurrency'Eli Zaretskii2016-12-045-5/+306
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts (resolved): configure.ac src/Makefile.in src/alloc.c src/bytecode.c src/emacs.c src/eval.c src/lisp.h src/process.c src/regex.c src/regex.h