[OpenBIOS] Found out why replacing '\r' with '\n' works
Mark Cave-Ayland
mark.cave-ayland at ilande.co.uk
Tue Apr 19 09:32:59 CEST 2016
On 19/04/16 07:39, Segher Boessenkool wrote:
> On Tue, Apr 19, 2016 at 01:17:30AM -0400, Programmingkid wrote:
>> The executing one line at a time idea turned out to be a pretty good idea. That is enough to make Mac OS 9.2 boot. It is also entertaining to watch each executed line be printed to the terminal. Here is the patch:
>
> [ LONG LINES ]
>
> If you look at forth/bootstrap/interpreter.fs, you see EVAL already
> handles multiple lines, but only with unix line endings:
>
> : evaluate ( str len -- ?? )
> 2dup + -rot
> over + over do
> i c@ 0a = if
> i over -
> (evaluate)
> i 1+
> then
> loop
> swap over - (evaluate)
> ;
>
> So, change that instead? Or rewrite it, it's yucky. Bonus points if
> you also handle 0d 0a and 0a 0d line endings.
... which is what the original patch was trying to do last year:
http://www.openfirmware.info/pipermail/openbios/2015-August/008781.html.
This works for OS X but causes yaboot to throw errors on the console.
I still feel we're lacking a good explanation as to why processing this
on a line-by-line basis makes a difference, and how the r-stack problem
is being mitigated in this case.
ATB,
Mark.
More information about the OpenBIOS
mailing list