07.01.14 21:53, Antoine Pitrou написав(ла):
Several core developers a bit unhappy with the way Argument Clinic
currently scatters generated code into hand-written C modules. The
opinion is that it makes C files more confusing and annoying to
navigate through.

Several solutions have been proposed:
- move all generated code to separate C files, which would then be
   #included'd into the main module file

Only this option will solve all my issues.

My arguments against current behavior:

* It increases the number of lines of code.

  now   with Argument Clinic

  1770       2704     Modules/audioop.c
  1572       1997     Modules/binascii.c
  3772       4558     Modules/_elementtree.c
  2712       3360     Modules/_sre.c
  3060       3742     Modules/_tkinter.c

More PageUp/PageDown needed to list the sources, and you should be more accurate wish positioning the scrollbar.

* It adds a lot of names which clutter up lists for navigation in your editor/IDE. For example if now there is only one name for the a2b_uu function in navigation list, with Argument Clinic there are three names: BINASCII_A2B_UU_METHODDEF, binascii_a2b_uu, and binascii_a2b_uu_impl (and only the last is interested for humans). If now the list of names fits in one screen, with Argument Clinic it will need three screens.

* It makes harder to use search for navigation. Now a2b_uu is occurred in the source file 6 times, and with Argument Clinic it will be occurred 13 times (however moving generated code to separate file will decrease this number to 3).

* It mixes manually written code with generated boilerplate

* It clutters up hg log and hg blame results. Every time when you change clinic.py to generate different output, it touches multiple lines in all files which use Argument Clinic and clutters up their history.

* It makes the code more errorprone. Peoples can edit generated code instead of clinic declaration.

I have converted enough code to Argument Clinic last days and I seen how peoples work with already converted code, so I known what I say. If this doesn't convince you, I don't know what I can add.

_______________________________________________
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