Wiki re-export
A snapshot of the ES4 committee wiki has been re-exported to the Mozilla development website. The URL for the current snapshot is:
The URL containing HTML-differences between the previous and current export (marked with ins and del tags) is:
developer.mozilla.org/es4/export-diff
The changes represent the non-programming work of the past 3 months of committee meetings and discussion on this mailing list. We encourage further scrutiny of the proposals and spec-in-progress and look forward to feedback from this mailing list.
Since the last export, the committee's work has shifted focus significantly to the SML-based reference implementation. Not as much has changed in the wiki as in previous exports. The reference implementation is not presently available for public consumption, but is progressing rapidly. We hope to accompany future updates with snapshots of the source code.
On 2007-03-14, at 17:46 EDT, Graydon Hoare wrote:
A snapshot of the ES4 committee wiki has been re-exported to the
Mozilla development website. The URL for the current snapshot is:
Can a new pdf be extracted? The link on developer.mozilla.org es4/export-diff/spec/spec.html currently goes to a blank page.
On 14/03/07, Graydon Hoare <graydon at mozilla.com> wrote:
Hi,
A snapshot of the ES4 committee wiki has been re-exported to the Mozilla development website. The URL for the current snapshot is:
The URL containing HTML-differences between the previous and current export (marked with ins and del tags) is:
Just a few things...
In Chapter 4, you have
procedure multiply(v1:,v2:) ... proc divide(v1:,v2:)
For consistency, either proc or procedure should be used throughout that listing instead of half using one, half the other..
In Chapter 6, you say the operators are "is", "as", "to", but the actual operators you define are "is", "cast", "to".
In Chapter 6, I would like more detail on the type operator. For example, does this work?
type N={
left:(N,Null),
right:(N,Null),
value:*};
In other words, could I define recursive data structures like that? If not, is some other way of defining recursive data structures available?
In Chapter 9, set must have a void result type. Wouldn't this destroy the possiblity of doing things like:
while(foo=bar)
/* use foo */;
That would work using default accessors but not using setters...
In Chapter 10, you still use the as operator instead of the cast operator. "var y : I = x as I"
In Chapter 13, both as and cast are listed as keywords.
This mail was brought to you by insomnia...
Thanks for pointing out those inconsistencies. I haven't updated the actual specification area yet with changes brought about by the proposals, which is why you see those inconsistencies, but I will get started on that soon. I'm trying to wait as long as I can before editing the actual spec to avoid rewrites due to late proposal changes, but I should have pointed that out at the beginning of the exported specification, sorry about that. Please feel free to point out any other inconsistencies you find, and I'll make sure that they get corrected. Likewise for areas that need additional explanation.
Thanks,
Francis
On 15/03/07, Francis Cheng <fcheng at adobe.com> wrote:
Please feel free to point out any other inconsistencies you find, and I'll make sure that they get corrected. Likewise for areas that need additional explanation.
Well, I just remembered seeing another thing:
proc asType( obj:, type:Type ) : type { / If obj implicitly converts to type, Return obj implicitly converted to type Else If type includes null Return null Else Return obj explicitly converted to type */ }
Again, you're using as instead of cast.
On Mar 14, 2007, at 6:50 PM, liorean wrote:
In Chapter 6, I would like more detail on the type operator. For example, does this work?
type N={ left:(N,Null), right:(N,Null), value:*};
In other words, could I define recursive data structures like that?
No, we restrict structural types to be non-recursive. Recursive
structural subtype checking is exponential with the simpler original
(due to Cardelli et al.) algorithm, or quadratic with a quite-complex
more recent algorithm, and we don't believe the costs (to
implementors, and possibly high hidden runtime costs for users) are
worth it.
If not, is some other way of defining recursive data structures available?
Use nominal types.
A snapshot of the ES4 committee wiki has been re-exported to the Mozilla development website. The URL for the current snapshot is:
developer.mozilla.org/es4
The URL containing HTML-differences between the previous and current export (marked with ins and del tags) is:
developer.mozilla.org/es4/export-diff
The changes represent the work of the past 4 months of committee meetings and discussion on this mailing list. We encourage further scrutiny of the proposals and spec-in-progress and look forward to feedback from this mailing list.