Size: a a a

2021 February 16

S

Snusmumriken in pro.lua
Ага.
источник
2021 February 17

S

Snusmumriken in pro.lua
Arslan Yulbirdin
TString **p = G(L)->strcache[i];
 for (j = 0; j < STRCACHE_M; j++) {
   if (strcmp(str, getstr(p[j])) == 0)  /* hit? */
     return p[j];  /* that is it */
 }

Мдээ... И стоит оно того?
Это имеет определённые проблемы в luajit'е, там функция хеширования строк затрагивает только четыре(!) символа в них, в результате если у тебя в памяти миллиард почти одинаковых строк, то скорость работы с ними замедляется в тысячи раз. В ванильной луа такого нет.
Но в целом, оно очень сильно экономит память.

Ну смотри блин, размер десятков тысяч структур с кучей полей — зависит только от количества ключей а не их длины.
источник

AZ

Aydar Zarifullin in pro.lua
Кто-нибудь юзает lua-path?

При использовании конструкции вида

path.each(abs_in_path, function(p, mode)
 print(p)
end, {
 param = "fm";
 recurse = true;
})

Ничего не выводится хотя в папке есть и файлы и папки
источник

S

Sergey in pro.lua
Подскажите, как в lua вызывать функции из основной программы (go-lua в моем случаи)

что-то не могу понять
источник

S

Sergey in pro.lua
За ссылки буду благодарен )
источник

AZ

Aydar Zarifullin in pro.lua
Sergey
Подскажите, как в lua вызывать функции из основной программы (go-lua в моем случаи)

что-то не могу понять
Что конкретно неясно?

package main

import "github.com/Shopify/go-lua"

func main() {
 l := lua.NewState()
 lua.OpenLibraries(l)
 if err := lua.DoFile(l, "hello.lua"); err != nil {
   panic(err)
 }
}

В файле hello.lua можете писать любой lua код
источник

S

Sergey in pro.lua
Aydar Zarifullin
Что конкретно неясно?

package main

import "github.com/Shopify/go-lua"

func main() {
 l := lua.NewState()
 lua.OpenLibraries(l)
 if err := lua.DoFile(l, "hello.lua"); err != nil {
   panic(err)
 }
}

В файле hello.lua можете писать любой lua код
это у меня работает )
источник

S

Sergey in pro.lua
мне теперь нужно из lua вызвать гошную функцию
источник

S

Sergey in pro.lua
и возврат гошной функции обработать в lua :)
источник

AZ

Aydar Zarifullin in pro.lua
Sergey
мне теперь нужно из lua вызвать гошную функцию
А, не тем местом читаю...
источник

S

Sergey in pro.lua
пока я нашел только решение в виде lua модуля, который под капотом .so, но это на си...
источник

S

Sergey in pro.lua
и не ужели нету удобного варианта какого-то
источник

S

Sergey in pro.lua
источник

S

Sergey in pro.lua
видимо так...
источник

S

Sergey in pro.lua
но это для gopher-lua, а у меня go-lua
источник

S

Sergey in pro.lua
буду пробовать, но если кто сталкивался - буду благодарен за помощь
источник

S

Sergey in pro.lua
а SetGlobal разве не то?
источник

S

Sergey in pro.lua
есть еще SetFunctions
источник

S

Sergey in pro.lua
func SetFunctions(l *State, functions []RegistryFunction, upValueCount uint8)
источник

S

Sergey in pro.lua
судя по всему для go-lua это так делается
источник