diff options
author | Andy Wingo <wingo@pobox.com> | 2015-01-19 16:57:42 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2015-01-22 13:03:11 +0100 |
commit | e2fafeb9012cbe5e3ec63326692a4cc3a22c318e (patch) | |
tree | c056156667ddc699727789114a75f1589a66237f /test-suite/tests/types.test | |
parent | 27b3b5b92d22cbf672d5b0ad20b4efe6cfa80ecf (diff) | |
download | guile-e2fafeb9012cbe5e3ec63326692a4cc3a22c318e.tar.gz |
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.
Diffstat (limited to 'test-suite/tests/types.test')
-rw-r--r-- | test-suite/tests/types.test | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/test-suite/tests/types.test b/test-suite/tests/types.test index ea71d3ceb..c68262bdc 100644 --- a/test-suite/tests/types.test +++ b/test-suite/tests/types.test @@ -1,6 +1,6 @@ ;;;; types.test --- Type tag decoding. -*- mode: scheme; coding: utf-8; -*- ;;;; -;;;; Copyright (C) 2014 Free Software Foundation, Inc. +;;;; Copyright (C) 2014, 2015 Free Software Foundation, Inc. ;;;; ;;;; This file is part of GNU Guile. ;;;; @@ -48,7 +48,7 @@ 42 (expt 2 28) 3.14 "narrow string" "wide στρινγ" 'symbol 'λ - ;; NB: keywords are SMOBs. + #:keyword #:λ '(2 . 3) (iota 123) '(1 (two ("three"))) #(1 2 3) #(foo bar baz) #vu8(255 254 253) @@ -98,7 +98,6 @@ (with-test-prefix "opaque objects" (test-inferior-objects ((make-guardian) smob (? integer?)) - (#:keyword smob (? integer?)) ((%make-void-port "w") port (? integer?)) ((open-input-string "hello") port (? integer?)) ((lambda () #t) program _) |