[Laszlo-dev] For Review: Change 20071107-dda-g Summary: Allow type information for vars, even though ignored in SWF7/8 and DHTML.
Donald Anderson
dda at ddanderson.com
Mon Nov 12 14:24:12 PST 2007
Committed. FYI, it wasn't hard to catch both ! and ? in the grammar,
so that won't
be allowed. I tested that as well as retesting the valid test cases
and smokecheck before
committing.
- Don
On Nov 10, 2007, at 5:14 PM, P T Withington wrote:
> We definitely want ? and !. Since the Adobe guys are on the
> committee, I expect Flex to handle them eventually. Clearly we
> need to be able to drop them for now in the swf9 output, but my
> experience is that ! is one of the most important features of a
> type system. It makes it a real type system instead of the bone-
> headed mish-mash that C++/Java have where null is a member of every
> type.
>
> It would be nonsensical to allow both ! and ?, if that is easy to
> catch in the parser, might as well rule it out; but it is fine to
> leave it if it is not easy to do.
>
> On 2007-11-07, at 23:02 EST, Donald Anderson wrote:
>
>> Hi Phil,
>>
>> I agree with you - that case I think is nonsensical. I was going
>> to get some more wisdom
>> by experimenting with the flex compiler, but it doesn't support !
>> or ? in types.
>> At all - syntax error. These cases are shown in the ECMAScript 4
>> Language Overview final draft, but that's not a standard yet, so
>> maybe
>> nobody is implementing it.
>>
>> BTW, there will be many other cases in this area that we cannot
>> catch in the grammar,
>> like basic type snafus:
>>
>> var v_typed_q:int = "hello";
>>
>> and is this:
>>
>> var v:int! = 1;
>>
>> even valid? (A primitive type like int may not accept nullability
>> - it wouldn't make sense in Java).
>> My first temptation is to accept any such cases in our grammar and
>> let the backend compiler flag them
>> as errors for us.
>>
>> But given that the language feature isn't in flex, I'm not sure
>> what to do, leave '!' '?'
>> in for a future day, or take them out. ?!
>>
>> Tucker - opinion on this? Am I wrong to be looking at the
>> ECMAScript 4 overview?
>>
>> - Don
>>
>>
>> On Nov 7, 2007, at 8:22 PM, Philip Romanik wrote:
>>
>>> Approved.
>>>
>>> If I write this line of code, no error is generated, but it
>>> doesn't seem right. Is this legal ecma4?
>>>
>>> var v_typed_q:?int! = 123;
>>>
>>>
>>> (Perhaps somebody else can chime in here. Is /test/lztest still
>>> the preferred way to write a unit test? If so, this test can be
>>> converted into lztest format.)
>>>
>>>
>>>> Change 20071107-dda-g by dda at freddie.local on 2007-11-07
>>>> 18:14:27 EST
>>>> in /Users/dda/laszlo/src/svn/openlaszlo/trunk
>>>> for http://svn.openlaszlo.org/openlaszlo/trunk
>>>>
>>>> Summary: Allow type information for vars, even though ignored in
>>>> SWF7/8 and DHTML.
>>>>
>>>> New Features:
>>>> Allow type information accepted in ActionScript 3.0, that is:
>>>> var x:int;
>>>> var y:String = "hello";
>>>> var z:?String = null; // ? means can set to null (default)
>>>> var z:String! = "bonjour"; // ! means cannot set to null
>>>> Please note that the type information is merely accepted as
>>>> part of the language, and ignored for now.
>>>>
>>>> Bugs Fixed: LPP-5059
>>>>
>>>> Technical Reviewer: ptw
>>>> QA Reviewer: philip
>>>> Doc Reviewer: (pending)
>>>>
>>>> Documentation:
>>>> Requires documentation if we describe in detail our language
>>>> (or subset). If we point
>>>> users to the published standards, then we can continue to do
>>>> that.
>>>> We should note that type information is ignored except for the
>>>> (upcoming) SWF9 runtime.
>>>>
>>>> Release Notes:
>>>> Variables declared using the 'var' statement now allow type
>>>> specifications as
>>>> described by Ecmascript 4 (that is, ActionScript 3.0).
>>>>
>>>> Details:
>>>> No type checking is done by the SWF7/8 and DHTML runtimes
>>>> (nor is planned), any
>>>> type information is thrown away. However, when SWF9 is
>>>> available, the type information
>>>> will be accepted and passed through to the 3rd party SWF9
>>>> compiler, which will do type
>>>> checking for any variable with type information. This
>>>> change allows users and developers
>>>> to write code that can be useful with either runtime. Even
>>>> if they don't use with SWF9,
>>>> this is a useful feature for self documenting usage of
>>>> variables.
>>>>
>>>> We currently allow type information on 'var' declarations,
>>>> also method parameters and
>>>> method return values. I believe only information for 'var'
>>>> declarations can be done
>>>> in .lzx, but the latter two are also accepted (and ignored
>>>> for current runtimes) in .lzs files.
>>>>
>>>> Tests:
>>>> Ran new test test/typevar.lzx for both SWF7/8 and DHTML, to
>>>> make sure syntax is accepted.
>>>> Ran smokecheck.lzx to assure there are no regressions.
>>>>
>>>> Files:
>>>> A test/typevar.lzx
>>>> M WEB-INF/lps/server/sc/src/org/openlaszlo/sc/Parser.jjt
>>>> M WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/
>>>> ASTIdentifier.java
>>>>
>>>> Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20071107-
>>>> dda-
>>>> g.tar
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Don Anderson
>>>> Java/C/C++, Berkeley DB, systems consultant
>>>>
>>>> Voice: 617-547-7881
>>>> Email: dda at ddanderson.com
>>>> WWW: http://www.ddanderson.com
>>>>
>>
>>
>> --
>>
>> Don Anderson
>> Java/C/C++, Berkeley DB, systems consultant
>>
>> Voice: 617-547-7881
>> Email: dda at ddanderson.com
>> WWW: http://www.ddanderson.com
>>
>
--
Don Anderson
Java/C/C++, Berkeley DB, systems consultant
Voice: 617-547-7881
Email: dda at ddanderson.com
WWW: http://www.ddanderson.com
More information about the Laszlo-dev
mailing list