US 12,141,577 B2
Symbol-matching between software versions
Carmit Sahar, Tel Aviv (IL)
Assigned to Aurora Labs Ltd., Tel Aviv (IL)
Filed by Aurora Labs Ltd., Tel Aviv (IL)
Filed on Sep. 12, 2023, as Appl. No. 18/465,575.
Application 18/465,575 is a continuation of application No. 18/048,756, filed on Oct. 21, 2022, granted, now 11,803,371.
Prior Publication US 2024/0134637 A1, Apr. 25, 2024
Prior Publication US 2024/0231810 A9, Jul. 11, 2024
Int. Cl. G06F 8/71 (2018.01)
CPC G06F 8/71 (2013.01) 16 Claims
OG exemplary drawing
 
1. A non-transitory computer-readable medium including instructions that, when executed by at least one processor, cause the at least one processor to perform operations for matching symbols between code sets, the operations comprising:
accessing first symbols associated with a first version of software;
accessing second symbols associated with a second version of the software;
making first comparisons between a portion of the first symbols and a portion of the second symbols;
determining, based on the first comparisons, that a first subset of the first symbols are functional equivalents with a first subset of the second symbols;
making second comparisons between a second subset of the first symbols and a second subset of the second symbols to determine whether any of the second subset of the first symbols are functional equivalents with the second subset of the second symbols, wherein the second comparisons use more computational resources relative to the first comparisons; and
reorganizing code representing the second version of the software based on the first and second comparisons, wherein:
reorganizing the code representing the second version of the software comprises applying a renaming operation; and
the renaming operation reduces at least one of an amount of software changes associated with the code representing the second version, a software size associated with the code representing the second version, an amount of compilation associated with the code representing the second version, or an amount of re-compilation associated with the code representing the second version.