Diff for /freem/doc/freem.texi between versions 1.32 and 1.33

version 1.32, 2025/04/19 01:10:05 version 1.33, 2025/04/20 15:43:32
Line 4427  See @ref{Classes}. Line 4427  See @ref{Classes}.
 @cindex variables, global  @cindex variables, global
 @cindex data  @cindex data
   
   @menu
   * Globals Overview::            Basics of FreeM persistent storage.
   * Creating Globals::            How to create globals.
   * Removing Globals::            How to remove globals.
   * Global Storage::              How globals are stored.
   @end menu
   
   @node Globals Overview
   @section Globals Overview
   
 FreeM supports typical M globals, which are often described as persistent, hierachical sparse arrays. Globals make it relatively simple to include persistent data in an application without requiring the developer to use an external database management system, and offer syntax and semantics so similar to M local variables and structured system variables that moving from one to the other is seamless.  FreeM supports typical M globals, which are often described as persistent, hierachical sparse arrays. Globals make it relatively simple to include persistent data in an application without requiring the developer to use an external database management system, and offer syntax and semantics so similar to M local variables and structured system variables that moving from one to the other is seamless.
   
 Each global comprises three elements:  Each global comprises three elements:
Line 4507  typedef struct global_header { Line 4517  typedef struct global_header {
 @cindex locking  @cindex locking
 @cindex transaction processing  @cindex transaction processing
   
   @menu
   * Concurrency Control Overview::                Basics of concurrency control.
   * Advisory Locks::                              Coordinating access voluntarily.
   * Transaction Processing::                      Ensuring logical consistency.
   @end menu
   
   @node Concurrency Control Overview
   @section Concurrency Control Overview
   
 Multitasking, multi-user FreeM applications must concern themselves with concurrent access to globals in order to maintain logical consistency and prevent concurrent writes from interleaving.  Multitasking, multi-user FreeM applications must concern themselves with concurrent access to globals in order to maintain logical consistency and prevent concurrent writes from interleaving.
   
 In FreeM, there are two mechanisms provided for managing concurrent global access: advisory locks, and transaction processing.  In FreeM, there are two mechanisms provided for managing concurrent global access: advisory locks, and transaction processing.
   
   @node Advisory Locks
   @section Advisory Locks
   
 @node Transaction Processing  @node Transaction Processing
 @section Transaction Processing  @section Transaction Processing
 @cindex transaction processing  @cindex transaction processing
Line 4652  The effect of this is that the operation Line 4674  The effect of this is that the operation
 @node Classes  @node Classes
 @section Classes  @section Classes
   
   @menu
   * Class Overview::                  Class basics.
   * Constructors::                    Managing object creation.
   * Destructors::                     Cleaning up.
   * Runtime Polymorphism::            Selecting methods at runtime.
   @end menu
   
   @node Class Overview
   @subsection Class Overview
   
 A @emph{class} is the primary organizing concept of FreeM support for object-oriented programming, and in FreeM, is simply an M routine with a few special properties:  A @emph{class} is the primary organizing concept of FreeM support for object-oriented programming, and in FreeM, is simply an M routine with a few special properties:
   
 @example  @example

Removed from v.1.32  
changed lines
  Added in v.1.33


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>