Hi Rob,
Yes some operations are represented through bytecode operations and some
through FFI calls.
Your proposal is an interesting idea but, as I see it, it does have some
disadvantages:
- It's not very extensible, if we need to add more operations and
we've run out of reserved codes then it would be necessary to change
the bytecode format.
- It would introduce instructions with complex bit packed arguments.
It's generally reckoned to be a good idea to avoid bit packing
arguments in an interpreter because it's actually really expensive
(and fiddly) to decode them.
- It's a little more symmetrical than the current system but it is
still quite asymmetrical; for example it could be argued "Why make a
special case for the numeric functions?".
For example, compare putChar with floating point signum; putChar
might be called hundreds of times in one program but I've never even
seen a program that actually uses floating poing signum!
- There's nothing very wrong with the current system. It is a little
asymmetrical but it's not a big problem. There would be more of a
case to removing the numeric bytecodes and just using the FFI
interface (as Hugs does) but I'm a big fan of:
"if it aint broke, don't fix it".
So I would vote in favour of leaving it as it is, but please keep the
suggestions comming :-)
Thanks
Tom
Robert Dockins wrote:
Hello,
A few weeks ago I was thinking about the strange situation with Yhc's
numeric primitives. Some of them are in the bytecode set, and some are
handled through the FFI (at least I think that's what's happening).
Thinking about it led me to decide it would be better to somehow
represent all the numeric primitives as bytecode operations. So, I
wrote up a proposal. Anyone who is interested can check it out at:
http://haskell.org/haskellwiki/Image:Num-bytecodes.txt
The ideas are about 3/4 baked (which is to say, somewhat more than
half-baked ;-) ) I think the integer stuff is pretty good, and the
floating point is OK. I'm less sure about the pointer stuff. At any
rate, I thought I'd share the proposal so it doesn't become completely
lost in the dark recesses of my home directory.
Rob Dockins
Speak softly and drive a Sherman tank.
Laugh hard; it's a long way to the bank.
-- TMBG
_______________________________________________
Yhc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/yhc
_______________________________________________
Yhc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/yhc