[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Dynamic loading progress
From: |
Daniel Colascione |
Subject: |
Re: Dynamic loading progress |
Date: |
Sun, 13 Sep 2015 07:31:10 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 |
On 09/13/2015 07:27 AM, Philipp Stephani wrote:
> Daniel Colascione <address@hidden <mailto:address@hidden>> schrieb
> am So., 13. Sep. 2015 um 16:15 Uhr:
>
> On 09/13/2015 06:04 AM, Philipp Stephani wrote:
> > Daniel Colascione <address@hidden <mailto:address@hidden>
> <mailto:address@hidden <mailto:address@hidden>>> schrieb
> > am So., 15. Feb. 2015 um 21:21 Uhr:
> >
> > typedef struct emacs_value_tag* emacs_value;
> >
> >
> > Would it make sense to not use a typedef here? Using a typedef means
> > that the type including its size is opaque and subject to change,
> which
> > can break ABI compatibility. I'd rather have something like:
> >
> > struct emacs_value {
> > // contains private fields
> > };
> >
> > and then pass /struct emacs_value*/ around.
>
> You may have missed the "*" in the typedef. The difference is stylistic.
> There's no difference between foo and bar here.
>
> typedef struct valuex* value;
> void foo(struct valuex* x);
> void bar(value y);
>
> I find the typedef much more readable, however.
>
>
> There's no difference in your design, but using a typedef makes it
> possible to use a non-pointer type without changing the API in obvious
> ways.
> E.g. Linus is strongly against such
> typedefs: http://lkml.iu.edu/hypermail/linux/kernel/0206.1/0402.html
Linus is also against integer overflow checking. So what? I can't stand
argumentum ad Linus.
I still find the typedef more readable, because to users, emacs_value is
an opaque type, and the fact that we implement it as a pointer is
irrelevant.
signature.asc
Description: OpenPGP digital signature
- Re: Dynamic loading progress, (continued)
- Re: Dynamic loading progress, Michael Albinus, 2015/09/15
- Re: Dynamic loading progress, Stephen J. Turnbull, 2015/09/13
- Re: Dynamic loading progress, Daniel Colascione, 2015/09/13
- Re: Dynamic loading progress, Stefan Monnier, 2015/09/14
- Re: Dynamic loading progress, Stephen J. Turnbull, 2015/09/14
- Re: Dynamic loading progress, Stephen Leake, 2015/09/14
- Re: Dynamic loading progress, Stephen J. Turnbull, 2015/09/14
Re: Dynamic loading progress, Philipp Stephani, 2015/09/13