[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] GNU Guile branch, wip-retagging, created. v2.1.0-41-ge79

From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, wip-retagging, created. v2.1.0-41-ge791502
Date: Mon, 24 Oct 2011 17:06:47 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

The branch, wip-retagging has been created
        at  e791502eeb5b1e77505e0c9c20995e33e649daa1 (commit)

- Log -----------------------------------------------------------------
commit e791502eeb5b1e77505e0c9c20995e33e649daa1
Author: Andy Wingo <address@hidden>
Date:   Mon Oct 24 18:45:41 2011 +0200

    squirrely smob marking refactor
    * libguile/smob.c (smob_mark): No idea what the right thing is to do

commit 9d8764a88cf8407de715631b89650c60e26f60fe
Author: Andy Wingo <address@hidden>
Date:   Mon Oct 24 18:44:38 2011 +0200

    redo the SCM tagging strategy
    Currently failing some guardian tests.
    * libguile/tags.h: Refactor tagging so that tc3 bits for a pair live in
      the SCM value, not in the heap words.  Do the same for structs.  This
      more rational tagging strategy will make native code generation
      easier.  Note that this means that to check a heap pointer for its
      type, you first have to ensure that it has the expected tc3, as not
      all the type bits are on the heap.
      (SCM_TYP3): Check the SCM tag type, not the bits in the cell.
      (SCM_HAS_TYP3): New helper.
      (SCM_I_CONSP): Redefine to just check the typ3.
      (scm_tcs_cons_imcar, scm_tcs_cons_nimcar, scm_tcs_struct): Remove, as
      they are no longer necessary.
    * libguile/array-handle.c (scm_i_array_implementation_for_obj): Check
      for heap objects before checking type bits, so we don't check pairs.
    * libguile/evalext.c (scm_self_evaluating_p):
    * libguile/gc.c (scm_i_tag_name):
    * libguile/goops.c (scm_class_of)
    * libguile/hash.c (scm_hasher):
    * libguile/print.c (iprin1): Adapt to tagging changes.
    * libguile/gc.c (scm_storage_prehistory): Register all displacements
      here.  There are the same displacements as before, unfortunately.
    * libguile/inline.h (scm_is_pair): Remove the (crufty!) GCC workaround,
      as we no longer check the heap to see if something is a pair.
    * libguile/list.c (SCM_I_CONS):
    * libguile/pairs.c (scm_cons):
    * libguile/vm-engine.h (CONS): Tag pairs with scm_tc3_pair.
    * libguile/modules.c (scm_post_boot_init_modules):
    * libguile/modules.h (SCM_MODULEP):
    * libguile/struct.c (struct_finalizer_trampoline, scm_i_alloc_struct):
    * libguile/struct.h (SCM_STRUCTP, SCM_STRUCT_VTABLE_DATA):
    * libguile/vm-i-scheme.c (make-struct): Adapt to struct tagging
    * libguile/numbers.h (SCM_I_INUMP):
    * module/rnrs/arithmetic/fixnums.scm (fixnum?, inline-fixnum?): Adapt
      to the new fixnum tag.
    * libguile/numbers.h (SCM_INEXACTP): Make sure of the tc3 before looking
      at the cell type.

commit 8b33752be7950b66bf0007e282eae3d13502f445
Author: Andy Wingo <address@hidden>
Date:   Mon Oct 24 18:29:45 2011 +0200

    slight scm_procedure_p, scm_i_procedure_arity refactor
    * libguile/procs.c (scm_procedure_p):
    * libguile/procprop.c (scm_i_procedure_arity): Refactor.

commit cf4c26625b901e3550c80bbf53c13189582f57a6
Author: Andy Wingo <address@hidden>
Date:   Mon Oct 24 18:28:24 2011 +0200

    remove CELL_P macro
    * libguile/private-gc.h: Remove private CELL_P macro.

commit 47ed8656db8800f3ad20a40eb2c4e9ef3dc891e3
Author: Andy Wingo <address@hidden>
Date:   Mon Oct 24 18:22:35 2011 +0200

    * libguile/tags.h (SCM_HEAP_OBJECT_BASE): New macro.  Given a SCM,
      returns a pointer to the start of its memory area on the heap.
    * libguile/bytevectors.c:
    * libguile/fluids.c:
    * libguile/foreign.c:
    * libguile/gc.h:
    * libguile/guardians.c:
    * libguile/numbers.h:
    * libguile/ports.c:
    * libguile/smob.c:
    * libguile/struct.c:
    * libguile/weak-set.c:
    * libguile/weak-table.c:
    * libguile/weak-vector.c: Use it.

commit 8c5bb72920a41d165726a1b5a610d823971f1ca8
Author: Andy Wingo <address@hidden>
Date:   Mon Oct 24 18:13:51 2011 +0200

    * libguile/tags.h (SCM_HEAP_OBJECT_P): New macro, an alias for
    * libguile/arrays.c:
    * libguile/debug.c:
    * libguile/foreign.c:
    * libguile/gdbint.c:
    * libguile/guardians.c:
    * libguile/list.c:
    * libguile/modules.c:
    * libguile/options.c:
    * libguile/smob.c:
    * libguile/validate.h:
    * libguile/weak-set.c:
    * libguile/weak-table.c:
    * libguile/weak-vector.c: Use it instead of SCM_NIMP or !SCM_IMP.

