Common Dylan and Functional Extensions
Contents
Contents
Copyright and Trademarks
1
- Dylan Language Extensions
1.1
- Introduction
1.2
- Using Functional Developer's language extensions
1.3
- The core of the common extensions
1.3.1
- DEFINE FUNCTION
define function
1.3.2
- Extensions to the FOR iteration construct
1.3.3
- Weak tables
1.3.4
- Inlining adjectives for methods, constants, functions, and slots
1.4
- Language differences
1.4.1
- Tables
table-protocol
merge-hash-ids
object-hash
2
- The Common Dylan Library
2.1
- Introduction
2.2
- General language extensions
2.3
- Simple formatting and printing
2.4
- Simple random number generation
2.5
- Finalization
2.5.1
- What is finalization?
2.5.2
- How the finalization interface works
2.5.2.1
- Registering objects for finalization
2.5.2.2
- Draining the finalization queue
2.5.2.3
- Finalizers
2.5.2.4
- After finalization
2.5.2.5
- Upon application exit
2.5.2.6
- The effects of multiple registrations
2.5.2.7
- The effects of resurrecting objects
2.5.2.8
- The effects of finalizing objects directly
2.5.2.9
- Finalization and weak tables
2.5.3
- Writing finalizers
2.5.3.1
- Class-based finalization
2.5.3.2
- Parallels with INITIALIZE methods
2.5.3.3
- Simplicity and robustness
2.5.3.4
- Singleton finalizers
2.5.4
- Using finalization in applications
2.5.4.1
- How can my application drain the finalization queue automatically?
2.5.4.2
- When should my application drain the finalization queue?
2.6
- The COMMON-EXTENSIONS module
assert
<byte-character>
concatenate!
condition-to-string
debug-assert
debug-message
default-handler
default-last-handler
define table
difference
false-or
fill-table!
find-element
float-to-string
<format-string-condition>
found?
ignore
ignorable
integer-to-string
iterate
last-handler-definer
one-of
position
remove-all-keys!
<simple-condition>
<stretchy-sequence>
<string-table>
string-to-integer
subclass
supplied?
timing
$unfound
unfound
unfound?
$unsupplied
unsupplied
unsupplied?
when
2.7
- The SIMPLE-FORMAT module
format-out
format-to-string
2.8
- The SIMPLE-RANDOM module
<random>
random
2.9
- The FINALIZATION module
automatic-finalization-enabled?
automatic-finalization-enabled?-setter
drain-finalization-queue
finalize-when-unreachable
finalize
finalize
3
- The Collections Library
3.1
- The Collections library
3.1.1
- Basics
3.1.2
- Hash functions
3.1.3
- Weak tables
3.2
- The TABLE-EXTENSIONS module
<string-table>
<hash-state>
collection-hash
sequence-hash
values-hash
string-hash
case-insensitive-string-hash
case-insensitive-equal
remove-all-keys!
remove-all-keys!
remove-all-keys!
4
- The Threads Library
4.1
- Introduction
4.2
- Multi-thread semantics
4.2.1
- Atomicity
4.2.2
- Ordering
4.2.3
- Explicit synchronization
4.2.4
- Conditional update
4.2.5
- The dynamic environment
4.2.6
- Thread variables
4.2.7
- Dynamic binding
4.3
- Thread safety in client libraries
4.3.1
- General requirements
4.3.2
- Effects on the Dylan library
4.4
- The Threads class hierarchy
4.5
- Basic features
4.5.1
- Low-level synchronization
sequence-point
synchronize-side-effects
4.5.2
- Operations on threads
<thread>
thread-name
join-thread
thread-yield
current-thread
4.6
- Synchronization protocol
4.6.1
- Basic features
<synchronization>
wait-for
release
synchronization-name
4.6.2
- Locks
<lock>
with-lock
4.6.3
- Semaphores
<semaphore>
wait-for
release
4.6.4
- Exclusive locks
<exclusive-lock>
release
owned?
4.6.5
- Recursive locks
<recursive-lock>
wait-for
release
owned?
4.6.6
- Simple locks
<simple-lock>
wait-for
release
owned?
4.6.7
- Multiple reader / single writer locks
<read-write-lock>
wait-for
release
owned?
4.6.8
- Notifications
<notification>
associated-lock
wait-for
release
release-all
4.7
- Timers
sleep
4.8
- Thread variables
thread
4.9
- Dynamic binding
dynamic-bind
4.9.1
- An extended form of dynamic-bind
dynamic-bind
4.10
- Locked variables
locked
4.11
- Conditional update
conditional-update!
atomic-increment!
atomic-decrement!
4.11.1
- An extended form of conditional-update!
conditional-update!
5
- Integers
5.1
- Introduction
5.2
- Extensions to the Dylan library
5.2.1
- Ranges
5.2.2
- Specific constructors
limited
range
5.2.3
- Equality comparisons
=
5.2.4
- Magnitude comparisons
<
5.2.5
- Properties of numbers
odd?
even?
5.2.6
- Arithmetic operations
5.2.7
- Collections
5.2.8
- The table protocol
5.2.9
- Iteration constructs
5.3
- The Generic-Arithmetic library
5.3.1
- Ranges
5.3.2
- Classes
5.3.3
- Specific constructors
5.3.4
- Arithmetic operations
5.3.5
- Iteration constructs
5.3.6
- Exported modules from the Generic-Arithmetic library
5.3.6.1
- The Dylan-Excluding-Arithmetic module
5.3.6.2
- The Dylan-Arithmetic module
5.3.6.3
- The Generic-Arithmetic-Dylan module
5.4
- Using special arithmetic features
5.5
- The Big-Integers library
5.5.1
- Specific constructors
5.5.2
- Equality comparisons
5.5.3
- Magnitude comparisons
5.5.4
- Properties of numbers
5.5.5
- Arithmetic operations
6
- The Machine Words Module
6.1
- Introduction
6.2
- Useful functions from the Dylan module
6.3
- The MACHINE-WORDS module
6.3.1
- Variables
6.3.2
- Basic and signed single word operations
6.3.3
- Overflow signalling operations
6.3.4
- Signed double word operations
6.3.5
- Unsigned single word operations
6.3.6
- Unsigned double word operations
7
- The Transcendentals Module
7.1
- Introduction
7.2
- The Transcendentals module
^
acos
acosh
asin
asinh
atan
atan2
atanh
cos
cosh
$double-e
$double-pi
exp
isqrt
log
logn
sin
$single-e
$single-pi
sinh
sqrt
tan
tanh
8
- Library Interchange
8.1
- Introduction
8.2
- LID files
8.3
- LID keyword statements
8.4
- Common Dylan's LID extensions
8.4.1
- Specifying foreign files and resource files
8.4.2
- Specifying compilation details
8.5
- File naming conventions
8.6
- Application example
Index
Common Dylan and Functional Extensions - 31 Mar 00