Add support for static allocation of cells, strings and stringbufs.
authorLudovic Courtès <ludo@gnu.org>
Tue, 13 Jan 2009 23:05:23 +0000 (00:05 +0100)
committerLudovic Courtès <ludo@gnu.org>
Tue, 13 Jan 2009 23:05:23 +0000 (00:05 +0100)
commitc6054feaf03f8bde236f5e45a946f38827074923
treecfcc82e1ca81d9852ea4ac40a02937740d8b41dc
parent35920c00a8f9c3140005e612a393977a0d5d138d
Add support for static allocation of cells, strings and stringbufs.

* libguile/__scm.h (SCM_ALIGNED): New macro.

* libguile/_scm.h: Include "libguile/strings.h", to make the
  string/stringbuf-related constants visible to snarffed code.

* libguile/snarf.h (SCM_SUPPORT_STATIC_ALLOCATION): New macro.
  (SCM_SYMBOL, SCM_GLOBAL_SYMBOL)[SCM_SUPPORT_STATIC_ALLOCATION]: New
  alternative versions of these macros with support for (almost) static
  allocation via the use of `string->symbol'.
  (SCM_IMMUTABLE_DOUBLE_CELL, SCM_IMMUTABLE_STRINGBUF,
  SCM_IMMUTABLE_STRING): New macros.

* libguile/tags.h (SCM)[SCM_DEBUG_TYPING_STRICTNESS==1]: Use a pointer
  type that is compatible with other pointer types, to avoid potential
  violation of strict aliasing rules.
libguile/__scm.h
libguile/_scm.h
libguile/snarf.h
libguile/tags.h