Default argument values
Brad Roberts
braddr at slice-2.puremagic.com
Thu May 20 16:21:02 PDT 2010
On Thu, 20 May 2010, bearophile wrote:
> Brad Roberts:
>
> >Converting these to helpers functions will result in a tiny little function that will be inlined, so, right back to the same basic problem.<
>
> I am not sure, but in Scala they can be virtual functions, so the HotSpot inlines/deinlines them dynamically and as needed to keep the code both fast and safe all the time.
There's a key difference.. runtime optimization.
Moving the optimizing to runtime allows the code to stay properly isolated
in terms of storage and how it's bundled for shipping to end users.
Because the default handling can be bundled on the 'right' side of the
caller/callee barrier, it eliminates the problem of replacing the
implementation with the new default and by optimizing at runtime,
eliminates the overhead of the extra function call. A win win.. except
for the cost of performing the optimizations at runtime and the vm in
general.
But that technique can't be done short of runtime optmizing, which
c-family languages (such as D) don't do.
So, choose your set of problems.. not really a single one that solves them
all yet.
Later,
Brad
More information about the Digitalmars-d
mailing list