From: Dmitry Antipov <dmantipov@yandex.ru>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: Paul Eggert <eggert@cs.ucla.edu>, emacs-devel@gnu.org
Subject: Re: [Emacs-diffs] /srv/bzr/emacs/trunk r109327: Generalize INTERNAL_FIELD between buffers, keyboards and frames.
Date: Mon, 06 Aug 2012 15:44:02 +0400 [thread overview]
Message-ID: <501FAE02.80703@yandex.ru> (raw)
In-Reply-To: <jwvsjc02taq.fsf-monnier+emacs@gnu.org>
On 08/06/2012 02:54 PM, Stefan Monnier wrote:
> I want the C part of Emacs to look like C code. So, if the
> structure-field access does not require extra machinery (i.e. no read
> barrier), I want to write it "foo->bar".
I (and I hope all others) too. But we do AREF and ASET for vectors,
thinking about that vector implementation may be changed so direct access
to 'contents' becomes invalid or nonsense. So, I think that xGET and xSET
for complex structures fits this approach and don't add too much obfuscation.
Moreover, C itself is not designed to provide GC, and GC-aware system is
"unusual" C program. So, I don't see a problem if such a program contains
some "unusual" constructs which aren't quite similar to a core language.
Оn the contrary, this sets a good point for a newcomer: "look at these
strange things, they're implemented in a such unusual way because they're
really important, you should understand it before you write something".
> If we want to make sure that the write-barrier is used everywhere where
> it's needed, than we need to find a way to check this with some tool.
> Such a tool might require some extra annotations in the source code, and
> I'm willing to accept some such things, but I'd much rather avoid
> "FVAR (foo, bar)" if at all possible.
>
> If tools like coccinelle have trouble finding the right "foo->bar", then
> maybe we can try to find some coding convention that helps coccinelle
> find the right spots. Or find some other tool that can do those checks
> for us.
Development (and politics) is the art of the possible, and we have those
tools which are. I investigated this area, and I believe that coccinelle
is good enough to be used in our work; finally, I don't see the practical
reasons to wait until someone develops a wunderwaffe like GCC plugin
for automatic barrier insertion on any critical pointer stores.
Dmitry
next prev parent reply other threads:[~2012-08-06 11:44 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <E1SwCK8-0001PC-3m@vcs.savannah.gnu.org>
2012-08-01 10:33 ` [Emacs-diffs] /srv/bzr/emacs/trunk r109327: Generalize INTERNAL_FIELD between buffers, keyboards and frames Stefan Monnier
2012-08-01 12:04 ` Dmitry Antipov
2012-08-01 14:58 ` Paul Eggert
2012-08-01 16:52 ` Dmitry Antipov
2012-08-01 17:38 ` Tom Tromey
2012-08-01 21:04 ` Paul Eggert
2012-08-02 5:28 ` Stephen J. Turnbull
2012-08-01 15:01 ` Eli Zaretskii
2012-08-01 18:02 ` Dmitry Antipov
2012-08-02 15:28 ` Eli Zaretskii
2012-08-01 23:52 ` Stefan Monnier
2012-08-02 4:12 ` Dmitry Antipov
2012-08-02 5:56 ` Stephen J. Turnbull
2012-08-02 7:47 ` Dmitry Antipov
2012-08-02 9:30 ` Juanma Barranquero
2012-08-02 16:07 ` Eli Zaretskii
2012-08-02 15:45 ` Eli Zaretskii
2012-08-02 21:28 ` Paul Eggert
2012-08-03 6:27 ` Eli Zaretskii
2012-08-03 6:52 ` Paul Eggert
2012-08-02 23:38 ` Richard Stallman
2012-08-02 15:34 ` Eli Zaretskii
2012-08-03 7:42 ` Stefan Monnier
2012-08-03 8:31 ` Dmitry Antipov
2012-08-03 18:58 ` Paul Eggert
2012-08-03 22:52 ` Stefan Monnier
2012-08-04 16:31 ` Paul Eggert
2012-08-05 15:03 ` Dmitry Antipov
2012-08-06 10:54 ` Stefan Monnier
2012-08-06 11:44 ` Dmitry Antipov [this message]
2012-08-06 16:31 ` Stefan Monnier
2012-08-06 17:43 ` Stefan Monnier
2012-08-08 7:22 ` Chong Yidong
2012-08-05 14:59 ` Dmitry Antipov
2012-08-05 15:23 ` Paul Eggert
2012-08-05 20:29 ` Miles Bader
2012-08-03 22:50 ` Stefan Monnier
2012-08-03 23:11 ` Wojciech Meyer
2012-08-08 3:39 ` Chong Yidong
2012-08-08 7:14 ` Dmitry Antipov
2012-08-08 7:46 ` Chong Yidong
2012-08-08 10:18 ` Dmitry Antipov
2012-08-08 12:41 ` Stefan Monnier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=501FAE02.80703@yandex.ru \
--to=dmantipov@yandex.ru \
--cc=eggert@cs.ucla.edu \
--cc=emacs-devel@gnu.org \
--cc=monnier@iro.umontreal.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.