1This is guile.info, produced by makeinfo version 6.7 from guile.texi. 2 3This manual documents Guile version 3.0.7. 4 5 Copyright (C) 1996-1997, 2000-2005, 2009-2021 Free Software 6Foundation, Inc. 7 8 Permission is granted to copy, distribute and/or modify this document 9under the terms of the GNU Free Documentation License, Version 1.3 or 10any later version published by the Free Software Foundation; with no 11Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A 12copy of the license is included in the section entitled “GNU Free 13Documentation License.” 14INFO-DIR-SECTION The Algorithmic Language Scheme 15START-INFO-DIR-ENTRY 16* Guile Reference: (guile). The Guile reference manual. 17END-INFO-DIR-ENTRY 18 19 20Indirect: 21guile.info-1: 722 22guile.info-2: 307491 23guile.info-3: 600778 24guile.info-4: 906015 25guile.info-5: 1208059 26guile.info-6: 1504710 27guile.info-7: 1806172 28guile.info-8: 2101255 29guile.info-9: 2402088 30guile.info-10: 2979845 31guile.info-11: 3016391 32 33Tag Table: 34(Indirect) 35Node: Top722 36Node: Preface1726 37Node: Contributors2001 38Node: Guile License4571 39Node: Introduction6087 40Node: Guile and Scheme7508 41Node: Combining with C10416 42Node: Guile and the GNU Project12723 43Node: Interactive Programming14031 44Node: Supporting Multiple Languages15705 45Node: Obtaining and Installing Guile16422 46Node: Organisation of this Manual17761 47Node: Typographical Conventions19869 48Node: Hello Guile!20642 49Node: Running Guile Interactively21274 50Node: Running Guile Scripts22238 51Node: Linking Guile into Programs22862 52Node: Writing Guile Extensions24459 53Node: Using the Guile Module System26067 54Node: Using Modules26648 55Node: Writing new Modules27634 56Node: Putting Extensions into Modules28515 57Node: Reporting Bugs29402 58Node: Hello Scheme!33639 59Node: About Data34841 60Node: Latent Typing35519 61Node: Values and Variables37491 62Node: Definition39484 63Node: About Procedures42124 64Node: Procedures as Values43069 65Node: Simple Invocation45810 66Node: Creating a Procedure47613 67Node: Lambda Alternatives50217 68Node: About Expressions52322 69Node: Evaluating53735 70Ref: Evaluating-Footnote-155943 71Node: Eval Literal56079 72Node: Eval Variable57379 73Node: Eval Procedure58132 74Node: Eval Special61286 75Node: Tail Calls63346 76Node: The REPL66245 77Node: Syntax Summary67305 78Node: About Closure69256 79Node: About Environments70470 80Node: Local Variables72338 81Node: Chaining73896 82Node: Lexical Scope76332 83Node: Scoping Example77830 84Node: Closure81823 85Node: Serial Number84164 86Node: Shared Variable85736 87Node: Callback Closure87354 88Node: OO Closure89641 89Node: Further Reading91934 90Node: Programming in Scheme92819 91Node: Guile Scheme94022 92Node: Invoking Guile94821 93Node: Command-line Options95343 94Node: Environment Variables104670 95Ref: Environment Variables-Footnote-1113481 96Node: Guile Scripting113587 97Node: The Top of a Script File114313 98Node: The Meta Switch116368 99Node: Command Line Handling120478 100Node: Scripting Examples123414 101Node: Using Guile Interactively129632 102Node: Init File130892 103Node: Readline131432 104Node: Value History132145 105Node: REPL Commands134239 106Node: Help Commands135592 107Node: Module Commands136942 108Node: Language Commands137786 109Node: Compile Commands138014 110Node: Profile Commands138599 111Node: Debug Commands139701 112Node: Inspect Commands142491 113Node: System Commands142818 114Node: Error Handling144701 115Node: Interactive Debugging146151 116Node: Using Guile in Emacs150587 117Node: Using Guile Tools152785 118Node: Installing Site Packages153831 119Node: Distributing Guile Code156474 120Node: Programming in C157745 121Node: Parallel Installations159660 122Ref: Parallel Installations-Footnote-1162566 123Node: Linking Programs With Guile162660 124Node: Guile Initialization Functions163723 125Node: A Sample Guile Main Program165426 126Node: Linking Guile with Libraries169614 127Node: A Sample Guile Extension171673 128Node: General Libguile Concepts173944 129Node: Dynamic Types175613 130Node: Garbage Collection181236 131Ref: Garbage Collection-Footnote-1186593 132Node: Control Flow186854 133Node: Asynchronous Signals192874 134Node: Multi-Threading194778 135Ref: Multi-Threading-Footnote-1202907 136Node: Defining New Foreign Object Types203112 137Node: Defining Foreign Object Types204119 138Node: Creating Foreign Objects205446 139Node: Type Checking of Foreign Objects209378 140Node: Foreign Object Memory Management210426 141Node: Foreign Objects and Scheme217619 142Node: Function Snarfing222768 143Node: Programming Overview227280 144Node: Extending Dia228775 145Node: Dia Objective229771 146Node: Dia Steps231833 147Node: Dia Objects233184 148Node: Dia Primitives238647 149Node: Dia Hook241240 150Node: Dia Structure242295 151Node: Dia Advanced243914 152Node: Scheme vs C248694 153Node: Testbed Example250746 154Ref: Testbed Example-Footnote-1252378 155Node: Programming Options252503 156Node: Available Functionality255046 157Node: Basic Constraints257716 158Node: Style Choices257937 159Node: Program Control258138 160Node: User Programming258313 161Ref: User Programming-Footnote-1261451 162Node: Autoconf Support261733 163Node: Autoconf Background262191 164Node: Autoconf Macros263211 165Node: Using Autoconf Macros269876 166Node: API Reference272488 167Node: API Overview274649 168Node: Deprecation277168 169Node: The SCM Type278300 170Node: Initialization279918 171Node: Snarfing Macros285122 172Node: Data Types288624 173Node: Booleans290383 174Node: Numbers293447 175Node: Numerical Tower294848 176Node: Integers297233 177Node: Reals and Rationals307491 178Node: Complex Numbers313689 179Node: Exactness315378 180Node: Number Syntax318097 181Node: Integer Operations319999 182Node: Comparison322459 183Node: Conversion324143 184Node: Complex325762 185Node: Arithmetic327377 186Node: Scientific338168 187Node: Bitwise Operations340032 188Node: Random345667 189Node: Characters350484 190Node: Character Sets361705 191Node: Character Set Predicates/Comparison362638 192Node: Iterating Over Character Sets363833 193Node: Creating Character Sets367227 194Node: Querying Character Sets370870 195Node: Character-Set Algebra373066 196Node: Standard Character Sets376617 197Node: Strings380062 198Node: String Syntax383341 199Node: String Predicates385963 200Node: String Constructors388403 201Node: List/String Conversion391041 202Node: String Selection392461 203Node: String Modification397838 204Node: String Comparison399889 205Node: String Searching410486 206Node: Alphabetic Case Mapping416071 207Node: Reversing and Appending Strings418633 208Node: Mapping Folding and Unfolding421155 209Node: Miscellaneous String Operations425255 210Node: Representing Strings as Bytes428570 211Node: Conversion to/from C431783 212Node: String Internals442706 213Node: Symbols445026 214Node: Symbol Data447984 215Node: Symbol Keys450303 216Node: Symbol Variables452763 217Node: Symbol Primitives453814 218Node: Symbol Props461284 219Node: Symbol Read Syntax464216 220Node: Symbol Uninterned466437 221Node: Keywords469992 222Node: Why Use Keywords?470638 223Node: Coding With Keywords472564 224Node: Keyword Read Syntax474710 225Node: Keyword Procedures476335 226Node: Pairs480466 227Node: Lists486565 228Ref: Lists-Footnote-1487441 229Node: List Syntax487642 230Ref: List Syntax-Footnote-1488650 231Node: List Predicates488757 232Node: List Constructors489752 233Node: List Selection492021 234Node: Append/Reverse493271 235Node: List Modification495601 236Node: List Searching498990 237Node: List Mapping500619 238Node: Vectors502037 239Node: Vector Syntax503332 240Node: Vector Creation504096 241Node: Vector Accessors506203 242Node: Vector Accessing from C509635 243Node: Uniform Numeric Vectors513354 244Node: Bit Vectors514052 245Node: Bytevectors519320 246Node: Bytevector Endianness521067 247Ref: Bytevector Endianness-Footnote-1522310 248Node: Bytevector Manipulation522558 249Node: Bytevectors as Integers525078 250Node: Bytevectors and Integer Lists531441 251Node: Bytevectors as Floats533338 252Node: Bytevectors as Strings535452 253Node: Bytevectors as Arrays537405 254Node: Bytevectors as Uniform Vectors538134 255Node: Arrays538453 256Node: Array Syntax540559 257Node: Array Procedures543393 258Node: Shared Arrays552565 259Node: Arrays as arrays of arrays558719 260Node: Accessing Arrays from C565331 261Node: VLists578332 262Node: Record Overview583523 263Node: SRFI-9 Records585356 264Node: Records592784 265Node: Structures599227 266Node: Vtables600778 267Node: Structure Basics603651 268Node: Vtable Contents607032 269Node: Meta-Vtables609360 270Node: Vtable Example613583 271Node: Dictionary Types616941 272Node: Association Lists618832 273Node: Alist Key Equality620166 274Node: Adding or Setting Alist Entries621058 275Node: Retrieving Alist Entries625738 276Node: Removing Alist Entries627654 277Node: Sloppy Alist Functions630494 278Node: Alist Example632770 279Node: VHashes634038 280Node: Hash Tables639396 281Node: Hash Table Examples640130 282Node: Hash Table Reference642447 283Node: Other Types652460 284Node: Procedures653137 285Node: Lambda653877 286Node: Primitive Procedures656956 287Node: Compiled Procedures658592 288Node: Optional Arguments665352 289Node: lambda* and define*666563 290Node: ice-9 optargs670203 291Node: Case-lambda674716 292Node: Higher-Order Functions679240 293Node: Procedure Properties681166 294Node: Procedures with Setters683850 295Ref: Procedures with Setters-Footnote-1686264 296Node: Inlinable Procedures686405 297Node: Macros688286 298Ref: Macros-Footnote-1689941 299Node: Defining Macros690061 300Node: Syntax Rules692850 301Ref: Syntax Rules-Footnote-1703329 302Node: Syntax Case703506 303Node: Syntax Transformer Helpers717837 304Node: Defmacros724343 305Node: Identifier Macros726757 306Node: Syntax Parameters730025 307Ref: Syntax Parameters-Footnote-1733506 308Node: Eval When733617 309Node: Macro Expansion736480 310Node: Hygiene and the Top-Level739224 311Node: Internal Macros743281 312Node: Utility Functions744762 313Node: Equality745519 314Node: Object Properties750684 315Node: Sorting753553 316Node: Copying758005 317Node: General Conversion758966 318Node: Hooks760049 319Node: Hook Example761596 320Node: Hook Reference763489 321Node: C Hooks767052 322Node: GC Hooks771331 323Node: REPL Hooks773600 324Node: Binding Constructs773737 325Node: Top Level774528 326Node: Local Bindings777983 327Node: Internal Definitions782060 328Node: Binding Reflection784754 329Node: Binding Multiple Values785286 330Node: Control Mechanisms785917 331Node: begin787155 332Node: Conditionals789937 333Node: and or794978 334Node: while do796209 335Node: Prompts801513 336Node: Prompt Primitives802390 337Node: Shift and Reset809385 338Node: Continuations812634 339Node: Multiple Values817886 340Node: Exceptions821846 341Node: Exception Objects823847 342Node: Raising and Handling Exceptions832355 343Node: Throw and Catch836174 344Node: Exceptions and C842046 345Node: Error Reporting844661 346Node: Dynamic Wind846650 347Node: Fluids and Dynamic States854428 348Node: Parameters863164 349Node: Handling Errors868041 350Node: Continuation Barriers874907 351Node: Input and Output876106 352Node: Ports877250 353Node: Binary I/O881320 354Node: Encoding885349 355Node: Textual I/O891044 356Node: Simple Output898237 357Node: Buffering899482 358Node: Random Access906015 359Node: Line/Delimited907996 360Node: Default Ports912223 361Node: Port Types915637 362Node: File Ports916093 363Node: Bytevector Ports924316 364Node: String Ports925942 365Node: Custom Ports928649 366Ref: Custom Ports-Footnote-1932821 367Node: Soft Ports932907 368Node: Void Ports934731 369Node: Venerable Port Interfaces935292 370Node: Using Ports from C939967 371Node: I/O Extensions942202 372Node: Non-Blocking I/O951091 373Node: BOM Handling957134 374Node: Regular Expressions960962 375Node: Regexp Functions962144 376Node: Match Structures972988 377Node: Backslash Escapes976193 378Node: LALR(1) Parsing980368 379Node: PEG Parsing981769 380Node: PEG Syntax Reference983237 381Node: PEG API Reference985901 382Node: PEG Tutorial996557 383Node: PEG Internals1012858 384Node: Read/Load/Eval/Compile1017145 385Node: Scheme Syntax1018531 386Node: Expression Syntax1018853 387Node: Comments1022787 388Node: Block Comments1023719 389Node: Case Sensitivity1025375 390Node: Keyword Syntax1026176 391Node: Reader Extensions1026339 392Node: Scheme Read1026929 393Node: Annotated Scheme Read1030256 394Node: Scheme Write1032591 395Node: Fly Evaluation1035426 396Node: Compilation1040575 397Node: Loading1048404 398Node: Load Paths1052238 399Node: Character Encoding of Source Files1058800 400Node: Delayed Evaluation1063000 401Node: Local Evaluation1064244 402Node: Local Inclusion1066113 403Node: Sandboxed Evaluation1069234 404Node: REPL Servers1082160 405Node: Cooperative REPL Servers1084084 406Node: Memory Management1086029 407Node: Garbage Collection Functions1086628 408Ref: Garbage Collection Functions-Footnote-11089602 409Node: Memory Blocks1089820 410Ref: Memory Blocks-Footnote-11096436 411Ref: Memory Blocks-Footnote-21096556 412Node: Weak References1096860 413Node: Weak hash tables1098779 414Node: Weak vectors1100421 415Node: Guardians1101691 416Node: Modules1104497 417Node: General Information about Modules1106788 418Node: Using Guile Modules1108502 419Node: Creating Guile Modules1114409 420Ref: Creating Guile Modules-Footnote-11123317 421Node: Modules and the File System1123477 422Node: R6RS Version References1125234 423Node: R6RS Libraries1127941 424Node: Variables1133362 425Node: Module System Reflection1136277 426Node: Declarative Modules1140815 427Node: Accessing Modules from C1146689 428Node: provide and require1153580 429Node: Environments1154439 430Node: Foreign Function Interface1156504 431Node: Foreign Libraries1157493 432Node: Foreign Extensions1166647 433Node: Foreign Pointers1170878 434Node: Foreign Types1174256 435Node: Foreign Functions1176487 436Node: Void Pointers and Byte Access1179194 437Node: Foreign Structs1185466 438Node: More Foreign Functions1187843 439Ref: More Foreign Functions-Footnote-11192700 440Node: Foreign Objects1192787 441Node: Smobs1197924 442Node: Scheduling1208059 443Node: Threads1208749 444Node: Thread Local Variables1214287 445Node: Asyncs1217024 446Node: Atomics1223185 447Node: Mutexes and Condition Variables1225804 448Node: Blocking1238205 449Node: Futures1241147 450Node: Parallel Forms1245528 451Node: Options and Config1249979 452Node: Build Config1251258 453Node: Feature Tracking1255448 454Node: Feature Manipulation1256305 455Node: Common Feature Symbols1257198 456Node: Runtime Options1261954 457Node: Other Languages1264217 458Node: Using Other Languages1265180 459Node: Emacs Lisp1266931 460Node: Nil1267871 461Node: Dynamic Binding1272620 462Node: Other Elisp Features1272998 463Node: ECMAScript1273376 464Node: Internationalization1274264 465Ref: Internationalization-Footnote-11275231 466Node: i18n Introduction1275335 467Node: Text Collation1279054 468Node: Character Case Mapping1281392 469Node: Number Input and Output1283680 470Node: Accessing Locale Information1286445 471Node: Gettext Support1294535 472Ref: Gettext Support-Footnote-11300521 473Node: Debugging1300860 474Node: Evaluation Model1301697 475Node: Stack Capture1303934 476Node: Stacks1306588 477Node: Frames1307898 478Node: Source Properties1310806 479Node: Programmatic Error Handling1314411 480Node: Catching Exceptions1315178 481Node: Pre-Unwind Debugging1316696 482Node: Standard Error Handling1319240 483Node: Stack Overflow1321829 484Node: Debug Options1329278 485Node: Traps1331258 486Node: VM Hooks1332979 487Node: Trap Interface1337112 488Node: Low-Level Traps1339969 489Node: Tracing Traps1344684 490Node: Trap States1348560 491Node: High-Level Traps1350214 492Node: GDB Support1354145 493Node: Code Coverage1355479 494Node: Guile Modules1358361 495Node: SLIB1359893 496Node: SLIB installation1360968 497Node: JACAL1362294 498Node: POSIX1362877 499Node: Conventions1364026 500Node: Ports and File Descriptors1367411 501Node: File System1386679 502Node: User Information1405800 503Node: Time1409746 504Node: Runtime Environment1417389 505Node: Processes1421871 506Node: Signals1437652 507Node: Terminals and Ptys1447112 508Node: Pipes1448683 509Ref: Pipes-Footnote-11453501 510Node: Networking1453626 511Node: Network Address Conversion1453915 512Node: Network Databases1456591 513Node: Network Socket Address1472065 514Node: Network Sockets and Communication1476567 515Node: Internet Socket Examples1490867 516Node: System Identification1492767 517Node: Locales1494208 518Node: Encryption1495517 519Node: Web1496780 520Ref: Web-Footnote-11498714 521Node: Types and the Web1498798 522Node: URIs1504710 523Node: HTTP1512637 524Node: HTTP Headers1519026 525Node: Transfer Codings1535225 526Node: Requests1537770 527Node: Responses1544576 528Node: Web Client1550307 529Ref: http-request1551925 530Node: Web Server1556675 531Node: Web Examples1565551 532Node: getopt-long1572781 533Node: getopt-long Example1574429 534Node: Option Specification1576998 535Node: Command Line Format1580303 536Node: getopt-long Reference1583157 537Node: option-ref Reference1587006 538Node: SRFI Support1587741 539Node: About SRFI Usage1590929 540Node: SRFI-01592653 541Node: SRFI-11596212 542Node: SRFI-1 Constructors1597532 543Node: SRFI-1 Predicates1599034 544Node: SRFI-1 Selectors1601808 545Node: SRFI-1 Length Append etc1603673 546Node: SRFI-1 Fold and Map1606221 547Node: SRFI-1 Filtering and Partitioning1614631 548Node: SRFI-1 Searching1616313 549Node: SRFI-1 Deleting1620801 550Node: SRFI-1 Association Lists1623146 551Node: SRFI-1 Set Operations1625438 552Node: SRFI-21633745 553Node: SRFI-41636262 554Node: SRFI-4 Overview1637573 555Node: SRFI-4 API1640179 556Node: SRFI-4 and Bytevectors1654782 557Node: SRFI-4 Extensions1656056 558Node: SRFI-61657693 559Node: SRFI-81658217 560Node: SRFI-91658482 561Node: SRFI-101658855 562Node: SRFI-111662664 563Node: SRFI-131663563 564Node: SRFI-141663778 565Node: SRFI-161664028 566Node: SRFI-171664348 567Node: SRFI-181666071 568Node: SRFI-18 Threads1667200 569Node: SRFI-18 Mutexes1671557 570Node: SRFI-18 Condition variables1673473 571Node: SRFI-18 Time1675141 572Node: SRFI-18 Exceptions1676391 573Node: SRFI-191679019 574Node: SRFI-19 Introduction1679490 575Node: SRFI-19 Time1681298 576Node: SRFI-19 Date1685149 577Node: SRFI-19 Time/Date conversions1687989 578Node: SRFI-19 Date to string1690789 579Node: SRFI-19 String to date1693981 580Node: SRFI-231697454 581Node: SRFI-261697664 582Node: SRFI-271700996 583Node: SRFI-27 Default Random Source1701827 584Node: SRFI-27 Random Sources1702826 585Node: SRFI-27 Random Number Generators1704558 586Node: SRFI-281707019 587Node: SRFI-301708010 588Node: SRFI-311708320 589Node: SRFI-341709229 590Node: SRFI-351710591 591Node: SRFI-371716611 592Node: SRFI-381720382 593Node: SRFI-391724985 594Node: SRFI-411725868 595Node: SRFI-41 Stream Fundamentals1726670 596Node: SRFI-41 Stream Primitives1727792 597Node: SRFI-41 Stream Library1731922 598Node: SRFI-421752016 599Node: SRFI-431752263 600Node: SRFI-43 Constructors1752842 601Node: SRFI-43 Predicates1755932 602Node: SRFI-43 Selectors1756748 603Node: SRFI-43 Iteration1757099 604Node: SRFI-43 Searching1759334 605Node: SRFI-43 Mutators1763077 606Node: SRFI-43 Conversion1764701 607Node: SRFI-451766012 608Node: SRFI-461770766 609Node: SRFI-551771185 610Node: SRFI-601772204 611Node: SRFI-611776129 612Node: SRFI-621776637 613Node: SRFI-641776910 614Node: SRFI-671777175 615Node: SRFI-691777418 616Node: SRFI-69 Creating hash tables1778216 617Node: SRFI-69 Accessing table items1780970 618Node: SRFI-69 Table properties1782699 619Node: SRFI-69 Hash table algorithms1783813 620Node: SRFI-711784928 621Node: SRFI-871785463 622Node: SRFI-881785764 623Node: SRFI-981787203 624Node: SRFI-1051787990 625Node: SRFI-1111790065 626Node: SRFI-1711790671 627Node: SRFI-171 General Discussion1792687 628Node: SRFI-171 Applying Transducers1795747 629Node: SRFI-171 Reducers1797821 630Node: SRFI-171 Transducers1799738 631Node: SRFI-171 Helpers1806172 632Node: R6RS Support1808325 633Node: R6RS Incompatibilities1808733 634Node: R6RS Standard Libraries1812774 635Node: Library Usage1815967 636Node: rnrs base1816700 637Node: rnrs unicode1829848 638Node: rnrs bytevectors1832952 639Node: rnrs lists1833309 640Node: rnrs sorting1836427 641Node: rnrs control1837752 642Node: R6RS Records1838983 643Node: rnrs records syntactic1842584 644Node: rnrs records procedural1846681 645Node: rnrs records inspection1849404 646Node: rnrs exceptions1851204 647Node: rnrs conditions1853161 648Node: R6RS I/O Conditions1860791 649Node: R6RS Transcoders1863707 650Node: rnrs io ports1872149 651Node: R6RS File Ports1880417 652Node: rnrs io simple1886120 653Node: rnrs files1889128 654Node: rnrs programs1889616 655Node: rnrs arithmetic fixnums1890218 656Node: rnrs arithmetic flonums1896632 657Node: rnrs arithmetic bitwise1901924 658Node: rnrs syntax-case1905004 659Node: rnrs hashtables1908216 660Node: rnrs enums1914104 661Node: rnrs1917794 662Node: rnrs eval1918279 663Node: rnrs mutable-pairs1919154 664Node: rnrs mutable-strings1919787 665Node: rnrs r5rs1920443 666Node: R7RS Support1921656 667Node: R7RS Incompatibilities1922383 668Node: R7RS Standard Libraries1924095 669Node: Pattern Matching1926889 670Node: Readline Support1937591 671Node: Loading Readline Support1938353 672Node: Readline Options1940468 673Node: Readline Functions1941843 674Node: Pretty Printing1947034 675Ref: Pretty Printing-Footnote-11951079 676Node: Formatted Output1951233 677Ref: Formatted Output-Footnote-11981140 678Node: File Tree Walk1981211 679Node: Queues1994109 680Node: Streams1997024 681Node: Buffered Input2002130 682Node: Expect2004397 683Node: sxml-match2010522 684Ref: sxml-match-Footnote-12022794 685Node: The Scheme shell (scsh)2023047 686Node: Curried Definitions2023829 687Node: Statprof2025551 688Node: SXML2034950 689Node: SXML Overview2036239 690Node: Reading and Writing XML2036424 691Node: SSAX2042737 692Node: Transforming SXML2051834 693Node: SXML Tree Fold2054870 694Node: SXPath2058529 695Ref: sxpath-procedure-docs2071960 696Node: sxml ssax input-parse2073147 697Node: sxml apply-templates2075267 698Node: Texinfo Processing2076416 699Node: texinfo2077117 700Ref: texinfo call-with-file-and-dir2078665 701Ref: texinfo texi-command-specs2079009 702Ref: texinfo texi-command-depth2079043 703Ref: texinfo texi-fragment->stexi2079512 704Ref: texinfo texi->stexi2079730 705Ref: texinfo stexi->sxml2079927 706Node: texinfo docbook2080269 707Ref: texinfo docbook *sdocbook->stexi-rules*2080822 708Ref: texinfo docbook *sdocbook-block-commands*2080861 709Ref: texinfo docbook sdocbook-flatten2080902 710Ref: texinfo docbook filter-empty-elements2082300 711Ref: texinfo docbook replace-titles2082460 712Node: texinfo html2082888 713Ref: texinfo html add-ref-resolver!2083569 714Ref: texinfo html stexi->shtml2083969 715Ref: texinfo html urlify2084134 716Node: texinfo indexing2084160 717Ref: texinfo indexing stexi-extract-index2084602 718Node: texinfo string-utils2085227 719Ref: texinfo string-utils escape-special-chars2085598 720Ref: texinfo string-utils transform-string2086326 721Ref: texinfo string-utils expand-tabs2088170 722Ref: texinfo string-utils center-string2088408 723Ref: texinfo string-utils left-justify-string2089137 724Ref: texinfo string-utils right-justify-string2089451 725Ref: texinfo string-utils collapse-repeated-chars2089757 726Ref: texinfo string-utils make-text-wrapper2090256 727Ref: texinfo string-utils fill-string2092410 728Ref: texinfo string-utils string->wrapped-lines2092713 729Node: texinfo plain-text2093090 730Ref: texinfo plain-text stexi->plain-text2093459 731Node: texinfo serialize2093756 732Ref: texinfo serialize stexi->texi2094052 733Node: texinfo reflection2094134 734Ref: texinfo reflection module-stexi-documentation2094555 735Ref: texinfo reflection script-stexi-documentation2094797 736Ref: texinfo reflection object-stexi-documentation2095043 737Ref: texinfo reflection package-stexi-standard-copying2095101 738Ref: texinfo reflection package-stexi-standard-titlepage2095404 739Ref: texinfo reflection package-stexi-generic-menu2095987 740Ref: texinfo reflection package-stexi-standard-menu2096240 741Ref: texinfo reflection package-stexi-extended-menu2096424 742Ref: texinfo reflection package-stexi-standard-prologue2096614 743Ref: texinfo reflection package-stexi-documentation2097325 744Ref: texinfo reflection package-stexi-documentation-for-include2098327 745Node: GOOPS2099281 746Node: Copyright Notice2101255 747Node: Class Definition2102104 748Ref: Class Definition-Footnote-12105304 749Ref: Class Definition-Footnote-22105373 750Ref: Class Definition-Footnote-32105546 751Node: Instance Creation2105741 752Node: Slot Options2108218 753Node: Slot Description Example2117133 754Node: Methods and Generic Functions2121298 755Node: Accessors2126902 756Node: Extending Primitives2127885 757Node: Merging Generics2129094 758Ref: Merging Generics-Footnote-12131921 759Node: Next-method2132077 760Node: Generic Function and Method Examples2133832 761Ref: fig:newplus2136682 762Ref: Generic Function and Method Examples-Footnote-12138641 763Node: Handling Invocation Errors2138845 764Node: Inheritance2140328 765Ref: fig:hier2141318 766Node: Class Precedence List2142441 767Ref: Class Precedence List-Footnote-12145765 768Node: Sorting Methods2145889 769Node: Introspection2146884 770Node: Classes2148027 771Node: Instances2149955 772Node: Slots2151290 773Node: Generic Functions2154597 774Node: Accessing Slots2156341 775Node: GOOPS Error Handling2162279 776Node: GOOPS Object Miscellany2163346 777Node: The Metaobject Protocol2166067 778Node: Metaobjects and the Metaobject Protocol2167753 779Node: Metaclasses2172678 780Node: MOP Specification2175283 781Node: Instance Creation Protocol2176915 782Node: Class Definition Protocol2180323 783Node: Customizing Class Definition2190184 784Node: Method Definition2195177 785Node: Method Definition Internals2195891 786Node: Generic Function Internals2198645 787Node: Generic Function Invocation2201329 788Node: Redefining a Class2202328 789Node: Redefinable Classes2202991 790Node: Default Class Redefinition Behaviour2204257 791Node: Customizing Class Redefinition2207122 792Node: Changing the Class of an Instance2210252 793Node: Guile Implementation2212893 794Ref: Guile Implementation-Footnote-12214152 795Node: History2214401 796Node: The Emacs Thesis2215085 797Node: Early Days2216404 798Node: A Scheme of Many Maintainers2219063 799Node: A Timeline of Selected Guile Releases2221477 800Node: Status2225907 801Node: Data Representation2229600 802Node: A Simple Representation2231229 803Node: Faster Integers2232596 804Node: Cheaper Pairs2236198 805Node: Conservative GC2239523 806Node: The SCM Type in Guile2243264 807Node: Relationship Between SCM and scm_t_bits2244579 808Node: Immediate Objects2245841 809Node: Non-Immediate Objects2248659 810Node: Allocating Heap Objects2250784 811Node: Heap Object Type Information2252578 812Node: Accessing Heap Object Fields2253362 813Node: A Virtual Machine for Guile2256349 814Ref: A Virtual Machine for Guile-Footnote-12258032 815Node: Why a VM?2258213 816Node: VM Concepts2261742 817Node: Stack Layout2263218 818Node: Variables and the VM2267213 819Node: VM Programs2269563 820Node: Object File Format2277741 821Node: Instruction Set2282634 822Node: Call and Return Instructions2287527 823Node: Function Prologue Instructions2291251 824Node: Shuffling Instructions2295488 825Node: Trampoline Instructions2297825 826Node: Non-Local Control Flow Instructions2299304 827Node: Instrumentation Instructions2302993 828Node: Intrinsic Call Instructions2304180 829Node: Constant Instructions2315794 830Node: Memory Access Instructions2319674 831Node: Atomic Memory Access Instructions2321783 832Node: Tagging and Untagging Instructions2323208 833Node: Integer Arithmetic Instructions2324062 834Node: Floating-Point Arithmetic Instructions2326439 835Node: Comparison Instructions2327191 836Node: Branch Instructions2332872 837Node: Raw Memory Access Instructions2335438 838Node: Just-In-Time Native Code2337601 839Node: Compiling to the Virtual Machine2343106 840Node: Compiler Tower2343898 841Node: The Scheme Compiler2348908 842Node: Tree-IL2352390 843Node: Continuation-Passing Style2363925 844Node: An Introduction to CPS2364579 845Node: CPS in Guile2367756 846Node: Building CPS2382004 847Node: CPS Soup2385219 848Node: Compiling CPS2393258 849Node: Bytecode2395930 850Node: Writing New High-Level Languages2402088 851Node: Extending the Compiler2402831 852Node: GNU Free Documentation License2404255 853Node: Concept Index2429620 854Node: Procedure Index2484657 855Node: Variable Index2979845 856Node: Type Index3016391 857Node: R5RS Index3028415 858 859End Tag Table 860 861 862Local Variables: 863coding: utf-8 864End: 865