Merged OS2 changes and new compiler changes.
OS2 changes tag external entry points with a calling convention (the C
compiler supports several).
New compiler changes:
Fixed continuation bug on i386. An incorrect continuation was being
left as garbage on the stack, where the i386 expected #f if the value
was expected to be discarded.
coerce_to_compiled now understands arity dispatched entities. There
are now several places where procedures are turned into trampolines.
These ought to be rationalized.
Fixed incorrect arity in coerce_to_compiled.
Fixed but with failure cases when applying a compiled procedure from
PRIMITIVE_APPLY from a compiled context.
These type-in (i.e. interpreted) test cases now all give correct and
parsable error stack frames:
. The original bug case (...->primitive APPLY->apply_compiled_from_primitive)
((access apply-2 (->environment '(runtime apply)))
make-list '(1 2 3 4 5 6 7 8 9 10))
. Primitive called from interpreted context (...->apply_compiled_procedure)
((make-primitive-procedure 'apply) make-list '(1 2 3 4 5 6 7 8 9 10))
. Compiled procedure called from interpreted context
(...->apply_compiled_procedure)
(make-list 1 2 3 4 5 6 7 8 9 10)
. Compiled procedure called from interpreted context
(...-> compiled funcall->short_circuit_apply_5->comutil_apply)
((access apply-2 (->environment '(runtime apply))) make-list '(1 2 3 4))