aboutsummaryrefslogtreecommitdiffstats
path: root/lib/tools/emacs
AgeCommit message (Collapse)Author
2018-03-22Fix signal order for is_process_aliveRickard Green
2018-03-21Implementation of true asynchronous signaling between processesRickard Green
Communication between Erlang processes has conceptually always been performed through asynchronous signaling. The runtime system implementation has however previously preformed most operation synchronously. In a system with only one true thread of execution, this is not problematic (often the opposite). In a system with multiple threads of execution (as current runtime system implementation with SMP support) it becomes problematic. This since it often involves locking of structures when updating them which in turn cause resource contention. Utilizing true asynchronous communication often avoids these resource contention issues. The case that triggered this change was contention on the link lock due to frequent updates of the monitor trees during communication with a frequently used server. The signal order delivery guarantees of the language makes it hard to change the implementation of only some signals to use true asynchronous signaling. Therefore the implementations of (almost) all signals have been changed. Currently the following signals have been implemented as true asynchronous signals: - Message signals - Exit signals - Monitor signals - Demonitor signals - Monitor triggered signals (DOWN, CHANGE, etc) - Link signals - Unlink signals - Group leader signals All of the above already defined as asynchronous signals in the language. The implementation of messages signals was quite asynchronous to begin with, but had quite strict delivery constraints due to the ordering guarantees of signals between a pair of processes. The previously used message queue partitioned into two halves has been replaced by a more general signal queue partitioned into three parts that service all kinds of signals. More details regarding the signal queue can be found in comments in the erl_proc_sig_queue.h file. The monitor and link implementations have also been completely replaced in order to fit the new asynchronous signaling implementation as good as possible. More details regarding the new monitor and link implementations can be found in the erl_monitor_link.h file.
2018-03-02Merge branch 'maint'Dan Gudmundsson
* maint: Add updated type-spec to Emacs skeletons of OTP behaviours
2018-03-02Merge branch 'pr/1620' into maintDan Gudmundsson
* pr/1620: Add updated type-spec to Emacs skeletons of OTP behaviours
2018-03-02Add updated type-spec to Emacs skeletons of OTP behavioursHamidreza Soleimani
The changes are based on the latest versions of following modules and are also similar to gen_statem Emacs skeleton. Note that the gen_fsm is not updated because it is deprecated. application: * add/update type-spec for all callbacks * add start_phase/3 callback * add prep_stop/1 callback * add config_change/3 callback supervisor: * add/update type-spec for all callbacks supervisor_bridge: * add/update type-spec for all callbacks gen_server: * add/update type-spec for all callbacks * add format_status/2 callback gen_event: * add/update type-spec for all callbacks * add format_status/2 callback
2018-03-02Merge branch 'maint'Dan Gudmundsson
* maint: Derive `erlang-shell-mode` properly from `comint-mode`
2018-03-02Derive `erlang-shell-mode` properly from `comint-mode`Tianxiang Xiong
2018-03-01Merge branch 'maint'Dan Gudmundsson
* maint: emacs: delimiter first in icr works emacs: Indent delimiter first in term elements correctly emacs: Indent tuple (and maps) elements as list elements Add emacs indention testcase
2018-03-01emacs: delimiter first in icr worksDan Gudmundsson
2018-03-01emacs: Indent delimiter first in term elements correctlyDan Gudmundsson
2018-03-01emacs: Indent tuple (and maps) elements as list elementsDan Gudmundsson
Avoid From: { ^^element1, ^^element2 } To: { ^element1, ^element2 }
2018-03-01Add emacs indention testcaseDan Gudmundsson
Split the manual testcase and run them in daily tests instead. Easy to run directly as well: (cd ../test; cerl -eval "emacs_SUITE:indent([])")
2017-12-19Redirect system_flag(scheduler_wall_time,_) to kernel_refcRickard Green
2017-11-15Remove obsolete erlang:dgroup_leaderSverker Eriksson
2017-11-15Remove obsolete erlang:dexit/2Sverker Eriksson
2017-11-15Remove obsolete erlang:dlink/1, dunlink/1 and dist_exit/3Sverker Eriksson
2017-11-15Remove obsolete erlang:dsendSverker Eriksson
2017-09-13Merge branch 'maint'Dan Gudmundsson
* maint: Update the version to 2.8.0 Remove the obsolete erlang-buffer-substring function Add a :package-version property to the new defcustom erlang-shell-prompt-read-only Bump the version number Make the erlang-shell prompt read-only by default Remove a mention of Emacs 21 Drop some redundant backwards compatibility code Enable lexical binding for erlang-mode Remove some ancient compatibility aliases
2017-09-13Merge remote-tracking branch 'upstream/pr/1474' into maintDan Gudmundsson
* upstream/pr/1474: Update the version to 2.8.0 Remove the obsolete erlang-buffer-substring function Add a :package-version property to the new defcustom erlang-shell-prompt-read-only Bump the version number Make the erlang-shell prompt read-only by default Remove a mention of Emacs 21 Drop some redundant backwards compatibility code Enable lexical binding for erlang-mode Remove some ancient compatibility aliases
2017-09-12Update the version to 2.8.0Bozhidar Batsov
2017-09-12Merge branch 'maint'Dan Gudmundsson
* maint: Emacs: Update erlang-xref-find-definitions-module for Emacs 26 Emacs: Guess type of tag definition in Emacs 24
2017-09-12Merge pull request #1559 from johanclaesson/tags2_maintDan Gudmundsson
2017-09-06Merge branch 'maint' into john/erts/merge-zlib-and-vector-qJohn Högberg
2017-09-06Merge branch 'lukas/erts/nif_vector_q/OTP-14598' into maintJohn Högberg
OTP-14520
2017-09-05Emacs: Update erlang-xref-find-definitions-module for Emacs 26Johan Claesson
The number of arguments to visit-tags-table-buffer have increased in Emacs 26.
2017-09-05Emacs: Guess type of tag definition in Emacs 24Johan Claesson
This concerns tag finding commands in Emacs 24. If the word at point is preceded by a hash suggest as default a jump to a record definition. If it is a question mark suggest a macro. Otherwise assume it is a function. If it is not a qualified call assume it is a local function.
2017-09-05erts: Add erlang:iolist_to_iovecLukas Larsson
OTP-14520
2017-08-28Merge branch 'rickard/dist/OTP-14459' into rickard/dist/master/OTP-14459Rickard Green
Conflicts: erts/emulator/beam/bif.c erts/emulator/beam/dist.c erts/emulator/beam/dist.h erts/emulator/beam/erl_bif_info.c erts/emulator/beam/erl_node_tables.c erts/emulator/beam/erl_node_tables.h erts/emulator/beam/external.c
2017-08-28Support for distribution controller processesRickard Green
2017-08-23Emacs: Fix default target for xref-find-referencesJohan Claesson
The default target is changed to be just the name at point when xref-find-references is invoked. Previously the default was the same as for xref-find-definitions. This included arity and other things that do not make sense for xref-find-references.
2017-05-23Remove the obsolete erlang-buffer-substring functionBozhidar Batsov
2017-05-09[emacs] fixup Forgot prognDan Gudmundsson
2017-05-09[emacs] Fix paranthesis error advice-addSiri Hansen
2017-05-07Add a :package-version property to the new defcustom ↵Bozhidar Batsov
erlang-shell-prompt-read-only
2017-05-07Bump the version numberBozhidar Batsov
2017-05-07Make the erlang-shell prompt read-only by defaultBozhidar Batsov
Allow for this behaviour to be customized via a defcustom.
2017-05-07Remove a mention of Emacs 21Bozhidar Batsov
2017-05-04Update copyright yearRaimo Niskanen
2017-04-29Drop some redundant backwards compatibility codeBozhidar Batsov
2017-04-29Enable lexical binding for erlang-modeBozhidar Batsov
2017-04-29Remove some ancient compatibility aliasesBozhidar Batsov
Those were added 8 years ago and it's about time they were removed. Now that we depend on a newer Emacs release, we can also drop the function `erlang-obsolete`.
2017-04-28Merge branch 'dgud/emacs/update-bifs'Lukas Larsson
* dgud/emacs/update-bifs: Update available bifs for 20
2017-04-28Update available bifs for 20Dan Gudmundsson
2017-04-27Restore Emacs 25 supportJohan Claesson
Fix loading of byte-compiled erlang.elc on Emacs 25 and the erlang shell.
2017-04-25Merge pull request #1411 from bbatsov/drop-legacy-codeDan Gudmundsson
Drop some legacy Emacs compatibility code
2017-04-25erts: Add erlang:list_to_port/1 debug bifLukas Larsson
2017-04-25erts: Auto-import port_to_list for consistencyLukas Larsson
Follow the same pattern as pid_to_list
2017-04-21erts: Polish off erlang:list_to_ref/1Lukas Larsson
2017-04-17Remove a bunch of redundant feature and function checksBozhidar Batsov
All of those are present on the target Emacs 24.1.
2017-04-17Drop the redundant erlang-uncomment-region commandBozhidar Batsov