# Circular require warning is emitted to both stdout and stderr

**URL:** <https://www.ruby-forum.com/t/circular-require-warning-is-emitted-to-both-stdout-and-stderr/182235>\
**Category:** Development\
**Created:** [January 25, 2010, 2:59pm UTC](https://www.ruby-forum.com/t/circular-require-warning-is-emitted-to-both-stdout-and-stderr/182235 "2010-01-25T14:59:38Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [January 25, 2010, 2:59pm UTC](https://www.ruby-forum.com/t/circular-require-warning-is-emitted-to-both-stdout-and-stderr/182235/1 "2010-01-25T14:59:38Z")

</div>

e$B1sF#$G$9!#e(B

$ ./ruby -w foo.rb  
/home/mame/work/ruby/foo.rb:1: warning: loading in progress, circular  
require considered harmful - /home/mame/work/ruby/bar.rb  
from foo.rb:1:in `<main>' from foo.rb:1:in`require’  
from /home/mame/work/ruby/bar.rb:1:in `<top (required)>' from /home/mame/work/ruby/bar.rb:1:in`require’  
from /home/mame/work/ruby/foo.rb:1:in `<top (required)>' from /home/mame/work/ruby/foo.rb:1:in`require’

e$B\>e5-$Ne(B “circular require considered harmful”  
e$B$NNc30$G$9$,!"0l9TL$Oe(B  
stderr e$B$K!"Fs9TL\0J9\_$Oe(B stdout e$B$K=P$F$$$k$h$&$G$9!#e(B

$ ./ruby -w foo.rb \> /dev/null  
/home/mame/work/ruby/foo.rb:1: warning: loading in progress, circular  
require considered harmful - /home/mame/work/ruby/bar.rb

$ ./ruby -w foo.rb 2\> /dev/null  
from foo.rb:1:in `<main>' from foo.rb:1:in`require’  
from /home/mame/work/ruby/bar.rb:1:in `<top (required)>' from /home/mame/work/ruby/bar.rb:1:in`require’  
from /home/mame/work/ruby/foo.rb:1:in `<top (required)>' from /home/mame/work/ruby/foo.rb:1:in`require’

e$BL5BL$K$d$d$3$7$$$H;W$&$N$G!“H?BP$,$J$1$l$P0J2\<$N%Q%C%A$r$”$F$h$&$He(B  
e$B;W$$$^$9!#e(B

diff --git a/vm\_eval.c b/vm\_eval.c  
index 762453e…ada783d 100644  
— a/vm\_eval.c  
+++ b/vm\_eval.c  
@@ -1577,7 +1577,7 @@ print\_backtrace(void \*arg, VALUE file, int line,  
VALUE method)  
void  
rb\_backtrace(void)  
{

- vm\_backtrace\_each(GET\_THREAD(), -1, print\_backtrace, stdout);

- vm\_backtrace\_each(GET\_THREAD(), -1, print\_backtrace, stderr);  
}

VALUE

---

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [January 27, 2010, 10:38am UTC](https://www.ruby-forum.com/t/circular-require-warning-is-emitted-to-both-stdout-and-stderr/182235/2 "2010-01-27T10:38:48Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:40147] circular require warning is emitted to  
both stdout and stderr”  
on Mon, 25 Jan 2010 22:54:46 +0900, Yusuke ENDOH [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
writes:

|e$B\>e5-$Ne(B “circular require considered harmful” e$B$NNc30$G$9$,!"0l9TL$Oe(B  
|stderr e$B$K!"Fs9TL\0J9\_$Oe(B stdout e$B$K=P$F$$$k$h$&$G$9!#e(B

|e$BL5BL$K$d$d$3$7$$$H;W$&$N$G!“H?BP$,$J$1$l$P0J2\<$N%Q%C%A$r$”$F$h$&$He(B  
|e$B;W$$$^$9!#e(B

e$B%3%\_%C%H$7$F$/$@$5$$e(B

---

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [January 27, 2010, 2:35pm UTC](https://www.ruby-forum.com/t/circular-require-warning-is-emitted-to-both-stdout-and-stderr/182235/3 "2010-01-27T14:35:54Z")

</div>

e$B1sF#$G$9!#e(B

2010e$BG/e(B1e$B7ne(B27e$BF|e(B18:38 Yukihiro M.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> |e$B\>e5-$Ne(B “circular require considered harmful” e$B$NNc30$G$9$,!"0l9TL$Oe(B  
> |stderr e$B$K!"Fs9TL\0J9\_$Oe(B stdout e$B$K=P$F$$$k$h$&$G$9!#e(B
> 
> |e$BL5BL$K$d$d$3$7$$$H;W$&$N$G!“H?BP$,$J$1$l$P0J2\<$N%Q%C%A$r$”$F$h$&$He(B  
> |e$B;W$$$^$9!#e(B
> 
> e$B%3%\_%C%H$7$F$/$@$5$$e(B

e$B%3%\_%C%H$7$^$7$?e(B (r26443) e$B!#e(B
