This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 5/9] Rename "gsmob" in Guile interface to "gdb object"
- From: Andy Wingo <wingo at igalia dot com>
- To: gdb-patches at sourceware dot org
- Cc: Andy Wingo <wingo at igalia dot com>
- Date: Wed, 9 Apr 2014 18:08:38 +0200
- Subject: [PATCH 5/9] Rename "gsmob" in Guile interface to "gdb object"
- Authentication-results: sourceware.org; auth=none
- References: <1397059725-18066-1-git-send-email-wingo at igalia dot com>
* gdb/guile/scm-gsmob.c:
* gdb/guile/lib/gdb.scm (gdb-object-kind, gdb-object-property)
(set-gdb-object-property!, gdb-object-has-property?)
(gdb-object-properties): Rename from gsmob-kind, gsmob-property, etc.
The fact that these are SMOBs is a C implementation detail that should
not be exposed to Scheme.
* gdb/doc/guile.texi (GDB Scheme Data Types): Update the manual.
* gdb/testsuite/gdb.guile/scm-breakpoint.exp:
* gdb/testsuite/gdb.guile/scm-gsmob.exp: Adapt to renames.
---
gdb/doc/guile.texi | 37 +++++++++++++++---------------
gdb/guile/lib/gdb.scm | 12 +++++-----
gdb/guile/scm-gsmob.c | 30 ++++++++++++------------
gdb/testsuite/gdb.guile/scm-breakpoint.exp | 14 +++++------
gdb/testsuite/gdb.guile/scm-gsmob.exp | 14 +++++------
5 files changed, 53 insertions(+), 54 deletions(-)
diff --git a/gdb/doc/guile.texi b/gdb/doc/guile.texi
index 3f6580e..f7204e9 100644
--- a/gdb/doc/guile.texi
+++ b/gdb/doc/guile.texi
@@ -331,46 +331,45 @@ This is the string passed to @code{--target} when @value{GDBN} was configured.
@node GDB Scheme Data Types
@subsubsection GDB Scheme Data Types
-@cindex gdb smobs
+@cindex gdb objects
-@value{GDBN} uses Guile's @dfn{smob} (small object)
-data type for all @value{GDBN} objects
-(@pxref{Defining New Types (Smobs),,, guile, GNU Guile Reference Manual}).
-The smobs that @value{GDBN} provides are called @dfn{gsmobs}.
+The values exposed by @value{GDBN} to Guile are known as
+@dfn{@value{GDBN} objects}. There are several kinds of @value{GDBN}
+object, and each is disjoint from all other types known to Guile.
-@deffn {Scheme Procedure} gsmob-kind gsmob
-Return the kind of the gsmob, e.g., @code{<gdb:breakpoint>},
+@deffn {Scheme Procedure} gdb-object-kind object
+Return the kind of the @value{GDBN} object, e.g., @code{<gdb:breakpoint>},
as a symbol.
@end deffn
-Every @code{gsmob} provides a common set of functions for extending
-them in simple ways. Each @code{gsmob} has a list of properties,
-initially empty. These properties are akin to Guile's object properties,
-but are stored with the @code{gsmob}
+Every @value{GDBN} object provides a common set of functions for
+extending them in simple ways. Each @value{GDBN} object has a list of
+properties, initially empty. These properties are akin to Guile's
+object properties, but are stored with the @value{GDBN} object
(@pxref{Object Properties,,, guile, GNU Guile Reference Manual}).
Property names can be any @code{eq?}-able value, but it is recommended
that they be symbols.
-@deffn {Scheme Procedure} set-gsmob-property! gsmob property-name value
+@deffn {Scheme Procedure} set-gdb-object-property! object property-name value
Set the value of property @code{property-name} to value @code{value}.
The result is unspecified.
@end deffn
-@deffn {Scheme Procedure} gsmob-property gsmob property-name
+@deffn {Scheme Procedure} gdb-object-property object property-name
Return the value of property @code{property-name}.
If the property isn't present then @code{#f} is returned.
@end deffn
-@deffn {Scheme Procedure} gsmob-has-property? gsmob property-name
-Return @code{#t} if @code{gsmob} has property @code{property-name}.
+@deffn {Scheme Procedure} gdb-object-has-property? object property-name
+Return @code{#t} if @value{GDBN} object has property @code{property-name}.
Otherwise return @code{#f}.
@end deffn
-@deffn {Scheme Procedure} gsmob-properties gsmob
+@deffn {Scheme Procedure} gdb-object-properties object
Return an unsorted list of names of properties.
@end deffn
-@value{GDBN} defines the following Scheme smobs:
+@value{GDBN} defines the following object types:
@table @code
@item <gdb:arch>
@@ -425,8 +424,8 @@ Return an unsorted list of names of properties.
@xref{Values From Inferior In Guile}.
@end table
-The following gsmobs are managed internally so that the Scheme function
-@code{eq?} may be applied to them.
+The following @value{GDBN} objects are managed internally so that the
+Scheme function @code{eq?} may be applied to them.
@table @code
@item <gdb:arch>
diff --git a/gdb/guile/lib/gdb.scm b/gdb/guile/lib/gdb.scm
index 37f0934..396ccd2 100644
--- a/gdb/guile/lib/gdb.scm
+++ b/gdb/guile/lib/gdb.scm
@@ -270,13 +270,13 @@
make-pretty-printer-worker
pretty-printer-worker?
- ;; scm-smob.c
+ ;; scm-gsmob.c
- gsmob-kind
- gsmob-property
- set-gsmob-property!
- gsmob-has-property?
- gsmob-properties
+ gdb-object-kind
+ gdb-object-property
+ set-gdb-object-property!
+ gdb-object-has-property?
+ gdb-object-properties
<gdb:value>
<gdb:block>
diff --git a/gdb/guile/scm-gsmob.c b/gdb/guile/scm-gsmob.c
index 4c88ff9..1ca6af3 100644
--- a/gdb/guile/scm-gsmob.c
+++ b/gdb/guile/scm-gsmob.c
@@ -48,7 +48,7 @@
Gsmobs (and chained/eqable gsmobs) add an extra field that is used to
record extra data: "properties". It is a table of key/value pairs
- that can be set with set-gsmob-property!, gsmob-property. */
+ that can be set with set-gdb-object-property!, gdb-object-property. */
#include "defs.h"
#include "hashtab.h"
@@ -222,9 +222,9 @@ gsscm_get_gsmob_arg_unsafe (SCM self, int arg_pos, const char *func_name)
return self;
}
-/* (gsmob-kind gsmob) -> symbol
+/* (gdb-object-kind gsmob) -> symbol
- Note: While one might want to name this gsmob-class-name, it is named
+ Note: While one might want to name this gdb-object-class-name, it is named
"-kind" because smobs aren't real GOOPS classes. */
static SCM
@@ -246,7 +246,7 @@ gdbscm_gsmob_kind (SCM self)
return result;
}
-/* (gsmob-property gsmob property) -> object
+/* (gdb-object-property gsmob property) -> object
If property isn't present then #f is returned. */
static SCM
@@ -265,7 +265,7 @@ gdbscm_gsmob_property (SCM self, SCM property)
return scm_assq_ref (base->properties, property);
}
-/* (set-gsmob-property! gsmob property new-value) -> unspecified */
+/* (set-gdb-object-property! gsmob property new-value) -> unspecified */
static SCM
gdbscm_set_gsmob_property_x (SCM self, SCM property, SCM new_value)
@@ -306,7 +306,7 @@ gdbscm_set_gsmob_property_x (SCM self, SCM property, SCM new_value)
return SCM_UNSPECIFIED;
}
-/* (gsmob-has-property? gsmob property) -> boolean */
+/* (gdb-object-has-property? gsmob property) -> boolean */
static SCM
gdbscm_gsmob_has_property_p (SCM self, SCM property)
@@ -336,7 +336,7 @@ add_property_name (void *closure, SCM handle)
return SCM_UNSPECIFIED;
}
-/* (gsmob-properties gsmob) -> list
+/* (gdb-object-properties gsmob) -> list
The list is unsorted. */
static SCM
@@ -459,23 +459,23 @@ gdbscm_clear_eqable_gsmob_ptr_slot (htab_t htab, eqable_gdb_smob *base)
static const scheme_function gsmob_functions[] =
{
- { "gsmob-kind", 1, 0, 0, gdbscm_gsmob_kind,
+ { "gdb-object-kind", 1, 0, 0, gdbscm_gsmob_kind,
"\
-Return the kind of the smob, e.g., <gdb:breakpoint>, as a symbol." },
+Return the kind of the GDB object, e.g., <gdb:breakpoint>, as a symbol." },
- { "gsmob-property", 2, 0, 0, gdbscm_gsmob_property,
+ { "gdb-object-property", 2, 0, 0, gdbscm_gsmob_property,
"\
-Return the specified property of the gsmob." },
+Return the specified property of the GDB object." },
- { "set-gsmob-property!", 3, 0, 0, gdbscm_set_gsmob_property_x,
+ { "set-gdb-object-property!", 3, 0, 0, gdbscm_set_gsmob_property_x,
"\
-Set the specified property of the gsmob." },
+Set the specified property of the GDB object." },
- { "gsmob-has-property?", 2, 0, 0, gdbscm_gsmob_has_property_p,
+ { "gdb-object-has-property?", 2, 0, 0, gdbscm_gsmob_has_property_p,
"\
Return #t if the specified property is present." },
- { "gsmob-properties", 1, 0, 0, gdbscm_gsmob_properties,
+ { "gdb-object-properties", 1, 0, 0, gdbscm_gsmob_properties,
"\
Return an unsorted list of names of properties." },
diff --git a/gdb/testsuite/gdb.guile/scm-breakpoint.exp b/gdb/testsuite/gdb.guile/scm-breakpoint.exp
index b25d4e0..4e78791 100644
--- a/gdb/testsuite/gdb.guile/scm-breakpoint.exp
+++ b/gdb/testsuite/gdb.guile/scm-breakpoint.exp
@@ -310,14 +310,14 @@ proc test_bkpt_eval_funcs { } {
"(define set-bp-data-count! set-car!)" "" \
"(define bp-data-inf-i cdr)" "" \
"(define set-bp-data-inf-i! set-cdr!)" "" \
- "(define (bp-eval-count bkpt) (bp-data-count (gsmob-property bkpt 'bp-data)))" "" \
- "(define (bp-eval-inf-i bkpt) (bp-data-inf-i (gsmob-property bkpt 'bp-data)))" "" \
+ "(define (bp-eval-count bkpt) (bp-data-count (gdb-object-property bkpt 'bp-data)))" "" \
+ "(define (bp-eval-inf-i bkpt) (bp-data-inf-i (gdb-object-property bkpt 'bp-data)))" "" \
"(define (make-bp-eval location)" "" \
" (let ((bp (create-breakpoint! location)))" "" \
- " (set-gsmob-property! bp 'bp-data (make-bp-data))" "" \
+ " (set-gdb-object-property! bp 'bp-data (make-bp-data))" "" \
" (set-breakpoint-stop! bp" "" \
" (lambda (bkpt)" "" \
- " (let ((data (gsmob-property bkpt 'bp-data))" "" \
+ " (let ((data (gdb-object-property bkpt 'bp-data))" "" \
" (inf-i (parse-and-eval \"i\")))" "" \
" (set-bp-data-count! data (+ (bp-data-count data) 1))" "" \
" (set-bp-data-inf-i! data inf-i)" "" \
@@ -329,10 +329,10 @@ proc test_bkpt_eval_funcs { } {
"guile" "" \
"(define (make-bp-also-eval location)" "" \
" (let ((bp (create-breakpoint! location)))" "" \
- " (set-gsmob-property! bp 'bp-data (make-bp-data))" "" \
+ " (set-gdb-object-property! bp 'bp-data (make-bp-data))" "" \
" (set-breakpoint-stop! bp" "" \
" (lambda (bkpt)" "" \
- " (let* ((data (gsmob-property bkpt 'bp-data))" "" \
+ " (let* ((data (gdb-object-property bkpt 'bp-data))" "" \
" (count (+ (bp-data-count data) 1)))" "" \
" (set-bp-data-count! data count)" "" \
" (= count 9))))" "" \
@@ -343,7 +343,7 @@ proc test_bkpt_eval_funcs { } {
"guile" "" \
"(define (make-bp-basic location)" "" \
" (let ((bp (create-breakpoint! location)))" "" \
- " (set-gsmob-property! bp 'bp-data (make-bp-data))" "" \
+ " (set-gdb-object-property! bp 'bp-data (make-bp-data))" "" \
" bp))" "" \
"end" ""
diff --git a/gdb/testsuite/gdb.guile/scm-gsmob.exp b/gdb/testsuite/gdb.guile/scm-gsmob.exp
index 470afc4..e33d0e1 100644
--- a/gdb/testsuite/gdb.guile/scm-gsmob.exp
+++ b/gdb/testsuite/gdb.guile/scm-gsmob.exp
@@ -45,17 +45,17 @@ proc prop_name { i } {
# Set and ref the properties in separate loops to verify previously set
# properties are not lost when we set a new property or switch to htabs.
for {set i 0} {$i <= $SMOB_PROP_HTAB_THRESHOLD} {incr i} {
- gdb_test "gu (print (gsmob-has-property? arch '[prop_name $i]))" \
+ gdb_test "gu (print (gdb-object-has-property? arch '[prop_name $i]))" \
"= #f" "property prop$i not present before set"
- gdb_test_no_output "gu (set-gsmob-property! arch '[prop_name $i] $i)" \
+ gdb_test_no_output "gu (set-gdb-object-property! arch '[prop_name $i] $i)" \
"set prop $i"
- gdb_test "gu (print (gsmob-has-property? arch '[prop_name $i]))" \
+ gdb_test "gu (print (gdb-object-has-property? arch '[prop_name $i]))" \
"= #t" "property prop$i present after set"
}
for {set i 0} {$i <= $SMOB_PROP_HTAB_THRESHOLD} {incr i} {
- gdb_test "gu (print (gsmob-has-property? arch '[prop_name $i]))" \
+ gdb_test "gu (print (gdb-object-has-property? arch '[prop_name $i]))" \
"= #t" "property prop$i present after all set"
- gdb_test "gu (print (gsmob-property arch '[prop_name $i]))" \
+ gdb_test "gu (print (gdb-object-property arch '[prop_name $i]))" \
"= $i" "ref prop $i"
}
@@ -66,5 +66,5 @@ for {set i 0} {$i <= $SMOB_PROP_HTAB_THRESHOLD} {incr i} {
}
set prop_list [lsort $prop_list]
verbose -log "prop_list: $prop_list"
-gdb_test "gu (print (sort (gsmob-properties arch) (lambda (a b) (string<? (symbol->string a) (symbol->string b)))))" \
- "= \\($prop_list\\)" "gsmob-properties"
+gdb_test "gu (print (sort (gdb-object-properties arch) (lambda (a b) (string<? (symbol->string a) (symbol->string b)))))" \
+ "= \\($prop_list\\)" "gdb-object-properties"
--
1.9.1