This is guile.info, produced by makeinfo version 4.11 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.5.

   Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005 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: 918
guile.info-2: 300058
guile.info-3: 598531
guile.info-4: 898440
guile.info-5: 1191345
guile.info-6: 1447592
guile.info-7: 1761079

Tag Table:
(Indirect)
Node: Top918
Node: Preface2128
Node: Manual Layout2574
Node: Manual Conventions4452
Node: Contributors5720
Node: Guile License7438
Node: Introduction to Guile8907
Node: What is Guile?9195
Node: Obtaining and Installing Guile11658
Node: Whirlwind Tour12965
Node: Running Guile Interactively13568
Node: Running Guile Scripts14465
Node: Linking Guile into Programs15093
Node: Writing Guile Extensions16605
Node: Using the Guile Module System18051
Node: Using Modules18761
Node: Writing new Modules19659
Node: Putting Extensions into Modules20416
Node: Discouraged and Deprecated21350
Node: Reporting Bugs22921
Node: Programming in Scheme29686
Node: Basic Ideas30921
Node: About Data31980
Node: Latent Typing32656
Node: Values and Variables34608
Node: Definition36571
Node: About Procedures39157
Node: Procedures as Values40092
Node: Simple Invocation42765
Node: Creating a Procedure44551
Node: Lambda Alternatives47140
Node: About Expressions49004
Node: Evaluating50400
Ref: Evaluating-Footnote-158904
Node: Tail Calls59040
Node: The REPL61773
Node: Syntax Summary62814
Node: About Closure64703
Node: About Environments65887
Node: Local Variables67708
Node: Chaining69222
Node: Lexical Scope71558
Node: Closure76761
Node: Serial Number79026
Node: Shared Variable80576
Node: Callback Closure82134
Node: OO Closure84401
Node: Guile Scheme86647
Node: Guile Scripting87628
Node: The Top of a Script File88426
Node: Invoking Guile90195
Node: The Meta Switch95204
Node: Command Line Handling99175
Node: Scripting Examples102057
Node: Using Guile Interactively105779
Node: Readline106711
Node: Value Historyx107461
Node: Error Handling108574
Node: Interactive Debugger110886
Node: Display Backtrace112199
Node: Frame Selection113139
Node: Frame Information115037
Node: Frame Evaluation116130
Node: Stepping and Continuing116761
Node: Using Guile in Emacs118378
Node: GDS Introduction123160
Node: GDS Architecture125470
Node: GDS Getting Started128149
Node: Working with GDS in Scheme Buffers134717
Node: Access to Guile Help and Completion135164
Node: Evaluating Scheme Code136803
Node: Displaying the Scheme Stack137948
Node: Continuing Execution140696
Node: Associating Buffers with Clients142501
Node: An Example GDS Session144682
Node: Further Reading147668
Node: Programming in C148556
Node: Linking Programs With Guile150344
Node: Guile Initialization Functions151631
Node: A Sample Guile Main Program153238
Node: Linking Guile with Libraries157156
Node: A Sample Guile Extension159183
Node: General Libguile Concepts161370
Node: Dynamic Types163028
Node: Garbage Collection168457
Node: Control Flow172965
Node: Asynchronous Signals178820
Node: Multi-Threading180711
Node: Defining New Types (Smobs)189199
Node: Describing a New Type190565
Node: Creating Instances194202
Node: Type checking199604
Node: Garbage Collecting Smobs200700
Node: Garbage Collecting Simple Smobs205220
Node: Remembering During Operations206292
Node: Double Smobs208640
Node: The Complete Example209980
Node: Function Snarfing214583
Node: Programming Overview218946
Node: Extending Dia220405
Node: Dia Objective221401
Node: Dia Steps223450
Node: Dia Smobs224747
Node: Dia Primitives229982
Node: Dia Hook232412
Node: Dia Structure233459
Node: Dia Advanced234975
Node: Scheme vs C239642
Node: Testbed Example241677
Ref: Testbed Example-Footnote-1243301
Node: Programming Options243422
Node: Available Functionality245957
Node: Basic Constraints248604
Node: Style Choices248825
Node: Program Control249026
Node: User Programming249201
Ref: User Programming-Footnote-1252322
Node: API Reference252602
Node: API Overview254474
Node: The SCM Type256871
Node: Initialization258445
Node: Snarfing Macros263475
Node: Simple Data Types266935
Node: Booleans267988
Node: Numbers270736
Node: Numerical Tower272202
Node: Integers274506
Node: Reals and Rationals283186
Node: Complex Numbers288395
Node: Exactness289952
Node: Number Syntax291854
Node: Integer Operations293673
Node: Comparison295549
Node: Conversion297181
Node: Complex298510
Node: Arithmetic300058
Node: Scientific302631
Node: Primitive Numerics304493
Node: Bitwise Operations307749
Node: Random312626
Node: Characters316675
Node: Character Sets320979
Node: Character Set Predicates/Comparison322207
Node: Iterating Over Character Sets323368
Node: Creating Character Sets326708
Node: Querying Character Sets330340
Node: Character-Set Algebra331910
Node: Standard Character Sets335081
Node: Strings337902
Node: String Syntax341016
Node: String Predicates342072
Node: String Constructors344439
Node: List/String Conversion346916
Node: String Selection348143
Node: String Modification353450
Node: String Comparison355473
Node: String Searching362578
Node: Alphabetic Case Mapping367995
Node: Reversing and Appending Strings370235
Node: Mapping Folding and Unfolding372739
Node: Miscellaneous String Operations376872
Node: Conversion to/from C379698
Node: Regular Expressions383543
Node: Regexp Functions384840
Node: Match Structures395324
Node: Backslash Escapes398479
Node: Symbols402580
Node: Symbol Data405502
Node: Symbol Keys407763
Node: Symbol Variables410208
Node: Symbol Primitives411243
Node: Symbol Props417264
Node: Symbol Read Syntax420113
Node: Symbol Uninterned421756
Node: Keywords425253
Node: Why Use Keywords?425898
Node: Coding With Keywords427797
Node: Keyword Read Syntax429778
Node: Keyword Procedures431392
Node: Other Types432381
Node: Compound Data Types433023
Node: Pairs434355
Node: Lists440107
Ref: Lists-Footnote-1440978
Node: List Syntax441170
Ref: List Syntax-Footnote-1442172
Node: List Predicates442279
Node: List Constructors443252
Node: List Selection445451
Node: Append/Reverse446689
Node: List Modification448782
Node: List Searching452052
Node: List Mapping453637
Node: Vectors455043
Node: Vector Syntax456216
Node: Vector Creation456993
Node: Vector Accessors459048
Node: Vector Accessing from C462446
Node: Uniform Numeric Vectors466082
Node: Bit Vectors488526
Node: Generalized Vectors494225
Node: Arrays496761
Node: Array Syntax498826
Node: Array Procedures501382
Node: Shared Arrays511982
Node: Accessing Arrays from C518061
Node: Records531454
Node: Structures535961
Node: Vtables536734
Node: Structure Basics539946
Node: Vtable Contents542826
Node: Vtable Vtables545468
Node: Dictionary Types550229
Node: Association Lists552085
Node: Alist Key Equality553392
Node: Adding or Setting Alist Entries554242
Node: Retrieving Alist Entries558840
Node: Removing Alist Entries560641
Node: Sloppy Alist Functions563405
Node: Alist Example565605
Node: Hash Tables566868
Node: Hash Table Examples567944
Node: Hash Table Reference570171
Node: Smobs579473
Node: Procedures and Macros587518
Node: Lambda588292
Node: Primitive Procedures591339
Node: Optional Arguments593153
Node: let-optional Reference594522
Node: let-keywords Reference595874
Node: lambda* Reference598531
Node: define* Reference601865
Node: Procedure Properties603901
Node: Procedures with Setters606859
Ref: Procedures with Setters-Footnote-1609237
Node: Macros609378
Node: Syntax Rules611397
Node: Pattern Language613371
Node: Define-Syntax613546
Node: Let-Syntax614007
Node: Syntax Case614154
Node: Internal Macros614354
Node: Utility Functions618971
Node: Equality619735
Node: Object Properties624514
Node: Property Primitives626607
Node: Old-fashioned Properties627850
Node: Sorting629122
Node: Copying633515
Node: General Conversion634377
Node: Hooks635452
Node: Hook Example636973
Node: Hook Reference638834
Node: C Hooks642699
Node: GC Hooks646888
Node: REPL Hooks649131
Node: Binding Constructs649268
Node: Top Level649995
Node: Local Bindings652703
Node: Internal Definitions655850
Node: Binding Reflection657472
Node: Control Mechanisms657994
Node: begin658966
Node: if cond case660201
Node: and or663559
Node: while do664750
Node: Continuations669418
Node: Multiple Values674921
Node: Exceptions677994
Node: Exception Terminology679688
Node: Catch680720
Node: Throw Handlers687371
Node: Lazy Catch689627
Node: Throw695523
Node: Exception Implementation698025
Node: Error Reporting699603
Node: Dynamic Wind701474
Node: Handling Errors709121
Node: Input and Output713314
Node: Ports714155
Node: Reading717105
Node: Writing721946
Node: Closing725391
Node: Random Access726554
Node: Line/Delimited728272
Node: Block Reading and Writing732769
Node: Default Ports736430
Node: Port Types739469
Node: File Ports739851
Node: String Ports746094
Node: Soft Ports748719
Node: Void Ports750572
Node: I/O Extensions751123
Node: C Port Interface751401
Node: Port Implementation754929
Node: Read/Load/Eval760064
Node: Scheme Syntax760847
Node: Expression Syntax761161
Node: Comments764856
Node: Block Comments765782
Node: Case Sensitivity766708
Node: Keyword Syntax767453
Node: Reader Extensions767616
Node: Scheme Read768135
Node: Fly Evaluation769795
Node: Loading773244
Node: Delayed Evaluation777374
Node: Local Evaluation778541
Node: Evaluator Behaviour779026
Node: Memory Management781497
Node: Garbage Collection Functions782089
Node: Memory Blocks784861
Node: Weak References793235
Node: Weak hash tables795140
Node: Weak vectors796317
Node: Guardians797337
Node: Objects800133
Node: Modules801101
Node: provide and require802909
Node: Environments803729
Node: The Guile module system805763
Node: General Information about Modules807257
Node: Using Guile Modules809908
Node: Creating Guile Modules815031
Node: Module System Reflection823640
Node: Module System Quirks825896
Node: Included Guile Modules827230
Node: Accessing Modules from C830553
Node: Dynamic Libraries834340
Ref: Dynamic Libraries-Footnote-1836444
Node: Low level dynamic linking836720
Node: Compiled Code Modules842385
Node: Dynamic Linking and Compiled Code Modules843721
Node: Compiled Code Installation849292
Node: Variables852847
Node: Scheduling855705
Node: Arbiters856672
Node: Asyncs858017
Node: System asyncs859069
Node: User asyncs862205
Node: Continuation Barriers863070
Node: Threads864243
Node: Mutexes and Condition Variables867032
Node: Blocking872625
Node: Critical Sections874997
Node: Fluids and Dynamic States877124
Node: Parallel Forms882925
Node: Options and Config886516
Node: Build Config887774
Node: Feature Tracking892495
Node: Feature Manipulation893331
Node: Common Feature Symbols894204
Node: Runtime Options898440
Node: Low level options interfaces899295
Node: User level options interfaces900999
Node: Reader options903200
Node: Printing options904043
Node: Evaluator options905061
Node: Evaluator trap options905435
Node: Debugger options907881
Node: Examples of option use909877
Node: Translation912375
Node: Emacs Lisp Support912693
Node: Internationalization913594
Node: Debugging919363
Node: Evaluation Model920026
Node: Capturing the Stack or Innermost Stack Frame922627
Node: Examining the Stack924626
Node: Examining Stack Frames926008
Node: Source Properties928029
Node: Decoding Memoized Source Expressions932090
Node: Starting a New Stack932697
Node: Debug on Error933227
Ref: Debug on Error-Footnote-1942620
Node: Traps942751
Node: How to Set a Trap945818
Node: Specifying Trap Behaviour948050
Node: Trap Context950507
Ref: Trap Context-Footnote-1952143
Node: Tracing Examples952308
Node: Tracing Configuration955264
Node: Tracing and (ice-9 debug)960353
Node: Traps Installing More Traps962431
Node: Common Trap Options963946
Node: Procedure Traps966013
Node: Exit Traps966761
Node: Entry Traps967539
Node: Apply Traps968226
Node: Step Traps968956
Node: Source Traps972815
Node: Location Traps975625
Node: Trap Shorthands977200
Node: Trap Utilities978523
Node: Debugging Examples980175
Node: Single Stepping through a Procedure's Code980502
Node: Profiling or Tracing a Procedure's Code982754
Node: GH988461
Node: GH deprecation989555
Node: Transitioning away from GH992013
Node: GH preliminaries1000707
Node: Data types and constants defined by GH1001192
Node: Starting and controlling the interpreter1002869
Node: Error messages1006252
Node: Executing Scheme code1006485
Node: Defining new Scheme procedures in C1007692
Node: Converting data between C and Scheme1010007
Node: C to Scheme1010470
Node: Scheme to C1012311
Node: Type predicates1015097
Node: Equality predicates1016479
Node: Memory allocation and garbage collection1017702
Node: Calling Scheme procedures from C1017948
Node: Guile Modules1024759
Node: SLIB1025843
Node: SLIB installation1026602
Node: JACAL1027896
Node: POSIX1028476
Node: Conventions1029627
Node: Ports and File Descriptors1032935
Node: File System1050672
Node: User Information1063582
Node: Time1067888
Node: Runtime Environment1075727
Node: Processes1080134
Node: Signals1093000
Node: Terminals and Ptys1101085
Node: Pipes1102646
Node: Networking1106183
Node: Network Address Conversion1106472
Node: Network Databases1109571
Node: Network Socket Address1119106
Node: Network Sockets and Communication1123468
Node: Internet Socket Examples1138091
Node: System Identification1139975
Node: Locales1141415
Node: Encryption1142443
Node: getopt-long1143690
Node: getopt-long Example1144920
Node: Option Specification1147451
Node: Command Line Format1150640
Node: getopt-long Reference1153440
Node: option-ref Reference1156044
Node: SRFI Support1156758
Node: About SRFI Usage1158788
Node: SRFI-01160484
Node: SRFI-11162913
Node: SRFI-1 Constructors1164233
Node: SRFI-1 Predicates1165723
Node: SRFI-1 Selectors1168380
Node: SRFI-1 Length Append etc1170225
Node: SRFI-1 Fold and Map1172740
Node: SRFI-1 Filtering and Partitioning1180968
Node: SRFI-1 Searching1182622
Node: SRFI-1 Deleting1186803
Node: SRFI-1 Association Lists1189098
Node: SRFI-1 Set Operations1191345
Node: SRFI-21199531
Node: SRFI-41201856
Node: SRFI-61202138
Node: SRFI-81202650
Node: SRFI-91202911
Node: SRFI-101205707
Node: SRFI-111209765
Node: SRFI-131210631
Node: SRFI-141210846
Node: SRFI-161211096
Node: SRFI-171212924
Node: SRFI-191214599
Node: SRFI-19 Introduction1215577
Node: SRFI-19 Time1217232
Node: SRFI-19 Date1220896
Node: SRFI-19 Time/Date conversions1223075
Node: SRFI-19 Date to string1225850
Node: SRFI-19 String to date1228769
Node: SRFI-261231288
Node: SRFI-311234487
Node: SRFI-341235392
Node: SRFI-351235847
Node: SRFI-371241395
Node: SRFI-391245066
Node: SRFI-551250853
Node: SRFI-601251834
Node: SRFI-611255635
Node: SRFI-691256128
Node: SRFI-69 Creating hash tables1256924
Node: SRFI-69 Accessing table items1259573
Node: SRFI-69 Table properties1261280
Node: SRFI-69 Hash table algorithms1262395
Node: SRFI-881263476
Node: Readline Support1264859
Node: Loading Readline Support1265613
Node: Readline Options1267718
Node: Readline Functions1268871
Node: Value History1273964
Node: Pretty Printing1274938
Node: Formatted Output1276468
Node: File Tree Walk1304409
Node: Queues1310683
Node: Streams1313485
Node: Buffered Input1318307
Node: Expect1320526
Node: The Scheme shell (scsh)1326537
Node: Tracing1327093
Node: Autoconf Support1330069
Node: Autoconf Background1330784
Node: Autoconf Macros1331783
Node: Using Autoconf Macros1335828
Node: Autofrisk1338376
Node: Using Autofrisk1341095
Node: Data Representation1342507
Node: Data Representation in Scheme1343950
Node: A Simple Representation1345654
Node: Faster Integers1347011
Node: Cheaper Pairs1350467
Node: Guile Is Hairier1353741
Node: How Guile does it1354523
Node: General Rules1355536
Node: Conservative GC1356708
Node: Immediates vs Non-immediates1360840
Node: Immediate Datatypes1362066
Node: Integer Data1362770
Node: Character Data1363874
Node: Boolean Data1364434
Node: Unique Values1364717
Node: Non-immediate Datatypes1366278
Node: Pair Data1367875
Node: Vector Data1369972
Node: Procedures1371947
Node: Closures1372604
Node: Subrs1374297
Node: Port Data1376893
Node: Signalling Type Errors1377066
Node: Unpacking the SCM type1378589
Node: Relationship between SCM and scm_t_bits1379522
Node: Immediate objects1380730
Node: Non-immediate objects1381940
Node: Allocating Cells1383318
Node: Heap Cell Type Information1384583
Node: Accessing Cell Entries1385543
Node: Basic Rules for Accessing Cell Entries1389095
Node: GNU Free Documentation License1390407
Node: Concept Index1412874
Node: Procedure Index1447592
Node: Variable Index1761079
Node: Type Index1781279
Node: R5RS Index1784911

End Tag Table
