Patents by Inventor Sebastien Pouliot
Sebastien Pouliot 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).
-
Patent number: 10657044Abstract: Embodiments are directed towards managing memory for an application be executing in a managed runtime environment. Managed peer objects may be generated to correspond to native objects executing in a native runtime environment such that memory may be allocated for managed peer objects. Garbage collection handles may be generated and associated with the managed peer objects. If the managed application executes instructions that interact with the managed peer objects and the native runtime environment each garbage collection handle associated with the managed peer objects may be modified based on a type of an interaction. The garbage collection handlers may be garbage collection roots for a garbage collector that may be included in the managed runtime memory manager. If a garbage collection event occurs, memory for the managed peer objects may be deallocated based in part on its correspondent garbage collection handle.Type: GrantFiled: December 14, 2015Date of Patent: May 19, 2020Assignee: Xamarin Inc.Inventors: Rodrigo Vitezlav Martucci Kumpera, Rolf Bjarne Kvinge, Aaron Dean Bockover, Christopher Ryan Hamons, Sebastien Pouliot, Miguel de Icaza
-
Patent number: 10061567Abstract: Embodiments are directed towards generating applications that include multi-sized types running in managed code. During the compilation of an intermediate language version of an application, if a multi-size type is encountered, a runtime engine may perform actions to process the multi-size types. Accordingly, architecture information associated with the target computer may be determined. Data types corresponding to the architecture of the target computer and the multi-sized types may be determined based on the architecture information. Native code calls associated with an intermediate language code calls may be determined such that the parameters of the native code calls match the architecture dependent data types. And, a machine code version of the intermediate language code call may be generated. The generated machine code version of the intermediate language code may be executed with the data types specific to the target computer.Type: GrantFiled: October 4, 2016Date of Patent: August 28, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Miguel de Icaza, Rodrigo Kumpera, Sebastien Pouliot, Rolf Bjarne Kvinge, Aaron Dean Bockover, Zoltan Varga
-
Publication number: 20170131981Abstract: Embodiments are directed towards generating applications that include multi-sized types running in managed code. During the compilation of an intermediate language version of an application, if a multi-size type is encountered, a runtime engine may perform actions to process the multi-size types. Accordingly, architecture information associated with the target computer may be determined. Data types corresponding to the architecture of the target computer and the multi-sized types may be determined based on the architecture information. Native code calls associated with an intermediate language code calls may be determined such that the parameters of the native code calls match the architecture dependent data types. And, a machine code version of the intermediate language code call may be generated. The generated machine code version of the intermediate language code may be executed with the data types specific to the target computer.Type: ApplicationFiled: October 4, 2016Publication date: May 11, 2017Applicant: Xamarin Inc.Inventors: Miguel de lcaza, Rodrigo Kumpera, Sebastien Pouliot, Rolf Bjarne Kvinge, Aaron Dean Bockover, Zoltan Varga
-
Patent number: 9459847Abstract: Embodiments are directed towards generating applications that include multi-sized types running in managed code. During the compilation of an intermediate language version of an application, if a multi-size type is encountered, a runtime engine may perform actions to process the multi-size types. Accordingly, architecture information associated with the target computer may be determined. Data types corresponding to the architecture of the target computer and the multi-sized types may be determined based on the architecture information. Native code calls associated with an intermediate language code calls may be determined such that the parameters of the native code calls match the architecture dependent data types. And, a machine code version of the intermediate language code call may be generated. The generated machine code version of the intermediate language code may be executed with the data types specific to the target computer.Type: GrantFiled: November 9, 2015Date of Patent: October 4, 2016Assignee: Xamarin Inc.Inventors: Miguel de Icaza, Rodrigo Kumpera, Sebastien Pouliot, Rolf Bjarne Kvinge, Aaron Dean Bockover, Zoltan Varga
-
Publication number: 20160283370Abstract: Embodiments are directed towards managing memory for an application be executing in a managed runtime environment. Managed peer objects may be generated to correspond to native objects executing in a native runtime environment such that memory may be allocated for managed peer objects. Garbage collection handles may be generated and associated with the managed peer objects. If the managed application executes instructions that interact with the managed peer objects and the native runtime environment each garbage collection handle associated with the managed peer objects may be modified based on a type of an interaction. The garbage collection handlers may be garbage collection roots for a garbage collector that may be included in the managed runtime memory manager. If a garbage collection event occurs, memory for the managed peer objects may be deallocated based in part on its correspondent garbage collection handle.Type: ApplicationFiled: December 14, 2015Publication date: September 29, 2016Inventors: Rodrigo Vitezlav Martucci Kumpera, Rolf Bjarne Kvinge, Aaron Dean Bockover, Christopher Ryan Hamons, Sebastien Pouliot, Miguel de Icaza
-
Publication number: 20160132303Abstract: Embodiments are directed towards generating applications that include multi-sized types running in managed code. During the compilation of an intermediate language version of an application, if a multi-size type is encountered, a runtime engine may perform actions to process the multi-size types. Accordingly, architecture information associated with the target computer may be determined. Data types corresponding to the architecture of the target computer and the multi-sized types may be determined based on the architecture information. Native code calls associated with an intermediate language code calls may be determined such that the parameters of the native code calls match the architecture dependent data types. And, a machine code version of the intermediate language code call may be generated. The generated machine code version of the intermediate language code may be executed with the data types specific to the target computer.Type: ApplicationFiled: November 9, 2015Publication date: May 12, 2016Inventors: Miguel de Icaza, Rodrigo Kumpera, Sebastien Pouliot, Rolf Bjarne Kvinge, Aaron Dean Bockover, Zoltan Varga
-
Patent number: 9213638Abstract: Embodiments are directed towards managing memory for an application be executing in a managed runtime environment. Managed peer objects may be generated to correspond to native objects executing in a native runtime environment such that memory may be allocated for managed peer objects. Garbage collection handles may be generated and associated with the managed peer objects. If the managed application executes instructions that interact with the managed peer objects and the native runtime environment each garbage collection handle associated with the managed peer objects may be modified based on a type of an interaction. The garbage collection handlers may be garbage collection roots for a garbage collector that may be included in the managed runtime memory manager. If a garbage collection event occurs, memory for the managed peer objects may be deallocated based in part on its correspondent garbage collection handle.Type: GrantFiled: March 24, 2015Date of Patent: December 15, 2015Assignee: Xamarin Inc.Inventors: Rodrigo Vitezlav Martucci Kumpera, Rolf Bjarne Kvinge, Aaron Dean Bockover, Christopher Ryan Hamons, Sebastien Pouliot, Miguel de Icaza
-
Patent number: 9201637Abstract: Embodiments are directed towards managing generic objects across multiple runtime environments. If a generic type definition is encountered during compilation of an application it may be determined if the encountered generic type has interactions with the native runtime environment. Native runtime signatures that may be arranged to enable native objects to execute the generic type methods may be generated for each generic type methods that interact with the native runtime. Binding layer machine code may be generated to map each native runtime signature to a corresponding generic type method. And, in at least one of the various embodiments, the binding layer machine code may be inserted into the machine code version of the application.Type: GrantFiled: March 26, 2015Date of Patent: December 1, 2015Assignee: Xamarin Inc.Inventors: Rolf Bjarne Kvinge, Sebastien Pouliot, Miguel de Icaza
-
Patent number: 9183020Abstract: Embodiments are directed towards generating applications that include multi-sized types running in managed code. During the compilation of an intermediate language version of an application, if a multi-size type is encountered, a runtime engine may perform actions to process the multi-size types. Accordingly, architecture information associated with the target computer may be determined. Data types corresponding to the architecture of the target computer and the multi-sized types may be determined based on the architecture information. Native code calls associated with an intermediate language code calls may be determined such that the parameters of the native code calls match the architecture dependent data types. And, a machine code version of the intermediate language code call may be generated. The generated machine code version of the intermediate language code may be executed with the data types specific to the target computer.Type: GrantFiled: November 10, 2014Date of Patent: November 10, 2015Assignee: Xamarin Inc.Inventors: Miguel de Icaza, Rodrigo Kumpera, Sebastien Pouliot, Rolf Bjarne Kvinge, Aaron Dean Bockover, Zoltan Varga
-
Patent number: 8464207Abstract: A system and method may be used to track software changes by analyzing intermediate language level representations of the software. For example, software changes may be tracked by analyzing object-oriented program code that includes one or more non-native binary executables based on an intermediate language. The program code may be associated with metadata describing content of the non-native binary executables. An object tree, which includes a plurality of nodes, may be constructed to represent the non-native binary executables and the metadata describing the content of the non-native binary executables. One or more of the plurality of nodes may be hashed to associate respective digest values with the hashed nodes, such that changes in the received program code can be tracked using the digest values associated with the hashed nodes.Type: GrantFiled: October 12, 2007Date of Patent: June 11, 2013Assignee: Novell Intellectual Property Holdings, Inc.Inventor: Sebastien Pouliot
-
Patent number: 7856654Abstract: The invention is a system and method for delegating security permission evaluation from a client computer to remote network service (e.g., a security server). The centralization of permission evaluation allows performance enhancements using rules compilation and better manageability. An application on a client machine may request a permission to access a resource at runtime and provide evidence data to a security server. The permission evaluation (the decision) is executed by the network service and enforced locally on the client machine. When the application runs on top of a virtual machine, its security manager may be used to hide all of the client-side processes, and thus providing the extra information to the network service in order to locally enforce the results.Type: GrantFiled: August 11, 2006Date of Patent: December 21, 2010Assignee: Novell, Inc.Inventor: Sebastien Pouliot
-
Patent number: 7823186Abstract: The invention relates to a system and method for providing multiple assembly caches for storing shared application resources. Each assembly cache may be associated with a different security policies, locations, internal structures and management. An application may be determined to have access to an assembly cache based on the permission and security policy of the application and security policy of the assembly cache. Additionally, one or more assembly caches may have other policies for cache retention, resolution, and creation.Type: GrantFiled: August 24, 2006Date of Patent: October 26, 2010Assignee: Novell, Inc.Inventor: Sebastien Pouliot
-
Patent number: 7805707Abstract: System and method for allowing embedded devices, even with a limited amount of CPU power and limited memory, to run code more efficiently by eliminating all or most of the runtime checks, while retaining the benefits of runtime checks. The runtime checks may be moved or duplicated to an outside application running on a remote computer. The outside application can prepare the runtime checks for execution at the embedded system. The embedded system may receive pre-validated code and store it inside custom cache for later execution using a check-less, or check-limited, runtime on the embedded device.Type: GrantFiled: July 21, 2006Date of Patent: September 28, 2010Assignee: Novell, Inc.Inventor: Sebastien Pouliot
-
Patent number: 7743414Abstract: System and method for accurately determining security policy for an application based on dynamic code analysis of application runtime execution(s). A dynamic recorder, dynamic code analyzer and security policy analyzer can evaluate and determine the security decisions and access to secure resources made during a security event within one or more executions of an application in order to identify an existing security policy that best matches an application's security needs. Security events may be analyzed to determine which security decisions and access to secure resources are necessary and which can be eliminated or replaced with alternative decisions or resources.Type: GrantFiled: May 26, 2006Date of Patent: June 22, 2010Assignee: Novell, Inc.Inventor: Sebastien Pouliot
-
Patent number: 7739735Abstract: The invention relates to a system and method for efficient security runtime. If the same security demand for permissions occurs twice during the same code path (i.e. execution stack) the latter can be automatically turned (optimized) into a security assertion based on the former demand. A security runtime can determine which assertions to establish in a call stack, using declarative security information kept in an assembly metadata and based on execution history to know what has already been demanded for a specific stack frame. If the method being called has been allowed to execute before then a demand may be replaced with an assertion for the same permissions within the call stack. If that frame was executed then it means the security demand was successfully evaluated. Furthermore, if the permission evaluation result is known to be static (e.g.Type: GrantFiled: July 26, 2006Date of Patent: June 15, 2010Assignee: Novell, Inc.Inventor: Sebastien Pouliot
-
Patent number: 7725922Abstract: The present invention allows shell program to be managed with security policies and enforced using sandboxes enforced by the security manager of a managed environment. The additional security policies may come from shell tool specific security policies, application specific security policies, resource based security policies, shell based policies, owner based policies, user based policies and/or other types of policies. Security policies may be merged to provide a managed shell more permission granularity in addition to existing machine policies.Type: GrantFiled: March 21, 2006Date of Patent: May 25, 2010Assignee: Novell, Inc.Inventor: Sebastien Pouliot
-
Publication number: 20090100410Abstract: A system and method may be used to track software changes by analyzing intermediate language level representations of the software. For example, software changes may be tracked by analyzing object-oriented program code that includes one or more non-native binary executables based on an intermediate language. The program code may be associated with metadata describing content of the non-native binary executables. An object tree, which includes a plurality of nodes, may be constructed to represent the non-native binary executables and the metadata describing the content of the non-native binary executables. One or more of the plurality of nodes may be hashed to associate respective digest values with the hashed nodes, such that changes in the received program code can be tracked using the digest values associated with the hashed nodes.Type: ApplicationFiled: October 12, 2007Publication date: April 16, 2009Applicant: Novell, Inc.Inventor: Sebastien Pouliot
-
Publication number: 20080072276Abstract: The invention relates to a system and method for providing multiple assembly caches for storing shared application resources. Each assembly cache may be associated with a different security policies, locations, internal structures and management. An application may be determined to have access to an assembly cache based on the permission and security policy of the application and security policy of the assembly cache. Additionally, one or more assembly caches may have other policies for cache retention, resolution, and creation.Type: ApplicationFiled: August 24, 2006Publication date: March 20, 2008Applicant: Novell, Inc.Inventor: Sebastien Pouliot
-
Publication number: 20080066063Abstract: System and method for allowing embedded devices, even with a limited amount of CPU power and limited memory, to run code more efficiently by eliminating all or most of the runtime checks, while retaining the benefits of runtime checks. The runtime checks may be moved or duplicated to an outside application running on a remote computer. The outside application can prepare the runtime checks for execution at the embedded system. The embedded system may receive pre-validated code and store it inside custom cache for later execution using a check-less, or check-limited, runtime on the embedded device.Type: ApplicationFiled: July 21, 2006Publication date: March 13, 2008Applicant: Novell, Inc.Inventor: Sebastien Pouliot
-
Publication number: 20080046961Abstract: The invention is a system and method for delegating security permission evaluation from a client computer to remote network service (e.g., a security server). The centralization of permission evaluation allows performance enhancements using rules compilation and better manageability. An application on a client machine may request a permission to access a resource at runtime and provide evidence data to a security server. The permission evaluation (the decision) is executed by the network service and enforced locally on the client machine. When the application runs on top of a virtual machine, its security manager may be used to hide all of the client-side processes, and thus providing the extra information to the network service in order to locally enforce the results.Type: ApplicationFiled: August 11, 2006Publication date: February 21, 2008Applicant: Novell, Inc.Inventor: Sebastien Pouliot