I distilled the test case down when I was trying to track down why my USERIAL library was failing with ABCL in CL-TEST-GRID:
https://common-lisp.net/project/cl-test-grid/library/userial.html https://common-lisp.net/project/cl-test-grid/library/userial.html http://cl-test-grid.appspot.com/blob?key=k3y3y5ama1 http://cl-test-grid.appspot.com/blob?key=k3y3y5ama1
I don’t think that’s going to lend any more insight than the case below. But, anyhow….
Thanks, Patrick
On Sep 2, 2015, at 5:34 PM, Mark Evenson evenson@panix.com wrote:
On 2015/9/2 23:34, Patrick Stein wrote:
This is a short program for which the compiler creates a file it cannot load. Save this program to a file, then try: (load (compile-file “this-file.lisp”))
;;; This program causes the ABCL compiler to generate code it cannot load. ;;; ;;; The code compiles and loads correctly if you do any of the following: ;;; * change BUFSIZE to be 'INTEGER instead of '(INTEGER 0 100) ;;; * delete the INLINE declaration for BUFFER-LENGTH ;;; * delete the FTYPE declaration for BUFFER-LENGTH ;;; * delete the TYPE declaration for NEW-CAPACITY
(deftype bufsize () '(integer 0 100))
(declaim (inline buffer-length) (ftype (function () bufsize) buffer-length)) (defun buffer-length () (the bufsize 10))
(defun calculate-new-buffer-length (new-capacity) (declare (type bufsize new-capacity)) (min (buffer-length) new-capacity))
[…]
Filed as [ticket][397]. Your case definitely seems to be a bug in our compiler. Having such nicely specified, small test cases helps us immensely in tracking down problems in the current compiler.
[397]: http://abcl.org/trac/ticket/397 http://abcl.org/trac/ticket/397
Thanks for the bug report.
-- "A screaming comes across the sky. It has happened before, but there is nothing to compare to it now."