1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-04 11:10:27 +02:00
guile/module/system/vm
Andy Wingo e2fafeb901 Keywords have a tc7
* libguile/tags.h (scm_tc7_keyword): Allocate a tc7, so that the VM can
  have cheap keyword? tests.

* libguile/keywords.c:
* libguile/keywords.h: Adapt.

* libguile/goops.c (scm_class_of, scm_sys_goops_early_init): Capture
  <keyword>.

* libguile/print.c (iprin1): Inline keyword printer.

* libguile/evalext.c (scm_self_evaluating_p): Add keywords here.

* libguile/deprecated.h:
* libguile/deprecated.c (scm_tc16_keyword): Deprecate.

* module/language/cps/compile-bytecode.scm (compile-fun): Add keyword?
  case, and bitvector? case while we're at it.
* module/language/cps/effects-analysis.scm (define-primitive-effects):
  Add bytevector?, keyword?, and bitvector? cases.

* module/language/cps/primitives.scm (*branching-primcall-arities*): Add
  keyword?.

* module/language/cps/types.scm (bitvector?, keyword?, bytevector?): Add
  branch inferrers.

* module/language/tree-il/primitives.scm (*interesting-primitive-names*):
  (*effect-free-primitives*):
  (*effect+exception-free-primitives*): Add bytevector?, keyword?, and
  bitvector?.

* module/oop/goops.scm (<keyword>): New class.

* module/system/base/types.scm (%tc7-keyword, cell->object): Add cases.

* module/system/vm/assembler.scm (br-if-keyword): New definition.
* module/system/vm/disassembler.scm (code-annotation): Add br-if-tc7
  case for keywords.

* test-suite/tests/types.test ("clonable objects"): Update now that
  keywords are cloneable.
2015-01-22 13:03:11 +01:00
..
assembler.scm Keywords have a tc7 2015-01-22 13:03:11 +01:00
coverage.scm No more VM objects visible to Scheme 2013-11-21 16:45:03 +01:00
debug.scm Fix source-line-for-user for unknown line 2014-05-31 21:15:06 -04:00
disassembler.scm Keywords have a tc7 2015-01-22 13:03:11 +01:00
dwarf.scm Rename "RTL" to "bytecode" 2013-12-02 21:31:47 +01:00
elf.scm Add elf-symbol-value-offset, for properly relocating symtab entries 2014-02-16 15:58:44 +01:00
frame.scm Fix compute-predecessors bug in frame.scm 2014-05-31 21:15:05 -04:00
inspect.scm Remove assembly language. 2013-11-08 16:45:10 +01:00
linker.scm PT_DYNAMIC inside some other PT_LOAD segment 2014-02-17 14:15:34 +01:00
loader.scm Rename objcodes?.{scm,c,h} to loader.{scm,c,h} 2013-11-19 21:45:07 +01:00
program.scm Program printing tweaks 2014-05-04 22:41:48 +02:00
trace.scm frame-call-representation has #:top-frame? as keyword argument 2014-05-04 11:18:54 +02:00
trap-state.scm No more VM objects visible to Scheme 2013-11-21 16:45:03 +01:00
traps.scm Refactorings to apply-hook and push-continuation-hook 2014-05-04 14:09:42 +02:00
vm.scm Remove default soft stack limit; add call-with-stack-overflow-handler 2014-03-12 17:18:13 +01:00