Part II. Extensions and libraries

Table of Contents

1. System building
1.1. Introduction
1.2. System definition files
1.3. Practical examples
1.4. ASDF Reference
asdf:make-build — Block-build an ASDF system definition
asdf:load-fasl-op — Compile and load one ore more libraries using unified FASL
2. Operating System Interface
2.1. Processes
2.2. Command line arguments
2.3. OS Reference
ext:*help-message* — Command line help message
ext:*lisp-init-files*ECL initialization files.
ext:+default-command-arg-rules+ECL command line options
ext:command-args — List of command line arguments.
ext:process-command-args — Process command line arguments.
ext:quit — Exit ECL.
ext:run-program — Start and communicate with a child process.
ext:system — Invoke a command using the shell.
3. Foreign Function Interface
3.1. What is a FFI?
3.2. Two kinds of FFI
3.3. Foreign objects
3.4. Higher level interfaces
3.4.1. UFFI example
3.4.2. CFFI example
3.4.3. Low level example
3.5. FFI Reference
ffi:clines — Insert C declarations and definitions
ffi:c-inline — Inline C code in a lisp form.
4. Multithreading
4.1. Tasks, threads or processes
4.2. MP Reference
mp:all-processes — Return the list of active processes.
mp:exit-process — Exit the task from which it is invoked.
mp:interrupt-process — Interrupt a task.
mp:get-lock — Try to obtain a lock.
mp:giveup-lock — Release a lock we have obtained before.
mp:make-lock — Create a new lock.
mp:make-process — Create a new thread.
mp:process-active-p — Determine whether a task is running.
mp:process-enable — Start up a task which was not running.
mp:process-kill — Try to stop a running task.
mp:process-name — Return the name of a task.
mp:process-preset — Associate a function to a process.
mp:process-run-function — Create a task and execute a function in it.
mp:with-lock — Synchronize a piece of code between different tasks.
5. Finalization
5.1. Introduction
5.2. Finalization Reference
ext:set-finalizer — Associate a finalizer to an object.
ext:get-finalizer — Return finalizer associated to an object.
6. Meta-Object Protocol (MOP)
6.1. Introduction
6.2. Classes
6.3. Slots
6.4. Generic functions and methods
6.5. Sealed slots and classes