Migrating To Five One

lua-users home
wiki

This page attempts to provide more detail on how to move from 5.0 to 5.1 than the [Incompatibilities with version 5.0] section of the Lua 5.1 manual provides.

Living without table.setn() and table.getn()

Using vararg expressions rather than 'arg'

function catchall( ... )
   for i=1,arg.n do
      print( "Argument #", i, "is", arg[ i ] )
   end

   -- Pass all arguments to another function
   show3( unpack( arg ) )
end

function show3( a, b, c )
   print( a, b, c )
end

catchall( nil, 'two', nil )
--> Argument #    1     is     nil
--> Argument #    2     is     two
--> Argument #    3     is     nil
--> nil     two     nil

function catchall( ... )
   -- Make a new table of values
   local theArguments = { ... }

   for i=1,select( '#', ... ) do
      print( "Argument #", i, "is", theArguments[ i ] )
   end

   -- Pass all arguments to another function
   show3( ... )
end

function show3( a, b, c )
   print( a, b, c )
end

catchall( nil, 'two', nil )
--> Argument #    1     is     nil
--> Argument #    2     is     two
--> Argument #    3     is     nil
--> nil     two     nil

Nesting long strings or block comments

Working with Garbage Collection

Simple Find/Replace Changes

Strings as 'objects'

C API Changes

if (index < 0 && -index <= top)
    index = top+index+1;
my* = luaL_check*(L, index, ...);

Migrating with Specific Addons or Libraries

New Module System


RecentChanges · preferences
edit · history
Last edited January 11, 2007 2:50 am GMT (diff)