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

lockvar: what is the purpose?

Expand Messages
  • Justin M. Keyes
    Hi, It seems any plugin can :unlockvar any global variable that was locked by another plugin. So, is the purpose of lockvar simply a friendly warning/sanity
    Message 1 of 4 , Apr 8, 2014
    • 0 Attachment

      Hi,

      It seems any plugin can :unlockvar any global variable that was locked by another plugin. So, is the purpose of lockvar simply a friendly warning/sanity check?

      Also, is there a speedup gained by using lockvar? (Maybe it helps the vimscript optimizer to know that variable cannot be modified?) If so, should I use lockvar whenever possible in my plugins?

      Thanks!

      Justin M. Keyes

      --
      --
      You received this message from the "vim_use" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php

      ---
      You received this message because you are subscribed to the Google Groups "vim_use" group.
      To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
      For more options, visit https://groups.google.com/d/optout.
    • Nikolay Pavlov
      ... another plugin. So, is the purpose of lockvar simply a friendly warning/sanity check? ... vimscript optimizer to know that variable cannot be modified?) If
      Message 2 of 4 , Apr 8, 2014
      • 0 Attachment


        On Apr 8, 2014 11:53 PM, "Justin M. Keyes" <justinkz@...> wrote:
        >
        > Hi,
        >
        > It seems any plugin can :unlockvar any global variable that was locked by another plugin. So, is the purpose of lockvar simply a friendly warning/sanity check?
        >
        > Also, is there a speedup gained by using lockvar? (Maybe it helps the vimscript optimizer to know that variable cannot be modified?) If so, should I use lockvar whenever possible in my plugins?

        There is no such a thing as "vimscript optimizer". There is even no separate parser: commands (and expressions) are executed as they are parsed, so even

            echo (system('touch abc')

        will create file 'abc' even though there is missing closing parenthesis. AST is never created.

        >
        > Thanks!
        >
        > Justin M. Keyes
        >
        > --
        > --
        > You received this message from the "vim_use" maillist.
        > Do not top-post! Type your reply below the text you are replying to.
        > For more information, visit http://www.vim.org/maillist.php
        >
        > ---
        > You received this message because you are subscribed to the Google Groups "vim_use" group.
        > To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
        > For more options, visit https://groups.google.com/d/optout.

        --
        --
        You received this message from the "vim_use" maillist.
        Do not top-post! Type your reply below the text you are replying to.
        For more information, visit http://www.vim.org/maillist.php

        ---
        You received this message because you are subscribed to the Google Groups "vim_use" group.
        To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
        For more options, visit https://groups.google.com/d/optout.
      • Justin M. Keyes
        ... by another plugin. So, is the purpose of lockvar simply a friendly warning/sanity check? ... vimscript optimizer to know that variable cannot be modified?)
        Message 3 of 4 , Apr 8, 2014
        • 0 Attachment


          On Apr 8, 2014 4:36 PM, "Nikolay Pavlov" <zyx.vim@...> wrote:
          >
          >
          > On Apr 8, 2014 11:53 PM, "Justin M. Keyes" <justinkz@...> wrote:
          > >
          > > Hi,
          > >
          > > It seems any plugin can :unlockvar any global variable that was locked by another plugin. So, is the purpose of lockvar simply a friendly warning/sanity check?
          > >
          > > Also, is there a speedup gained by using lockvar? (Maybe it helps the vimscript optimizer to know that variable cannot be modified?) If so, should I use lockvar whenever possible in my plugins?
          >
          > There is no such a thing as "vimscript optimizer". There is even no separate parser: commands (and expressions) are executed as they are parsed, so even
          >
          >     echo (system('touch abc')
          >
          > will create file 'abc' even though there is missing closing parenthesis. AST is never created.

          Thanks Nikolay. I was thinking that might be the response.

          So can anyone comment on the utility of lockvar? It must have been added for a reason.

          Justin M. Keyes

          --
          --
          You received this message from the "vim_use" maillist.
          Do not top-post! Type your reply below the text you are replying to.
          For more information, visit http://www.vim.org/maillist.php

          ---
          You received this message because you are subscribed to the Google Groups "vim_use" group.
          To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
          For more options, visit https://groups.google.com/d/optout.
        • Tony Mechelynck
          ... Another script may unlock the variable, yes, but that requires awareness that the variable may have been locked in the first place. Many scripts use let
          Message 4 of 4 , Apr 8, 2014
          • 0 Attachment
            On 08/04/14 22:54, Justin M. Keyes wrote:
            >
            > On Apr 8, 2014 4:36 PM, "Nikolay Pavlov" <zyx.vim@...
            > <mailto:zyx.vim@...>> wrote:
            > >
            > >
            > > On Apr 8, 2014 11:53 PM, "Justin M. Keyes" <justinkz@...
            > <mailto:justinkz@...>> wrote:
            > > >
            > > > Hi,
            > > >
            > > > It seems any plugin can :unlockvar any global variable that was
            > locked by another plugin. So, is the purpose of lockvar simply a
            > friendly warning/sanity check?
            > > >
            > > > Also, is there a speedup gained by using lockvar? (Maybe it helps
            > the vimscript optimizer to know that variable cannot be modified?) If
            > so, should I use lockvar whenever possible in my plugins?
            > >
            > > There is no such a thing as "vimscript optimizer". There is even no
            > separate parser: commands (and expressions) are executed as they are
            > parsed, so even
            > >
            > > echo (system('touch abc')
            > >
            > > will create file 'abc' even though there is missing closing
            > parenthesis. AST is never created.
            >
            > Thanks Nikolay. I was thinking that might be the response.
            >
            > So can anyone comment on the utility of lockvar? It must have been added
            > for a reason.
            >
            > Justin M. Keyes

            Another script may unlock the variable, yes, but that requires awareness
            that the variable may have been locked in the first place. Many scripts use

            let foo = "bar"

            but how many do you think use

            try
            let foo = "bar"
            catch /^Vim\%((\a\+)\)\=:E471/
            unlockvar foo
            let foo = "bar"
            endtry

            or even

            try
            let foo = "bar"
            catch
            unlet foo
            let foo = "bar"
            endtry

            ,especially if the variable foo was defined in a different script?


            Best regards,
            Tony.
            --
            Little Johnny with a grin,
            Drank up all of daddy's gin,
            Mother said, when he was plastered,
            Go to bed, you little ... love-child.

            --
            --
            You received this message from the "vim_use" maillist.
            Do not top-post! Type your reply below the text you are replying to.
            For more information, visit http://www.vim.org/maillist.php

            ---
            You received this message because you are subscribed to the Google Groups "vim_use" group.
            To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@....
            For more options, visit https://groups.google.com/d/optout.
          Your message has been successfully submitted and would be delivered to recipients shortly.