[7/9] Remove Guile mark functions that don't mark anything
Commit Message
* gdb/guile/scm-arch.c (arscm_mark_arch_smob):
* gdb/guile/scm-block.c (bkscm_mark_block_smob)
(bkscm_mark_block_syms_progress_smob):
* gdb/guile/scm-frame.c (frscm_mark_frame_smob):
* gdb/guile/scm-lazy-string.c (arscm_mark_arch_smob):
* gdb/guile/scm-symbol.c (lsscm_mark_lazy_string_smob):
* gdb/guile/scm-symtab.c (syscm_mark_symbol_smob):
* gdb/guile/scm-type.c (tyscm_mark_type_smob): Remove useless mark
functions.
---
gdb/guile/scm-arch.c | 9 ---------
gdb/guile/scm-block.c | 19 -------------------
gdb/guile/scm-frame.c | 9 ---------
gdb/guile/scm-lazy-string.c | 9 ---------
gdb/guile/scm-symbol.c | 9 ---------
gdb/guile/scm-symtab.c | 9 ---------
gdb/guile/scm-type.c | 9 ---------
7 files changed, 73 deletions(-)
Comments
Andy Wingo <wingo@igalia.com> writes:
> * gdb/guile/scm-arch.c (arscm_mark_arch_smob):
> * gdb/guile/scm-block.c (bkscm_mark_block_smob)
> (bkscm_mark_block_syms_progress_smob):
> * gdb/guile/scm-frame.c (frscm_mark_frame_smob):
> * gdb/guile/scm-lazy-string.c (arscm_mark_arch_smob):
> * gdb/guile/scm-symbol.c (lsscm_mark_lazy_string_smob):
> * gdb/guile/scm-symtab.c (syscm_mark_symbol_smob):
> * gdb/guile/scm-type.c (tyscm_mark_type_smob): Remove useless mark
> functions.
> ---
> gdb/guile/scm-arch.c | 9 ---------
> gdb/guile/scm-block.c | 19 -------------------
> gdb/guile/scm-frame.c | 9 ---------
> gdb/guile/scm-lazy-string.c | 9 ---------
> gdb/guile/scm-symbol.c | 9 ---------
> gdb/guile/scm-symtab.c | 9 ---------
> gdb/guile/scm-type.c | 9 ---------
> 7 files changed, 73 deletions(-)
This is ok with the requisite changelog entry corrections.
These functions were useful during early development, but I guess we're
passed that point now.
On Sat 12 Apr 2014 21:29, Doug Evans <xdje42@gmail.com> writes:
> Andy Wingo <wingo@igalia.com> writes:
>
>> * gdb/guile/scm-arch.c (arscm_mark_arch_smob):
>> * gdb/guile/scm-block.c (bkscm_mark_block_smob)
>> (bkscm_mark_block_syms_progress_smob):
>> * gdb/guile/scm-frame.c (frscm_mark_frame_smob):
>> * gdb/guile/scm-lazy-string.c (arscm_mark_arch_smob):
>> * gdb/guile/scm-symbol.c (lsscm_mark_lazy_string_smob):
>> * gdb/guile/scm-symtab.c (syscm_mark_symbol_smob):
>> * gdb/guile/scm-type.c (tyscm_mark_type_smob): Remove useless mark
>> functions.
>> ---
>> gdb/guile/scm-arch.c | 9 ---------
>> gdb/guile/scm-block.c | 19 -------------------
>> gdb/guile/scm-frame.c | 9 ---------
>> gdb/guile/scm-lazy-string.c | 9 ---------
>> gdb/guile/scm-symbol.c | 9 ---------
>> gdb/guile/scm-symtab.c | 9 ---------
>> gdb/guile/scm-type.c | 9 ---------
>> 7 files changed, 73 deletions(-)
>
> This is ok with the requisite changelog entry corrections.
>
> These functions were useful during early development, but I guess we're
> passed that point now.
Just FYI, mark functions are actively harmful, and should be avoided if
possible. They slow down allocation, slow down GC, and, more
importantly, are very tricky to write correctly. See:
https://lists.gnu.org/archive/html/guile-user/2011-11/msg00069.html
Regards,
Andy
On Thu, Apr 17, 2014 at 2:48 AM, Andy Wingo <wingo@igalia.com> wrote:
> Just FYI, mark functions are actively harmful, and should be avoided if
> possible. They slow down allocation, slow down GC, and, more
> importantly, are very tricky to write correctly. See:
>
> https://lists.gnu.org/archive/html/guile-user/2011-11/msg00069.html
This sounds like it's *critical* to document somewhere in the Guile
docs, at least including the smob writer docs. Did I miss it?
On Sun 20 Apr 2014 21:34, Doug Evans <xdje42@gmail.com> writes:
> On Thu, Apr 17, 2014 at 2:48 AM, Andy Wingo <wingo@igalia.com> wrote:
>> Just FYI, mark functions are actively harmful, and should be avoided if
>> possible. They slow down allocation, slow down GC, and, more
>> importantly, are very tricky to write correctly. See:
>>
>> https://lists.gnu.org/archive/html/guile-user/2011-11/msg00069.html
>
> This sounds like it's *critical* to document somewhere in the Guile
> docs, at least including the smob writer docs. Did I miss it?
Yes, you are right. I will work on documenting it.
Andy
Doug Evans <xdje42@gmail.com> skribis:
> On Thu, Apr 17, 2014 at 2:48 AM, Andy Wingo <wingo@igalia.com> wrote:
>> Just FYI, mark functions are actively harmful, and should be avoided if
>> possible. They slow down allocation, slow down GC, and, more
>> importantly, are very tricky to write correctly. See:
>>
>> https://lists.gnu.org/archive/html/guile-user/2011-11/msg00069.html
>
> This sounds like it's *critical* to document somewhere in the Guile
> docs, at least including the smob writer docs. Did I miss it?
I tried a bit of that for 2.0.10 in response to a discussion we had:
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=f07c349eb38d6c7b160b8980fc4007fb502e3433
Ludo’.
@@ -45,14 +45,6 @@ static int arscm_is_arch (SCM);
/* Administrivia for arch smobs. */
-/* The smob "mark" function for <gdb:arch>. */
-
-static SCM
-arscm_mark_arch_smob (SCM self)
-{
- return SCM_BOOL_F;
-}
-
/* The smob "print" function for <gdb:arch>. */
static int
@@ -651,7 +643,6 @@ void
gdbscm_initialize_arches (void)
{
arch_smob_tag = gdbscm_make_smob_type (arch_smob_name, sizeof (arch_smob));
- scm_set_smob_mark (arch_smob_tag, arscm_mark_arch_smob);
scm_set_smob_print (arch_smob_tag, arscm_print_arch_smob);
gdbscm_define_functions (arch_functions, 1);
@@ -117,14 +117,6 @@ bkscm_objfile_block_map (struct objfile *objfile)
return htab;
}
-/* The smob "mark" function for <gdb:block>. */
-
-static SCM
-bkscm_mark_block_smob (SCM self)
-{
- return SCM_BOOL_F;
-}
-
/* The smob "free" function for <gdb:block>. */
static size_t
@@ -529,14 +521,6 @@ gdbscm_block_symbols (SCM self)
/* The <gdb:block-symbols-iterator> object,
for iterating over all symbols in a block. */
-/* The smob "mark" function for <gdb:block-symbols-iterator>. */
-
-static SCM
-bkscm_mark_block_syms_progress_smob (SCM self)
-{
- return SCM_BOOL_F;
-}
-
/* The smob "print" function for <gdb:block-symbols-iterator>. */
static int
@@ -787,15 +771,12 @@ gdbscm_initialize_blocks (void)
{
block_smob_tag
= gdbscm_make_smob_type (block_smob_name, sizeof (block_smob));
- scm_set_smob_mark (block_smob_tag, bkscm_mark_block_smob);
scm_set_smob_free (block_smob_tag, bkscm_free_block_smob);
scm_set_smob_print (block_smob_tag, bkscm_print_block_smob);
block_syms_progress_smob_tag
= gdbscm_make_smob_type (block_syms_progress_smob_name,
sizeof (block_syms_progress_smob));
- scm_set_smob_mark (block_syms_progress_smob_tag,
- bkscm_mark_block_syms_progress_smob);
scm_set_smob_print (block_syms_progress_smob_tag,
bkscm_print_block_syms_progress_smob);
@@ -130,14 +130,6 @@ frscm_inferior_frame_map (struct inferior *inferior)
return htab;
}
-/* The smob "mark" function for <gdb:frame>. */
-
-static SCM
-frscm_mark_frame_smob (SCM self)
-{
- return SCM_BOOL_F;
-}
-
/* The smob "free" function for <gdb:frame>. */
static size_t
@@ -1058,7 +1050,6 @@ gdbscm_initialize_frames (void)
{
frame_smob_tag
= gdbscm_make_smob_type (frame_smob_name, sizeof (frame_smob));
- scm_set_smob_mark (frame_smob_tag, frscm_mark_frame_smob);
scm_set_smob_free (frame_smob_tag, frscm_free_frame_smob);
scm_set_smob_print (frame_smob_tag, frscm_print_frame_smob);
@@ -60,14 +60,6 @@ static scm_t_bits lazy_string_smob_tag;
/* Administrivia for lazy string smobs. */
-/* The smob "mark" function for <gdb:lazy-string>. */
-
-static SCM
-lsscm_mark_lazy_string_smob (SCM self)
-{
- return SCM_BOOL_F;
-}
-
/* The smob "free" function for <gdb:lazy-string>. */
static size_t
@@ -358,7 +350,6 @@ gdbscm_initialize_lazy_strings (void)
{
lazy_string_smob_tag = gdbscm_make_smob_type (lazy_string_smob_name,
sizeof (lazy_string_smob));
- scm_set_smob_mark (lazy_string_smob_tag, lsscm_mark_lazy_string_smob);
scm_set_smob_free (lazy_string_smob_tag, lsscm_free_lazy_string_smob);
scm_set_smob_print (lazy_string_smob_tag, lsscm_print_lazy_string_smob);
@@ -95,14 +95,6 @@ syscm_objfile_symbol_map (struct symbol *symbol)
return htab;
}
-/* The smob "mark" function for <gdb:symbol>. */
-
-static SCM
-syscm_mark_symbol_smob (SCM self)
-{
- return SCM_BOOL_F;
-}
-
/* The smob "free" function for <gdb:symbol>. */
static size_t
@@ -756,7 +748,6 @@ gdbscm_initialize_symbols (void)
{
symbol_smob_tag
= gdbscm_make_smob_type (symbol_smob_name, sizeof (symbol_smob));
- scm_set_smob_mark (symbol_smob_tag, syscm_mark_symbol_smob);
scm_set_smob_free (symbol_smob_tag, syscm_free_symbol_smob);
scm_set_smob_print (symbol_smob_tag, syscm_print_symbol_smob);
@@ -119,14 +119,6 @@ stscm_objfile_symtab_map (struct symtab *symtab)
return htab;
}
-/* The smob "mark" function for <gdb:symtab>. */
-
-static SCM
-stscm_mark_symtab_smob (SCM self)
-{
- return SCM_BOOL_F;
-}
-
/* The smob "free" function for <gdb:symtab>. */
static size_t
@@ -706,7 +698,6 @@ gdbscm_initialize_symtabs (void)
{
symtab_smob_tag
= gdbscm_make_smob_type (symtab_smob_name, sizeof (symtab_smob));
- scm_set_smob_mark (symtab_smob_tag, stscm_mark_symtab_smob);
scm_set_smob_free (symtab_smob_tag, stscm_free_symtab_smob);
scm_set_smob_print (symtab_smob_tag, stscm_print_symtab_smob);
@@ -178,14 +178,6 @@ tyscm_type_map (struct type *type)
return htab;
}
-/* The smob "mark" function for <gdb:type>. */
-
-static SCM
-tyscm_mark_type_smob (SCM self)
-{
- return SCM_BOOL_F;
-}
-
/* The smob "free" function for <gdb:type>. */
static size_t
@@ -1471,7 +1463,6 @@ void
gdbscm_initialize_types (void)
{
type_smob_tag = gdbscm_make_smob_type (type_smob_name, sizeof (type_smob));
- scm_set_smob_mark (type_smob_tag, tyscm_mark_type_smob);
scm_set_smob_free (type_smob_tag, tyscm_free_type_smob);
scm_set_smob_print (type_smob_tag, tyscm_print_type_smob);
scm_set_smob_equalp (type_smob_tag, tyscm_equal_p_type_smob);