@@ -206,12 +206,20 @@ impl VirtualMachine {
206206
207207 vm. builtins . init_dict (
208208 vm. ctx . intern_str ( "builtins" ) ,
209- Some ( vm. ctx . intern_str ( stdlib:: builtins:: DOC . unwrap ( ) ) . to_owned ( ) ) ,
209+ Some (
210+ vm. ctx
211+ . intern_static_str ( stdlib:: builtins:: DOC . unwrap ( ) )
212+ . to_owned ( ) ,
213+ ) ,
210214 & vm,
211215 ) ;
212216 vm. sys_module . init_dict (
213217 vm. ctx . intern_str ( "sys" ) ,
214- Some ( vm. ctx . intern_str ( stdlib:: sys:: DOC . unwrap ( ) ) . to_owned ( ) ) ,
218+ Some (
219+ vm. ctx
220+ . intern_static_str ( stdlib:: sys:: DOC . unwrap ( ) )
221+ . to_owned ( ) ,
222+ ) ,
215223 & vm,
216224 ) ;
217225 // let name = vm.sys_module.get_attr("__name__", &vm).unwrap();
@@ -300,7 +308,7 @@ impl VirtualMachine {
300308 #[ cfg( any( not( target_arch = "wasm32" ) , target_os = "wasi" ) ) ]
301309 {
302310 let io = import:: import_builtin ( self , "_io" ) ?;
303- let set_stdio = |name, fd, write| {
311+ let set_stdio = |name, dunder_name , fd, write| {
304312 let buffered_stdio = self . state . settings . buffered_stdio ;
305313 let unbuffered = write && !buffered_stdio;
306314 let buf = crate :: stdlib:: io:: open (
@@ -332,7 +340,7 @@ impl VirtualMachine {
332340 let mode = if write { "w" } else { "r" } ;
333341 stdio. set_attr ( "mode" , self . ctx . new_str ( mode) , self ) ?;
334342
335- let dunder_name = self . ctx . intern_str ( format ! ( "__{name}__" ) ) ;
343+ let dunder_name = self . ctx . intern_static_str ( dunder_name ) ;
336344 self . sys_module . set_attr (
337345 dunder_name, // e.g. __stdin__
338346 stdio. clone ( ) ,
@@ -341,9 +349,9 @@ impl VirtualMachine {
341349 self . sys_module . set_attr ( name, stdio, self ) ?;
342350 Ok ( ( ) )
343351 } ;
344- set_stdio ( "stdin" , 0 , false ) ?;
345- set_stdio ( "stdout" , 1 , true ) ?;
346- set_stdio ( "stderr" , 2 , true ) ?;
352+ set_stdio ( "stdin" , "__stdin__" , 0 , false ) ?;
353+ set_stdio ( "stdout" , "__stdout__" , 1 , true ) ?;
354+ set_stdio ( "stderr" , "__stderr__" , 2 , true ) ?;
347355
348356 let io_open = io. get_attr ( "open" , self ) ?;
349357 self . builtins . set_attr ( "open" , io_open, self ) ?;
0 commit comments