[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] GNU Guile branch, wip-retagging, created. v2.1.0-27-g621
From: |
Andy Wingo |
Subject: |
[Guile-commits] GNU Guile branch, wip-retagging, created. v2.1.0-27-g62134ca |
Date: |
Tue, 15 Jan 2013 18:13:51 +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".
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=62134ca5e941e5dacd953e2c7aea75090a9fd5ee
The branch, wip-retagging has been created
at 62134ca5e941e5dacd953e2c7aea75090a9fd5ee (commit)
- Log -----------------------------------------------------------------
commit 62134ca5e941e5dacd953e2c7aea75090a9fd5ee
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
here.
commit 2fe300ae8d286e5c8e641dd08675d0a73c472b48
Author: Andy Wingo <address@hidden>
Date: Tue Jan 15 19:11:24 2013 +0100
remove scm_is_pair gcc hack
* libguile/pairs.h (scm_is_pair): Remove the (crufty!) GCC workaround,
as we no longer check the heap to see if something is a pair.
commit b071ce21474796c8a8b23599e67db88bd4716a76
Author: Andy Wingo <address@hidden>
Date: Tue Jan 15 19:03:18 2013 +0100
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/list.c (SCM_I_CONS):
* libguile/pairs.c (scm_cons):
* libguile/pairs.h (scm_is_pair):
* 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):
(scm_make_vtable_vtable):
* libguile/struct.h (SCM_STRUCTP, SCM_STRUCT_VTABLE_DATA):
(SCM_STRUCT_VTABLE_SLOTS):
* libguile/vm-i-scheme.c (make-struct): Adapt to struct tagging
changes.
* 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 03daea184e59235e5fc34750746332aaccb49f5d
Author: Andy Wingo <address@hidden>
Date: Tue Jan 15 18:29:59 2013 +0100
add SCM_HEAP_OBJECT_BASE
* 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.
-----------------------------------------------------------------------
hooks/post-receive
--
GNU Guile
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, wip-retagging, created. v2.1.0-27-g62134ca,
Andy Wingo <=