- ✅ COMPLETELY FIXED: Blocked exit messages printing "0" instead of message text
- Issue:
exit_get_messagebuiltin used push/pull mechanism which failed, causingprintln(exit.message)to print "0" - Root Cause: Two-part issue:
exit_get_messageused push/pull mechanism vs direct storageprintln()didn't know string addresses should useprint_paddrinstead ofprint_num
- Complete Fix:
- Updated
exit_get_messageto use direct storage likeexit_get_destination - Created new
print_message()builtin that usesprint_paddrfor string addresses - Updated mini_zork.grue to use
print_message(exit.message)instead ofprintln(exit.message)
- Updated
- Files Changed:
src/grue_compiler/codegen_builtins.rs(lines 1467-1479, 1500-1530)src/grue_compiler/codegen.rs(line 5849)src/grue_compiler/semantic.rs(line 87)src/grue_compiler/ir.rs(lines 1073, 1128)examples/mini_zork.grue(line 388)
- Additional Fix: Moved
result_varallocation inget_exitfunction to proper scope for both "found" and "not found" paths
- Issue:
Original Issue:
You are standing in an open field west of a white house, with a boarded front door.
There is a small mailbox here.
> east
0> quit
Are you sure you want to quit? (y/n)
Expected Result:
> east
The door is boarded and you can't remove the boards.