fuzion icon indicating copy to clipboard operation
fuzion copied to clipboard

AoC issue: Surprise infinite loop

Open fridis opened this issue 2 years ago • 1 comments

These two loops

 > cat test_loop2.fz
for i := 0, i+1
while i < 3
do
  say "hi"

for i := 0, i+1
until i > 3
do
  say "hey!"

behave completely differently, the second loop are actually two loops where the last one is an infinite loop:

 > ./build/bin/fz test_loop2.fz | head -n 10
hi
hi
hi
hey!
hey!
hey!
hey!
hey!
hey!
hey!

Removing one LF

for i := 0, i+1
while i < 3 do
  say "hi"

for i := 0, i+1
until i > 3 do
  say "hey!"

crashes fz:

 > ./build/bin/fz test_loop1.fz | head -n 10

error 1: java.util.EmptyStackException
	at java.base/java.util.Stack.peek(Stack.java:101)
	at java.base/java.util.Stack.pop(Stack.java:83)
	at dev.flang.fuir.analysis.AbstractInterpreter.pop(AbstractInterpreter.java:380)
	at dev.flang.fuir.analysis.AbstractInterpreter.process(AbstractInterpreter.java:619)
	at dev.flang.fuir.analysis.AbstractInterpreter.process(AbstractInterpreter.java:515)
	at dev.flang.fuir.analysis.AbstractInterpreter.process(AbstractInterpreter.java:478)
	at dev.flang.be.jvm.JVM.codeForRoutine(JVM.java:1126)
	at dev.flang.be.jvm.JVM.code(JVM.java:843)
	at dev.flang.be.jvm.JVM$CompilePhase$3.compile(JVM.java:465)
	at dev.flang.be.jvm.JVM.lambda$createCode$0(JVM.java:817)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
	at java.base/java.util.stream.ReferencePipeline$Head.forEachOrdered(ReferencePipeline.java:772)
	at dev.flang.be.jvm.JVM.createCode(JVM.java:810)
	at dev.flang.be.jvm.JVM.compile(JVM.java:795)
	at dev.flang.tools.Fuzion$Backend$3.process(Fuzion.java:163)
	at dev.flang.tools.Fuzion$Backend.processFrontEnd(Fuzion.java:444)
	at dev.flang.tools.Fuzion.lambda$parseArgsForBackend$3(Fuzion.java:908)
	at dev.flang.tools.Tool.lambda$run$0(Tool.java:145)
	at dev.flang.util.Errors.runAndExit(Errors.java:790)
	at dev.flang.tools.Tool.run(Tool.java:145)
	at dev.flang.tools.Fuzion.main(Fuzion.java:557)


*** fatal errors encountered, stopping.

fridis avatar Dec 13 '23 23:12 fridis

not yet fixed, it seems

michaellilltokiwa avatar Apr 26 '24 14:04 michaellilltokiwa