
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 Yhc@haskell.org http://www.haskell.org/mailman/listinfo/yhc