On Wed, Aug 10, 2011 at 5:58 AM, Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk> wrote:
On 09/08/11 22:55, William Hahne wrote:

BootX will sometimes set the stdout variable to null and then
subsequently call io-emit which can eventually result in an infinite loop.

Index: forth/admin/iocontrol.fs
===================================================================
--- forth/admin/iocontrol.fs (revision 1041)
+++ forth/admin/iocontrol.fs (working copy)
@@ -80,6 +80,7 @@
 ;
 : io-emit ( char -- )
+  stdout @ 0= if drop exit then \ make sure stdout pointer is not null
   io-out-char c!
   io-out-char 1 " write" stdout @ $call-method drop
 ;

Hmmm isn't this just hiding another bug which is that the stdout variable/defer is being set?


I think it is a bug in BootX (at least I would call it a bug.) Modifying BootX isn't a particularly realistic option so the workaround is necessary.
 

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

Sirius Labs: http://www.siriusit.co.uk/labs

--
OpenBIOS                 http://openbios.org/
Mailinglist:  http://lists.openbios.org/mailman/listinfo
Free your System - May the Forth be with you

William Hahne