[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