Comment by CoastalCoder

7 hours ago

> I thought a flag is 1 bit

Well you see, it has to implement IStateful and IBooleanExpression, and both of those involve virtual methods so you have a vtbl pointer as well.

So that's 64+1 bits right there.

Then you also have the address-alignment requirements for that vtbl pointer, so practically speaking were talking 128 bits.

Or 80 bits of you're rolling dirty and say "screw it" to that alignment assumption.

Now if your on x86-64 and want to smuggle that bit value into the unused part of that "64" bit vtbl pointer, you could probably bring it down to just 64 bits overall I guess. Well probably want to let the compiler know about that though, before anyone tries actually using that vtbl pointer.

But, if we also need to make this accessible to Python, then...