[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
guile/guile-vm ChangeLog doc/Makefile.am vm/com...
From: |
Keisuke Nishida |
Subject: |
guile/guile-vm ChangeLog doc/Makefile.am vm/com... |
Date: |
Fri, 22 Sep 2000 10:38:51 -0700 |
CVSROOT: /cvs
Module name: guile
Changes by: Keisuke Nishida <address@hidden> 00/09/22 10:38:50
Modified files:
guile-vm : ChangeLog
guile-vm/doc : Makefile.am
guile-vm/vm : compile.scm
Added files:
guile-vm/doc : guile-vm.texi
Removed files:
guile-vm/doc : vm-spec.txt
Log message:
ChangeLog
CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-vm/ChangeLog.diff?r1=1.11&r2=1.12
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-vm/doc/guile-vm.texi.diff?r1=NONE&r2=1.1
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-vm/doc/Makefile.am.diff?r1=1.1.1.1&r2=1.2
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-vm/doc/vm-spec.txt.diff?r1=1.1.1.1&r2=NONE
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-vm/vm/compile.scm.diff?r1=1.2&r2=1.3
Patches:
Index: guile/guile-vm/ChangeLog
diff -u guile/guile-vm/ChangeLog:1.11 guile/guile-vm/ChangeLog:1.12
--- guile/guile-vm/ChangeLog:1.11 Fri Sep 22 04:08:28 2000
+++ guile/guile-vm/ChangeLog Fri Sep 22 10:38:49 2000
@@ -1,5 +1,9 @@
2000-09-22 Keisuke Nishida <address@hidden>
+ * src/vm.c: SCM_CHARS -> SCM_SYMBOL_CHARS.
+
+2000-09-22 Keisuke Nishida <address@hidden>
+
* src/vm_system.c (call): Call return-hook before reinstating a
continuation.
(tail_call): Call return-hook before a proper tail call.
Index: guile/guile-vm/doc/Makefile.am
diff -u guile/guile-vm/doc/Makefile.am:1.1 guile/guile-vm/doc/Makefile.am:1.2
--- guile/guile-vm/doc/Makefile.am:1.1 Tue Aug 22 08:54:19 2000
+++ guile/guile-vm/doc/Makefile.am Fri Sep 22 10:38:50 2000
@@ -1,2 +1,2 @@
-EXTRA_DIST = vm-spec.txt
+texi_TEXINFOS = guile-vm.texi
MAINTAINERCLEANFILES = Makefile.in
Index: guile/guile-vm/vm/compile.scm
diff -u guile/guile-vm/vm/compile.scm:1.2 guile/guile-vm/vm/compile.scm:1.3
--- guile/guile-vm/vm/compile.scm:1.2 Tue Aug 22 11:44:19 2000
+++ guile/guile-vm/vm/compile.scm Fri Sep 22 10:38:50 2000
@@ -54,8 +54,8 @@
(format #t ";;; Compiled from ~A\n\n" file)
(display "(use-modules (vm vm))\n\n")
(display "(let ((vm (make-vm)))\n")
- (display " (define (vm-exec code)\n")
- (display " (vm-run vm (make-program (make-bytecode code)
#f)))\n")
+ (display "(define (vm-exec code)")
+ (display "(vm-run vm (make-program (make-bytecode code) #f)))\n")
(do ((input (read) (read)))
((eof-object? input))
(display "(vm-exec ")
@@ -242,7 +242,8 @@
'(caar cadr cdar cddr caaar caadr cadar caddr cdaar cdadr cddar cdddr
caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr
cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr
- map for-each))
+ ;;map for-each
+ ))
(define (parse-caar args env) (parse `(car (car ,@args)) env))
(define (parse-cadr args env) (parse `(car (cdr ,@args)) env))
@@ -275,32 +276,32 @@
(define (parse-cdddar args env) (parse `(cdr (cdr (cdr (car ,@args)))) env))
(define (parse-cddddr args env) (parse `(cdr (cdr (cdr (cdr ,@args)))) env))
-(define (parse-map args env)
- (check-nargs args >= 2)
- (case (length args)
- ((2)
- (let ((proc (car args)) (list (cadr args)))
- (parse `(let ((list ,list) (result '()))
- (until (null? list)
- (local-set! result (cons (,proc (car list)) result))
- (local-set! list (cdr list)))
- (reverse! result))
- env)))
- (else
- (error "Not implemented yet"))))
-
-(define (parse-for-each args env)
- (check-nargs args >= 2)
- (case (length args)
- ((2)
- (let ((proc (car args)) (list (cadr args)))
- (parse `(let ((list ,list))
- (until (null? list)
- (,proc (car list))
- (local-set! list (cdr list))))
- env)))
- (else
- (error "Not implemented yet"))))
+;(define (parse-map args env)
+; (check-nargs args >= 2)
+; (case (length args)
+; ((2)
+; (let ((proc (car args)) (list (cadr args)))
+; (parse `(let ((list ,list) (result '()))
+; (until (null? list)
+; (local-set! result (cons (,proc (car list)) result))
+; (local-set! list (cdr list)))
+; (reverse! result))
+; env)))
+; (else
+; (error "Not implemented yet"))))
+;
+;(define (parse-for-each args env)
+; (check-nargs args >= 2)
+; (case (length args)
+; ((2)
+; (let ((proc (car args)) (list (cadr args)))
+; (parse `(let ((list ,list))
+; (until (null? list)
+; (,proc (car list))
+; (local-set! list (cdr list))))
+; env)))
+; (else
+; (error "Not implemented yet"))))
(define *procedure-alist*
(map (lambda (name)
>From address@hidden Fri Sep 22 08:59:22 2000
Received: from subversions.gnu.org (subversions.gnu.org [198.186.203.17])
by mescaline.gnu.org (8.9.1a/8.9.1) with ESMTP id IAA31161
for <address@hidden>; Fri, 22 Sep 2000 08:59:03 -0400
Received: from ossau by subversions.gnu.org with local (Exim 3.12 #1 (Debian))
id 13cSPs-0005ey-00; Fri, 22 Sep 2000 05:59:00 -0700
To: address@hidden
Subject: guile/guile-doc/ref scheme.texi ChangeLog
Reply-to: Neil Jerram <address@hidden>
Message-Id: <address@hidden>
From: Neil Jerram <address@hidden>
Date: Fri, 22 Sep 2000 05:59:00 -0700
Sender: address@hidden
Errors-To: address@hidden
X-BeenThere: address@hidden
X-Mailman-Version: 2.0beta6
Precedence: bulk
List-Help: <mailto:address@hidden>
List-Post: <mailto:address@hidden>
List-Subscribe: <http://mail.gnu.org/mailman/listinfo/guile-cvs>,
<mailto:address@hidden>
List-Id: <guile-cvs.gnu.org>
List-Unsubscribe: <http://mail.gnu.org/mailman/listinfo/guile-cvs>,
<mailto:address@hidden>
List-Archive: http://mail.gnu.org/pipermail/guile-cvs/
CVSROOT: /cvs
Module name: guile
Changes by: Neil Jerram <address@hidden> 00/09/22 05:59:00
Modified files:
guile-doc/ref : scheme.texi ChangeLog
Log message:
* Lots more docstrings added and synchronized with libguile source.
CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-doc/ref/scheme.texi.diff?r1=1.52&r2=1.53
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-doc/ref/ChangeLog.diff?r1=1.66&r2=1.67
Patches:
Index: guile/guile-doc/ref/ChangeLog
diff -u guile/guile-doc/ref/ChangeLog:1.66 guile/guile-doc/ref/ChangeLog:1.67
--- guile/guile-doc/ref/ChangeLog:1.66 Fri Aug 25 10:26:16 2000
+++ guile/guile-doc/ref/ChangeLog Fri Sep 22 05:59:00 2000
@@ -1,3 +1,39 @@
+2000-09-22 Neil Jerram <address@hidden>
+
+ * scheme.texi: Lots more docstring comments added, and docs
+ synchronized with libguile source.
+ (interaction-environment, make-struct, make-vtable-vtable): Newer,
+ better doc taken from source file.
+ (cons-source): New docstring written.
+ (Vectors): New section added.
+ (Random, Symbols and Variables): New chapters.
+
+ * posix.texi: Lots more docstring comments added.
+ (pipe, tzset) Newer, better documentation taken from source file.
+
+ * deprecated.texi: New file, for documenting features that are
+ deprecated and so planned to disappear.
+
+ * guile.texi (Procedures, Reading and Writing, Random, Sorting,
+ Symbols and Variables, Deprecated): New chapters in the Scheme
+ part of the reference manual, to hold docstrings that don't
+ currently fit anywhere else.
+
+2000-08-28 Neil Jerram <address@hidden>
+
+ * posix.texi (Pipes): open-pipe and close-pipe are procedures (in
+ ice-9/popen.scm), not primitives.
+
+ * scheme.texi (Generic Port Operations): Remove doc for
+ port-revealed and set-port-revealed!, since these are covered in
+ posix.texi.
+
+ * posix.texi: Inserted docstring synchronization comments and
+ synchronized docstrings for all primitives defined in posix.c,
+ simpos.c, scmsigs.c, stime.c.
+ (Ports and File Descriptors) Similarly synchronized port-revealed
+ and set-port-revealed!.
+
2000-08-25 Neil Jerram <address@hidden>
* scheme.texi: Lots more docstrings added.
Index: guile/guile-doc/ref/scheme.texi
diff -u guile/guile-doc/ref/scheme.texi:1.52
guile/guile-doc/ref/scheme.texi:1.53
--- guile/guile-doc/ref/scheme.texi:1.52 Fri Aug 25 10:26:16 2000
+++ guile/guile-doc/ref/scheme.texi Fri Sep 22 05:58:59 2000
@@ -561,6 +561,12 @@
@end deffn
@c end
address@hidden docstring begin (c-doc-string "throw.c" "lazy-catch")
address@hidden docstring md5 "6610205be1694688b362a2ffe3f57528"
address@hidden primitive lazy-catch tag thunk handler
+
address@hidden deffn
+
It is traditional in Scheme to implement exception systems using
@code{call-with-current-continuation}, but his has not been done, for
performance reasons. The implementation of
@@ -713,9 +719,13 @@
@end deffn
@c docstring begin (c-doc-string "modules.c" "interaction-environment")
address@hidden docstring md5 "71c1f0cddb6ff8139ad3fbf29af205f0"
address@hidden docstring md5 "0c735dd5a7fa6d0c947b9916a6365a8e"
@deffn primitive interaction-environment
-This procedure returns a specifier for the environment thatcontains
implementation-defined bindings, typically a superset ofthose listed in the
report. The intent is that this procedurewill return the environment in which
the implementation wouldevaluate expressions dynamically typed by the user.
+This procedure returns a specifier for the environment that contains
+implementation-defined bindings, typically a superset of those listed in
+the report. The intent is that this procedure will return the
+environment in which the implementation would evaluate expressions
+dynamically typed by the user.
@end deffn
Some modules are included in the Guile distribution; here are references
@@ -1031,9 +1041,11 @@
@end deffn
@c docstring begin (c-doc-string "eval.c" "cons-source")
address@hidden docstring md5 "4d37da7bf9d30dcb7bb546634de93874"
address@hidden docstring md5 "1b57e02f8bf28c52492bca637b64615a"
@deffn primitive cons-source xorig x y
-
+Create and return a new pair whose car and cdr are @var{x} and @var{y}.
+Any source properties associated with @var{xorig} are also associated
+with the new pair.
@end deffn
@c ARGFIXME environment/environment specifier
@@ -1475,6 +1487,7 @@
* Structures::
* Arrays::
* Association Lists and Hash Tables::
+* Vectors::
@end menu
@node Records
@@ -1725,6 +1738,8 @@
name is a string of type and protection codes. To create a new
structure layout, use this procedure:
address@hidden docstring begin (c-doc-string "struct.c" "make-struct-layout")
address@hidden docstring md5 "3db9fa14eec939642d6915c37115a9bf"
@deffn primitive make-struct-layout fields
Return a new structure layout object.
@@ -1732,7 +1747,7 @@
strung together. The first character of each pair describes a field
type, the second a field protection. Allowed types are 'p' for
GC-protected Scheme data, 'u' for unprotected binary data, and 's' for
-fields that should point to the structure itself. Allowed protections
+a field that points to the structure itself. Allowed protections
are 'w' for mutable fields, 'r' for read-only fields, and 'o' for opaque
fields. The last field protection specification may be capitalized to
indicate that the field is a tail-array.
@@ -1746,7 +1761,9 @@
This section describes the basic procedures for creating and accessing
structures.
address@hidden primitive make-struct type tail-elts . inits
address@hidden docstring begin (c-doc-string "struct.c" "make-struct")
address@hidden docstring md5 "faf2cbc82f2fc9386cc47a8c1da462f5"
address@hidden primitive make-struct vtable tail_array_size . init
Create a new structure.
@var{type} must be a vtable structure (@xref{Vtables}).
@@ -1754,20 +1771,36 @@
@var{tail-elts} must be a non-negative integer. If the layout
specification indicated by @var{type} includes a tail-array,
this is the number of elements allocated to that array.
+
+The @var{init1}, @dots{} are optional arguments describing how
+successive fields of the structure should be initialized. Only fields
+with protection 'r' or 'w' can be initialized, except for fields of
+type 's', which are automatically initialized to point to the new
+structure itself; fields with protection 'o' can not be initialized by
+Scheme programs.
+
+If fewer optional arguments than initializable fields are supplied,
+fields of type 'p' get default value #f while fields of type 'u' are
+initialized to 0.
-The @var{inits} are optional arguments describing how successive fields
-of the structure should be initialized. Only fields with protection 'r'
-or 'w' can be initialized -- fields of protection 's' are automatically
-initialized to point to the new structure itself; fields of protection 'o'
-can not be initialized by Scheme programs.
+Structs are currently the basic representation for record-like data
+structures in Guile. The plan is to eventually replace them with a
+new representation which will at the same time be easier to use and
+more powerful.
+
+For more information, see the documentation for @code{make-vtable-vtable}.
@end deffn
address@hidden primitive struct? obj
-Return #t iff @var{obj} is a structure object.
address@hidden docstring begin (c-doc-string "struct.c" "struct?")
address@hidden docstring md5 "976e05af8eccb70cacd9d9e3b7bb05ef"
address@hidden primitive struct? x
+Return #t iff @var{obj} is a structure object, else #f.
@end deffn
address@hidden primitive struct-ref struct n
address@hidden docstring begin (c-doc-string "struct.c" "struct-ref")
address@hidden docstring md5 "eccf89dbedea2b9c3befdf233973539e"
address@hidden primitive struct-ref handle pos
@deffnx primitive struct-set! struct n value
Access (or modify) the @var{n}th field of @var{struct}.
@@ -1790,11 +1823,15 @@
@code{vtable-offset-user} is bound to a field number. Vtable fields
at that position or greater are user definable.
address@hidden primitive struct-vtable struct
address@hidden docstring begin (c-doc-string "struct.c" "struct-vtable")
address@hidden docstring md5 "8fd40f6d2276ae117f3784982ac49cf7"
address@hidden primitive struct-vtable handle
Return the vtable structure that describes the type of @var{struct}.
@end deffn
address@hidden primitive struct-vtable? obj
address@hidden docstring begin (c-doc-string "struct.c" "struct-vtable?")
address@hidden docstring md5 "1dbf6a3ad479dd61df1f612faf4a8215"
address@hidden primitive struct-vtable? x
Return #t iff obj is a vtable structure.
@end deffn
@@ -1806,74 +1843,87 @@
that @code{V} is an instance of the type it itself describes. Vtable
structures of the second sort are created by this procedure:
address@hidden primitive make-vtable-vtable new-fields tail-size . inits
address@hidden docstring begin (c-doc-string "struct.c" "make-vtable-vtable")
address@hidden docstring md5 "3e04c26524387b173f78e1bd8d4a3986"
address@hidden primitive make-vtable-vtable user_fields tail_array_size . init
Return a new, self-describing vtable structure.
address@hidden is a layout specification describing fields
-of the resulting structure beginning at the position bound to
address@hidden
address@hidden is a string describing user defined fields of the
+vtable beginning at index @code{vtable-offset-user}
+(see @code{make-struct-layout}).
@var{tail-size} specifies the size of the tail-array (if any) of
this vtable.
address@hidden initializes the fields of the vtable. Minimally, one
-initializer must be provided: the layout specification for instances
-of the type this vtable will describe. If a second initializer is
-provided, it will be interpreted as a print call-back function.
address@hidden, @dots{} are the optional initializers for the fields of
+the vtable.
address@hidden
-;;; loading ,a...
-(define x
- (make-vtable-vtable (make-struct-layout (quote pw))
- 0
- 'foo))
+Vtables have one initializable system field---the struct printer.
+This field comes before the user fields in the initializers passed
+to @code{make-vtable-vtable} and @code{make-struct}, and thus works as
+a third optional argument to @code{make-vtable-vtable} and a fourth to
address@hidden when creating vtables:
-(struct? x)
address@hidden #t
-(struct-vtable? x)
address@hidden #t
-(eq? x (struct-vtable x))
address@hidden #t
-(struct-ref x vtable-offset-user)
address@hidden foo
-(struct-ref x 0)
address@hidden pruosrpwpw
+If the value is a procedure, it will be called instead of the standard
+printer whenever a struct described by this vtable is printed.
+The procedure will be called with arguments STRUCT and PORT.
+The structure of a struct is described by a vtable, so the vtable is
+in essence the type of the struct. The vtable is itself a struct with
+a vtable. This could go on forever if it weren't for the
+vtable-vtables which are self-describing vtables, and thus terminate
+the chain.
-(define y
- (make-struct x
- 0
- (make-struct-layout (quote pwpwpw))
- 'bar))
+There are several potential ways of using structs, but the standard
+one is to use three kinds of structs, together building up a type
+sub-system: one vtable-vtable working as the root and one or several
+"types", each with a set of "instances". (The vtable-vtable should be
+compared to the class <class> which is the class of itself.)
-(struct? y)
address@hidden #t
-(struct-vtable? y)
address@hidden #t
-(eq? x y)
address@hidden ()
-(eq? x (struct-vtable y))
address@hidden #t
-(struct-ref y 0)
address@hidden pwpwpw
-(struct-ref y vtable-offset-user)
address@hidden bar
address@hidden
+(define ball-root (make-vtable-vtable "pr" 0))
+(define (make-ball-type ball-color)
+ (make-struct ball-root 0
+ (make-struct-layout "pw")
+ (lambda (ball port)
+ (format port "#<a ~A ball owned by ~A>"
+ (color ball)
+ (owner ball)))
+ ball-color))
+(define (color ball) (struct-ref (struct-vtable ball) vtable-offset-user))
+(define (owner ball) (struct-ref ball 0))
-(define z (make-struct y 0 'a 'b 'c))
+(define red (make-ball-type 'red))
+(define green (make-ball-type 'green))
-(struct? z)
address@hidden #t
-(struct-vtable? z)
address@hidden ()
-(eq? y (struct-vtable z))
address@hidden #t
-(map (lambda (n) (struct-ref z n)) '(0 1 2))
address@hidden (a b c)
+(define (make-ball type owner) (make-struct type 0 owner))
+
+(define ball (make-ball green 'Nisse))
+ball @result{} #<a green ball owned by Nisse>
@end example
@end deffn
address@hidden docstring begin (c-doc-string "struct.c" "struct-vtable-name")
address@hidden docstring md5 "da448bf82cdb7504a8f0d160a040d0ba"
address@hidden primitive struct-vtable-name vtable
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "struct.c"
"set-struct-vtable-name!")
address@hidden docstring md5 "f896da3fe6202dcdcd2c14933135ba07"
address@hidden primitive set-struct-vtable-name! vtable name
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "struct.c" "struct-vtable-tag")
address@hidden docstring md5 "627dc539d0b8a22545fa904434cb21b2"
address@hidden primitive struct-vtable-tag handle
+
address@hidden deffn
+
+
@page
@node Arrays
@section Arrays
@@ -1928,7 +1978,9 @@
The following procedures can be used with conventional arrays (or vectors).
address@hidden primitive array? obj [prototype]
address@hidden docstring begin (c-doc-string "unif.c" "array?")
address@hidden docstring md5 "d222507378723f16fee9ef538bcdf41e"
address@hidden primitive array? v [prot]
Returns @code{#t} if the @var{obj} is an array, and @code{#f} if not.
The @var{prototype} argument is used with uniform arrays and is described
@@ -1943,20 +1995,30 @@
@c array-ref's type is `compiled-closure'. There's some weird stuff
@c going on in array.c, too. Let's call it a primitive. -twp
address@hidden primitive array-ref array index1 index2 @dots{}
address@hidden docstring begin (c-doc-string "unif.c" "uniform-vector-ref")
address@hidden docstring md5 "322d9d2c70fba5b618aa7ac0bab4622d"
address@hidden primitive uniform-vector-ref v args
address@hidden primitive array-ref v . args
Returns the element at the @code{(index1, index2)} element in @var{array}.
@end deffn
address@hidden primitive array-in-bounds? array index1 index2 @dots{}
address@hidden docstring begin (c-doc-string "unif.c" "array-in-bounds?")
address@hidden docstring md5 "7993315fd76aaa61aaf1878f69aea131"
address@hidden primitive array-in-bounds? v . args
Returns @code{#t} if its arguments would be acceptable to array-ref.
@end deffn
address@hidden primitive array-set! array new-value index1 index2 @dots{}
address@hidden docstring begin (c-doc-string "unif.c" "array-set!")
address@hidden docstring md5 "717e43270963f93d595c962357f42eea"
address@hidden primitive array-set! v obj . args
address@hidden primitive uniform-array-set1! v obj args
Sets the element at the @code{(index1, index2)} element in @var{array} to
@var{new-value}. The value returned by array-set! is unspecified.
@end deffn
address@hidden primitive make-shared-array array mapper bound1 bound2 @dots{}
address@hidden docstring begin (c-doc-string "unif.c" "make-shared-array")
address@hidden docstring md5 "7fec65aa8a76540efb40fd0bb41b7bd8"
address@hidden primitive make-shared-array oldra mapfunc . dims
@code{make-shared-array} can be used to create shared subarrays of other
arrays. The @var{mapper} is a function that translates coordinates in
the new array into coordinates in the old array. A @var{mapper} must be
@@ -1973,8 +2035,28 @@
(array-ref freds-center 0 0) @result{} foo
@end example
@end deffn
+
address@hidden docstring begin (c-doc-string "unif.c" "shared-array-increments")
address@hidden docstring md5 "8285365ea9b2e4171c5b3517e4ae063a"
address@hidden primitive shared-array-increments ra
+For each dimension, return the distance between elements in the root vector.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "unif.c" "shared-array-offset")
address@hidden docstring md5 "9ddd2e75d82e4ae850e6476adb4daa73"
address@hidden primitive shared-array-offset ra
+Return the root vector index of the first element in the array.
address@hidden deffn
address@hidden primitive transpose-array array dim0 dim1 @dots{}
address@hidden docstring begin (c-doc-string "unif.c" "shared-array-root")
address@hidden docstring md5 "e1bfbe3d85d1cbad0df94d52ce7adbff"
address@hidden primitive shared-array-root ra
+Return the root vector of a shared array.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "unif.c" "transpose-array")
address@hidden docstring md5 "efd6ca08cca40b2d259da5dce64cc410"
address@hidden primitive transpose-array ra . args
Returns an array sharing contents with @var{array}, but with dimensions
arranged in a different order. There must be one @var{dim} argument for
each dimension of @var{array}. @var{dim0}, @var{dim1}, @dots{} should
@@ -1996,7 +2078,9 @@
@end example
@end deffn
address@hidden primitive enclose-array array dim0 dim1 @dots{}
address@hidden docstring begin (c-doc-string "unif.c" "enclose-array")
address@hidden docstring md5 "76273492668070ba292ca6372100ab73"
address@hidden primitive enclose-array ra . axes
@var{dim0}, @var{dim1} @dots{} should be nonnegative integers less than
the rank of @var{array}. @var{enclose-array} returns an array
resembling an array of shared arrays. The dimensions of each shared
@@ -2027,7 +2111,9 @@
@end example
@end deffn
address@hidden primitive array-dimensions array
address@hidden docstring begin (c-doc-string "unif.c" "array-dimensions")
address@hidden docstring md5 "fd28f6a64ba7ecb468d2e5582f2ac3ab"
address@hidden primitive array-dimensions ra
@code{Array-dimensions} is similar to @code{array-shape} but replaces
elements with a @code{0} minimum with one greater than the maximum. So:
@example
@@ -2035,32 +2121,39 @@
@end example
@end deffn
address@hidden primitive array-rank obj
address@hidden docstring begin (c-doc-string "unif.c" "array-rank")
address@hidden docstring md5 "02fe9bf3336946ee2442583fbdf571d0"
address@hidden primitive array-rank ra
Returns the number of dimensions of @var{obj}. If @var{obj} is not an
array, @code{0} is returned.
@end deffn
address@hidden primitive array->list array
address@hidden docstring begin (c-doc-string "unif.c" "array->list")
address@hidden docstring md5 "a54ba48675553a2bd5f6c99669be0c1c"
address@hidden primitive array->list v
Returns a list consisting of all the elements, in order, of @var{array}.
@end deffn
address@hidden primitive array-copy! source destination
address@hidden docstring begin (c-doc-string "ramap.c" "array-copy!")
address@hidden docstring md5 "8d7ebc78c36c9270799dc32457fd1602"
address@hidden primitive array-copy! src dst
address@hidden primitive array-copy-in-order! src dst
Copies every element from vector or array @var{source} to the
corresponding element of @var{destination}. @var{destination} must have
the same rank as @var{source}, and be at least as large in each
dimension. The order is unspecified.
@end deffn
address@hidden primitive serial-array-copy! source destination
-Same as @code{array-copy!} but guaranteed to copy in row-major order.
address@hidden deffn
-
address@hidden primitive array-fill! array fill
address@hidden docstring begin (c-doc-string "ramap.c" "array-fill!")
address@hidden docstring md5 "dd87dd766aa737b361441395ecbd6c69"
address@hidden primitive array-fill! ra fill
Stores @var{fill} in every element of @var{array}. The value returned
is unspecified.
@end deffn
address@hidden primitive array-equal? array0 array1 @dots{}
address@hidden docstring begin (c-doc-string "ramap.c" "array-equal?")
address@hidden docstring md5 "d64086021f3d75c41f34bb8f76c76f40"
address@hidden primitive array-equal? ra0 ra1
Returns @code{#t} iff all arguments are arrays with the same shape, the
same type, and have corresponding elements which are either
@code{equal?} or @code{array-equal?}. This function differs from
@@ -2068,7 +2161,9 @@
@var{array-equal?} but not @var{equal?} to a vector or uniform vector.
@end deffn
address@hidden primitive array-contents array
address@hidden docstring begin (c-doc-string "unif.c" "array-contents")
address@hidden docstring md5 "a4bacdebe2242fbd93c93db598c60dbe"
address@hidden primitive array-contents ra [strict]
@deffnx primitive array-contents array strict
If @var{array} may be @dfn{unrolled} into a one dimensional shared array
without changing their order (last subscript changing fastest), then
@@ -2085,7 +2180,10 @@
@node Array Mapping
@subsection Array Mapping
address@hidden primitive array-map! array0 proc array1 @dots{}
address@hidden docstring begin (c-doc-string "ramap.c" "array-map!")
address@hidden docstring md5 "faa97c2e17651ead613160720249fbdf"
address@hidden primitive array-map! ra0 proc . lra
address@hidden primitive array-map-in-order! ra0 proc . lra
@var{array1}, @dots{} must have the same number of dimensions as
@var{array0} and have a range for each index which includes the range
for the corresponding index in @var{array0}. @var{proc} is applied to
@@ -2093,18 +2191,17 @@
as the corresponding element in @var{array0}. The value returned is
unspecified. The order of application is unspecified.
@end deffn
-
address@hidden primitive serial-array-map! array0 proc array1 @dots{}
-Same as @var{array-map!}, but guaranteed to apply @var{proc} in
-row-major order.
address@hidden deffn
address@hidden primitive array-for-each proc array0 @dots{}
address@hidden docstring begin (c-doc-string "ramap.c" "array-for-each")
address@hidden docstring md5 "72be972b3f18aa272fe6633d72ffced7"
address@hidden primitive array-for-each proc ra0 . lra
@var{proc} is applied to each tuple of elements of @var{array0} @dots{}
in row-major order. The value returned is unspecified.
@end deffn
address@hidden primitive array-index-map! array proc
address@hidden docstring begin (c-doc-string "ramap.c" "array-index-map!")
address@hidden docstring md5 "9633e61c5b183e30102a3ed8fe523588"
address@hidden primitive array-index-map! ra proc
applies @var{proc} to the indices of each element of @var{array} in
turn, storing the result in the corresponding element. The value
returned and the order of application are unspecified.
@@ -2181,12 +2278,13 @@
@code{#} and @code{(}. For example, a uniform vector of signed
long integers is displayed in the form @code{'#e(3 5 9)}.
address@hidden primitive array? obj [prototype]
-Returns @code{#t} if the @var{obj} is an array of type corresponding to
address@hidden, and @code{#f} if not.
address@hidden docstring begin (c-doc-string "unif.c" "array?")
address@hidden docstring md5 "d222507378723f16fee9ef538bcdf41e"
address@hidden primitive array? v [prot]
+Returns @code{#t} if the @var{obj} is an array, and @code{#f} if not.
-If @var{prototype} is omitted, @code{#t} will be returned if @var{obj}
-is an array of any type.
+The @var{prototype} argument is used with uniform arrays and is described
+elsewhere.
@end deffn
@deffn procedure make-uniform-array prototype bound1 bound2 @dots{}
@@ -2195,13 +2293,17 @@
and fills it with @var{prototype}.
@end deffn
address@hidden primitive array-prototype array
address@hidden docstring begin (c-doc-string "unif.c" "array-prototype")
address@hidden docstring md5 "28e904ac048755689a5362d51f9320a1"
address@hidden primitive array-prototype ra
Returns an object that would produce an array of the same type as
@var{array}, if used as the @var{prototype} for
@code{make-uniform-array}.
@end deffn
address@hidden primitive list->uniform-array rank prot lst
address@hidden docstring begin (c-doc-string "unif.c" "list->uniform-array")
address@hidden docstring md5 "4bcbb04a4c3f9e163ac8a0f5728211be"
address@hidden primitive list->uniform-array ndim prot lst
@deffnx procedure list->uniform-vector prot lst
Returns a uniform array of the type indicated by prototype @var{prot}
with elements the same as those of @var{lst}. Elements must be of the
@@ -2213,11 +2315,15 @@
unspecified.
@end deffn
address@hidden primitive uniform-vector-length uve
address@hidden docstring begin (c-doc-string "unif.c" "uniform-vector-length")
address@hidden docstring md5 "4ffaf3c32742e8d0b022870193f456ab"
address@hidden primitive uniform-vector-length v
Returns the number of elements in @var{uve}.
@end deffn
address@hidden primitive dimensions->uniform-array dims prototype [fill]
address@hidden docstring begin (c-doc-string "unif.c"
"dimensions->uniform-array")
address@hidden docstring md5 "a722928e35fa1c7c17dc61826cd57aea"
address@hidden primitive dimensions->uniform-array dims prot [fill]
@deffnx primitive make-uniform-vector length prototype [fill]
Creates and returns a uniform array or vector of type corresponding to
@var{prototype} with dimensions @var{dims} or length @var{length}. If
@@ -2227,7 +2333,9 @@
@c Another compiled-closure. -twp
address@hidden primitive uniform-array-read! ura [port-or-fdes] [start] [end]
address@hidden docstring begin (c-doc-string "unif.c" "uniform-array-read!")
address@hidden docstring md5 "1a1d6c2a8c40494ca2549a9b1599eac0"
address@hidden primitive uniform-array-read! ra [port_or_fd [start [end]]]
@deffnx primitive uniform-vector-read! uve [port-or-fdes] [start] [end]
Attempts to read all elements of @var{ura}, in lexicographic order, as
binary objects from @var{port-or-fdes}.
@@ -2245,7 +2353,9 @@
returned by @code{(current-input-port)}.
@end deffn
address@hidden primitive uniform-array-write ura [port-or-fdes] [start] [end]
address@hidden docstring begin (c-doc-string "unif.c" "uniform-array-write")
address@hidden docstring md5 "ef18434cfde294dd87570889a0d78b3c"
address@hidden primitive uniform-array-write v [port_or_fd [start [end]]]
@deffnx primitive uniform-vector-write uve [port-or-fdes] [start] [end]
Writes all elements of @var{ura} as binary objects to
@var{port-or-fdes}.
@@ -2279,21 +2389,29 @@
#*101
@end example
address@hidden primitive bit-count bool bv
-Returns the number occurrences of @var{bool} in @var{bv}.
address@hidden docstring begin (c-doc-string "unif.c" "bit-count")
address@hidden docstring md5 "e6cef746c6e6e7441626829c22c9f202"
address@hidden primitive bit-count b bitvector
+Returns the number of occurrences of the boolean B in BITVECTOR.
@end deffn
address@hidden primitive bit-position bool bv k
address@hidden docstring begin (c-doc-string "unif.c" "bit-position")
address@hidden docstring md5 "6b6f07226ca76c04fb5a18a06d48d87a"
address@hidden primitive bit-position item v k
Returns the minimum index of an occurrence of @var{bool} in @var{bv}
which is at least @var{k}. If no @var{bool} occurs within the specified
range @code{#f} is returned.
@end deffn
address@hidden primitive bit-invert! bv
address@hidden docstring begin (c-doc-string "unif.c" "bit-invert!")
address@hidden docstring md5 "f016fcaf48ed8ff7ca3374058c468c29"
address@hidden primitive bit-invert! v
Modifies @var{bv} by replacing each element with its negation.
@end deffn
address@hidden primitive bit-set*! bv uve bool
address@hidden docstring begin (c-doc-string "unif.c" "bit-set*!")
address@hidden docstring md5 "b3bd23c681fd0f2f29cbd3d1d7280371"
address@hidden primitive bit-set*! v kv obj
If uve is a bit-vector @var{bv} and uve must be of the same length. If
@var{bool} is @code{#t}, uve is OR'ed into @var{bv}; If @var{bool} is
@code{#f}, the
inversion of uve is AND'ed into @var{bv}.
@@ -2305,7 +2423,9 @@
The return value is unspecified.
@end deffn
address@hidden primitive bit-count* bv uve bool
address@hidden docstring begin (c-doc-string "unif.c" "bit-count*")
address@hidden docstring md5 "dcbb47c0a47faa3bc2430c2b39cfe7c5"
address@hidden primitive bit-count* v kv obj
Returns
@example
(bit-count (bit-set*! (if bool bv (bit-invert! bv)) uve #t) #t).
@@ -3065,6 +3185,58 @@
@end deffn
address@hidden Vectors
address@hidden Vectors
+
address@hidden docstring begin (c-doc-string "vectors.c" "make-vector")
address@hidden docstring md5 "bdaed77c90dab802b4105d5a57c07e6a"
address@hidden primitive make-vector k [fill]
+Returns a newly allocated vector of @var{k} elements. If a second
+argument is given, then each element is initialized to @var{fill}.
+Otherwise the initial contents of each element is unspecified. (r5rs)
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "vectors.c" "vector")
address@hidden docstring md5 "6edbfae8a98921cc35dfe51dbc3e37de"
address@hidden primitive vector . l
address@hidden primitive list->vector l
+Returns a newly allocated vector whose elements contain the given
+arguments. Analogous to @samp{list}. (r5rs)
+
address@hidden
address@hidden(vector 'a 'b 'c) ==> #(a b c) }
address@hidden format
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "vectors.c" "vector->list")
address@hidden docstring md5 "d19c868ee96ca6ddd3d992bce83dd8bc"
address@hidden primitive vector->list v
address@hidden>list} returns a newly allocated list of the objects contained
+in the elements of @var{vector}. (r5rs)
+
address@hidden
address@hidden(vector->list '#(dah dah didah))
+=> (dah dah didah)
+list->vector '(dididit dah))
+=> #(dididit dah)
+}
address@hidden format
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "vectors.c" "vector-fill!")
address@hidden docstring md5 "5d965812b248ee00159eb643307dc91f"
address@hidden primitive vector-fill! v fill_x
+Stores @var{fill} in every element of @var{vector}.
+The value returned by @samp{vector-fill!} is unspecified. (r5rs)
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "vectors.c" "vector?")
address@hidden docstring md5 "8f385d275eb2ebe494e2ef8d1b640c8e"
address@hidden primitive vector? obj
+Returns @t{#t} if @var{obj} is a vector, otherwise returns @t{#f}. (r5rs)
address@hidden deffn
+
+
@page
@node Booleans
@chapter Booleans
@@ -3139,6 +3311,67 @@
@node String Fun
@section String Fun
address@hidden docstring begin (c-doc-string "strings.c" "string")
address@hidden docstring md5 "2f53a5b80913d6ffd1c96939701be94a"
address@hidden primitive string . chrs
address@hidden primitive list->string chrs
+Returns a newly allocated string composed of the arguments, CHRS.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strings.c" "make-string")
address@hidden docstring md5 "364c35c806265d290ea8eb804728b076"
address@hidden primitive make-string k [chr]
+Returns a newly allocated string of
+length K. If CHR is given, then all elements of the string
+are initialized to CHR, otherwise the contents of the
+STRING are unspecified.
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strings.c" "string-append")
address@hidden docstring md5 "747f06b456ca6ecdc45264b4b143e193"
address@hidden primitive string-append . args
+Returns a newly allocated string whose characters form the
+concatenation of the given strings, ARGS.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strings.c" "string-length")
address@hidden docstring md5 "cfc80bf95ce7bbf06727abc3c88cbfe2"
address@hidden primitive string-length string
+Returns the number of characters in STRING
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strings.c" "string-ref")
address@hidden docstring md5 "fade777137561f7d4716d2c227be1baf"
address@hidden primitive string-ref str k
+Returns character K of STR using zero-origin indexing.
+K must be a valid index of STR.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strings.c" "string-set!")
address@hidden docstring md5 "c6fe14c142bf763b97313158539fe5ad"
address@hidden primitive string-set! str k chr
+Stores CHR in element K of STRING and returns an unspecified value.
+K must be a valid index of STR.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strings.c" "string?")
address@hidden docstring md5 "b60e94a49a045e6e0378dd634f4bb808"
address@hidden primitive string? obj
+Returns #t iff OBJ is a string, else returns #f.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strings.c" "substring")
address@hidden docstring md5 "8f5239fb94a7d6cb396b11b6ddf16d95"
address@hidden primitive substring str start [end]
+Returns a newly allocated string formed from the characters
+of STR beginning with index START (inclusive) and ending with
+index END (exclusive).
+STR must be a string, START and END must be exact integers satisfying:
+
+0 <= START <= END <= (string-length STR).
address@hidden deffn
+
@c docstring begin (c-doc-string "strop.c" "string-index")
@c docstring md5 "4a4e4236fabe6f52d9941996dd21ff7d"
@deffn primitive string-index str chr [frm [to]]
@@ -3188,8 +3421,10 @@
@end deffn
@c docstring begin (c-doc-string "strop.c" "substring-move!")
address@hidden docstring md5 "baaef71083170324992830663771f8c2"
address@hidden docstring md5 "f80c0be2b33dccd55252a5182c383845"
@deffn primitive substring-move! str1 start1 end1 str2 start2
address@hidden primitive substring-move-left! str1 start1 end1 str2 start2
address@hidden primitive substring-move-right! str1 start1 end1 str2 start2
Copy the substring of @var{str1} bounded by @var{start1} and @var{end1}
into @var{str2} beginning at position @var{end2}.
@code{substring-move-right!} begins copying from the rightmost character
@@ -3323,6 +3558,12 @@
@end example
@end deffn
address@hidden docstring begin (c-doc-string "strop.c" "string-upcase")
address@hidden docstring md5 "a2500d5c32e6017b7fae41f12e26e6a5"
address@hidden primitive string-upcase str
+Upcase every character in @code{str}.
address@hidden deffn
+
@c ARGFIXME v/str
@c docstring begin (c-doc-string "strop.c" "string-downcase!")
@c docstring md5 "0f71eab3778d9e253efc882ccb264d07"
@@ -3343,6 +3584,135 @@
@end example
@end deffn
address@hidden docstring begin (c-doc-string "strop.c" "string-downcase")
address@hidden docstring md5 "28e159fc6d050890ca949b324a1b139d"
address@hidden primitive string-downcase str
+Downcase every character in @code{str}.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strop.c" "string-capitalize!")
address@hidden docstring md5 "aa6b9e5705ef27c2b10d46beadc0cc57"
address@hidden primitive string-capitalize! str
+Destructively capitalize every character in @code{str}.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strop.c" "string-capitalize")
address@hidden docstring md5 "cb858edc2b5c4d5556eaa471a6e5e8fb"
address@hidden primitive string-capitalize str
+Capitalize every character in @code{str}.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strorder.c" "string-ci<=?")
address@hidden docstring md5 "c83812f7247d7726394fbef12308ea0d"
address@hidden primitive string-ci<=? s1 s2
+Case insensitive lexicographic ordering predicate;
+returns @t{#t} if @var{s1} is lexicographically less than
+or equal to @var{s2} regardless of case. (r5rs)
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strorder.c" "string-ci<?")
address@hidden docstring md5 "2f86df51b869ab0cf7c0c34278bc498f"
address@hidden primitive string-ci<? s1 s2
+Case insensitive lexicographic ordering predicate;
+returns @t{#t} if @var{s1} is lexicographically less than
address@hidden regardless of case. (r5rs)
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strorder.c" "string-ci=?")
address@hidden docstring md5 "05d37e36168ea70cf2010bd006ae73e0"
address@hidden primitive string-ci=? s1 s2
+Case-insensitive string equality predicate; returns @t{#t} if
+the two strings are the same length and their component characters
+match (ignoring case) at each position; otherwise returns @t{#f}. (r5rs)
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strorder.c" "string-ci>=?")
address@hidden docstring md5 "9836fce71d8674cabb71e503bf8fa7cc"
address@hidden primitive string-ci>=? s1 s2
+Case insensitive lexicographic ordering predicate;
+returns @t{#t} if @var{s1} is lexicographically greater than
+or equal to @var{s2} regardless of case. (r5rs)
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strorder.c" "string-ci>?")
address@hidden docstring md5 "3ab2a7e37e6bf69bd42142541606b751"
address@hidden primitive string-ci>? s1 s2
+Case insensitive lexicographic ordering predicate;
+returns @t{#t} if @var{s1} is lexicographically greater than
address@hidden regardless of case. (r5rs)
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strorder.c" "string<=?")
address@hidden docstring md5 "0a36616dc0f9de15c1c4f18aba18e7f9"
address@hidden primitive string<=? s1 s2
+Lexicographic ordering predicate; returns @t{#t} if @var{s1}
+is lexicographically less than or equal to @var{s2}. (r5rs)
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strorder.c" "string<?")
address@hidden docstring md5 "6a65f2fca17d4426cdbe739ad231b11b"
address@hidden primitive string<? s1 s2
+Lexicographic ordering predicate; returns @t{#t} if @var{s1}
+is lexicographically less than @var{s2}. (r5rs)
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strorder.c" "string=?")
address@hidden docstring md5 "debdbce480bf37ec8df40e20c41d2196"
address@hidden primitive string=? s1 s2
+Lexicographic equality predicate;
+Returns @t{#t} if the two strings are the same length and contain the same
+characters in the same positions, otherwise returns @t{#f}. (r5rs)
+
address@hidden treats
+upper and lower case letters as though they were the same character, but
address@hidden treats upper and lower case as distinct characters.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strorder.c" "string>=?")
address@hidden docstring md5 "08c53e5d367ff40e808e925df18eaf33"
address@hidden primitive string>=? s1 s2
+Lexicographic ordering predicate; returns @t{#t} if @var{s1}
+is lexicographically greater than or equal to @var{s2}. (r5rs)
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strorder.c" "string>?")
address@hidden docstring md5 "feacc1341057fdbd2e77bade8aa05928"
address@hidden primitive string>? s1 s2
+Lexicographic ordering predicate; returns @t{#t} if @var{s1}
+is lexicographically greater than @var{s2}. (r5rs)
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strop.c" "string->list")
address@hidden docstring md5 "4c24bb2b3800c4703c7a00d006cf03b8"
address@hidden primitive string->list str
address@hidden>list} returns a newly allocated list of the
+characters that make up the given string. @samp{List->string}
+returns a newly allocated string formed from the characters in the list
address@hidden, which must be a list of characters. @samp{String->list}
+and @samp{list->string} are
+inverses so far as @samp{equal?} is concerned. (r5rs)
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strop.c" "string-ci->symbol")
address@hidden docstring md5 "708b35f77793b85a7de4ced1db0b3da8"
address@hidden primitive string-ci->symbol str
+Return the symbol whose name is @var{str}, downcased in necessary(???).
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strop.c" "string-copy")
address@hidden docstring md5 "31f46473b889c18adf9876f7effef9c0"
address@hidden primitive string-copy str
+Returns a newly allocated copy of the given @var{string}. (r5rs)
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "strop.c" "string-fill!")
address@hidden docstring md5 "37da4038f6337a92dc72c755b0a9deaf"
address@hidden primitive string-fill! str chr
+Stores @var{char} in every element of the given @var{string} and returns an
+unspecified value. (r5rs)
address@hidden deffn
+
+
@node Shared Substrings
@section Shared Substrings
@@ -3726,6 +4096,96 @@
@page
address@hidden Procedures
address@hidden Procedures
+
address@hidden docstring begin (c-doc-string "procprop.c"
"procedure-properties")
address@hidden docstring md5 "019f325969f292274ab9ec9143a091bb"
address@hidden primitive procedure-properties proc
+Return @var{obj}'s property list.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "procprop.c" "procedure-property")
address@hidden docstring md5 "0e5f2a4f9971d500b107a90311842ebc"
address@hidden primitive procedure-property p k
+Return the property of @var{obj} with name @var{key}.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "procprop.c"
"set-procedure-properties!")
address@hidden docstring md5 "e5208ff597af390eff37ebe8eb96a7a3"
address@hidden primitive set-procedure-properties! proc new_val
+Set @var{obj}'s property list to @var{alist}.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "procprop.c"
"set-procedure-property!")
address@hidden docstring md5 "70e031772c1078ea8dbb21cddb30afb4"
address@hidden primitive set-procedure-property! p k v
+In @var{obj}'s property list, set the property named @var{key} to
address@hidden
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "procs.c" "closure?")
address@hidden docstring md5 "662358b00013ac9c369c0fcfebf9db31"
address@hidden primitive closure? obj
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "procs.c"
"make-procedure-with-setter")
address@hidden docstring md5 "4d17f47850df45bd0b72f6b59634d8e2"
address@hidden primitive make-procedure-with-setter procedure setter
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "procs.c" "procedure")
address@hidden docstring md5 "19d19de092f7748a13e2c32b8e7609c6"
address@hidden primitive procedure proc
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "procs.c" "procedure-with-setter?")
address@hidden docstring md5 "ae193cffd4b795883a0c67147b2e5a8b"
address@hidden primitive procedure-with-setter? obj
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "procs.c" "procedure?")
address@hidden docstring md5 "7455fc2160c5f4a91f1320e4e493bbfa"
address@hidden primitive procedure? obj
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "procs.c" "thunk?")
address@hidden docstring md5 "1eb9a507198e7b4f01fae9f61ccbcdd5"
address@hidden primitive thunk? obj
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "srcprop.c"
"set-source-properties!")
address@hidden docstring md5 "7e1cd44e2527d5d4064ca871d3c26a7a"
address@hidden primitive set-source-properties! obj plist
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "srcprop.c" "set-source-property!")
address@hidden docstring md5 "1bea0557ab6a38583ac23876116d446e"
address@hidden primitive set-source-property! obj key datum
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "srcprop.c" "source-properties")
address@hidden docstring md5 "d7b76c5abe087afa422ec486ef106499"
address@hidden primitive source-properties obj
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "srcprop.c" "source-property")
address@hidden docstring md5 "493e9daf2ef5bc47151f2b661d9ac03e"
address@hidden primitive source-property obj key
+
address@hidden deffn
+
+
address@hidden
@node Property Lists
@chapter Property Lists
@@ -4283,39 +4743,6 @@
The return value is unspecified.
@end deffn
address@hidden docstring begin (c-doc-string "ports.c" "port-mode")
address@hidden docstring md5 "cbcb46422ab6eb230fd54bb014026d79"
address@hidden primitive port-mode port
-Returns the port modes associated with the open port @var{port}. These
-will not necessarily be identical to the modes used when the port was
-opened, since modes such as "append" which are used only during
-port creation are not retained.
address@hidden deffn
-
address@hidden docstring begin (c-doc-string "ports.c" "close-all-ports-except")
address@hidden docstring md5 "cc236f9737a0e718d33eb00106cd33f9"
address@hidden primitive close-all-ports-except . ports
-Close all open file ports used by the interpreter
-except for those supplied as arguments. This procedure
-is intended to be used before an exec call to close file descriptors
-which are not needed in the new process.
address@hidden deffn
-
address@hidden docstring begin (c-doc-string "fports.c" "setvbuf")
address@hidden docstring md5 "5395a53e279959cd6b364a3411887c0b"
address@hidden primitive setvbuf port mode [size]
-Set the buffering mode for @var{port}. @var{mode} can be:
address@hidden @code
address@hidden _IONBF
-non-buffered
address@hidden _IOLBF
-line buffered
address@hidden _IOFBF
-block buffered, using a newly allocated buffer of @var{size} bytes.
-If @var{size} is omitted, a default size will be used.
address@hidden table
address@hidden deffn
-
@c ARGFIXME port/input-port
@c docstring begin (c-doc-string "ports.c" "port-column")
@c docstring md5 "59f674b1d850a3d0ff4e98d1b251f2dc"
@@ -4340,19 +4767,6 @@
current input port if none is specified.
@end deffn
address@hidden docstring begin (c-doc-string "ports.c" "port-revealed")
address@hidden docstring md5 "1b7c38c06c8f072cdafa2710b72f7f3b"
address@hidden primitive port-revealed port
-Returns the revealed count for @var{port}.
address@hidden deffn
-
address@hidden docstring begin (c-doc-string "ports.c" "set-port-revealed!")
address@hidden docstring md5 "84596c3911799dc63419755ab4a79901"
address@hidden primitive set-port-revealed! port rcount
-Sets the revealed count for a port to a given value.
-The return value is unspecified.
address@hidden deffn
-
@node Extended I/O
@section Extended I/O
@@ -4974,6 +5388,228 @@
@page
address@hidden Random
address@hidden Random
+
address@hidden docstring begin (c-doc-string "random.c" "copy-random-state")
address@hidden docstring md5 "e23691e0e6e86de67ddfefc2892aea64"
address@hidden primitive copy-random-state [state]
+Return a copy of the random state STATE.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "random.c" "random")
address@hidden docstring md5 "15d9f6070300a56218e126c08cd0fb3d"
address@hidden primitive random n [state]
+Return a number in [0,N).
+
+Accepts a positive integer or real n and returns a
+number of the same type between zero (inclusive) and
+N (exclusive). The values returned have a uniform
+distribution.
+
+The optional argument STATE must be of the type produced by
+`seed->random-state'. It defaults to the value of the variable
+*random-state*. This object is used to maintain the state of
+the pseudo-random-number generator and is altered as a side
+effect of the random operation.
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "random.c" "random:exp")
address@hidden docstring md5 "bda26ab094f9464f5e7513a074110abe"
address@hidden primitive random:exp [state]
+Returns an inexact real in an exponential distribution with mean 1.
+For an exponential distribution with mean u use (* u (random:exp)).
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "random.c" "random:hollow-sphere!")
address@hidden docstring md5 "86f26a095a5084456ca82eca43d90f92"
address@hidden primitive random:hollow-sphere! v [state]
+Fills vect with inexact real random numbers
+the sum of whose squares is equal to 1.0.
+Thinking of vect as coordinates in space of
+dimension n = (vector-length vect), the coordinates
+are uniformly distributed over the surface of the
+unit n-shere.
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "random.c" "random:normal")
address@hidden docstring md5 "e3d18c468cf0837a95aa4d761b06618b"
address@hidden primitive random:normal [state]
+Returns an inexact real in a normal distribution.
+The distribution used has mean 0 and standard deviation 1.
+For a normal distribution with mean m and standard deviation
+d use @code{(+ m (* d (random:normal)))}.
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "random.c" "random:normal-vector!")
address@hidden docstring md5 "ca01a0a2b982be4cf91f5c01f34ebad1"
address@hidden primitive random:normal-vector! v [state]
+Fills vect with inexact real random numbers that are
+independent and standard normally distributed
+(i.e., with mean 0 and variance 1).
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "random.c" "random:solid-sphere!")
address@hidden docstring md5 "f3f50c667eb05b6a52d4e238c84791f2"
address@hidden primitive random:solid-sphere! v [state]
+Fills vect with inexact real random numbers
+the sum of whose squares is less than 1.0.
+Thinking of vect as coordinates in space of
+dimension n = (vector-length vect), the coordinates
+are uniformly distributed within the unit n-shere.
+The sum of the squares of the numbers is returned.
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "random.c" "random:uniform")
address@hidden docstring md5 "4203472358525e34c8f9d9b6fc4ab2d3"
address@hidden primitive random:uniform [state]
+Returns a uniformly distributed inexact real random number in [0,1).
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "random.c" "seed->random-state")
address@hidden docstring md5 "08325e35121b07828813b940966aa50d"
address@hidden primitive seed->random-state seed
+Return a new random state using SEED.
address@hidden deffn
+
+
address@hidden
address@hidden Sorting
address@hidden Sorting
+
address@hidden docstring begin (c-doc-string "sort.c" "merge!")
address@hidden docstring md5 "367b4ffd6b90c60f7948e548b40cb2e6"
address@hidden primitive merge! alist blist less
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "sort.c" "merge")
address@hidden docstring md5 "869d5db39656392d54e584778a838841"
address@hidden primitive merge alist blist less
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "sort.c" "restricted-vector-sort!")
address@hidden docstring md5 "fdfb2d1b508df2407df5aa06fb6b2e11"
address@hidden primitive restricted-vector-sort! vec less startpos endpos
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "sort.c" "sort!")
address@hidden docstring md5 "e3072b7809b03a14569c03a9b4037211"
address@hidden primitive sort! items less
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "sort.c" "sort")
address@hidden docstring md5 "9564c57edb55b1c7f5df1193dd2815a9"
address@hidden primitive sort items less
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "sort.c" "sort-list!")
address@hidden docstring md5 "8e0bde719221599da474718c1c19cbec"
address@hidden primitive sort-list! items less
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "sort.c" "sort-list")
address@hidden docstring md5 "aaa69aa76b735dae7480c7009b258524"
address@hidden primitive sort-list items less
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "sort.c" "sorted?")
address@hidden docstring md5 "2780363e0672d97c235caae689c5f15a"
address@hidden primitive sorted? items less
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "sort.c" "stable-sort!")
address@hidden docstring md5 "d0d1a2e69eb7b0c9363e66c805b39222"
address@hidden primitive stable-sort! items less
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "sort.c" "stable-sort")
address@hidden docstring md5 "a10b23541391f5530554f6e876ae3908"
address@hidden primitive stable-sort items less
+
address@hidden deffn
+
+
address@hidden
address@hidden Reading and Writing
address@hidden Reading and Writing
+
address@hidden docstring begin (c-doc-string "print.c" "get-print-state")
address@hidden docstring md5 "b5b525fc82e120ec1ff39dcbbf98f5f2"
address@hidden primitive get-print-state port
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "print.c" "newline")
address@hidden docstring md5 "d9351ef8f5403ffc8fba539fde744af6"
address@hidden primitive newline [port]
+Send a newline to PORT.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "print.c" "port-with-print-state")
address@hidden docstring md5 "4db8bca5cc04e8bba7efc513f9ad9574"
address@hidden primitive port-with-print-state port pstate
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "print.c"
"print-options-interface")
address@hidden docstring md5 "f674aa5a515cc67a715de7b69d997bf1"
address@hidden primitive print-options-interface [setting]
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "print.c" "simple-format")
address@hidden docstring md5 "09a7aab6f9ebdc145c2db0111ea19dd5"
address@hidden primitive simple-format destination message . args
+Write MESSAGE to DESTINATION, defaulting to `current-output-port'.
+MESSAGE can contain ~A (was %s) and ~S (was %S) escapes. When printed,
+the escapes are replaced with corresponding members of ARGS:
+~A formats using `display' and ~S formats using `write'.
+If DESTINATION is #t, then use the `current-output-port',
+if DESTINATION is #f, then return a string containing the formatted text.
+Does not add a trailing newline.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "print.c" "write-char")
address@hidden docstring md5 "b8769ac8c925ec06222f903385ba1cc6"
address@hidden primitive write-char chr [port]
+Send character CHR to PORT.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "read.c" "read")
address@hidden docstring md5 "946c5cca51d7fff7a135cfd2a59946b2"
address@hidden primitive read [port]
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "read.c" "read-hash-extend")
address@hidden docstring md5 "d0608894cab62e617219a26d9342ff16"
address@hidden primitive read-hash-extend chr proc
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "read.c" "read-options-interface")
address@hidden docstring md5 "1451ab22009c0806d033e31a567ff56a"
address@hidden primitive read-options-interface [setting]
+
address@hidden deffn
+
+
address@hidden
@node Bitwise Operations
@chapter Bitwise Operations
@@ -6345,7 +6981,19 @@
blocked on @var{mutex} is awakened and grabs the mutex lock.
@end deffn
address@hidden begin (c-doc-string "threads.c" "make-condition-variable")
address@hidden primitive make-condition-variable
address@hidden deffn
address@hidden begin (c-doc-string "threads.c" "wait-condition-variable")
address@hidden primitive wait-condition-variable cond-var mutex
address@hidden deffn
+
address@hidden begin (c-doc-string "threads.c" "signal-condition-variable")
address@hidden primitive signal-condition-variable cond-var
address@hidden deffn
+
+
@node Higher level thread procedures
@subsection Higher level thread procedures
@@ -6483,6 +7131,13 @@
To implement a mapping from source code expressions to the procedures
they constitute a doubly-weak table has to be used.
address@hidden
+* Weak key hashes::
+* Weak vectors::
address@hidden menu
+
+
address@hidden Weak key hashes
@section Weak key hashes
@c ARGFIXME k/size
@@ -6509,6 +7164,32 @@
hash table.
@end deffn
address@hidden docstring begin (c-doc-string "weaks.c"
"make-weak-value-hash-table")
address@hidden docstring md5 "fb4d4c2e073dbc796c91301c7354626a"
address@hidden primitive make-weak-value-hash-table k
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "weaks.c" "weak-value-hash-table?")
address@hidden docstring md5 "153f4d8d1c920b5b96bbe785f26948c4"
address@hidden primitive weak-value-hash-table? x
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "weaks.c"
"make-doubly-weak-hash-table")
address@hidden docstring md5 "dfeed8361b0ead623e683a0c23a10d74"
address@hidden primitive make-doubly-weak-hash-table k
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "weaks.c"
"doubly-weak-hash-table?")
address@hidden docstring md5 "c9e3cadd3bb01eeab465925fbaebef76"
address@hidden primitive doubly-weak-hash-table? x
+
address@hidden deffn
+
+
address@hidden Weak vectors
@section Weak vectors
Weak vectors are mainly useful in Guile's implementation of weak hash
@@ -6641,6 +7322,261 @@
@page
address@hidden Symbols and Variables
address@hidden Symbols and Variables
+
address@hidden docstring begin (c-doc-string "symbols.c" "builtin-bindings")
address@hidden docstring md5 "8a1709992ef99271fdbc658707bfaf2c"
address@hidden primitive builtin-bindings
+Create and return a copy of the global symbol table, removing all
+unbound symbols.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "symbols.c"
"builtin-weak-bindings")
address@hidden docstring md5 "51fe6c6e787815da2e77d1a43cd97739"
address@hidden primitive builtin-weak-bindings
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "symbols.c" "gensym")
address@hidden docstring md5 "d1d5a91644bfdb7f7d8bd7425d5665c1"
address@hidden primitive gensym [name [obarray]]
+Create a new, unique symbol in @var{obarray}, using the global symbol
+table by default. If @var{name} is specified, it should be used as a
+prefix for the new symbol's name. The default prefix is @code{%%gensym}.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "symbols.c" "intern-symbol")
address@hidden docstring md5 "2af3c5220d73c461a595912190fb6f59"
address@hidden primitive intern-symbol o s
+Add a new symbol to @var{obarray} with name @var{string}, bound to an
+unspecified initial value. The symbol table is not modified if a symbol
+with this name is already present.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "symbols.c"
"string->obarray-symbol")
address@hidden docstring md5 "7685fc7e47376eac94e06b59b25ec224"
address@hidden primitive string->obarray-symbol o s [softp]
+Intern a new symbol in @var{obarray}, a symbol table, with name
address@hidden
+
+If @var{obarray} is @code{#f}, use the default system symbol table. If
address@hidden is @code{#t}, the symbol should not be interned in any
+symbol table; merely return the pair (@var{symbol}
+. @var{#<undefined>}).
+
+The @var{soft?} argument determines whether new symbol table entries
+should be created when the specified symbol is not already present in
address@hidden If @var{soft?} is specified and is a true value, then
+new entries should not be added for symbols not already present in the
+table; instead, simply return @code{#f}.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "symbols.c" "string->symbol")
address@hidden docstring md5 "9fd8dc0f103e845668d09ee2394a8ca6"
address@hidden primitive string->symbol s
+Returns the symbol whose name is @var{string}. This procedure can
+create symbols with names containing special characters or letters in
+the non-standard case, but it is usually a bad idea to create such
+symbols because in some implementations of Scheme they cannot be read as
+themselves. See @samp{symbol->string}.
+
+The following examples assume that the implementation's standard case is
+lower case:
+
address@hidden
address@hidden(eq? 'mISSISSIppi 'mississippi)
+ ==> #t
+(string->symbol "mISSISSIppi")
+ ==>
+ @r{}the symbol with name "mISSISSIppi"
+(eq? 'bitBlt (string->symbol "bitBlt"))
+ ==> #f
+(eq? 'JollyWog
+ (string->symbol
+ (symbol->string 'JollyWog)))
+ ==> #t
+(string=? "K. Harper, M.D."
+ (symbol->string
+ (string->symbol "K. Harper, M.D.")))
+ ==> #t
+}
address@hidden format
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "symbols.c" "symbol->string")
address@hidden docstring md5 "b5364a720bb6d4de773b650b448ae726"
address@hidden primitive symbol->string s
+Returns the name of @var{symbol} as a string. If the symbol was part of
+an object returned as the value of a literal expression (section
address@hidden expressions,,,r4rs, The Revised^4 Report on Scheme}) or
+by a call to the @samp{read} procedure, and its name contains alphabetic
+characters, then the string returned will contain characters in the
+implementation's preferred standard case---some implementations will
+prefer upper case, others lower case. If the symbol was returned by
address@hidden>symbol}, the case of characters in the string returned
+will be the same as the case in the string that was passed to
address@hidden>symbol}. It is an error to apply mutation procedures like
address@hidden to strings returned by this procedure. (r5rs)
+
+The following examples assume that the implementation's standard case is
+lower case:
+
address@hidden
address@hidden(symbol->string 'flying-fish)
+ ==> "flying-fish"
+(symbol->string 'Martin) ==> "martin"
+(symbol->string
+ (string->symbol "Malvina"))
+ ==> "Malvina"
+}
address@hidden format
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "symbols.c" "symbol-binding")
address@hidden docstring md5 "1bac963d15a7fb2bab4fb8d0b8923536"
address@hidden primitive symbol-binding o s
+Look up in @var{obarray} the symbol whose name is @var{string}, and
+return the value to which it is bound. If @var{obarray} is @code{#f},
+use the global symbol table. If @var{string} is not interned in
address@hidden, an error is signalled.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "symbols.c" "symbol-bound?")
address@hidden docstring md5 "7364a8dacf72876082091edad5dd76a1"
address@hidden primitive symbol-bound? o s
+Return @var{#t} if @var{obarray} contains a symbol with name
address@hidden bound to a defined value. This differs from
address@hidden in that the mere mention of a symbol usually causes
+it to be interned; @code{symbol-bound?} determines whether a symbol has
+been given any meaningful value.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "symbols.c" "symbol-fref")
address@hidden docstring md5 "6866703f22f515dc3dc9b68164c50025"
address@hidden primitive symbol-fref s
+Return the contents of @var{symbol}'s @dfn{function slot}.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "symbols.c" "symbol-fset!")
address@hidden docstring md5 "ea7fcb8a8a474030e181351bdfec85f4"
address@hidden primitive symbol-fset! s val
+Change the binding of @var{symbol}'s function slot.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "symbols.c" "symbol-hash")
address@hidden docstring md5 "1e7a307da0194d2035391c43d37adf0f"
address@hidden primitive symbol-hash s
+Return the hash value derived from @var{symbol}'s name, i.e. the integer
+index into @var{symbol}'s obarray at which it is stored.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "symbols.c" "symbol-interned?")
address@hidden docstring md5 "8601bd4112b45c15fd955f7b6c6b9f99"
address@hidden primitive symbol-interned? o s
+Return @var{#t} if @var{obarray} contains a symbol with name
address@hidden, and @var{#f} otherwise.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "symbols.c" "symbol-pref")
address@hidden docstring md5 "35c4765d77ebf0c79e79ade2abc2d4ca"
address@hidden primitive symbol-pref s
+Return the @dfn{property list} currently associated with @var{symbol}.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "symbols.c" "symbol-pset!")
address@hidden docstring md5 "b5f811343fdeb1fa528fa900ab6b716c"
address@hidden primitive symbol-pset! s val
+Change the binding of @var{symbol}'s property slot.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "symbols.c" "symbol-set!")
address@hidden docstring md5 "117772fbfd3456db3f4118289d9e6f98"
address@hidden primitive symbol-set! o s v
+Find the symbol in @var{obarray} whose name is @var{string}, and rebind
+it to @var{value}. An error is signalled if @var{string} is not present
+in @var{obarray}.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "symbols.c" "symbol?")
address@hidden docstring md5 "e6f53c2f2edad0570619f0a4ea2d1236"
address@hidden primitive symbol? obj
+Returns @t{#t} if @var{obj} is a symbol, otherwise returns @t{#f}. (r5rs)
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "symbols.c" "unintern-symbol")
address@hidden docstring md5 "b516213c408f616f54dd52c2247e5c60"
address@hidden primitive unintern-symbol o s
+Remove the symbol with name @var{string} from @var{obarray}. This
+function returns @code{#t} if the symbol was present and @code{#f}
+otherwise.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "variable.c" "builtin-variable")
address@hidden docstring md5 "ea24649749c765749dccd892972a5781"
address@hidden primitive builtin-variable name
+Return the built-in variable with the name NAME.
+NAME must be a symbol (not a string).
+Then use `variable-ref' to access its value.
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "variable.c"
"make-undefined-variable")
address@hidden docstring md5 "27a8052787d72807b1b39347cf71a239"
address@hidden primitive make-undefined-variable [name_hint]
+Return a variable object initialized to an undefined value.
+If given, uses NAME-HINT as its internal (debugging)
+name, otherwise just treat it as an anonymous variable.
+Remember, of course, that multiple bindings to the same
+variable may exist, so NAME-HINT is just that---a hint.
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "variable.c" "make-variable")
address@hidden docstring md5 "9f1f7b3b5a075161eebf33e09d94dd12"
address@hidden primitive make-variable init [name_hint]
+Return a variable object initialized to value INIT.
+If given, uses NAME-HINT as its internal (debugging)
+name, otherwise just treat it as an anonymous variable.
+Remember, of course, that multiple bindings to the same
+variable may exist, so NAME-HINT is just that---a hint.
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "variable.c" "variable-bound?")
address@hidden docstring md5 "f5c74c992d0727e5d98a062d9bb4dd7b"
address@hidden primitive variable-bound? var
+Return #t iff VAR is bound to a value.
+Throws an error if VAR is not a variable object.
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "variable.c" "variable-ref")
address@hidden docstring md5 "4a70f1da7eb469b203b9363a43018fcf"
address@hidden primitive variable-ref var
+Dereference VAR and return its value.
+VAR must be a variable object; see `make-variable' and
+`make-undefined-variable'
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "variable.c" "variable-set!")
address@hidden docstring md5 "79f0ba026d4a35f37436f36eef4d4740"
address@hidden primitive variable-set! var val
+Set the value of the variable VAR to VAL.
+VAR must be a variable object, VAL can be any value.
+Returns an unspecified value.
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "variable.c" "variable?")
address@hidden docstring md5 "249146390f269e1afb3c1e8ba287e567"
address@hidden primitive variable? obj
+Return #t iff OBJ is a variable object, else return #f
+
address@hidden deffn
+
+
address@hidden
@node Garbage Collection
@chapter Garbage Collection
@@ -6836,6 +7772,108 @@
@c docstring md5 "ccdd28b85ff0d1149b83159202141add"
@deffn primitive debug-object? obj
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "stacks.c" "frame-arguments")
address@hidden docstring md5 "0e1d1da9800a7868d9b28ae648cbebb5"
address@hidden primitive frame-arguments frame
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "stacks.c"
"frame-evaluating-args?")
address@hidden docstring md5 "69d29e30a00b7c245b71516d2995cf9a"
address@hidden primitive frame-evaluating-args? frame
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "stacks.c" "frame-next")
address@hidden docstring md5 "59fd4185c95528ad5ed90b8ed4315db8"
address@hidden primitive frame-next frame
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "stacks.c" "frame-number")
address@hidden docstring md5 "ca429cb78a9f0072ad415ce868b1ed8b"
address@hidden primitive frame-number frame
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "stacks.c" "frame-overflow?")
address@hidden docstring md5 "ee371fbee773071df8d29d39875f3ec4"
address@hidden primitive frame-overflow? frame
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "stacks.c" "frame-previous")
address@hidden docstring md5 "972cd2b0de5777ac57272c07ea0efdbd"
address@hidden primitive frame-previous frame
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "stacks.c" "frame-procedure")
address@hidden docstring md5 "0807ecc9cfde3d8612c683004ef7f2e9"
address@hidden primitive frame-procedure frame
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "stacks.c" "frame-procedure?")
address@hidden docstring md5 "4357341a9f96ec4ebdcfc946681b08bf"
address@hidden primitive frame-procedure? frame
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "stacks.c" "frame-real?")
address@hidden docstring md5 "6ef354bf37e30d927c438c0480cb7f31"
address@hidden primitive frame-real? frame
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "stacks.c" "frame-source")
address@hidden docstring md5 "32e6ea70754da59bc5cbbae9bde0bfc3"
address@hidden primitive frame-source frame
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "stacks.c" "frame?")
address@hidden docstring md5 "cf1b25c7d8f9b35150468335da74e091"
address@hidden primitive frame? obj
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "stacks.c" "last-stack-frame")
address@hidden docstring md5 "4fe4dc74ec1cbcce557b9dab5f3d2ca9"
address@hidden primitive last-stack-frame obj
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "stacks.c" "make-stack")
address@hidden docstring md5 "2bde281c4317494b0f3705af336d51b5"
address@hidden primitive make-stack obj . args
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "stacks.c" "stack-id")
address@hidden docstring md5 "ca763708b2d35b13cff3421efe361e81"
address@hidden primitive stack-id stack
+Return the identifier given to @var{stack} by @code{start-stack}.
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "stacks.c" "stack-length")
address@hidden docstring md5 "977273effa5d1a070514097dcf179162"
address@hidden primitive stack-length stack
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "stacks.c" "stack-ref")
address@hidden docstring md5 "aa2413be65039197778736baf3b20358"
address@hidden primitive stack-ref stack i
+
address@hidden deffn
+
address@hidden docstring begin (c-doc-string "stacks.c" "stack?")
address@hidden docstring md5 "e2ef84c92c9766418532de42c7d89ca1"
address@hidden primitive stack? obj
+Return @code{#t} if @var{obj} is a calling stack.
@end deffn
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- guile/guile-vm ChangeLog doc/Makefile.am vm/com...,
Keisuke Nishida <=