Patent application number | Description | Published |
20090254596 | PROVIDING A PUBLISHING MECHANISM FOR MANAGED OBJECTS - Publishing an object. Memory for an object may be reserved so as to lock the memory from being access by garbage collection threads or other user threads. While the lock is in place, type and size information can be installed for the object. If the reservation is being made to allow garbage collection threads to operate on the object, then the type may be a specialized type that indicates that the object has no references. Reservations can also be made to allow the intended type information to be installed for the object. An indication can be made that the object is well formed, thus unlocking the object and allowing garbage collection threads, other user threads, or both to access the object. The locking and unlocking may be performed by accessing an API provided by a system garbage collector. | 10-08-2009 |
20090259702 | USING AN OVERFLOW LIST TO PROCESS MARK OVERFLOW - Mark stack overflow list. A method may be practiced in a computing environment including application code that implements garbage collection functionality. The garbage collection functionality includes pushing object references onto a mark stack, such that objects referenced on the mark stack can be marked so as to prevent memory for the objects from being recycled for use with other objects instances. The method includes acts for handling overflows of a mark stack. The method includes accessing a reference to an object. The object is processed by attempting to enumerate references to other objects from the object onto a mark stack. An overflow condition of the mark stack is detected for a referenced other object. A reference to the referenced other object is placed on an overflow list. References from the overflow list are processed. | 10-15-2009 |
20090265402 | EFFICIENTLY MARKING OBJECTS WITH LARGE REFERENCE SETS - Adding references to objects to a mark stack. A limited number of references to objects referenced by an object with a large number of object references are added to the stack. An object is accessed. A determination is made that references in the object should be added to a mark stack using a reference in the mark stack to the object in conjunction with a pointer. The pointer is used to track which references in the object have been placed on the mark stack. A reference to the object on the mark stack is accessed. A pointer is initialized. A reference to another object referenced by the object is pushed onto the mark stack. The pointer is incremented. It is then determined that that more references should be pushed to the mark stack. Acts of pushing references onto the mark stack and incrementing the pointer are repeated. | 10-22-2009 |
20090300085 | OVERFLOW PER SEGMENT - Per-segment overflow ranges. One method includes acts for handling overflows of a mark stack. A reference to an object is accessed. The object is processed by attempting to place references to other objects referenced in the object onto a mark stack. An overflow condition of the mark stack is detected. A range in a segment is defined which includes the object that caused the overflow condition. The range is assigned on a per segment basis such that the range is defined to only include addresses in a single segment. | 12-03-2009 |
20100058283 | FLEXIBLE BASE CLASS LIBRARY - Mechanisms that allow frameworks significant flexibility in varying the library of common base classes in a manner that better suits the domain of applications served by the framework. Instead of providing the base class library, the runtime provides a data contract for the data structure of each base class. The frameworks can then define each base class in a custom way so long as the data contract is honored. Thus, for example, the framework may provide custom framework-specific methods and/or properties as is appropriate for the framework. Another framework might define the base classes in a different way. | 03-04-2010 |
20100058304 | TYPE DESCRIPTOR MANAGEMENT FOR FROZEN OBJECTS - The efficient use of type descriptors with frozen objects. A frozen object might actually include several type descriptors, a primary type descriptor that is canonical according to a set of canonicalization rules, and an auxiliary type descriptor that is not identical to the primary type descriptor. The auxiliary type descriptor may be used to access the canonical type descriptor. When performing an operation, if the auxiliary type descriptor can be used to perform the operation, then that auxiliary type descriptor may be used. If the canonical type descriptor is to be used to perform the operation, the auxiliary type descriptor is used to gain access to the canonical primary type descriptor. The primary type descriptor is then used to perform the operation. | 03-04-2010 |
20100070957 | System and Method for Sharing Objects Between Applications in a Virtual Runtime Environment - The techniques and mechanisms described herein are directed at sharing objects between applications executing in a virtual runtime environment. The techniques include compiling a cpu-independent file to create executable instructions that are associated with an application that is executable in a virtual runtime environment. A constructor associated with a shareable class defined within the cpu-independent file is executed to create an instance of a shareable object. The shareable object is then persisted in a manner such that other applications executing in the virtual runtime environment may access the shareable object. The technique may be performed during pre-JIT compilation or just-in-time compilation of the cpu-independent file. The execution of the constructor is performed at a restricted security level that prevents access to changeable information when generating static data for the static members of the shareable object. | 03-18-2010 |
20120278813 | LOAD BALANCING - Efforts to avoid time-outs during execution of an application in a managed execution environment may be implemented by monitoring memory allocation. | 11-01-2012 |
20130042258 | RUNTIME SYSTEM - Various embodiments provide an ability to describe, independent of a programming language, one or more interfaces associated with an operating system. Alternately or additionally, a compiler associated with a specific programming language can be configured to map the independent interface description(s) to the specific programming language. In some embodiments, an application can be configured to programmatically determine one or more interfaces of the operating system. | 02-14-2013 |
20130339928 | ADAPTIVE PORTABLE LIBRARIES - Platform-agnostic source code can be augmented with one or more portions of source code annotated for different platforms and/or versions. The source code including both the platform-agnostic and platform-specific and/or version-specific portions can be compiled once to create a single executable that can be distributed to and can run on multiple device platforms and/or multiple versions of one or more platforms. Platform-specific or version-specific executables (e.g., assemblies, binaries, etc.) can be embedded into a binary or executable as resources (e.g., data). When the compiled code is executed on a device, the runtime can extract the platform-specific portion corresponding to the device on which the executable is being run, can bind the extracted portion to the executable and can load and execute the executable. Hence the same binary can produce different results or functionalities depending on the capabilities of the platform on which the binary runs. | 12-19-2013 |
20140325534 | RUNTIME SYSTEM - Various embodiments provide an ability to describe, independent of a programming language, one or more interfaces associated with an operating system. Alternately or additionally, a compiler associated with a specific programming language can be configured to map the independent interface description(s) to the specific programming language. In some embodiments, an application can be configured to programmatically determine one or more interfaces of the operating system. | 10-30-2014 |