@@ -172,27 +172,27 @@ static void compilerDeclareBuiltinIdents(Compiler *comp)
172172
173173static void compilerDeclareExternalFuncs (Compiler * comp , bool fileSystemEnabled )
174174{
175- externalAdd (& comp -> externals , "rtlmemcpy" , & rtlmemcpy );
176- externalAdd (& comp -> externals , "rtlstdin" , & rtlstdin );
177- externalAdd (& comp -> externals , "rtlstdout" , & rtlstdout );
178- externalAdd (& comp -> externals , "rtlstderr" , & rtlstderr );
179- externalAdd (& comp -> externals , "rtlfopen" , fileSystemEnabled ? & rtlfopen : & rtlfopenSandbox );
180- externalAdd (& comp -> externals , "rtlfclose" , fileSystemEnabled ? & rtlfclose : & rtlfcloseSandbox );
181- externalAdd (& comp -> externals , "rtlfread" , fileSystemEnabled ? & rtlfread : & rtlfreadSandbox );
182- externalAdd (& comp -> externals , "rtlfwrite" , fileSystemEnabled ? & rtlfwrite : & rtlfwriteSandbox );
183- externalAdd (& comp -> externals , "rtlfseek" , fileSystemEnabled ? & rtlfseek : & rtlfseekSandbox );
184- externalAdd (& comp -> externals , "rtlftell" , fileSystemEnabled ? & rtlftell : & rtlftellSandbox );
185- externalAdd (& comp -> externals , "rtlremove" , fileSystemEnabled ? & rtlremove : & rtlremoveSandbox );
186- externalAdd (& comp -> externals , "rtlfeof" , fileSystemEnabled ? & rtlfeof : & rtlfeofSandbox );
187- externalAdd (& comp -> externals , "rtlfflush" , & rtlfflush );
188- externalAdd (& comp -> externals , "rtltime" , & rtltime );
189- externalAdd (& comp -> externals , "rtlclock" , & rtlclock );
190- externalAdd (& comp -> externals , "rtllocaltime" , & rtllocaltime );
191- externalAdd (& comp -> externals , "rtlgmtime" , & rtlgmtime );
192- externalAdd (& comp -> externals , "rtlmktime" , & rtlmktime );
193- externalAdd (& comp -> externals , "rtlgetenv" , fileSystemEnabled ? & rtlgetenv : & rtlgetenvSandbox );
194- externalAdd (& comp -> externals , "rtlsystem" , fileSystemEnabled ? & rtlsystem : & rtlsystemSandbox );
195- externalAdd (& comp -> externals , "rtltrace" , & rtltrace );
175+ externalAdd (& comp -> externals , "rtlmemcpy" , & rtlmemcpy , true );
176+ externalAdd (& comp -> externals , "rtlstdin" , & rtlstdin , true );
177+ externalAdd (& comp -> externals , "rtlstdout" , & rtlstdout , true );
178+ externalAdd (& comp -> externals , "rtlstderr" , & rtlstderr , true );
179+ externalAdd (& comp -> externals , "rtlfopen" , fileSystemEnabled ? & rtlfopen : & rtlfopenSandbox , true );
180+ externalAdd (& comp -> externals , "rtlfclose" , fileSystemEnabled ? & rtlfclose : & rtlfcloseSandbox , true );
181+ externalAdd (& comp -> externals , "rtlfread" , fileSystemEnabled ? & rtlfread : & rtlfreadSandbox , true );
182+ externalAdd (& comp -> externals , "rtlfwrite" , fileSystemEnabled ? & rtlfwrite : & rtlfwriteSandbox , true );
183+ externalAdd (& comp -> externals , "rtlfseek" , fileSystemEnabled ? & rtlfseek : & rtlfseekSandbox , true );
184+ externalAdd (& comp -> externals , "rtlftell" , fileSystemEnabled ? & rtlftell : & rtlftellSandbox , true );
185+ externalAdd (& comp -> externals , "rtlremove" , fileSystemEnabled ? & rtlremove : & rtlremoveSandbox , true );
186+ externalAdd (& comp -> externals , "rtlfeof" , fileSystemEnabled ? & rtlfeof : & rtlfeofSandbox , true );
187+ externalAdd (& comp -> externals , "rtlfflush" , & rtlfflush , true );
188+ externalAdd (& comp -> externals , "rtltime" , & rtltime , true );
189+ externalAdd (& comp -> externals , "rtlclock" , & rtlclock , true );
190+ externalAdd (& comp -> externals , "rtllocaltime" , & rtllocaltime , true );
191+ externalAdd (& comp -> externals , "rtlgmtime" , & rtlgmtime , true );
192+ externalAdd (& comp -> externals , "rtlmktime" , & rtlmktime , true );
193+ externalAdd (& comp -> externals , "rtlgetenv" , fileSystemEnabled ? & rtlgetenv : & rtlgetenvSandbox , true );
194+ externalAdd (& comp -> externals , "rtlsystem" , fileSystemEnabled ? & rtlsystem : & rtlsystemSandbox , true );
195+ externalAdd (& comp -> externals , "rtltrace" , & rtltrace , true );
196196}
197197
198198
@@ -225,7 +225,7 @@ void compilerInit(Compiler *comp, const char *fileName, const char *sourceString
225225 comp -> lex .tok .pos = 1 ;
226226 comp -> debug .fnName = "<unknown>" ;
227227
228- lexInit (& comp -> lex , & comp -> storage , & comp -> debug , filePath , sourceString , & comp -> error );
228+ lexInit (& comp -> lex , & comp -> storage , & comp -> debug , filePath , sourceString , false, & comp -> error );
229229
230230 comp -> argc = argc ;
231231 comp -> argv = argv ;
@@ -256,7 +256,9 @@ void compilerInit(Compiler *comp, const char *fileName, const char *sourceString
256256 {
257257 char runtimeModulePath [DEFAULT_STR_LEN + 1 ] = "" ;
258258 moduleAssertRegularizePath (& comp -> modules , runtimeModuleNames [i ], comp -> modules .curFolder , runtimeModulePath , DEFAULT_STR_LEN + 1 );
259- moduleAddSource (& comp -> modules , runtimeModulePath , runtimeModuleSources [i ]);
259+
260+ const bool runtimeModuleTrusted = strcmp (runtimeModuleNames [i ], "std.um" ) == 0 ;
261+ moduleAddSource (& comp -> modules , runtimeModulePath , runtimeModuleSources [i ], runtimeModuleTrusted );
260262 }
261263}
262264
@@ -321,7 +323,7 @@ bool compilerAddModule(Compiler *comp, const char *fileName, const char *sourceS
321323 if (moduleFindSource (& comp -> modules , modulePath ))
322324 return false;
323325
324- moduleAddSource (& comp -> modules , modulePath , sourceString );
326+ moduleAddSource (& comp -> modules , modulePath , sourceString , false );
325327 return true;
326328}
327329
@@ -331,7 +333,7 @@ bool compilerAddFunc(Compiler *comp, const char *name, ExternFunc func)
331333 if (externalFind (& comp -> externals , name ))
332334 return false;
333335
334- externalAdd (& comp -> externals , name , func );
336+ externalAdd (& comp -> externals , name , func , false );
335337 return true;
336338}
337339
0 commit comments