use crate::functions::lua_h_new::lua_h_new;
use crate::functions::lua_s_resize::luaS_resize;
use crate::functions::lua_t_init::lua_t_init;
use crate::functions::stack_init::stack_init;
use crate::macros::lua_minstrtabsize::LUA_MINSTRTABSIZE;
use crate::macros::lua_s_fix::luaS_fix;
use crate::macros::lua_s_newliteral::luaS_newliteral;
use crate::macros::registry::registry;
use crate::macros::sethvalue::sethvalue;
use crate::type_aliases::lua_state::lua_State;
use crate::type_aliases::t_value::TValue;
pub unsafe fn f_luaopen(L: *mut lua_State, _ud: *mut core::ffi::c_void) {
let g = (*L).global;
stack_init(L, L); (*L).gt = lua_h_new(L, 0, 2); sethvalue!(
L,
registry!(L) as *const TValue as *mut TValue,
lua_h_new(L, 0, 2)
); luaS_resize(L, LUA_MINSTRTABSIZE); lua_t_init(L);
luaS_fix!(luaS_newliteral(L, c"not enough memory".as_ptr())); luaS_fix!(luaS_newliteral(L, c"error in error handling".as_ptr())); (*g).GCthreshold = 4 * (*g).totalbytes;
}