On Sun, Jun 24, 2018 at 07:07:06PM -0700, Vern Paxson wrote:
>       s1 == s2  iff  both sets have exactly the same members
> 
>       s1 < s2   iff  every element in s1 is in s2, but s2 has some
>                      elements not in s1

[...]

> Any concerns with adding these too?

I actually have a small question when thinking about these - which I
should already have raised about the intersect operators. What happens
when sets contain records or other complex types in these cases?

>From what I can tell, Bro so far refuses to compare records - the reason
being that (I think) we do not have properly implemented comparison
operators internally. For example, the following script:


type A: record {
        a: string;
};

event bro_init()
        {
        local i = A($a="a");
        local j = A($a="a");
        print i == j;
        }

outputs:

$ bro test.bro
error in ./test.bro, line 9: illegal comparison (i == j)

I assume what will at the moment happen with sets is that the pointers of
records are checked for equality - not the content. Which might arguably
be a bit non-intuitive.

As I said this is more of a concern about the already added operators - in
principle I don't have a problem with ==, but I think it should work for
other complex datatypes too.

Johanna
_______________________________________________
bro-dev mailing list
bro-dev@bro.org
http://mailman.icsi.berkeley.edu/mailman/listinfo/bro-dev

Reply via email to