>>>>> Martin Maechler <maech...@stat.math.ethz.ch> >>>>> on Wed, 23 Aug 2017 09:10:20 +0200 writes:
>>>>> Peter Bosa <peter.b...@oregonmetro.gov> >>>>> on Tue, 22 Aug 2017 14:39:50 +0000 writes: >> Hello, I've noticed the following error using repeat{} / break in R 3.4.1 running on Windows 10 and Windows Server 2008 (both 64-bit environments). >> When running a repeat function, the break command causes an error message if the repeat command refers to code within a file, but does not produce an error if the code is contained within the repeat{} command. >> Hello, I've noticed the following error using repeat{} / break in R 3.4.1 running on Windows 10 and Windows Server 2008 (both 64-bit environments). >> >> When running a repeat function, the break command causes an error message if the repeat command refers to code within a file, but does not produce an error if the code is contained within the repeat{} command. >> >> For example, the following code runs fine: >> >> x <- 1 >> y <- 5 >> >> repeat { >> if(x < y) { >> print("No Break Dance :-(") >> x = x + 1 >> } else { >> print("Break Dance!") >> break >> } >> } >> >> [1] "No Break Dance :(" >> [1] "No Break Dance :(" >> [1] "No Break Dance :(" >> [1] "No Break Dance :(" >> [1] "No Break Dance :(" >> [1] "Break Dance!" >> > >> >> However, if I take the loop contents of the repeat{} function, and save them to a file (breakTest.R) that contains the following: >> >> if(x < y) { >> print("No Break Dance :-(") >> x = x + 1 >> } else { >> print("Break Dance!") >> break >> } >> >> And then run the following code: >> >> x <- 1 >> y <- 5 >> >> repeat{ >> source("./breakTest.R") >> } >> >> I get the following error: >> >> [1] "No Break Dance :(" >> [1] "No Break Dance :(" >> [1] "No Break Dance :(" >> [1] "No Break Dance :(" >> [1] "No Break Dance :(" >> [1] "Break Dance!" >> Error in eval(ei, envir) : no loop for break/next, jumping to top level >> > >> >> This was not an issue with previous versions of R that I have used, including 3.3.3. >> >> Any suggestions? Is this a known bug with 3.4.1? > Thank you, Peter! > I can confirm what you are seeing (on Linux) in R version 3.4.0, > 3.4.1, and "R devel", and also that this had worked w/o a > problem in earlier versions of R, where I've looked at > R version 3.3.3 and 3.2.5. > I do think this is a bug, but it was not known till now. > For ease of use, I attach the two R files to easily reproduce. > Note I use writeLines() instead of print() as its output is "nicer". > Best regards, > Martin Maechler, ETH Zurich Trying again with the two attachment. Yes, I of all people (!!) should know that they must have an allowed MIME type; in this case text/plain ! Martin
## see ./break-source_R341.R if(x < y) { writeLines("No Break Dance :-(") x <- x + 1 } else { writeLines("Break Dance!") break }
## From: Peter Bosa <peter.b...@oregonmetro.gov> ## To: "R-devel@r-project.org" <R-devel@r-project.org> ## Subject: [Rd] Possible repeat{} / break function bug in R 3.4.1 ## Date: Tue, 22 Aug 2017 14:39:50 +0000 ## Hello, I've noticed the following error using repeat{} / break in R 3.4.1 running on Windows 10 and Windows Server 2008 (both 64-bit environments). ## When running a repeat function, the break command causes an error message if the repeat command refers to code within a file, but does not produce an error if the code is contained within the repeat{} command. ## For example, the following code runs fine: x <- 1 y <- 5 repeat { if(x < y) { writeLines("No Break Dance :-(") x <- x + 1 } else { writeLines("Break Dance!") break } } ## No Break Dance :( ## No Break Dance :( ## No Break Dance :( ## No Break Dance :( ## No Break Dance :( ## Break Dance! ## > ## However, if I take the loop contents of the repeat{} function, and save ## them to a file (breakTest.R) that contains the following: ## ^^^^^^^^^^^ ## __SEE THAT FILE__ ## if(x < y) { ## writeLines("No Break Dance :-(") ## x = x + 1 ## } else { ## writeLines("Break Dance!") ## break ## } ## And then run the following code: x <- 1 y <- 5 repeat{ source("./breakTest.R") } cat("successfully finished\n") ## I get the following error: ## No Break Dance :( ## No Break Dance :( ## No Break Dance :( ## No Break Dance :( ## No Break Dance :( ## Break Dance! ## Error in eval(ei, envir) : no loop for break/next, jumping to top level ## ^^^^^^^^^^^^^^^^^^^^ ## This was not an issue with previous versions of R that I have used, including 3.3.3. ## MM: It does work in R 3.3.3, indeed ## -- it fails in R 3.4.0 and later ## Any suggestions? Is this a known bug with 3.4.1? ## Cheers- ## Peter ## ---------------------------------------------------------------- ## peter bosa ## metro ## modeling services ## 600 ne grand ave ## portland, or 97232 ## peter.b...@oregonmetro.gov<mailto:peter.b...@oregonmetro.gov> ## 503.797.1771 ## metro | making a great place ## www.oregonmetro.gov
______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel