IP Library › Granted Patent US 12,493,460
Granted Patent B2
US 12,493,460 · App. 18/232,679 · Granted Dec 9, 2025

Implementing changes made to source code of reloadable types at runtime

Inventor: Tomas Matousek (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F8/656G06F8/71
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,493,460
App. No.
18/232,679
Filed
Aug 10, 2023
Granted
Dec 9, 2025
Kind
B2
Art Unit
2193
USPC
717/122
Abstract

Systems and methods for implementing changes made to source code of a program at runtime are provided. In particular, a computing device may execute the source code in a runtime environment and detect changes made to the source code at runtime in the runtime environment. In response to detecting the changes, the computing device may determine if the changes were made to a type in the source code identified as reloadable. In response to determining that the changes were made to the type in the source code identified as reloadable, the computing device may create a new version of the type and perform implementation of the changes to the source code at runtime using the new version of the type.

Claims (52)

1 . A method for implementing changes made to source code of a program at runtime, the method comprising:

compiling the source code in a runtime environment, wherein the source code includes a reloadable type and a non-reloadable type in-place;

detecting changes made to the source code at runtime in the runtime environment;

determining if the changes were made to a type in the source code identified as the reloadable type based on a framework that was used to construct the source code, wherein the framework includes a framework library that indicates whether the type in the source code is the reloadable type or the non-reloadable type in-place;

creating, in response to determining that the changes were made to the type in the source code identified as the reloadable type, a new version of the reloadable type; and

performing implementation of the changes to the source code at runtime using the new version of the reloadable type.

2 . The method of claim 1 , wherein compiling the source code in the runtime environment comprises:

obtaining the source code;

loading the source code in an integrated development environment (IDE); and

compiling the source code to be executed in the runtime environment deployed by the IDE.

3 . The method of claim 1 , further comprising updating, in response to determining that the changes were not made to the type in the source code identified as reloadable, the non-reloadable type in-place.

4 . The method of claim 1 , wherein performing implementation of the changes to the source code at runtime using the new version of the reloadable type further comprises replacing a runtime representation and one or more existing instances of a previous version of the type in the source code with the new version of the reloadable type.

5 . The method of claim 1 , wherein performing implementation of the changes to the source code at runtime using the new version of the reloadable type further comprises:

notifying a framework that was used to construct the source code that the new version of the reloadable type has been created; and

transferring a state from one or more existing instances of a previous version of the type in the source code to the new version.

6 . The method of claim 1 , further comprising continuing compiling the updated source code with the changes in the runtime environment.

7 . The method of claim 1 , wherein determining if the changes were made to a type in the source code identified as reloadable further comprises determining if the changes were made to a type in the source code identified as reloadable based on a framework library associated with a framework that was used to construct the source code, wherein the framework library comprises a list of predefined types that are marked as reloadable.

8 . A computing device for implementing changes made to source code of a program at runtime, the computing device comprising:

a processor; and

a memory having a plurality of instructions stored thereon that, when executed by the processor, causes the computing device to:

compile the source code in a runtime environment, wherein the source code includes a reloadable type and a non-reloadable type in-place;

detect changes made to the source code at runtime in the runtime environment;

determine if the changes were made to a type in the source code identified as the reloadable type based on a framework that was used to construct the source code, wherein the framework includes a framework library that indicates whether the type in the source code is the reloadable type or the non-reloadable type in-place;

create, in response to determination that the changes were made to the type in the source code identified as the reloadable type, a new version of the reloadable type; and

perform implementation of the changes to the source code at runtime using the new version of the reloadable type.

9 . The computing device of claim 8 , wherein to compile the source code in the runtime environment comprises to:

obtain the source code;

load the source code in an integrated development environment (IDE); and

compile the source code to be executed in the runtime environment deployed by the IDE.

10 . The computing device of claim 8 , wherein the computing device is further configured to update, in response to determination that the changes were not made to the type in the source code identified as reloadable, a type in-place.

11 . The computing device of claim 8 , wherein to perform implementation of the changes to the source code at runtime using the new version of the reloadable type comprises to replace a runtime representation and one or more existing instances of a previous version of the type in the source code with the new version of the reloadable type.

12 . The computing device of claim 8 , wherein to perform implementation of the changes to the source code at runtime using the new version of the reloadable type comprises to:

notify a framework that was used to construct the source code that the new version of the reloadable type has been created; and

transfer a state from one or more existing instances of a previous version of the type in the source code to the new version.

13 . The computing device of claim 8 , wherein the computing device is further configured to continue compiling the updated source code with the changes in the runtime environment.

14 . The computing device of claim 8 , wherein to determine if the changes were made to a type in the source code identified as reloadable further comprises to determine if the changes were made to a type in the source code identified as reloadable based on a framework library associated with a framework that was used to construct the source code, wherein the framework library comprises a list of predefined types that are marked as reloadable.

15 . A non-transitory computer-readable medium storing instructions for implementing changes made to source code of a program at runtime, the instructions when executed by one or more processors of a computing device, cause the computing device to:

compile the source code in a runtime environment, wherein the source code includes a reloadable type and a non-reloadable type in-place;

detect changes made to the source code at runtime in the runtime environment;

determine if the changes were made to a type in the source code identified as the reloadable type based on a framework that was used to construct the source code, wherein the framework includes a framework library that indicates whether the type in the source code is the reloadable type or the non-reloadable type in-place;

create, in response to determination that the changes were made to the type in the source code identified as the reloadable type, a new version of the reloadable type; and

perform implementation of the changes to the source code at runtime using the new version of the reloadable type.

16 . The non-transitory computer-readable medium of claim 15 , wherein to compile the source code in the runtime environment comprises to:

obtain the source code;

load the source code in an integrated development environment (IDE); and

compile the source code to be executed in the runtime environment deployed by the IDE.

17 . The non-transitory computer-readable medium of claim 15 , wherein the instructions when executed by the one or more processors further cause the computing device to update, in response to determination that the changes were not made to the type in the source code identified as the reloadable type, the non-reloadable type in-place.

18 . The non-transitory computer-readable medium of claim 15 , wherein to perform implementation of the changes to the source code at runtime using the new version of the reloadable type comprises to replace a runtime representation and one or more existing instances of a previous version of the type in the source code with the new version of the reloadable type.

19 . The non-transitory computer-readable medium of claim 15 , wherein to perform implementation of the changes to the source code at runtime using the new version of the reloadable type comprises to:

notify a framework used to construct the source code that the new version of the reloadable type has been created; and

transfer a state from one or more existing instances of a previous version of the type in the source code to the new version.

20 . The non-transitory computer-readable medium of claim 15 , wherein the instructions when executed by the one or more processors further cause the computing device to continue compiling the updated source code with the changes in the runtime environment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2023
From: MATOUSEK, TOMAS
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 064555/0919 →
Continuity (2)
Continuation 17373391 · Jul 12, 2021
Related Publication 20230385053A1 · Nov 30, 2023
References Cited (19)
US 7506316B2 · Vertes · 2009 [cited by examiner]
US 7853934B2 · Partamian · 2010 [cited by examiner]
US 8612930B2 · Quinn · 2013 [cited by examiner]
US 9015659B2 · Raundahl Gregersen · 2015 [cited by examiner]
US 9430224B2 · Zhang · 2016 [cited by examiner]
US 9569199B2 · Wang · 2017 [cited by examiner]
US 10007511B2 · Somani · 2018 [cited by examiner]
US 10146515B1 · Sundresh · 2018 [cited by examiner]
US 10146522B1 · Sundresh · 2018 [cited by examiner]
US 10223097B2 · Weber · 2019 [cited by examiner]
US 11392364B2 · Douglas · 2022 [cited by examiner]
US 11409508B1 · Toub · 2022 [cited by examiner]
US 11755313B2 · Matousek · 2023 [cited by examiner]
US 20030191870A1 · Duggan · 2003 [cited by examiner]
US 20060294498A1 · Partamian · 2006 [cited by examiner]
US 20070061372A1 · Appavoo · 2007 [cited by examiner]
US 20220147374A1 · Strihagen · 2022 [cited by examiner]
Communication under Rule 71(3) EPC Received in European Patent Application No. 22747500.1 mailed on Jun. 17, 2025, 07 pages. [cited by applicant]
Decision to Grant pursuant to Article 97(1) received in European Application No. 22747500.1, mailed on Sep. 11, 2025, 2 pages. [cited by applicant]