[e-lang] How Emily Tamed the CAML
Brandon Moore
brandonm at yahoo-inc.com
Wed Aug 23 15:38:59 CDT 2006
Brandon Moore wrote:
> Mark Miller wrote:
>
>> http://www.hpl.hp.com/techreports/2006/HPL-2006-116.html
>>
>> Enjoy!
>>
>>
>
> So far, I just have a few comments about formatting. The pdf from
> http://www.hpl.hp.com/techreports/2006/HPL-2006-116.pdf
> positions figures a bit unusually:
>
> figures 3 and 6 strand a bit of text at the top of the page. It's
> especially annoying with figure 3, because the figure is taller, and
> it's just a tiny bit of text.
>
> Table 1 is split across a page boundary. I don't think the table adds
> much to the paper anyway, except by providing some examples of the sorts
> of things considered potentially dangerous ambient authority.
>
> Example 1 is as long as many things that get a page of their own, but I
> don't quite see how to shuffle the text and other examples around if you
> did that.
>
Well, I didn't mean to send these nitpicks to everybody. I guess I'll
just have to say something more interesting now.
It seems to be that solutions to performance problems around
intermediation in Emily would yield optimizations that might be applied
to intermediation in other object-capability languages, if you look
closely enough at them.
If an interface is a record of functions to being with, copying a subset
of those functions to another record should supply a restricted
interface at no additional cost.
Similarly, if intermediation doesn't impose extra costs in E, it's
because the original object is already suffering from indirection overhead.
Catching up in performance with less-secured O'Caml code entails finding
ways to implement intermediation without paying for indirection, even if
that's not obvious at the source level. I guess the cost is probably
instead the cost of conforming to a type system that can carry out some
of the security analysis for you. The work from Oleg's paper might come
in here too.
As for actual suggestions on performance, it should be possible to
modify modules with no runtime cost using (opaque) functors, as long as
you want to statically restrict some interface. I think it's also
possible to assign an object a restricted type that hides formerly
visible methods without any runtime costs, or even interfering with
inlining opportunities.
Brandon
More information about the e-lang
mailing list