[e-lang] literal-oname?

Mark S. Miller markm at cs.jhu.edu
Wed Aug 9 14:42:53 EDT 2006


Kevin Reid wrote:
> Why has this syntax been disabled by default?

First, to be clear, the situation is even worse in release candidate 0.8.37a 
and in the current SVN head than it is in 0.8.36t -- the literal-oname option 
has been discontinued:

     ? interface "$foo" {}
     # syntax error: reserved: literal qualified name no longer accepted
     #   interface "$foo" {}
     #                    ^

And in syntax-props-default.txt:

     #### Discontinued as of 0.8.37a ####

     # Allows the use of a literal string as an object-expr's qualified or
     # fully-qualified name.

     # e.enable.literal-oname=allow


I did this because:

1) As we discussed verbally, I'm changing the Kernel-E ObjectExpr so that

     def varName { ... varName ... }

is now kernel, so that direct recursive access of an object to itself doesn't 
require creation of an intermediate promise. This addresses the issue you 
raised: that a self-referring object that's otherwise DeepFrozen would, 
because the self-reference requires a promise, need to be audited by 
EventualDeepFrozen, since it would fail the DeepFrozen audit. With this 
change, it can pass a hypothetical DeepFrozen audit, once we have a DeepFrozen 
auditor that knows about the new ObjectExpr.

2) When making that change, it turned out to be difficult to also support the 
old literal-oname syntax for compatibility.

3) I expect that no one other than you would be effected by discontinuing the 
literal-oname syntax. From that same previous conversation, I thought you said 
that it would be painless for you to stop using it. If I misunderstood, my 
apologies.

-- 
Text by me above is hereby placed in the public domain

     Cheers,
     --MarkM


More information about the e-lang mailing list