unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* module documentation draft
@ 2017-04-24 17:04 Aurélien Aptel
  2017-07-23 18:57 ` Philipp Stephani
  0 siblings, 1 reply; 14+ messages in thread
From: Aurélien Aptel @ 2017-04-24 17:04 UTC (permalink / raw)
  To: Philipp Stephani, Emacs development discussions

[-- Attachment #1: Type: text/plain, Size: 260 bytes --]

Hi,

~6 months ago I started writing some doc for modules. Some things have
changed since then it seems (Philipp last message about
make_global_ref seems to mention something I thought was removed..
hrm..)

But it could be a good starting point. Look for XXX.

[-- Attachment #2: modules.org --]
[-- Type: application/vnd.lotus-organizer, Size: 13101 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: module documentation draft
  2017-04-24 17:04 module documentation draft Aurélien Aptel
@ 2017-07-23 18:57 ` Philipp Stephani
  2017-07-25 12:50   ` Aurélien Aptel
  2017-09-28 20:25   ` Philipp Stephani
  0 siblings, 2 replies; 14+ messages in thread
From: Philipp Stephani @ 2017-07-23 18:57 UTC (permalink / raw)
  To: Aurélien Aptel, Philipp Stephani,
	Emacs development discussions

[-- Attachment #1: Type: text/plain, Size: 567 bytes --]

Aurélien Aptel <aurelien.aptel@gmail.com> schrieb am Mo., 24. Apr. 2017 um
19:05 Uhr:

> Hi,
>
> ~6 months ago I started writing some doc for modules. Some things have
> changed since then it seems (Philipp last message about
> make_global_ref seems to mention something I thought was removed..
> hrm..)
>
> But it could be a good starting point. Look for XXX.
>

Thanks! I've also finally managed to get my draft online:
https://phst.github.io/emacs-modules
It's more specification-like and hopefully covers most of the behavior of
the module API.

[-- Attachment #2: Type: text/html, Size: 930 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: module documentation draft
  2017-07-23 18:57 ` Philipp Stephani
@ 2017-07-25 12:50   ` Aurélien Aptel
  2017-09-28 20:25   ` Philipp Stephani
  1 sibling, 0 replies; 14+ messages in thread
From: Aurélien Aptel @ 2017-07-25 12:50 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: Philipp Stephani, Emacs development discussions

Finally got around to read this. Nice! I think it's very well written,
good job Philipp!



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: module documentation draft
  2017-07-23 18:57 ` Philipp Stephani
  2017-07-25 12:50   ` Aurélien Aptel
@ 2017-09-28 20:25   ` Philipp Stephani
  2017-09-28 21:51     ` Aurélien Aptel
  2017-09-29 16:45     ` Eli Zaretskii
  1 sibling, 2 replies; 14+ messages in thread
From: Philipp Stephani @ 2017-09-28 20:25 UTC (permalink / raw)
  To: Aurélien Aptel, Philipp Stephani,
	Emacs development discussions

[-- Attachment #1: Type: text/plain, Size: 967 bytes --]

Philipp Stephani <p.stephani2@gmail.com> schrieb am So., 23. Juli 2017 um
20:57 Uhr:

> Aurélien Aptel <aurelien.aptel@gmail.com> schrieb am Mo., 24. Apr. 2017
> um 19:05 Uhr:
>
>> Hi,
>>
>> ~6 months ago I started writing some doc for modules. Some things have
>> changed since then it seems (Philipp last message about
>> make_global_ref seems to mention something I thought was removed..
>> hrm..)
>>
>> But it could be a good starting point. Look for XXX.
>>
>
> Thanks! I've also finally managed to get my draft online:
> https://phst.github.io/emacs-modules
> It's more specification-like and hopefully covers most of the behavior of
> the module API.
>

It would be great if we could have comprehensive documentation in the ELisp
manual in Emacs 26. So it would be great if others (especially the
maintainers) could review these two documents. Please focus on the content
during the first pass, not on stylistic or editorial issues.

[-- Attachment #2: Type: text/html, Size: 1646 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: module documentation draft
  2017-09-28 20:25   ` Philipp Stephani
@ 2017-09-28 21:51     ` Aurélien Aptel
  2017-09-29 16:45     ` Eli Zaretskii
  1 sibling, 0 replies; 14+ messages in thread
From: Aurélien Aptel @ 2017-09-28 21:51 UTC (permalink / raw)
  To: Philipp Stephani, Tom Tromey
  Cc: Philipp Stephani, Emacs development discussions

On Thu, Sep 28, 2017 at 10:25 PM, Philipp Stephani
<p.stephani2@gmail.com> wrote:
> It would be great if we could have comprehensive documentation in the ELisp
> manual in Emacs 26. So it would be great if others (especially the
> maintainers) could review these two documents. Please focus on the content
> during the first pass, not on stylistic or editorial issues.

I remember finding a couple of mistakes from copy/pasting and typos
but otherwise I think the structure is good.
I'll make a PR to fix those.

I think it would be nice to have full of a properly written simple
module as an example. Perhaps my tutorial could be a start. I know the
makefile is not portable but it's something.

Also Chris Wellon has written 2 posts about how he used modules. It
provides a good feedback, I'd suggest reading those (I think he wrote
them *before* you wrote the docs):

http://nullprogram.com/blog/2016/11/05/
http://nullprogram.com/blog/2017/02/14/

In the second one in particular he uses unix signals as a way to do
async communication from a module function. I think it's really
interesting. It reminded me of the discussions we had elsewhere with
Tom Tromey about adding a way to push special events in emacs event
queue to do something similar.

cheers,



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: module documentation draft
  2017-09-28 20:25   ` Philipp Stephani
  2017-09-28 21:51     ` Aurélien Aptel
@ 2017-09-29 16:45     ` Eli Zaretskii
  2017-09-29 16:49       ` Aurélien Aptel
  2017-09-29 20:39       ` Philipp Stephani
  1 sibling, 2 replies; 14+ messages in thread
From: Eli Zaretskii @ 2017-09-29 16:45 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: phst, aurelien.aptel, emacs-devel

> From: Philipp Stephani <p.stephani2@gmail.com>
> Date: Thu, 28 Sep 2017 20:25:11 +0000
> 
>  Thanks! I've also finally managed to get my draft online:
>  https://phst.github.io/emacs-modules
>  It's more specification-like and hopefully covers most of the behavior of the module API. 
> 
> It would be great if we could have comprehensive documentation in the ELisp manual in Emacs 26. So it
> would be great if others (especially the maintainers) could review these two documents. Please focus on the
> content during the first pass, not on stylistic or editorial issues. 

I already read this, when this was first announced in April.
Unfortunately, the style and the methodology of the description
differs significantly from what we use in the ELisp manual.  So this
text will have to be reworked, and I didn't yet find time to do it.

If someone else would like to step forward, it would be great.  The
first step is to convert the tutorial-like description to the
reference-style description we use in the manual.  My assessment was
that it would need a non-trivial amount of editorial work.

TIA



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: module documentation draft
  2017-09-29 16:45     ` Eli Zaretskii
@ 2017-09-29 16:49       ` Aurélien Aptel
  2017-09-29 18:08         ` Eli Zaretskii
  2017-09-29 20:39       ` Philipp Stephani
  1 sibling, 1 reply; 14+ messages in thread
From: Aurélien Aptel @ 2017-09-29 16:49 UTC (permalink / raw)
  To: Eli Zaretskii
  Cc: Philipp Stephani, Philipp Stephani, Emacs development discussions

Hi,

On Fri, Sep 29, 2017 at 6:45 PM, Eli Zaretskii <eliz@gnu.org> wrote:
> I already read this, when this was first announced in April.
> Unfortunately, the style and the methodology of the description
> differs significantly from what we use in the ELisp manual.  So this
> text will have to be reworked, and I didn't yet find time to do it.

Eli, I believe you're talking about a different document. Philipp's
documentation is much closer to a specification than a tutorial.

https://phst.github.io/emacs-modules



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: module documentation draft
  2017-09-29 16:49       ` Aurélien Aptel
@ 2017-09-29 18:08         ` Eli Zaretskii
  0 siblings, 0 replies; 14+ messages in thread
From: Eli Zaretskii @ 2017-09-29 18:08 UTC (permalink / raw)
  To: Aurélien Aptel; +Cc: phst, p.stephani2, emacs-devel

> From: Aurélien Aptel <aurelien.aptel@gmail.com>
> Date: Fri, 29 Sep 2017 18:49:59 +0200
> Cc: Philipp Stephani <p.stephani2@gmail.com>, Philipp Stephani <phst@google.com>, 
> 	Emacs development discussions <emacs-devel@gnu.org>
> 
> On Fri, Sep 29, 2017 at 6:45 PM, Eli Zaretskii <eliz@gnu.org> wrote:
> > I already read this, when this was first announced in April.
> > Unfortunately, the style and the methodology of the description
> > differs significantly from what we use in the ELisp manual.  So this
> > text will have to be reworked, and I didn't yet find time to do it.
> 
> Eli, I believe you're talking about a different document. Philipp's
> documentation is much closer to a specification than a tutorial.
> 
> https://phst.github.io/emacs-modules

No, I'm talking about this very document.

I won't argue with the "tutorial" part, but the point is the style
and the methodology of introducing the features there is very
different from what I expect of a chapter in the ELisp manual.  Just
read some chapter or section which describes a single large feature,
and you will see the difference.

I don't mean to denigrate Philipp's work in any way, I'm just saying
that importing it into the ELisp manual needs some non-trivial work,
that's all.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: module documentation draft
  2017-09-29 16:45     ` Eli Zaretskii
  2017-09-29 16:49       ` Aurélien Aptel
@ 2017-09-29 20:39       ` Philipp Stephani
  2017-09-29 21:03         ` Eli Zaretskii
  1 sibling, 1 reply; 14+ messages in thread
From: Philipp Stephani @ 2017-09-29 20:39 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: phst, aurelien.aptel, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1432 bytes --]

Eli Zaretskii <eliz@gnu.org> schrieb am Fr., 29. Sep. 2017 um 18:46 Uhr:

> > From: Philipp Stephani <p.stephani2@gmail.com>
> > Date: Thu, 28 Sep 2017 20:25:11 +0000
> >
> >  Thanks! I've also finally managed to get my draft online:
> >  https://phst.github.io/emacs-modules
> >  It's more specification-like and hopefully covers most of the behavior
> of the module API.
> >
> > It would be great if we could have comprehensive documentation in the
> ELisp manual in Emacs 26. So it
> > would be great if others (especially the maintainers) could review these
> two documents. Please focus on the
> > content during the first pass, not on stylistic or editorial issues.
>
> I already read this, when this was first announced in April.
> Unfortunately, the style and the methodology of the description
> differs significantly from what we use in the ELisp manual.  So this
> text will have to be reworked, and I didn't yet find time to do it.
>

As said, I'd like to get feedback about the *content*. Changing the *style*
is easier and requires less discussion.


>
> The
> first step is to convert the tutorial-like description to the
> reference-style description we use in the manual.
>

I'm a bit surprised that you call my style "tutorial-like". I think it's
not a tutorial at all; there's e.g. no end-to-end example to step-by-step
instructions.
What exactly would you want to have changed to turn it into "reference
style"?

[-- Attachment #2: Type: text/html, Size: 2138 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: module documentation draft
  2017-09-29 20:39       ` Philipp Stephani
@ 2017-09-29 21:03         ` Eli Zaretskii
  2017-12-26 21:06           ` Philipp Stephani
  0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2017-09-29 21:03 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: phst, aurelien.aptel, emacs-devel

> From: Philipp Stephani <p.stephani2@gmail.com>
> Date: Fri, 29 Sep 2017 20:39:15 +0000
> Cc: aurelien.aptel@gmail.com, phst@google.com, emacs-devel@gnu.org
> 
>  I already read this, when this was first announced in April.
>  Unfortunately, the style and the methodology of the description
>  differs significantly from what we use in the ELisp manual. So this
>  text will have to be reworked, and I didn't yet find time to do it.
> 
> As said, I'd like to get feedback about the *content*. Changing the *style* is easier and requires less
> discussion.

I said "style and methodology", and we seem to disagree about what is
and isn't "style".  My "style" is part of your "content".

>  The
>  first step is to convert the tutorial-like description to the
>  reference-style description we use in the manual. 
> 
> I'm a bit surprised that you call my style "tutorial-like". I think it's not a tutorial at all; there's e.g. no end-to-end
> example to step-by-step instructions.

I already said I won't argue about the "tutorial" part, so let's drop
it.

> What exactly would you want to have changed to turn it into "reference style"? 

It's hard to explain without doing the actual work.  For starters, it
is too formal: begins by introducing all the terms, even if that's far
from where they are actually needed in the description; talks about
requirements before describing the interesting stuff; etc.  Then the
order of the sections doesn't always make sense to me: for example,
"Compatibility" should be somewhere near the end.  And there are other
issues.

Doesn't reading a typical chapter in the ELisp manual, such as "Hash
Tables" or "Processes", make the differences clear?

Or let me turn the table and ask you: do you think that text is fit
for putting it as-is into the ELisp manual?



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: module documentation draft
  2017-09-29 21:03         ` Eli Zaretskii
@ 2017-12-26 21:06           ` Philipp Stephani
  2018-10-11 18:01             ` Eli Zaretskii
  0 siblings, 1 reply; 14+ messages in thread
From: Philipp Stephani @ 2017-12-26 21:06 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: phst, aurelien.aptel, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 3145 bytes --]

Eli Zaretskii <eliz@gnu.org> schrieb am Fr., 29. Sep. 2017 um 23:03 Uhr:

> > From: Philipp Stephani <p.stephani2@gmail.com>
> > Date: Fri, 29 Sep 2017 20:39:15 +0000
> > Cc: aurelien.aptel@gmail.com, phst@google.com, emacs-devel@gnu.org
> >
> >  I already read this, when this was first announced in April.
> >  Unfortunately, the style and the methodology of the description
> >  differs significantly from what we use in the ELisp manual. So this
> >  text will have to be reworked, and I didn't yet find time to do it.
> >
> > As said, I'd like to get feedback about the *content*. Changing the
> *style* is easier and requires less
> > discussion.
>
> I said "style and methodology", and we seem to disagree about what is
> and isn't "style".  My "style" is part of your "content".
>

This is again mostly wordsmithing, but what you call out below (ordering of
sections, where to put definitions) is definitely part of what I'd call
"style".


>
> > What exactly would you want to have changed to turn it into "reference
> style"?
>
> It's hard to explain without doing the actual work.


It's equally hard to do the work without knowing what work there is to do
:-)


>   For starters, it
> is too formal:


Point taken, though the formality is to a certain extent intentional: the
goal of a reference manual is to describe as clearly and exhaustively as
possible the entire interface of the system. This requires a certain amount
of formality, otherwise the description easily becomes unclear.


> begins by introducing all the terms, even if that's far
> from where they are actually needed in the description;


I'm OK with moving the definitions around, as long as terms are defined
before they are used.


> talks about
> requirements before describing the interesting stuff;


The requirements *is* the interesting stuff. What comes later (the
description of the specific environment functions) is rather plain and has
much fewer pitfalls.


> etc.  Then the
> order of the sections doesn't always make sense to me: for example,
> "Compatibility" should be somewhere near the end.


I'm not against some reordering, but again, the requirements described in
the "Compatibility" section are more important than the specific details
about the environment functions. If we put such important requirements at
the end, module authors will likely skip them, leading to brittle modules
that fail in weird ways.


>
> Doesn't reading a typical chapter in the ELisp manual, such as "Hash
> Tables" or "Processes", make the differences clear?
>

Not really. On a high level, these sections follow a similar structure:
first they give some general overview and provide definitions, then a list
of functions with specific explanation follows, grouped by topic.


>
> Or let me turn the table and ask you: do you think that text is fit
> for putting it as-is into the ELisp manual?
>

Well, from my point of view the text is almost perfect (since I wrote it),
but I guess that's not really helpful ;-)
I would probably trim down some of the examples or the "History" section,
because they are probably not very interesting for a reference manual.

[-- Attachment #2: Type: text/html, Size: 4968 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: module documentation draft
  2017-12-26 21:06           ` Philipp Stephani
@ 2018-10-11 18:01             ` Eli Zaretskii
  2018-10-14 15:47               ` Basil L. Contovounesios
  0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2018-10-11 18:01 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: phst, aurelien.aptel, emacs-devel

> From: Philipp Stephani <p.stephani2@gmail.com>
> Date: Tue, 26 Dec 2017 21:06:29 +0000
> Cc: aurelien.aptel@gmail.com, phst@google.com, emacs-devel@gnu.org
> 
> Eli Zaretskii <eliz@gnu.org> schrieb am Fr., 29. Sep. 2017 um 23:03 Uhr:
> 
>  > What exactly would you want to have changed to turn it into "reference style"?
> 
>  It's hard to explain without doing the actual work.
> 
> It's equally hard to do the work without knowing what work there is to do :-)
>  
>    For starters, it
>  is too formal:
> 
> Point taken, though the formality is to a certain extent intentional: the goal of a reference manual is to describe
> as clearly and exhaustively as possible the entire interface of the system. This requires a certain amount of
> formality, otherwise the description easily becomes unclear.
>  
>  begins by introducing all the terms, even if that's far
>  from where they are actually needed in the description;
> 
> I'm OK with moving the definitions around, as long as terms are defined before they are used.
>  
>  talks about
>  requirements before describing the interesting stuff; 
> 
> The requirements *is* the interesting stuff. What comes later (the description of the specific environment
> functions) is rather plain and has much fewer pitfalls.
>  
>  etc.  Then the
>  order of the sections doesn't always make sense to me: for example,
>  "Compatibility" should be somewhere near the end. 
> 
> I'm not against some reordering, but again, the requirements described in the "Compatibility" section are more
> important than the specific details about the environment functions. If we put such important requirements at
> the end, module authors will likely skip them, leading to brittle modules that fail in weird ways.
>  
>  
>  Doesn't reading a typical chapter in the ELisp manual, such as "Hash
>  Tables" or "Processes", make the differences clear?
> 
> Not really. On a high level, these sections follow a similar structure: first they give some general overview and
> provide definitions, then a list of functions with specific explanation follows, grouped by topic.

I've finally got to writing up this stuff, please take a look at the
ELisp manual's node "Writing Dynamic Modules" on the latest emacs-26
branch.  Comments are welcome.

I'd like to take this opportunity to thank Philipp for his document
(https://phst.github.io/emacs-modules), which I used as inspiration
and as a reference against which to check my text.  Thanks!



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: module documentation draft
  2018-10-11 18:01             ` Eli Zaretskii
@ 2018-10-14 15:47               ` Basil L. Contovounesios
  2018-10-14 16:14                 ` Eli Zaretskii
  0 siblings, 1 reply; 14+ messages in thread
From: Basil L. Contovounesios @ 2018-10-14 15:47 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: phst, Philipp Stephani, aurelien.aptel, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 289 bytes --]

Eli Zaretskii <eliz@gnu.org> writes:

> I've finally got to writing up this stuff, please take a look at the
> ELisp manual's node "Writing Dynamic Modules" on the latest emacs-26
> branch.  Comments are welcome.

It all made sense to me, FWIW.  I only noticed one potential
improvement:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: internals.diff --]
[-- Type: text/x-diff, Size: 655 bytes --]

diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi
index 311eb6b262..c1d855fc2d 100644
--- a/doc/lispref/internals.texi
+++ b/doc/lispref/internals.texi
@@ -1190,7 +1190,7 @@ Module Functions
 Lisp function object from it using @code{make_function}.  This is
 normally done in the module initialization function (@pxref{module
 initialization function}), after verifying the @acronym{API}
-compatibility, and uses the pointer to @code{make_function} provided
+compatibility, and using the pointer to @code{make_function} provided
 in the environment (recall that the pointer to the environment is
 returned by @code{get_environment}).
 

[-- Attachment #3: Type: text/plain, Size: 257 bytes --]


> I'd like to take this opportunity to thank Philipp for his document
> (https://phst.github.io/emacs-modules), which I used as inspiration
> and as a reference against which to check my text.  Thanks!

Thanks to both of you for the great work!

-- 
Basil

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: module documentation draft
  2018-10-14 15:47               ` Basil L. Contovounesios
@ 2018-10-14 16:14                 ` Eli Zaretskii
  0 siblings, 0 replies; 14+ messages in thread
From: Eli Zaretskii @ 2018-10-14 16:14 UTC (permalink / raw)
  To: Basil L. Contovounesios; +Cc: phst, p.stephani2, aurelien.aptel, emacs-devel

> From: "Basil L. Contovounesios" <contovob@tcd.ie>
> Cc: Philipp Stephani <p.stephani2@gmail.com>,  <phst@google.com>,  <aurelien.aptel@gmail.com>,  <emacs-devel@gnu.org>
> Date: Sun, 14 Oct 2018 16:47:25 +0100
> 
> It all made sense to me, FWIW.  I only noticed one potential
> improvement:

Thanks.  I fixed this a bit differently, because my intent was to say
something else.



^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2018-10-14 16:14 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-24 17:04 module documentation draft Aurélien Aptel
2017-07-23 18:57 ` Philipp Stephani
2017-07-25 12:50   ` Aurélien Aptel
2017-09-28 20:25   ` Philipp Stephani
2017-09-28 21:51     ` Aurélien Aptel
2017-09-29 16:45     ` Eli Zaretskii
2017-09-29 16:49       ` Aurélien Aptel
2017-09-29 18:08         ` Eli Zaretskii
2017-09-29 20:39       ` Philipp Stephani
2017-09-29 21:03         ` Eli Zaretskii
2017-12-26 21:06           ` Philipp Stephani
2018-10-11 18:01             ` Eli Zaretskii
2018-10-14 15:47               ` Basil L. Contovounesios
2018-10-14 16:14                 ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).