Stefan Hett wrote on Mon, Jul 20, 2015 at 16:59:08 +0200:
> Please note that while testing I also found 1.7/1.8 not working with
> Python 3.4.3 as well. Error (in both cases):
>   File "gen-make.py", line 271
>     except getopt.GetoptError, e:
>                              ^
> SyntaxError: invalid syntax
> 

The 'except' comma syntax is supported by Python through 2.7 (inclusive)
and the 'except' 'as' syntax is supported by Python 2.6 and newer.
Currently, trunk advertises support for Python 2.5 and newer (so, in
particular, so do the older branches).

So, I think we should:

- For 1.7/1.8, if we expect people will try to build them with py3,
  we can apply the patch.  (The patch is correct; we must remain
  compatible with py2.5 on those branches; and we can't easily be
  compatible with py3 at the same time.)

- For trunk, I think we should convert to the 'except' 'as' syntax and
  drop py2.5 support.  (Actually, we could drop py2.6 support as well,
  as py2.6 has been EOL for nearly two years now.)

- For 1.9, it's a little late to make any changes, but I would consider
  dropping py2.5 support (and converting to the 'except' 'as' syntax),
  since for 1.9 py3 support is more important than py2.5 support.

Thoughts?

Daniel

-- 

References:

[py2.5 'except' syntax] https://docs.python.org/2.5/ref/try.html
[py2.6 'except' syntax] 
https://docs.python.org/2.6/reference/compound_stmts.html#the-try-statement
[py2.6 EOL] https://www.python.org/dev/peps/pep-0361/

> So I guess it might be worthwhile adding some check there too?
> 
> [[[
>    Detect Python >= 3.0 and error out in gen-make.py (rather than
> producing some cryptic error/callstack).
> 
>    * gen-make.py
>       (): Add python version check >= 3.0 and error out.
> ]]]
> 
> Regards,
> Stefan

> Index: gen-make.py
> ===================================================================
> --- gen-make.py       (revision 1691913)
> +++ gen-make.py       (working copy)
> @@ -28,6 +28,10 @@
>  import traceback
>  import sys
>  
> +if sys.hexversion >= 0x03000000:
> +  print("Python >= 3.0 not supported. Please use Python >= 2.5 and < 3.0")
> +  sys.exit(2)
> +
>  import getopt
>  try:
>    my_getopt = getopt.gnu_getopt

Reply via email to