Re: eonhs (Also,)

Nathan <[email protected]>
Newsgroups gmane.comp.lang.e.general
Message-ID <[email protected]>
On Sun, Apr 10, 2011 at 6:54 PM, Kevin Reid <kpreid-M/[email protected]> wrote:
> Your mail software or practices seem to be disregarding the Reply-To header.
> Please fix that.
>

Sorry about that.  It wasn't my mail software, it was my behavioral
software, but I found the bug and patched it.


> On Apr 10, 2011, at 21:19, Nathan wrote:
>
>> On Sun, Apr 10, 2011 at 5:17 PM, Kevin Reid <kpreid-M/[email protected]> wrote:
>>>
>>> ELib (so named because it was originally envisioned as a separable Java
>>> library) provides the core E semantics (the Haskell analogue would be
>>> defining the E monad, as my EoH does) as well as basic objects (data
>>> structures, etc).
>>
>> I see.  Does ELib encompass cryptographic networking protocols, or is
>> that yet another component?
>
> I am not sure whether this has always been the case, but:
>
>  (a) they are largely separate in the E-on-Java package structure and
>      dependencies;
>
>  (b) the plan is to push all the crypto and distributed capabilities
>      components into user-space, thus making them Clearly Not ELib.
>      (The implementation of this so far exists in E-on-CL.)
>
> You may also wish to know the distributed-capabilities component is called
> “Pluribus” (though this has sometimes been considered an obsolete name), and
> the actual protocol layers are “CapTP” (given secure channels, build
> distributed capabilities) and “VatTP” (given the Internet, build secore
> channels).
>
>> This is helpful context.  Speaking of which, has anyone investigated
>> an E-to-JavaScript translator?
>
> I have. A link was in the text you quoted.
>  http://wiki.erights.org/wiki/E-on-JavaScript
>
>> I suppose the general consensus may be
>> that simply relying on strict-mode ES5 is the way to go?
>
> Is the way to go for what purpose?
>

Ah, let me resolve my vague question into a specific story:

Suppose I want to reach as many users with as little develop cost as
possible for a new application, but I also require the application to
be as consistent as possible in following object-capabilities
discipline.  Finally, assume that relying on web servers and web
browsers maximizes that users-per-dev-time ratio.

Now, given those goals and restrictions, would it be more worth my
time to work on translating E to JavaScript, or to rely on Caja or
ES5-strict mode for the browser-side of my application?

I had initially assumed because ES5-Strict is headed towards
platform-standard, that the general consensus would be to develop
applications for it.  But now that you asked and I thought about it
more, I still wonder if translated languages might be worthwhile for
minimizing development costs (maintainability, debug-ability, ease of
writing robust patterns (such as guards and auditors), ...)

By asking about the consensus I meant to discover if this kind of
issue had previously been discussed.  If for example someone replied
with: "Yes, everyone here unanimously believes that nobody should use
E anymore for web-based applications because there are these new
capabilities-secure technologies with wide platform support and large
developer mind share.  We discuss E here mainly as a research
prototype for capabilities-secure language features." -then I'd
probably consider spending my time looking into those other
technologies.


>> What I would prefer as a programming language user is to see API
>> documentation written explicitly for E for all of these APIs.  Is
>> there such a reference that is not the JavaDocs?
>
> No. This reference should exist, and it should be the same as the E
> specification. We do not have the manpower to maintain two separate
> documents. I consider the Common Lisp HyperSpec to be an exemplar of this
> type of documentation which we should strive to equal.
>
> (Also note that the javadoc on erights.org is long outdated, as the
> hacked-Javadoc which produced it was not releasable as open source for some
> reason. Large portions of it are still sufficiently accurate, but the only
> authoritative source for that content is the E-on-Java source code.)
>

These two paragraphs are quite useful to know, and I hadn't realized
the JavaDocs were out of date.  (I jumped straight into them from a
google query, btw, so if that's mentioned on the wiki I missed it.)

After a quick click-around from the erights.org home, I find this page
links to them, but does not mention they are out-of-date:

http://www.erights.org/elib/index.html

I understand that there's precious little time for maintenance of the
online references.  I'll focus my efforts on the wiki when possible.
Speaking of which, I just when through the create account flow on
submitting my username/password/other-credentials, I get a blank page.
 I received no email, and when I try to log in it says there is no
such username.


>> Perhaps if I implement these features, or if I incorporate the haskell
>> elib analog, I'll start writing such a reference. This would help
>> draw the boundary between "common E" APIs and E-on-Java absorption or
>> implementation details.
>
> Please direct your efforts towards improving the content of wiki/Category:E
> specification.
>

Will do.  The account creation widget seems broken.


>> I haven't grokked the module system of E yet. Although I'd like to produce
>> a compliant implementation, I also prefer to drop features if they are
>> widely accepted as unnecessary or warty.
>
> In my opinion, E does not have "a module system" yet. Thomas Leonard has
> some ideas on what it should contain, as do I; unfortunately neither of us
> has yet gotten to reconciling said ideas. You have prompted me to get around
> to writing up some of my Requirements For A Module System, which I will post
> separately.

I'm interested in the module system.  I responded with some thoughts
and preferences.

>
> If you can succeed in producing an E implementation in which <import> only
> exists as a backwards compatibility layer, and user libraries can be loaded
> fully dynamically (as opposed to the current classpath-style approach) and
> via the same kind of interface as E builtin libraries, I would be very
> pleased.

I don't see <uri:...> syntax in the Kernel-E grammar.  So far I have
only been studying the Kernel-E grammar and not the standard APIs (and
reading markm's thesis).  The grammar seems to have no import
specialization, so my current mental model is that there is some
standard API for loading code.

Could you point me to a reference or example of an E builtin library
being imported?  If it is syntactic sugar for an API call, I'll hunt
down the loader implementation.

>
> --
> Kevin Reid                                  <http://switchb.org/kpreid/>
>
>


Nathan Wilcox
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.