@Konrad: My point about errors came to mind because I had just been
working on the JSON generator, where type names are strings. I guess
it won't apply if the aliases are only present at parse time.

However, these vague type definitions from C / Java have been the
cause of a lot of portability headaches over the last 20+ years. I
like the fact that Thrift has integer capacities as part of the type
names, because it leaves no doubt, and at the end of the day I think
that is a service to the users than the convenience of being able to
use well-known type names.  And what if the user's platform actually
has a different width for long than Thrift does, then it would be
directly misleading.

What about having the parser recognize char/short/int/long and emit an
error message with suggested replacements?



On Mon, Dec 1, 2014 at 4:17 PM, Konrad Grochowski <hc...@minions.org.pl> wrote:
> I was assuming aliases would only be present at parsing time. I to prefer iX
> notation, I like to be explicit. Yet I can imagine a lot of users, who don't
> care about bits and bytes, they just want int. Or they want to make IDL look
> more like Java/C# ;)
>
> I'd not try to detect all 'typedef i32 int' constructs, as next step would
> be to detect all keywords of all supported languages... Which might be a
> good idea, but would require a lot of work, especially while adding new
> lang. But maybe 'reserved type and members names' is doable...
>
> @Stig: About errors: I think, that problem appears in generated code for
> langs which have typedef constructs. Like C or C++, where such IDL leads to
> something like "typedef int32_t int" which tries to redefine C keyword...
>
> -KG
>
>
> On 01.12.2014 15:26, Stig Bakken wrote:
>>
>> FWIW, I agree with Randy.  There is value to being able to directly
>> compare two type names through simple equality, with aliases you will
>> get situations where you need code like "are_these_types_the_same(t1,
>> t2)".
>>
>>
>> On Mon, Dec 1, 2014 at 2:21 PM, Randy Abernethy <r...@apache.org> wrote:
>>>
>>> One of the things I love about Thrift is its simple IDL. No aliases
>>> just simple self describing types (i8, i16, etc). We presently have
>>> one keyword for each feature of the IDL. I think the Pandora's box
>>> analogy is a good one. It is hard work keeping things simple.
>>>
>>> On Mon, Dec 1, 2014 at 12:09 AM, Stig Bakken <s...@zedge.net> wrote:
>>>>
>>>> Out of curiosity, what kinds of errors did you see from this?
>>>>
>>>>   - Stig
>>>>
>>>>
>>>> On Mon, Dec 1, 2014 at 1:18 AM, Jens Geyer <jensge...@hotmail.com>
>>>> wrote:
>>>>>
>>>>> Hi *,
>>>>>
>>>>> I have found people multiple times doing things like this, ending up
>>>>> with strange errors.
>>>>>
>>>>>      typedef i32 int
>>>>>
>>>>> What about making it legal and allowing int as an built-in alias for
>>>>> i32?
>>>>> Or should we add some kind of warning instead?
>>>>>
>>>>> Or would either one of these just open pandora’s box?
>>>>>
>>>>> Have fun,
>>>>> JensG
>>
>>
>>
>



-- 
Stig Bakken
CTO, Zedge.net - free your phone!

Reply via email to