[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: on coding a portable R6RS package supporting Guile and its FFI
From: |
Andy Wingo |
Subject: |
Re: on coding a portable R6RS package supporting Guile and its FFI |
Date: |
Wed, 06 Feb 2013 11:57:56 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) |
On Tue 05 Feb 2013 23:31, address@hidden (Ludovic Courtès) writes:
> This would be less of a problem if we had “immediate pointers” [0].
> Would the retagging in 2.1 allow this?
The tc3 itag allocation in wip-retagging is:
* tc3:
* 000: A heap object with a tag word on the heap
* 001: Some other immediate
* 010: A pair
* 011: Small integer (odd)
* 100: (Unallocated tc3.)
* 101: (Unallocated tc3.)
* 110: A struct
* 111: Small integer (even)
And SCM_IMP is:
#define SCM_IMP(x) (1 & SCM_UNPACK (x))
So perhaps 101 could be an immediate pointer. Dunno. Pretty nasty
stuff!
> (At FOSDEM, Luca Saiu rightfully noted that we could use 4-bit tags
> instead of 3-bit tags on 64-bit arches, which would give us the needed
> room here.)
GC_malloc still returns eight-byte aligned memory hunks on 64-bit, no?
Andy
--
http://wingolog.org/