commit fdecb44f3252e47ee98d95f3fe473ff898ddf27e
Author: Andy Wingo <address@hidden>
Date:   Mon Oct 24 17:59:23 2011 +0200

    boot_closure_print cleanup
    * libguile/eval.c (boot_closure_print): Get at the bits directly.

commit 21041372ed4a3c837f6d16149648508d49b4b2e2
Author: Andy Wingo <address@hidden>
Date:   Mon Oct 24 17:58:22 2011 +0200

    * libguile/tags.h (SCM_UNPACK_POINTER, SCM_PACK_POINTER): New macros.
      The old SCM2PTR and PTR2SCM were defined in such a way that
      round-tripping through a pointer could lose precision, even in the
      case in which you weren't interested in actually dereferencing the
      pointer, it was simply that you needed to plumb a SCM through APIs
      that take pointers.  These new macros are more like SCM_PACK and
      SCM_UNPACK, but for pointer types.  The bit representation of the
      pointer should be the same as the scm_t_bits representation.
    * libguile/gc.h (PTR2SCM, SCM2PTR): Remove support for (old) UNICOS
      pointers.  We are going to try tagging the SCM object itself in the
      future, and I don't think that keeping this support is worth its
      cost.  It probably doesn't work anyway.
    * libguile/backtrace.c:
    * libguile/bytevectors.c:
    * libguile/continuations.c:
    * libguile/fluids.c:
    * libguile/foreign.c:
    * libguile/gc.h:
    * libguile/guardians.c:
    * libguile/hashtab.c:
    * libguile/load.c:
    * libguile/numbers.c:
    * libguile/ports.c:
    * libguile/smob.c:
    * libguile/strings.c:
    * libguile/symbols.c:
    * libguile/vm.c:
    * libguile/weak-set.c:
    * libguile/weak-table.c:
    * libguile/weak-vector.c: Update many sites to use the new macros.

commit dc7da0be90d6033d512f9772894179970af678e7
Author: Andy Wingo <address@hidden>
Date:   Mon Oct 24 17:34:47 2011 +0200

    refactor tc7 and tc16 checks
    * libguile/tags.h (SCM_HAS_TYP7, SCM_HAS_TYP7S, SCM_HAS_TYP16): New
    * libguile/bytevectors.h (SCM_BYTEVECTOR_P):
    * libguile/control.h (SCM_PROMPT_P):
    * libguile/filesys.h (SCM_DIRP):
    * libguile/fluids.h (SCM_WITH_FLUIDS_P, SCM_FLUID_P)
    * libguile/foreign.h (SCM_POINTER_P):
    * libguile/fports.h (SCM_FPORTP):
    * libguile/frames.h (SCM_VM_FRAME_P):
    * libguile/hashtab.h (SCM_HASHTABLE_P):
    * libguile/inline.h (scm_get_byte_or_eof):
    * libguile/numbers.h (SCM_REALP, SCM_BIGP, SCM_COMPLEXP, SCM_FRACTIONP):
    * libguile/objcodes.h (SCM_OBJCODE_P):
    * libguile/ports.h (SCM_OUTPUT_PORT_P):
    * libguile/programs.h (SCM_PROGRAM_P):
    * libguile/smob.h (SCM_SMOB_PREDICATE):
    * libguile/srfi-14.h (SCM_CHARSETP):
    * libguile/strings.c (IS_STRING):
    * libguile/strports.h (SCM_STRPORTP):
    * libguile/symbols.h (scm_is_symbol):
    * libguile/variable.h (SCM_VARIABLEP):
    * libguile/vectors.h (SCM_I_IS_VECTOR, SCM_I_IS_NONWEAK_VECTOR):
    * libguile/vm-i-system.c (call, tail-call, mv-call)
    * libguile/vm.h (SCM_VM_P, SCM_VM_CONT_P):
    * libguile/weak-set.c (SCM_WEAK_SET_P):
    * libguile/weak-table.c (SCM_WEAK_TABLE_P):
    * libguile/weak-vector.h (SCM_I_WVECTP): Use them.

commit 62fdadb0a5f10ff34c7e19ac299aa89d950ffc69
Author: Andy Wingo <address@hidden>
Date:   Mon Oct 24 17:22:47 2011 +0200

    check for pairs with scm_is_pair, not scm_nimp
    * libguile/array-map.c (scm_ra_matchp, scm_ramapc):
    * libguile/dynwind.c (scm_swap_bindings):
    * libguile/hooks.c (hook_print, scm_c_run_hook, scm_c_run_hookn):
    * libguile/objprop.c (scm_object_property, scm_set_object_property_x):
      Use !scm_is_pair as the termination condition, not scm_imp.

commit 8c0e89ac9093aee52620bbdbec07936532f05f3d
Author: Andy Wingo <address@hidden>
Date:   Mon Oct 24 17:14:27 2011 +0200

    de-inline cons in scm_acons
    * libguile/alist.c (scm_acons): Don't inline the conses.


GNU Guile

reply via email to

[Prev in Thread] Current Thread [Next in Thread]