Add safepoint mechanism
[sbcl.git] / src / code / early-impl.lisp
1 ;;;; This software is part of the SBCL system. See the README file for
2 ;;;; more information.
3 ;;;;
4 ;;;; This software is derived from the CMU CL system, which was
5 ;;;; written at Carnegie Mellon University and released into the
6 ;;;; public domain. The software is in the public domain and is
7 ;;;; provided with absolutely no warranty. See the COPYING and CREDITS
8 ;;;; files for more information.
9
10 (in-package "SB!IMPL")
11
12 ;;; entries in STATIC-SYMBOLS table, references to which can be compiled
13 ;;; as though they're special variables
14 ;;;
15 ;;; FIXME: These should be listed once and only once, instead of
16 ;;; listed here and then listed separately (and by now, 2001-06-06,
17 ;;; slightly differently) elsewhere.
18 (declaim (special *posix-argv*
19                   *core-string*
20                   *stdin*
21                   *stdout*
22                   *stderr*
23                   *tty*
24                   *read-only-space-free-pointer*
25                   sb!vm:*static-space-free-pointer*
26                   sb!vm::*current-catch-block*
27                   sb!vm::*current-unwind-protect-block*
28                   sb!vm::*alien-stack*
29                   sb!vm::*control-stack-start*
30                   sb!vm::*control-stack-end*
31                   sb!vm::*binding-stack-start*
32                   ;; FIXME: The pseudo-atomic variable stuff should be
33                   ;; conditional on :SB-PSEUDO-ATOMIC-SYMBOLS, which
34                   ;; should be conditional on :X86, instead of the
35                   ;; pseudo-atomic stuff being directly conditional on
36                   ;; :X86. (Note that non-X86 ports mention
37                   ;; pseudo-atomicity too, but they handle it without
38                   ;; messing with special variables.)
39                   #!+(or x86 x86-64) *pseudo-atomic-bits*
40                   #!+(or hpux) sb!vm::*c-lra*
41                   *allow-with-interrupts*
42                   sb!unix::*unblock-deferrables-on-enabling-interrupts-p*
43                   *interrupts-enabled*
44                   *interrupt-pending*
45                   #!+sb-safepoint *gc-safe*
46                   #!+sb-safepoint *in-safepoint*
47                   *free-interrupt-context-index*
48                   sb!kernel::*gc-epoch*
49                   sb!vm::*unwind-to-frame-function*
50                   sb!vm::*allocation-pointer*
51                   sb!vm::*binding-stack-pointer*
52                   sb!vm::*fp-constant-0d0*
53                   sb!vm::*fp-constant-1d0*
54                   sb!vm::*fp-constant-0f0*
55                   sb!vm::*fp-constant-1f0*
56                   sb!vm::*fp-constant-0l0*
57                   sb!vm::*fp-constant-1l0*
58                   sb!vm::*fp-constant-pi*
59                   sb!vm::*fp-constant-l2t*
60                   sb!vm::*fp-constant-l2e*
61                   sb!vm::*fp-constant-lg2*
62                   sb!vm::*fp-constant-ln2*
63                   sb!vm:*alloc-signal*
64                   sb!pcl::..slot-unbound..
65                   sb!pcl::*cache-miss-values-stack*
66                   sb!pcl::*dfun-miss-gfs-on-stack*))