Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/axelf4/derl.el
Emacs implementation of the Erlang distribution protocol
https://github.com/axelf4/derl.el
emacs-package erlang
Last synced: about 1 month ago
JSON representation
Emacs implementation of the Erlang distribution protocol
- Host: GitHub
- URL: https://github.com/axelf4/derl.el
- Owner: axelf4
- License: gpl-3.0
- Created: 2023-07-19T19:44:14.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-10-04T08:21:50.000Z (about 1 year ago)
- Last Synced: 2024-06-19T13:45:43.132Z (5 months ago)
- Topics: emacs-package, erlang
- Language: Emacs Lisp
- Homepage:
- Size: 78.1 KB
- Stars: 6
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# derl
Derl is an Emacs Lisp library for communicating with Erlang nodes,
that provides an Erlang-like process concurrency abstraction.
In other words, it is full rewrite of the library part of [Distel],
differing in the following ways:* Processes run generator functions defined via the `generator` package,
meaning they do not have to be manually written in trampolined style.This makes `receive` expressions easier to write
since the `saved-vars` argument becomes unnecessary.
* Pattern matching for `receive` expressions uses `pcase` patterns,
instead of a bespoke syntax.
* Processes are not backed by Emacs buffers.Therefore, the main Emacs Lisp execution context can be an implicit process,
meaning it is possible to use `receive` everywhere
instead of only in functions passed to `spawn`.
* Works with newer Erlang/OTP releases (at least 25 and 26).
* Modernized code base (e.g. uses lexical binding).## Planned features
Some features of the Distel extended Erlang editing mode are planned:
* [ ] Expression evaluation
* [ ] Completion-at-point function
* [ ] Xref backend
* [ ] Eldoc documentation function
* [ ] Reloading modified modulesEverything else, such as debugger and profiler integration, is out of scope,
with the intention that the public API should allow
for those things to be implemented separately.[Distel]: https://github.com/massemanet/distel