Is there any syntactic sugar in IMCC for making a tail call? Right
now, AFAICT, the trick is to do:

   .pcc_begin
   .arg Foo
   .arg bar
   .pcc_call sub, P1 # Or whatever the syntax is to get
                     # the current continuation
   .pcc_end

But, looking at the PASM generated by pcc_4.imc (which is where I
picked this up from) that doesn't seem to actually have any benefit
because the resulting code still does a 'savetop' and an 'updatecc',
both of which are utterly unnecessary for a tail call. As Dan's pointed
out on IRC, having IMCC detect tail calls and automatically optimize
them is a no no too, but it'd be very handy if there were some sugar to
allow me to specify that it's a tail call (or a continuation
invokation). How plausible is:

   foo(...), nosave

or 

   foo(...) nosave

AFAICT the grammar should be able accommodate such changes to the
syntax.

Thoughts?

Reply via email to