Taro Muraoka wrote:

> Hi vim-dev list and Bram.
> 
> 
> I found a problem and a future concern on if_lua.  And I wrote an
> attached patch to fix those.  Please check it.
> 
> 
> Procedure to reproduce the problem is like this:
> 
> > let x = { 'v': 123 }
> > echo x
> > => {'v': 123 }
> >
> > lua x1 = vim.eval('x')
> > lua print(x1.v)
> > => 123
> >
> > lua x1.v = 999
> >
> > echo x
> > => {'v': 123}
> >
> > lua x2 = vim.eval('x')
> > lua print(x2.v)
> > => 999
> 
> Last printed '999' is not expected, it must be '123'.
> 
> 
> A future concern is LUA_ENVIRONINDEX.  LUA_ENVIRONINDEX is removed from
> Lua 5.2 entirely.  To support Lua 5.2 we must stop to use
> LUA_ENVIRONINDEX.
> 
> 
> Fortunately, a cause of the problem is confused references in
> LUA_ENVIRONINDEX.  So in my patch, I subsititute LUA_REGISTRYINDEX for
> LUA_ENVIRONINDEX, and separate some tables depend on its usage in
> LUA_REGISTRYINDEX.

I have no clue if this is the right solution.  I'll wait a few days and
if there are no comments I'll include the patch.

Would be good to have a few tests for the Lua interface.

-- 
Permission is granted to read this message out aloud on Kings Cross Road,
London, under the condition that the orator is properly dressed.

 /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
You received this message from the "vim_dev" 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

Raspunde prin e-mail lui