Upgrade Core and Blaze - #930
Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: This PR updates the vendored Sourcemeta Core and Blaze revisions. Changes:
Technical Notes: The JSON-LD additions introduce new descriptor variants and stricter resolution rules; Core changes are consumed through the upgraded Blaze vendor dependency. 🤖 Was this summary useful? React with 👍 or 👎 |
| // paths differ at most in the trailing keyword token | ||
| auto same_schema_object(const sourcemeta::core::WeakPointer &left, | ||
| const sourcemeta::core::WeakPointer &right) -> bool { | ||
| return left.size() == right.size() && right.starts_with_initial(left); |
There was a problem hiding this comment.
At vendor/blaze/src/output/output_jsonld.cc:608, evaluate_path includes the keyword (as build_consent_index reads back()), so declarations in the same schema object have different trailing tokens and this comparison is false for x-jsonld-value paired with x-jsonld-self or a literal facet. The documented same-object fusion therefore incorrectly fails with a resolution error.
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
| } | ||
|
|
||
| auto terms{JSON::make_array()}; | ||
| terms.push_back(materialize_literal(descriptor.literal, value)); |
There was a problem hiding this comment.
At vendor/core/src/core/jsonld/jsonld_materialize.cc:263, a promoted null scalar is materialized as an @value: null term whenever it has an incoming edge, identity, or collection position. This contradicts the new JSONLDPromotion contract and vocabulary documentation that a null promoted location materializes nothing.
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
| } | ||
|
|
||
| normalized_dividend.words[position + divisor.length] = | ||
| top_word + add_carry - borrow; |
There was a problem hiding this comment.
At vendor/core/src/lang/numeric/big_coefficient.h:491, the Knuth correction path represents a negative high base digit with ordinary uint64_t underflow, which wraps modulo 2^64 rather than the coefficient base (10^18). Whenever top_word < borrow, this leaves an out-of-range word and corrupts the computed quotient/remainder.
Severity: high
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
| } | ||
| } | ||
| } else if (keyword.property_equals("x-jsonld-value", HASH_VALUE)) { | ||
| if (!value.is_null() && !is_iri_value(value)) { |
There was a problem hiding this comment.
At vendor/blaze/src/output/output_jsonld.cc:1373, the IRI check accepts rdf:type as an x-jsonld-value predicate even though this keyword explicitly forbids it. Such a collected annotation promotes a scalar into a literal rdf:type edge instead of producing the required resolution error.
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com