Dennis Clarke <dcla...@blastwave.org> added the comment:

I very likely do not understand what is happening here. From my little
perspective the Python project has become far too critical to be yet
another language that can not be ported and used just about anywhere. I
often port software from various places into strange machines and even
onto z/OS mainframe type places. There is nothing more beautiful than
to take some C89 clean code and watch it just work. Flawlessly. Even the
OpenSSL project is locked neatly to that old C89 standard. I have tried
to get into a discussion about C99 but was always flatly told that we
need OpenSSL to work everywhere. Pretty much on anything that you can
get a compiler will do just fine. With the exception of some very small
embedded devices or tight memory constraints. It just works. Sadly the
Go Programming language is not like that. Neither is Rust. When I look
at The Python Project "Style Guide for C Code" here : 

    https://www.python.org/dev/peps/pep-0007/ 

The message is clearly stated :

    Python versions greater than or equal to 3.6 use C89 with 
    several select C99 features:

        - Standard integer types in <stdint.h> and <inttypes.h>.
            We require the fixed width integer types.

        - static inline functions

        - designated initializers (especially nice for type
                                                 declarations)

        - intermingled declarations

        - booleans

        - C++-style line comments

    Future C99 features may be added to this list in the future
    depending on compiler support (mostly significantly MSVC).

    Don't use GCC extensions (e.g. don't write multi-line strings
                                       without trailing backslashes).

    All function declarations and definitions must use full prototypes
         (i.e. specify the types of all arguments).

    Only use C++ style // one-line comments in Python 3.6 or later.

    No compiler warnings with major compilers (gcc, VC++, a few others).

That last line is a bit of a dream but I didn't write that. I merely 
took a copy from the "Style Guide for C Code".  So perhaps that needs a
rewrite and just state that the code will be mostly C99 safe and maybe
it would be best to just say iso9899:2011 and keep on plowing forwards.

One thing is certain, I built the OpenSSL 3.0.0 beta1 software on a pile
of systems in the last few weeks and then rebuilt a pile of dependant
libs and tools. They all work. Curl and libCurl is flawless. I am trying
to get Apache httpd 2.4.x ( and also trunk ) built and running. The only
major piece missing, critical and really important, is Python.  OKay I 
also have issues with ISC Bind but they seem to be drinking some strange
brew lately and their unit tests and other code has gone crab sideways.
That is another problem in someone elses backyard.  Python however looks
to be very highly portable and it just works on everything. Pretty much.

So having said all that should this just be iso9899:2011 with no major
surprises?

ps: from the "Style Guide for C Code" we also see these gems : 

        Use 4-space indents and no tabs at all.

        No line should be longer than 79 characters. If this and the
        previous rule together don't give you enough room to code, your
        code is too complicated -- consider using subroutines.

        No line should end in whitespace. If you think you need significant
        trailing whitespace, think again -- somebody's editor might delete
        it as a matter of routine.

Those are just priceless old rules from the Fortan punchcard days.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue44789>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to