Closed garlic0x1 closed 1 month ago
https://github.com/coalton-lang/coalton/issues/1176
COALTON-USER> (coalton-codegen (declare addr (Integer -> Integer)) (define (addr x) (+ x 1)))
Old output, notice the fromint
fromint
(COMMON-LISP:PROGN (COALTON-IMPL/GLOBAL-LEXICAL:DEFINE-GLOBAL-LEXICAL ADDR COALTON-IMPL/RUNTIME/FUNCTION-ENTRY:FUNCTION-ENTRY) (COMMON-LISP:DEFUN ADDR (X-3769) (COMMON-LISP:DECLARE (COMMON-LISP:IGNORABLE X-3769)) (COALTON-LIBRARY/MATH/NUM::|INSTANCE/NUM INTEGER-COALTON-LIBRARY/CLASSES:+| X-3769 (COALTON-LIBRARY/MATH/NUM::|INSTANCE/NUM INTEGER-COALTON-LIBRARY/CLASSES:FROMINT| 1))) (COMMON-LISP:SETF ADDR (COALTON-IMPL/RUNTIME/FUNCTION-ENTRY::F1 #'ADDR)) (COMMON-LISP:SETF (COMMON-LISP:DOCUMENTATION 'ADDR 'COMMON-LISP:VARIABLE) "ADDR :: (INTEGER → INTEGER)") (COMMON-LISP:SETF (COMMON-LISP:DOCUMENTATION 'ADDR 'COMMON-LISP:FUNCTION) "ADDR :: (INTEGER → INTEGER)") (COMMON-LISP:VALUES))
New output, known integer is not cast.
(COMMON-LISP:PROGN (COALTON-IMPL/GLOBAL-LEXICAL:DEFINE-GLOBAL-LEXICAL ADDR COALTON-IMPL/RUNTIME/FUNCTION-ENTRY:FUNCTION-ENTRY) (COMMON-LISP:DEFUN ADDR (X-3770) (COMMON-LISP:DECLARE (COMMON-LISP:IGNORABLE X-3770)) (COALTON-LIBRARY/MATH/NUM::|INSTANCE/NUM INTEGER-COALTON-LIBRARY/CLASSES:+| X-3770 1)) (COMMON-LISP:SETF ADDR (COALTON-IMPL/RUNTIME/FUNCTION-ENTRY::F1 #'ADDR)) (COMMON-LISP:SETF (COMMON-LISP:DOCUMENTATION 'ADDR 'COMMON-LISP:VARIABLE) "ADDR :: (INTEGER → INTEGER)") (COMMON-LISP:SETF (COMMON-LISP:DOCUMENTATION 'ADDR 'COMMON-LISP:FUNCTION) "ADDR :: (INTEGER → INTEGER)") (COMMON-LISP:VALUES))
Trailing whitespace was removed from the affected file as well.
Can we get IFix, UFix, single and double floats in this PR too? Those get much greater benefit.
😑
🥺
https://github.com/coalton-lang/coalton/issues/1176
Old output, notice the
fromint
New output, known integer is not cast.
Trailing whitespace was removed from the affected file as well.