Repository navigation
Move cxx to the 51degrees-cxx release 4.5.105 - #55
Merged
Merged
Conversation
jwrosewell
force-pushed
the
uptake/cxx-865cee97
branch
from
November 9, 2026 18:47
108cc48 to
f6cee54
Compare
Generated with SWIG 4.5.0 built from https://github.com/51Degrees/swig.git at refs/heads/node-24-holder-this, commit 48753552ee7d0e0f886f9d624f761a501ce70b64, using the commands in the README with cxx at 865cee97432d8b7b047223b82c64fc31a489735f. The Device Detection wrapper is unchanged. The IP Intelligence wrapper no longer gives the caller ownership of the collection configuration that the getters return.
jwrosewell
force-pushed
the
uptake/cxx-865cee97
branch
3 times, most recently
from
November 9, 2026 19:40
6fe8fc9 to
dcf0a00
Compare
Takes the eight 51degrees-cxx pull requests merged into rc after 865cee97, among them the rename of src/common/Date.cpp to date_pp.cpp so it no longer clashes with date.c on a case-insensitive file system.
jwrosewell
marked this pull request as ready for review
November 11, 2026 18:05
This was referenced Nov 11, 2026
Merged
Draft
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves the
cxxsubmodule to 7c4ac436, the second 51degrees-cxx release of 11 November 2026, which 51degrees-cxx#150 merged intomainat 15:05 UTC. The publish workflow has tagged it 4.5.105, andgit/matching-refs/tags/4.5.105gives 7c4ac436e47cd15beed304cad2b8151d50a1efd1, so the submodule is at the tagged commit.rcat 5228a9f9 is merged into this branch.Head 657b13b. Against
rcthe draft changes two things, thecxxpointer and four lines ofip-intelligence/fiftyone.ipintelligence.onpremise/ipi_node_wrap.cxx.cxx taken
rcbuilds against c6d4e4d9, the 10 November release, which the automated Update submodules pull request #67 moved it to. 7c4ac436 is one commit after c6d4e4d9 and brings in three 51degrees-cxx pull requests._51DEGREES_IPI_PATH. Node does not build those examples.mainback intorcwith no change to the tree.The specification for the first change is Finding Properties at 927ac677, merged from specifications#137.
Node reads every on-premise value by name, which #68 kept because its native tests found the read by index slower in Node, for a cause in the SWIG wrapper overloads. So there is no read by index here for an engine built with no names to take up, and the reads by name get the behaviour above from the native code.
Wrappers
Node's interface files
hash_node.iandipi_node.iinclude onlycxx/src/dd/hash/hash.iandcxx/src/ipi/ipi.iand their ownnode_before.iandnode_after.i. The cxx.ifiles declare every class SWIG wraps, and the headers are only copied into the wrappers from%{ %}blocks, so SWIG reads no header.git diff 865cee97 7c4ac436 -- '*.i'in 51degrees-cxx gives the same one change asgit diff c6d4e4d9 7c4ac436 -- '*.i', two lines of a//comment abovecopyValueAsUTF8Stringinsrc/ipi/ResultsIpi.ilines 115 and 116. SWIG does not copy a//comment into a wrapper, so nothing SWIG emits changes between those commits and the wrappers are not generated again.The committed wrappers are the ones this draft generated on runners with SWIG 4.5.0 built from the 51Degrees fork at
node-24-holder-this, commit 48753552ee7d0e0f886f9d624f761a501ce70b64, using the commands in the README.cxxat 865cee97 (run 42672708496),hash_node_wrap.cxxcame out byte for byte the same andipi_node_wrap.cxxchanged in four lines, as cxx#122 limits the%newobjectfeatures toMetaData. TheConfigIpiSwiggetters for components, properties, values and profiles return references the configuration owns, so they no longer pass ownership to JavaScript.cxxat b4f769ad (run 42783277602) and at cfad8978 (run 42795544973), the same commands reproduced both committed wrappers byte for byte.The four lines differ from
rcbecause the wrapper onrcwas last generated for 51degrees-cxx 4.5.101 (a93c89e), before #122, and #67 movedcxxon without generating it again.git diff 4.5.101 c6d4e4d9 -- src/common/MetaData.iin 51degrees-cxx shows the scoped%newobjectlines.Tests
This draft moves a submodule and carries a generated wrapper, and changes no Node code, so there is no new Node behaviour to show failing and then passing, and it adds no test. Node's on-premise test folders,
device-detection/fiftyone.devicedetection.onpremise/testsandip-intelligence/fiftyone.ipintelligence.onpremise/tests, hold no test that reloads an engine, so the behaviour #148 brings is not tested from Node. It is pinned in 51degrees-cxx at 7c4ac436, byHashPositionsReloadTests.NothingNamed_SmallThenLargeandC_NothingNamed_SmallThenLargeintest/dd/hash/HashPositionsTests.cpplines 530 and 576,IpiPositionsReloadTests.NothingNamed_SmallThenLargeintest/ipi/IpiPositionsTests.cppline 560, and the*_NothingNamed_KeepsPositionstests intest/ipi/IpiPropertyNamesTests.cppline 522.Full build
Run 43048185252 on
tmp/pr-matrix-55, started bytools/pr-matrix.pywithout macOS. All 7Setting 'PullRequestSha'lines give this head, 657b13b, and Configure printed "Left out 2 macOS entries". Every job passed, being Ubuntu_Node_22, Ubuntu_Node_24, Ubuntu_ARM_Node_22, Ubuntu_ARM_Node_24, Windows_Node_22 and Windows_Node_24.macOS was left out of this draft's full build under the 9 November decision. The rc head is built with macOS before it merges into main.
Remaining
hash_node_wrap.cxxagainst the Node 26.13.0 headers in run 42675272902, asGetAlignedPointerFromInternalField,SetAlignedPointerInInternalField,WriteUtf8andUtf8Lengthchanged in V8 14. That needs a change in the SWIG fork and the wrappers generated again.