Lua: falha na função global após o carregamento do arquivo

Estou tentando chamar uma função dentro de um arquivo lua chamado test2.lua Este é o conteúdo de test2.lua:

function abc(path)
 t = {}
 table.insert(t, "a")
 return t
end

omo você pode ver, é necessária uma única entrada e retorna uma strin

Aqui está o meu código C. É bem simples. No entanto, minha chamada getglobal para chamar essa função não funciona ... lua_getglobal diz que não é uma função quando eu a testo ... Alguma razão para isso? O abc não deve ser uma função global retornável dentro do arquivo de origem? Por que, então, ele não encontra nada para esse global?

L = lua_open();
luaL_openlibs(L);
luaL_loadfile(L, "src/test2.lua");

lua_getglobal(L, "abc");

lua_pushstring(L, "coollll");

int error = 0;
if ((error = lua_pcall(L, 1, 1, 0)) == 0)
{
    std::cout << "cool";
}

EDITAR

calling lua_getglobal está fazendo com que o meu programa quebre o controle, independentemente do uso de loadfile ou dofile ... alguma idéia do porqu

lua_getglobal crashing program

questionAnswers(2)

yourAnswerToTheQuestion