[OpenBIOS] PATCH: Implement Forth source debugger for OpenBIOS
mark.cave-ayland at siriusit.co.uk
Mon Nov 2 16:02:34 CET 2009
Segher Boessenkool wrote:
> Unfortunately, SEMIS is _the_ hotspot in profiles of any ITC/DTC, followed
> by DOCOL. I never profiled NEXT separately, it is best to inline it into
> most words. Your approach will slow down the engine by anywhere from
> when not debugging.
Interesting - thanks for your comments on this. I'd like to get an idea
as to what kind of impact the patch has as it stands. Is there a
standard benchmark for Forth implementations? Or alternatively some word
implementations that will stretch the kernel, for example Fibonacci,
Mandelbrot etc. that I can use for comparison?
Given that OpenBIOS is not performance critical, I think it is
acceptable to allow a slight degradation in speed over the ease of use
of debugging. Perhaps another scenario would be to make the debugger an
optional compile-time feature for those people that require the best
> Did you try to change the actual compiled Forth code at runtime? That's
> all other Forth debuggers do it.
Possibly; there are probably several ways in which you can implement
something like this. One of the reasons for going the C route was that I
wanted to analyse the rstack in detail; OpenBIOS unfortunately is not
standards-compliant Forth in that some words pop information from the
rstack which they did not put there themselves.
In its current form, the patch allows me to trace through words that do
this since it doesn't rely on iterating through the rstack. I'm not sure
whether the Open Firmware code works in this way though.
> You can probably lift most code you need directly from Mitch Bradley's Open
> Firmware implementation.
I'm not sure that we can; a brief look at the documentation shows that
there appears to be a mixture of licenses involved :( Without a clear
statement from the core team as to what you can and cannot do, I am
quite hesitant in going down this particular route.
Mark Cave-Ayland - Senior Technical Architect
PostgreSQL - PostGIS
Sirius Corporation plc - control through freedom
t: +44 870 608 0063
Sirius Labs: http://www.siriusit.co.uk/labs
More information about the OpenBIOS