[Vm-dev] Translation weirdness
Bert Freudenberg
bert at freudenbergs.de
Fri Mar 15 13:34:18 UTC 2013
On 2013-03-15, at 13:50, Igor Stasenko <siguctua at gmail.com> wrote:
>
> On 15 March 2013 13:43, Bert Freudenberg <bert at freudenbergs.de> wrote:
>>
>>
>> On 2013-03-14, at 21:18, Igor Stasenko <siguctua at gmail.com> wrote:
>>
>>>
>>> On 14 March 2013 19:27, Bert Freudenberg <bert at freudenbergs.de> wrote:
>>>>
>>>> Slang: foo isIntegerOop
>>>> C: interpreterProxy->isIntegerObject(foo)
>>>>
>>>> Slang: interpreterProxy isIntegerObject: foo
>>>> C: (foo & 1)
>>>>
>>>> SmartSyntaxInterpreterPlugin: y u no smart?
>>>>
>>> i'd say completely opposite.
>>
>>
>> You mean, "foo isIntegerOop" should generate "(foo & 1)", and "interpreterProxy isIntegerObject: foo" should generate "interpreterProxy->isIntegerObject(foo)", yes?
>>
>
> no i meant, both should generate
>
> foo isIntegerOop => isIntegerOop(foo)
> interpreterProxy isIntegerObject: foo => interpreterProxy->isIntegerObject(foo)
>
> and internally isIntegerOop() can be just a macro where it does (foo&1)..
Okay, so not "completely opposite" :)
- Bert -
> what important to me is that C sources should as close as possible
> reflect an original expression written in slang.
>
> if developer wrote 'foo & 1' in slang code, then, and only then it
> should generate C code which uses same.
>
>> That would at least make sense, agreed.
>>
>> I'd have expected both constructs to result in the same generated code, so they could be used interchangeably.
>>
>> - Bert -
>>
>>> when you looking at C source it is important to not lose track of what
>>> was written in slang.
>>> and in this regard, expression
>>>
>>> interpreterProxy->isIntegerObject(foo)
>>>
>>> is preferable because you know exactly what's going on, in contrast to:
>>>
>>> (foo & 1)
>>>
>>> where you can wonder, whether same expression is written in slang.. or
>>> it is translation artefact.
>>> We should avoid ambiguous stuff.. especially since you can always use macros
>>> so it won't affect any speed whatsoever.
>>>
>>>> - Bert -
>>>>
>>>
>>> --
>>> Best regards,
>>> Igor Stasenko.
>>
>
>
>
> --
> Best regards,
> Igor Stasenko.
More information about the Vm-dev
mailing list