1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00
guile/module
Andy Wingo 55256ab33f Better compilation for rational?, exact?, and so on
These numeric predicates now have CPS branching primcalls, which allows
type inference and folding to reduce them to less-strong instructions.

* module/language/cps/effects-analysis.scm (heap-numbers-equal?): Put
all the number predicates together.  None have type checks.
* module/language/cps/guile-vm/lower-primcalls.scm
(define-branching-primcall-alias): New helper.
(complex?): Same as number?.
* module/language/cps/guile-vm/lower-primcalls.scm (real?)
(rational?, integer?, exact-integer?, exact?, inexact?): Define
lowerers.
* module/language/cps/type-fold.scm (number?, complex?, real?)
(rational?, integer?, exact-integer?, exact?, inexact?): Add folders and
reducers for all of these.
* module/language/cps/type.scm (number?, complex?, real?)
(rational?, integer?, exact-integer?, exact?, inexact?): Add type
inference for these.
* module/language/tree-il/compile-cps.scm (convert): Add number? checks
before exact? and inexact?.  Remove the eager lowering of
exact-integer?; instead rely on folders.
* module/language/tree-il/cps-primitives.scm (number?, complex?)
(real?, rational?, integer?, exact-integer?, exact?, inexact?): Add
primitive decls.  Define as "number-type-predicates?", meaning they need
a number? guard.
2023-09-15 15:21:26 +02:00
..
ice-9 Fix missing port in `pretty-print' 2023-09-06 16:28:45 +02:00
language Better compilation for rational?, exact?, and so on 2023-09-15 15:21:26 +02:00
oop goops: Preserve all slot options in redefinable classes. 2021-03-19 21:45:53 +01:00
rnrs Implement R6RS custom textual ports 2023-06-08 10:21:02 +02:00
scheme r7rs: 'read-u8' now defaults to 'current-input-port'. 2023-07-16 22:31:19 +02:00
scripts Fix typos throughout codebase. 2023-07-16 22:09:01 +02:00
srfi define-inlinable marks residualized procedure as maybe-unused 2023-08-24 11:43:31 +02:00
sxml Remove unnecessary module imports. 2023-02-24 16:49:00 +01:00
system Better compilation for symbol->string 2023-09-15 10:18:50 +02:00
texinfo Remove unnecessary module imports. 2023-02-24 16:49:00 +01:00
web Use custom binary output ports for make-chunked-output-port 2023-06-08 09:03:10 +02:00
Makefile.am Rework bootstrap to be reproducible 2022-02-01 14:50:40 +01:00
rnrs.scm Define top-level bindings for aux syntax: else, =>, _, ... 2019-09-12 21:50:51 +02:00
statprof.scm Statprof reports primitive names 2020-06-04 11:46:34 +02:00
texinfo.scm texinfo: Add basic support for @w{...}. 2020-06-18 00:30:30 +02:00