1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-19 18:20:22 +02:00
guile/module/language
Andy Wingo cd947a1161 Model all special immediates under one type bit (with range)
* module/language/cps/types.scm (&special-immediate): Model all special
  immediates (iflags) under this type bit.  This makes type analysis
  less precise on these values as we have to use ranges instead of sets
  to represent the values, but it frees up bits for other purposes,
  allowing us to totally model all types in Guile.
  (&eof): New &special-immediate value.
  (&other-heap-object): New type bit.
  Adapt inferrers.
* module/language/cps/type-fold.scm
  (define-special-immediate-predicate-folder): New helper, used for
  iflag comparisons.
  (local-type-fold): Adapt scalar-value for &special-immediate change.
  Delegate branch on $values to a primcall to `false?'.
2017-10-26 15:51:28 +02:00
..
brainfuck Fix brainfuck comment 2013-12-02 19:03:50 +01:00
bytecode Rename "RTL" to "bytecode" 2013-12-02 21:31:47 +01:00
cps Model all special immediates under one type bit (with range) 2017-10-26 15:51:28 +02:00
ecmascript Fix tree-il code generation for ECMAscript `new' expression. 2016-10-25 23:39:30 +02:00
elisp Use make-struct/no-tail instead of make-struct 2017-09-20 22:07:18 +02:00
scheme Merge remote-tracking branch 'origin/stable-2.0' 2013-08-11 22:46:22 -04:00
tree-il Use make-struct/no-tail instead of make-struct 2017-09-20 22:07:18 +02:00
value Add 'for-humans?' flag to <language> specifications. 2013-01-27 10:16:40 -05:00
bytecode.scm Add support for C16_C16 instruction words 2017-10-24 21:11:20 +02:00
cps.scm Fix kfun parse-cps bug 2017-02-23 11:37:06 +01:00
tree-il.scm Use make-struct/no-tail instead of make-struct 2017-09-20 22:07:18 +02:00