X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/693f30b46244c152cd79cdf3ad35d4a79b866c9c..076aada113aa0566c059211416cd9214a54d763d:/src/bindings/lua/simgrid_lua.c diff --git a/src/bindings/lua/simgrid_lua.c b/src/bindings/lua/simgrid_lua.c index 09d96d851a..8c44001c3b 100644 --- a/src/bindings/lua/simgrid_lua.c +++ b/src/bindings/lua/simgrid_lua.c @@ -13,7 +13,6 @@ #include "msg/msg.h" #include "simdag/simdag.h" #include "surf/surfxml_parse.h" -#include "gras.h" #include XBT_LOG_NEW_DEFAULT_SUBCATEGORY(lua, bindings, "Lua Bindings"); @@ -24,74 +23,6 @@ int luaopen_simgrid(lua_State *L); static void sglua_register_c_functions(lua_State *L); static int run_lua_code(int argc, char **argv); -/* ********************************************************************************* */ -/* lua_stub_generator functions */ -/* ********************************************************************************* */ - -xbt_dict_t process_function_set; -xbt_dynar_t process_list; -xbt_dict_t machine_set; -static s_process_t process; - -void s_process_free(void *process) -{ - s_process_t *p = (s_process_t *) process; - int i; - for (i = 0; i < p->argc; i++) - free(p->argv[i]); - free(p->argv); - free(p->host); -} - -static int gras_add_process_function(lua_State * L) -{ - const char *arg; - const char *process_host = luaL_checkstring(L, 1); - const char *process_function = luaL_checkstring(L, 2); - - if (xbt_dict_is_empty(machine_set) - || xbt_dict_is_empty(process_function_set) - || xbt_dynar_is_empty(process_list)) { - process_function_set = xbt_dict_new_homogeneous(NULL); - process_list = xbt_dynar_new(sizeof(s_process_t), s_process_free); - machine_set = xbt_dict_new_homogeneous(NULL); - } - - xbt_dict_set(machine_set, process_host, NULL, NULL); - xbt_dict_set(process_function_set, process_function, NULL, NULL); - - process.argc = 1; - process.argv = xbt_new(char *, 1); - process.argv[0] = xbt_strdup(process_function); - process.host = strdup(process_host); - - lua_pushnil(L); - while (lua_next(L, 3) != 0) { - arg = lua_tostring(L, -1); - process.argc++; - process.argv = - xbt_realloc(process.argv, (process.argc) * sizeof(char *)); - process.argv[(process.argc) - 1] = xbt_strdup(arg); - - XBT_DEBUG("index = %f , arg = %s \n", lua_tonumber(L, -2), - lua_tostring(L, -1)); - lua_pop(L, 1); - } - lua_pop(L, 1); - //add to the process list - xbt_dynar_push(process_list, &process); - return 0; -} - -static int gras_generate(lua_State * L) -{ - const char *project_name = luaL_checkstring(L, 1); - generate_sim(project_name); - generate_rl(project_name); - generate_makefile_local(project_name); - return 0; -} - /* ********************************************************************************* */ /* simgrid API */ /* ********************************************************************************* */ @@ -185,9 +116,11 @@ static int get_clock(lua_State* L) { */ static int simgrid_gc(lua_State * L) { - if (sglua_is_maestro(L)) { - MSG_clean(); - } + // There is no need to cleanup the C world anymore, as it gets cleaned at system process closing automatically + // Maybe at some point we'll want to reintroduce this, for example when encapsulating the simulation properly + //if (sglua_is_maestro(L)) { + // MSG_clean(); + //} return 0; } @@ -214,17 +147,6 @@ static int sd_register_platform(lua_State * L) return 0; } -/* - * Register platform for gras - */ -static int gras_register_platform(lua_State * L) -{ - //surf_parse = console_parse_platform; - surf_parse_reset_callbacks(); - gras_create_environment(NULL); - return 0; -} - /** * Register applicaiton for MSG */ @@ -236,17 +158,13 @@ static int msg_register_application(lua_State * L) return 0; } -/* - * Register application for gras - */ -static int gras_register_application(lua_State * L) -{ - gras_function_register_default(run_lua_code); - //surf_parse = console_parse_application; - gras_launch_application(NULL); +static int console_init_application(lua_State *L) { + MSG_function_register_default(run_lua_code); + SIMIX_init_application(); return 0; } + static const luaL_Reg simgrid_functions[] = { {"create_environment", create_environment}, {"launch_application", launch_application}, @@ -261,11 +179,7 @@ static const luaL_Reg simgrid_functions[] = { {"msg_register_platform", msg_register_platform}, {"sd_register_platform", sd_register_platform}, {"msg_register_application", msg_register_application}, - {"gras_register_platform", gras_register_platform}, - {"gras_register_application", gras_register_application}, - /* gras sub generator method */ - {"gras_set_process_function", gras_add_process_function}, - {"gras_generate", gras_generate}, + {"init_application", console_init_application}, {NULL, NULL} }; @@ -288,7 +202,7 @@ int luaopen_simgrid(lua_State *L) XBT_DEBUG("luaopen_simgrid *****"); /* Get the command line arguments from the lua interpreter */ - char **argv = malloc(sizeof(char *) * LUA_MAX_ARGS_COUNT); + char **argv = xbt_malloc(sizeof(char *) * LUA_MAX_ARGS_COUNT); int argc = 1; argv[0] = (char *) "/usr/bin/lua"; /* Lie on the argv[0] so that the stack dumping facilities find the right binary. FIXME: what if lua is not in that location? */ @@ -441,7 +355,7 @@ static int run_lua_code(int argc, char **argv) * \param err an MSG error code * \return a string describing this error */ -const char* sglua_get_msg_error(MSG_error_t err) { +const char* sglua_get_msg_error(msg_error_t err) { static const char* msg_errors[] = { NULL,