> CRuby uses this technique on 64bit platforms for years.
What do you mean by "this technique"?
The paper says that CRuby uses tagged objects but could benefit from the innovation being discussed here, a specific bit pattern used to tag floats. See the following quote:
> Therefore, implementations that represent floats as tagged pointers could benefit from it with minimal implementation effort. Such popular implementations include CPython [11], CRuby [32] and Google’s V8 [33].
Linked commit contains code for rotating tagged floats so bits 60..62 go to the least significant positions, and a comment about a range of unboxed floats between 1.7...e-77 and 1.7...e77, plus special casing 0.0.
In another comment, this user links a CRuby commit that they claim adds it. It seems legit.
Linked commit contains code for rotating tagged floats so bits 60..62 go to the least significant positions, and a comment about a range of unboxed floats between 1.7...e-77 and 1.7...e77, plus special casing 0.0
AFAIK, Signal doesn’t provide any way to prove its application were built from non-modified audited free open source code. Indeed there are evidences it behaves “a bit” differently.
So unless you’ve built application by yourself, you have no guarantee of it’s sequrity.
As a PostgreSQL smallish contributor I just can say: NO, DON'T DO THIS!!!!
Extensible type system is a worst thing that could happend with database end-user performance. Then one may not short-cut no single thing in query parsing and optimization: you must check type of any single operand, find correct operator implemenation, find correct index operator family/class and many more all through querying system catalog. And input/output of values are also goes through the functions, stored in system catalog. You may not even answer to "select 1" without consulting with system catalog.
There should be sane set of builtin types + struct/json like way of composition. That is like most DBs do except PostgreSQL. And I strongly believe it is right way.
> you must check type of any single operand, find correct operator implemenation, find correct index operator family/class and many more all through querying system catalog.
Not with static typing.
The problem with PG is that it's not fully statically typed internally. SQLite3 is worse still, naturally. But a statically typed SQL RDBMS should be possible.
reply