caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] Compiled code that uses the stack when it can.
@ 2012-11-05 19:21 Norman Hardy
  2012-11-05 19:33 ` AW: " Gerd Stolpmann
  2012-11-05 22:25 ` Pierre Chambart
  0 siblings, 2 replies; 3+ messages in thread
From: Norman Hardy @ 2012-11-05 19:21 UTC (permalink / raw)
  To: Caml List

Is there a way to get ocamlopt to leave the C sources behind?
Does ocamlopt ever use the stack to call functions that it compiled?
Does anyone know of compilers that use the stack when they can but uses the heap when it must?
Is there literature on this?
This slide set is very useful but seems to suggest that internal functions representations are treated uniformly.
http://pauillac.inria.fr/~xleroy/talks/compilation-agay.pdf

I am thinking about static code analysis to determine two or perhaps three ways free variables in a function might be handled.
It is hard enough that I would like to see if it has been done before.



^ permalink raw reply	[flat|nested] 3+ messages in thread

* AW: [Caml-list] Compiled code that uses the stack when it can.
  2012-11-05 19:21 [Caml-list] Compiled code that uses the stack when it can Norman Hardy
@ 2012-11-05 19:33 ` Gerd Stolpmann
  2012-11-05 22:25 ` Pierre Chambart
  1 sibling, 0 replies; 3+ messages in thread
From: Gerd Stolpmann @ 2012-11-05 19:33 UTC (permalink / raw)
  To: Norman Hardy; +Cc: Caml List

Am 05.11.2012 20:21:13 schrieb(en) Norman Hardy:
> Is there a way to get ocamlopt to leave the C sources behind?
> Does ocamlopt ever use the stack to call functions that it compiled?

Yes, this is even part of the normal way: Arguments are passed in  
registers, and if exceeding the number of registers, via the stack.  
Same as in C (but different details).

Only when a closure needs to be built because of incomplete arguments,  
the closure is allocated on the heap, and when the remaining arguments  
"arrive", a generated helper function shuffles the arguments back to  
registers/stack, and the function is finally called.

Gerd

> Does anyone know of compilers that use the stack when they can but  
> uses the heap when it must?
> Is there literature on this?
> This slide set is very useful but seems to suggest that internal  
> functions representations are treated uniformly.
> http://pauillac.inria.fr/~xleroy/talks/compilation-agay.pdf
> 
> I am thinking about static code analysis to determine two or perhaps  
> three ways free variables in a function might be handled.
> It is hard enough that I would like to see if it has been done before.
> 
> 
> 
> --
> Caml-list mailing list.  Subscription management and archives:
> https://sympa.inria.fr/sympa/arc/caml-list
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
> 



-- 
------------------------------------------------------------
Gerd Stolpmann, Darmstadt, Germany    gerd@gerd-stolpmann.de
Creator of GODI and camlcity.org.
Contact details:        http://www.camlcity.org/contact.html
Company homepage:       http://www.gerd-stolpmann.de
------------------------------------------------------------

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Caml-list] Compiled code that uses the stack when it can.
  2012-11-05 19:21 [Caml-list] Compiled code that uses the stack when it can Norman Hardy
  2012-11-05 19:33 ` AW: " Gerd Stolpmann
@ 2012-11-05 22:25 ` Pierre Chambart
  1 sibling, 0 replies; 3+ messages in thread
From: Pierre Chambart @ 2012-11-05 22:25 UTC (permalink / raw)
  To: caml-list

Le Mon, 5 Nov 2012 11:21:13 -0800,
Norman Hardy <norm@cap-lore.com> a écrit :

> Is there a way to get ocamlopt to leave the C sources behind?
> Does ocamlopt ever use the stack to call functions that it compiled?
> Does anyone know of compilers that use the stack when they can but
> uses the heap when it must? Is there literature on this?
> This slide set is very useful but seems to suggest that internal
> functions representations are treated uniformly.
> http://pauillac.inria.fr/~xleroy/talks/compilation-agay.pdf
> 
> I am thinking about static code analysis to determine two or perhaps
> three ways free variables in a function might be handled. It is hard
> enough that I would like to see if it has been done before.

This was studied quite extensively by Bruno Blanchet in his thesis:
http://prosecco.gforge.inria.fr/personal/bblanche/publications/BlanchetPhd00.html
-- 
Pierre

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-11-05 22:25 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-05 19:21 [Caml-list] Compiled code that uses the stack when it can Norman Hardy
2012-11-05 19:33 ` AW: " Gerd Stolpmann
2012-11-05 22:25 ` Pierre Chambart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).