Files
emacs/doc/lispref
Philipp Stephani d28b004768 Add a module function to open a file descriptor connected to a pipe.
A common complaint about the module API is that modules can't
communicate asynchronously with Emacs.  While it isn't possible to
call arbitrary Emacs functions asynchronously, writing to a pipe
should always be fine and is a pretty low-hanging fruit.

This patch implements a function that adapts an existing pipe
process.  That way, users can use familiar tools like process filters
or 'accept-process-output'.

* src/module-env-28.h: Add 'open_channel' module function.

* src/emacs-module.c (module_open_channel): Provide definition for
'open_channel'.
(initialize_environment): Use it.

* src/process.c (open_channel_for_module): New helper function.
(syms_of_process): Define necessary symbol.

* test/src/emacs-module-tests.el (module/async-pipe): New unit test.

* test/data/emacs-module/mod-test.c (signal_system_error): New helper
function.
(signal_errno): Use it.
(write_to_pipe): New function running in the background.
(Fmod_test_async_pipe): New test module function.
(emacs_module_init): Export it.

* doc/lispref/internals.texi (Module Misc): Document new module
function.

* doc/lispref/processes.texi (Asynchronous Processes): New anchor
for pipe processes.

* etc/NEWS: Document 'open_channel' function.
2020-03-26 21:47:25 +01:00
..
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2017-10-01 18:31:10 -07:00
2020-01-11 13:36:07 +02:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-03-04 13:57:58 -08:00
2017-10-01 18:31:10 -07:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 01:08:16 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-03-07 07:50:28 -08:00
2020-01-01 00:59:52 +00:00
2020-02-17 13:54:36 -08:00
2020-01-28 07:50:22 -08:00
2020-03-08 00:20:57 -08:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-03-09 16:00:18 +01:00
2020-01-01 00:59:52 +00:00
2019-06-04 08:34:16 -07:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00
2020-01-01 00:59:52 +00:00

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Copyright (C) 2001-2020 Free Software Foundation, Inc.  -*- outline -*-
See the end of the file for license conditions.


README for the Emacs Lisp Reference Manual.

* This directory contains the texinfo source files for the Emacs Lisp
Reference Manual.

* Report bugs in the Lisp Manual (or in Emacs) using M-x report-emacs-bug.
To ask questions, use the help-gnu-emacs mailing list.

* The Emacs Lisp Reference Manual is quite large.  It totals around
1100 pages in smallbook format; the info files total around 3.0 megabytes.

* You can format this manual for Info, for printing hardcopy using TeX,
or for HTML.

* You can buy nicely printed copies from the Free Software Foundation.
Buying a manual from the Free Software Foundation helps support our GNU
development work.  See <https://shop.fsf.org/>.
(At time of writing, this manual is out of print.)

* The master file for formatting this manual for Tex is called 'elisp.texi'.
It contains @include commands to include all the chapters that make up
the manual.

* This distribution contains a Makefile that you can use with GNU Make.

** To make an Info file, you need to install Texinfo, then run 'make info'.

** Use 'make elisp.pdf' or 'make elisp.html' to create PDF or HTML versions.


This file is part of GNU Emacs.

GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.