Open wdanilo opened 1 year ago
Parts of this were done as #5855 - this gives us the shared library which allows for having common code used both on engine and polyglot libraries side.
However, we still need to ensure that the hashing and object comparison/equality mechanism used in the in-memory Table library is delegating to the same code that the engine uses - so that we can avoid code duplication which may lead to potential inconsistency.
The places to look at in particular (not necessarily an exhaustive list):
ObjectComparator.java
MultiValueKeyBase.java
and its 2 implementations: OrderedMultiValueKey
and UnorderedMultiValueKey
,MatcherFactory.java
.cc: @Akirathan as you may be interested in this :)
This task is automatically imported from the old Task Issue Board and it was originally created by Pavel Marek. Original issue is here.
As pointed out in this comment, we should investigate how (and if) to share code between engine and std libs. Now, this includes something from std-bits/base
Maybe introduce a library that is independent of engine and provides some specialization for primitives?
Some examples where
std-bits
duplicate functionality from the engine:std-bits/base/src/main/java/org/enso/base/ObjectComparator.java
LessThanNode
.Tasks:
std-base
use shared backing codestd-table
is consistent with engine hashingComments:
As pointed out in this comment, we should investigate how (and if) to share code between engine and std libs. Now, this includes something from
std-bits/base
(Pavel Marek - Dec 20, 2022)