[Bro-Dev] Use of 'any' type

Jim Mellander jmellander at lbl.gov
Thu Aug 16 14:12:52 PDT 2018


Thanks, Johanna - I think type_name() may suffice for the purposes I am
envisioning.

On Thu, Aug 16, 2018 at 1:57 PM, Johanna Amann <johanna at icir.org> wrote:

> Hi Jim,
>
> On 16 Aug 2018, at 13:40, Jim Mellander wrote:
>
> It would be most convenient if the 'any' type could defer type checking
>> until runtime at the script level.
>>
>> For instance, if both A & B are defined as type 'any', a compile time
>> error
>>
>> "illegal comparison (A < B)"
>>
>> occurs upon encountering a bro statement
>>
>> if (A < B) do_something();
>>
>> even if the actual values stored in A & B at runtime are integral types
>> for
>> which comparison makes sense.
>>
>
> I think this is a bit hard to do with how things are set up at the moment
> internally - and it also does make type-checking at startup less
> possible-helpful.
>
> However...
>
>
>> If the decision could be made at runtime (which could then potentially
>> throw an error), a number of useful generic functions could be created at
>> the script level, rather than creating yet-another-bif.  A useful
>> yet-another-bif would be 'typeof' to allow varying code paths based on the
>> type of value actually stored in 'any'.
>>
>
> This already exists and I think you can actually use it to write code like
> that; you just have to cast your any-type to the correct type first. The
> function you want is type_name; it is e.g. used in base/utils/json.bro.
>
> Johanna
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.icsi.berkeley.edu/pipermail/bro-dev/attachments/20180816/fe5100e7/attachment.html 


More information about the bro-dev mailing list