[OpenBIOS] ANSI

Segher Boessenkool segher at chello.nl
Fri Jun 28 16:29:28 CEST 2002


> I am talking about the Forth engine, not the whole implementation of
> Forth words, as described in the IEEE 1275-1994.

Paflof -- Portable And Flexible Linux Open Firmware

It's not just the Forth engine :)

> We should clearly split these two parts

You can't fully separate them (you can only do it artificially, that is).

> and have a clear way of predefining dictionaries
> that are later used with paflof. Forth's strength is factorization, and
> we should use this design idea through out all the way. The base stuff
> is done and working. The fact that we don't have an
> assembler/disassembler or package support etc has nothing to do with
> paflof itself

I don't think I'll do an assembler _ever_, and the disassembler can surely
wait until client program debugging support implementation time.

> > > > Please keep types.h intact, and have it include an auto-types.h or
> > > > something like that.  Much easier if you want to bypass the automatic
> > > > stuff for whatever reason.
> > >
> > > It's enough to touch types.h before doing a "make". Another idea would
> > > be to give a parameter to conf.pl to create a default config. keeping 2
> > > instances of the same file seems a bit unclean.
> >
> > touching is not good enough, certainly not when you use CVS.  oh, and my
> > system clock tends to reset itself to 1904.
> 
> xntpd is your friend ;)

That would work, if enough open 802.11 networks existed :)  I'm on the road
a lot these days.

> But how do you want to include auto-types? We
> could include the file, and do an #ifndef type_X typedef .... #endif
> in types.h

I'm not sure anymore :)  Figure out a way to do it cleanly, with as little
code as possible, and I'm sure we'll agree.

> > > this forbids using conf.pl on the command line, as they're set by
> > > make, not sh.
> >
> > I think that's the lesser of two evils...
> 
> make -e solves the other evil ;)

That's a new make flag to me... time to read more docs, I guess.

> we should add stack checking to the prim words that need it in the
> firmware version.

Adding it to INTERPRET should be enough.  That, and a "guard area" around
the stacks (which we already have; and the guard area generates the MMU
trap, currently).

> of course one can always crash the forth engine by
> compiling crap into the dictionary but we capture most of the crashes
> when we check stack depth before we access the stack.

What about

0 EXECUTE

or anything with unaligned accesses, for example.

We _cannot_ check whether any xt (or other address) is *actually* valid.

Too much checking will slow us down too much (but yes we need a *little*
more safety brakes).

> Yes, this is quite a bit overhead, but we don't want anything to crap
> out early when we run from flash.

So write good code for boot drivers :)

> Using MMU should not be the way to go
> as many embedded systems don't have one - and those are among the
> systems that profit most from an OpenBIOS.

There's no reason to not use the MMU when you have one -- and you *need*
to use it, if you run in a host environment (instead of on raw hardware).
(In this case, the MMU is actually the OS VM system).

> I looked into the kernel code for signal handling on alpha and i386 and
> the siginfo struct is never filled on alpha, which is simply a mistake
> in the existing code.

A-ha!  Now that explains things ;)

> It is easy to fix, but I did not find the time to
> make a patch yet.

So I can assume our signals are correct posix signals, and write an actual
SEGV handler?  That's great :)


Segher


-
To unsubscribe: send mail to majordomo at freiburg.linux.de
with 'unsubscribe openbios' in the body of the message
http://www.freiburg.linux.de/OpenBIOS/ - free your system..



More information about the openbios mailing list