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