@@ -1249,6 +1249,7 @@ namespace das
12491249 das_hash_map<string,Type> options; // options
12501250 uint64_t cumulativeHash = 0 ; // hash of all mangled names in this module (for builtin modules)
12511251 string name;
1252+ string cppClassName; // C++ class name (e.g. "Module_Math"), set by REGISTER_MODULE
12521253 uint64_t nameHash = 0 ;
12531254 string fileName; // where the module was found, if not built-in
12541255 union {
@@ -1268,15 +1269,21 @@ namespace das
12681269 };
12691270 private:
12701271 Module * next = nullptr ;
1272+ friend bool appendBuiltinModuleContent ( Module* mod, const string & modName, const unsigned char * const str, unsigned int str_len );
12711273 unique_ptr<FileInfo> ownFileInfo;
12721274 FileAccessPtr promotedAccess;
12731275 };
1276+ bool appendBuiltinModuleContent ( Module* mod, const string & modName, const unsigned char * const str, unsigned int str_len );
12741277
12751278 #define REGISTER_MODULE (ClassName ) \
12761279 DAS_EXPORT_DLL das::Module * register_##ClassName () { \
12771280 das::daScriptEnvironment::ensure (); \
12781281 ClassName * module_##ClassName = new ClassName (); \
1282+ module_##ClassName->cppClassName = #ClassName; \
12791283 return module_##ClassName; \
1284+ } \
1285+ extern " C" DAS_EXPORT_DLL das::Module * jit_register_##ClassName () { \
1286+ return register_##ClassName (); \
12801287 }
12811288
12821289 #if DAS_ENABLE_DLL
@@ -1286,6 +1293,7 @@ namespace das
12861293 if ( buildId != DAS_BUILD_ID ) return nullptr ; \
12871294 das::daScriptEnvironment::ensure (); \
12881295 ClassName * module_##ClassName = new ClassName (); \
1296+ module_##ClassName->cppClassName = #ClassName; \
12891297 return module_##ClassName; \
12901298 } \
12911299 }
@@ -1301,7 +1309,11 @@ namespace das
13011309 DAS_EXPORT_DLL das::Module * register_##ClassName () { \
13021310 das::daScriptEnvironment::ensure (); \
13031311 Namespace::ClassName * module_##ClassName = new Namespace::ClassName (); \
1312+ module_##ClassName->cppClassName = #ClassName; \
13041313 return module_##ClassName; \
1314+ } \
1315+ extern " C" DAS_EXPORT_DLL das::Module * jit_register_##ClassName () { \
1316+ return register_##ClassName (); \
13051317 }
13061318
13071319 using module_pull_t = das::Module*(*)();
0 commit comments