[e-lang] Taming Java Libraries in E vs. Joe-e
Kevin Reid
kpreid at mac.com
Fri Nov 14 15:46:54 CST 2008
On Nov 14, 2008, at 15:18, Jimmy Wylie wrote:
> It seems E may use it in its implementation of its own boolean type,
> but it may also add or remove things, making a simple comparison
> between safej files incomplete.
Look at Sugarings in jsrc/org/erights/e/elib/prim/ScriptMaker.java to
find the classes which add things. This information *should* be in the
safej table but it isn't yet.
> I did actually look at Boolean.safej. In both, the method
> getBoolean()
> was suppressed because it accesses a system property. Joe-E allows
> more
> methods than E it seems, like toString() and parseBoolean(), but those
> seem like methods E wouldn't have to tame because they would be
> implemented elsewhere in the E language.
getBoolean() is probably suppressed because it would be silly in E - E
does not distinguish boxed and unboxed booleans.
toString is universally suppressed for several reasons:
- the default implementation of it exposes pointer bits
(nondeterminism)
- all the rest of java.lang.Object's protocol, including toString,
is suppressed
- E has its own to-string mechanism (E.toString) which has cycle
detection and also uses Java classes' toString when appropriate
(It's been a while since I looked at this stuff; I may be a little
off. MarkM?)
> Also, I do have one other question about the safej files. In Joe-E,
> they use the static tag and instance tag. In E's safej files, they
> use a statics tag and methods tag. Are the methods tag and instance
> tag denoting the same methods?
I don't know Joe-E, but probably yes.
> Or is E using that tag to add its own methods? I noticed in
> Boolean.safej that under "methods", E has listed some methods I
> couldn't find in the Java API like and(), not(), or(), xor(), and
> pick(obj, obj).
These are methods added by E (sugar classes, which are defined in a
table in SafeJ.java). safej files control methods *after* the E
property-mangling, name-mangling and sugaring stages have been
applied. (IMO this should not be the case, but I'm not an expert on
that aspect of the system.)
--
Kevin Reid <http://homepage.mac.com/kpreid/>
More information about the e-lang
mailing list