Patents by Inventor Jan Kotas

Jan Kotas has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20240111518
    Abstract: A computing system and method for determining if a first software component that has shipped separately from a second software component has been updated. An inline expansion process copies a first method of the first software component into a first method of a second software component is performed so that the copied first method is executable when the second method of the second software component is executed. The first method from the first software component is copied into metadata that is attached to the first method of the second software component. The copy of the first method in the metadata is used to validate that the first method in the first software component has not been updated.
    Type: Application
    Filed: October 4, 2022
    Publication date: April 4, 2024
    Inventors: David Charles WRIGHTON, Anton LAPOUNOV, Tomás RYLEK, Jan KOTAS
  • Patent number: 11593078
    Abstract: A computing device including a processor configured to receive source code including a plurality of source code modules. The processor may generate executable code from the source code and assign two or more reload indicators to two or more executable code modules. The processor may execute the executable code. During execution of the executable code, the processor may receive a source code update and generate an executable code update from the source code and the source code update. The processor may apply the executable code update to the executable code to generate updated executable code. The processor may generate a reload ordering of two or more reload operations corresponding to the reload indicators. As specified by the reload ordering, the processor may perform the two or more reload operations at the two or more respective executable code modules. The processor may execute the updated executable code.
    Type: Grant
    Filed: July 19, 2022
    Date of Patent: February 28, 2023
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Stephen Harris Toub, Stephane Delcroix, Jan Kotas, Michael John McLaughlin, Pranav Krishnamoorthy, Thomas A. McDonald
  • Publication number: 20220413815
    Abstract: A computing device including a processor configured to receive source code including a plurality of source code modules. The processor may generate executable code from the source code and assign two or more reload indicators to two or more executable code modules. The processor may execute the executable code. During execution of the executable code, the processor may receive a source code update and generate an executable code update from the source code and the source code update. The processor may apply the executable code update to the executable code to generate updated executable code. The processor may generate a reload ordering of two or more reload operations corresponding to the reload indicators. As specified by the reload ordering, the processor may perform the two or more reload operations at the two or more respective executable code modules. The processor may execute the updated executable code.
    Type: Application
    Filed: July 19, 2022
    Publication date: December 29, 2022
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Stephen Harris TOUB, Stephane DELCROIX, Jan KOTAS, Michael John MCLAUGHLIN, Pranav KRISHNAMOORTHY, Thomas A. MCDONALD
  • Patent number: 11435989
    Abstract: Reuse of a thread-local return data structure to prevent a return data structure from being allocated every time asynchronous functions return. The system returns thread operation from the asynchronous function back to the caller function in a manner that the return data structure can be reused for future asynchronous function returns within that same thread. To do so, the system first accesses data that was generated by the asynchronous function in response to the caller function placing the function call to the asynchronous function. To determine if reuse is appropriate, the system determines that the caller function will use the return data structure as populated only once. If so, the system populates the reusable thread-local return data structure and returns that data structure to the caller.
    Type: Grant
    Filed: August 25, 2020
    Date of Patent: September 6, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: David Charles Wrighton, Jan Kotas, Stephen Harris Toub
  • Patent number: 11429358
    Abstract: Representing asynchronous functionality in intermediate code, and then having the runtime compiler, rather than the source code language compiler, declare the corresponding asynchronous state machine. This allows the size of the intermediate code to be smaller thereby facilitating more efficient delivery of the code to end users. Furthermore, the runtime compiler can now use its optimization capability to optimize performance of the asynchronous functionality specific to the actual environment in which the asynchronous work will operate.
    Type: Grant
    Filed: August 12, 2020
    Date of Patent: August 30, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: David Charles Wrighton, Jan Kotas, Stephen Harris Toub
  • Patent number: 11409508
    Abstract: A computing device including a processor configured to receive source code including a plurality of source code modules. The processor may generate executable code from the source code and assign two or more reload indicators to two or more executable code modules. The processor may execute the executable code. During execution of the executable code, the processor may receive a source code update and generate an executable code update from the source code and the source code update. The processor may apply the executable code update to the executable code to generate updated executable code. The processor may generate a reload ordering of two or more reload operations corresponding to the reload indicators. As specified by the reload ordering, the processor may perform the two or more reload operations at the two or more respective executable code modules. The processor may execute the updated executable code.
    Type: Grant
    Filed: June 25, 2021
    Date of Patent: August 9, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Stephen Harris Toub, Stephane Delcroix, Jan Kotas, Michael John McLaughlin, Pranav Krishnamoorthy, Thomas A. McDonald
  • Publication number: 20220066759
    Abstract: Reuse of a thread-local return data structure to prevent a return data structure from being allocated every time asynchronous functions return. The system returns thread operation from the asynchronous function back to the caller function in a manner that the return data structure can be reused for future asynchronous function returns within that same thread. To do so, the system first accesses data that was generated by the asynchronous function in response to the caller function placing the function call to the asynchronous function. To determine if reuse is appropriate, the system determines that the caller function will use the return data structure as populated only once. If so, the system populates the reusable thread-local return data structure and returns that data structure to the caller.
    Type: Application
    Filed: August 25, 2020
    Publication date: March 3, 2022
    Inventors: David Charles WRIGHTON, Jan KOTAS, Stephen Harris TOUB
  • Publication number: 20220050669
    Abstract: Representing asynchronous functionality in intermediate code, and then having the runtime compiler, rather than the source code language compiler, declare the corresponding asynchronous state machine. This allows the size of the intermediate code to be smaller thereby facilitating more efficient delivery of the code to end users. Furthermore, the runtime compiler can now use its optimization capability to optimize performance of the asynchronous functionality specific to the actual environment in which the asynchronous work will operate.
    Type: Application
    Filed: August 12, 2020
    Publication date: February 17, 2022
    Inventors: David Charles WRIGHTON, Jan KOTAS, Stephen Harris TOUB
  • Patent number: 10592276
    Abstract: Some computing devices have limited resources such as, for example, battery power. When a user ceases to interact with an application, execution of the application can be moved to background and the application can be paused. During the time period in which the application is paused, the application consumes no CPU cycles because executing managed threads of the paused application are stopped, and native threads are prevented from running using asynchronous procedure calls.
    Type: Grant
    Filed: June 22, 2018
    Date of Patent: March 17, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Abhinaba Basu, Jan Kotas
  • Patent number: 10127151
    Abstract: An instance of universally shared generic code is generated. A runtime parameter enables the size of a stack frame on which local data can be stored to be determined. Dynamically sized locals can be stored on a stack enabling precise garbage collection reporting. One frame of the stack is allocated for each code segment to simplify GC reporting. A reporting region in the frame memory region comprises a count of locals and a location at which the local is found in the stack.
    Type: Grant
    Filed: May 13, 2016
    Date of Patent: November 13, 2018
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.
    Inventors: David C. Wrighton, Scott D. Mosier, Fadi M. Hanna, Peter F. Sollich, Jan Kotas
  • Publication number: 20180300170
    Abstract: Some computing devices have limited resources such as, for example, battery power. When a user ceases to interact with an application, execution of the application can be moved to background and the application can be paused. During the time period in which the application is paused, the application consumes no CPU cycles because executing managed threads of the paused application are stopped, and native threads are prevented from running using asynchronous procedure calls.
    Type: Application
    Filed: June 22, 2018
    Publication date: October 18, 2018
    Inventors: Abhinaba Basu, Jan Kotas
  • Patent number: 10025623
    Abstract: Some computing devices have limited resources such as, for example, battery power. When a user ceases to interact with an application, execution of the application can be moved to background and the application can be paused. During the time period in which the application is paused, the application consumes no CPU cycles because executing managed threads of the paused application are stopped, and native threads are prevented from running using asynchronous procedure calls.
    Type: Grant
    Filed: January 31, 2016
    Date of Patent: July 17, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Abhinaba Basu, Jan Kotas
  • Publication number: 20170329704
    Abstract: An instance of universally shared generic code is generated. A runtime parameter enables the size of a stack frame on which local data can be stored to be determined. Dynamically sized locals can be stored on a stack enabling precise garbage collection reporting. One frame of the stack is allocated for each code segment to simplify GC reporting. A reporting region in the frame memory region comprises a count of locals and a location at which the local is found in the stack.
    Type: Application
    Filed: May 13, 2016
    Publication date: November 16, 2017
    Inventors: David C. Wrighton, Scott D. Mosier, Fadi M. Hanna, Peter F. Sollich, Jan Kotas
  • Publication number: 20170083298
    Abstract: Code components can be distributed as executable code (e.g., binaries) in a format that includes both machine-independent intermediate code (e.g., bytecode, CIL, etc.) and ahead-of-time compiled native code. The native code is executed if the execution environment is compatible with the native code. If the execution environment is incompatible with the native code, execution falls back to execution from intermediate code.
    Type: Application
    Filed: September 23, 2015
    Publication date: March 23, 2017
    Inventors: Jan Kotas, Raja Krishnaswamy, Vance Morrison
  • Patent number: 9584877
    Abstract: One or more identifiers that facilitate efficient native image validation can be generated and stored in an auxiliary file upon pre-compiling of an assembly. The native image can be validated against an assembly from which the native image is generated, among other files that influence the generated contents of the native image, based upon the auxiliary file and included identifiers. Additionally, native image validation can be performed in an increasing cost sequence associated with each identifier included within the auxiliary file.
    Type: Grant
    Filed: June 16, 2011
    Date of Patent: February 28, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Pracheeti Nagarkar, Michael Rayhelson, Atsushi Kanamori, Fadi Hanna, Surupa Biswas, Jan Kotas
  • Publication number: 20160224374
    Abstract: Some computing devices have limited resources such as, for example, battery power. When a user ceases to interact with an application, execution of the application can be moved to background and the application can be paused. During the time period in which the application is paused, the application consumes no CPU cycles because executing managed threads of the paused application are stopped, and native threads are prevented from running using asynchronous procedure calls.
    Type: Application
    Filed: January 31, 2016
    Publication date: August 4, 2016
    Inventors: Abhinaba Basu, Jan Kotas
  • Patent number: 9286115
    Abstract: Some computing devices have limited resources such as, for example, battery power. When a user ceases to interact with an application, execution of the application can be moved to background and the application can be paused. During the time period in which the application is paused, the application consumes no CPU cycles because executing managed threads of the paused application are stopped, and native threads are prevented from running using asynchronous procedure calls.
    Type: Grant
    Filed: June 21, 2012
    Date of Patent: March 15, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Abhinaba Basu, Jan Kotas
  • Patent number: 9009693
    Abstract: An enhanced binder provides flexibility and certainty when selecting a version of a software library to load, and an enhanced loader prevents a library version vulnerable to a security flaw from being loaded. The binder can perform unification, implicit override, and/or redirection. Implicit override searches assembly-specific locations for an implicit_version, and override the previously chosen unification or other version with the implicit_version when the implicit_version is greater. The implicit_version gets updated with the individual assembly, whereas the unification_version gets updated with the framework. Redirection may override the implicit_version. Unlike redirection, an implicit_version does not recite an explicit range and is found outside application configuration files. The implicit_version is specified implicitly by the assembly without an XML declaration.
    Type: Grant
    Filed: May 8, 2013
    Date of Patent: April 14, 2015
    Assignee: Microsoft Corporation
    Inventors: Eric St. John, Mohammad Rahim Bhojani, Alok Shriram, David Kean, Divya Swarnkar, Kumar Gaurav Khanna, Gaye Oncul Kok, Jan Kotas, Michael J. Rayhelson, Michael Rousos, Weitao Su, Matthew Charles Cohn, Zhanliang Chen
  • Publication number: 20140337824
    Abstract: An enhanced binder provides flexibility and certainty when selecting a version of a software library to load, and an enhanced loader prevents a library version vulnerable to a security flaw from being loaded. The binder can perform unification, implicit override, and/or redirection. Implicit override searches assembly-specific locations for an implicit_version, and override the previously chosen unification or other version with the implicit_version when the implicit_version is greater. The implicit_version gets updated with the individual assembly, whereas the unification_version gets updated with the framework. Redirection may override the implicit_version. Unlike redirection, an implicit_version does not recite an explicit range and is found outside application configuration files. The implicit_version is specified implicitly by the assembly without an XML declaration.
    Type: Application
    Filed: May 8, 2013
    Publication date: November 13, 2014
    Applicant: Microsoft Corporation
    Inventors: Eric St. John, Mohammad Rahim Bhojani, Alok Shriram, David Kean, Divya Swarnkar, Kumar Gaurav Khanna, Gaye Oncul Kok, Jan Kotas, Michael J. Rayhelson, Michael Rousos, Weitao Su, Matthew Charles Cohn, Zhanliang Chen
  • Publication number: 20130347002
    Abstract: Some computing devices have limited resources such as, for example, battery power. When a user ceases to interact with an application, execution of the application can be moved to background and the application can be paused. During the time period in which the application is paused, the application consumes no CPU cycles because executing managed threads of the paused application are stopped, and native threads are prevented from running using asynchronous procedure calls.
    Type: Application
    Filed: June 21, 2012
    Publication date: December 26, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Abhinaba Basu, Jan Kotas