Martin wrote:
> On 4 June 2016 at 06:11, Benjamin Peterson <benja...@python.org> wrote:
> > PEP 7 requires CPython to use C code conforming to the venerable C89
> > standard. Traditionally, we've been stuck with C89 due to poor C
> > support in MSVC. However, MSVC 2013 and 2015 implement the key
> features of C99.
> > C99 does not offer anything earth-shattering; here are the features I
> > think we'd find most interesting:
> > - Variable declarations can be on any line: removes possibly the most
> > annoying limitation of C89.
> > - Inline functions: We can make Py_DECREF and Py_INCREF inline
> > functions rather than unpleasant macros.
> > - C++-style line comments: Not an killer feature but commonly used.
> > - Booleans
> 
> My most-missed C99 feature would be designated initializers. Does MSVC
> support them? It might allow you to do away with those giant pasted slot
> tables, and just write the slots you need:
> 
> PyTypeObject PyUnicodeIter_Type = {
>     PyVarObject_HEAD_INIT(&PyType_Type, 0)
>     .tp_name = "str_iterator",
>     .tp_basicsize = sizeof(unicodeiterobject),
>     .tp_dealloc = unicodeiter_dealloc,
>     .tp_getattro = PyObject_GenericGetAttr,
>     .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
>     .tp_traverse = unicodeiter_traverse,
>     .tp_iter = PyObject_SelfIter,
>     .tp_iternext = unicodeiter_next,
>     .tp_methods = unicodeiter_methods,
> };

I checked and VC++ does actually support this, and it looks like they support 
// comments  as well.  I don't think it fully supports all of the C99 features 
- it appears 
They just cherry picked some stuff.  The C99 standard library does appear to be 
fully
supported with the exception of tgmath.h.


_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to