tag:blogger.com,1999:blog-17087850.post3790773358497737991..comments2023-10-31T06:50:41.697-04:00Comments on Factor: a practical stack language: gcc is open sores softwareSlava Pestovhttp://www.blogger.com/profile/02768382790667979877noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-17087850.post-37403900554481541492007-08-17T22:11:00.000-04:002007-08-17T22:11:00.000-04:00My experience with gcc is the opposite. I've found...My experience with gcc is the opposite. I've found a couple compiler bugs and after creating the minimal test case and reporting the bug to their bugzilla the maintainers were very helpful. I think everything I've ever submitted has been fixed... Odd that your bug has lasted so long!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-17087850.post-47259582640222461312007-08-17T13:53:00.000-04:002007-08-17T13:53:00.000-04:00Thanks guys, -fno-builtin-strlen and -fno-builtin-...Thanks guys, -fno-builtin-strlen and -fno-builtin-strcat fixed the problem.<BR/><BR/>However, I don't see why a register global should affect the string instructions at all. All gcc has to do is emit a push/pop around the string instructions to save/restore edi.Slava Pestovhttps://www.blogger.com/profile/02768382790667979877noreply@blogger.comtag:blogger.com,1999:blog-17087850.post-15185387017555482352007-08-17T13:44:00.000-04:002007-08-17T13:44:00.000-04:00pankkake: -O, -O1, -O2 all have the same issue.pankkake: -O, -O1, -O2 all have the same issue.Slava Pestovhttps://www.blogger.com/profile/02768382790667979877noreply@blogger.comtag:blogger.com,1999:blog-17087850.post-65108563662584923912007-08-17T13:40:00.000-04:002007-08-17T13:40:00.000-04:00Did you try -O2 instead?Did you try -O2 instead?pankkakehttps://www.blogger.com/profile/09822203246373995779noreply@blogger.comtag:blogger.com,1999:blog-17087850.post-16724536039926515792007-08-17T12:08:00.000-04:002007-08-17T12:08:00.000-04:00Of course it sucks that there is a regression, tha...Of course it sucks that there is a regression, that the bug you reported a few years ago pops up again.<BR/><BR/>But this only makes me wonder: don't they have a test suite to test the simple enough feature (as your test is only a couple of LOC, and the documentation isn't zillions of pages either) like global register variables? And most of all - why?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-17087850.post-59848138966828466972007-08-17T11:51:00.000-04:002007-08-17T11:51:00.000-04:00gcc expands strlen() to x86's "repnz/scasb" which ...gcc expands strlen() to x86's "repnz/scasb" which only takes input from edi. This is a major reason why x86 is the WORST ARCHITECTURE EVER.<BR/><BR/>But anyway it'll compile with -fno-builtin-strlen. Although naturally it shouldn't ICE.astrangehttps://www.blogger.com/profile/08718306051556214906noreply@blogger.comtag:blogger.com,1999:blog-17087850.post-20392113514921251732007-08-17T10:36:00.000-04:002007-08-17T10:36:00.000-04:00This is not surprising if you're wanting esi and e...This is not surprising if you're wanting esi and edi all for yourself. The library is probably trying to use repne scasb to find the null at the end. That instruction implicitly uses esi hence this problem.Curtishttps://www.blogger.com/profile/03296306438150510559noreply@blogger.comtag:blogger.com,1999:blog-17087850.post-68611687273795111222007-08-17T04:54:00.000-04:002007-08-17T04:54:00.000-04:00Everything will be compiled. This won't affect the...Everything will be compiled. This won't affect the tooling at all.Slava Pestovhttps://www.blogger.com/profile/02768382790667979877noreply@blogger.comtag:blogger.com,1999:blog-17087850.post-6410302679784562252007-08-17T04:51:00.000-04:002007-08-17T04:51:00.000-04:00Good evening Slava,In yor comment about removal of...Good evening Slava,<BR/><BR/>In yor comment about removal of the interpreter, are you saying that there will no interface as currently or that all definitions will be automatically compiled?<BR/><BR/>regards<BR/><BR/>Bruce Rennie<BR/>(God's Own Country Downunder)Anonymousnoreply@blogger.com