Skip to content
  • Andy Wingo's avatar
    Add disjoint syntax object type · 64c5cc58
    Andy Wingo authored
    * libguile/Makefile.am (libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES):
      (DOT_X_FILES, DOT_DOC_FILES, noinst_HEADERS): Add syntax.c and
      syntax.h.
    * libguile/evalext.c (scm_self_evaluating_p):
    * libguile/goops.c (class_syntax, scm_class_of, scm_goops_early_init):
    * libguile/init.c (scm_init_guile):
    * libguile/print.c (iprin1):
    * libguile/tags.h (scm_tc7_syntax):
    * module/oop/goops.scm (<syntax>):
    * module/system/base/types.scm (%tc7-syntax, cell->object):
    * module/system/vm/disassembler.scm (code-annotation): Wire up the new
      data type.
    * libguile/syntax.c:
    * libguile/syntax.h: New files.
    * module/ice-9/boot-9.scm: Move new definitions to (system syntax
      internal).
    * module/system/syntax.scm (print-syntax): New helper.
    * module/system/vm/assembler.scm (statically-allocatable?)
      (intern-constant, link-data): Arrange to be able to write syntax
      objects into images.
    * module/language/cps/types.scm (&syntax): New type.  Remove
      &hash-table; it was never detected, an internal binding, and we need
      the bit to avoid going into bignum territory.
    64c5cc58