This is guile.info, produced by makeinfo version 5.2 from guile.texi.

This reference manual documents Guile, GNU's Ubiquitous Intelligent
Language for Extensions.  This is edition 1.1 corresponding to Guile
1.8.8.

   Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
2007, 2008, 2009, 2010 Free Software Foundation.

   Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with the no
Invariant Sections, with the Front-Cover Texts being "A GNU Manual," and
with the Back-Cover Text "You are free to copy and modify this GNU
Manual.".  A copy of the license is included in the section entitled
"GNU Free Documentation License".
INFO-DIR-SECTION The Algorithmic Language Scheme
START-INFO-DIR-ENTRY
* Guile Reference: (guile).     The Guile reference manual.
END-INFO-DIR-ENTRY


Indirect:
guile.info-1: 946
guile.info-2: 301865
guile.info-3: 601069
guile.info-4: 901939
guile.info-5: 1203570
guile.info-6: 1767303

Tag Table:
(Indirect)
Node: Top946
Node: Preface2185
Node: Manual Layout2675
Node: Manual Conventions4552
Node: Contributors5817
Node: Guile License7535
Node: Introduction to Guile9004
Node: What is Guile?9336
Node: Obtaining and Installing Guile11799
Node: Whirlwind Tour13108
Node: Running Guile Interactively13711
Node: Running Guile Scripts14608
Node: Linking Guile into Programs15236
Node: Writing Guile Extensions16748
Node: Using the Guile Module System18194
Node: Using Modules18904
Node: Writing new Modules19802
Node: Putting Extensions into Modules20559
Node: Discouraged and Deprecated21493
Node: Reporting Bugs23063
Node: Programming in Scheme29818
Node: Basic Ideas31053
Node: About Data32112
Node: Latent Typing32788
Node: Values and Variables34740
Node: Definition36703
Node: About Procedures39289
Node: Procedures as Values40224
Node: Simple Invocation42897
Node: Creating a Procedure44683
Node: Lambda Alternatives47273
Node: About Expressions49137
Node: Evaluating50532
Ref: Evaluating-Footnote-159035
Node: Tail Calls59171
Node: The REPL61904
Node: Syntax Summary62945
Node: About Closure64834
Node: About Environments66018
Node: Local Variables67840
Node: Chaining69354
Node: Lexical Scope71690
Node: Closure76895
Node: Serial Number79160
Node: Shared Variable80710
Node: Callback Closure82269
Node: OO Closure84536
Node: Guile Scheme86782
Node: Guile Scripting87762
Node: The Top of a Script File88560
Node: Invoking Guile90322
Node: The Meta Switch95328
Node: Command Line Handling99300
Node: Scripting Examples102182
Node: Using Guile Interactively105903
Node: Readline106835
Node: Value Historyx107585
Node: Error Handling108698
Node: Interactive Debugger111010
Node: Display Backtrace112322
Node: Frame Selection113262
Node: Frame Information115161
Node: Frame Evaluation116254
Node: Stepping and Continuing116885
Node: Using Guile in Emacs118502
Node: GDS Introduction123284
Node: GDS Architecture125580
Node: GDS Getting Started128259
Node: Working with GDS in Scheme Buffers135171
Node: Access to Guile Help and Completion135618
Node: Evaluating Scheme Code137257
Node: Displaying the Scheme Stack138844
Node: Continuing Execution141592
Node: Associating Buffers with Clients143397
Node: An Example GDS Session145575
Node: Further Reading148561
Node: Programming in C149444
Node: Linking Programs With Guile151231
Node: Guile Initialization Functions152518
Node: A Sample Guile Main Program154124
Node: Linking Guile with Libraries158025
Node: A Sample Guile Extension160052
Node: General Libguile Concepts162239
Node: Dynamic Types163897
Node: Garbage Collection169326
Node: Control Flow173833
Node: Asynchronous Signals179687
Node: Multi-Threading181578
Node: Defining New Types (Smobs)190066
Node: Describing a New Type191483
Node: Creating Instances195119
Node: Type checking200516
Node: Garbage Collecting Smobs201612
Node: Garbage Collecting Simple Smobs206132
Node: Remembering During Operations207204
Node: Double Smobs209551
Node: The Complete Example210891
Node: Function Snarfing215494
Node: Programming Overview219856
Node: Extending Dia221315
Node: Dia Objective222311
Node: Dia Steps224356
Node: Dia Smobs225653
Node: Dia Primitives230886
Node: Dia Hook233315
Node: Dia Structure234362
Node: Dia Advanced235874
Node: Scheme vs C240542
Node: Testbed Example242577
Ref: Testbed Example-Footnote-1244201
Node: Programming Options244322
Node: Available Functionality246857
Node: Basic Constraints249505
Node: Style Choices249726
Node: Program Control249927
Node: User Programming250102
Ref: User Programming-Footnote-1253224
Node: API Reference253504
Node: API Overview255375
Node: The SCM Type257771
Node: Initialization259342
Node: Snarfing Macros264370
Node: Simple Data Types267833
Node: Booleans268886
Node: Numbers271634
Node: Numerical Tower273093
Node: Integers275399
Node: Reals and Rationals284050
Node: Complex Numbers289260
Node: Exactness290819
Node: Number Syntax292715
Node: Integer Operations294534
Node: Comparison296405
Node: Conversion298037
Node: Complex299370
Node: Arithmetic301865
Node: Scientific304439
Node: Primitive Numerics306301
Node: Bitwise Operations309573
Node: Random314446
Node: Characters318496
Node: Character Sets322754
Node: Character Set Predicates/Comparison323982
Node: Iterating Over Character Sets325143
Node: Creating Character Sets328481
Node: Querying Character Sets332115
Node: Character-Set Algebra333685
Node: Standard Character Sets336856
Node: Strings339678
Node: String Syntax342798
Node: String Predicates343854
Node: String Constructors346221
Node: List/String Conversion348699
Node: String Selection349926
Node: String Modification355236
Node: String Comparison357260
Node: String Searching364366
Node: Alphabetic Case Mapping369783
Node: Reversing and Appending Strings372023
Node: Mapping Folding and Unfolding374527
Node: Miscellaneous String Operations378652
Node: Conversion to/from C381477
Node: Regular Expressions385321
Node: Regexp Functions386618
Node: Match Structures397093
Node: Backslash Escapes400250
Node: Symbols404351
Node: Symbol Data407273
Node: Symbol Keys409532
Node: Symbol Variables411977
Node: Symbol Primitives413012
Node: Symbol Props419161
Node: Symbol Read Syntax422012
Node: Symbol Uninterned423641
Node: Keywords427139
Node: Why Use Keywords?427784
Node: Coding With Keywords429682
Node: Keyword Read Syntax431663
Node: Keyword Procedures433276
Node: Other Types434265
Node: Compound Data Types434907
Node: Pairs436278
Node: Lists442029
Ref: Lists-Footnote-1442900
Node: List Syntax443092
Ref: List Syntax-Footnote-1444094
Node: List Predicates444201
Node: List Constructors445174
Node: List Selection447373
Node: Append/Reverse448611
Node: List Modification450704
Node: List Searching453969
Node: List Mapping455554
Node: Vectors456960
Node: Vector Syntax458133
Node: Vector Creation458910
Node: Vector Accessors460965
Node: Vector Accessing from C464363
Node: Uniform Numeric Vectors467998
Node: Bit Vectors490440
Node: Generalized Vectors496134
Node: Arrays498670
Node: Array Syntax500783
Node: Array Procedures503338
Node: Shared Arrays513936
Node: Accessing Arrays from C520016
Node: Records532979
Node: Structures537481
Node: Vtables538315
Node: Structure Basics541524
Node: Vtable Contents544403
Node: Vtable Vtables547045
Node: Dictionary Types551806
Node: Association Lists553665
Node: Alist Key Equality554972
Node: Adding or Setting Alist Entries555822
Node: Retrieving Alist Entries560420
Node: Removing Alist Entries562221
Node: Sloppy Alist Functions564985
Node: Alist Example567185
Node: Hash Tables568448
Node: Hash Table Examples569523
Node: Hash Table Reference571751
Node: Smobs581054
Node: Procedures and Macros589106
Node: Lambda589880
Node: Primitive Procedures592928
Node: Optional Arguments594739
Node: let-optional Reference596108
Node: let-keywords Reference597464
Node: lambda* Reference601069
Node: define* Reference604403
Node: Procedure Properties606443
Node: Procedures with Setters609401
Ref: Procedures with Setters-Footnote-1611778
Node: Macros611919
Node: Syntax Rules613938
Node: Pattern Language615912
Node: Define-Syntax616087
Node: Let-Syntax616548
Node: Syntax Case616695
Node: Internal Macros616895
Node: Utility Functions621507
Node: Equality622271
Node: Object Properties627045
Node: Property Primitives629138
Node: Old-fashioned Properties630381
Node: Sorting631653
Node: Copying636046
Node: General Conversion636908
Node: Hooks637983
Node: Hook Example639504
Node: Hook Reference641365
Node: C Hooks645231
Node: GC Hooks649420
Node: REPL Hooks651665
Node: Binding Constructs651802
Node: Top Level652529
Node: Local Bindings655238
Node: Internal Definitions658385
Node: Binding Reflection660007
Node: Control Mechanisms660530
Node: begin661502
Node: if cond case662737
Node: and or666095
Node: while do667286
Node: Continuations671949
Node: Multiple Values677452
Node: Exceptions680524
Node: Exception Terminology682218
Node: Catch683250
Node: Throw Handlers689897
Node: Lazy Catch692153
Node: Throw698049
Node: Exception Implementation700551
Node: Error Reporting702127
Node: Dynamic Wind703999
Node: Handling Errors711648
Node: Input and Output715843
Node: Ports716684
Node: Reading719633
Node: Writing724469
Node: Closing727917
Node: Random Access729080
Node: Line/Delimited730795
Node: Block Reading and Writing735293
Node: Default Ports738940
Node: Port Types741979
Node: File Ports742361
Node: String Ports748605
Node: Soft Ports751231
Node: Void Ports753079
Node: I/O Extensions753630
Node: C Port Interface753908
Node: Port Implementation757435
Node: Read/Load/Eval762563
Node: Scheme Syntax763346
Node: Expression Syntax763660
Node: Comments767358
Node: Block Comments768284
Node: Case Sensitivity769210
Node: Keyword Syntax769955
Node: Reader Extensions770118
Node: Scheme Read770637
Node: Fly Evaluation772299
Node: Loading775748
Node: Delayed Evaluation779878
Node: Local Evaluation781046
Node: Evaluator Behaviour781531
Node: Memory Management784005
Node: Garbage Collection Functions784596
Node: Memory Blocks787376
Node: Weak References795751
Node: Weak hash tables797662
Node: Weak vectors798842
Node: Guardians799860
Node: Objects802656
Node: Modules803624
Node: provide and require805428
Node: Environments806248
Node: The Guile module system808283
Node: General Information about Modules809777
Node: Using Guile Modules812428
Node: Creating Guile Modules817555
Node: Module System Reflection826174
Node: Module System Quirks828430
Node: Included Guile Modules829758
Node: Accessing Modules from C833081
Node: Dynamic Libraries836869
Ref: Dynamic Libraries-Footnote-1838987
Node: Low level dynamic linking839263
Node: Compiled Code Modules844930
Node: Dynamic Linking and Compiled Code Modules846266
Node: Compiled Code Installation851837
Node: Variables855377
Node: Scheduling858236
Node: Arbiters859203
Node: Asyncs860549
Node: System asyncs861633
Node: User asyncs864769
Node: Continuation Barriers865634
Node: Threads866807
Node: Mutexes and Condition Variables869596
Node: Blocking875189
Node: Critical Sections877561
Node: Fluids and Dynamic States879688
Node: Parallel Forms885486
Node: Options and Config889076
Node: Build Config890334
Node: Feature Tracking895048
Node: Feature Manipulation895883
Node: Common Feature Symbols896756
Node: Runtime Options901939
Node: Low level options interfaces902794
Node: User level options interfaces904497
Node: Reader options906701
Node: Printing options907544
Node: Evaluator options908563
Node: Evaluator trap options908937
Node: Debugger options911372
Node: Examples of option use913379
Node: Translation915866
Node: Emacs Lisp Support916184
Node: Internationalization917085
Node: Debugging922837
Node: Evaluation Model923500
Node: Capturing the Stack or Innermost Stack Frame926101
Node: Examining the Stack928101
Node: Examining Stack Frames929483
Node: Source Properties931504
Node: Decoding Memoized Source Expressions935565
Node: Starting a New Stack936172
Node: Debug on Error936702
Ref: Debug on Error-Footnote-1946095
Node: Traps946226
Node: How to Set a Trap949293
Node: Specifying Trap Behaviour951525
Node: Trap Context953983
Ref: Trap Context-Footnote-1955614
Node: Tracing Examples955779
Node: Tracing Configuration958735
Node: Tracing and (ice-9 debug)963824
Node: Traps Installing More Traps965901
Node: Common Trap Options967416
Node: Procedure Traps969484
Node: Exit Traps970232
Node: Entry Traps971010
Node: Apply Traps971697
Node: Step Traps972427
Node: Source Traps976286
Node: Location Traps979092
Node: Trap Shorthands980667
Node: Trap Utilities981990
Node: Debugging Examples983642
Node: Single Stepping through a Procedure's Code983969
Node: Profiling or Tracing a Procedure's Code986221
Node: GH991928
Node: GH deprecation993089
Node: Transitioning away from GH995547
Node: GH preliminaries1004240
Node: Data types and constants defined by GH1004720
Node: Starting and controlling the interpreter1006396
Node: Error messages1009778
Node: Executing Scheme code1010011
Node: Defining new Scheme procedures in C1011219
Node: Converting data between C and Scheme1013530
Node: C to Scheme1014027
Node: Scheme to C1015868
Node: Type predicates1018654
Node: Equality predicates1020036
Node: Memory allocation and garbage collection1021259
Node: Calling Scheme procedures from C1021505
Node: Guile Modules1028307
Node: SLIB1029391
Node: SLIB installation1030141
Node: JACAL1031434
Node: POSIX1032015
Node: Conventions1033164
Node: Ports and File Descriptors1036468
Node: File System1054173
Node: User Information1067033
Node: Time1071328
Node: Runtime Environment1079111
Node: Processes1083518
Node: Signals1096338
Node: Terminals and Ptys1104222
Node: Pipes1105783
Node: Networking1109320
Node: Network Address Conversion1109634
Node: Network Databases1112737
Node: Network Socket Address1122256
Node: Network Sockets and Communication1126602
Node: Internet Socket Examples1141195
Node: System Identification1143079
Node: Locales1144516
Node: Encryption1145544
Node: getopt-long1146791
Node: getopt-long Example1148021
Node: Option Specification1150550
Node: Command Line Format1153739
Node: getopt-long Reference1156539
Node: option-ref Reference1159138
Node: SRFI Support1159853
Node: About SRFI Usage1161883
Node: SRFI-01163579
Node: SRFI-11166008
Node: SRFI-1 Constructors1167328
Node: SRFI-1 Predicates1168818
Node: SRFI-1 Selectors1171470
Node: SRFI-1 Length Append etc1173315
Node: SRFI-1 Fold and Map1175830
Node: SRFI-1 Filtering and Partitioning1184068
Node: SRFI-1 Searching1185722
Node: SRFI-1 Deleting1189900
Node: SRFI-1 Association Lists1192195
Node: SRFI-1 Set Operations1194444
Node: SRFI-21203570
Node: SRFI-41205895
Node: SRFI-61206177
Node: SRFI-81206689
Node: SRFI-91206950
Node: SRFI-101209747
Node: SRFI-111213806
Node: SRFI-131214672
Node: SRFI-141214887
Node: SRFI-161215137
Node: SRFI-171216966
Node: SRFI-191218641
Node: SRFI-19 Introduction1219673
Node: SRFI-19 Time1221326
Node: SRFI-19 Date1224983
Node: SRFI-19 Time/Date conversions1227162
Node: SRFI-19 Date to string1229932
Node: SRFI-19 String to date1232928
Node: SRFI-261236205
Node: SRFI-311239405
Node: SRFI-341240310
Node: SRFI-351240765
Node: SRFI-371246314
Node: SRFI-391249985
Node: SRFI-551255767
Node: SRFI-601256747
Node: SRFI-611260548
Node: SRFI-691261042
Node: SRFI-69 Creating hash tables1261848
Node: SRFI-69 Accessing table items1264500
Node: SRFI-69 Table properties1266207
Node: SRFI-69 Hash table algorithms1267317
Node: SRFI-881268398
Node: Readline Support1269785
Node: Loading Readline Support1270535
Node: Readline Options1272610
Node: Readline Functions1273763
Node: Value History1278817
Node: Pretty Printing1279791
Node: Formatted Output1281324
Node: File Tree Walk1309301
Node: Queues1315549
Node: Streams1318351
Node: Buffered Input1323173
Node: Expect1325392
Node: The Scheme shell (scsh)1331404
Node: Tracing1331960
Node: Autoconf Support1334935
Node: Autoconf Background1335651
Node: Autoconf Macros1336635
Node: Using Autoconf Macros1337821
Node: Autofrisk1340369
Node: Using Autofrisk1343090
Node: Data Representation1344502
Node: Data Representation in Scheme1345944
Node: A Simple Representation1347693
Node: Faster Integers1349034
Node: Cheaper Pairs1352464
Node: Guile Is Hairier1355695
Node: How Guile does it1356477
Node: General Rules1357537
Node: Conservative GC1358708
Node: Immediates vs Non-immediates1362840
Node: Immediate Datatypes1364066
Node: Integer Data1364843
Node: Character Data1365947
Node: Boolean Data1366507
Node: Unique Values1366790
Node: Non-immediate Datatypes1368351
Node: Pair Data1370075
Node: Vector Data1372172
Node: Procedures1374146
Node: Closures1374803
Node: Subrs1376496
Node: Port Data1379092
Node: Signalling Type Errors1379265
Node: Unpacking the SCM type1380788
Node: Relationship between SCM and scm_t_bits1381720
Node: Immediate objects1382929
Node: Non-immediate objects1384139
Node: Allocating Cells1385515
Node: Heap Cell Type Information1386780
Node: Accessing Cell Entries1387740
Node: Basic Rules for Accessing Cell Entries1391278
Node: GNU Free Documentation License1392590
Node: Concept Index1415034
Node: Procedure Index1451188
Node: Variable Index1767303
Node: Type Index1788616
Node: R5RS Index1792248

End Tag Table
