46 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			46 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | About libscriptfu | ||
|  | 
 | ||
|  | libscriptfu is part of PIKA. | ||
|  | It is not generally useful except by PIKA. | ||
|  | 
 | ||
|  | The libscriptfu library is used by plugin executables, | ||
|  | and the PDB procedures they create, | ||
|  | all part of the "ScriptFu" machinery. | ||
|  | 
 | ||
|  | The libscriptfu library is not intended for third-party developers, | ||
|  | only for core PIKA developers. | ||
|  | Headers for libscriptfu might not be installed. | ||
|  | 
 | ||
|  | This directory contains three libraries: libscriptfu, tinyscheme, and ftx. | ||
|  | The tinyscheme library contains a TinyScheme interpreter. | ||
|  | The ftx library extends the TinyScheme interpreter, | ||
|  | adding file functions to the Scheme language. | ||
|  | The libscriptfu library contains both the tinyscheme and ftx libraries. | ||
|  | The libscriptfu library wraps the TinyScheme interpreter, | ||
|  | specializing it for PIKA. | ||
|  | The script-fu executable uses the libscriptfu library, | ||
|  | to interpret Scheme scripts that PIKA users refer to as "plug-ins." | ||
|  | 
 | ||
|  | These libraries depend on other libraries, e.g. math, libpika, glib, etc. | ||
|  | 
 | ||
|  | Coupling between the executables and the libraries should be in one direction: | ||
|  | source for the inner libs should not include headers from the outer executables. | ||
|  | This lets you more easily update the inner libraries | ||
|  | (which originated elsewhere and might be maintained elsewhere), | ||
|  | and change the outer executables | ||
|  | (which are subject to change by PIKA developers.) | ||
|  | 
 | ||
|  | Example (which may change): | ||
|  | The script-fu executable is a plugin file that implements PDB procedures: | ||
|  | extension-script-fu, script-fu-console, script-fu-text-console, script-fu-eval, | ||
|  | and script-fu-server. | ||
|  | Each of those PDB procedures runs as a separate process. | ||
|  | Each of those processes uses libscriptfu. | ||
|  | The main PDB procedure is extension-script-fu, which is a long-lived process. | ||
|  | It is a PDB procedure of PDBProcedureType EXTENSION. | ||
|  | It interprets the Scheme scripts that user's call "plug-ins." | ||
|  | 
 | ||
|  | Rarely two of the PDB procedure processes run concurrently. | ||
|  | When they do, and libscriptfu is built as a shared library, | ||
|  | the read-only, code portion of the library is only loaded in memory once. |