
Hi everyone, It seems that b(case)...b(of)...b(endof)...b(endcase) was broken in exactly the same way as the b(do)...b(loop) commands during Fcode evaluation. This patch fixes this, which now allows the Martux/Milax CDROM images to fail gracefully rather than segfaulting: OpenBIOS for Sparc64 Configuration device id QEMU version 1 machine id 0 CPUs: 1 x SUNW,UltraSPARC-II UUID: 00000000-0000-0000-0000-000000000000 Welcome to OpenBIOS v1.0 built on May 24 2009 10:37 Type 'help' for detailed information [sparc64] Booting file 'disk' with parameters '' Not a bootable ELF image Not a Linux kernel image Not a bootable a.out image Loading FCode image... Loaded 7392 bytes entry point is 0x4000 Evaluating FCode... isn't unique. isn't unique. claim virt = ffffffffffffffff size = 0 align = 0 seek failed Can't mount root byte-load: exception caught! 0 > ATB, Mark. -- Mark Cave-Ayland - Senior Technical Architect PostgreSQL - PostGIS Sirius Corporation plc - control through freedom http://www.siriusit.co.uk t: +44 870 608 0063

On 5/24/09, Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk> wrote:
Hi everyone,
It seems that b(case)...b(of)...b(endof)...b(endcase) was broken in exactly the same way as the b(do)...b(loop) commands during Fcode evaluation. This patch fixes this, which now allows the Martux/Milax CDROM images to fail gracefully rather than segfaulting:
Thanks, applied.

Mark Cave-Ayland wrote:
It seems that b(case)...b(of)...b(endof)...b(endcase) was broken in exactly the same way as the b(do)...b(loop) commands during Fcode evaluation. This patch fixes this, which now allows the Martux/Milax CDROM images to fail gracefully rather than segfaulting:
Just remembered that I forgot to post my test case for completeness: \ Test Fcode case...of...endof...endcase \ Forth: 1 case 0 of ." zero" endof 1 of ." one" endof endcase here cc c, \ offset16 a6 c, \ 1 c4 c, \ b(case) a5 c, \ 0 1c c, 00 c, 0c c, \ b(of) 12 c, 04 c, 7a c, 65 c, 72 c, 6f c, \ b(") zero 90 c, \ type c6 c, 00 c, 10 c, \ b(endof) a6 c, \ 1 1c c, 00 c, 0b c, \ b(of) 12 c, 03 c, 6f c, 6e c, 65 c, \ b(") one 90 c, \ type c6 c, 00 c, 03 c, \ b(endof) c5 c, \ b(endcase) 00 c, \ end ATB, Mark. -- Mark Cave-Ayland - Senior Technical Architect PostgreSQL - PostGIS Sirius Corporation plc - control through freedom http://www.siriusit.co.uk t: +44 870 608 0063
participants (2)
-
Blue Swirl
-
Mark Cave-Ayland