1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-28 07:50:20 +02:00
guile/module/language
Andy Wingo 2ca88789b1 Type inference distinguishes &fixnum and &bignum types
This will allow heap-object? / inum? predicates to do something useful.

* module/language/cps/types.scm (&fixnum, &bignum): Split &exact-integer
  into these types.  Keep &exact-integer as a union type.
  (type<=?): New helper.
  (constant-type): Return &fixnum or &bignum as appropriate.
  (define-exact-integer!): New helper, tries to make exact integer
  results be &fixnum if they are within range.  Adapt users.
  (restricted-comparison-ranges, define-binary-result!): Use type<=?
  instead of = for &exact-integer.
* module/language/cps/type-fold.scm (logtest, mul, logbit?): Use
  type<=?.
* module/language/cps/specialize-numbers.scm (inferred-sigbits):
  (specialize-operations): Use type<=?.
2017-10-26 15:23:16 +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 Type inference distinguishes &fixnum and &bignum types 2017-10-26 15:23:16 +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