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.
 |