* [Caml-list] functor question
@ 2002-07-24 4:26 Brian Naylor
2002-07-25 9:21 ` Xavier Leroy
0 siblings, 1 reply; 3+ messages in thread
From: Brian Naylor @ 2002-07-24 4:26 UTC (permalink / raw)
To: caml-list
Is there any efficiency difference between:
module Foo = Make (Bar) (Baz)
and
module Both = struct module Bar = Bar module Baz = Baz end
module Foo = Make (Both)
In other words, is it better to coalesce structures into a single functor
application rather than to apply multiple functors? Do I pay more indirection
costs in the first case? Thanks.
__________________________________________________
Do You Yahoo!?
Yahoo! Health - Feel better, live better
http://health.yahoo.com
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Caml-list] functor question
2002-07-24 4:26 [Caml-list] functor question Brian Naylor
@ 2002-07-25 9:21 ` Xavier Leroy
2002-07-25 9:55 ` [Caml-list] Functors, Modules and Indirections Thorsten Ohl
0 siblings, 1 reply; 3+ messages in thread
From: Xavier Leroy @ 2002-07-25 9:21 UTC (permalink / raw)
To: Brian Naylor; +Cc: caml-list
> Is there any efficiency difference between:
> module Foo = Make (Bar) (Baz)
> and
> module Both = struct module Bar = Bar module Baz = Baz end
> module Foo = Make (Both)
> In other words, is it better to coalesce structures into a single
> functor application rather than to apply multiple functors? Do I
> pay more indirection costs in the first case? Thanks.
Actually, you pay one more indirection in the second case (Make(Both)).
- Xavier Leroy
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Caml-list] Functors, Modules and Indirections
2002-07-25 9:21 ` Xavier Leroy
@ 2002-07-25 9:55 ` Thorsten Ohl
0 siblings, 0 replies; 3+ messages in thread
From: Thorsten Ohl @ 2002-07-25 9:55 UTC (permalink / raw)
To: caml-list
Xavier Leroy <xavier.leroy@inria.fr> writes:
> [...] you pay one more indirection [...]
Is there a theoretical reason for the native compiler not to resolve
module indirections (including inlining) statically at compile time?
[I see that it would break independent compilation for the bytecode
compiler, but the native compiler requires recompilation of dependent
modules anyway.]
Or is there a technical reason other than potential code bloat?
Or are there plane to implement it?
In most cases, the performance penalty will be only a small constant
factor, but it would be nice not having to worry about it at all ---
even in hotspots.
Curious,
-Thorsten
--
Thorsten Ohl, Physics Dept., Wuerzburg Univ. -- ohl@physik.uni-wuerzburg.de
http://theorie.physik.uni-wuerzburg.de/~ohl/ [<=== PGP public key here]
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2002-07-26 21:32 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-07-24 4:26 [Caml-list] functor question Brian Naylor
2002-07-25 9:21 ` Xavier Leroy
2002-07-25 9:55 ` [Caml-list] Functors, Modules and Indirections Thorsten Ohl
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox