Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

When build 3d-math package, get an error: CCL::COMPLIER-FUNCTION-OVERFLOW #488

Open
DavidAlphaFox opened this issue May 7, 2024 · 2 comments

Comments

@DavidAlphaFox
Copy link

DavidAlphaFox commented May 7, 2024

Dear author

When I use quicklisp to build the 3d-math library.
When the ccl compiles the file matrices/ops.lisp I get the error: CCL::COMPLIER-FUNCTION-OVERFLOW .
I use the ccl-1.12 on x64's FreeBSD 14.0-RELEASE-p6 and Debian 12.5.

Thanks

@DavidAlphaFox DavidAlphaFox changed the title CCL::COMPLIER-FUNCTION-OVERFLOW When build 3d-math package, get an error: CCL::COMPLIER-FUNCTION-OVERFLOW May 7, 2024
@xrme
Copy link
Member

xrme commented May 7, 2024

When I tried to quickload the 3d-math system (on darwin/x8664), I got an error, but a different one:

> Error: Invalid program: The DECLARE expression (DECLARE (FTYPE (FUNCTION ((OR IVEC4 DVEC4 VEC4 IVEC3 DVEC3 VEC3 IVEC2 DVEC2 VEC2)) (VALUES (OR I32 F64 F32) &OPTIONAL)) VX)) is being treated as a form,
>        possibly because it's the result of macroexpansion. DECLARE expressions
>        can only appear in specified contexts and must be actual subexpressions
>        of the containing forms.
> While executing: #<Anonymous Function #x302000BFDB9F>, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.

It's pretty unusual to see compiler-function-overflow when using an x86-64 CCL.

If I had a smaller test case that shows the issue, I could take a closer look.

@DavidAlphaFox
Copy link
Author

DavidAlphaFox commented May 8, 2024

When I tried to quickload the 3d-math system (on darwin/x8664), I got an error, but a different one:

> Error: Invalid program: The DECLARE expression (DECLARE (FTYPE (FUNCTION ((OR IVEC4 DVEC4 VEC4 IVEC3 DVEC3 VEC3 IVEC2 DVEC2 VEC2)) (VALUES (OR I32 F64 F32) &OPTIONAL)) VX)) is being treated as a form,
>        possibly because it's the result of macroexpansion. DECLARE expressions
>        can only appear in specified contexts and must be actual subexpressions
>        of the containing forms.
> While executing: #<Anonymous Function #x302000BFDB9F>, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.

It's pretty unusual to see compiler-function-overflow when using an x86-64 CCL.

If I had a smaller test case that shows the issue, I could take a closer look.

If we use the 3d-math in quicklisp's dist, we will get this error message, because it is very old.
I use the 3d-math from shirakumo's dist.

We can reproduce the overflow error by

(ql-dist:install-dist "http://dist.shirakumo.org/shirakumo.txt")
(ql:quickload :3d-math)

And I don't have a Mac, so I don't know could it produce the same error or not on MacOSX.
And if I use the sbcl to compile the 3d-math, I have to start the sbcl with --dynamic-space-size 4Gb.

The stack overflow under Debian 12 on X8664,

Screenshot_20240824_215622
Screenshot_20240824_215707
Screenshot_20240824_215721
Screenshot_20240824_221021

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants