Hi!

Thanks!

Maybe we can create a repo on github to share them?

I can create one, yes I prefer github than PHP's git, much easier to
manage, issues, etc

Cheers,
Pierre
On May 9, 2015 11:10 AM, "Levi Morrison" <le...@php.net> wrote:

> On Fri, May 8, 2015 at 7:13 AM, Levi Morrison <le...@php.net> wrote:
> > On Fri, May 8, 2015 at 5:01 AM, Pierre Joye <pierre....@gmail.com>
> wrote:
> >> On May 8, 2015 4:42 AM, "Christoph Becker" <cmbecke...@gmx.de> wrote:
> >>>
> >>> Nikita Popov wrote:
> >>>
> >>> > [...] What's our current minimum required vc version?
> >>>
> >>> As of PHP 5.5 at least VC11 (Visual Studio 2012) is required for
> Windows
> >>> builds.  The currently available snapshots of master are also built
> with
> >>> VC11[1].
> >>
> >> We are in the process of testing latest or better said the upcoming next
> >> version of VC.
> >>
> >> However it is a long process. We use a couple of libs to test c99
> support.
> >>
> >> What could be amazingly helpful, not only for VC, is some sample codes
> >> using what we are most likely to use intensively from c99. It will
> allow is
> >> to valid them against various compilers as well as clearly define what
> we
> >> can support in the CS, all compilers we are likely to support for 7,
> >> including VC, ICC or older GCC.
> >>
> >> Cheers,
> >
> > I am quite sure we would use these features:
> >
> >   - compound literals (this would allow for zend_string* at compile time)
> >   - designated initializers
> >
> > I'll work on some code examples later today if someone hasn't beaten
> > me to it by then.
>
> Here is a self-contained example of designated initializers:
>
> struct Point {
>     int x;
>     int y;
> };
>
> int main(void) {
>     struct Point p = {
>         .y = 2,
>         .x = 1,
>     };
>     return !(p.x == 1 && p.y == 2);
> }
>
> And here is compound literals:
>
> #include <stddef.h>
>
> struct sstring {
>     size_t len;
>     char *val;
> };
>
> static struct sstring str;
>
> int main(void) {
>     str = (struct sstring) {
>         sizeof("hello, world") - 1,
>         "hello, world"
>     };
>     return !(str.len == sizeof("hello, world") - 1);
> }
>
>
> I expect in some cases we may even use them together. This particular
> example doesn't really show why, but sometimes we have two uint32_t's
> in a row and initializing them with a name helps make the code more
> understandable:
>
> #include <stddef.h>
>
> struct sstring {
>     size_t len;
>     char *val;
> };
>
> static struct sstring str;
>
> int main(void) {
>     str = (struct sstring) {
>         .len = sizeof("hello, world") - 1,
>         .val = "hello, world",
>     };
>     return !(str.len == sizeof("hello, world") - 1);
> }
>

Reply via email to