Patents by Inventor Blaine Garst

Blaine Garst 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: 8781971
    Abstract: A method and apparatus for enforcing software licenses for resource libraries such as an application program interface (API), a toolkit, a framework, a runtime library, a dynamic link library (DLL), an applet (e.g., a Java or ActiveX applet), or any other reusable resource. The resource library can be used by authorized end user software programs. A “per-program” licensing scheme for a resource library can allow a resource library to be licensed only for use with particular software programs.
    Type: Grant
    Filed: March 4, 2013
    Date of Patent: July 15, 2014
    Assignee: Apple Inc.
    Inventors: Gerald Blaine Garst, Jr., Bertrand Serlet
  • Patent number: 8504596
    Abstract: Extended garbage collection is disclosed. It is determined, based at least in part on data stored in a data structure accessible to the respective garbage collecting entity of each of a plurality of runtime systems, that a local object is associated with one or more external objects. The local object is retained, even if the local object has been determine to be unreachable locally in a local runtime system with which the local object is associated, if at least one of said one or more external objects has been determined to be reachable within an external runtime environment with which the at least one external object is associated.
    Type: Grant
    Filed: July 25, 2007
    Date of Patent: August 6, 2013
    Assignee: Apple Inc.
    Inventor: Gerald Blaine Garst, Jr.
  • Patent number: 8452712
    Abstract: A method and apparatus for enforcing software licenses for resource libraries such as an application program interface (API), a toolkit, a framework, a runtime library, a dynamic link library (DLL), an applet (e.g., a Java or ActiveX applet), or any other reusable resource. The resource library can be used by authorized end user software programs. A “per-program” licensing scheme for a resource library can allow a resource library to be licensed only for use with particular software programs.
    Type: Grant
    Filed: September 23, 2011
    Date of Patent: May 28, 2013
    Assignee: Apple Inc.
    Inventors: Blaine Garst, Bertrand Serlet
  • Patent number: 8341614
    Abstract: Methods, software media, compilers and programming techniques are described for creating copyable stack-based closures, such as a block, for languages which allocate automatic or local variables on a stack memory structure. In one exemplary method, a data structure of the block is first written to the stack memory structure, and this may be the automatic default operation, at run-time, for the block; then, a block copy instruction, added explicitly (in one embodiment) by a programmer during creation of the block, is executed to copy the block to a heap memory structure. The block includes a function pointer that references a function which uses data in the block.
    Type: Grant
    Filed: September 30, 2008
    Date of Patent: December 25, 2012
    Assignee: Apple Inc.
    Inventors: Gerald Blaine Garst, Jr., William Bumgarner, Fariborz Jahanian, Christopher Arthur Lattner
  • Patent number: 8291395
    Abstract: Methods and apparatus, including computer program products, for locating a function call site in a code segment of a running application, the code segment including a plurality of instructions. The call site is the location of an invocation of a function and includes a first reference, the first reference being a reference to a first dispatcher. The call site in the code segment is modified by replacing the first reference with a second reference, the second reference being a reference to second dispatcher, the second dispatcher different from the first dispatcher.
    Type: Grant
    Filed: March 31, 2006
    Date of Patent: October 16, 2012
    Assignee: Apple Inc.
    Inventors: Steve Naroff, Blaine Garst, Greg Parker
  • Patent number: 8255436
    Abstract: Per thread garbage collection is disclosed. Objects associated only with a thread that created them are tracked. At a garbage collection time for a particular thread, it is determined which objects associated only with that thread remain reachable from a restricted root set associated with the thread. Any thread-only objects that are not determined to be reachable are garbage collected.
    Type: Grant
    Filed: June 10, 2011
    Date of Patent: August 28, 2012
    Assignee: Apple Inc.
    Inventors: Gerald Blaine Garst, Jr., Gregory Robert Parker, Douglas Joshua Behnke, Patrick C. Beard
  • Publication number: 20120066135
    Abstract: A method and apparatus for enforcing software licenses for resource libraries such as an application program interface (API), a toolkit, a framework, a runtime library, a dynamic link library (DLL), an applet (e.g., a Java or ActiveX applet), or any other reusable resource. The resource library can be used by authorized end user software programs. A “per-program” licensing scheme for a resource library can allow a resource library to be licensed only for use with particular software programs.
    Type: Application
    Filed: September 23, 2011
    Publication date: March 15, 2012
    Inventors: Blaine Garst, Bertrand Serlet
  • Publication number: 20110238713
    Abstract: Per thread garbage collection is disclosed. Objects associated only with a thread that created them are tracked. At a garbage collection time for a particular thread, it is determined which objects associated only with that thread remain reachable from a restricted root set associated with the thread. Any thread-only objects that are not determined to be reachable are garbage collected.
    Type: Application
    Filed: June 10, 2011
    Publication date: September 29, 2011
    Applicant: APPLE INC.
    Inventors: Gerald Blaine Garst Jr., Gregory Robert Parker, Douglas Joshua Behnke, Patrick C. Beard
  • Patent number: 8027925
    Abstract: The present invention comprises a method and apparatus for enforcing software licenses for resource libraries such as an application program interface (API), a toolkit, a framework, a runtime library, a dynamic link library (DLL), an applet (e.g. a Java or ActiveX applet), or any other reusable resource. The present invention allows the resource library to be selectively used only by authorized end user software programs. The present invention can be used to enforce a “per-program” licensing scheme for a resource library whereby the resource library is licensed only for use with particular software programs. In one embodiment, a license text string and a corresponding license key are embedded in a program that has been licensed to use a resource library. The license text string and the license key are supplied, for example, by a resource library vendor to a program developer who wants to use the resource library with an end user program being developed.
    Type: Grant
    Filed: November 1, 2000
    Date of Patent: September 27, 2011
    Assignee: Apple Inc.
    Inventors: Blaine Garst, Bertrand Serlet
  • Patent number: 7991808
    Abstract: Per thread garbage collection is disclosed. Objects associated only with a thread that created them are tracked. At a garbage collection time for a particular thread, it is determined which objects associated only with that thread remain reachable from a restricted root set associated with the thread. Any thread-only objects that are not determined to be reachable are garbage collected.
    Type: Grant
    Filed: May 21, 2008
    Date of Patent: August 2, 2011
    Assignee: Apple Inc.
    Inventors: Gerald Blaine Garst, Jr., Gregory Robert Parker, Douglas Joshua Behnke, Patrick C. Beard
  • Publication number: 20110066897
    Abstract: Methods and apparatuses that correlate a plurality of snapshots of system resources to identify allocation of permanent resource objects are described. Each snapshot may include an inventory of resource objects already allocated at the time of the snapshot. The plurality of snapshots may be taken at different instants over a period of time. Temporarily allocated resource objects may be filtered from the plurality of snapshots to identify permanent resource objects according to the correlation among the plurality of snapshots.
    Type: Application
    Filed: September 11, 2009
    Publication date: March 17, 2011
    Inventors: William Bumgarner, Patrick Beard, Blaine Garst, Benjamin Holt
  • Patent number: 7716450
    Abstract: A system for transparent local and distributed memory management overcomes the requirement of keeping track of whether a memory space allocated to a new object or a new program or data structure can be reclaimed. An autorelease pool is created at the beginning of a new duty cycle. The autorelease pool retains the newly allocated memory space during the duty cycle. The autorelease pool is automatically disposed of at the end of the duty cycle. As a result of disposing the autorelease pool, the newly allocated memory space is reclaimed (i.e., deallocated). This is useful in distributed networks where different programming conventions on remote and local machines made the memory management task particularly difficult. This is also useful in an object-oriented programming environment.
    Type: Grant
    Filed: November 28, 2007
    Date of Patent: May 11, 2010
    Assignee: Apple Inc.
    Inventors: Blaine Garst, Ali Ozer, Bertrand Serlet, Trey Matteson
  • Publication number: 20090307669
    Abstract: Methods, software media, compilers and programming techniques are described for binding data to a function using thunk synthesis. In one exemplary method, a computing system executes a program having a function with a first set of arguments. In response to the function being called, a function pointer of the function is synthesized to recover an extra argument for the function in addition to the first set of arguments.
    Type: Application
    Filed: September 30, 2008
    Publication date: December 10, 2009
    Inventors: Gerald Blaine Garst, JR., Benjamin C. Trumbull
  • Publication number: 20090307431
    Abstract: Methods, software media, compilers and programming techniques are described for creating copyable stack-based closures, such as a block, for languages which allocate automatic or local variables on a stack memory structure. In one exemplary method, a data structure of the block is first written to the stack memory structure, and this may be the automatic default operation, at run-time, for the block; then, a block copy instruction, added explicitly (in one embodiment) by a programmer during creation of the block, is executed to copy the block to a heap memory structure. The block includes a function pointer that references a function which uses data in the block.
    Type: Application
    Filed: September 30, 2008
    Publication date: December 10, 2009
    Inventors: Gerald Blaine Garst, JR., William Bumgarner, Fariborz Jahanian, Christopher Arthur Lattner
  • Publication number: 20090292749
    Abstract: Per thread garbage collection is disclosed. Objects associated only with a thread that created them are tracked. At a garbage collection time for a particular thread, it is determined which objects associated only with that thread remain reachable from a restricted root set associated with the thread. Any thread-only objects that are not determined to be reachable are garbage collected.
    Type: Application
    Filed: May 21, 2008
    Publication date: November 26, 2009
    Inventors: Gerald Blaine Garst, JR., Gregory Robert Parker, Douglas Joshua Behnke, Patrick C. Beard
  • Publication number: 20090030958
    Abstract: Extended garbage collection is disclosed. It is determined, based at least in part on data stored in a data structure accessible to the respective garbage collecting entity of each of a plurality of runtime systems, that a local object is associated with one or more external objects. The local object is retained, even if the local object has been determine to be unreachable locally in a local runtime system with which the local object is associated, if at least one of said one or more external objects has been determined to be reachable within an external runtime environment with which the at least one external object is associated.
    Type: Application
    Filed: July 25, 2007
    Publication date: January 29, 2009
    Inventor: Gerald Blaine Garst, JR.
  • Publication number: 20080307174
    Abstract: A dual-use library that is able to handle calls from programs requiring either reference count or garbage collected memory management is described. This capability may be provided by introducing a new assignment routine, assign( ), and instrumenting the reference count routines responsible for updating an object's reference count—e.g., addReference( ) and removeReference( ) routines. The assign( ), addReferenc( ) and removeReference( ) routines determine, at runtime, which memory management scheme is appropriate and execute the appropriate instructions (i.e., reference count or garbage collection specific instructions). The described dual-use library provides equivalent functionality as prior art two library implementations, but with a significantly lower memory footprint.
    Type: Application
    Filed: June 8, 2007
    Publication date: December 11, 2008
    Applicant: Apple Inc.
    Inventors: Blaine Garst, Bertrand Philippe Serlet
  • Publication number: 20080140737
    Abstract: Methods, devices, systems and computer program products for the automatic management of dynamically allocated program memory (“garbage collection”s are described. In one implementation, identification of reachable objects is performed substantially concurrently with continued execution of computational threads (mutator execution). Only during a brief, catch-up scan, are mutator threads blocked—and then only one thread at a time. In another embodiment, generational collection is provided wherein retained nodes are not moved. In still another implementation, functions may be registered with the garbage collector task. These functions may be executed periodically during a collection cycle to determine if a specified event (e.g., timer expiration or user interface event such as a mouse “click”) has occurred. If the specified event is detected, garbage collection may be aborted.
    Type: Application
    Filed: December 8, 2006
    Publication date: June 12, 2008
    Applicant: Apple Computer, Inc.
    Inventors: Blaine Garst, Bertrand Philippe Serlet
  • Publication number: 20080072008
    Abstract: The present invention discloses a system for transparent local and distributed memory management. The invention overcomes the prior art's requirement of keeping track of whether a memory space allocated to a new object or a new program or data structure can be reclaimed. According to the present invention an autorelease pool is created at the beginning of a new duty cycle. The autorelease pool retains the newly allocated memory space during the duty cycle. The autorelease pool is automatically disposed of at the end of the duty cycle. As a result of disposing the autorelease pool, the newly allocated memory space is reclaimed (i.e., deallocated). The present invention is useful in distributed networks where different programming conventions on remote and local machines made the prior art's memory management task particularly difficult. The present invention is also useful in an object-oriented programming environment.
    Type: Application
    Filed: November 28, 2007
    Publication date: March 20, 2008
    Inventors: Blaine Garst, Ali Ozer, Bertrand Serlet, Trey Matteson
  • Patent number: 7305538
    Abstract: The present invention discloses a system for transparent local and distributed memory management. The invention overcomes the prior art's requirement of keeping track of whether a memory space allocated to a new object or a new program or data structure can be reclaimed. According to the present invention an autorelease pool is created at the beginning of a new duty cycle. The autorelease pool retains the newly allocated memory space during the duty cycle. The autorelease pool is automatically disposed of at the end of the duty cycle. As a result of disposing the autorelease pool, the newly allocated memory space is reclaimed (i.e., deallocated). The present invention is useful in distributed networks where different programming conventions on remote and local machines made the prior art's memory management task particularly difficult. The present invention is also useful in an object-oriented programming environment.
    Type: Grant
    Filed: April 10, 2003
    Date of Patent: December 4, 2007
    Assignee: Apple Inc.
    Inventors: Blaine Garst, Ali Ozer, Bertrand Serlet, Trey Matteson