Loading ...
Sorry, an error occurred while loading the content.
 

Re: Fwd: inquiry regarding vim patch to support python3 interface

Expand Messages
  • Roland Puntaier
    Hi Bram, ... or put differently: if (command starts with :py) - following digits are interpreted as part of the command and an error results if the command is
    Message 1 of 8 , Sep 3 5:32 AM
      Hi Bram,

      > - When Vim was compiled with Python 2.x ":py3" gives an error
      > - When Vim was compiled with Python 3.x ":python" gives an error
      > - When Vim was compiled with both 2.x and 3.x both commands work

      or put differently:

      if (command starts with :py)
      - following digits are interpreted as part of the command
      and an error results if the command is not available
      - this entails that a :pyxxx command must end in non-letter and
      non-digit (but still allows '.',',','+',...)

      And we accept the potential problems mentioned earlier.

      If that's fine for you, it's fine for me, too.
      I will do the changes and send a patch to vim_dev.

      Roland


      Bram@... schrieb am 03.09.2009 13:13:27:
      >
      > Roland Puntaier wrote:
      >
      > > Hi Bram,
      > >
      > > > Having two Vim executables is a bad idea. Next you have two
      versions of
      > > > Perl, small and big features, etc. You end up with many different
      Vim
      > > > executables. It's better to try and have one executable.
      > >
      > > OK, let's have both python2.x and python3.x.
      > >
      > > But let's get a common understanding first.
      > > Then, if you feel comfortable to integrate that in the official
      sources,
      > > I can do the changes needed.
      > >
      > > > It's a lot easier if the Python script itself specifies what version
      of
      > > > Python it is for. E.g., by something in the first line. Then one
      can
      > > > use the ":python" command and get an error if the Python version
      doesn't
      > > > match. If it would be possible to build Vim with both Python 2.x
      and
      > > > 3.x then it would always work.
      > >
      > > Now I understand what you mean:
      > > the vim python command gets dispatched to a C function that pre-scans
      to
      > > see
      > > which python version to use
      > > and then calls the according ex_python() or ex_python3() C functions.
      > >
      > > First thought: For single line statements one could use a simple "3"
      to
      > > decide.
      > > But note: '3+X' is a valid python expression which could change X.
      > > Lagacy ':python3+X' would then suddenly be forwarded to python3 as
      '+X',
      > > which is also valid. This could all get undetected.
      > >
      > > So 3 cannot be used to distinguish.
      >
      > Hmm, annoying. We should have required white space after the command.
      > We could require that now. That still has the problem that this is
      > valid: ":python3 +X"
      > And would be interpreted in current Vim as ":python 3 +X"
      > But do we really care?
      >
      > I actually can't think of a useful Python command that starts with 3.
      > You can have a valid command like ":py3+4", but it has no effect, so it
      > should not actually be used. Is there anything else than an expression
      > that starts with the number 3?
      >
      > To be as backwards compatible as possible, we would require white space
      > after ":python3", but ":pythonXXX" would still be accepted. XXX would
      > need to start with a non-letter, but not a 3. To stay on the safe side
      > we should not accept any number.
      >
      > > And anyway, there is no big difference from script solution to having
      two
      > > commands.
      > > (Please comment)
      > >
      > >
      > > I suggest a new command for python 3.
      > >
      > > My favourite currently
      > > :PYTHON
      > > I know that this is contrary to the policy to use small letters for
      > > builtin ex commands,
      > > but :py3 and :python3 would have problems like the one mentioned
      above.
      > > (:_python possibly would do, too.)
      > > (please comment)
      >
      > Upper case letters are reserved for user commands. Breaking this
      > convention makes things too complicated and confusing.
      >
      > An alternative would be ":pythonthree". But that looks ugly.
      > ":pythree" is not nice either.
      >
      > Perhaps we should use ":py3", with the requirement that white space
      > follows. It's not perfect, but probably the best compromise.
      > Is ":py_3" better? Looks strange.
      >
      > - When Vim was compiled with Python 2.x ":py3" gives an error
      > - When Vim was compiled with Python 3.x ":python" gives an error
      > - When Vim was compiled with both 2.x and 3.x both commands work
      >
      >
      > --
      > hundred-and-one symptoms of being an internet addict:
      > 179. You wonder why your household garbage can doesn't have an
      > "empty recycle bin" button.
      >
      > /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net
      \\\
      > /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/
      \\\
      > \\\ download, build and distribute -- http://www.A-A-P.org ///
      > \\\ help me help AIDS victims -- http://ICCF-Holland.org ///


      --~--~---------~--~----~------------~-------~--~----~
      You received this message from the "vim_dev" maillist.
      For more information, visit http://www.vim.org/maillist.php
      -~----------~----~----~----~------~----~------~--~---
    • Matt Wozniski
      ... +1 for :py3 being the best compromise. ~Matt --~--~---------~--~----~------------~-------~--~----~ You received this message from the vim_dev maillist.
      Message 2 of 8 , Sep 5 12:42 PM
        On Thu, Sep 3, 2009 at 7:13 AM, Bram Moolenaar wrote:
        >
        > Perhaps we should use ":py3", with the requirement that white space
        > follows.  It's not perfect, but probably the best compromise.
        > Is ":py_3" better?  Looks strange.
        >
        > - When Vim was compiled with Python 2.x ":py3" gives an error
        > - When Vim was compiled with Python 3.x ":python" gives an error
        > - When Vim was compiled with both 2.x and 3.x both commands work

        +1 for ":py3" being the best compromise.

        ~Matt

        --~--~---------~--~----~------------~-------~--~----~
        You received this message from the "vim_dev" maillist.
        For more information, visit http://www.vim.org/maillist.php
        -~----------~----~----~----~------~----~------~--~---
      Your message has been successfully submitted and would be delivered to recipients shortly.