@@ -206,12 +206,20 @@ impl VirtualMachine {
206
206
207
207
vm. builtins . init_dict (
208
208
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
+ ) ,
210
214
& vm,
211
215
) ;
212
216
vm. sys_module . init_dict (
213
217
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
+ ) ,
215
223
& vm,
216
224
) ;
217
225
// let name = vm.sys_module.get_attr("__name__", &vm).unwrap();
@@ -300,7 +308,7 @@ impl VirtualMachine {
300
308
#[ cfg( any( not( target_arch = "wasm32" ) , target_os = "wasi" ) ) ]
301
309
{
302
310
let io = import:: import_builtin ( self , "_io" ) ?;
303
- let set_stdio = |name, fd, write| {
311
+ let set_stdio = |name, dunder_name , fd, write| {
304
312
let buffered_stdio = self . state . settings . buffered_stdio ;
305
313
let unbuffered = write && !buffered_stdio;
306
314
let buf = crate :: stdlib:: io:: open (
@@ -332,7 +340,7 @@ impl VirtualMachine {
332
340
let mode = if write { "w" } else { "r" } ;
333
341
stdio. set_attr ( "mode" , self . ctx . new_str ( mode) , self ) ?;
334
342
335
- let dunder_name = self . ctx . intern_str ( format ! ( "__{name}__" ) ) ;
343
+ let dunder_name = self . ctx . intern_static_str ( dunder_name ) ;
336
344
self . sys_module . set_attr (
337
345
dunder_name, // e.g. __stdin__
338
346
stdio. clone ( ) ,
@@ -341,9 +349,9 @@ impl VirtualMachine {
341
349
self . sys_module . set_attr ( name, stdio, self ) ?;
342
350
Ok ( ( ) )
343
351
} ;
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 ) ?;
347
355
348
356
let io_open = io. get_attr ( "open" , self ) ?;
349
357
self . builtins . set_attr ( "open" , io_open, self ) ?;
0 commit comments