[e-lang] Declaring E version in programs

David Hopwood david.nospam.hopwood at blueyonder.co.uk
Sat Jul 22 21:29:29 EDT 2006

Mark S. Miller wrote:
> This raises the issue of versioning E. E programs have a way to sense what 
> version of E they're running on:
>      ? interp.getProps()["e.version"]
>      # value: "0.8.37a"
> Should E programs have a standard way to declare what version of E they're 
> written in? HTML documents do, and, at least at one point, BitC did. In 
> E-on-Java, there's currently some mechanisms intended to support a declaration 
> such as
>      pragma.syntax("0-8-26")
> This would load (from the CLASSPATH, which is in E's TCB) the resource
> org/erights/e/elang/syntax/syntax-props-0-8-26.txt
> which would contain settings for the same switches that are also controlled by 
> pragma.enable/1 and pragma.disable/1. When code declared as written in version 
> X is run on E version Y, the only operational effect of the declaration would 
> be to effect how it expands to Kernel-E version Y. Post-expansion, all code 
> running on E version Y is running according to version Y's semantics. I think 
> this would strike a good balance between supporting the past and fixing the 
> present.

I believe this is a good idea.

David Hopwood <david.nospam.hopwood at blueyonder.co.uk>

More information about the e-lang mailing list